/* TV Installer King v2 · dark-premium trade. Tokens, shell, components. Built from the approved Claude Design artboards (23 Oct 2026). */
@font-face{font-family:"Poppins";font-weight:700;font-display:swap;src:url(/assets/fonts/Poppins-700.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-weight:800;font-display:swap;src:url(/assets/fonts/Poppins-800.woff2) format("woff2")}
@font-face{font-family:"Figtree";font-weight:300 800;font-display:swap;src:url(/assets/fonts/Figtree-var.woff2) format("woff2")}

:root{
  --ink:#13171B;--ink-2:#2A3038;--ink-soft:#3A4047;--muted:#5C6269;
  --paper:#F6F3EC;--paper-2:#EDE8DD;--paper-3:#F0EBE0;--line:#D9D2C3;--white:#fff;
  --gold:#C9A45A;--gold-deep:#7A5F1E;--gold-tint:#F3EBD8;
  --wa:#25D366;--wa-hover:#1EBE5A;--wa-ink:#0B1F12;--red:#B3261E;
  --font-display:Poppins,system-ui,sans-serif;--font-body:Figtree,system-ui,sans-serif;
  --r:12px;--r-pill:999px;--shadow:0 24px 60px rgba(19,23,27,.14);
  --on-paper:rgba(246,243,236,.86);--on-paper-2:rgba(246,243,236,.7);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-weight:300;font-size:18px;line-height:1.55}
a{color:var(--ink)}a:hover{color:var(--gold-deep)}
img,picture{display:block;max-width:100%}img{height:auto}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;letter-spacing:-.02em;line-height:1.02;margin:0}
h1{font-size:clamp(44px,5vw,72px)}h2{font-size:clamp(32px,3.8vw,52px)}h3{font-size:22px;font-weight:700;line-height:1.2}
p{margin:0}
strong{font-weight:600}
[hidden]{display:none!important}
[id]{scroll-margin-top:96px}
.sr,.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;background:var(--gold);color:var(--ink);padding:10px 16px;border-radius:var(--r);z-index:100}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}

/* layout */
.wrap{max-width:1240px;margin:0 auto;padding:0 40px}
.narrow-l{max-width:900px;margin-left:auto;margin-right:auto}
.band{padding:104px 0}
.band-soft{background:var(--paper-2)}
.band-dark{background:var(--ink);color:var(--paper);position:relative}
.band-dark::before{content:"";position:absolute;inset:0;opacity:.07;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='160' height='160' filter='url(%23n)' opacity='.9'/></svg>")}
.band-dark>.wrap{position:relative}
.band-dark a{color:var(--paper)}.band-dark a:hover{color:var(--gold)}
.kick{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);display:flex;align-items:center;gap:8px}
.kick .ic{width:16px;height:16px}
.band-dark .kick,.pkg-pop .kick,.pkg-dark .kick,.exc .kick,.offer-dark .kick{color:var(--gold)}
.num{font-family:var(--font-display);font-weight:800;font-size:13px;letter-spacing:.14em;color:var(--gold-deep);margin-right:14px}
.band-dark .num{color:var(--gold)}
.lede{font-size:21px;font-weight:300;max-width:600px;color:var(--ink-soft)}
.band-dark .lede{color:var(--on-paper)}.band-dark .lede strong{color:#fff;font-weight:600}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:56px}
.sec-head .kick{margin-bottom:14px}
.sec-head p{font-size:19px;color:var(--muted);max-width:520px;font-weight:400}
.band-dark .sec-head p{color:var(--on-paper-2)}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:32px}
.link,.link-light{font-family:var(--font-display);font-weight:700;font-size:16px;text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px;text-underline-offset:5px}
.link-light{color:var(--paper)}
.note{font-size:15px;color:var(--muted);margin-top:22px;font-weight:400;max-width:900px}
.small{font-size:14px;color:var(--muted);font-weight:400}
.prose p{font-size:19px;margin-bottom:22px;max-width:760px}
.prose .kick{margin-bottom:18px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--font-display);font-weight:700;font-size:17px;line-height:1;padding:19px 28px;border-radius:var(--r-pill);text-decoration:none;border:2px solid transparent;cursor:pointer;min-height:56px;transition:background .15s,color .15s,transform .15s}
.btn-wa{background:var(--wa);color:var(--wa-ink);box-shadow:0 10px 30px rgba(37,211,102,.28)}
.btn-wa:hover{background:var(--wa-hover);color:var(--wa-ink);transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
.band-dark .btn-ghost,.site-head .btn-ghost{color:var(--paper);border-color:rgba(246,243,236,.6)}
.band-dark .btn-ghost:hover{background:var(--paper);color:var(--ink)}
.btn-dark{background:var(--ink);color:var(--paper)}.btn-dark:hover{background:var(--ink-2);color:var(--paper)}
.btn-sm{padding:13px 20px;min-height:46px;font-size:15px}
.ic{width:20px;height:20px;flex:none}

/* header */
.site-head{position:sticky;top:0;z-index:50;background:rgba(19,23,27,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid rgba(201,164,90,.25);color:var(--paper)}
.head-row{display:flex;align-items:center;gap:32px;height:80px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--paper)}
.brand img{width:44px;height:44px;border-radius:50%}
.wordmark{font-family:var(--font-display);font-weight:800;font-size:13px;letter-spacing:.08em;text-transform:uppercase;line-height:1.1;white-space:nowrap}
.wordmark em{font-style:normal;color:var(--gold)}
.nav ul{list-style:none;margin:0 0 0 16px;padding:0;display:none;gap:28px;font-weight:400;font-size:16px}
.nav a{text-decoration:none;color:var(--paper);opacity:.85;white-space:nowrap}.nav a:hover{opacity:1;color:var(--gold)}
.nav a[aria-current]{color:var(--gold);opacity:1}
.head-cta{margin-left:auto;display:flex;align-items:center;gap:18px}
.head-phone{display:none;align-items:center;gap:8px;white-space:nowrap;font-family:var(--font-display);font-weight:700;font-size:16px;text-decoration:none;color:var(--paper)}
.head-phone:hover{color:var(--gold)}
.menu-btn{background:none;border:2px solid rgba(246,243,236,.4);border-radius:var(--r-pill);width:44px;height:44px;display:grid;place-items:center;cursor:pointer;color:var(--paper)}
.menu-bars{width:18px;height:2px;background:currentColor;position:relative;display:block}
.menu-bars::before,.menu-bars::after{content:"";position:absolute;left:0;width:18px;height:2px;background:currentColor;transition:transform .2s}
.menu-bars::before{top:-6px}.menu-bars::after{top:6px}
.menu-btn[aria-expanded=true] .menu-bars{background:transparent}
.menu-btn[aria-expanded=true] .menu-bars::before{transform:translateY(6px) rotate(45deg)}
.menu-btn[aria-expanded=true] .menu-bars::after{transform:translateY(-6px) rotate(-45deg)}
.mobile-nav{border-top:1px solid rgba(246,243,236,.12);background:var(--ink)}
.mobile-nav ul{list-style:none;margin:0;padding:8px 20px 16px}
.mobile-nav a{display:block;padding:14px 0;text-decoration:none;font-family:var(--font-display);font-weight:700;color:var(--paper);border-bottom:1px solid rgba(246,243,236,.12)}
.mobile-nav a[aria-current]{color:var(--gold)}
@media (min-width:900px){.nav ul{display:flex}.head-phone{display:inline-flex}.menu-btn,.mobile-nav{display:none}}
@media (max-width:519px){.head-cta .btn{display:none}}

/* hero */
.hero{padding:88px 0 120px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(42px,4.4vw,64px);margin:22px 0 26px;max-width:640px}
.hero h1 em,.final h2 em{font-style:normal;color:var(--gold)}
.hero .cta-row{margin:36px 0 34px}
.hero-media{position:relative}
.hero-media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r);box-shadow:0 30px 80px rgba(0,0,0,.45)}
.pcard{position:absolute;left:-48px;bottom:-44px;background:var(--paper);color:var(--ink);border-radius:var(--r);padding:26px 28px;width:320px;box-shadow:0 24px 60px rgba(0,0,0,.4);border-top:4px solid var(--gold)}
.pcard .kick{color:var(--gold-deep)}
.pcard .from{font-family:var(--font-display);font-weight:800;font-size:54px;line-height:1;margin:6px 0 10px}
.pcard .from span{font-size:20px;font-weight:700;color:var(--gold-deep);margin-left:6px}
.pcard ul{list-style:none;margin:0;padding:0;font-size:15px;font-weight:400;color:var(--ink-soft);display:grid;gap:6px}
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:16px;font-weight:400}
.ticks li{display:flex;gap:10px;align-items:flex-start}
.tick{width:18px;height:18px;flex:none;margin-top:4px;color:var(--gold-deep)}
.band-dark .tick,.pkg-pop .tick,.pkg-dark .tick{color:var(--gold)}
.ticks-row{grid-template-columns:1fr 1fr;gap:12px 28px;max-width:560px}
.ticks-big{font-size:19px;gap:18px;margin-top:28px}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.reveal{animation:rise .7s cubic-bezier(.2,.7,.2,1) both}
.reveal:nth-child(2){animation-delay:.08s}.reveal:nth-child(3){animation-delay:.16s}.reveal:nth-child(4){animation-delay:.24s}.reveal:nth-child(5){animation-delay:.32s}
.hero-media.reveal{animation-delay:.2s}
@media (prefers-reduced-motion:reduce){.reveal{animation:none}}

/* proof strip */
.strip{background:var(--gold);color:var(--ink);padding:26px 0}
.strip .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.strip div{display:flex;gap:12px;align-items:center;font-family:var(--font-display);font-weight:700;font-size:16px;line-height:1.2}
.strip svg{width:26px;height:26px;flex:none}

/* price rows (home) */
.prices{display:grid;border-top:1px solid var(--line)}
.prow{display:grid;grid-template-columns:1.2fr 2fr 1fr auto;align-items:center;gap:32px;padding:26px 0;border-bottom:1px solid var(--line)}
.prow .sz{font-family:var(--font-display);font-weight:800;font-size:30px;letter-spacing:-.02em}
.prow .sz small{display:block;font-family:var(--font-body);font-weight:400;font-size:14px;color:var(--muted);letter-spacing:0;margin-top:4px}
.prow .inc{font-size:16px;color:var(--ink-soft);font-weight:400}
.prow .pr{font-family:var(--font-display);font-weight:800;font-size:40px;text-align:right}
.prow:hover{background:var(--paper-3)}

/* price table (prices, county) */
.pricetable{width:100%;border-collapse:collapse;background:var(--white);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;font-size:17px}
.pricetable th,.pricetable td{text-align:left;padding:18px 22px;border-bottom:1px solid var(--paper-2);vertical-align:top}
.pricetable th{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:var(--paper)}
.pricetable th.r,.pricetable td.pr{text-align:right}
.pricetable td.pr{font-family:var(--font-display);font-weight:800;font-size:24px;white-space:nowrap}
.pricetable td small{display:block;font-size:14px;color:var(--muted);font-weight:400;margin-top:3px}
.pricetable tr:last-child td{border-bottom:0}
.pricetable.compact{margin:22px 0;font-size:16px}.pricetable.compact td{padding:12px 18px}.pricetable.compact td.pr{font-size:20px}

/* before / after */
.ba-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.ba-card{margin:0}
.ba{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:var(--r);background:#222;user-select:none;touch-action:pan-y}
.ba .ba-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba-after{position:absolute;inset:0;clip-path:inset(0 0 0 var(--pos))}
.ba-line{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;background:#fff;transform:translateX(-50%);box-shadow:0 0 0 1px rgba(0,0,0,.15)}
.ba-knob{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;background:#fff;color:var(--ink);display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.35)}
.ba-knob svg{width:22px;height:22px}
.ba-range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}
.ba:focus-within .ba-knob{outline:3px solid var(--gold);outline-offset:2px}
.ba-tag{position:absolute;top:14px;font-family:var(--font-display);font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;background:rgba(19,23,27,.82);color:#fff;padding:6px 10px;border-radius:var(--r-pill);pointer-events:none}
.ba-tag-l{left:14px}.ba-tag-r{right:14px;background:var(--gold);color:var(--ink)}
.ba-wide .ba{aspect-ratio:16/10}
figcaption{font-size:14px;color:var(--muted);margin-top:12px;font-weight:400}
.band-dark figcaption{color:var(--on-paper-2)}
.ba-grid figure{margin:0}
.ba-grid>figure img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r)}

/* packages */
.pkgs{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:24px;align-items:stretch}
.pkg{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:34px 30px;display:flex;flex-direction:column;gap:18px}
.pkg-pop,.pkg-dark{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.pkg-pop{transform:translateY(-16px);box-shadow:0 30px 70px rgba(19,23,27,.3)}
.pkg-dark{margin-top:28px;max-width:720px}
.pkg .price{font-family:var(--font-display);font-weight:800;font-size:44px;line-height:1}
.pkg .price small{font-family:var(--font-body);font-weight:400;font-size:15px;color:var(--muted);display:block;margin-top:6px}
.pkg-pop .price small{color:var(--on-paper-2)}
.pkg .ticks{flex:1}
.badge{display:inline-flex;align-items:center;gap:6px;background:var(--gold);color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding:7px 12px;border-radius:var(--r-pill);align-self:flex-start}
.badge .ic{width:14px;height:14px}
.saves{font-size:14px;font-weight:600;color:var(--gold-deep)}.pkg-pop .saves{color:var(--gold)}
.pkg-pop a:not(.btn),.pkg-dark a:not(.btn){color:var(--paper)}

/* how it works */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;counter-reset:none}
.step figure{margin:0 0 18px}
.step img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r)}
.step h3{margin-bottom:8px}.step p{font-size:16px;color:var(--ink-soft);font-weight:400}

/* split sections */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.split-text .kick{margin-bottom:14px}
.split-text .ticks{margin-top:24px}
.split-media{margin:0}
.split-media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r)}
.band-dark .split-media img{box-shadow:0 30px 80px rgba(0,0,0,.45)}
.wall-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.wall-pair figure{margin:0}
.wall-pair img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--r);border:1px solid var(--line)}
.wall-pair figcaption{font-size:13px;margin-top:8px}
.two-up{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.two-up figure{margin:0}
.two-up img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r)}

/* builder */
.builder-wrap{display:grid;grid-template-columns:1fr 1.4fr;gap:64px;align-items:start}
.builder-intro{position:sticky;top:104px}
.builder-intro h2{margin:14px 0 14px}
.builder-intro p{font-size:18px;color:var(--muted);font-weight:400}
.builder{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:32px;box-shadow:var(--shadow)}
.b-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:24px}
.b-head .kick{color:var(--ink)}
.dots{list-style:none;margin:0;padding:0;display:flex;gap:6px}
.dots li{width:22px;height:4px;border-radius:2px;background:var(--line)}
.dots li.on{background:var(--gold)}
.b-step{border:0;padding:0;margin:0;min-width:0}
.b-step legend,.b-summary h3{font-family:var(--font-display);font-weight:800;font-size:24px;margin-bottom:20px;padding:0}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tiles-2{grid-template-columns:repeat(2,1fr)}
.tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:2px;padding:16px 10px;border:2px solid var(--line);border-radius:var(--r);cursor:pointer;background:var(--white);transition:border-color .15s,background .15s;min-height:84px}
.tile:hover{border-color:var(--ink)}
.tile input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.tile:has(input:checked){border-color:var(--gold);background:var(--gold-tint)}
.tile:has(input:focus-visible){outline:3px solid var(--gold);outline-offset:2px}
.tile strong{font-family:var(--font-display);font-weight:700;font-size:15px;line-height:1.1}
.tile small{font-size:13px;color:var(--muted);font-weight:400}
.tv{display:block;border:2px solid var(--ink);border-radius:2px;margin-bottom:6px;height:16px}
.tv-32{width:22px}.tv-50{width:30px}.tv-65{width:38px}.tv-75{width:46px;height:20px}.tv-85{width:52px;height:22px}.tv-100{width:58px;height:24px}.tv-big{width:30px;border-style:dashed}
.b-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--paper-2);margin:28px -32px -32px;padding:14px 32px;border-radius:0 0 var(--r) var(--r)}
.running{margin:0;margin-left:auto;text-align:right;display:flex;flex-direction:column}
.running span{font-size:13px;color:var(--muted);font-weight:400}
.running strong{font-family:var(--font-display);font-weight:800;font-size:24px}
.lines{margin:0 0 16px;display:grid;gap:8px;border-bottom:1px solid var(--line);padding-bottom:16px;font-size:16px;font-weight:400}
.lines div{display:flex;justify-content:space-between;gap:16px}
.lines dt{color:var(--ink-soft)}.lines dd{margin:0;font-family:var(--font-display);font-weight:700}
.total{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}
.total span{font-weight:400;color:var(--muted)}
.total strong{font-family:var(--font-display);font-weight:800;font-size:40px}
.pkg-note{font-size:15px;font-weight:600;color:var(--gold-deep);background:var(--gold-tint);border-radius:8px;padding:10px 14px;margin-bottom:16px}
.field{display:grid;gap:6px;margin:0 0 16px}
.field label{font-size:14px;font-weight:600}
.field input{font:inherit;font-size:17px;padding:12px 14px;border:2px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink)}
.field input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,164,90,.35)}
.b-summary .btn{width:100%}
.b-summary .small{margin-top:14px}

/* reviews */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.review{margin:0;background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:28px;font-size:17px;font-weight:400}
.review .src{font-size:13px;color:var(--muted);margin-bottom:12px}
.stars{color:var(--gold-deep);letter-spacing:.1em}
.review footer{font-size:14px;color:var(--muted);margin-top:14px}

/* offers */
.offers{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.offer{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:34px;display:grid;gap:14px;align-content:start}
.offer h2{font-size:clamp(26px,2.6vw,34px)}.offer h3{font-size:22px}
.offer p{font-size:16px;color:var(--ink-soft);font-weight:400}
.offer .btn{justify-self:start}
.offer-gold{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.offer-gold .kick,.offer-gold p{color:var(--ink)}
.offer-gold .btn-wa{box-shadow:none}
.offer-dark{background:var(--ink);color:var(--paper);border-color:var(--ink);margin-top:48px}
.offer-dark p{color:var(--on-paper)}
.band-dark .offer-gold a{color:var(--wa-ink)}

/* areas */
.areas{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.areas-col{grid-template-columns:1fr;gap:16px}
.county{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:28px}
.county h3{margin-bottom:10px}.county h3 a{text-decoration:none}
.county p{font-size:15px;color:var(--ink-soft);font-weight:400}
.chips{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips a{display:inline-block;font-size:14px;font-weight:400;text-decoration:none;border:1px solid var(--line);border-radius:var(--r-pill);padding:7px 12px;background:var(--paper)}
.chips a:hover{border-color:var(--ink);color:var(--ink)}
.map{position:relative;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:var(--white)}
.map img{width:100%}
.pin{position:absolute;transform:translate(-50%,-50%);text-decoration:none;display:flex;align-items:center;gap:4px}
.pin::before{content:"";width:12px;height:12px;border-radius:50%;background:var(--gold);border:2px solid var(--ink);box-shadow:0 0 0 2px #fff;flex:none}
.pin span{font-family:var(--font-display);font-weight:700;font-size:12px;background:rgba(255,255,255,.92);padding:2px 7px;border-radius:var(--r-pill);white-space:nowrap}
.pin:hover span{background:var(--ink);color:#fff}
.osm{position:absolute;right:6px;bottom:4px;font-size:10px;color:var(--muted);background:rgba(255,255,255,.8);padding:1px 5px;border-radius:4px}
.towns{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.town{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:24px;display:grid;gap:12px;align-content:start}
.town p{font-size:15px;color:var(--ink-soft);font-weight:400}
.town .btn{justify-self:start}

/* faq */
.faqs{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;max-width:1100px}
.faq{border-bottom:1px solid var(--line);padding:18px 0}
.faq summary{font-family:var(--font-display);font-weight:700;font-size:18px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.faq summary::-webkit-details-marker{display:none}
.plus{flex:none;width:24px;text-align:center;color:var(--gold-deep);font-size:24px;line-height:1}
.plus::before{content:"+"}
.faq[open] .plus::before{content:"\2212"}
.faq-a p{font-size:16px;color:var(--ink-soft);margin-top:10px;font-weight:400;max-width:480px}
.band-dark .faq{border-color:rgba(246,243,236,.15)}
.faq-groups h2{font-size:clamp(26px,3vw,38px);margin:56px 0 8px}
.faq-groups h2:first-child{margin-top:0}
.faq-groups .faqs{grid-template-columns:1fr}
.faq-groups .faq-a p{max-width:none}

/* final cta */
.final .wrap{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:center}
.final h2{font-size:clamp(38px,4.6vw,66px);margin:14px 0 18px}
.cta-col{display:grid;gap:14px;justify-items:stretch}

/* page head (inner pages) */
.page-head{padding:72px 0 80px}
.page-head .kick{margin-bottom:18px}
.page-head .lede{margin-top:22px;max-width:640px}
.head-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:end}
.crumbs{font-size:14px;font-weight:400;margin-bottom:22px}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.crumbs li+li::before{content:"/";margin-right:8px;opacity:.5}
.crumbs a{text-decoration:none;opacity:.8}.crumbs a:hover{opacity:1}
.crumbs [aria-current]{opacity:.6}
.quick{background:var(--paper);color:var(--ink);border-radius:var(--r);padding:26px 28px;border-top:4px solid var(--gold)}
.quick .kick{color:var(--gold-deep)}
.quick p{font-size:15px;font-weight:400;color:var(--ink-soft)}
.quick .big{font-family:var(--font-display);font-weight:800;font-size:46px;line-height:1;margin:6px 0 8px;color:var(--ink)}

/* prices page */
.walls{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.wallc{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:26px;border-top:4px solid var(--gold)}
.wallc h3{margin-bottom:8px}.wallc p{font-size:15px;color:var(--ink-soft);font-weight:400}
.wallc .pr{font-family:var(--font-display);font-weight:800;font-size:30px;margin:12px 0 6px;color:var(--ink)}
.brks{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
.brk{background:var(--white);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.brk img{width:100%;aspect-ratio:1;object-fit:cover}
.brk div{padding:16px 18px}
.brk h3{font-size:16px;margin-bottom:4px}
.brk p{font-size:14px;color:var(--muted);font-weight:400}
.brk .pr{font-family:var(--font-display);font-weight:800;font-size:22px;color:var(--ink);margin-top:8px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:30px}
.card h3{margin-bottom:14px}
.card li.x .tick{color:var(--red)}
.ex{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.exc{background:var(--ink);color:var(--paper);border-radius:var(--r);padding:30px}
.exc h3{color:var(--gold);margin-bottom:14px}
.exc dl{margin:0;display:grid;grid-template-columns:1fr auto;gap:8px 20px;font-size:16px;font-weight:400}
.exc dt{color:var(--on-paper)}.exc dd{margin:0;text-align:right;font-family:var(--font-display);font-weight:700}
.exc .tot{border-top:1px solid rgba(246,243,236,.2);margin-top:12px;padding-top:12px;font-size:22px;font-weight:800;font-family:var(--font-display);display:flex;justify-content:space-between}
.exc .pkgn{margin-top:12px;font-size:14px;color:var(--gold);font-weight:600}

/* brackets guide, about */
.affects{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:20px}
.affects div{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:24px}
.affects dt{font-family:var(--font-display);font-weight:700;font-size:19px;margin-bottom:8px}
.affects dd{margin:0;font-size:16px;color:var(--ink-soft);font-weight:400}
.plan{margin:24px 0 0;padding:0 0 0 0;list-style:none;counter-reset:plan;display:grid;gap:18px}
.plan li{position:relative;padding-left:56px;font-size:17px;font-weight:400;counter-increment:plan}
.plan li::before{content:counter(plan,decimal-leading-zero);position:absolute;left:0;top:0;font-family:var(--font-display);font-weight:800;font-size:13px;letter-spacing:.14em;color:var(--gold-deep);line-height:1.8}
.plan h3{margin-bottom:4px}.plan p{color:var(--ink-soft)}
.narrow-l h2{margin-bottom:8px}
.narrow-l>.kick{margin-bottom:14px}

/* our work */
.filters{list-style:none;margin:0 0 28px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chip{font:inherit;font-family:var(--font-display);font-weight:700;font-size:14px;padding:9px 16px;border:1px solid var(--line);background:var(--white);border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;color:var(--ink)}
.chip:hover{border-color:var(--ink)}
.chip.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.g-item figure{margin:0}
.g-wide{grid-column:span 2}
.zoom{display:block;padding:0;border:0;background:none;cursor:zoom-in;width:100%;border-radius:var(--r);overflow:hidden}
.zoom img{aspect-ratio:1;object-fit:cover;width:100%;transition:transform .3s}
.zoom:hover img{transform:scale(1.03)}
.empty{text-align:center;color:var(--muted);padding:40px 0}
.lightbox{border:0;padding:0;background:transparent;max-width:min(96vw,1200px);max-height:96vh}
.lightbox::backdrop{background:rgba(19,23,27,.92)}
.lightbox img{max-height:90vh;width:auto;border-radius:var(--r)}
.lightbox .close{position:absolute;top:8px;right:8px;width:44px;height:44px;border-radius:50%;border:0;background:#fff;font-size:26px;cursor:pointer;line-height:1}

/* 404 */
.nf{padding:120px 0}
.nf h1{margin:14px 0 18px}

/* footer */
.site-foot{background:#0E1114;color:rgba(246,243,236,.78);padding:64px 0 32px;font-size:15px;font-weight:400}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}
.foot-brand .brand{margin-bottom:18px}
.foot-brand p{margin-bottom:10px;max-width:360px}
.site-foot h4{font-family:var(--font-display);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0 0 14px}
.site-foot ul{list-style:none;margin:0;padding:0}
.site-foot a{color:var(--paper);text-decoration:none}.site-foot a:hover{color:var(--gold)}
.site-foot li{margin-bottom:8px}
.site-foot .towns{display:block;font-size:13px;line-height:1.9;margin-top:12px;color:rgba(246,243,236,.6)}
.foot-base{border-top:1px solid rgba(246,243,236,.12);padding-top:22px;display:flex;justify-content:space-between;gap:16px;font-size:13px;color:rgba(246,243,236,.55)}
.foot-base p{display:flex;align-items:center;gap:6px}
.foot-base .ic{width:14px;height:14px;color:var(--gold)}

/* sticky mobile bar */
.sticky-bar{position:fixed;bottom:0;left:0;right:0;z-index:40;display:flex;gap:12px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:rgba(246,243,236,.96);border-top:1px solid var(--line);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.sticky-bar .btn{flex:1;padding-inline:14px}
.sticky-bar .btn-ghost{flex:0 0 auto;min-width:96px}
@media (min-width:900px){.sticky-bar{display:none}}
@media (max-width:899px){body{padding-bottom:84px}}

/* responsive */
@media (max-width:1100px){
  .brks{grid-template-columns:repeat(3,1fr)}
  .gallery{grid-template-columns:repeat(3,1fr)}
  .towns{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .wrap{padding:0 20px}.band{padding:64px 0}
  .head-row{height:68px;gap:16px}
  h1{font-size:clamp(38px,9vw,52px)}h2{font-size:clamp(28px,6vw,40px)}
  .hero{padding:48px 0 72px}.hero-grid{grid-template-columns:1fr;gap:40px}
  .hero h1{font-size:clamp(40px,10vw,48px)}.lede{font-size:18px}.ticks-row{grid-template-columns:1fr}
  .pcard{position:static;width:auto;margin-top:16px}
  .strip .wrap{grid-template-columns:1fr 1fr;gap:16px}.strip div{font-size:14px}
  .sec-head{grid-template-columns:1fr;gap:12px;margin-bottom:32px}
  .prow{grid-template-columns:1fr auto;gap:8px 16px;padding:20px 0}.prow .inc{grid-column:1/-1;font-size:14px}.prow .btn{grid-column:1/-1}.prow .pr{font-size:30px}
  .ba-grid,.steps,.areas,.faqs,.pkgs,.reviews,.offers,.two,.ex,.walls,.affects,.builder-wrap{grid-template-columns:1fr}
  .builder-intro{position:static}
  .builder{padding:22px}.b-foot{margin:22px -22px -22px;padding:12px 22px}
  .pkg-pop{transform:none}
  .split,.head-grid,.final .wrap{grid-template-columns:1fr;gap:28px}
  .page-head{padding:48px 0 56px}
  .foot-grid{grid-template-columns:1fr 1fr;gap:28px}
  .brks{grid-template-columns:1fr 1fr}
  .gallery{grid-template-columns:1fr 1fr}
  .towns{grid-template-columns:1fr}
  .pricetable th,.pricetable td{padding:14px 12px;font-size:15px}.pricetable td.pr{font-size:20px}
  .cta-col{justify-items:start}
}
@media (max-width:600px){
  .tiles{grid-template-columns:repeat(2,1fr)}
  .wall-pair,.two-up{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr}
  .strip .wrap{grid-template-columns:1fr}
  .foot-base{flex-direction:column}
}
