:root{--ink:#111;--paper:#faf8f4;--card:#fff;--gold:#c9952a;--gold2:#e7b54a;--goldtint:#fbf1dc;--mute:#5f5a52;--line:#e6e1d8;--dark:#0f0f0f;--tint:#f2eee6}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 Inter,-apple-system,"Segoe UI",Roboto,sans-serif;overflow-x:hidden}
h1,h2,h3{font-family:"Playfair Display",Georgia,serif;line-height:1.15;margin:0 0 8px;font-weight:700}
h2{font-size:28px}h3{font-size:19px}
a{color:inherit}img,video{max-width:100%}
button{font:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:8px 12px;z-index:99}.skip:focus{left:8px}
.wrap{max-width:1120px;margin:0 auto;padding:0 16px}.narrow{max-width:800px}
.center{text-align:center}.center .lead{margin-left:auto;margin-right:auto}.center .btns{margin:0 auto;justify-content:center}
.refbar{background:var(--gold);color:#111;font-weight:700;font-size:14px;text-align:center;padding:8px 16px}
/* header */
.top{position:sticky;top:0;z-index:30;background:var(--dark);color:#fff;border-bottom:1px solid #222}
.top .wrap{display:flex;align-items:center;gap:12px;height:64px}
.logo img{height:40px;width:auto;display:block}
.nav{display:none;gap:20px;margin-left:auto;font-size:14px}.nav a{text-decoration:none;opacity:.85}.nav a[aria-current]{opacity:1;color:var(--gold2)}
.call{margin-left:auto;background:var(--gold);color:#111;font-weight:800;text-decoration:none;padding:10px 14px;border-radius:10px;font-size:14px;white-space:nowrap}
.burger{background:none;border:0;color:#fff;font-size:26px;padding:4px 6px;line-height:1}
.menu{background:#151515;border-top:1px solid #262626}
.menu a{display:block;color:#fff;text-decoration:none;padding:14px 16px;border-bottom:1px solid #222}
@media(min-width:900px){.nav{display:flex}.call{margin-left:18px}.burger,.menu{display:none!important}}
/* hero */
.hero{position:relative;color:#fff;background:#111;overflow:hidden}
.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.4}
.hero .wrap{position:relative;padding:52px 16px 44px}
.eyebrow{color:var(--gold2);letter-spacing:3px;font-size:12px;font-weight:800;text-transform:uppercase;margin:0}
.hero h1{font-size:34px;margin:12px 0 14px;max-width:780px}.hero h1 em{color:var(--gold2)}
.hero .sub{max-width:640px;font-size:18px;opacity:.93;margin:0 0 22px}
.hero.small .wrap{padding:40px 16px 34px}.hero.small h1{font-size:32px}
@media(min-width:640px){.hero h1{font-size:54px}.hero.small h1{font-size:44px}}
.btns{display:flex;flex-direction:column;gap:10px;max-width:540px}
@media(min-width:640px){.btns{flex-direction:row}}
.btn{display:block;text-align:center;font-weight:800;text-decoration:none;padding:15px 18px;border-radius:12px;font-size:16px;border:0;flex:1}
.btn.gold{background:var(--gold);color:#111}.btn.ghost{background:transparent;border:1.5px solid #fff;color:#fff}.btn.dark{background:var(--dark);color:#fff}
.btn.wide{width:100%;margin-top:14px}
.proof{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:24px 0 0;padding:0;list-style:none;max-width:560px}
.proof li{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:12px;padding:10px;text-align:center}
.proof b{display:block;font-size:22px;color:var(--gold2)}.proof span{font-size:12px;opacity:.88}
/* sections */
section{padding:52px 0}
.lead{color:var(--mute);margin:0 0 24px;max-width:660px}
.dark{background:var(--dark);color:#fff}.dark .lead{color:#c9c3b9}
.tint{background:var(--tint)}
.cta{margin:20px 0 0;max-width:320px}.gap{margin-top:32px}
.grid{display:grid;gap:14px}
@media(min-width:700px){.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;color:var(--ink)}
.pad{padding:16px}
.svc img{width:100%;height:190px;object-fit:cover;display:block}
.svc p{margin:0;color:var(--mute);font-size:15px}
.more{display:inline-block;margin-top:12px;font-weight:800;font-size:15px;color:#8a6216;background:none;border:0;padding:0;text-decoration:none}
ul.ticks{list-style:none;padding:0;margin:10px 0 0}ul.ticks li{padding:3px 0 3px 26px;position:relative;font-size:15px}
ul.ticks li:before{content:"\2713";position:absolute;left:0;color:var(--gold);font-weight:800}
ul.ticks.big li{font-size:17px;padding:5px 0 5px 28px}
.step{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:16px;padding:18px}
.step .n{width:34px;height:34px;border-radius:50%;background:var(--gold);color:#111;font-weight:800;display:flex;align-items:center;justify-content:center;margin-bottom:10px}
.step p{margin:0;color:#d3cdc3;font-size:15px}
.light .step{background:#fff;border-color:var(--line)}.light .step p{color:var(--mute)}
.gal{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media(min-width:700px){.gal{grid-template-columns:repeat(4,1fr)}}
.gal figure,.vids figure{margin:0;position:relative;border-radius:12px;overflow:hidden;background:#ddd}
.gal figure{aspect-ratio:1}
.gal img{width:100%;height:100%;object-fit:cover;display:block}
.gal figcaption{position:absolute;left:0;right:0;bottom:0;padding:8px 10px;font-size:12px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.8))}
.vids{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(min-width:700px){.vids{grid-template-columns:repeat(4,1fr)}}
.vids video{width:100%;aspect-ratio:9/16;object-fit:cover;display:block;background:#000}
.vids figcaption{padding:8px 10px;font-size:13px;background:#fff}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.filters button{border:1.5px solid #d5cfc4;border-radius:99px;padding:8px 14px;font-size:15px;background:#fff}
.filters button[aria-pressed=true]{border-color:var(--gold);background:var(--goldtint);font-weight:800}
[data-hide]{display:none!important}
.rev{margin:0}.rev .stars{color:var(--gold);letter-spacing:2px}.rev blockquote{margin:8px 0;font-size:15px}.rev figcaption{color:var(--mute);font-size:14px}
.towns{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.towns li{background:#fff;border:1px solid var(--line);border-radius:99px;padding:8px 14px;font-size:15px;color:var(--ink)}
details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:8px 0}
summary{font-weight:800;cursor:pointer}details p{margin:8px 0 0;color:var(--mute)}
.story{font-size:18px}
.contact{list-style:none;padding:0;margin:0 0 20px}
.contact li{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}
.contact b{display:block;word-break:break-word}.contact span{color:var(--mute);font-size:14px}.contact a{text-decoration:none}
.ico{width:40px;height:40px;border-radius:10px;background:var(--goldtint);display:flex;align-items:center;justify-content:center;font-size:19px;flex:none}
ol.nums{padding-left:22px}ol.nums li{margin:0 0 10px;font-size:17px}
.formcard h2{font-size:24px}
.qr{background:#fff;padding:12px;border-radius:12px;display:inline-block;border:1px solid var(--line)}.qr img{display:block;width:220px;height:220px}
.code{font-weight:800;font-size:18px;word-break:break-all}
.legal h1{font-size:34px}.legal h2{font-size:22px;margin-top:26px}.legal p,.legal li{color:#2a2723}
/* forms */
input,select,textarea{width:100%;font-size:16px;padding:12px;border:1px solid #cfc8bc;border-radius:10px;background:#fff;font-family:inherit;margin:6px 0;color:var(--ink)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
fieldset{border:0;padding:0;margin:0 0 14px}legend{font-weight:800;font-size:15px;margin-bottom:6px;padding:0}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pill input{position:absolute;opacity:0;width:1px;height:1px}
.pill span{display:inline-block;border:1.5px solid #cfc8bc;border-radius:99px;padding:9px 13px;font-size:15px;background:#fff;cursor:pointer}
.pill input:checked+span{border-color:var(--gold);background:var(--goldtint);font-weight:800}
.pill input:focus-visible+span{outline:3px solid var(--gold);outline-offset:2px}
.check{display:flex;gap:10px;align-items:flex-start;margin:10px 0;font-size:15px}.check input{width:18px;height:18px;margin:3px 0 0;flex:none;accent-color:var(--gold)}
.check.small{font-size:12.5px;color:var(--mute);line-height:1.5}
.hint{font-size:13.5px;color:var(--mute);margin:4px 0 0}
.err{color:#a32d2d;font-weight:700;font-size:14px}
.refnote{background:var(--goldtint);border-radius:10px;padding:10px 12px;font-weight:700;font-size:14px}
.callline{font-weight:800;margin:14px 0 0;font-size:15px}
.modal{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.62);overflow:auto;padding:12px}
.modal .sheet{position:relative;background:var(--paper);border-radius:18px;max-width:600px;margin:12px auto;padding:22px 16px}
.modal h2{padding-right:40px}
.x{position:absolute;right:12px;top:12px;border:1px solid var(--line);background:#fff;border-radius:50%;width:38px;height:38px;font-size:16px}
body.lock{overflow:hidden}
.mbar{position:sticky;bottom:0;z-index:25;display:flex;gap:8px;padding:10px 12px;background:rgba(15,15,15,.97)}
.mbar a,.mbar button{flex:1;text-align:center;font-weight:800;text-decoration:none;padding:12px;border-radius:10px;font-size:15px}
.mbar .b1{background:var(--gold);color:#111;border:0}.mbar .b2{background:transparent;border:1.5px solid #fff;color:#fff}
@media(min-width:900px){.mbar{display:none}}
.foot{background:var(--dark);color:#c9c3b9;padding:36px 0 22px;font-size:14px}
.foot .cols{display:grid;gap:20px}@media(min-width:700px){.foot .cols{grid-template-columns:2fr 1fr 1fr}}
.foot b{color:#fff;display:block;margin-bottom:6px}.foot a{display:block;text-decoration:none;padding:3px 0}.foot p a{display:inline}
.foot .fine{margin-top:20px;font-size:12px;opacity:.75}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* reviews marquee: slow right to left, pauses on hover or touch */
.marquee{overflow:hidden;padding:4px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marquee .track{display:flex;gap:14px;width:max-content;animation:apr-marquee 70s linear infinite;padding-left:14px}
.marquee .rev{width:300px;flex:none}
@media(min-width:700px){.marquee .rev{width:360px}}
.marquee:hover .track,.marquee:active .track,.marquee:focus-within .track{animation-play-state:paused}
@keyframes apr-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marquee{overflow-x:auto}.marquee .track{animation:none}}
/* services AI tag, referral page */
.svc .ph{position:relative}.aitag{position:absolute;left:10px;bottom:10px;z-index:1;background:rgba(15,15,15,.78);color:#fff;font-size:11.5px;font-weight:700;letter-spacing:.3px;padding:4px 8px;border-radius:6px}
.refsec{padding-top:28px}.refsec .formcard{max-width:560px;margin:0 auto}
.earn{list-style:none;padding:0;margin:0 0 12px}.earn li{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:0 0 8px}
.earn b{color:#8a6216;white-space:nowrap}
.svc .duo{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:#fff}.svc .duo img{height:190px;object-position:center top}

.picnote{margin:18px 0 0;font-size:13px;color:#77706a;text-align:center}.picnote a{color:inherit;text-decoration:underline}
.promo video{width:100%;height:auto;aspect-ratio:16/9;display:block;background:#000;border-radius:12px}
.hero h1 .nw{white-space:nowrap}
/* Home town map (Geo 11/9) */
.tmap{display:grid;gap:16px;margin:26px 0 8px}
@media(min-width:900px){.tmap{grid-template-columns:1fr 340px;align-items:start}}
.tmap-frame{position:relative;border-radius:18px;overflow:hidden;border:1px solid rgba(231,181,74,.35);box-shadow:0 18px 50px rgba(0,0,0,.45);background:#1b1916}
.tmap-canvas{width:100%;aspect-ratio:4/3;background:#1b1916}
@media(min-width:900px){.tmap-canvas{aspect-ratio:16/10}}
.tmap-label{position:absolute;left:14px;top:14px;background:rgba(15,15,15,.82);backdrop-filter:blur(4px);border:1px solid rgba(231,181,74,.4);border-radius:12px;padding:8px 14px;pointer-events:none}
.tmap-label span{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold2);font-weight:700}
.tmap-label b{font-family:inherit;font-size:20px;color:#fff}
.tmap-off .tmap-canvas{display:none}.tmap-off .tmap-label{position:static}
.tmap-dot{width:12px;height:12px;border-radius:50%;background:var(--gold2);border:2px solid #141210;box-shadow:0 0 0 3px rgba(231,181,74,.25);cursor:pointer;transition:transform .3s}
.tmap-dot.on{transform:scale(1.7);box-shadow:0 0 0 6px rgba(231,181,74,.3),0 0 24px rgba(231,181,74,.8)}
.tmap-list{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:6px 14px}
.tmap-list summary{cursor:pointer;font-weight:700;color:#fff;padding:10px 0;list-style:none;display:flex;justify-content:space-between;align-items:center}
.tmap-list summary::-webkit-details-marker{display:none}
.tmap-list summary::after{content:"\25BE";color:var(--gold2);transition:transform .2s}.tmap-list[open] summary::after{transform:rotate(180deg)}
.tmap-list ul{list-style:none;margin:0 0 8px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px}
@media(min-width:900px){.tmap-list ul{grid-template-columns:1fr 1fr;max-height:430px;overflow:auto;padding-right:4px}.tmap-list button{font-size:14px;padding:8px 10px}}
.tmap-list button{width:100%;text-align:left;background:transparent;border:1px solid rgba(255,255,255,.12);color:#fff;border-radius:10px;padding:9px 12px;font:inherit;font-size:15px;cursor:pointer;min-height:40px}
.tmap-list button:hover,.tmap-list button.on{border-color:var(--gold2);background:rgba(231,181,74,.14);color:var(--gold2)}
.maplibregl-ctrl-attrib{font-size:10px}
.townmap{background:radial-gradient(circle at 85% 10%,rgba(214,161,42,.18),transparent 45%),#141210}
.townmap h2{font-size:clamp(30px,5vw,48px)}
.vids figure.wide video{object-fit:contain}
