/* Pitch mock-ups v2 (29 Oct 2026) — standalone, replaces base.css for pitch boards.
   Benchmarks: art-tutor/benchmarks/emilkowal-ski-styleguide.json + royale-sites/benchmarks/hq-v2-context-benchmark.md
   System: 9 text sizes (12 14 16 18 20 28 36 52 64) · radii 4 / 8 · 0 shadows · one button style (48px, r4, 8px 16px, 16/500)
   · spacing on an 8px grid (8…128) · body 16/26 · section 128 desktop / 64 mobile · heading weights 700/600 (Astra steps)
   · form-field borders Stone #8F8F8A (3.19:1 on Paper). All values map to Astra free Customizer or Spectra Blocks settings. */
:root{--ink:#111110;--graphite:#3F3F3C;--slate:#6B6B66;--stone:#8F8F8A;--mist:#D6D6D2;--paper:#FDFDFC;--tint:#F5F5F2;--line:#E5E5E1;
--sans:'Inter',system-ui,sans-serif;--head:'Inter Tight','Inter',system-ui,sans-serif;--mono:'Geist Mono',ui-monospace,monospace}
*{box-sizing:border-box;margin:0;padding:0;box-shadow:none!important}
body{background:var(--paper);color:var(--graphite);font-family:var(--sans);font-size:16px;line-height:26px;-webkit-font-smoothing:antialiased}
.page{container-type:inline-size;container-name:page;min-height:100vh;position:relative;overflow-x:clip}
img{display:block;max-width:100%}a{color:inherit;text-decoration:none}ul{list-style:none}
h1,h2,h3{font-family:var(--head);color:var(--ink);font-weight:700}
h1{font-size:52px;line-height:56px;letter-spacing:-0.035em}
h2{font-size:36px;line-height:40px;letter-spacing:-0.03em}
h3{font-size:20px;line-height:24px;font-weight:600;letter-spacing:-0.015em}
.mono{font-family:var(--mono);font-size:12px;line-height:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);font-weight:500}
.wrap{max-width:1200px;margin:0 auto;padding:0 48px}
section{padding:128px 0}
.label{display:flex;align-items:center;gap:8px;margin-bottom:16px}.label:before{content:"";width:16px;height:2px;background:var(--accent)}
.lead{font-size:18px;line-height:28px;color:var(--graphite);max-width:560px}
.muted{color:var(--slate)}.note{font-size:14px;line-height:24px;color:var(--slate)}
/* Astra header: Above Header HTML 1 = banner · Primary: logo, menu, HTML 2 = phone, Button 1 · mobile: Dropdown menu */
.demo-banner{background:var(--ink);color:#BDBDB8;font-family:var(--mono);font-size:12px;line-height:16px;letter-spacing:.06em;text-transform:uppercase;text-align:center;padding:8px 16px}
.demo-banner b{color:var(--paper);font-weight:500}
.hdr{background:var(--paper);border-bottom:1px solid var(--line);position:relative;z-index:5}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;height:80px;gap:24px}
.nav{display:flex;gap:32px;font-size:16px;color:var(--graphite)}
.hdr-r{display:flex;align-items:center;gap:24px}
.hdr-ph{display:flex;align-items:center;gap:8px;font-size:16px;color:var(--ink);font-weight:500}.hdr-ph svg{color:var(--accent-ic,var(--ink))}
.toggle{display:none;width:48px;height:48px;border:1px solid var(--stone);border-radius:4px;place-items:center;color:var(--ink)}
.toggle .tx{display:none}.menu-open .toggle .tm{display:none}.menu-open .toggle .tx{display:block}
.mmenu{display:none}.mmenu .mbtn{width:100%;margin-top:24px}
/* Mobile header (Astra builder, mobile row): logo + toggle only; Button 1 placed inside the dropdown content area. */
.logo-w{display:flex;flex-direction:column;gap:0}
.logo-w b{font-family:var(--head);font-weight:700;font-size:20px;line-height:24px;letter-spacing:-0.02em;color:var(--ink);white-space:nowrap}
.logo-w span{font-family:var(--mono);font-size:12px;line-height:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate)}
/* One button style (Astra Global › Buttons): 48px, radius 4, 16/500, padding 8/16. Colour variants only. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:8px 16px;border-radius:4px;font-family:var(--sans);font-size:16px;line-height:24px;font-weight:500;border:1px solid transparent;white-space:nowrap}
.btn svg{width:16px;height:16px}
.btn-p{background:var(--accent);color:var(--paper)}
.btn-s{background:transparent;color:var(--ink);border-color:var(--ink)}
.card{background:var(--paper);border:1px solid var(--line);border-radius:8px}
.stars{display:flex;gap:0;color:var(--accent-ic,var(--ink))}.stars svg{fill:currentColor}
.hero{padding:96px 0 128px}
.hero-g{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:center}
.hero h1{margin:16px 0 24px}
.cta{display:flex;gap:16px;flex-wrap:wrap;margin-top:32px}
.rating{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:32px;font-size:14px;line-height:24px}
.rating strong{color:var(--ink)}
.hero-img{border-radius:8px;overflow:hidden;aspect-ratio:1/1;position:relative}
.hero-img img{width:100%;height:100%;object-fit:cover}
.tag{position:absolute;left:16px;bottom:16px;background:rgba(17,17,16,.8);color:#E9E9E5;font-family:var(--mono);font-size:12px;line-height:16px;letter-spacing:.06em;text-transform:uppercase;padding:8px;border-radius:4px}
.sec-h{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:64px;flex-wrap:wrap}
.sec-h p.note{max-width:360px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:64px}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.rows{border-top:1px solid var(--line)}
.rows li{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:16px 0;border-bottom:1px solid var(--line)}
.rows h3{font-size:18px;line-height:24px}
.rows .muted{font-size:14px;line-height:24px}
.rows .pr{font-family:var(--mono);font-size:16px;color:var(--ink)}
.tile{padding:32px 24px}
.tile .ic{color:var(--accent-ic,var(--ink));margin-bottom:24px;display:block}
.tile h3{margin-bottom:8px}.tile p{font-size:14px;line-height:24px}
.gal{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px}
.gal figure{border-radius:8px;overflow:hidden;aspect-ratio:1/1}
.gal figure:first-child{aspect-ratio:auto}
.gal img{width:100%;height:100%;object-fit:cover}
.revbox{padding:32px;display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}
.score{display:flex;align-items:center;gap:24px}
.score .n{font-family:var(--head);font-weight:700;font-size:64px;line-height:64px;letter-spacing:-0.04em;color:var(--ink)}
.score .s{display:flex;flex-direction:column;gap:8px;font-size:14px;line-height:24px}
.bgt{background:var(--tint);border-top:1px solid var(--line)}
.visit-g{display:grid;grid-template-columns:1fr 1.3fr;gap:16px}
.vcard{padding:32px}.vcard h2{font-size:28px;line-height:32px}
.vcard dl{display:grid;grid-template-columns:120px 1fr;gap:8px 16px;margin:24px 0 32px;font-size:16px}
.vcard dt{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate)}
.vcard dd{color:var(--ink)}
.mapph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:32px;background:var(--paper);border-radius:8px;border:1px solid var(--line);min-height:320px;font-size:14px}
.cta-band{background:var(--ink);padding:128px 0}
.cb{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}
.cb h2{color:var(--paper)}.cb p{color:#BDBDB8;margin-top:8px}
.cta-band .btn-s,.dark .btn-s{color:var(--paper);border-color:var(--stone)}
/* Quote form = Forminator 1.58.3 (free), Basic design: styled ONLY by the plugin CSS + the per-form Custom CSS box snippet (inlined per page). Only the card and the HTML-field heading are theme styles here. */
.qform{padding:32px}
.qform h3{margin:0}
footer{border-top:1px solid var(--line);padding:64px 0 40px;font-size:14px;line-height:24px}
.foot{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px}
.foot h4{font-family:var(--mono);font-size:12px;line-height:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);font-weight:500;margin-bottom:16px}
.foot li{margin-bottom:8px}
.concept{margin-top:40px;padding:16px;border:1px dashed var(--stone);border-radius:4px;font-family:var(--mono);font-size:12px;line-height:16px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);text-align:center}
.legal{margin-top:24px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;font-size:14px;color:var(--slate)}
@container page (max-width:720px){
 .wrap{padding:0 24px}
 section,.cta-band{padding:64px 0}
 .hero{padding:40px 0 64px}
 h1{font-size:36px;line-height:40px}h2{font-size:28px;line-height:32px}
 .nav,.hide-m,.logo-w span{display:none!important}
 .hdr .wrap{height:72px;gap:8px}.hdr-r{gap:8px}

 .toggle{display:grid}
 .menu-open .mmenu{display:block;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--line);padding:8px 24px 24px}
 .mmenu a.it{display:flex;align-items:center;height:56px;border-bottom:1px solid var(--line);font-size:18px;color:var(--ink);font-weight:500}
 .hero-g,.g2,.visit-g{grid-template-columns:1fr;gap:32px}
 .hero-img{aspect-ratio:4/3}
 .cta .btn{flex:1 1 100%}
 .sec-h{margin-bottom:32px}
 .g3{grid-template-columns:1fr}
 .gal{grid-template-columns:1fr 1fr}.gal figure:first-child{grid-column:1/-1;aspect-ratio:4/3}
 .score .n{font-size:52px;line-height:56px}
 .revbox,.vcard,.qform{padding:24px}
 .cb .cta{width:100%}
 .foot{grid-template-columns:1fr 1fr}.foot>div:first-child{grid-column:1/-1}
 .legal{flex-direction:column}
 .vcard dl{grid-template-columns:1fr;gap:0 0}.vcard dd{margin-bottom:8px}
}
@container page (min-width:721px){.show-m{display:none!important}}
/* v2: plain text link (not a second button style) */
.lnk{display:inline-flex;align-items:center;gap:8px;font-size:16px;line-height:24px;font-weight:500;color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.lnk svg{width:16px;height:16px}
.hero.dark .lnk{color:#FDFDFC}
.cta-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:24px}
.hours{display:grid;grid-template-columns:auto 1fr;gap:0 16px}
.tbc{font-family:var(--mono);font-size:12px;line-height:16px;letter-spacing:.06em;text-transform:uppercase;color:var(--slate)}

/* v3 */
.loc2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.locmap{margin-top:16px}
.revbox .s .label{display:block}
@container page (max-width:720px){.loc2{grid-template-columns:1fr}.menu-open .mmenu{min-height:100vh}}
