/* BetterPresence starter – shared by every site. Per-site look = the :root tokens in index.html only. */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important} /* filters hide cards with the hidden attribute; .listing{display:flex} would otherwise win */
/* scroll-padding keeps focused/anchored elements clear of the sticky header and the mobile action bar (WCAG 2.2 SC 2.4.11, technique C43) */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:80px;scroll-padding-bottom:88px}
@media (min-width:768px){html{scroll-padding-bottom:16px}}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.65 var(--font-body);text-rendering:optimizeLegibility;font-feature-settings:var(--bg-forms,"locl" 0)}
img{max-width:100%;height:auto;display:block}
a{color:var(--brand)}
h1,h2,h3{font-family:var(--font-display);line-height:1.15;margin:0 0 .5em;color:var(--ink);text-wrap:balance}
h1{font-size:clamp(2rem,6vw,3.4rem)}
h2{font-size:clamp(1.6rem,4vw,2.4rem)}
h3{font-size:1.2rem}
p{margin:0 0 1em}
.wrap{width:min(1120px,100% - 32px);margin-inline:auto}
section{padding:clamp(56px,9vw,104px) 0;scroll-margin-top:72px}
.eyebrow{display:inline-block;font:600 .8rem/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--brand);margin-bottom:12px}
.lead{font-size:1.15rem;color:var(--muted);max-width:60ch}
.muted{color:var(--muted)}
.alt{background:var(--surface)}
.skew-top{clip-path:polygon(0 4vw,100% 0,100% 100%,0 100%);margin-top:-4vw;padding-top:calc(4vw + clamp(56px,9vw,104px))}

/* buttons – ≥44px tap targets */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 22px;border-radius:var(--radius);font:600 1rem/1 var(--font-body);text-decoration:none;border:2px solid var(--brand);transition:transform .15s}
.btn-primary{background:var(--brand);color:var(--brand-ink)}
.btn-ghost{background:transparent;color:var(--brand)}
/* the glow is a pre-rendered shadow that only fades in: animating box-shadow itself repaints every frame (references/auto-ux.md §2, finding 4) */
.btn::after{content:"";position:absolute;inset:-2px;border-radius:inherit;box-shadow:0 8px 20px -8px var(--brand);opacity:0;transition:opacity .15s;pointer-events:none}
.btn:hover{transform:translateY(-2px)}
.btn:hover::after{opacity:1}
.btn:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}

/* header */
.site-header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid color-mix(in srgb,var(--ink) 8%,transparent)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px}
.brand{font:700 1.15rem/1.1 var(--font-display);color:var(--ink);text-decoration:none}
.nav{display:none;gap:22px}
.nav a{color:var(--ink);text-decoration:none;font-weight:500}
.nav a:hover{color:var(--brand)}
.header-phone{font-weight:700;text-decoration:none;white-space:nowrap}
@media (min-width:900px){.nav{display:flex}}

/* hero */
.hero{padding-top:clamp(32px,6vw,80px)}
.hero .wrap{display:grid;gap:32px;align-items:center}
.hero-media img{border-radius:calc(var(--radius) * 1.5);aspect-ratio:4/3;object-fit:cover;width:100%}
@media (min-width:900px){.hero .wrap{grid-template-columns:1.1fr 1fr}}

/* trust bar */
.trust{padding:20px 0;border-block:1px solid color-mix(in srgb,var(--ink) 8%,transparent)}
.trust ul{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 36px;list-style:none;margin:0;padding:0;font-weight:600}
.trust strong{color:var(--brand);font-size:1.25rem;margin-right:6px}

/* cards & grids */
.grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:32px}
.card{background:var(--surface);border-radius:var(--radius);padding:24px;box-shadow:0 1px 2px rgb(0 0 0/.04),0 8px 24px -12px rgb(0 0 0/.12);transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-4px);box-shadow:0 2px 4px rgb(0 0 0/.05),0 18px 36px -16px rgb(0 0 0/.22)}
.card svg{width:40px;height:40px;color:var(--brand);margin-bottom:12px}
.price{font-weight:700;color:var(--brand)}
.gallery{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));margin-top:32px}
.gallery img{border-radius:var(--radius);aspect-ratio:1;object-fit:cover;width:100%}
blockquote{margin:0}
.review cite{display:block;margin-top:12px;font-style:normal;font-weight:600}
.review .src{color:var(--muted);font-weight:400}
.steps{counter-reset:step}
.steps .card::before{counter-increment:step;content:"0" counter(step);display:block;font:700 2.2rem/1 var(--font-display);color:var(--accent);margin-bottom:8px}

/* faq */
details{background:var(--surface);border-radius:var(--radius);padding:4px 20px;margin-bottom:10px}
summary{cursor:pointer;font-weight:600;padding:14px 0;min-height:44px;list-style-position:outside}
details[open] summary{color:var(--brand)}

/* contact */
.contact-grid{display:grid;gap:32px}
@media (min-width:900px){.contact-grid{grid-template-columns:1fr 1fr}}
.contact-list{list-style:none;padding:0;margin:0 0 24px;display:grid;gap:12px;font-size:1.1rem}
.hours{border-collapse:collapse;width:100%}
.hours td{padding:6px 0;border-bottom:1px solid color-mix(in srgb,var(--ink) 8%,transparent)}
.map-link img{border-radius:var(--radius)}

/* footer */
.site-footer{background:var(--footer-bg,var(--ink));color:var(--footer-ink,var(--bg));padding:48px 0 calc(48px + 72px)}
.site-footer a{color:inherit}
.site-footer .wrap{display:grid;gap:24px}
@media (min-width:768px){.site-footer{padding-bottom:48px}.site-footer .wrap{grid-template-columns:2fr 1fr 1fr}}

/* sticky mobile action bar – how BG customers actually reach a business */
.action-bar{position:fixed;inset:auto 0 0 0;z-index:30;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:var(--surface);box-shadow:0 -6px 20px -10px rgb(0 0 0/.25)}
.action-bar .btn{width:100%}
@media (min-width:768px){.action-bar{display:none}}

/* reveal – CSS only, content always visible without JS or support */
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .reveal{animation:reveal linear both;animation-timeline:view();animation-range:entry 0% entry 40%}
    @keyframes reveal{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
  }
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* ===== Optional components (delete from a site's copy if unused) ===== */

/* hero-cover: full-bleed photo with text on a gradient – for strong own photos (cars, rooms, food) */
.hero-cover{position:relative;min-height:min(88vh,760px);display:grid;align-items:end;padding:0;color:#fff;isolation:isolate;overflow:hidden}
.hero-cover>picture img,.hero-cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero-cover::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgb(0 0 0/.15) 0%,rgb(0 0 0/.25) 40%,rgb(0 0 0/.88) 100%)}
.hero-cover .wrap{padding-block:120px 56px}
.hero-cover h1,.hero-cover .lead{color:#fff}
.hero-cover .lead{color:rgb(255 255 255/.86)}
.hero-cover .btn-ghost{color:#fff;border-color:rgb(255 255 255/.7)}
.hero-cover .wrap>*{max-width:620px}
@media (min-width:900px){
  .hero-cover::before{background:linear-gradient(90deg,rgb(0 0 0/.9) 0%,rgb(0 0 0/.7) 32%,rgb(0 0 0/.15) 62%,transparent 80%),linear-gradient(180deg,transparent 55%,rgb(0 0 0/.7) 100%)}
  .hero-cover>picture img,.hero-cover>img{object-position:var(--hero-focus,70% 50%)}
  .hero-cover .wrap{padding-block:140px 72px}
}

/* section head with a count / link on the right */
.section-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px 24px}
.section-head h2{margin:0}

/* chips (filters) – real buttons, aria-pressed carries the state, not colour alone */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;align-items:center}
.chip{min-height:44px;padding:8px 16px;border-radius:999px;border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);background:transparent;color:var(--ink);font:500 .95rem/1 var(--font-body);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);font-weight:700}
.chip[aria-pressed="true"]::before{content:"✓ "}
.filters select{min-height:44px;padding:8px 12px;border-radius:var(--radius);background:var(--surface);color:var(--ink);border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);font:inherit;margin-left:auto}
.result-count{color:var(--muted);margin:16px 0 0}

/* listing cards – cars, rooms, products */
.listings{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));margin-top:24px}
.listing{display:flex;flex-direction:column;background:var(--surface);border-radius:var(--radius);overflow:hidden;border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);transition:transform .2s,border-color .2s}
.listing:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--brand) 60%,transparent)}
.listing .media{position:relative;aspect-ratio:4/3;overflow:hidden;background:color-mix(in srgb,var(--ink) 6%,transparent)}
.listing .media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.listing:hover .media img{transform:scale(1.05)}
.badges{position:absolute;left:10px;top:10px;display:flex;flex-wrap:wrap;gap:6px}
.badge{background:rgb(0 0 0/.72);color:#fff;font:600 .75rem/1 var(--font-body);padding:6px 9px;border-radius:999px;backdrop-filter:blur(6px)}
.listing .body{display:flex;flex-direction:column;gap:10px;padding:18px;flex:1}
.listing h3{margin:0;font-size:1.3rem}
.listing .sub{color:var(--muted);font-size:.92rem;margin:0}
.specs{display:flex;flex-wrap:wrap;gap:6px 14px;list-style:none;padding:0;margin:0;font-size:.92rem;color:var(--muted)}
.specs li{white-space:nowrap}
.listing .foot{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-top:auto;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--ink) 8%,transparent)}
.listing .amount{font:700 1.5rem/1 var(--font-display);color:var(--ink)}
.listing .amount small{display:block;font:400 .8rem/1.4 var(--font-body);color:var(--muted)}
.listing .foot .btn{min-height:44px;padding:10px 14px;font-size:.95rem}
.listing .more{font-size:.9rem}

/* showcase: one hero product with a photo mosaic and a spec grid */
.showcase{display:grid;gap:28px;align-items:center}
@media (min-width:960px){.showcase{grid-template-columns:1.25fr 1fr}}
.mosaic{display:grid;gap:10px;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr}
.mosaic img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius)}
.mosaic img:first-child{grid-row:span 2}
.spec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1px;background:color-mix(in srgb,var(--ink) 10%,transparent);border-radius:var(--radius);overflow:hidden;margin:20px 0}
.spec-grid div{background:var(--surface);padding:14px 16px}
.spec-grid dt{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}
.spec-grid dd{margin:4px 0 0;font:600 1.15rem/1.2 var(--font-display)}

/* big numbers */
.stats{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:32px}
.stat{border-left:3px solid var(--brand);padding:4px 0 4px 18px}
.stat strong{display:block;font:700 clamp(2.2rem,5vw,3.2rem)/1 var(--font-display);color:var(--ink)}
.stat span{color:var(--muted)}

/* brand strip */
.brands{display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:center;list-style:none;margin:0;padding:0;font:600 1.05rem/1 var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.brands span{color:var(--brand);margin-left:6px;font-size:.85em}

/* map facade – loads Google Maps only on click (speed + no third-party cookies before consent) */
.map-facade{display:grid;place-items:center;gap:10px;min-height:320px;width:100%;border:1px dashed color-mix(in srgb,var(--ink) 25%,transparent);border-radius:var(--radius);background:radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--brand) 22%,transparent),transparent 60%),var(--surface);color:var(--ink);font:600 1rem/1.4 var(--font-body);cursor:pointer;text-align:center;padding:24px}
.map-facade svg{width:44px;height:44px;color:var(--brand)}
.map-frame{width:100%;min-height:320px;border:0;border-radius:var(--radius)}

/* ===== Detail pages (one car / room / product per page) ===== */
.listing{position:relative}
.listing h3 a{color:inherit;text-decoration:none}
.listing h3 a::after{content:"";position:absolute;inset:0;z-index:0}   /* whole card clickable, one link in the a11y tree */
.listing .foot .btn,.listing .more{position:relative;z-index:1}
.listing h3 a:focus-visible{outline:none}
.listing:has(h3 a:focus-visible){outline:3px solid var(--accent);outline-offset:3px}
.crumbs{font-size:.9rem;color:var(--muted);padding-top:20px}
.crumbs ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}
.crumbs li+li::before{content:"›";margin-right:6px}
.crumbs a{color:var(--muted)}
.detail{display:grid;gap:28px;padding-top:16px}
@media (min-width:960px){.detail{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);align-items:start}}
.detail h1{font-size:clamp(1.7rem,4vw,2.6rem);margin-top:4px}
.photo-main{display:block;border-radius:var(--radius);overflow:hidden;background:var(--surface)}
.photo-main img{width:100%;aspect-ratio:4/3;object-fit:cover}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin-top:8px}
.thumbs a{display:block;border-radius:calc(var(--radius) * .6);overflow:hidden;min-height:44px}
.thumbs img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:opacity .2s}
.thumbs a:hover img{opacity:.8}
/* phones: one swipeable row (native scroll, not a JS carousel) so the price and call button stay near the top */
@media (max-width:959px){.thumbs{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:28%;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}.thumbs a{scroll-snap-align:start}}
.buy{background:var(--surface);border-radius:var(--radius);padding:22px;border:1px solid color-mix(in srgb,var(--brand) 35%,transparent);display:grid;gap:12px}
@media (min-width:960px){.buy{position:sticky;top:84px}}
.buy .amount{font:700 2.2rem/1 var(--font-display);margin:0}
.buy .amount small{display:block;font:400 .9rem/1.5 var(--font-body);color:var(--muted);margin-top:6px}
.buy .btn{width:100%}
.buy .note{font-size:.9rem;color:var(--muted);margin:0}
.badges.inline{position:static}
.spec-table{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 28px;margin:0}
.spec-table div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--ink) 10%,transparent)}
.spec-table dt{color:var(--muted)}
.spec-table dd{margin:0;font-weight:600;text-align:right}
.extras{columns:16rem;column-gap:28px}
.extras section{break-inside:avoid;padding:0 0 18px}
.extras h3{font-size:1rem;margin-bottom:6px;color:var(--brand)}
.extras ul{margin:0;padding-left:1.1em;color:var(--muted)}
.extras li{padding:2px 0}
.pager{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
/* lightbox – a native <dialog>, buttons for prev/next (no drag needed, WCAG 2.5.7) */
.lightbox{border:0;padding:0;background:transparent;max-width:min(1200px,96vw);width:100%}
.lightbox::backdrop{background:rgb(0 0 0/.9)}
.lightbox img{width:100%;max-height:82vh;object-fit:contain}
.lightbox .bar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;color:#fff}
.lightbox .bar .btn{min-width:48px;color:#fff;border-color:rgb(255 255 255/.6);background:transparent}
/* cross-document view transitions – Chromium + Safari, ignored elsewhere (not Baseline) */
@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}

/* ===== Inventory extras (search, badges, share, gauge, stage arrows, description) ===== */
.search-row{display:flex;flex-wrap:wrap;align-items:end;gap:8px 16px;margin-top:24px}
.search-row label[for="q"]{flex-basis:100%;font-weight:600;font-size:.95rem}
.search-row input[type="search"]{flex:1 1 260px;min-height:48px;padding:10px 14px;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);background:var(--surface);color:var(--ink);font:inherit}
.check{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}
.check input{width:20px;height:20px;accent-color:var(--brand)}
.fresh{font-size:.88rem;margin:4px 0 0}
.badge-gold{background:var(--brand);color:var(--brand-ink)}
.badge-warn{background:#b45309;color:#fff}
.brands a{color:inherit;text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.brands a:hover{color:var(--brand)}
.stage{position:relative}
.stage-btn{position:absolute;top:50%;translate:0 -50%;width:48px;height:48px;border-radius:50%;border:0;background:rgb(0 0 0/.55);color:#fff;font-size:1.6rem;line-height:1;cursor:pointer}
.stage-btn.prev{left:10px}.stage-btn.next{right:10px}
.stage-count{position:absolute;right:10px;bottom:10px;background:rgb(0 0 0/.6);color:#fff;font:600 .8rem/1 var(--font-body);padding:6px 10px;border-radius:999px}
.share{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--ink) 10%,transparent)}
.share .chip{text-decoration:none;display:inline-flex;align-items:center}
.facts-top{display:flex;flex-wrap:wrap;align-items:center;gap:20px}
.facts-top .lead{flex:1 1 320px;margin:0}
.gauge{width:140px;height:auto;color:var(--ink);flex:none}
.gauge .g-val{font:700 20px var(--font-display);fill:var(--ink)}
.gauge .g-unit{font:500 8px var(--font-body);fill:var(--muted)}
.bullets{columns:20rem;column-gap:32px;margin:20px 0 0;padding:0;list-style:none}
.bullets li{break-inside:avoid;padding:8px 0 8px 18px;border-bottom:1px solid color-mix(in srgb,var(--ink) 8%,transparent);position:relative}
.bullets li::before{content:"";position:absolute;left:0;top:1.05em;width:7px;height:7px;border-radius:50%;background:var(--brand)}
.promo{margin-top:16px}
.review-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}
.chat-first{margin-top:24px}
.chat-first ul{margin:8px 0 0;padding-left:1.1em}
.action-bar{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Self-hosted fonts (SIL Open Font License), 2026-10-10: Forum for headings, Golos Text (variable 400–700) for text;
   Cyrillic + Latin, the subsets Google Fonts serves. Appended to site.css by build.py ("fonts_local"), so the urls are
   relative to the site root. No request to Google Fonts: the first paint no longer waits for a second server. */
@font-face{font-family:"Forum";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/forum-cyr.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Forum";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/forum-lat.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Golos Text";font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/golos-cyr.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Golos Text";font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/golos-lat.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
