/* Door-factory finder chrome V2.1 — consumer-marketplace UX over the network
   design canon (shared navy ink foundation + PER-DOOR ACCENT identity, satellite
   look idioms: value anchoring, Apple-Maps-style action buttons, pinned bottom
   action bar). Theme values resolve from config.theme over build_door.py
   THEME_DEFAULTS.

   Identity pass 2026-08-02 (DESIGN_SYSTEM.md, find* family): identity-bearing
   surfaces run on --accent* custom properties. Doors that define config
   theme.accent* get their own accent (oil amber / STAR blue / fuel green);
   doors that don't fall back to the network gold — zero visual change for
   legacy finder configs. Gold stays reserved for the FEATURED premium tier and
   the network trustbar on every door. */
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700;800&display=swap');

:root{
  --navy:#0f2942; --navy-700:#173a5c; --navy-50:#eef3f8;
  --gold:#c9a227; --gold-deep:#a8851a; --gold-ink:#6f560f; --gold-bg:#fbf5e3; --gold-line:#ecdcac;
  --star:#e6a817;
  --bg:#eef2f6; --surface:#ffffff; --ink:#16212e; --mut:#5b6875; --line:#e3e9f0;
  /* per-door accent tokens — default to the gold family (legacy doors keep
     today's look); overridden below when config theme.accent* is set.
     --accent-contrast = text ON accent fills; --accent-hero = accent variant
     that clears AA on the navy hero. All pairs AA-verified per door. */
  --accent:var(--gold); --accent-deep:var(--gold-deep); --accent-ink:var(--gold-ink);
  --accent-bg:var(--gold-bg); --accent-line:var(--gold-line);
  --accent-contrast:var(--navy); --accent-hero:var(--gold);
  --r:14px; --r-sm:10px; --maxw:720px; --bar-h:62px;
  --f-body:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --f-display:"Archivo",-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --sh-sm:0 1px 2px rgba(16,33,52,.05),0 1px 3px rgba(16,33,52,.07);
  --sh-md:0 6px 20px rgba(16,33,52,.10);
  --sh-feat:0 8px 26px rgba(168,133,26,.16),0 1px 3px rgba(16,33,52,.08);
}
:root{
  --accent:#f59e0b; --accent-deep:#b45309; --accent-ink:#8a4a06;
  --accent-bg:#fdf3e3; --accent-line:#f3d9ae;
  --accent-contrast:#0f2942; --accent-hero:#f7a92d;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{font:16px/1.6 var(--f-body);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
::selection{background:var(--accent);color:var(--accent-contrast)}

/* ── Hero (search-first, booking-style) ─────────────────────────────────── */
header.hero{background:linear-gradient(176deg,var(--navy-700),var(--navy) 70%);color:#fff;padding:26px 16px 30px;position:relative}
header.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent-hero),transparent)}
.hero-in{max-width:var(--maxw);margin:0 auto;text-align:center}
.logo{font-family:var(--f-display);font-size:clamp(24px,5vw,28px);font-weight:800;letter-spacing:-.5px;display:inline-flex;align-items:center;gap:8px;line-height:1}
a.logo{text-decoration:none}
.logo .lg-a{color:#fff}.logo .lg-b{color:var(--accent-hero)}
.logo .fmark{width:.92em;height:.92em;flex:0 0 auto;color:var(--accent-hero)}
.hh1{font-family:var(--f-display);font-size:clamp(27px,6.4vw,40px);font-weight:800;letter-spacing:-.8px;line-height:1.08;margin:18px auto 8px;max-width:16ch;text-wrap:balance;color:#fff}
.hsub{font-size:14.5px;line-height:1.55;opacity:.88;margin:0 auto 18px;max-width:52ch;color:#fff}
.searchbox{background:var(--surface);border-radius:16px;box-shadow:0 14px 38px rgba(4,14,25,.35),0 2px 6px rgba(4,14,25,.2);padding:14px;max-width:560px;margin:0 auto;text-align:left}
.row{display:flex;gap:9px}
input[type=text]{flex:1;min-width:0;font-size:16px;padding:14px 15px;border:1.5px solid #cfd8e1;border-radius:var(--r-sm);background:#fff;color:var(--ink)}
input[type=text]::placeholder{color:#93a1ad}
input[type=text]:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(15,41,66,.13)}
button.go{background:var(--accent);color:var(--accent-contrast);border:0;border-radius:var(--r-sm);font-family:var(--f-display);font-size:16px;font-weight:800;letter-spacing:.3px;padding:13px 24px;min-height:48px;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s,transform .05s}
button.go:hover{background:var(--accent-deep);color:#fff;box-shadow:0 5px 16px rgba(15,41,66,.24)}
button.go:active{transform:scale(.985)}
button.go:disabled{opacity:.6;cursor:default}
button.loc{width:100%;margin-top:10px;background:var(--navy-50);border:1.5px solid #dfe7ef;border-radius:var(--r-sm);color:var(--navy);font-size:15px;font-weight:700;cursor:pointer;padding:12px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.15s}
button.loc:hover{border-color:var(--navy);background:#fff}
button.loc svg{width:17px;height:17px}
.chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:18px auto 0;max-width:560px}
.chip{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border:1px solid rgba(255,255,255,.22);border-radius:999px;font-size:12.5px;font-weight:600;color:rgba(255,255,255,.92);background:rgba(255,255,255,.07);line-height:1.4}
.chip b{color:var(--accent-hero);font-weight:800}

/* ── Layout / typography ────────────────────────────────────────────────── */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 16px}
.crumb{font-size:13px;color:var(--mut);margin:16px 0 6px}
.crumb a{color:var(--navy);text-decoration:none;font-weight:600}
.crumb a:hover{text-decoration:underline}
h1{font-family:var(--f-display);font-size:clamp(26px,5.4vw,33px);font-weight:800;color:var(--navy);letter-spacing:-.7px;line-height:1.12;margin:6px 0 8px}
.lede{font-size:16.5px;line-height:1.65;color:var(--ink);margin-bottom:16px;max-width:64ch}
.lede a,.seo a,footer a,.aeo a{color:var(--navy);font-weight:600}
.wrap h2{font-family:var(--f-display);font-size:19px;font-weight:700;color:var(--navy);letter-spacing:-.2px;line-height:1.3;margin:30px 0 12px;position:relative;padding-left:13px}
.wrap h2::before{content:"";position:absolute;left:0;top:.18em;bottom:.18em;width:4px;border-radius:2px;background:var(--accent)}

/* Mini header (city + doc pages) */
header.mini{background:linear-gradient(178deg,var(--navy-700),var(--navy));color:#fff;padding:18px 16px 20px;text-align:center;position:relative}
header.mini::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent-hero),transparent)}
header.mini .tag{font-size:13px;line-height:1.5;opacity:.85;margin:6px auto 0;color:#fff;max-width:560px}

/* Trust bar (value anchor — network gold, deliberately NOT the door accent) */
.trustbar{background:var(--gold-bg);border:1px solid var(--gold-line);border-radius:12px;padding:11px 15px;margin:16px auto 0;font-size:14px;color:var(--gold-ink);text-align:center;line-height:1.5}
.trustbar b{color:var(--navy);font-weight:800}

/* Status */
#status{margin:16px 2px;font-size:14.5px;color:var(--mut);font-weight:500;scroll-margin-top:12px}
#status a{color:var(--navy);font-weight:600}

/* ── Venue cards ────────────────────────────────────────────────────────── */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin-bottom:12px;box-shadow:var(--sh-sm);transition:box-shadow .15s,border-color .15s;position:relative}
.card:hover{box-shadow:var(--sh-md);border-color:#cdd8e2}
.nm{font-family:var(--f-display);font-size:17.5px;font-weight:700;color:var(--navy);line-height:1.25;letter-spacing:-.2px}
.addr{font-size:14px;color:var(--mut);margin:4px 0 0}
.chiprow{margin-top:7px}
.okchip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;font-size:11.5px;font-weight:700;letter-spacing:.3px;color:var(--accent-ink);background:var(--accent-bg);border:1px solid var(--accent-line);line-height:1.3}
.rate{display:flex;align-items:center;gap:7px;margin-top:6px;font-size:13.5px}
.rate b{color:var(--navy)}
.rate .rev{color:var(--mut);font-size:12.5px}
.strs{position:relative;display:inline-block;width:74px;height:14px;line-height:1}
.strs::before,.strs i::before{content:"★★★★★";font-size:14px;letter-spacing:1.4px;color:#d7dee5;position:absolute;left:0;top:0}
.strs i{position:absolute;left:0;top:0;height:100%;overflow:hidden}
.strs i::before{color:var(--star)}
.meta{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:13px;font-size:14px}
.dist{display:inline-flex;align-items:center;font-weight:700;font-size:13px;color:var(--navy);background:var(--navy-50);border:1px solid #dfe7ef;border-radius:8px;padding:6px 11px;line-height:1}
a.act{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 15px;border:1.5px solid var(--line);border-radius:999px;color:var(--navy);font-weight:600;font-size:13.5px;text-decoration:none;background:var(--surface);transition:.15s;line-height:1.2}
a.act:hover{border-color:var(--navy);background:#f7f9fb}
a.act.call{background:var(--navy);color:#fff;border-color:var(--navy);font-weight:700}
a.act.call:hover{background:var(--navy-700)}
.lic{font-size:11.5px;color:#8894a0;margin-left:auto;letter-spacing:.2px;white-space:nowrap}

/* Featured (premium tier — network gold on every door, never the accent) */
.card.feat{border:1.5px solid var(--gold);box-shadow:var(--sh-feat);overflow:hidden;padding-top:18px}
.card.feat::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold-deep),var(--gold) 45%,#e8cf6d)}
.card.feat:hover{border-color:var(--gold-deep)}
.featbadge{display:inline-flex;align-items:center;gap:5px;margin-bottom:11px;padding:5px 11px;font-family:var(--f-display);font-size:10.5px;font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:var(--gold-ink);background:var(--gold-bg);border:1px solid var(--gold-line);border-radius:999px;line-height:1}
.card.feat a.act.call{background:var(--gold);color:var(--navy);border-color:var(--gold-deep);font-weight:800;font-size:14px}
.card.feat a.act.call:hover{background:var(--gold-deep);color:#fff}

/* ── AEO / FAQ ──────────────────────────────────────────────────────────── */
.aeo{margin:30px 0 6px}
.faq-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:10px;box-shadow:var(--sh-sm)}
.faq-item summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;font-family:var(--f-display);font-weight:700;font-size:15px;color:var(--navy);line-height:1.35}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-size:20px;font-weight:600;color:var(--accent-deep);flex:0 0 auto;line-height:1}
.faq-item[open] summary::after{content:"–"}
.faq-a{padding:0 16px 14px;font-size:14.5px;line-height:1.65;color:var(--ink)}
.faq-a ul{margin:8px 0 0 18px}
.faq-a li{margin-bottom:4px}
.faq-src{margin-top:9px;font-size:12px;color:var(--mut)}

/* ── SEO sections / city chips ──────────────────────────────────────────── */
section.seo{margin:26px 0 22px;font-size:16px}
section.seo p{color:var(--ink);line-height:1.7;margin-bottom:10px}
.cities{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.cities a{display:inline-flex;align-items:center;padding:8px 13px;background:var(--surface);border:1px solid var(--line);border-radius:999px;font-size:13.5px;font-weight:600;color:var(--navy);text-decoration:none;box-shadow:var(--sh-sm);transition:.15s;line-height:1.2}
.cities a:hover{border-color:var(--accent);color:var(--accent-ink)}
ul.citylist{list-style:none;margin:14px 0}
ul.citylist li{border-bottom:1px solid var(--line)}
ul.citylist a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 4px;color:var(--navy);font-weight:600;text-decoration:none;font-size:15px}
ul.citylist a:hover{color:var(--accent-ink)}
ul.citylist .ct{font-size:12.5px;color:var(--mut);font-weight:500;white-space:nowrap}

/* ── Doc pages (/about/, /privacy/) — utility-official, muted conversion ── */
body.doc .wrap{max-width:640px}
.doc-meta{font-size:12.5px;color:var(--mut);letter-spacing:.2px;margin:2px 0 18px}
.doc p{font-size:15.5px;line-height:1.7;color:var(--ink);margin-bottom:12px;max-width:65ch}
.doc ul{margin:0 0 12px 20px;font-size:15.5px;line-height:1.7}
.doc li{margin-bottom:6px}
.doc .card{padding:14px 18px}
.doc h2{scroll-margin-top:16px}

/* Footer (official: nav + data provenance + publisher line) */
footer{margin:38px 0 46px;padding-top:20px;border-top:1px solid var(--line);text-align:center;font-size:12.5px;line-height:1.7;color:#8a97a3}
footer a{color:var(--navy);font-weight:600}
footer .fnav{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 20px;margin-bottom:9px;font-size:13px}
footer .fnav a{text-decoration:none}
footer .fnav a:hover{color:var(--accent-ink);text-decoration:underline}
footer .prov,footer .cop{display:block}
footer .prov{color:#77848f}

/* ── Pinned bottom action bar (satellite idiom) ─────────────────────────── */
.bar{position:fixed;left:0;right:0;bottom:0;z-index:9000;background:rgba(11,23,37,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid rgba(255,255,255,.12);padding:8px 10px calc(8px + env(safe-area-inset-bottom))}
.bar [hidden]{display:none!important}
.bar .b-geo{width:100%;min-height:46px;display:flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);color:var(--accent-contrast);border:0;border-radius:999px;font-family:var(--f-display);font-weight:800;font-size:14px;letter-spacing:.2px;cursor:pointer}
.bar .b-geo svg{width:17px;height:17px}
.bar .b-geo:active{transform:scale(.985)}
.b-acts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.b-acts a{display:flex;align-items:center;justify-content:center;gap:6px;min-height:46px;border-radius:999px;text-decoration:none;font-family:var(--f-display);font-weight:700;font-size:12px;letter-spacing:.04em}
.b-acts a svg{width:16px;height:16px;flex:0 0 auto}
.b-acts a span{white-space:nowrap}
.b-acts .b-call{background:var(--accent);color:var(--accent-contrast)}
.b-acts .b-maps{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.2)}
.b-acts a:active{transform:scale(.97)}
body.home,body.citypage{padding-bottom:calc(var(--bar-h) + env(safe-area-inset-bottom) + 14px)}
@media(min-width:761px){.bar{display:none}body.home,body.citypage{padding-bottom:0}}

/* Spinner */
.spin{display:inline-block;width:14px;height:14px;border:2px solid #cfd8e1;border-top-color:var(--navy);border-radius:50%;animation:s .7s linear infinite;vertical-align:-2px;margin-right:7px}
@keyframes s{to{transform:rotate(360deg)}}

/* Mobile */
@media(max-width:430px){
  .row{flex-direction:column}
  .row .go{width:100%}
  .searchbox{padding:12px}
  .meta{gap:8px}
  .lic{margin-left:0;flex-basis:100%;order:9}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .spin{animation:none}
  .bar .b-geo:active,.b-acts a:active,button.go:active{transform:none}
}
