:root {
  --invoice-ink: #202d28;
  --invoice-muted: #5b675f;
  --invoice-line: #dddcd3;
  --invoice-paper: #fffefa;
  --invoice-ground: #f4f2eb;
  --invoice-green: #24483a;
  --invoice-green-deep: #18372c;
  --invoice-clay: #b75e42;
  --invoice-focus: #bd674b;
  --invoice-serif:
    'Iowan Old Style', 'Palatino Linotype', 'Book Antiqua', Georgia, serif;
  --invoice-sans:
    'Avenir Next', Avenir, 'Century Gothic', 'Trebuchet MS', sans-serif;
}

body:has(.workpaper-page),
body:has(.invoice-builder) {
  color: var(--invoice-ink);
  background: var(--invoice-ground);
}

.site-header,
body:has(.workpaper-page) .site-header,
body:has(.invoice-builder) .site-header {
  border-bottom: 1px solid #ded9cc;
  background: rgba(255, 254, 250, 0.97);
}

.site-header .logo,
body:has(.workpaper-page) .site-header .logo,
body:has(.invoice-builder) .site-header .logo {
  gap: 0.65rem;
  color: var(--invoice-green);
  font-family: var(--invoice-serif);
  font-size: 1.28rem;
  font-weight: 650;
  letter-spacing: -0.035em;
}

.site-header .logo-image,
body:has(.workpaper-page) .site-header .logo-image,
body:has(.invoice-builder) .site-header .logo-image {
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid #e5e2d8;
  border-radius: 50%;
  background: var(--invoice-paper);
  object-fit: cover;
}

.site-header .nav-list,
body:has(.workpaper-page) .site-header .nav-list {
  gap: clamp(0.75rem, 2vw, 1.75rem);
}

.site-header .nav-list a,
body:has(.workpaper-page) .site-header .nav-list a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: var(--invoice-muted);
  font-size: 0.84rem;
}

.site-header .nav-list a:hover,
body:has(.workpaper-page) .site-header .nav-list a:hover {
  color: var(--invoice-green);
}

.site-header .nav-toggle,
body:has(.workpaper-page) .site-header .nav-toggle {
  color: var(--invoice-green);
}

.site-header .nav-toggle .hamburger,
.site-header .nav-toggle .hamburger::before,
.site-header .nav-toggle .hamburger::after,
body:has(.workpaper-page) .site-header .nav-toggle .hamburger,
body:has(.workpaper-page) .site-header .nav-toggle .hamburger::before,
body:has(.workpaper-page) .site-header .nav-toggle .hamburger::after {
  background: var(--invoice-green);
}

.site-header .nav-open .hamburger,
body:has(.workpaper-page) .site-header .nav-open .hamburger {
  background: transparent;
}

.site-header .nav-toggle,
body:has(.workpaper-page) .site-header .nav-toggle {
  min-width: 44px;
  min-height: 44px;
  place-items: center;
  padding: 0;
  border: 1px solid #d9ddd5;
  border-radius: 3px;
  background: var(--invoice-paper);
}

.skip-link {
  border-color: var(--invoice-green);
  color: #fffefa;
  background: var(--invoice-green);
}

.workpaper-page {
  min-height: 55vh;
  color: var(--invoice-ink);
  background:
    radial-gradient(
      ellipse at 86% 2%,
      rgba(224, 209, 176, 0.2),
      transparent 34rem
    ),
    var(--invoice-ground);
  font-family: var(--invoice-sans);
}

.workpaper-page .page-content,
.workpaper-page .blog-post {
  min-height: 55vh;
  padding: clamp(2.5rem, 6vw, 5rem) 0;
  background: transparent;
}

.workpaper-page .page-content > .container,
.workpaper-page .blog-post > .container {
  width: min(100% - 2.5rem, 900px);
  max-width: 900px;
  padding: 0;
}

.workpaper-page .content,
.workpaper-page .post-content {
  max-width: none;
  color: var(--invoice-ink);
  font-size: 0.96rem;
  line-height: 1.8;
}

.workpaper-page .content > article > h1,
.workpaper-page .content > h1,
.workpaper-page .post-header h1,
.workpaper-page .pricing-header h1 {
  margin: 0 0 1.6rem;
  padding-bottom: 1.35rem;
  border-bottom: 1px solid #ded9cc;
  color: var(--invoice-ink);
  font-family: var(--invoice-serif);
  font-size: clamp(2.25rem, 5vw, 3.8rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1.06;
}

.workpaper-page .content h2,
.workpaper-page .post-content h2,
.workpaper-page .pricing-faq h2 {
  margin: 2rem 0 0.8rem;
  color: var(--invoice-ink);
  font-family: var(--invoice-serif);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 550;
  letter-spacing: -0.025em;
  line-height: 1.2;
  text-align: left;
}

.workpaper-page .content h2::after,
.workpaper-page .post-content h2::after,
.workpaper-page .pricing-faq h2::after {
  display: none;
}

.workpaper-page .content h3,
.workpaper-page .post-content h3,
.workpaper-page .content h4 {
  margin: 1.45rem 0 0.65rem;
  color: var(--invoice-green);
  font-family: var(--invoice-serif);
  font-weight: 600;
}

.workpaper-page .content p,
.workpaper-page .post-content p {
  color: var(--invoice-muted);
}

.workpaper-page .content strong,
.workpaper-page .post-content strong {
  color: var(--invoice-ink);
}

.workpaper-page .content a,
.workpaper-page .post-content a,
.workpaper-page .blog-item h2 a,
.workpaper-page .back-link,
.workpaper-page .read-more {
  color: var(--invoice-green);
  text-decoration-color: #9cae9f;
  text-underline-offset: 3px;
}

.workpaper-page .content a:hover,
.workpaper-page .post-content a:hover,
.workpaper-page .blog-item h2 a:hover,
.workpaper-page .back-link:hover,
.workpaper-page .read-more:hover {
  color: var(--invoice-clay);
}

.workpaper-page .content ul,
.workpaper-page .content ol,
.workpaper-page .post-content ul,
.workpaper-page .post-content ol {
  color: var(--invoice-muted);
}

.workpaper-page .content hr,
.workpaper-page .post-content hr {
  margin: 2rem 0;
  border: 0;
  border-top: 1px solid #ded9cc;
}

.workpaper-page .lead,
.workpaper-page .post-meta,
.workpaper-page .blog-item time,
.workpaper-page .excerpt {
  color: var(--invoice-muted);
}

.workpaper-page .feature-detail,
.workpaper-page .card,
.workpaper-page .post-card,
.workpaper-page .blog-item,
.workpaper-page .pricing-card,
.workpaper-page .faq-item {
  border-color: #ded9cc;
  border-radius: 2px;
  background: var(--invoice-paper);
  box-shadow: none;
}

.workpaper-page .feature-detail {
  border-left: 2px solid var(--invoice-clay);
}

.workpaper-page .feature-detail h2,
.workpaper-page .feature-detail p,
.workpaper-page .card h3,
.workpaper-page .card p,
.workpaper-page .post-card h3 a,
.workpaper-page .post-card p {
  color: var(--invoice-ink);
}

.workpaper-page .feature-detail-icon {
  border-radius: 2px;
  color: var(--invoice-green);
  background: #edf0e9;
}

.workpaper-page .post-category {
  border: 1px solid #d8ded5;
  border-radius: 2px;
  color: var(--invoice-green);
  background: #edf0e9;
}

.workpaper-page .category-compliance,
.workpaper-page .category-legal {
  color: #773d2d;
  background: #f6ebe5;
}

.workpaper-page .post-hero-image,
.workpaper-page .blog-item-image,
.workpaper-page .blog-item-image img {
  border-radius: 2px;
}

.workpaper-page .pricing-faq .faq-item h3,
.workpaper-page .faq-item h3 {
  color: var(--invoice-green);
  font-family: var(--invoice-serif);
  font-weight: 600;
}

.workpaper-page .pricing-faq .faq-item p,
.workpaper-page .faq-item p {
  color: var(--invoice-muted);
}

.workpaper-page .pricing,
.workpaper-page .pricing-faq,
.workpaper-page .cta-section,
.workpaper-page .features,
.workpaper-page .app-preview {
  color: var(--invoice-ink);
  background: transparent;
}

.workpaper-page .pricing-header h1 {
  border: 0;
  padding-bottom: 0;
}

.workpaper-page .pricing-card-pro {
  border: 1px solid var(--invoice-green);
  border-top: 3px solid var(--invoice-clay);
  color: var(--invoice-ink);
  background: var(--invoice-paper);
}

.workpaper-page .pricing-card-pro .annual-equivalent,
.workpaper-page .pricing-card-pro .price,
.workpaper-page .pricing-card-pro .price-period,
.workpaper-page .pricing-card-pro .tier-description,
.workpaper-page .pricing-card-pro .tier-name,
.workpaper-page .pricing-card-pro .features-list,
.workpaper-page .pricing-card-pro .card-note {
  color: var(--invoice-ink);
}

.workpaper-page .pricing-toggle input:checked + .toggle-slider,
.workpaper-page .btn-primary,
.workpaper-page .cta-box .btn-primary {
  color: #fffefa;
  background: var(--invoice-green);
}

.workpaper-page .pricing-toggle input:checked + .toggle-slider {
  border-color: var(--invoice-green);
}

.workpaper-page .save-badge,
.workpaper-page .best-value-badge {
  border-radius: 2px;
  background: var(--invoice-clay);
}

.workpaper-page .btn-primary:hover,
.workpaper-page .cta-box .btn-primary:hover {
  color: #fffefa;
  background: var(--invoice-green-deep);
}

.workpaper-page .cta-box {
  border-radius: 2px;
  color: #fffefa;
  background: var(--invoice-green);
  box-shadow: none;
}

.workpaper-page .cta-box h2,
.workpaper-page .cta-box p {
  color: #fffefa;
}

.workpaper-page .site-footer .footer-section a,
.workpaper-page .site-footer .cookie-settings-btn {
  color: #d5ded6;
}

.site-footer {
  color: #fffefa;
  background: var(--invoice-green-deep);
}

.site-footer .footer-section h3,
.site-footer .footer-section h4 {
  color: #fffefa;
  font-family: var(--invoice-serif);
  font-weight: 550;
}

.site-footer .footer-section p {
  color: #d5ded6;
}

.site-footer .footer-section a,
.site-footer .cookie-settings-btn {
  color: #d5ded6;
}

.site-footer .footer-section a:hover,
.site-footer .cookie-settings-btn:hover {
  color: #fffefa;
}

.site-footer .footer-bottom {
  border-top-color: rgba(255, 254, 250, 0.2);
  color: #b8c6bb;
}

.consent-banner {
  color: var(--invoice-ink);
  background: rgba(255, 254, 250, 0.96);
}

.consent-banner-inner p {
  color: var(--invoice-muted);
}

.consent-btn-accept {
  background: var(--invoice-green);
}

.consent-btn-reject {
  border-color: #71877a;
  color: var(--invoice-green);
  background: transparent;
}

.consent-link {
  color: var(--invoice-green) !important;
}

.workpaper-page :focus-visible,
.site-header a:focus-visible,
.site-header button:focus-visible,
.site-footer a:focus-visible,
.site-footer button:focus-visible,
.consent-banner button:focus-visible,
.consent-banner a:focus-visible {
  outline: 3px solid var(--invoice-focus);
  outline-offset: 3px;
}

@media (max-width: 640px) {
  .site-header .nav-toggle,
  body:has(.workpaper-page) .site-header .nav-toggle {
    display: grid;
  }

  .site-header .nav-list,
  body:has(.workpaper-page) .site-header .nav-list {
    visibility: hidden;
    width: min(82vw, 19rem);
    max-width: none;
    height: 100dvh;
    padding: 6rem 1.5rem 2rem;
    gap: 0.5rem;
    border-left: 1px solid #ded9cc;
    background: var(--invoice-paper);
    right: 0;
    transform: translateX(101%);
    transition: transform 180ms ease;
  }

  .site-header .nav-open .nav-list,
  body:has(.workpaper-page) .site-header .nav-open .nav-list {
    visibility: visible;
    transform: translateX(0);
  }

  .site-header .nav-list a,
  body:has(.workpaper-page) .site-header .nav-list a {
    width: 100%;
    min-height: 48px;
    border-bottom: 1px solid #ece9e1;
    color: var(--invoice-ink);
    font-size: 1rem;
  }

  .workpaper-page .page-content > .container,
  .workpaper-page .blog-post > .container {
    width: min(100% - 1.7rem, 900px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .workpaper-page *,
  .site-header *,
  .site-footer * {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
