/* ============================================================
   FifthStar — shared brand system (Design Language v1.0)
   Pages link this + assets/site.js (zero external dependencies).

   COLOUR MODEL: fixed hybrid (no OS theme toggle).
   - Dark shell (--bg #0C0A08): nav / hero / footer / final CTA / all body sections.
     Uses light text --ink / --mute. (DL v1.0 revised 2026-07-24: no ivory body sections.)
   - Warm Ivory (#F7F3EB): reserved for in-card surfaces only (per DL v1.0 revised
     2026-07-24). The .section.ivory rule is retained but currently unused.

   BRAND GOLD #D8B36A is CONSTANT across every page (nav CTA,
   btn-gold, eyebrow, stars, badges, sig-mark, footer links,
   reply border). It is the only brand anchor.

   INDUSTRY ACCENT (--accent) is ONE trust-building hue per family
   (20% personality): ring / alt tint / hero word / accent rule /
   motif. Retoned off 科技蓝/紫/绿 per DL v1.0.

   TYPOGRAPHY is unified: Playfair Display (display) + Inter (body).
   Per-family serif overrides are retired (re-align pass).

   See products/fifthstar/DESIGN-LANGUAGE-v1.0.md for the full system.
   ============================================================ */

/* === Theme: FIXED all-dark (FifthStar Black shell throughout, no ivory body sections —
   revised DL v1.0 2026-07-24). Warm Ivory (#F7F3EB) reserved for in-card surfaces only.
   No OS theme toggle. === */
:root{
  /* Brand base — FifthStar constant */
  --bg:#0C0A08;            /* FifthStar Black — shell (header/hero/footer/final) */
  --ink:#F2ECE1;           /* primary text on dark */
  --mute:#A89E8C;          /* secondary text on dark */
  --ivory:#F7F3EB;         /* Warm Ivory — light sections & cards */
  --ink-dark:#0C0A08;      /* text on ivory */
  --mute-dark:#6B6354;     /* secondary text on ivory */
  /* Brand gold — FifthStar constant across every page (nav CTA, stars, eyebrow, footer, mark) */
  --gold:#D8B36A;
  --gold-soft:color-mix(in srgb,var(--gold) 40%,transparent);
  --line:color-mix(in srgb,var(--gold) 16%,transparent);      /* = rgba(216,179,106,.16) card border */
  --glass:color-mix(in srgb,var(--gold) 6%,transparent);
  /* Industry accent — ONE trust-building hue per family (20% personality), overridden per page */
  --accent:#D8B36A;
  --accent-soft:color-mix(in srgb,var(--accent) 38%,transparent);
  --accent-line:color-mix(in srgb,var(--accent) 16%,transparent);
  --accent-glass:color-mix(in srgb,var(--accent) 6%,transparent);
  /* Typography — UNIFIED master system (Playfair Display + Inter) */
  --head-font:"Playfair Display",Georgia,serif;
  --body-font:"Inter",system-ui,sans-serif;
  --display-weight:700;
  --display-spacing:-.01em;
  --hero-align:left;
  /* Type scale (DL v1.0) */
  --h1:clamp(2.5rem,5vw,4rem);      /* 40–64px */
  --h2:clamp(1.875rem,3.6vw,2.5rem);/* 30–40px */
  --h3:1.5rem;                        /* 24px */
  --body:1.125rem;                    /* 18px */
  --small:.875rem;                    /* 14px */
  /* Layout & surface */
  --maxw:75rem;                       /* 1200px */
  --radius:16px;                      /* card radius */
  --shadow:0 20px 60px rgba(0,0,0,.15);/* soft card shadow */
  --section-pad:7.5rem;               /* 120px desktop */
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{
  background:var(--bg);color:var(--ink);
  font-family:var(--body-font);line-height:1.7;font-variant-numeric:oldstyle-nums;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
::selection{background:color-mix(in srgb,var(--gold) 32%,transparent);color:var(--ink)}
h1,h2,h3{font-family:var(--head-font);font-weight:var(--display-weight);line-height:1.08;letter-spacing:var(--display-spacing)}
a{color:inherit;text-decoration:none}
.measure{max-width:44rem}
.measure-lg{max-width:56rem}
.lead{font-size:1.18rem;line-height:1.6;color:var(--mute)}
.rule{height:1px;background:var(--line);border:0;margin:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.5rem}
.eyebrow{font-family:"Inter",sans-serif;font-weight:600;letter-spacing:.22em;text-transform:uppercase;font-size:.72rem;color:var(--gold)}

/* === Shared visual techniques (from generate.mjs VISUAL_CSS) === */
/* Particles removed per DL v1.0 animation policy (no particles / heavy motion). */
.breathe-ring{position:absolute;width:22rem;height:22rem;border-radius:9999px;border:1px solid var(--accent-soft);animation:breathe 6s ease-in-out infinite}
.breathe-ring.delay{animation-delay:3s}
@keyframes breathe{0%,100%{transform:scale(1);opacity:.35}50%{transform:scale(1.35);opacity:.1}}
.gradient-text{background:linear-gradient(100deg,var(--ink),var(--accent),var(--ink));background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:shiny 6s linear infinite}
@keyframes shiny{0%{background-position:-200% center}100%{background-position:200% center}}
.glass-card{background:var(--accent-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--accent-line);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .4s cubic-bezier(.22,1,.36,1),border-color .4s,box-shadow .4s,background .4s}
.glass-card:hover{transform:translateY(-7px);border-color:var(--gold);box-shadow:0 30px 72px rgba(0,0,0,.22);background:color-mix(in srgb,var(--accent) 13%,transparent)}
.sig-mark{display:inline-flex;color:var(--gold)}
.sig-mark svg{width:100%;height:100%;display:block}
.sig-watermark{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:1}
.sig-wm-motif{width:min(72vw,36rem);height:min(72vw,36rem);color:var(--accent);opacity:.07}
.sig-wm-motif svg{width:100%;height:100%;display:block}

/* === Family signature focal emblem (the "mark" of each trade family) === */
.sig-focal{position:absolute;z-index:2;color:var(--accent);opacity:.55;pointer-events:none;user-select:none}
.sig-focal svg{width:100%;height:100%;display:block}
.sig-focal.flt{animation:sig-float 7s ease-in-out infinite}
/* sig-spin / sig-spin-slow removed — no 3D rotation per DL v1.0 */
.sig-focal.sweep{animation:sig-sweep 6.5s ease-in-out infinite}
.sig-focal.rise{animation:sig-rise 4.6s ease-in-out infinite}
.sig-focal.brth{animation:sig-breathe 6s ease-in-out infinite}
@keyframes sig-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
/* (sig-spin / sig-spin-slow keyframes removed per DL v1.0) */
@keyframes sig-sweep{0%,100%{transform:translateX(0);opacity:.42}50%{transform:translateX(11px);opacity:.66}}
@keyframes sig-rise{0%{transform:translateY(9px);opacity:.38}50%{transform:translateY(-9px);opacity:.72}100%{transform:translateY(9px);opacity:.38}}
@keyframes sig-breathe{0%,100%{transform:scale(1);opacity:.4}50%{transform:scale(1.13);opacity:.66}}

/* === Layout === */
.nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:color-mix(in srgb,var(--bg) 78%,transparent);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:4rem}
.brand{display:flex;align-items:center;gap:.6rem;font-family:var(--head-font);font-weight:700;font-size:1.15rem}
.brand .sig-mark{width:1.5rem;height:1.5rem}
.nav-cta{font-size:.85rem;font-weight:600;color:var(--bg);background:var(--gold);padding:.5rem .95rem;border-radius:.6rem;letter-spacing:.01em;display:inline-flex;align-items:center;min-height:2.75rem}
.nav-cta:hover{filter:brightness(1.08)}
.nav-link{font-size:.85rem;font-weight:600;color:var(--mute);transition:color .2s}
.nav-link:hover{color:var(--gold)}

/* === Responsive nav: mobile hamburger (comfortable, never cramped) === */
.nav-menu{display:flex;align-items:center;gap:1.2rem}
.nav-toggle{display:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:2.75rem;height:2.75rem;padding:0;border:1px solid var(--line);border-radius:.6rem;background:transparent;cursor:pointer}
.nav-toggle span{display:block;width:1.2rem;height:2px;background:var(--ink);border-radius:2px;transition:transform .22s ease,opacity .22s ease}
.nav.open .nav-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav.open .nav-toggle span:nth-child(2){opacity:0}
.nav.open .nav-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media (max-width:860px){
  .nav-in{position:relative}
  .nav-toggle{display:inline-flex}
  .nav-menu{
    display:none;position:absolute;left:0;right:0;top:4rem;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--bg);border-bottom:1px solid var(--line);
    padding:1rem 1.5rem 1.5rem;box-shadow:0 18px 40px rgba(0,0,0,.35);z-index:60;
  }
  .nav.open .nav-menu{display:flex}
  .nav-menu .nav-link{padding:.95rem .2rem;font-size:1.02rem;width:100%;border-bottom:1px solid var(--line)}
  .nav-menu .nav-cta{margin-top:1.1rem;width:100%;justify-content:center;min-height:3rem;font-size:.95rem}
}

/* === Services grid (hub) === */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.2rem;max-width:68rem;margin:2.2rem auto 0}
.svc-card{display:flex;flex-direction:column;gap:.7rem;padding:1.9rem 1.7rem}
.svc-ic{width:2.4rem;height:2.4rem;color:var(--gold);margin-bottom:.2rem}
.svc-ic svg{width:100%;height:100%;display:block}
.svc-card h3{font-size:1.35rem;margin-bottom:.1rem}
.svc-tag{color:var(--mute);font-size:.98rem;line-height:1.5}
.svc-list{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin:.35rem 0 .2rem}
.svc-list li{color:var(--mute);font-size:.92rem;line-height:1.5;padding-left:1.25rem;position:relative}
.svc-list li::before{content:"";position:absolute;left:0;top:.6rem;width:.45rem;height:.45rem;border-radius:9999px;background:var(--gold);opacity:.85}
.svc-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.7rem 1rem;margin-top:auto;padding-top:.95rem;border-top:1px solid var(--line)}
.svc-price{font-family:var(--head-font);font-weight:700;color:var(--gold);font-size:1.15rem;font-variant-numeric:tabular-nums lining-nums;white-space:nowrap;flex:none}
.svc-go{color:var(--ink);font-weight:600;font-size:.92rem;line-height:1.35;text-align:right}
.svc-card:hover .svc-go{color:var(--gold)}

/* === Steps (hub how-it-works) === */
.steps-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;max-width:64rem;margin:2.2rem auto 0}
@media(max-width:760px){.steps-3{grid-template-columns:1fr}}
.stepc{padding:1.7rem 1.5rem;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.6rem}
.stepc .lbl{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:600}
.stepc .body{color:var(--mute);font-size:.98rem;line-height:1.6}

.hero{position:relative;overflow:hidden;padding:var(--section-pad) 0 6rem}
.hero::before{content:"";position:absolute;left:50%;top:15%;width:40rem;height:40rem;transform:translate(-50%,-50%);background:radial-gradient(circle,var(--accent-soft),transparent 62%);opacity:.5;pointer-events:none;z-index:0}
.hero .breathe-ring{left:50%;top:30%;transform:translateX(-50%);z-index:1}
.hero-glow{position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(34rem 34rem at var(--mx,50%) var(--my,26%),color-mix(in srgb,var(--accent) 26%,transparent),transparent 60%);opacity:.82;transition:opacity .5s ease}
.hero-copy{position:relative;z-index:3;max-width:54rem;text-align:var(--hero-align,left)}
.hero h1{font-size:clamp(2.3rem,5.4vw,4rem);margin:1.1rem 0 1.4rem}
.hero .lead{max-width:40rem}
.cta-row{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2rem}
.btn{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:.95rem;padding:.85rem 1.4rem;border-radius:.7rem;transition:filter .2s,transform .2s}
.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn-gold{background:var(--gold);color:var(--bg);position:relative;overflow:hidden}
.btn-gold::after{content:"";position:absolute;top:0;left:-65%;width:55%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-18deg);pointer-events:none}
.btn-gold:hover::after{animation:sheen .9s ease}
@keyframes sheen{from{left:-65%}to{left:130%}}
.btn-ghost{border:1px solid color-mix(in srgb,var(--gold) 30%,transparent);color:var(--ink)}
.btn-ghost:hover{border-color:var(--gold)}

.section{padding:var(--section-pad) 0;position:relative}
.section.ivory{--ink:var(--ink-dark);--mute:var(--mute-dark);background:var(--ivory);color:var(--ink-dark)}
@media(max-width:680px){.section{padding:4rem 0}}
.section.alt{background:color-mix(in srgb,var(--accent) 4%,transparent)}
.sec-head{max-width:46rem;margin-bottom:2.6rem}
.sec-head h2{font-size:clamp(1.8rem,3.6vw,2.6rem);margin:.8rem 0 .9rem}

/* === Family signature bits === */
.hero-word{position:absolute;left:0;right:0;bottom:1.6rem;font-family:var(--head-font);font-weight:300;font-size:clamp(1.3rem,2.2vw,1.8rem);line-height:1;color:var(--ink);opacity:.14;text-align:center;letter-spacing:.42em;text-transform:uppercase;z-index:1;pointer-events:none;user-select:none;white-space:nowrap}
.accent-rule{height:3px;width:3.4rem;background:var(--accent);border-radius:2px;margin:.2rem 0 1.1rem}
.accent-rule.center{margin-left:auto;margin-right:auto}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;max-width:64rem;margin:2rem auto 0}
@media(max-width:680px){.grid-2{grid-template-columns:1fr}}
.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:2.6rem;align-items:center;max-width:64rem;margin:2rem auto 0}
@media(max-width:760px){.two-col{grid-template-columns:1fr;gap:1.6rem}}
.stack{display:flex;flex-direction:column;max-width:52rem;margin:2rem auto 0}
.stack.center{text-align:center;align-items:center}
.stack-item{padding:1.5rem 0;border-top:1px solid var(--accent-line)}
.stack-item:first-child{border-top:0}
.stack-item h3{font-size:1.3rem;margin-bottom:.5rem}
.stack-item p{color:var(--mute);font-size:1rem;line-height:1.65}
.svc{border-left:3px solid var(--accent)}
.band{height:7rem;border-radius:1rem;margin:2.2rem auto 0;max-width:64rem;background:linear-gradient(100deg,var(--accent-glass),var(--accent-soft));border:1px solid var(--accent-line);display:flex;align-items:center;justify-content:center;color:var(--mute);font-size:.85rem;letter-spacing:.04em;text-align:center;padding:0 1rem}
/* Count-up proof stats */
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;max-width:64rem;margin:2.6rem auto 0;text-align:center}
@media(max-width:680px){.stat-row{grid-template-columns:1fr}}
.stat{padding:2.2rem 1.2rem;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);background:var(--accent-glass)}
.stat .num{font-family:"Playfair Display",Georgia,serif;font-weight:700;font-size:clamp(2.4rem,4vw,3.2rem);color:var(--gold);line-height:1;font-variant-numeric:tabular-nums lining-nums}
.stat .lbl{margin-top:.8rem;color:var(--mute);font-size:.92rem;line-height:1.5}

/* === Trust (hero) === */
.stars{color:var(--gold);letter-spacing:.1em;font-size:1rem;line-height:1}
.trust-row{margin-top:2.2rem;display:flex;flex-direction:column;gap:.9rem;max-width:40rem}
.trust-top{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.trust-top .score{font-weight:700;color:var(--ink);font-size:.95rem}
.trust-note{color:var(--mute);font-size:.9rem}
.badges{display:flex;flex-wrap:wrap;gap:.5rem}
.badge{font-size:.74rem;font-weight:600;letter-spacing:.03em;color:var(--gold);border:1px solid var(--line);padding:.35rem .75rem;border-radius:9999px;background:var(--glass)}

/* === Generic card grid (used by category pages) === */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;max-width:64rem;margin:2rem auto 0}
@media(max-width:820px){.grid-3{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.grid-3{grid-template-columns:1fr}}

/* === Category cards (hub + category page nav) === */
.cat-card{display:block;padding:1.8rem 1.6rem;border-radius:var(--radius);position:relative;overflow:hidden;background:color-mix(in srgb,#fff 4%,var(--bg));border:1px solid var(--line);box-shadow:var(--shadow);transition:transform .25s,border-color .25s,background .25s}
.cat-card:hover{transform:translateY(-3px);border-color:var(--gold)}
.cat-ic{width:2.6rem;height:2.6rem;color:var(--gold);margin-bottom:1rem}
.cat-ic svg{width:100%;height:100%;display:block}
.cat-card h3{font-size:1.3rem;margin-bottom:.35rem}
.cat-card p{color:var(--mute);font-size:.9rem;padding-right:1.4rem}
.cat-card .arrow{position:absolute;right:1.3rem;bottom:1.3rem;color:var(--gold);font-size:1.2rem;opacity:.65;transition:transform .25s}
.cat-card:hover .arrow{transform:translateX(4px);opacity:1}

/* === Example-business cards (category page) === */
.ex-card{padding:1.8rem 1.6rem;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.9rem;transition:transform .25s,border-color .25s,box-shadow .25s}
.ex-card:hover{transform:translateY(-3px);border-color:var(--accent)}
.ex-card .ex-city{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:600}
.ex-card h3{font-size:1.35rem}
.ex-card .ex-meta{display:flex;align-items:center;gap:.6rem;color:var(--mute);font-size:.85rem}
.ex-card .ex-meta .stars{font-size:.85rem}
.ex-card .ex-desc{color:var(--mute);font-size:.92rem;line-height:1.6}
.ex-card .ex-link{margin-top:auto;color:var(--accent);font-weight:600;font-size:.88rem;display:inline-flex;align-items:center;gap:.4rem}
.ex-ph{font-size:.78rem;color:var(--mute);border:1px dashed var(--accent-line);border-radius:.6rem;padding:.7rem .9rem;text-align:center;background:var(--accent-glass)}

/* === Client (clean business) page blocks === */
.biz-hero{position:relative;overflow:hidden;padding:5rem 0 3.5rem}
.biz-hero::before{content:"";position:absolute;left:50%;top:12%;width:36rem;height:36rem;transform:translate(-50%,-50%);background:radial-gradient(circle,var(--accent-soft),transparent 62%);opacity:.5;pointer-events:none;z-index:0}
.biz-hero .eyebrow{margin-bottom:.7rem}
.biz-hero h1{font-size:clamp(2.2rem,5vw,3.6rem);margin:.4rem 0 1rem}
.biz-hero .tagline{font-size:1.15rem;color:var(--mute);max-width:42rem;line-height:1.55}
.biz-stat{display:flex;gap:2.4rem;flex-wrap:wrap;margin-top:1.8rem}
.biz-stat .s{display:flex;flex-direction:column}
.biz-stat .s b{font-family:var(--head-font);font-size:2.1rem;color:var(--gold);font-variant-numeric:tabular-nums lining-nums;line-height:1}
.biz-stat .s span{color:var(--mute);font-size:.8rem;letter-spacing:.04em;margin-top:.35rem}
.biz-about{max-width:46rem}
.biz-about p{color:var(--mute);font-size:1.05rem;line-height:1.7}
.biz-about p + p{margin-top:1rem}

/* highlights (menu / practice areas) */
.hl-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem 1.6rem;max-width:58rem;margin-top:1.6rem}
.hl{display:flex;gap:.7rem;color:var(--mute);font-size:.98rem;align-items:baseline}
.hl::before{content:'';flex:none;width:.5rem;height:.5rem;border-radius:9999px;background:var(--accent);margin-top:.55rem;opacity:.8}
@media(max-width:620px){.hl-grid{grid-template-columns:1fr}}

/* review showcase (clean: review + FifthStar reply) */
.review-showcase{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;max-width:64rem;margin-top:1.6rem}
@media(max-width:720px){.review-showcase{grid-template-columns:1fr}}
.review-block{padding:1.8rem;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:1.1rem}
.review-block .rb-stars{color:var(--gold);letter-spacing:.12em;font-size:1.05rem}
.review-block .rb-q{font-size:1.02rem;line-height:1.62;color:var(--ink)}
.review-block .rb-q .who{display:block;margin-top:.5rem;color:var(--mute);font-size:.8rem;font-style:italic}
.review-block .rb-reply{font-size:.95rem;line-height:1.62;color:var(--ink);background:var(--glass);border-left:3px solid var(--gold);border-radius:.5rem;padding:1rem 1.1rem}
.review-block .rb-reply .lbl{display:block;font-size:.66rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:.5rem}

/* business's own CTA (not FifthStar's) */
.biz-cta{text-align:center;padding:2.6rem 1.5rem;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);max-width:60rem;margin:2.6rem auto 0}
.biz-cta h3{font-size:1.6rem;margin-bottom:.5rem}
.biz-cta p{color:var(--mute);max-width:34rem;margin:0 auto 1.5rem}
.biz-cta .links{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center}
.biz-cta .links a{font-weight:600;font-size:.92rem;padding:.7rem 1.2rem;border-radius:.7rem;border:1px solid var(--line);color:var(--ink);transition:border-color .2s,filter .2s}
.biz-cta .links a:hover{border-color:var(--gold);filter:brightness(1.05)}
.biz-cta .links a.gold{background:var(--gold);color:var(--bg);border-color:var(--gold)}

/* "Site by FifthStar" credit — the only FifthStar mark on a client page */
.fs-credit{display:inline-flex;align-items:center;gap:.5rem;font-size:.82rem;color:var(--mute)}
.fs-credit .sig-mark{width:1.1rem;height:1.1rem}
.fs-credit b{color:var(--ink);font-weight:600}
.fs-credit:hover{color:var(--gold)}

/* === Inline CTA band === */
.cta-band{text-align:center;padding:2.6rem 1.5rem;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);max-width:60rem;margin:2.6rem auto 0}
.cta-band h3{font-size:1.55rem;margin-bottom:.5rem}
.cta-band p{color:var(--mute);max-width:34rem;margin:0 auto 1.5rem}

/* === Final CTA === */
.final{position:relative;overflow:hidden;text-align:center;padding:5rem 0}
.final h2{font-size:clamp(1.9rem,4vw,3rem);max-width:30rem;margin:0 auto 1rem}
.final .lead{margin:0 auto 2rem;max-width:34rem}
.guarantee{display:flex;flex-wrap:wrap;justify-content:center;gap:1.1rem 1.6rem;margin-top:2rem}
.guarantee .g{display:flex;align-items:center;gap:.5rem;color:var(--mute);font-size:.92rem}
.guarantee .g .tick{color:var(--gold);font-weight:700}

/* === Footer === */
.foot{padding:2.4rem 0;border-top:1px solid var(--line);color:var(--mute);font-size:.85rem;text-align:center}
.foot a{color:var(--gold)}
.foot-local{display:block;margin-top:1rem;max-width:38rem;margin-left:auto;margin-right:auto;font-size:.8rem;line-height:1.55;opacity:.8}

/* reveal — direct display (no scroll animation; motion off by design, 2026-07-26) */
.reveal{opacity:1;transform:none}
.reveal.in{opacity:1;transform:none}
/* Motion disabled by design: the page shows all content immediately — no
   entrance / scroll-reveal transitions, no decorative keyframe loops.
   This also fixes images wrapped in .reveal figures staying invisible. */
.breathe-ring,.gradient-text,.reveal,.sig-focal{animation:none!important;transition:none!important}
.sig-focal{opacity:.5}
@media (prefers-reduced-motion:reduce){
  .breathe-ring,.gradient-text,.reveal,.sig-focal{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  .sig-focal{opacity:.5}
}

/* GSAP hero pre-paint hide: only applied when motion is allowed (class set by an inline
   head script BEFORE paint). End state is forced via .fromTo autoAlpha:1, so content is
   never left hidden — if JS/GSAP is missing or disabled, the class is never added and the
   hero stays fully visible. */
html.gsap-hero .hero .eyebrow,
html.gsap-hero .hero h1,
html.gsap-hero .hero .lead,
html.gsap-hero .hero .cta-row,
html.gsap-hero .hero .trust-top,
html.gsap-hero .hero .badges{opacity:1}

/* footer reach row — Contact + social placeholders (depth-aware href set per page) */
.foot-reach{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;align-items:center;justify-content:center;margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid var(--line)}
.foot-reach .foot-contact{color:var(--gold);font-weight:700;font-size:.92rem}
.foot-reach .foot-social{display:inline-flex;flex-wrap:wrap;gap:.4rem .9rem}
.foot-reach .foot-social a{color:var(--ink);font-weight:600;font-size:.85rem;opacity:.85}
.foot-reach .foot-social a:hover{color:var(--gold);opacity:1}
.foot-reach .foot-legal{display:inline-flex;flex-wrap:wrap;gap:.4rem .7rem;font-size:.85rem;padding-left:.2rem}
.foot-reach .foot-legal a{color:var(--ink);font-weight:600;opacity:.85}
.foot-reach .foot-legal a:hover{color:var(--gold);opacity:1}
