/* =================================================================
   TaxNoticeAdvisor — Home mockup stylesheet
   -----------------------------------------------------------------
   Structure:
     1. Design tokens (colours, type, spacing, radius, shadow)
     2. Base / reset
     3. Layout helpers (container, section, section-head, eyebrow)
     4. Buttons
     5. Header + navigation (+ mobile drawer)
     6. Hero (+ orbital shield graphic)
     7. Upload panel
     8. Why-us feature cards + trust strip
     9. Mission + pillars
    10. Services / desk cards
    11. Process steps
    12. Stat band
    13. Pricing
    14. Final CTA
    15. Footer
    16. Motion (reveal) + reduced-motion
    17. Responsive breakpoints
   ================================================================= */

/* 1. DESIGN TOKENS ------------------------------------------------ */
:root {
  /* Brand colours */
  /* Near-monochrome: "teal" retired to near-black ink; GOLD is the single accent. */
  --teal:        #253430;   /* structural ink (borders, active states, logo) */
  --teal-dark:   #16211d;   /* darkest ink (headings, closing band, brand) */
  --teal-mid:    #4a5852;   /* muted grey-green (eyebrows, links) */
  --gold:        #c69434;   /* primary gold accent / CTA */
  --gold-dark:   #a97c23;   /* gold hover */

  /* Neutrals (restrained: cleaner near-white ground, quieter tints) */
  --paper:       #f9f8f5;   /* near-white, whisper of warmth */
  --paper-2:     #f2f0eb;   /* barely-there band */
  --card:        #ffffff;   /* white card surface */
  --ink:         #1c2725;   /* near-black body text */
  --ink-soft:    #46534f;   /* muted body text */
  --ink-faint:   #5f6b67;   /* meta / captions (darkened for readability) */
  --line:        #e7e3da;   /* hairline border */
  --line-soft:   #efece4;

  /* Meaning-colour icon tints (carried on tiles/chips, never card edges) */
  --tint-teal-bg:  #edeeea;  --tint-teal-fg:  #2b3834;  /* neutral tile, near-black icon */
  --tint-gold-bg:  #f6ecd6;  --tint-gold-fg:  #a97c23;
  --tint-green-bg: #e0f0e2;  --tint-green-fg: #2f7d43;
  --tint-plum-bg:  #ece6f4;  --tint-plum-fg:  #6b4fa3;

  /* Typography */
  --font-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --font-sans:  "Inter", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;

  /* Type scale */
  --fs-13: .8125rem;  --fs-14: .875rem;  --fs-15: .9375rem;  --fs-16: 1rem;
  --fs-18: 1.125rem;  --fs-20: 1.25rem;  --fs-24: 1.5rem;    --fs-30: 1.875rem;
  --fs-38: 2.375rem;  --fs-48: 3rem;     --fs-60: 3.75rem;

  /* Spacing */
  --sp-1: .25rem; --sp-2: .5rem; --sp-3: .75rem; --sp-4: 1rem; --sp-5: 1.5rem;
  --sp-6: 2rem;   --sp-7: 3rem;  --sp-8: 4rem;   --sp-9: 6rem;

  /* Radius */
  --r-sm: 8px; --r-md: 14px; --r-lg: 20px; --r-xl: 28px; --r-pill: 999px;

  /* Shadow */
  --sh-sm: 0 1px 3px rgba(20,40,38,.06), 0 1px 2px rgba(20,40,38,.04);
  --sh-md: 0 10px 30px -12px rgba(15,60,56,.18), 0 2px 8px rgba(15,60,56,.06);
  --sh-lg: 0 24px 60px -20px rgba(10,61,56,.28), 0 6px 16px rgba(10,61,56,.08);

  --container: 1180px;
  --header-h: 76px;
}

/* 2. BASE / RESET ------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: 92px; }
body {
  margin: 0;
  padding-top: var(--header-h);   /* reserve space for the fixed header */
  overflow-x: hidden;             /* mobile safety net against any stray horizontal scroll */
  font-family: var(--font-sans);
  font-size: var(--fs-16);
  line-height: 1.6;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-variant-numeric: lining-nums;  /* Cormorant defaults to old-style figures, where "1" reads as "I" */
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
h1, h2, h3, h4, h5 { margin: 0; font-weight: 600; line-height: 1.15; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
:focus-visible { outline: 3px solid var(--teal-mid); outline-offset: 2px; border-radius: 4px; }

/* Line icons (sprite injected by icons.js). Colour + weight inherit from context.
   Named .icn (not .ico) because .ico is already a container class in inner.css. */
.icn { width: 1.1em; height: 1.1em; flex: none; display: inline-block; vertical-align: -0.16em;
  fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
/* icons inside the round tiles */
.feature-card__icon .icn, .desk-card__icon .icn { width: 26px; height: 26px; }
.pillar__icon .icn, .trust-strip__ico .icn { width: 22px; height: 22px; }
/* icon inside the info-row / related container boxes (inner pages) */
.info-row .ico .icn { width: 18px; height: 18px; }
.related .ico .icn { width: 20px; height: 20px; }

/* 3. LAYOUT HELPERS ---------------------------------------------- */
.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--sp-5); }
.section { padding-block: var(--sp-9); }

.section-head { max-width: 720px; margin: 0 auto var(--sp-8); text-align: center; }
.section-title {
  font-family: var(--font-serif);
  font-size: clamp(2.05rem, 3.9vw, 3.15rem);   /* Cormorant reads smaller, so bump the scale */
  font-weight: 600;
  color: var(--teal-dark);
  letter-spacing: 0;
  margin-top: var(--sp-3);
}
.section-title em { font-style: italic; color: inherit; }   /* single-colour heading; gold reserved for CTAs */
.section-sub { margin-top: var(--sp-4); color: var(--ink-soft); font-size: var(--fs-18); }

.eyebrow {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  font-size: var(--fs-13); font-weight: 600; letter-spacing: .11em; text-transform: uppercase;
  color: var(--teal-mid);
  background: transparent;
  padding: 0;
}
.eyebrow__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); }
.eyebrow--onteal { color: #cfe7e2; background: rgba(255,255,255,.1); }
.eyebrow--onteal .eyebrow__dot { background: var(--gold); }

/* 4. BUTTONS ------------------------------------------------------ */
.btn {
  --btn-py: 12px; --btn-px: 22px;
  display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-2);
  font-size: var(--fs-15); font-weight: 600; line-height: 1;
  padding: var(--btn-py) var(--btn-px); border-radius: var(--r-pill);
  border: 1.5px solid transparent; white-space: nowrap;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }
.btn--sm { --btn-py: 9px; --btn-px: 16px; font-size: var(--fs-14); }
.btn--lg { --btn-py: 15px; --btn-px: 28px; font-size: var(--fs-16); }
.btn--block { width: 100%; }

/* dark-teal text on gold: passes WCAG AA and reads more premium than white-on-gold */
.btn--gold { background: var(--gold); color: var(--teal-dark); box-shadow: 0 8px 20px -8px rgba(198,148,52,.7); }
.btn--gold:hover { background: var(--gold-dark); color: var(--teal-dark); box-shadow: 0 12px 26px -8px rgba(198,148,52,.8); }

.btn--outline { background: transparent; color: var(--teal-dark); border-color: var(--teal); }
.btn--outline:hover { background: var(--tint-teal-bg); }

.btn--outline-light { background: transparent; color: #fff; border-color: rgba(255,255,255,.55); }
.btn--outline-light:hover { background: rgba(255,255,255,.12); border-color: #fff; }

.btn--ghost { background: transparent; color: var(--teal-dark); }
.btn--ghost:hover { background: var(--tint-teal-bg); }

.linklike { background: none; border: none; color: var(--teal-mid); font-weight: 600; text-decoration: underline; padding: 0; font-size: inherit; }

/* 5. HEADER ------------------------------------------------------- */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; width: 100%; z-index: 100;
  background: var(--paper);            /* solid & opaque; fixed (not sticky) so it never scrolls with the page */
  border-bottom: 1px solid transparent;
  transition: background .3s ease, box-shadow .3s ease, border-color .3s ease;
}
/* WordPress: logged-in staff see the admin bar (32px, 46px on small screens) above the fixed header */
.admin-bar .site-header { top: 32px; }
@media screen and (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
.site-header.is-scrolled {
  background: #ffffff;                 /* solid white once scrolled */
  box-shadow: var(--sh-sm);
  border-bottom-color: var(--line);
}
.header__inner { display: flex; align-items: center; gap: var(--sp-5); height: var(--header-h); }

.brand { display: inline-flex; align-items: center; gap: 10px; }
/* the client's logo (2026-11): their shield and SEYA artwork as images, the name line as text so it stays readable */
.site-header .brand, .brand__shield, .brand__seya { flex: none; }   /* the logo never shrinks; the menu collapses instead */
.brand__shield { width: auto; height: 52px; transition: transform .3s ease; }
.brand:hover .brand__shield { transform: rotate(-6deg) scale(1.06); }
.brand__words { display: flex; flex-direction: column; align-items: flex-start; }
.brand__seya { width: auto; height: 30px; }
.brand__sub {
  margin-top: 3px; padding-top: 3px; border-top: 1.5px solid var(--gold);
  font-family: "Marcellus", var(--font-serif); font-size: 11px; line-height: 1.2;
  letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; color: #153454;
}

.nav { display: flex; align-items: center; gap: 4px; margin-inline: auto; }
.nav__link {
  position: relative; font-size: var(--fs-15); font-weight: 500; color: var(--ink-soft);
  padding: 8px 12px; border-radius: var(--r-sm); transition: color .18s ease;
  white-space: nowrap;   /* keep "IT Desk" on one line, never wrap */
}
.nav__link::after {
  content: ""; position: absolute; left: 12px; right: 12px; bottom: 4px; height: 2px;
  background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .22s ease; border-radius: 2px;
}
.nav__link:hover { color: var(--teal-dark); }
.nav__link:hover::after, .nav__link.is-active::after { transform: scaleX(1); }
.nav__link.is-active { color: var(--teal-dark); }

.header__actions { display: flex; align-items: center; gap: var(--sp-2); }

.nav-toggle { display: none; flex-direction: column; gap: 5px; margin-left: auto; background: none; border: none; padding: 8px; }
.nav-toggle span { width: 24px; height: 2px; background: var(--teal-dark); border-radius: 2px; transition: transform .25s ease, opacity .25s ease; }
.nav-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2) { opacity: 0; }
.nav-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.mobile-nav { display: flex; flex-direction: column; gap: 2px; padding: var(--sp-4) var(--sp-5) var(--sp-6); background: #fff; border-top: 1px solid var(--line); }
.mobile-nav[hidden] { display: none; }   /* class selector must not override the hidden attribute */
.mobile-nav__link { padding: 13px 8px; font-weight: 500; color: var(--ink); border-bottom: 1px solid var(--line-soft); }
.mobile-nav__cta { margin-top: var(--sp-3); }

/* 6. HERO --------------------------------------------------------- */
.hero { position: relative; overflow: hidden; padding-block: clamp(3rem, 6vw, 5.5rem); }
.hero__bloom {
  position: absolute; top: -20%; right: -10%; width: 60vw; height: 60vw; max-width: 760px; max-height: 760px;
  background: radial-gradient(circle, rgba(20,116,107,.16), rgba(20,116,107,0) 62%);
  pointer-events: none; z-index: 0;
}
.hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.05fr .95fr; gap: var(--sp-8); align-items: center; }

.hero__title {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(2.6rem, 6vw, var(--fs-60)); line-height: 1.04; letter-spacing: -.02em;
  color: var(--teal-dark); margin: var(--sp-4) 0 var(--sp-5);
}
.hero__title span { display: block; }
.hero__title--accent em { font-style: italic; color: var(--gold-dark); }
.hero__lead { font-size: var(--fs-18); color: var(--ink-soft); max-width: 34em; }
.hero__cta { display: flex; flex-wrap: wrap; gap: var(--sp-3); margin-top: var(--sp-6); }

.hero__trust { display: flex; flex-wrap: wrap; gap: var(--sp-5); margin-top: var(--sp-6); padding-top: var(--sp-5); border-top: 1px solid var(--line); }
.hero__trust li { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-14); font-weight: 500; color: var(--ink-soft); }
.trust-ico { font-size: 1rem; }

/* Orbital shield graphic */
.hero__visual { display: grid; place-items: center; }
.orbit { position: relative; width: min(440px, 90%); aspect-ratio: 1; display: grid; place-items: center; }
.orbit__ring { position: absolute; border-radius: 50%; border: 1.5px dashed rgba(15,89,82,.28); }
.orbit__ring--outer { inset: 0; animation: spin 60s linear infinite; }
.orbit__ring--inner { inset: 16%; border-style: solid; border-color: rgba(198,148,52,.22); animation: spin 40s linear infinite reverse; }
.orbit__dot { position: absolute; width: 12px; height: 12px; border-radius: 50%; }
.orbit__dot--gold { background: var(--gold); top: 6%; left: 62%; box-shadow: 0 0 0 5px rgba(198,148,52,.18); }
.orbit__dot--teal { background: var(--teal-mid); bottom: 20%; left: 8%; box-shadow: 0 0 0 5px rgba(20,116,107,.16); }

.shield-core {
  width: 46%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 40% 35%, #fbfaf7, #eef4f2);
  display: grid; place-items: center; box-shadow: var(--sh-lg), inset 0 1px 0 rgba(255,255,255,.9);
}

.float-card {
  position: absolute; background: #fff; border: 1px solid var(--line); border-radius: var(--r-md);
  box-shadow: var(--sh-md); padding: 12px 16px; display: flex; flex-direction: column; gap: 3px; text-align: left;
}
.float-card--1 { top: 4%; left: -6%; }
.float-card--2 { top: 40%; right: -8%; }
.float-card--3 { bottom: 2%; left: 4%; }
.float-card__pill { align-self: flex-start; font-size: var(--fs-13); font-weight: 700; color: var(--gold-dark); background: var(--tint-gold-bg); padding: 2px 9px; border-radius: var(--r-pill); }
.float-card strong { font-size: var(--fs-14); color: var(--ink); }
.float-card__num { font-family: var(--font-serif); font-size: var(--fs-24); font-weight: 600; color: var(--teal-dark); }
.float-card__label { font-size: var(--fs-13); color: var(--ink-faint); }
.float-card__live { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-13); font-weight: 600; color: var(--tint-green-fg); }
.float-card__sub { font-size: var(--fs-13); color: var(--ink-faint); }
.live-dot { width: 8px; height: 8px; border-radius: 50%; background: #2f9d4e; box-shadow: 0 0 0 0 rgba(47,157,78,.5); animation: pulse 2s infinite; }

@keyframes spin { to { transform: rotate(360deg); } }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(47,157,78,.5);} 70%{ box-shadow: 0 0 0 8px rgba(47,157,78,0);} 100%{ box-shadow:0 0 0 0 rgba(47,157,78,0);} }
@keyframes floaty { 0%,100% { transform: translateY(0);} 50% { transform: translateY(-10px);} }
[data-float] { animation: floaty 5s ease-in-out infinite; }
.float-card--2[data-float] { animation-delay: -1.6s; }
.float-card--3[data-float] { animation-delay: -3.2s; }

/* 7. UPLOAD PANEL ------------------------------------------------- */
.upload-section { padding-block: var(--sp-7); }
.upload-card {
  display: grid; grid-template-columns: 1.1fr .9fr; gap: var(--sp-8);
  background: linear-gradient(135deg, var(--teal) 0%, var(--teal-dark) 100%);
  color: #fff; border-radius: var(--r-xl); padding: clamp(1.75rem, 4vw, var(--sp-8));
  box-shadow: var(--sh-lg); position: relative; overflow: hidden;
}
.upload-card__intro h2 { font-family: var(--font-serif); font-weight: 500; font-size: var(--fs-30); margin: var(--sp-3) 0 var(--sp-4); }
.upload-card__intro > p { color: #d5e6e2; font-size: var(--fs-16); }
.upload-card__points { margin-top: var(--sp-5); display: grid; gap: var(--sp-3); }
.upload-card__points li { position: relative; padding-left: 30px; color: #e7f1ee; font-size: var(--fs-15); }
.upload-card__points li span { display: block; font-weight: 700; color: #fff; }
.upload-card__points li::before { content: "›"; position: absolute; left: 8px; top: -1px; color: var(--gold); font-weight: 700; font-size: 1.1rem; }

.dropzone { background: rgba(255,255,255,.06); border-radius: var(--r-lg); padding: var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-3); }
.dropzone__inner {
  border: 2px dashed rgba(255,255,255,.4); border-radius: var(--r-md); background: rgba(255,255,255,.04);
  padding: var(--sp-6) var(--sp-4); text-align: center; transition: border-color .2s ease, background .2s ease;
}
.dropzone__inner.is-drag { border-color: var(--gold); background: rgba(198,148,52,.14); }
.dropzone__icon { font-size: 2rem; }
.dropzone__title { font-weight: 600; font-size: var(--fs-18); margin-top: var(--sp-2); }
.dropzone__hint { color: #cfe0dc; font-size: var(--fs-14); margin-top: 2px; }
.dropzone__hint .linklike { color: var(--gold); }
.dropzone__meta { color: #a9c4bf; font-size: var(--fs-13); margin-top: var(--sp-3); }
.dropzone__filename { background: rgba(255,255,255,.12); border-radius: var(--r-sm); padding: 10px 14px; font-size: var(--fs-14); font-weight: 500; }
.dropzone__note { text-align: center; color: #b9d1cc; font-size: var(--fs-13); }

/* 8. WHY-US + TRUST STRIP ---------------------------------------- */
.why__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-5); }
.feature-card {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: var(--sp-6); box-shadow: var(--sh-sm);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.feature-card:hover { transform: translateY(-4px); box-shadow: var(--sh-md); border-color: var(--line-soft); }
.feature-card__icon {
  width: 52px; height: 52px; border-radius: var(--r-md); display: grid; place-items: center;
  font-size: 1.5rem; margin-bottom: var(--sp-4); transition: transform .22s ease;
}
.feature-card:hover .feature-card__icon { transform: scale(1.08) rotate(-4deg); }
/* Plain line icons, no coloured tiles: near-black ink on the page ground. */
.feature-card__icon--teal,
.feature-card__icon--gold,
.feature-card__icon--green,
.feature-card__icon--plum { background: transparent; color: var(--ink); }
.feature-card__icon .icn, .desk-card__icon .icn { width: 28px; height: 28px; }
.feature-card h3 { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-20); color: var(--teal-dark); margin-bottom: var(--sp-2); }
.feature-card p { color: var(--ink-soft); font-size: var(--fs-15); }

.trust-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-4); margin-top: var(--sp-6); padding-top: var(--sp-7); border-top: 1px solid var(--line); }
.trust-strip__item { display: flex; gap: var(--sp-3); }
.trust-strip__ico { flex: none; width: 42px; height: 42px; border-radius: var(--r-sm); display: grid; place-items: center; font-size: 1.15rem; }
.trust-strip__item h4 { font-size: var(--fs-15); color: var(--teal-dark); margin-bottom: 2px; }
.trust-strip__item p { font-size: var(--fs-13); color: var(--ink-soft); }

/* 9. MISSION + PILLARS ------------------------------------------- */
.mission { background: var(--paper-2); }
.mission__quote { max-width: 860px; margin: 0 auto var(--sp-8); text-align: center; position: relative; }
.mission__mark { font-family: var(--font-serif); font-size: 5rem; line-height: .5; color: var(--gold); opacity: .5; }
.mission__quote p { font-family: var(--font-serif); font-weight: 500; font-size: clamp(1.4rem, 3vw, var(--fs-30)); line-height: 1.4; color: var(--teal-dark); margin-top: var(--sp-3); }
.mission__quote em { font-style: italic; color: var(--teal-mid); }
.mission__by { display: inline-flex; align-items: center; gap: var(--sp-2); margin-top: var(--sp-5); font-family: var(--font-sans); font-size: var(--fs-14); font-weight: 600; color: var(--ink-soft); background: #fff; border: 1px solid var(--line); padding: 8px 16px; border-radius: var(--r-pill); }

.pillars__eyebrow { text-align: center; font-size: var(--fs-13); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-faint); margin-bottom: var(--sp-5); }
.pillars { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-4); }
.pillar { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: var(--sp-5); text-align: center; transition: transform .22s ease, box-shadow .22s ease; }
.pillar:hover { transform: translateY(-4px); box-shadow: var(--sh-md); }
.pillar__icon { width: 48px; height: 48px; border-radius: var(--r-md); display: grid; place-items: center; font-size: 1.35rem; margin: 0 auto var(--sp-3); }
.pillar h4 { font-family: var(--font-serif); font-size: var(--fs-18); color: var(--teal-dark); margin-bottom: var(--sp-2); }
.pillar p { font-size: var(--fs-14); color: var(--ink-soft); }

/* 10. SERVICES / DESKS ------------------------------------------- */
.desk-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-5); }
.desk-card {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: var(--sp-6); box-shadow: var(--sh-sm); display: flex; flex-direction: column;
  transition: transform .22s ease, box-shadow .22s ease;
}
.desk-card:hover { transform: translateY(-5px); box-shadow: var(--sh-lg); }
.desk-card__head { display: flex; gap: var(--sp-3); align-items: flex-start; margin-bottom: var(--sp-4); }
.desk-card__icon { flex: none; width: 50px; height: 50px; border-radius: var(--r-md); display: grid; place-items: center; font-size: 1.4rem; }
.desk-card__head h3 { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-20); color: var(--teal-dark); }
.desk-card__tag { font-size: var(--fs-13); color: var(--ink-faint); margin-top: 3px; }
.desk-card__list { display: grid; gap: 10px; margin-bottom: var(--sp-5); }
.desk-card__list li { position: relative; padding-left: 24px; font-size: var(--fs-14); color: var(--ink-soft); }
.desk-card__list li::before { content: ""; position: absolute; left: 4px; top: 8px; width: 8px; height: 8px; border: 2px solid var(--gold); border-radius: 50%; }
.desk-card__link { margin-top: auto; font-size: var(--fs-14); font-weight: 600; color: var(--teal-mid); display: inline-flex; align-items: center; gap: 6px; transition: gap .18s ease, color .18s ease; }
.desk-card__link span { transition: transform .18s ease; }
.desk-card:hover .desk-card__link { color: var(--gold-dark); }
.desk-card:hover .desk-card__link span { transform: translateX(4px); }
.desk-card__link--light { color: #cfe7e2; }

.desk-card--cta { background: linear-gradient(155deg, var(--teal), var(--teal-dark)); color: #fff; justify-content: center; text-align: center; align-items: center; }
.desk-card--cta h3 { font-family: var(--font-serif); font-weight: 500; font-size: var(--fs-24); margin-bottom: var(--sp-3); }
.desk-card--cta p { color: #d5e6e2; font-size: var(--fs-15); margin-bottom: var(--sp-5); }
.desk-card--cta .btn { margin-bottom: var(--sp-3); }

/* 11. PROCESS ----------------------------------------------------- */
.process { background: var(--paper-2); }
.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-5); counter-reset: step; }
.step { position: relative; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: var(--sp-6) var(--sp-5) var(--sp-5); box-shadow: var(--sh-sm); }
.step__num {
  position: absolute; top: -22px; left: var(--sp-5);
  width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center;
  font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-20); color: #fff;
  background: var(--teal); box-shadow: 0 6px 16px -6px rgba(15,89,82,.6); border: 3px solid var(--paper-2);
}
.step__body h4 { font-family: var(--font-serif); font-size: var(--fs-18); color: var(--teal-dark); margin: var(--sp-3) 0 var(--sp-2); }
.step__body p { font-size: var(--fs-14); color: var(--ink-soft); }

/* 12. STAT BAND --------------------------------------------------- */
.statband { position: relative; overflow: hidden; background: var(--paper-2); color: var(--ink); padding-block: var(--sp-8); text-align: center; border-block: 1px solid var(--line); }
.statband__glow { display: none; }
.statband__grid { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-4); }
.stat { display: flex; flex-direction: column; align-items: center; gap: var(--sp-2); padding-inline: var(--sp-3); }
.stat + .stat { border-left: 1px solid var(--line); }
.stat__num { font-family: var(--font-serif); font-weight: 600; font-size: clamp(2rem, 4vw, var(--fs-48)); font-variant-numeric: lining-nums tabular-nums; color: var(--teal-dark); }
.stat__label { font-size: var(--fs-13); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-faint); }
.stat__rule { width: 34px; height: 3px; border-radius: 3px; margin-top: 4px; }
.stat__rule--a, .stat__rule--b, .stat__rule--c, .stat__rule--d { background: var(--gold); }
.statband__grid--two { grid-template-columns: repeat(2, 1fr); max-width: 640px; margin-inline: auto; }
.statband__foot { position: relative; margin-top: var(--sp-6); color: var(--ink-faint); font-size: var(--fs-14); }

/* 13. PRICING ----------------------------------------------------- */
.price-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-5); align-items: stretch; }
.price-card { position: relative; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: var(--sp-6); box-shadow: var(--sh-sm); display: flex; flex-direction: column; transition: transform .22s ease, box-shadow .22s ease; }
.price-card:hover { transform: translateY(-4px); box-shadow: var(--sh-md); }
.price-card--featured { background: linear-gradient(160deg, #ffffff, #fbf7ee); border-color: var(--gold); box-shadow: var(--sh-md); }
.price-card__flag { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--gold); color: #fff; font-size: var(--fs-13); font-weight: 600; padding: 4px 14px; border-radius: var(--r-pill); }
.price-card h3 { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-24); color: var(--teal-dark); }
.price-card__desc { color: var(--ink-soft); font-size: var(--fs-14); margin: var(--sp-2) 0 var(--sp-4); }
.price-card__amount { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-38); color: var(--teal-dark); }
.price-card__amount--quote { font-size: var(--fs-24); color: var(--gold-dark); }
.price-card__cur { font-size: var(--fs-24); vertical-align: super; }
.price-card__per { font-family: var(--font-sans); font-size: var(--fs-14); font-weight: 500; color: var(--ink-faint); margin-left: 6px; }
.price-card__list { display: grid; gap: 10px; margin: var(--sp-5) 0 var(--sp-6); }
.price-card__list li { position: relative; padding-left: 26px; font-size: var(--fs-14); color: var(--ink-soft); }
.price-card__list li::before { content: "✓"; position: absolute; left: 4px; color: var(--tint-green-fg); font-weight: 700; }
.price-card .btn { margin-top: auto; }
/* single package (no fixed price): description + action on the left, inclusions on the right */
.price-card--solo { max-width: 860px; margin-inline: auto; display: grid; grid-template-columns: 1.1fr 1fr; gap: var(--sp-6); align-items: center; }
.price-card--solo .price-card__list { margin: 0; }
@media (max-width: 860px) { .price-card--solo { grid-template-columns: 1fr; gap: var(--sp-5); } }
.pricing__note { text-align: center; margin-top: var(--sp-6); font-size: var(--fs-13); color: var(--ink-faint); }

/* Form fields (shared: contact page, desk pages, home step 1) */
.field { margin-bottom: var(--sp-4); }
.field label { display:block; font-size: var(--fs-14); font-weight:600; color: var(--ink); margin-bottom: 6px; }
.field .req { color: #c0492c; }
.field input, .field select, .field textarea {
  width:100%; font-family: inherit; font-size: var(--fs-15); color: var(--ink);
  background:#fff; border:1.5px solid var(--line); border-radius: var(--r-sm); padding: 11px 14px; transition: border-color .18s ease, box-shadow .18s ease;
}
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color: var(--teal-mid); box-shadow: 0 0 0 3px rgba(20,116,107,.14); }
.field textarea { resize: vertical; min-height: 120px; }
.field-row { display:grid; grid-template-columns: 1fr 1fr; gap: var(--sp-4); }
.file-field { display:block;   /* <label>: block so the dashed box renders as one clean rectangle */
  border:2px dashed var(--line); border-radius: var(--r-sm); padding: var(--sp-4); text-align:center; cursor:pointer; transition: border-color .2s ease, background .2s ease; }
.file-field:hover, .file-field.is-drag { border-color: var(--teal-mid); background: var(--tint-teal-bg); }
.file-field small { display:block; color: var(--ink-faint); font-size: var(--fs-13); }
.file-field > .icn { width: 22px; height: 22px; color: var(--teal-mid); vertical-align: -5px; margin-right: 4px; }
.file-field .mini-drop__file { margin-top:8px; }
.consent { display:flex; gap:10px; align-items:flex-start; font-size: var(--fs-13); color: var(--ink-soft); margin-bottom: var(--sp-4); }
.consent input { margin-top:3px; }
.form-note { font-size: var(--fs-13); color: var(--ink-faint); margin-top: var(--sp-3); text-align:center; }
@media (max-width: 560px) { .field-row { grid-template-columns: 1fr; } }

/* 14. FINAL CTA --------------------------------------------------- */
.final-cta { background: var(--teal-dark); color: #fff; padding-block: var(--sp-9); text-align: center; position: relative; overflow: hidden; }
.final-cta__inner { max-width: 720px; margin: 0 auto; position: relative; }
.final-cta h2 { font-family: var(--font-serif); font-weight: 500; font-size: clamp(1.8rem, 4vw, var(--fs-48)); }
.final-cta p { color: #cfe0dc; font-size: var(--fs-18); margin: var(--sp-4) 0 var(--sp-6); }
.final-cta__buttons { display: flex; flex-wrap: wrap; gap: var(--sp-3); justify-content: center; }

/* 15. FOOTER ------------------------------------------------------ */
.site-footer { background: #14201e; color: #c4cfcc; }
.footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.3fr; gap: var(--sp-6); padding-block: var(--sp-8); }
.brand--footer .brand__sub { color: #f7f5f0; }
.footer__motto { margin-top: var(--sp-3); font-size: var(--fs-14); color: #9fb0ac; max-width: 26ch; }
.footer__social { display: flex; gap: var(--sp-2); margin-top: var(--sp-4); }
.footer__social a { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.08); color: #fff; font-weight: 600; transition: background .2s ease, transform .2s ease; }
.footer__social a:hover { background: var(--gold); transform: translateY(-2px); }
.footer__col h5 { font-size: var(--fs-14); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #fff; margin-bottom: var(--sp-4); }
.footer__col a { display: block; font-size: var(--fs-14); color: #a9b8b4; padding: 5px 0; transition: color .18s ease; }
.footer__col a:hover { color: var(--gold); }
.footer__addr { font-size: var(--fs-14); color: #a9b8b4; margin-top: var(--sp-3); line-height: 1.7; }
.footer__bar { border-top: 1px solid rgba(255,255,255,.08); }
.footer__bar-inner { display: flex; justify-content: space-between; gap: var(--sp-3); flex-wrap: wrap; padding-block: var(--sp-4); font-size: var(--fs-13); color: #8fa09c; }
.footer__legal a:hover { color: var(--gold); }

/* 16. MOTION (reveal on scroll) ---------------------------------- */
.js .reveal { opacity: 0; transform: translateY(22px); }
.js .reveal.is-in { opacity: 1; transform: none; transition: opacity .6s ease, transform .6s cubic-bezier(.22,1,.36,1); }

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  .js .reveal { opacity: 1; transform: none; }
}

/* 17. RESPONSIVE -------------------------------------------------- */
@media (max-width: 1024px) {
  .why__grid, .desk-grid, .price-grid { grid-template-columns: repeat(2, 1fr); }
  .trust-strip, .pillars, .steps, .statband__grid { grid-template-columns: repeat(2, 1fr); }
  .stat:nth-child(3) { border-left: none; }
  .footer__grid { grid-template-columns: 1fr 1fr; gap: var(--sp-6); }
}

/* logo + 6 links + CTA need ~1040px of header; below that, use the menu button */
@media (max-width: 1119px) {
  .nav, .header__actions { display: none; }
  .nav-toggle { display: flex; }
}
@media (min-width: 1120px) {
  .mobile-nav { display: none; }   /* never leave the panel open after widening the window */
}

@media (max-width: 860px) {
  .hero__grid { grid-template-columns: 1fr; }
  .hero__visual { order: -1; margin-bottom: var(--sp-4); }
  .orbit { width: min(360px, 78%); }
  .upload-card { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .section { padding-block: var(--sp-8); }
  .why__grid, .desk-grid, .price-grid, .trust-strip, .pillars, .steps, .statband__grid, .footer__grid { grid-template-columns: 1fr; }
  .stat + .stat { border-left: none; padding-top: var(--sp-4); border-top: 1px solid var(--line); }
  .hero__cta .btn, .final-cta__buttons .btn { width: 100%; }
  .float-card--1 { left: 0; } .float-card--2 { right: 0; }
}

/* ---- Mobile polish (phones) ------------------------------------ */
@media (max-width: 640px) {
  :root { --header-h: 62px; }              /* shorter header, more screen for content */
  .btn { --btn-py: 13px; }                 /* comfortable 44px+ tap height */
  .btn--sm { --btn-py: 11px; }
  .nav-toggle { padding: 10px; }           /* larger tap target */
  .section-head { margin-bottom: var(--sp-6); }
}
@media (max-width: 560px) {
  .container { padding-inline: 1.25rem; }
  .phero__cta .btn { width: 100%; }        /* full-width primary actions */
  .phero__proof { gap: var(--sp-3); justify-content: space-between; }
  .phero__proof-div { display: none; }     /* dividers get cramped on phones */
  .phero__proof-item strong { font-size: var(--fs-20); }
  .lawnote { flex-direction: column; gap: var(--sp-3); }
  .page-hero__cta .btn { width: 100%; }
  .price-card, .feature-card, .cap-card { padding: var(--sp-5); }
}

/* smallest phones: keep the full name clear of the menu button */
@media (max-width: 360px) {
  .header__inner { gap: var(--sp-3); }
  .site-header .brand__shield { height: 44px; }
  .site-header .brand__seya { height: 26px; }
  .site-header .brand__sub { font-size: 9.5px; letter-spacing: .12em; }
}
