/* ============================================================
   GOLD STRIPE goldstripefl.com design system
   Anchor: the approved business cards.
   Light sections = white card face (charcoal + gold on white).
   Dark footer/CTA = black card face (white + gold on charcoal).
   ============================================================ */

/* ---------- fonts (self-hosted) ---------- */
@font-face{font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/anton-400.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/barlow-condensed-500.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/barlow-condensed-600.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/barlow-condensed-700.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('/assets/fonts/inter-var.woff2') format('woff2')}

/* ---------- tokens ---------- */
:root{
  --paper:#FFFFFF;
  --paper-2:#F7F6F2;
  --ink:#23282E;
  --ink-soft:#50565E;
  --line:#E6E3DC;
  --gold:#F5B81C;
  --gold-hover:#E0A800;
  --gold-deep:#8F6E00;      /* gold for TEXT on light (AA) */
  --gold-tint:#FBF3DC;
  --charcoal:#23282E;
  --charcoal-deep:#1B1F24;
  --on-dark:#F4F3EF;
  --on-dark-soft:#B9BDC3;
  --line-dark:rgba(255,255,255,.14);
  --error:#B3392B;

  --font-display:'Anton','Arial Narrow',sans-serif;
  --font-label:'Barlow Condensed',sans-serif;
  --font-body:'Inter',system-ui,sans-serif;

  --fs-display:clamp(2.4rem,5.6vw,4rem);
  --fs-h2:clamp(1.8rem,3.8vw,2.6rem);
  --fs-h3:1.3rem;
  --fs-body:1.0625rem;

  --container:1140px;
  --gutter:clamp(1.25rem,4vw,2.5rem);
  --section-pad:clamp(3.75rem,8.5vw,7rem);

  --r-sm:4px; --r-md:8px; --r-lg:14px;
  --shadow-1:0 1px 2px rgba(35,40,46,.06);
  --shadow-2:0 12px 32px -12px rgba(35,40,46,.16);
  --ease:cubic-bezier(.22,1,.36,1);
}

/* ---------- base ---------- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);font-size:var(--fs-body);line-height:1.65;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
fieldset{border:0}
:focus-visible{outline:3px solid var(--gold-hover);outline-offset:3px;border-radius:2px}
[hidden]{display:none!important}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--charcoal);color:#fff;padding:10px 18px;z-index:200;font-family:var(--font-label);text-transform:uppercase;letter-spacing:.08em}
.skip-link:focus{left:12px;top:12px}
.wrap{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.wrap-narrow{max-width:820px}
.ico{display:inline-flex;flex:none}
.ico svg{width:1.15em;height:1.15em}

/* ---------- type helpers ---------- */
.kicker{font-family:var(--font-label);font-weight:600;text-transform:uppercase;letter-spacing:.18em;font-size:.95rem;color:var(--gold-deep)}
h1{font-family:var(--font-display);font-weight:400;text-transform:uppercase;line-height:1.02;letter-spacing:.012em;font-size:var(--fs-display);margin:.5rem 0 0}
h2{font-family:var(--font-display);font-weight:400;text-transform:uppercase;line-height:1.05;letter-spacing:.012em;font-size:var(--fs-h2)}
.sec-head{max-width:720px;margin:0 auto clamp(2.2rem,5vw,3.4rem);text-align:center}
.sec-head .lead{color:var(--ink-soft);margin-top:.9rem;font-size:clamp(1rem,1.6vw,1.125rem)}
.hl{background:linear-gradient(180deg,transparent 8%,var(--gold) 8% 92%,transparent 92%);padding:0 .12em;color:var(--charcoal)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;font-family:var(--font-label);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:1.06rem;padding:.82em 1.6em;border-radius:var(--r-sm);transition:transform .18s var(--ease),background .18s,border-color .18s,color .18s,box-shadow .18s;white-space:nowrap}
.btn .ico svg{width:1.05em;height:1.05em}
.btn-gold{background:var(--gold);color:var(--charcoal);box-shadow:var(--shadow-1)}
.btn-gold:hover{background:var(--gold-hover);transform:translateY(-1px)}
.btn-outline{border:2px solid var(--charcoal);color:var(--charcoal);background:transparent}
.btn-outline:hover{background:var(--charcoal);color:#fff;transform:translateY(-1px)}
.btn-dark{background:var(--charcoal);color:#fff}
.btn-dark:hover{background:var(--charcoal-deep);transform:translateY(-1px)}
.btn-sm{font-size:.98rem;padding:.68em 1.25em}
.btn-block{width:100%}


/* ---------- header ---------- */
#hdr{position:sticky;top:0;z-index:80;background:var(--paper);border-bottom:1px solid var(--line);transition:box-shadow .2s}
#hdr.scrolled{box-shadow:var(--shadow-1)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;height:76px}
.brand img{height:36px;width:auto}
.menu{display:flex;align-items:center;gap:1.9rem}
.nav-item{position:relative}
.menu .link{display:inline-flex;align-items:center;gap:.3em;font-family:var(--font-label);font-weight:600;text-transform:uppercase;letter-spacing:.09em;font-size:1.02rem;color:var(--ink-soft);padding:.4em 0;position:relative;transition:color .15s}
.menu .link .ico svg{width:.9em;height:.9em}
.menu .link::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2.5px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .2s var(--ease)}
.menu .link:hover,.menu .link[aria-current="page"]{color:var(--ink)}
.menu .link:hover::after,.menu .link[aria-current="page"]::after{transform:scaleX(1)}
.dd{position:absolute;top:calc(100% + 14px);left:-14px;min-width:240px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-2);padding:.5rem;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s,transform .18s,visibility .18s}
.has-dd:hover .dd,.has-dd:focus-within .dd{opacity:1;visibility:visible;transform:none}
.dd a{display:flex;align-items:center;gap:.5em;font-family:var(--font-label);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:1rem;color:var(--ink-soft);padding:.6em .8em;border-radius:var(--r-sm)}
.dd a:hover{background:var(--paper-2);color:var(--ink)}
.dd .all-link{border-top:1px solid var(--line);margin-top:.3rem;color:var(--gold-deep)}
.dd .all-link svg{width:.95em;height:.95em}
.nav-right{display:flex;align-items:center;gap:1.1rem}
.callnum{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-label);font-weight:700;letter-spacing:.04em;font-size:1.1rem;color:var(--ink);white-space:nowrap}
.callnum .ico{color:var(--gold-deep)}
.callnum:hover{color:var(--gold-deep)}
.burger{display:none;width:44px;height:44px;align-items:center;justify-content:center;border-radius:var(--r-sm);color:var(--ink);background:transparent;border:0;cursor:pointer}
.burger svg{width:26px;height:26px}

/* mobile menu */
.mobile-menu{position:fixed;top:64px;left:0;right:0;bottom:0;z-index:75;background:var(--paper);padding:1rem var(--gutter) 2rem;overflow-y:auto}
.mobile-menu[hidden]{display:none}
.mlink{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;font-family:var(--font-label);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:1.35rem;color:var(--ink);padding:1rem 0;border-bottom:1px solid var(--line)}
.mlink .ico svg{width:1em;height:1em}
.maccordion[aria-expanded="true"] .ico{transform:rotate(180deg)}
.msub{padding:.4rem 0 .6rem 1rem;border-bottom:1px solid var(--line)}
.msub a{display:block;font-family:var(--font-label);font-weight:500;text-transform:uppercase;letter-spacing:.07em;font-size:1.15rem;color:var(--ink-soft);padding:.55rem 0}
.mrow{display:flex;flex-direction:column;gap:.7rem;margin-top:1.4rem}
.mcontact{margin-top:1.2rem;text-align:center;color:var(--ink-soft)}
body.menu-open{overflow:hidden}

/* ---------- hero (full-bleed) ---------- */
.hero{position:relative;display:flex;align-items:center;min-height:clamp(540px,82vh,740px);overflow:hidden;background:var(--charcoal-deep)}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(20,23,27,.94) 0%,rgba(20,23,27,.86) 34%,rgba(20,23,27,.55) 62%,rgba(20,23,27,.2) 100%),linear-gradient(0deg,rgba(20,23,27,.55),transparent 42%)}
.hero-inner{position:relative;z-index:2;width:100%;padding-block:clamp(3rem,7vw,5rem)}
.hero-inner>*{max-width:640px}
.hero-eyebrow{font-family:var(--font-label);font-weight:600;text-transform:uppercase;letter-spacing:.2em;font-size:clamp(.82rem,1.4vw,.98rem);color:var(--gold)}
.hero h1{color:#fff;font-family:var(--font-display);font-weight:400;text-transform:uppercase;line-height:.98;letter-spacing:.01em;font-size:clamp(2.7rem,6.4vw,5rem);margin:1rem 0 0}
.hero h1 span{display:block}
.hero h1 .hero-gold{color:var(--gold)}
.hero-sub{color:rgba(255,255,255,.82);font-size:clamp(1.05rem,1.8vw,1.22rem);max-width:44ch;margin:1.5rem 0 0}
.hero-cta{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:2rem}
.btn-outline-light{border:2px solid rgba(255,255,255,.5);color:#fff;background:transparent}
.btn-outline-light:hover{background:#fff;color:var(--charcoal);border-color:#fff;transform:translateY(-1px)}
.trust-chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:2rem}
.hero .chip{color:rgba(255,255,255,.9);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(2px)}
.hero .chip .ico{color:var(--gold)}
.chip{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-label);font-weight:600;text-transform:uppercase;letter-spacing:.09em;font-size:.92rem;color:var(--ink-soft);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:.5em 1em}
.chip .ico{color:var(--gold-deep)}
.chip .ico svg{width:1em;height:1em}

/* ---------- sections ---------- */
.sec{padding:var(--section-pad) 0}
.sec.alt{background:var(--paper-2)}

/* services grid */
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.svc-grid.three{grid-template-columns:repeat(3,1fr)}
.svc-card{display:flex;flex-direction:column;gap:.5rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:1.7rem 1.5rem;transition:transform .2s var(--ease),box-shadow .2s,border-color .2s;position:relative;overflow:hidden}
.svc-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-2);border-color:#D8D4CA}
.svc-ico{display:inline-flex;width:56px;height:56px;align-items:center;justify-content:center;background:var(--gold);border-radius:var(--r-md);margin-bottom:.5rem}
.svc-ico svg{width:30px;height:30px}
.svc-ico.lg{width:64px;height:64px}
.svc-ico.lg svg{width:36px;height:36px}
.svc-card h3,.why-card h3,.serve-card h3,.scenario h3,.step h3,.proc-step h3{font-family:var(--font-label);font-weight:700;text-transform:uppercase;letter-spacing:.045em;font-size:1.32rem;color:var(--ink)}
.svc-card p{color:var(--ink-soft);font-size:.96rem}
.svc-more{display:inline-flex;align-items:center;gap:.4em;font-family:var(--font-label);font-weight:700;text-transform:uppercase;letter-spacing:.07em;font-size:.95rem;color:var(--gold-deep);margin-top:auto;padding-top:.6rem}
.svc-more svg{width:1em;height:1em;transition:transform .18s}
.svc-card:hover .svc-more svg{transform:translateX(3px)}

/* why cards */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.why-card{text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:2.1rem 1.6rem}
.why-ico{display:inline-flex;width:72px;height:72px;align-items:center;justify-content:center;background:var(--gold);border-radius:var(--r-md);margin:0 auto .9rem}
.why-card p{color:var(--ink-soft);font-size:.97rem;margin-top:.5rem}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;position:relative}
.step,.proc-step{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:1.8rem 1.6rem;position:relative}
.step-n{font-family:var(--font-display);font-size:2rem;color:transparent;-webkit-text-stroke:1.6px var(--gold-hover);line-height:1;display:block;margin-bottom:.7rem}
.step p,.proc-step p{color:var(--ink-soft);font-size:.97rem;margin-top:.4rem}
.process{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.1rem}

/* ADA band */
.ada-band{background:var(--gold-tint);border-top:1px solid #F0E4BC;border-bottom:1px solid #F0E4BC}
.ada-in{display:flex;align-items:center;justify-content:space-between;gap:2.5rem;padding:clamp(2.6rem,5.5vw,4rem) 0}
.ada-copy h2{margin-top:.5rem}
.ada-copy p{color:var(--ink-soft);max-width:56ch;margin:.9rem 0 1.4rem}
.ada-mark svg{width:clamp(96px,12vw,132px);height:auto}

/* city chips */
.city-chips{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}
.city-chips span{font-family:var(--font-label);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:.95rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:.5em 1.05em}
.chip-link{display:inline-flex;align-items:center;gap:.4em;font-family:var(--font-label);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.95rem;color:var(--charcoal);background:var(--gold);border-radius:999px;padding:.5em 1.05em;transition:background .18s}
.chip-link:hover{background:var(--gold-hover)}
.chip-link svg{width:1em;height:1em}

/* FAQ */
.faq{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;list-style:none;font-family:var(--font-label);font-weight:600;font-size:1.22rem;letter-spacing:.02em;color:var(--ink);padding:1.15rem .25rem;transition:color .15s}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{color:var(--gold-deep)}
.faq-icon{position:relative;flex:none;width:20px;height:20px}
.faq-icon::before,.faq-icon::after{content:"";position:absolute;left:50%;top:50%;translate:-50% -50%;background:var(--gold-hover);border-radius:2px;transition:transform .25s var(--ease)}
.faq-icon::before{width:16px;height:3px}
.faq-icon::after{width:3px;height:16px}
.faq-item[open] .faq-icon::after{transform:rotate(90deg)}
.faq-a{padding:0 .25rem 1.25rem;color:var(--ink-soft);max-width:68ch}

/* ---------- CTA band (black card face) ---------- */
.cta-band{background:var(--charcoal);position:relative;overflow:hidden}
.cta-in{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;padding:clamp(2.8rem,6vw,4.2rem) 0}
.cta-h{color:#fff;max-width:20ch}
.cta-h .hl{background:none;color:var(--gold);padding:0}
.cta-sub{color:var(--on-dark-soft);margin-top:.6rem}
.cta-actions{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap}
.cta-tel{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-label);font-weight:600;letter-spacing:.04em;font-size:1.12rem;color:var(--on-dark)}
.cta-tel .ico{color:var(--gold)}
.cta-tel:hover{color:var(--gold)}
.cta-tel.dark-link{color:var(--ink)}
.cta-tel.dark-link .ico{color:var(--gold-deep)}
.cta-tel.dark-link:hover{color:var(--gold-deep)}

/* ---------- subpage header ---------- */
.page-head{background:linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%);padding-top:clamp(1.6rem,3.5vw,2.6rem)}
.page-head .wrap{padding-bottom:clamp(2.4rem,5.5vw,4rem)}
.page-head.slim .wrap{padding-bottom:clamp(1.8rem,4vw,2.8rem)}
.page-lead{color:var(--ink-soft);font-size:clamp(1.02rem,1.7vw,1.15rem);max-width:64ch;margin-top:1.2rem}
.head-cta{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;margin-top:1.6rem}
.crumbs{margin-bottom:1.1rem}
.crumbs ol{display:flex;flex-wrap:wrap;gap:.35em;font-family:var(--font-label);font-weight:500;text-transform:uppercase;letter-spacing:.08em;font-size:.88rem;color:var(--ink-soft)}
.crumbs li+li::before{content:"/";margin-right:.35em;color:#B9B4A8}
.crumbs a:hover{color:var(--gold-deep)}
.crumbs [aria-current="page"]{color:var(--ink)}

/* services hub rows */
.svc-rows{display:flex;flex-direction:column;gap:1.1rem}
.svc-row{display:flex;gap:1.6rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:1.9rem;transition:box-shadow .2s,transform .2s var(--ease)}
.svc-row:hover{box-shadow:var(--shadow-2)}
.svc-row-body h2{font-size:1.5rem}
.svc-row-body h2 a:hover{color:var(--gold-deep)}
.svc-row-body>p{color:var(--ink-soft);margin:.5rem 0 .9rem;max-width:70ch}
.mini-list{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin-bottom:.9rem}
.mini-list li{display:inline-flex;align-items:center;gap:.45em;font-size:.94rem;color:var(--ink-soft)}
.mini-list .ico{color:var(--gold-deep)}
.mini-list .ico svg{width:1em;height:1em}
.not-sure{text-align:center;color:var(--ink-soft);margin-top:2.4rem}
.not-sure a{color:var(--gold-deep);font-weight:600;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}

/* service detail */
.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.9rem 2rem;max-width:880px;margin:0 auto}
.check-grid li{display:flex;align-items:flex-start;gap:.7em;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:1rem 1.2rem;font-size:1rem}
.check-grid .ico{color:var(--gold-deep);margin-top:.15em}
.check-grid .ico svg{width:1.1em;height:1.1em}
.scenario-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.scenario{background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:var(--r-md);padding:1.6rem 1.5rem}
.scenario p{color:var(--ink-soft);font-size:.97rem;margin-top:.5rem}

/* service area */
.area-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,3.6rem);align-items:start}
.county{margin-bottom:1.9rem}
.county h2{font-family:var(--font-label);font-weight:700;text-transform:uppercase;letter-spacing:.07em;font-size:1.25rem;margin-bottom:.8rem;display:flex;align-items:center;gap:.6em}
.county .city-chips{justify-content:flex-start}
.area-visual{position:sticky;top:100px}
.bay-art{width:100%;height:auto}
.serve-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.serve-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:1.7rem 1.5rem}
.serve-ico{display:inline-flex;width:52px;height:52px;align-items:center;justify-content:center;background:var(--gold);border-radius:var(--r-md);margin-bottom:.8rem}
.serve-ico svg{width:30px;height:30px}
.serve-card p{color:var(--ink-soft);font-size:.95rem;margin-top:.4rem}

/* about */
.about-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(2rem,5vw,3.5rem);align-items:start}
.about-copy p{margin-bottom:1.2rem;max-width:64ch;color:var(--ink)}
.about-copy p+p{color:var(--ink-soft)}
.about-card{background:var(--charcoal);border-radius:var(--r-lg);padding:2.2rem;color:var(--on-dark);text-align:center}
.about-logo{width:min(230px,80%);height:auto;margin:0 auto 1.4rem}
.about-card h2{color:#fff;font-family:var(--font-label);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:1.5rem}
.about-role{font-family:var(--font-label);font-weight:600;text-transform:uppercase;letter-spacing:.24em;color:var(--gold);margin:.2rem 0 1.4rem}
.about-line{display:flex;align-items:center;justify-content:center;gap:.6em;padding:.5rem 0;color:var(--on-dark);font-size:1.02rem}
.about-line .ico{color:var(--gold)}
a.about-line:hover{color:var(--gold)}

/* ---------- quote page ---------- */
.quote-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.8rem,4vw,3rem);align-items:start}
.qform{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.5rem,3.5vw,2.4rem);box-shadow:var(--shadow-1)}
.qprogress{display:flex;gap:8px;margin-bottom:.9rem}
.qseg{flex:1;height:8px;border-radius:99px;background:var(--paper-2);border:1px solid var(--line);position:relative;overflow:hidden}
.qseg::after{content:"";position:absolute;inset:0;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.qseg.done::after,.qseg.cur::after{transform:scaleX(1)}
.qseg.done{background:var(--gold);border-color:var(--gold)}
.qseg.done::after{background:none}
.qstep-label{font-family:var(--font-label);font-weight:600;text-transform:uppercase;letter-spacing:.12em;font-size:.9rem;color:var(--gold-deep);margin-bottom:1.3rem}
.qlegend{font-family:var(--font-display);font-weight:400;text-transform:uppercase;font-size:1.55rem;letter-spacing:.015em;margin-bottom:1.2rem}
.qcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.8rem}
.qcard{position:relative;display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;border:1.5px solid var(--line);border-radius:var(--r-md);padding:1.2rem .8rem;cursor:pointer;transition:border-color .15s,background .15s,transform .15s var(--ease)}
.qcard:hover{transform:translateY(-2px)}
.qcard input{position:absolute;opacity:0;pointer-events:none}
.qcard-ico{display:inline-flex;width:52px;height:52px;align-items:center;justify-content:center;background:var(--gold);border-radius:var(--r-md);color:var(--charcoal)}
.qcard-ico svg{width:32px;height:32px}
.qcard-t{font-family:var(--font-label);font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-size:1rem}
.qcard:has(input:checked){border-color:var(--gold-hover);background:var(--gold-tint);box-shadow:inset 0 0 0 1px var(--gold-hover)}
.qcard:has(input:focus-visible){outline:3px solid var(--gold-hover);outline-offset:2px}
.qfield{margin-bottom:1.15rem}
.qrow{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.qfield label,.qlabel{display:block;font-family:var(--font-label);font-weight:600;text-transform:uppercase;letter-spacing:.09em;font-size:.9rem;color:var(--ink-soft);margin-bottom:.45rem}
.req{color:var(--gold-deep)}
.qfield input[type=text],.qfield input[type=tel],.qfield input[type=email],.qfield select,.qfield textarea{width:100%;background:var(--paper);border:1.5px solid var(--line);border-radius:var(--r-sm);color:var(--ink);font-family:var(--font-body);font-size:1rem;padding:.75em .85em;transition:border-color .15s}
.qfield input:focus,.qfield select:focus,.qfield textarea:focus{outline:none;border-color:var(--gold-hover);box-shadow:0 0 0 3px var(--gold-tint)}
.qfield textarea{resize:vertical;min-height:88px}
.qfield select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2350565E' stroke-width='2.4'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8em center;padding-right:2.4em}
.qradios{display:flex;flex-direction:column;gap:.45rem}
.qradios label{display:flex;align-items:center;gap:.6em;font-family:var(--font-body);font-weight:400;text-transform:none;letter-spacing:0;font-size:1rem;color:var(--ink);cursor:pointer;margin:0}
.qradios input{width:18px;height:18px;accent-color:var(--gold-hover)}
.qerr{color:var(--error);font-size:.88rem;margin-top:.4rem}
.qfield.invalid input,.qfield.invalid select{border-color:var(--error)}
.qnav{display:flex;gap:.8rem;margin-top:1.6rem}
.qnav .btn{flex:1}
.qnote{font-size:.85rem;color:var(--ink-soft);text-align:center;margin-top:.9rem}
.qstatus{margin-top:1.1rem;border-radius:var(--r-md);padding:1rem 1.1rem;font-size:.98rem}
.qstatus.ok{background:var(--gold-tint);border:1px solid var(--gold)}
.qstatus.err{background:#FBE9E6;border:1px solid #E5B4AC}
.qstatus a{font-weight:600;text-decoration:underline;text-underline-offset:3px}
.qsuccess{text-align:center;padding:2.5rem 1rem}
.qsuccess .ok-ring{width:88px;height:88px;margin:0 auto 1.4rem}
.qsuccess h2{margin-bottom:.6rem}
.qsuccess p{color:var(--ink-soft)}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.quote-side{display:flex;flex-direction:column;gap:1.1rem}
.side-card{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.8rem}
.side-card h2{font-family:var(--font-label);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:1.25rem;margin-bottom:1rem}
.side-line{display:flex;align-items:center;gap:.6em;padding:.45rem 0;color:var(--ink-soft);font-size:1rem}
.side-line .ico{color:var(--gold-deep)}
a.side-line:hover{color:var(--ink)}
.side-card .btn{margin-bottom:.7rem}
.side-steps li{display:flex;gap:.8em;align-items:flex-start;padding:.5rem 0;color:var(--ink-soft)}
.side-steps span{flex:none;width:26px;height:26px;border-radius:50%;background:var(--gold);color:var(--charcoal);font-family:var(--font-label);font-weight:700;font-size:.95rem;display:flex;align-items:center;justify-content:center;margin-top:.1em}

/* ---------- footer (black card face) ---------- */
footer{background:var(--charcoal);color:var(--on-dark)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:2.2rem;padding:clamp(2.8rem,6vw,4.2rem) var(--gutter)}
.foot-brand img{width:220px;height:auto;margin-bottom:1rem}
.foot-brand p{color:var(--on-dark-soft);font-size:.96rem;max-width:30ch}
.foot-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.1rem}
.foot-chips span{font-family:var(--font-label);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;color:var(--on-dark-soft);border:1px solid var(--line-dark);border-radius:999px;padding:.35em .85em}
.foot-col h4{font-family:var(--font-label);font-weight:700;text-transform:uppercase;letter-spacing:.16em;font-size:.92rem;color:var(--gold);margin-bottom:1rem}
.foot-col a,.foot-col p{display:block;color:var(--on-dark-soft);font-size:.98rem;padding:.28rem 0}
.foot-col a:hover{color:var(--gold)}
.foot-owner{color:var(--on-dark)!important;font-weight:500}
.foot-bottom{background:var(--charcoal-deep)}
.foot-bottom-in{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1.1rem;padding-bottom:1.1rem;color:var(--on-dark-soft);font-size:.86rem}
.foot-bottom-in span:last-child{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.1em}

/* ---------- brand icon images ---------- */
.ico-img{display:block;width:100%;height:100%;object-fit:contain}
.svc-ico .ico-img,.serve-ico .ico-img{width:66%;height:66%}
.why-ico .ico-img{width:64%;height:64%}
.ada-mark{display:inline-flex;align-items:center;justify-content:center;background:var(--gold);border-radius:var(--r-lg);width:clamp(120px,14vw,160px);height:clamp(120px,14vw,160px)}
.ada-mark .ico-img{width:62%;height:62%}
.qcard-ico .ico-img{width:78%;height:78%}

/* ---------- 404 ---------- */
.nf-in{text-align:center;max-width:560px;margin:0 auto}
.nf-code{font-family:var(--font-display);font-size:clamp(4rem,12vw,7rem);line-height:1;color:var(--gold);margin-bottom:.4rem}
.nf-in h1{font-size:clamp(2rem,5vw,3rem)}
.nf-in p{color:var(--ink-soft);margin:1rem 0 1.8rem}
.nf-in .hero-cta{justify-content:center}

/* ---------- chat widget (light restyle) ---------- */
#gsFab{position:fixed;right:20px;bottom:20px;z-index:90;width:58px;height:58px;border-radius:50%;background:var(--gold);color:var(--charcoal);box-shadow:0 10px 26px rgba(35,40,46,.28);display:flex;align-items:center;justify-content:center;transition:transform .18s var(--ease),background .18s}
#gsFab:hover{background:var(--gold-hover);transform:translateY(-2px)}
#gsFab svg{width:26px;height:26px}
#gsFab .dot{position:absolute;top:-2px;right:-2px;width:15px;height:15px;border-radius:50%;background:#3ECF6A;border:3px solid #fff}
#gsChat{position:fixed;right:20px;bottom:20px;z-index:95;width:min(380px,calc(100vw - 32px));height:min(540px,calc(100vh - 40px));background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 24px 60px rgba(35,40,46,.3);display:flex;flex-direction:column;overflow:hidden}
#gsChat[hidden]{display:none}
.gsc-head{display:flex;align-items:center;gap:.7rem;padding:.85rem .9rem;background:var(--charcoal);color:#fff}
.gsc-logo{height:20px;width:auto;margin-bottom:2px}
.gsc-ttl{flex:1;min-width:0}

.gsc-ttl small{color:var(--on-dark-soft);font-size:.78rem;display:flex;align-items:center;gap:.4em}
.gsc-ttl small::before{content:"";width:7px;height:7px;border-radius:50%;background:#3ECF6A}
.gsc-x{width:32px;height:32px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;color:var(--on-dark-soft)}
.gsc-x:hover{color:#fff;background:rgba(255,255,255,.08)}
.gsc-x svg{width:18px;height:18px}
.gsc-body{flex:1;overflow-y:auto;padding:1rem .9rem;display:flex;flex-direction:column;gap:.6rem;background:var(--paper-2)}
.gsc-msg{max-width:84%;padding:.65em .9em;border-radius:12px;font-size:.94rem;line-height:1.5;overflow-wrap:break-word}
.gsc-bot{align-self:flex-start;background:var(--paper);border:1px solid var(--line);border-bottom-left-radius:4px;color:var(--ink)}
.gsc-user{align-self:flex-end;background:var(--gold);color:var(--charcoal);border-bottom-right-radius:4px;font-weight:500}
.gsc-msg a{color:var(--gold-deep);text-decoration:underline;text-underline-offset:2px}
.gsc-user a{color:var(--charcoal)}
.gsc-typing{align-self:flex-start;display:flex;gap:4px;padding:.8em .9em;background:var(--paper);border:1px solid var(--line);border-radius:12px;border-bottom-left-radius:4px}
.gsc-typing i{width:6px;height:6px;border-radius:50%;background:var(--ink-soft);animation:gsb 1s infinite}
.gsc-typing i:nth-child(2){animation-delay:.15s}.gsc-typing i:nth-child(3){animation-delay:.3s}
@keyframes gsb{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.gsc-chips{display:flex;flex-wrap:wrap;gap:.45rem;padding:.6rem .9rem;background:var(--paper-2)}
.gsc-chips:empty{padding:0}
.gsc-chip{font-family:var(--font-label);font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:.45em .9em;transition:border-color .15s,color .15s}
.gsc-chip:hover{border-color:var(--gold-hover);color:var(--gold-deep)}
.gsc-foot{display:flex;gap:.5rem;padding:.7rem;border-top:1px solid var(--line);background:var(--paper)}
.gsc-foot input{flex:1;border:1.5px solid var(--line);border-radius:var(--r-sm);font-size:.95rem;padding:.6em .75em;font-family:var(--font-body)}
.gsc-foot input:focus{outline:none;border-color:var(--gold-hover)}
.gsc-send{background:var(--gold);border-radius:var(--r-sm);width:42px;flex:none;color:var(--charcoal);display:flex;align-items:center;justify-content:center}
.gsc-send:hover{background:var(--gold-hover)}
.gsc-send svg{width:18px;height:18px}
.gsc-note{text-align:center;font-size:.68rem;color:var(--ink-soft);padding:0 0 .55rem;background:var(--paper)}
.gsc-note a{text-decoration:underline}

/* ---------- reveal animation (fail-safe: visible without JS) ---------- */
.reveal{transition:opacity .55s var(--ease),transform .55s var(--ease)}
html.js .reveal{opacity:0;transform:translateY(16px)}
html.js .reveal.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1020px){
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .svc-grid.three{grid-template-columns:repeat(3,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .menu,.callnum,.nav-right .btn{display:none}
  .burger{display:flex}
  .nav{height:64px}
  .brand img{height:30px}
  .area-grid,.about-grid,.quote-grid{grid-template-columns:1fr}
  .area-visual{position:static;max-width:460px;margin:0 auto}
  .ada-in{flex-direction:column;align-items:flex-start}
  .ada-mark{display:none}
  .serve-grid,.scenario-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:600px){
  .svc-grid,.svc-grid.three,.why-grid,.steps,.serve-grid,.scenario-grid,.check-grid,.qrow{grid-template-columns:1fr}
  .svc-row{flex-direction:column;gap:1rem}
  .hero-cta{flex-direction:column;align-items:stretch}
  .hero-cta .btn{justify-content:center}
  .cta-in{flex-direction:column;align-items:flex-start}
  .foot-grid{grid-template-columns:1fr;gap:1.6rem}
  .qnav{flex-direction:column-reverse}
  #gsFab{right:14px;bottom:14px}
  #gsChat{right:8px;bottom:8px}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  html.js .reveal{opacity:1;transform:none}
}

/* ---------- print ---------- */
@media print{
  #hdr,.mobile-menu,#gsFab,#gsChat,.cta-band,footer{display:none}
}

/* ---------- interactive service map ---------- */
#svcMap{width:100%;height:440px;border-radius:var(--r-lg);border:1px solid var(--line);box-shadow:var(--shadow-1);z-index:1}
.map-note{font-size:.85rem;color:var(--ink-soft);margin-top:.6rem;text-align:center}
.leaflet-popup-content-wrapper{border-radius:8px;font-family:var(--font-body)}
.leaflet-popup-content{font-size:.92rem;color:var(--ink)}
.leaflet-container a{color:var(--gold-deep)}

/* ---------- reviews (placeholder cards) ---------- */
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.rev-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:1.5rem 1.4rem;box-shadow:var(--shadow-1)}
.rev-head{display:flex;align-items:center;gap:.7rem;margin-bottom:.8rem;flex-wrap:wrap}
.rev-ava{width:42px;height:42px;border-radius:50%;background:var(--charcoal);color:var(--gold);font-family:var(--font-label);font-weight:700;font-size:1.15rem;display:flex;align-items:center;justify-content:center;flex:none}
.rev-meta{flex:1;min-width:0}
.rev-meta b{display:block;font-size:.98rem;line-height:1.2}
.rev-meta small{color:var(--ink-soft);font-size:.8rem}
.stars{display:inline-flex;gap:2px}
.stars svg{width:16px;height:16px}
.rev-card>p{color:var(--ink-soft);font-size:.95rem}

/* ---------- before/after slider ---------- */
.ba{position:relative;aspect-ratio:16/9;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-2);user-select:none}
.ba-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba-before{clip-path:inset(0 calc(100% - var(--pos,50%)) 0 0)}
.ba-handle{position:absolute;top:0;bottom:0;left:var(--pos,50%);width:3px;background:#fff;transform:translateX(-50%);box-shadow:0 0 8px rgba(0,0,0,.35);pointer-events:none}
.ba-grip{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:var(--gold);border:3px solid #fff;box-shadow:0 2px 10px rgba(0,0,0,.3)}
.ba-grip::before,.ba-grip::after{content:"";position:absolute;top:50%;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;transform:translateY(-50%)}
.ba-grip::before{left:7px;border-right:7px solid #23282E}
.ba-grip::after{right:7px;border-left:7px solid #23282E}
.ba-range{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.ba-tag{position:absolute;bottom:12px;font-family:var(--font-label);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.85rem;padding:.3em .8em;border-radius:4px;pointer-events:none}
.ba-tag-b{left:12px;background:rgba(35,40,46,.85);color:#fff}
.ba-tag-a{right:12px;background:var(--gold);color:var(--charcoal)}

/* ---------- photo band ---------- */
.photo-band{padding:0 0 var(--section-pad)}
.photo-band img{width:100%;height:auto;border-radius:var(--r-lg);border:1px solid var(--line);box-shadow:var(--shadow-1)}

@media (max-width:900px){
  .rev-grid{grid-template-columns:repeat(2,1fr)}
  #svcMap{height:380px}
}
@media (max-width:600px){
  .rev-grid{grid-template-columns:1fr}
  #svcMap{height:320px}
}

/* ---------- review carousel ---------- */
.rev-carousel{position:relative;display:flex;align-items:stretch;gap:.9rem}
.rev-track{display:flex;gap:1.1rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px;flex:1;scrollbar-width:none}
.rev-track::-webkit-scrollbar{display:none}
.rev-track .rev-card{flex:0 0 calc((100% - 2.2rem)/3);scroll-snap-align:start}
.rev-nav{flex:none;align-self:center;width:46px;height:46px;border-radius:50%;background:var(--gold);color:var(--charcoal);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-1);transition:background .15s,transform .15s}
.rev-nav:hover{background:var(--gold-hover);transform:scale(1.05)}
.rev-nav svg{width:20px;height:20px}
.rev-prev svg{transform:rotate(180deg)}
@media (max-width:900px){.rev-track .rev-card{flex-basis:calc((100% - 1.1rem)/2)}}
@media (max-width:600px){.rev-track .rev-card{flex-basis:88%}.rev-nav{display:none}}

/* ---------- county labels on map ---------- */
.county-label{background:transparent;border:0;box-shadow:none;font-family:var(--font-label);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.85rem;color:var(--charcoal)}
.county-label::before{display:none}

/* ---------- stacked sliders ---------- */
.ba-stack{display:flex;flex-direction:column;gap:1.6rem}

/* unbreakable name/number chunks */
.nb{white-space:nowrap;display:inline-block}
.about-line>span{display:inline}
