/* Website preview styles. Loaded only inside the preview iframe, so nothing here touches the portal. */
:root{--ink:#121212;--ink-2:#3a3a38;--muted:#6b6862;--paper:#fff;--alt:#f5f3ef;--dark:#0f0f0f;--dark-2:#1b1b1a;--line:#e3e0d9;--gold:#c9a24f;--gold-2:#b08a3a;--gold-ink:#141210;--on-dark:#f4f1ea;
 --font-head:'Archivo',system-ui,sans-serif;--font-body:'Archivo',system-ui,sans-serif;--head-weight:800;--head-track:-.035em;--head-lh:1.02;
 --radius:0px;--card-radius:0px;--btn-radius:0px;--btn-case:uppercase;--btn-track:.14em;--btn-size:12.5px;--btn-weight:700;--btn-pad:17px 28px;--btn-shadow:none;
 --sec-pad:clamp(72px,9vw,128px);--wrap:1240px;--hero-h:min(92vh,860px);--hero-inner-h:62vh}
html[data-style=soft]{--ink:#1f1b16;--ink-2:#463f36;--muted:#7a7166;--alt:#f6f0e6;--line:#e6dccb;--dark:#1d1a16;--dark-2:#2a251f;
 --font-head:'Fraunces',Georgia,serif;--font-body:'DM Sans',system-ui,sans-serif;--head-weight:500;--head-track:-.02em;--head-lh:1.08;
 --radius:18px;--card-radius:22px;--btn-radius:999px;--btn-case:none;--btn-track:0;--btn-size:15.5px;--btn-weight:600;--btn-pad:15px 26px;--btn-shadow:0 8px 22px rgba(0,0,0,.18);--sec-pad:clamp(64px,8vw,112px)}
html[data-style=neutral]{--ink:#15181b;--ink-2:#3c4146;--muted:#646a70;--alt:#f3f4f5;--line:#e1e4e7;--dark:#15181b;--dark-2:#1f2327;
 --font-head:'Inter',system-ui,sans-serif;--font-body:'Inter',system-ui,sans-serif;--head-weight:700;--head-track:-.02em;--head-lh:1.12;
 --radius:8px;--card-radius:10px;--btn-radius:6px;--btn-case:none;--btn-track:0;--btn-size:15px;--btn-weight:700;--btn-pad:15px 24px;--sec-pad:clamp(56px,7vw,96px);--hero-h:min(80vh,760px)}
[hidden]{display:none!important}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:400 17px/1.65 var(--font-body);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}a{color:inherit}button{font:inherit;color:inherit}
h1,h2,h3{font-family:var(--font-head);font-weight:var(--head-weight);letter-spacing:var(--head-track);line-height:var(--head-lh);margin:0;text-wrap:balance}
h2{font-size:clamp(32px,4vw,54px)}h3{font-size:22px;letter-spacing:-.01em;line-height:1.2}
p{margin:0 0 1em;text-wrap:pretty}
.wrap{width:min(var(--wrap),100% - 2*clamp(20px,4vw,48px));margin-inline:auto}
.ic{width:20px;height:20px;flex-shrink:0}.ic.down{width:14px;height:14px;transform:rotate(90deg)}
.kicker{font:700 12px/1.2 var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-2);margin:0 0 18px;display:flex;align-items:center;gap:12px}
.kicker:before{content:"";width:28px;height:1.5px;background:currentColor}
html[data-style=soft] .kicker{font:italic 500 17px/1.2 'Fraunces',serif;letter-spacing:0;text-transform:none}
html[data-style=soft] .kicker:before{display:none}
html[data-style=neutral] .kicker:before{display:none}
html[data-style=neutral] .kicker{letter-spacing:.12em}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:var(--btn-pad);border-radius:var(--btn-radius);font:var(--btn-weight) var(--btn-size)/1 var(--font-body);letter-spacing:var(--btn-track);text-transform:var(--btn-case);text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s;white-space:nowrap}
.btn .ic{width:17px;height:17px}
.btn-primary{background:var(--btn-bg,var(--gold));color:var(--btn-ink,var(--gold-ink));box-shadow:var(--btn-shadow)}.btn-primary:hover{background:var(--gold-hover,#d8b465)}
.btn-ghost{border-color:rgba(255,255,255,.7);color:#fff}.btn-ghost:hover{background:#fff;color:var(--ink)}
.btn-outline{border-color:var(--ink);color:var(--ink)}.btn-outline:hover{background:var(--ink);color:#fff}
.btn-sm{--btn-pad:12px 18px}.btn-block{width:100%}.is-disabled{opacity:.45;cursor:not-allowed}
.text-link{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-decoration:none;border-bottom:1.5px solid var(--gold);padding-bottom:3px}
.text-link .ic{width:16px;height:16px;transition:transform .2s}.text-link:hover .ic{transform:translateX(3px)}

/* Header */
.hdr{position:sticky;top:0;z-index:50;background:#fff;color:var(--ink);box-shadow:0 1px 0 var(--line);transition:background .3s,box-shadow .3s,color .3s}
html[data-header=transparent] .hdr{position:fixed;inset:0 0 auto}
html[data-header=transparent] .hdr:not(.is-scrolled){background:transparent;color:#fff;box-shadow:none}
html[data-header=transparent] .hdr:not(.is-scrolled):before{content:"";position:absolute;inset:0 0 -40px;background:linear-gradient(rgba(0,0,0,.55),transparent);pointer-events:none;z-index:-1}
.hdr .wrap{width:min(1400px,100% - 2*clamp(20px,3vw,40px))}.hdr-inner{display:flex;align-items:center;gap:28px;height:92px;transition:height .3s}
.hdr.is-scrolled .hdr-inner{height:76px}
.logo{display:block;flex-shrink:0}.logo img{height:58px;width:auto;transition:height .3s}.hdr.is-scrolled .logo img{height:50px}
.logo-text{font:800 20px var(--font-head)}
.nav{display:flex;align-items:center;gap:clamp(14px,1.6vw,26px);margin-left:auto}
.nav>a,.dd-btn{white-space:nowrap;font:600 13.5px/1 var(--font-body);text-decoration:none;background:none;border:0;padding:10px 0;cursor:pointer;display:inline-flex;align-items:center;gap:6px;position:relative}
html[data-style=premium] .nav>a,html[data-style=premium] .dd-btn{text-transform:uppercase;letter-spacing:.12em;font-size:11.5px}
html[data-style=soft] .nav>a,html[data-style=soft] .dd-btn{font-size:15px;font-weight:500}
.nav>a[aria-current]:after,.nav>a:hover:after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1.5px;background:var(--gold)}
.hdr-actions{display:flex;align-items:center;gap:18px}
.hdr-call{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:14px;text-decoration:none;white-space:nowrap}
.hdr-call .ic{width:17px;height:17px;color:var(--gold)}
.burger{display:none;background:none;border:0;padding:8px;margin-left:auto;cursor:pointer}.burger .ic{width:28px;height:28px}

/* Dropdowns */
.dd{position:relative}
.dd-menu{position:absolute;top:calc(100% + 14px);left:50%;transform:translate(-50%,8px);background:#fff;color:var(--ink);box-shadow:0 24px 60px rgba(0,0,0,.18),0 0 0 1px rgba(0,0,0,.05);border-radius:var(--radius);opacity:0;visibility:hidden;transition:opacity .18s,transform .18s,visibility .18s;text-transform:none;letter-spacing:0}
.dd-menu:before{content:"";position:absolute;inset:-16px 0 auto;height:16px}
.dd.open .dd-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
.dd-btn .ic{transition:transform .2s}.dd.open .dd-btn .ic{transform:rotate(-90deg)}
.dd-list ul{list-style:none;margin:0;padding:10px;min-width:240px;columns:2;column-gap:6px}
.dd-list a,.mega-panel a{display:block;padding:9px 14px;text-decoration:none;font-size:15px;border-radius:calc(var(--radius)/2);break-inside:avoid}
.dd-list a:hover,.mega-panel a:hover,.dd-list a[aria-current],.mega-panel a[aria-current]{background:var(--alt);color:var(--gold-2)}
.mega{display:grid;grid-template-columns:270px 330px;padding:12px;left:0;transform:translate(-30%,8px)}
.dd.open .mega{transform:translate(-30%,0)}
.mega-cats{list-style:none;margin:0;padding:0 12px 0 0;border-right:1px solid var(--line)}
.mega-cat{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 14px;background:none;border:0;border-radius:calc(var(--radius)/2);font-weight:600;font-size:15px;text-align:left;cursor:pointer}
.mega-cat .ic{width:15px;height:15px;opacity:.4}
.mega-cat[aria-expanded=true]{background:var(--alt)}.mega-cat[aria-expanded=true] .ic{opacity:1;color:var(--gold-2)}
.mega-panel{padding:8px 4px 8px 18px}.mega-panel ul{list-style:none;margin:0;padding:0}
.mega-title{font:var(--head-weight) 20px/1.2 var(--font-head);letter-spacing:var(--head-track);margin:6px 0 6px 14px}
.mega-blurb{font-size:13.5px;line-height:1.5;color:var(--muted);margin:0 14px 10px}

/* Mobile drawer */
.drawer{background:#fff;color:var(--ink);max-height:calc(100vh - 76px);overflow:auto;border-top:1px solid var(--line)}
.drawer-inner{padding:12px 24px 28px;display:grid}
.drawer a,.drawer summary{display:flex;justify-content:space-between;align-items:center;padding:15px 0;border-bottom:1px solid var(--line);text-decoration:none;font-weight:600;font-size:17px;cursor:pointer;list-style:none}
.drawer summary::-webkit-details-marker{display:none}
.drawer details[open]>summary .ic{transform:rotate(-90deg)}
.drawer details>a,.drawer .sub{padding-left:16px}.drawer .sub>a{padding-left:16px;font-weight:400}
.drawer .sub summary{font-weight:500}
.drawer-actions{display:grid;gap:12px;margin-top:22px}
.drawer .btn{border-bottom:1.5px solid transparent;justify-content:center;padding:var(--btn-pad)}
.drawer .btn-outline{border-color:var(--ink)}
html.drawer-open .hdr{background:#fff!important;color:var(--ink)!important}
html.drawer-open .hdr:before{display:none}

/* Hero */
.hero{position:relative;min-height:var(--hero-h);display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--dark)}
.hero:not(.hero-home){--hero-h:min(68vh,620px)}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-empty{background:linear-gradient(135deg,#2a2721,#4d4434)}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.5) 45%,rgba(0,0,0,.15) 100%),linear-gradient(0deg,rgba(0,0,0,.55) 0%,transparent 45%)}
.hero-inner{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:48px;padding:150px 0 clamp(56px,8vh,96px)}
.hero-copy{max-width:760px}
.hero h1{font-size:clamp(44px,6.6vw,96px);color:#fff}
.hero:not(.hero-home) h1{font-size:clamp(38px,5vw,72px)}
.hero h1 em{font-style:normal}
.hero .kicker{color:var(--gold)}
.lede{font-size:clamp(17px,1.4vw,20px);line-height:1.6;color:rgba(255,255,255,.88);max-width:560px;margin:26px 0 0}
.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px}
.hero-list{display:none}
.hero-missing{position:absolute;right:20px;bottom:12px;font-size:12px;opacity:.6;margin:0}
.hero-form{width:390px;flex-shrink:0;background:#fff;color:var(--ink);padding:32px;border-radius:var(--card-radius);box-shadow:0 30px 80px rgba(0,0,0,.35);align-self:center}
.hero-form h2{font-size:26px;letter-spacing:-.02em}.form-note{color:var(--muted);font-size:15px;margin:6px 0 18px}
.hero-form label{display:grid;gap:6px;font-size:13px;font-weight:600;margin-bottom:12px}
.hero-form input,.hero-form select{font:inherit;font-size:15px;font-weight:400;padding:13px 14px;border:1px solid var(--line);border-radius:calc(var(--radius)/2);background:#fff;width:100%}
.hero-form .btn{margin-top:8px}.form-fine{font-size:12px;color:var(--muted);text-align:center;margin:12px 0 0}
.hero.has-form .hero-inner{align-items:center}

/* Premium: big low-left headline */
html[data-style=premium] .hero h1{text-transform:none;max-width:12ch}
html[data-style=premium] .hero:not(.hero-home) h1{max-width:16ch}
html[data-style=premium] .hero.has-form h1{font-size:clamp(40px,5vw,76px)}
/* Soft: serif with italic accent, warmer shade */
html[data-style=soft] .hero h1 em{font-style:italic;color:var(--hero-em,#ead7ae)}
html[data-style=soft] .hero-shade{background:linear-gradient(90deg,rgba(25,18,10,.72) 0%,rgba(25,18,10,.4) 55%,rgba(25,18,10,.1)),linear-gradient(0deg,rgba(25,18,10,.45),transparent 50%)}
html[data-style=soft] .hero h1{font-size:clamp(42px,6vw,86px)}
/* Neutral: centered vertically, benefit list, trust strip */
html[data-style=neutral] .hero{align-items:center}
html[data-style=neutral] .hero-inner{align-items:center;padding-bottom:72px}
html[data-style=neutral] .hero h1{font-size:clamp(38px,4.6vw,64px)}
html[data-style=neutral] .hero-list{display:none;grid-template-columns:repeat(2,minmax(0,auto));gap:10px 28px;list-style:none;padding:0;margin:26px 0 0;font-weight:600;font-size:15.5px}
html[data-style=neutral] .hero-list li{display:flex;gap:10px;align-items:center}
html[data-style=neutral] .hero-list .ic{color:var(--gold)}
html[data-style=neutral] .lede{margin-top:20px}

.trust{display:none;background:var(--dark);color:var(--on-dark)}
html[data-style=neutral] .trust{display:block}
.trust ul{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;padding:0;margin-block:0}
.trust li{display:flex;align-items:center;gap:14px;padding:26px 20px;font-weight:600;font-size:15px;border-left:1px solid rgba(255,255,255,.1)}
.trust li:first-child{border-left:0;padding-left:0}.trust .ic{width:26px;height:26px;color:var(--gold)}

/* Sections */
.sec{padding-block:var(--sec-pad)}
.sec:nth-of-type(even):not(.sec-dark){background:var(--alt)}
.sec-dark{background:var(--dark);color:var(--on-dark)}
.sec-dark .kicker{color:var(--gold)}.sec-dark .text-link{color:#fff}
.sec-head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:10px 40px;margin-bottom:clamp(36px,5vw,60px)}
.sec-head .kicker,.sec-head h2{grid-column:1}.sec-head>a,.sec-head>.sec-lede{grid-column:2;grid-row:2;justify-self:end}
.sec-lede{max-width:420px;color:var(--muted);margin:0}
.sec-dark .sec-lede{color:rgba(255,255,255,.7)}
.sec-head .sec-lede a{color:inherit}
.center{text-align:center;margin-top:36px}
.h-small{font:700 13px/1.2 var(--font-body);letter-spacing:.14em;text-transform:uppercase;margin:32px 0 14px;color:var(--muted)}

.cards{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(16px,2vw,28px)}
.card{grid-column:span 2;background:#fff;border-radius:var(--card-radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 0 0 1px var(--line)}
.card:nth-child(-n+2){grid-column:span 3}
.card-media{display:block;aspect-ratio:4/3;overflow:hidden}
.card:nth-child(-n+2) .card-media{aspect-ratio:16/10}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.card:hover .card-media img{transform:scale(1.04)}
.card-body{padding:28px;display:flex;flex-direction:column;gap:10px;flex:1}
.card-body p{color:var(--muted);font-size:15.5px;margin:0}
.card-text{background:var(--dark);color:var(--on-dark);box-shadow:none}.card-text .card-body p{color:rgba(255,255,255,.7)}
.card-links{list-style:none;padding:0;margin:8px 0 0;border-top:1px solid var(--line)}
.card-text .card-links,.card-text .card-links li{border-color:rgba(255,255,255,.14)}
.card-links li{border-bottom:1px solid var(--line)}
.card-links a{display:flex;justify-content:space-between;align-items:center;padding:11px 0;text-decoration:none;font-weight:600;font-size:15px}
.card-links .ic{width:16px;height:16px;color:var(--gold-2);transition:transform .2s}.card-links a:hover .ic{transform:translateX(4px)}
html[data-style=premium] .card{box-shadow:none;background:transparent}html[data-style=premium] .card-body{padding:24px 0 0}
html[data-style=premium] .card-text{background:var(--dark);padding:4px 28px 20px}html[data-style=premium] .card-text .card-body{padding-top:24px}
.sec:nth-of-type(even) .card:not(.card-text){background:#fff}
html[data-style=premium] .sec:nth-of-type(even) .card:not(.card-text){background:transparent}

.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.4vw,18px)}
.gallery figure{margin:0}
.zoom{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;overflow:hidden;border-radius:var(--radius);aspect-ratio:3/4}
.zoom img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.zoom:hover img{transform:scale(1.04)}
.gallery figcaption{font-size:14px;margin-top:10px;color:var(--muted)}.sec-dark .gallery figcaption{color:rgba(255,255,255,.65)}
.gallery-feature{grid-template-columns:repeat(3,1fr)}.gallery-feature .zoom{aspect-ratio:4/5}
.gallery-grid{grid-template-columns:repeat(4,1fr)}

.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,96px);align-items:center}
.split h2{margin-bottom:24px}.split p{color:var(--ink-2)}
.split-media{margin:0;border-radius:var(--card-radius);overflow:hidden;aspect-ratio:4/5}.split-media img{width:100%;height:100%;object-fit:cover}
.split-faq{align-items:start;grid-template-columns:5fr 7fr}

.checks{list-style:none;padding:0;margin:0;display:grid;gap:2px}
.checks li{display:flex;gap:14px;align-items:flex-start;padding:13px 0;border-bottom:1px solid var(--line);font-weight:500}
.checks .ic{color:var(--gold-2);margin-top:2px}
.sec-included .split{grid-template-columns:5fr 7fr;align-items:start}.sec-included .checks{display:block;columns:2;column-gap:32px}.sec-included .checks li{break-inside:avoid}
.chips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px}
.chips li{padding:9px 16px;border:1px solid var(--line);border-radius:var(--btn-radius);font-weight:600;font-size:14px;background:#fff;display:inline-flex;align-items:center;gap:8px}
.chips .ic{width:16px;height:16px;color:var(--gold-2)}
.chips-lg li{font-size:16px;padding:14px 22px}

.areas{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.areas a{display:flex;align-items:center;gap:12px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;font-weight:600;transition:border-color .2s,transform .2s}
.areas a:hover{border-color:var(--gold);transform:translateY(-2px)}.areas .ic{color:var(--gold-2)}
.areas a[aria-current]{border-color:var(--gold);background:var(--alt)}
.also{margin:24px 0 0;color:var(--muted)}

.faq details{border-bottom:1px solid var(--line)}.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px 0;font:600 18px/1.35 var(--font-body);cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.plus{width:16px;height:16px;position:relative;flex-shrink:0}.plus:before,.plus:after{content:"";position:absolute;inset:7px 0 auto;height:2px;background:var(--gold-2);transition:transform .25s}.plus:after{transform:rotate(90deg)}
.faq details[open] .plus:after{transform:rotate(0)}
.faq p{color:var(--ink-2);padding-right:40px;margin:-6px 0 22px}

.reviews-empty{text-align:center;max-width:640px;margin:0 auto;padding:40px;border:1px solid var(--line);border-radius:var(--card-radius);background:#fff}
.reviews-g{font:var(--head-weight) 24px/1.2 var(--font-head);letter-spacing:var(--head-track);color:var(--ink)!important;margin-bottom:10px}
.reviews-empty p{color:var(--muted)}

.pending{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:14px 18px;margin:18px 0;border:1.5px dashed #c9a24f99;border-radius:var(--radius);background:#c9a24f12;color:var(--ink-2);font-size:14.5px}
.pending span{font:700 11px/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;background:var(--gold);color:var(--gold-ink);padding:6px 9px;border-radius:calc(var(--radius)/3)}
.sec-dark .pending{color:rgba(255,255,255,.8)}
.reviews-empty .pending{justify-content:center;margin-bottom:0}

.related{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.related a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;text-decoration:none;font:var(--head-weight) 19px/1.25 var(--font-head);letter-spacing:var(--head-track)}
.related a:hover{border-color:var(--gold)}.related .ic{color:var(--gold-2)}

.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.contact-card{padding:clamp(28px,4vw,48px);border:1px solid var(--line);border-radius:var(--card-radius);background:#fff}
.contact-card h2{font-size:clamp(28px,3vw,40px);margin-bottom:18px}.contact-card .btn{margin-top:28px}
.phone-big{text-decoration:none;color:var(--ink)}.phone-big:hover{color:var(--gold-2)}
.hours{border-collapse:collapse;width:100%;font-size:15.5px}
.hours th,.hours td{text-align:left;padding:9px 0;border-bottom:1px solid var(--line);font-weight:500}.hours td{text-align:right;color:var(--muted)}
.soon,.prose{max-width:720px}.soon h2{margin-bottom:18px}.soon p{color:var(--muted);font-size:19px}.prose h2{margin-bottom:24px}

.cta{position:relative;color:#fff;background:var(--dark);overflow:hidden}
.cta-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cta-shade{position:absolute;inset:0;background:rgba(10,10,10,.78)}
.cta-inner{position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:40px;padding-block:clamp(72px,9vw,120px);flex-wrap:wrap}
.cta h2{font-size:clamp(34px,4.4vw,60px);margin-bottom:16px}.cta p{color:rgba(255,255,255,.78);max-width:520px;margin:0}.cta .kicker{color:var(--gold)}.cta .actions{margin:0}
html[data-style=soft] .cta-shade{background:rgba(29,24,18,.8)}

.ftr{background:var(--dark);color:rgba(255,255,255,.72);font-size:15px;padding-top:clamp(64px,7vw,96px)}
.ftr-grid{display:grid;grid-template-columns:1.3fr 1.35fr 1fr 1fr .8fr;gap:40px}
.ftr .logo img{height:64px;margin-bottom:20px}.ftr-brand p{max-width:300px}
.ftr h3{font:700 12px/1 var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:6px 0 18px}
.ftr ul{list-style:none;padding:0;margin:0;display:grid;gap:9px}.ftr a{text-decoration:none}.ftr a:hover{color:#fff}
.ftr .hours{font-size:13.5px;margin-bottom:20px}.ftr .hours th,.ftr .hours td{white-space:nowrap}.ftr .hours td{padding-left:12px}.ftr .hours th,.ftr .hours td{border-color:rgba(255,255,255,.1);color:rgba(255,255,255,.72);padding:6px 0}
.ftr-base{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.1);margin-top:56px;padding-block:24px;font-size:13.5px}.ftr-base p{margin:0}

.lightbox{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.92);display:grid;place-items:center;padding:40px}
.lightbox figure{margin:0;max-width:min(1100px,100%);text-align:center}.lightbox img{max-height:82vh;margin:auto;border-radius:4px}
.lightbox figcaption{color:#ddd;margin-top:14px}
.lb-close{position:absolute;top:18px;right:18px;background:none;border:0;color:#fff;cursor:pointer}.lb-close .ic{width:32px;height:32px}
/* Estimate pop-up (template, 2026-10-26): opened by every Request an estimate button outside a form. */
.est-modal{width:min(440px,calc(100% - 32px));max-height:calc(100% - 32px);padding:0;border:0;border-radius:var(--card-radius);background:#fff;color:var(--ink);box-shadow:0 30px 80px rgba(0,0,0,.35);overflow:auto}
.est-modal::backdrop{background:rgba(0,0,0,.6)}
html:has(.est-modal[open]){overflow:hidden}
.est-form{position:relative;padding:32px}
.est-form h2{font-size:26px;letter-spacing:-.02em;padding-right:36px}
.est-form label{display:grid;gap:6px;font-size:13px;font-weight:600;margin-bottom:12px}
.est-form input,.est-form select{font:inherit;font-size:16px;font-weight:400;padding:13px 14px;border:1px solid var(--line);border-radius:calc(var(--radius)/2);background:#fff;color:var(--ink);width:100%}
.est-form .btn{margin-top:8px}
.est-close{position:absolute;top:14px;right:14px;background:none;border:0;padding:6px;color:var(--ink);cursor:pointer}.est-close .ic{width:24px;height:24px}
@media (max-width:700px){.est-form{padding:24px 20px}}
html[data-template="3"] .est-form h2{color:var(--t3-band)}
/* Live estimate forms (2026-10-26): hidden bot field, thank-you in place, and the call note on a failed send. */
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
form.is-sent{display:block}
.form-done-title{margin:0;font:var(--head-weight,700) 22px/1.2 var(--font-head);letter-spacing:-.01em;padding-right:36px}
.form-done{margin:8px 0 0;color:var(--muted)}
.form-fine.is-error{color:#b42318;font-weight:600}.form-fine a{color:inherit}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:120;background:var(--ink);color:#fff;padding:14px 20px;border-radius:8px;font-size:14.5px;box-shadow:0 12px 30px rgba(0,0,0,.3);max-width:calc(100% - 32px)}

/* Responsive */
/* Our work: sectioned heading band over a full-width project slideshow */
:root{--work-bg:#ebe7e0}html[data-style=soft]{--work-bg:#efe5d4}html[data-style=neutral]{--work-bg:#e9ecef}
.work{background:var(--paper)}
.work-head{background-color:var(--work-bg);background-image:radial-gradient(rgba(0,0,0,.06) 1px,transparent 1.3px);background-size:5px 5px;padding-block:clamp(48px,5vw,72px) clamp(40px,4.6vw,66px)}
.work-head .kicker{color:var(--muted)}.work-head .kicker:before{background:var(--gold-2)}
html[data-style=premium] .work-head .kicker{font-weight:500;letter-spacing:.18em}
.work-head h2{font-size:clamp(30px,3vw,42px)}
.stage{position:relative;height:clamp(440px,78svh,900px);background:var(--dark);overflow:hidden;outline:none;touch-action:pan-y}
.stage:focus-visible{box-shadow:inset 0 0 0 3px var(--gold)}
.stage-item{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .9s ease,visibility 0s linear .9s;color:#fff;text-decoration:none;pointer-events:none}
.stage-item.is-current{opacity:1;visibility:visible;z-index:1;pointer-events:auto;transition:opacity .9s ease,visibility 0s}
.stage-item img{width:100%;height:100%;object-fit:cover;transform:scale(1.05);transition:transform 7s ease-out;user-select:none;-webkit-user-drag:none}
.stage-item.is-current img{transform:scale(1)}
.stage-item:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.22) 34%,transparent 58%)}
.stage-cap{position:absolute;left:0;right:0;bottom:clamp(28px,4.6vw,66px);z-index:2}
.stage-cap h3{font-size:clamp(24px,2.6vw,38px);letter-spacing:-.02em;line-height:1.15;margin:0 0 10px;max-width:min(760px,calc(100% - 220px))}
.stage-cap h3 span{opacity:.76}
.stage-cap p{margin:0;font-size:13.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.stage-ctrl{position:absolute;right:calc((100% - min(var(--wrap),100% - 2*clamp(20px,4vw,48px)))/2);bottom:clamp(28px,4.6vw,66px);z-index:3;display:flex;align-items:center;gap:14px;color:#fff}
.stage-ctrl button{width:52px;height:52px;border-radius:50%;border:1.5px solid rgba(255,255,255,.55);background:rgba(0,0,0,.18);display:grid;place-items:center;cursor:pointer;transition:background .2s,color .2s,border-color .2s;backdrop-filter:blur(4px)}
.stage-ctrl button:hover,.stage-ctrl button:focus-visible{background:#fff;color:var(--ink);border-color:#fff;outline:none}
.stage-ctrl .ic{width:20px;height:20px}.ic.flip{transform:scaleX(-1)}
.stage-count{font-size:14px;letter-spacing:.06em;min-width:44px;text-align:center}.stage-count b{font-weight:600}
.work-foot{padding-block:28px}
@media (prefers-reduced-motion:reduce){.stage-item,.stage-item img{transition:none}.stage-item img{transform:none}}
@media (max-width:600px){.stage{height:min(540px,128vw)}.stage-cap{bottom:96px}.stage-cap h3{max-width:none}.stage-ctrl{left:clamp(20px,4vw,48px);right:auto;bottom:26px}.stage-ctrl button{width:44px;height:44px}}
/* Why us: rotating photo beside the statement heading, lede and numbered reasons, sized to fit one screen */
.sec.sec-why:nth-of-type(n){background:var(--paper);padding-block:clamp(36px,3.6vw,56px) var(--sec-pad)}
.why-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(36px,6vw,110px);align-items:stretch}
.why-media{position:relative;margin:0;min-height:520px;max-height:calc(100svh - 120px);overflow:hidden;border-radius:var(--radius);background:var(--alt)}
.why-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity 1.2s ease}.why-media img.is-off{opacity:0}
.why-copy{align-self:center}
.why-head{margin-bottom:clamp(18px,1.8vw,26px)}
.why-head h2{font-size:clamp(28px,2.5vw,38px);line-height:1.15}
html[data-style=premium] .why-head h2{font-weight:700;letter-spacing:-.025em}
.why-head .kicker{color:var(--muted);margin-bottom:14px}.why-head .kicker:before{background:var(--gold-2)}
html[data-style=premium] .why-head .kicker{font-weight:500;letter-spacing:.18em}
.why-lede{font-size:clamp(16.5px,1.2vw,18.5px);line-height:1.6;color:var(--ink-2);margin:0 0 clamp(20px,2vw,28px)}
.why-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.why-list li{display:grid;grid-template-columns:56px 1fr;padding:clamp(16px,1.4vw,20px) 0;border-bottom:1px solid var(--line)}
.why-n{font-size:15px;font-weight:600;color:var(--gold-2);font-variant-numeric:tabular-nums;line-height:1.6}
.why-list h3{font-size:clamp(17.5px,1.3vw,19.5px);margin:0 0 4px}
.why-list p{margin:0;color:var(--muted);font-size:15.5px;line-height:1.6}
.sec-why .pending{margin-top:18px}.why-more{margin:20px 0 0}
@media (max-width:900px){.why-grid{grid-template-columns:1fr}.why-media{min-height:0;aspect-ratio:4/3}.why-copy{order:-1}}
@media (max-width:600px){.why-list li{grid-template-columns:44px 1fr}}
/* Home services: numbered rows beside a sticky photo, on the textured band */
.sec.sec-svc:nth-of-type(n){background-color:var(--work-bg);background-image:radial-gradient(rgba(0,0,0,.06) 1px,transparent 1.3px);background-size:5px 5px}
.svc-head{max-width:900px;margin-bottom:clamp(36px,4.5vw,64px)}
.svc-head h2{font-size:clamp(28px,2.7vw,42px);line-height:1.15}
html[data-style=premium] .svc-head h2{font-weight:700;letter-spacing:-.025em}
.svc-head .kicker{color:var(--muted)}.svc-head .kicker:before{background:var(--gold-2)}
html[data-style=premium] .svc-head .kicker{font-weight:500;letter-spacing:.18em}
.svc-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(36px,7vw,130px);align-items:start}
.svc-list{list-style:none;margin:0;padding:0;border-top:1px solid rgba(0,0,0,.12)}
.svc-list li{border-bottom:1px solid rgba(0,0,0,.12)}
.svc-list a{display:grid;grid-template-columns:40px 1fr 28px;align-items:start;gap:0 4px;padding:clamp(22px,2.2vw,32px) 0;text-decoration:none;color:inherit}
.svc-n{font-size:13px;letter-spacing:.08em;color:var(--muted);padding-top:clamp(10px,1vw,16px);font-variant-numeric:tabular-nums}
.svc-t h3{font-size:clamp(26px,2.6vw,40px);line-height:1.1;letter-spacing:-.02em;margin:0 0 12px;transition:color .25s}
html[data-style=premium] .svc-t h3{font-weight:700}
.svc-t p{margin:0;max-width:540px;color:var(--muted);font-size:16.5px;line-height:1.7}
.svc-go{width:22px;height:22px;margin-top:clamp(10px,1vw,16px);color:var(--gold-2);opacity:0;transform:translateX(-6px);transition:opacity .25s,transform .25s}
.svc-list li.is-on h3{color:var(--gold-2)}.svc-list li.is-on .svc-go{opacity:1;transform:none}
.svc-list a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.svc-media{position:sticky;top:110px}
.svc-frame{position:relative;aspect-ratio:4/5;max-height:calc(100svh - 190px);overflow:hidden;border-radius:var(--radius);background:var(--dark)}
.svc-pic{position:absolute;inset:0;transition:opacity .5s ease}.svc-pic.is-off{opacity:0}
.svc-pic img,.svc-thumb img{width:100%;height:100%;object-fit:cover}
.svc-nophoto{position:absolute;inset:0;display:grid;place-content:center;gap:8px;text-align:center;padding:24px;background:var(--dark);color:var(--on-dark)}
.svc-nophoto b{font-family:var(--font-head);font-size:24px}.svc-nophoto span{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.svc-cap{margin:16px 0 0;font-size:14px;line-height:1.6;color:var(--muted);max-width:520px}
.svc-thumb{display:none}
@media (max-width:900px){.svc-grid{grid-template-columns:1fr}.svc-media{display:none}.svc-thumb{display:block;position:relative;aspect-ratio:16/10;overflow:hidden;border-radius:var(--radius);margin:0 0 24px}.svc-go{opacity:1;transform:none}.svc-list li.is-on h3{color:inherit}}
/* Reviews: Google-style cards in a carousel beside an intro, or a grid on the Reviews page */
.sec.sec-rv:nth-of-type(n){background:var(--paper);padding-bottom:clamp(28px,2.6vw,40px)}
.sec.sec-rv+.sec.sec-areas:nth-of-type(n){background:var(--alt);padding-top:clamp(56px,6vw,88px)}
.sec.sec-rv+.sec-areas+.sec.sec-faq:nth-of-type(n){background:var(--paper)}
.rv-split{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,5vw,72px);align-items:center}
.rv-intro h2{font-size:clamp(28px,2.7vw,42px);line-height:1.15;margin-bottom:18px}
html[data-style=premium] .rv-intro h2{font-weight:700;letter-spacing:-.025em}
.rv-intro p:not(.kicker){color:var(--muted);font-size:17px;max-width:460px}
.rv-intro .kicker{color:var(--muted)}.rv-intro .kicker:before{background:var(--gold-2)}
html[data-style=premium] .rv-intro .kicker{font-weight:500;letter-spacing:.18em}
.rv-carousel{position:relative}
.rv-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px 2px 8px;outline:none}.rv-track::-webkit-scrollbar{display:none}
.rv-track .rv-card{flex:0 0 calc((100% - 20px)/2);scroll-snap-align:start}
.sec:not(.sec-rv) .rv-track .rv-card{flex-basis:calc((100% - 40px)/3)}
.rv-card{background:#f2f2f2;border-radius:16px;padding:24px 26px 22px;display:flex;flex-direction:column;font-family:'Inter',system-ui,sans-serif;color:#1f1f1f}
.rv-card header{display:grid;grid-template-columns:44px 1fr 24px;gap:12px;align-items:center;margin-bottom:14px}
.rv-av{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:20px;font-weight:500;background:#5f6368}
.rv-card header b{display:block;font-size:16px;font-weight:600;line-height:1.3}.rv-card header small{display:block;font-size:13.5px;color:#70757a}
.rv-g{width:24px;height:24px;align-self:start}
.rv-stars{display:flex;gap:2px;margin:0 0 10px;color:#fbbc04}.rv-stars .ic{width:20px;height:20px}
.rv-text{margin:0;font-size:16px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.rv-card.is-open .rv-text{-webkit-line-clamp:unset;display:block}
.rv-more{align-self:flex-start;margin-top:10px;padding:0;border:0;background:none;color:#70757a;font-size:14.5px;cursor:pointer}.rv-more:hover{color:#1f1f1f;text-decoration:underline}
.rv-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:40px;height:40px;border-radius:50%;border:0;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.18);display:grid;place-items:center;cursor:pointer;color:#3c4043}
.rv-arrow .ic{width:20px;height:20px}.rv-prev{left:-18px}.rv-next{right:-18px}.rv-arrow:disabled{opacity:0;pointer-events:none}
.rv-summary{text-align:center;margin:20px 0 0;font-size:16px;color:var(--ink)}.rv-summary a{color:inherit;font-weight:600}
.rv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:20px}
.rv-grid .rv-card{background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.06),0 1px 8px rgba(0,0,0,.05)}
.rv-pending .rv-text{color:#5f6368}.rv-pending .pending{margin:16px 0 0}
.rv-cta{text-align:center;margin:32px 0 0}
@media (max-width:900px){.rv-split{grid-template-columns:minmax(0,1fr)}.rv-track .rv-card,.sec:not(.sec-rv) .rv-track .rv-card{flex-basis:calc((100% - 20px)/2)}}
@media (max-width:600px){.rv-track .rv-card,.sec:not(.sec-rv) .rv-track .rv-card{flex-basis:88%}.rv-prev{left:-8px}.rv-next{right:-8px}}
/* Inner page headers: split header with photo for service pages, short title band elsewhere */
.ph{position:relative}
.ph-band{background-color:var(--work-bg);background-image:radial-gradient(rgba(0,0,0,.06) 1px,transparent 1.3px);background-size:5px 5px;padding-block:clamp(36px,4vw,60px) clamp(40px,4.6vw,68px)}
.ph-split{background:var(--paper);padding-block:clamp(32px,3.6vw,56px) clamp(40px,4.6vw,72px)}
.ph-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(32px,6vw,96px);align-items:center}
.ph h1{font-size:clamp(34px,4vw,58px);line-height:1.06;max-width:18ch}
html[data-style=premium] .ph h1{font-weight:800}
.ph .kicker{color:var(--gold-2);margin-bottom:14px}
.ph .lede{font-size:clamp(17px,1.35vw,19.5px);line-height:1.6;color:var(--ink-2);max-width:620px;margin:20px 0 0}
.ph .actions{margin-top:30px}
.ph-media{margin:0;aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius);background:var(--alt)}
.ph-media img{width:100%;height:100%;object-fit:cover}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13.5px;color:var(--muted);margin-bottom:clamp(20px,2.4vw,32px)}
.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--ink);text-decoration:underline}.crumbs i{font-style:normal;opacity:.5}.crumbs [aria-current]{color:var(--ink)}
.btn-line{background:transparent;color:var(--ink);border-color:var(--ink)}.btn-line:hover{background:var(--ink);color:#fff}
@media (max-width:900px){.ph-grid{grid-template-columns:1fr}.ph-media{aspect-ratio:16/10}}
@media (max-width:1480px){.hdr-call span{display:none}.hdr-call .ic{width:22px;height:22px}}
@media (max-width:1180px){
 .nav,.hdr-actions{display:none}.burger{display:block}
 .hdr-inner{height:76px}.logo img{height:48px}
 .cards{grid-template-columns:repeat(2,1fr)}.card,.card:nth-child(-n+2){grid-column:span 1}
 .areas{grid-template-columns:repeat(3,1fr)}.ftr-grid{grid-template-columns:repeat(3,1fr)}.ftr-brand{grid-column:1/-1}
 .trust ul{grid-template-columns:repeat(2,1fr)}.trust li:nth-child(3){border-left:0;padding-left:0}
}
@media (max-width:900px){
 .hero-inner{flex-direction:column;align-items:stretch;padding-top:130px}
 .hero.has-form{align-items:stretch}.hero-form{width:100%}
 .split,.split-faq,.contact-grid,.sec-included .split{grid-template-columns:1fr}
 .gallery,.gallery-grid{grid-template-columns:repeat(2,1fr)}
 .gallery-feature{grid-template-columns:repeat(2,1fr)}
 .related{grid-template-columns:1fr 1fr}
 .sec-head{grid-template-columns:1fr}.sec-head>a,.sec-head>.sec-lede{grid-column:1;grid-row:auto;justify-self:start}
}
@media (max-width:600px){
 body{font-size:16px}
 .hero{--hero-h:auto;min-height:88vh}.hero:not(.hero-home){min-height:62vh}
 .hero-inner{padding:120px 0 44px;gap:28px}
 .hero h1{font-size:clamp(40px,11vw,56px)}.hero:not(.hero-home) h1{font-size:clamp(34px,9.5vw,46px)}
 html[data-style=neutral] .hero-list{grid-template-columns:1fr}
 .actions{flex-direction:column;align-items:stretch}.actions .btn{width:100%}
 .hero-form{padding:24px}
 .cards,.areas,.related{grid-template-columns:1fr}.areas{grid-template-columns:1fr 1fr}
 .trust ul{grid-template-columns:1fr}.trust li{border-left:0!important;padding:16px 0;border-top:1px solid rgba(255,255,255,.1)}.trust li:first-child{border-top:0}
 .ftr-grid{grid-template-columns:1fr 1fr}.ftr-grid>div:nth-child(2){grid-column:1/-1}
 .cta-inner{flex-direction:column;align-items:stretch}
 .faq p{padding-right:0}.sec-included .checks{columns:1}
}

/* Service page bodies: backgrounds come from the sequence (tone-*), not section position */
.sec.tone-paper:nth-of-type(n){background:var(--paper)}
.sec.tone-alt:nth-of-type(n){background:var(--alt)}
.sec.tone-tex:nth-of-type(n){background-color:var(--work-bg);background-image:radial-gradient(rgba(0,0,0,.06) 1px,transparent 1.3px);background-size:5px 5px}
.tone-alt .areas a,.tone-tex .chips li{background:#fff}
.inc-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(32px,6vw,96px);align-items:start}
.inc-solo{grid-template-columns:1fr}
.inc-head h2{margin:0}
.inc-head .h-small{margin-top:30px}
.inc-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(24px,3vw,48px);border-top:1px solid rgba(0,0,0,.12)}
.inc-list li{display:flex;gap:12px;align-items:flex-start;padding:15px 0;border-bottom:1px solid rgba(0,0,0,.12);font-weight:500;line-height:1.4}
.inc-list .ic{flex:none;width:18px;height:18px;color:var(--gold-2);margin-top:1px}
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(20px,3vw,40px)}
.steps li{border-top:1px solid var(--line);padding-top:20px}.steps h3{margin:12px 0 8px}.steps p{color:var(--ink-2);margin:0}
.related a{align-items:flex-start}
.rel-t{display:grid;gap:8px}
.rel-t small{font:400 14.5px/1.5 var(--font-body);letter-spacing:0;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.related .ic{flex:none;margin-top:4px}
@media (max-width:900px){.inc-grid{grid-template-columns:1fr}}
@media (max-width:600px){.inc-list{grid-template-columns:1fr}}
/* About: approach text beside numbered points */
.split-approach{align-items:start}.split-approach .why-list{margin-top:8px}
/* Inner page headers, compact: short enough that the next section starts above the fold */
.ph-band{padding-block:clamp(22px,2.2vw,34px) clamp(26px,2.6vw,40px)}
.ph-split{padding-block:clamp(20px,2vw,30px) clamp(26px,2.6vw,40px)}
.ph .crumbs{margin-bottom:clamp(12px,1.2vw,18px)}
.ph h1{font-size:clamp(30px,3.1vw,46px);line-height:1.08;max-width:24ch}
.ph .lede{font-size:clamp(16px,1.15vw,18px);line-height:1.55;max-width:680px;margin-top:12px}
.ph .actions{margin-top:20px}
.ph-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px 48px}
.ph-row .actions{margin-top:0;flex:none}
.ph-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,4vw,64px)}
.ph-media{aspect-ratio:16/10;max-height:340px}
.ph+.sec{padding-top:clamp(48px,5vw,80px)}
@media (max-width:1100px){.ph-row{flex-direction:column;align-items:flex-start}.ph-row .actions{margin-top:4px}}
@media (max-width:900px){.ph-grid{grid-template-columns:1fr}.ph-media{aspect-ratio:16/9;max-height:none}}
@media (max-width:600px){.ph .actions{flex-direction:row;flex-wrap:wrap}.ph .actions .btn{width:auto;flex:1 1 auto;padding-inline:14px}.ph h1{font-size:30px}}
/* Service scope as two written paragraphs */
.inc-blurbs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,3vw,48px);border-top:1px solid rgba(0,0,0,.12);padding-top:clamp(20px,2vw,28px)}
.inc-one{grid-template-columns:minmax(0,1fr);max-width:640px}
.inc-blurb .h-small{margin:0 0 12px}
.inc-blurb p{margin:0;font-size:clamp(16px,1.15vw,18px);line-height:1.65;color:var(--ink-2)}
@media (max-width:700px){.inc-blurbs{grid-template-columns:1fr}}
/* Service scope: written copy beside a photo */
.scope{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,80px);align-items:center}
.scope-copy h2{margin:0 0 22px;max-width:18ch}
.scope-copy p{margin:0 0 16px;font-size:clamp(16px,1.15vw,18px);line-height:1.7;color:var(--ink-2);max-width:62ch}
.scope-copy p:last-child{margin-bottom:0}
.scope-media{margin:0;aspect-ratio:4/5;max-height:620px;overflow:hidden;border-radius:var(--card-radius);background:var(--alt)}
.scope-media img{width:100%;height:100%;object-fit:cover}
.scope-nophoto{height:100%;display:grid;place-items:center;border:1.5px dashed rgba(0,0,0,.18);border-radius:inherit;color:var(--muted);font-weight:600;font-size:14px;letter-spacing:.06em;text-transform:uppercase}
@media (max-width:900px){.scope{grid-template-columns:1fr}.scope-media{aspect-ratio:4/3}}
.scope.scope-solo{grid-template-columns:minmax(0,1fr)}
/* Area (town) pages */
.local{max-width:900px;margin-inline:auto}
.local>h2{margin:0 0 28px;max-width:22ch}
.local-media{margin:0 0 32px;border-radius:var(--card-radius);overflow:hidden;background:var(--alt)}
.local-media img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.local-media figcaption{font-size:14px;color:var(--muted);padding:12px 16px}
.local-copy p{font-size:clamp(16.5px,1.2vw,18.5px);line-height:1.75;color:var(--ink-2);margin:0 0 20px}
.local-cards{list-style:none;padding:0;margin:40px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.local-cards li{background:#fff;border:1px solid var(--line);border-radius:var(--card-radius);padding:24px}
.local-ic{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--alt);color:var(--gold-2);margin-bottom:16px}
.local-cards h3{font-size:19px;margin:0 0 8px}.local-cards p{margin:0;color:var(--ink-2);font-size:15.5px;line-height:1.6}
.do h2{margin-bottom:14px}.do .sec-lede{max-width:640px;margin-bottom:26px}
.do-links{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px}
.do-links a{display:inline-block;padding:12px 20px;border-radius:var(--btn-radius);background:var(--dark);color:#fff;text-decoration:none;font-weight:600;font-size:15px}
.do-links a:hover{background:var(--gold-2)}
.do .h-small{margin-top:34px}.tone-tex .chips li{background:#fff}
.next-head{text-align:center;margin-bottom:36px}.next-head .kicker{justify-content:center}
.next-cards{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.next-cards a{position:relative;display:grid;gap:8px;height:100%;padding:28px 56px 28px 28px;background:var(--dark);color:#fff;text-decoration:none;border-radius:var(--card-radius)}
.next-cards small{color:var(--gold);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.next-cards b{font:var(--head-weight) 22px/1.2 var(--font-head)}.next-cards span{color:rgba(255,255,255,.75);font-size:15px;line-height:1.5}
.next-cards .ic{position:absolute;right:24px;bottom:28px;color:var(--gold)}
.next-cards a:hover{background:var(--dark-2)}
.sec-next .also{text-align:center;margin-top:30px;color:var(--muted)}.sec-next .also a{color:var(--ink)}
@media (max-width:900px){.local-cards,.next-cards{grid-template-columns:1fr}}

/* Before-and-after slider (photo with a "before" in the manifest) */
.ba{position:absolute;inset:0;--ba:50%;overflow:hidden}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba-before{clip-path:inset(0 calc(100% - var(--ba)) 0 0)}
.ba-line{position:absolute;top:0;bottom:0;left:var(--ba);width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.12);pointer-events:none}
.ba-line:after{content:'\2039\00a0\203A';position:absolute;top:50%;left:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:#fff;color:var(--ink);display:grid;place-content:center;font:600 20px/1 var(--font-body);box-shadow:0 4px 14px rgba(0,0,0,.28)}
.ba-tag{position:absolute;top:14px;padding:6px 9px;font:700 11px/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;background:rgba(0,0,0,.55);color:#fff;border-radius:calc(var(--radius)/3);pointer-events:none}
.ba-tag-b{left:14px}.ba-tag-a{right:14px}
.ba-range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;-webkit-appearance:none;appearance:none;touch-action:pan-y}
.ba:focus-within .ba-line:after{outline:2px solid var(--gold);outline-offset:3px}
.ba-tile{position:relative;overflow:hidden;border-radius:var(--radius);aspect-ratio:3/4;background:var(--dark)}
.gallery-feature .ba-tile{aspect-ratio:4/5}
.ba-box{position:relative;width:100%;height:100%}
.gallery .ba-tag{top:8px;padding:4px 6px;font-size:9px}.gallery .ba-tag-b{left:8px}.gallery .ba-tag-a{right:8px}
.gallery .ba-line:after{width:34px;height:34px;margin:-17px 0 0 -17px;font-size:16px}
.nap{font-style:normal;display:grid;gap:2px;margin:0 0 12px;line-height:1.5}
.nap strong{font-weight:700}
.contact-card .nap{margin:6px 0 14px;font-size:17px}
.ftr .social,.social{list-style:none;display:flex;flex-direction:row;gap:10px;margin:18px 0 0;padding:0}
.ftr .social li{margin:0}
.social a{display:grid;place-items:center;width:40px;height:40px;border:1px solid rgba(255,255,255,.22);border-radius:50%;color:var(--on-dark);transition:background .2s,border-color .2s,color .2s}
.social a:hover{background:var(--gold);border-color:var(--gold);color:var(--dark)}
.social .ic{width:19px;height:19px}
.reveal-on main>section:not(:first-child):not(.stats) .wrap>*{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal-on main>section:not(:first-child):not(.stats) .wrap>.is-in{opacity:1;transform:none}
/* Stats count-up band (design.scroll: stats) */
.stats{position:relative;z-index:6;height:0}
.stats .wrap{position:relative}
.stats-row{position:absolute;left:0;right:0;bottom:36px}
.stats-row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:14px}
.stats-row.n1{--n:1;max-width:420px}.stats-row.n2{--n:2;max-width:760px}
.stats-row.n1,.stats-row.n2{right:auto;width:100%}
.stats-row li{background:var(--dark);color:var(--on-dark);text-align:center;padding:26px 18px 24px;border-radius:var(--card-radius,10px);box-shadow:0 18px 40px rgba(0,0,0,.28)}
.stats-row b{display:block;font:var(--head-weight,700) clamp(38px,4.6vw,60px)/1 var(--font-head);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stats-row span{display:block;margin-top:8px;font-size:15px;letter-spacing:.02em;color:var(--gold)}
@media (max-width:700px){.stats{height:auto;background:var(--dark);padding:14px 0 18px}.stats-row{position:static;gap:8px}.stats-row li{box-shadow:none;border:1px solid rgba(255,255,255,.12)}.stats-row li{padding:16px 6px}.stats-row b{font-size:30px}.stats-row span{font-size:12px}}
@media (min-width:701px){html[data-stats-on] .hero-home{padding-bottom:190px}}
.stats-row li{transition:transform .7s cubic-bezier(.2,.7,.2,1),opacity .6s ease}
.stats-row li.stat-wait{opacity:0;transform:translateY(46px)}
.stats-row li.stat-in{opacity:1;transform:none}
/* Estimate form that opens under the stats cards */
.stats-form-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s cubic-bezier(.2,.7,.2,1)}
.stats-form-wrap.is-open{grid-template-rows:1fr}
.stats-form{min-height:0;overflow:hidden;display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:12px;align-items:end;background:#fff;color:var(--ink);border-radius:var(--card-radius,10px);box-shadow:0 18px 40px rgba(0,0,0,.18);padding:0 24px;opacity:0;transition:opacity .5s ease .15s,padding .6s ease}
.stats-form-wrap.is-open .stats-form{opacity:1;padding:22px 24px 18px;margin-top:14px}
.stats-form-title{grid-column:1/-1;margin:0;font:var(--head-weight,700) 22px/1.2 var(--font-head);letter-spacing:-.01em}
.stats-form label{display:grid;gap:6px;font-size:13px;font-weight:600}
.stats-form input,.stats-form select{font:inherit;font-size:15px;font-weight:400;padding:12px 13px;border:1px solid var(--line);border-radius:calc(var(--radius)/2);background:#fff;width:100%}
.stats-form .btn{white-space:nowrap}
.stats-form .form-fine{grid-column:1/-1;margin:0;font-size:12px;color:var(--muted)}
html[data-stats-on] .stats{height:auto;margin-top:-190px;padding-top:18px;padding-bottom:42px;background:linear-gradient(to bottom,transparent 190px,var(--dark) 190px)}
html[data-stats-on] .stats .stats-row{position:relative;bottom:auto;left:auto;right:auto;margin-top:0}
html[data-stats-on] .stats-form-wrap.is-open{margin-bottom:34px}
@media (max-width:980px){.stats-form{grid-template-columns:1fr 1fr}.stats-form .btn{grid-column:1/-1}}
@media (max-width:700px){html[data-stats-on] .stats{margin-top:0;padding-top:14px;padding-bottom:18px;background:var(--dark)}.stats-form{grid-template-columns:1fr}.stats-form-wrap.is-open .stats-form{padding:18px 16px}}

/* ---------- Template 2 (Adam, 2026-10-19) ----------
   Only applies under html[data-template="2"]. Same page map; new section layouts and skin modelled on a
   reference landscaping site: brand stripe header, centred photo hero, photo tiles, statement band, one large
   review at a time, towns as a list, brand-colour call-to-action bar and footer. Colours stay the client's own. */
/* Fonts come from the style (Adam, 2026-10-19): Premium Archivo, Soft Fraunces + DM Sans, Neutral Inter, as in Template 1. */
html[data-template="2"][data-style]{ --radius:0px;--card-radius:0px;--btn-radius:2px;--btn-case:uppercase;--btn-track:.13em;--btn-size:12.5px;--btn-weight:700;--btn-pad:16px 26px;--btn-shadow:none;
 --sec-pad:clamp(72px,8vw,116px);--hero-h:min(92vh,860px);--t2-band:var(--btn-bg,var(--dark))}
html[data-template="2"] body{font-family:var(--font-body)}
html[data-template="2"] .btn{font-family:var(--font-head)}
html[data-template="2"] .kicker{font:400 clamp(17px,1.4vw,21px)/1.3 var(--font-body);letter-spacing:.01em;text-transform:none;color:var(--muted)}
html[data-template="2"] .kicker:before{display:none}
html[data-template="2"] .sec h2{color:var(--t2-band)}
html[data-template="2"] .sec-dark h2,html[data-template="2"] .t2-areas h2{color:#fff}
html[data-template="2"] .sec-dark .kicker{color:rgba(255,255,255,.78)}
html[data-template="2"] .t2-caps{text-transform:uppercase;letter-spacing:.01em}

/* Divider: dotted rules either side of a small diamond in the accent colour. */
.t2-rule{display:flex;align-items:center;justify-content:center;gap:10px;margin:20px auto 22px;color:var(--gold)}
.t2-rule:before,.t2-rule:after{content:"";width:min(140px,22vw);border-top:2px dotted currentColor;opacity:.75}
.t2-rule i{width:8px;height:8px;background:currentColor;transform:rotate(45deg)}

/* Faint leaf pattern, tinted with the client's accent colour. */
.t2-pattern{position:relative;isolation:isolate}
.t2-pattern:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--gold);opacity:.08;pointer-events:none;
 -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 220'%3E%3Cg fill='black'%3E%3Cellipse cx='44' cy='40' rx='26' ry='10' transform='rotate(-35 44 40)'/%3E%3Cellipse cx='70' cy='70' rx='22' ry='8' transform='rotate(25 70 70)'/%3E%3Cellipse cx='160' cy='130' rx='30' ry='11' transform='rotate(-50 160 130)'/%3E%3Cellipse cx='130' cy='170' rx='20' ry='8' transform='rotate(15 130 170)'/%3E%3Ccircle cx='110' cy='40' r='5'/%3E%3Ccircle cx='122' cy='52' r='4'/%3E%3Ccircle cx='30' cy='150' r='5'/%3E%3Ccircle cx='42' cy='162' r='4'/%3E%3Ccircle cx='190' cy='40' r='4'/%3E%3C/g%3E%3C/svg%3E") 0 0/220px 220px repeat;
 mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 220'%3E%3Cg fill='black'%3E%3Cellipse cx='44' cy='40' rx='26' ry='10' transform='rotate(-35 44 40)'/%3E%3Cellipse cx='70' cy='70' rx='22' ry='8' transform='rotate(25 70 70)'/%3E%3Cellipse cx='160' cy='130' rx='30' ry='11' transform='rotate(-50 160 130)'/%3E%3Cellipse cx='130' cy='170' rx='20' ry='8' transform='rotate(15 130 170)'/%3E%3Ccircle cx='110' cy='40' r='5'/%3E%3Ccircle cx='122' cy='52' r='4'/%3E%3Ccircle cx='30' cy='150' r='5'/%3E%3Ccircle cx='42' cy='162' r='4'/%3E%3Ccircle cx='190' cy='40' r='4'/%3E%3C/g%3E%3C/svg%3E") 0 0/220px 220px repeat}

/* Header: dark brand stripe with an accent line, spaced uppercase menu, larger logo. */
html[data-template="2"] .hdr{border-top:7px solid var(--t2-band);box-shadow:inset 0 3px 0 var(--gold),0 1px 0 var(--line)}
html[data-template="2"][data-header=transparent] .hdr:not(.is-scrolled){box-shadow:inset 0 3px 0 var(--gold)}
html[data-template="2"] .nav{gap:clamp(12px,1.3vw,22px)}
html[data-template="2"] .nav>a,html[data-template="2"] .dd-btn{font-family:var(--font-head);font-weight:600;font-size:11.5px;letter-spacing:.09em;text-transform:uppercase}
html[data-template="2"] .hdr .logo img{max-width:230px;object-fit:contain;object-position:left center}
html[data-template="2"] .logo img{height:66px}
html[data-template="2"][data-header=transparent] .hdr:not(.is-scrolled) .logo img{height:92px;transform:translateY(12px);filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}

/* Home hero: crossfading photos, centred copy, shadow along the bottom edge. */
.hero-slides img{transition:opacity 1.4s ease}.hero-slides img.is-off{opacity:0}
html[data-template="2"] .hero-home{box-shadow:0 22px 34px -18px rgba(0,0,0,.55);z-index:1}
html[data-template="2"] .hero-home .hero-shade{background:linear-gradient(0deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,.34) 55%,rgba(0,0,0,.5) 100%)}
html[data-template="2"] .hero-home .hero-inner{justify-content:center;align-items:center;text-align:center;padding:180px 0 clamp(80px,12vh,140px)}
html[data-template="2"] .hero-home .hero-copy{max-width:1020px;margin-inline:auto}
html[data-template="2"] .hero-home .kicker{justify-content:center;font-size:clamp(18px,1.7vw,26px);color:#fff;margin-bottom:16px}
html[data-template="2"] .hero h1{text-transform:uppercase;letter-spacing:.01em;font-size:clamp(34px,4.4vw,64px);line-height:1.1}
html[data-template="2"] .hero-home .t2-rule{margin:24px auto 20px}
html[data-template="2"] .hero-home .lede{margin-inline:auto;max-width:720px}
html[data-template="2"] .hero-home .actions{justify-content:center;margin-top:30px}
html[data-template="2"] .hero-home.has-form .hero-inner{justify-content:space-between;text-align:left}
html[data-template="2"] .hero-home.has-form .hero-copy{margin:0}
html[data-template="2"] .hero-home.has-form .kicker,html[data-template="2"] .hero-home.has-form .actions,html[data-template="2"] .hero-home.has-form .t2-rule{justify-content:flex-start}
html[data-template="2"] .hero-home.has-form .t2-rule,html[data-template="2"] .hero-home.has-form .lede{margin-left:0}

/* Section heads: thin line, heading, divider, short lede, all centred. */
.t2-head{text-align:center;max-width:900px;margin:0 auto clamp(36px,4vw,56px)}
.t2-thin{font:400 clamp(19px,1.8vw,26px)/1.3 var(--font-body);margin:0 0 10px;color:var(--muted)}
.t2-head h2{font-size:clamp(28px,3.1vw,44px)}
.t2-lede{color:var(--ink-2);max-width:720px;margin:0 auto;font-size:clamp(16px,1.2vw,18px);line-height:1.7}

/* Photo tiles (home): label in the bottom corner on a shade, brand-colour frame. */
html[data-template="2"] .sec.t2-tiles-sec:nth-of-type(n){background:var(--paper);padding-block:clamp(56px,6vw,88px)}
.t2-tiles{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(18px,2.4vw,36px)}
.t2-tiles>li{flex:0 1 calc((100% - 2*clamp(18px,2.4vw,36px))/3);min-width:0}
.t2-tiles.t2-n4>li{flex-basis:calc((100% - 3*clamp(18px,2.4vw,36px))/4)}
.t2-tile{position:relative;display:block;aspect-ratio:3/2;overflow:hidden;border:3px solid var(--t2-band);background:var(--alt);color:#fff;text-decoration:none}
.t2-n4 .t2-tile{aspect-ratio:4/5}
.t2-tile img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.t2-tile:hover img{transform:scale(1.05)}
.t2-tile:after{content:"";position:absolute;inset:auto 0 0;height:60%;background:linear-gradient(0deg,rgba(0,0,0,.66),transparent);pointer-events:none}
.t2-tile-label{position:absolute;left:16px;right:16px;bottom:14px;z-index:1;font:700 clamp(19px,1.8vw,26px)/1.1 var(--font-head);text-transform:uppercase;letter-spacing:.02em}
.t2-tile-label b{color:var(--gold);margin-left:8px;font-weight:700}
.t2-tile-empty{display:grid;place-items:center;height:100%;color:var(--muted);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.t2-tile-sub{margin:12px 2px 0;color:var(--ink-2);font-size:15px;line-height:1.55;text-align:center}

/* Statement band: full-width photo, dark brand overlay, centred copy. */
.t2-band{position:relative;overflow:hidden;color:#fff;background:var(--dark);text-align:center;padding-block:clamp(88px,10vw,150px)}
.t2-band-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.t2-band-shade{position:absolute;inset:0;background:var(--dark);opacity:.76}
.t2-band .wrap{position:relative;max-width:1000px}
.t2-band .t2-thin{color:rgba(255,255,255,.88)}
.t2-band h2{color:#fff;font-size:clamp(30px,3.6vw,52px)}
.t2-band .t2-lede{color:rgba(255,255,255,.88)}
.t2-points{list-style:none;padding:0;margin:44px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.t2-points li{border-top:2px dotted rgba(255,255,255,.35);padding-top:20px}
.t2-points h3{font:700 14.5px/1.35 var(--font-head);text-transform:uppercase;letter-spacing:.1em;color:var(--hero-em,#fff)}
.t2-points p{margin:8px 0 0;font-size:15px;line-height:1.6;color:rgba(255,255,255,.82)}
.t2-band .pending{color:rgba(255,255,255,.85);margin:30px auto 0;max-width:560px}
.t2-sign{margin:30px 0 0;font-style:italic;font-weight:600}.t2-sign a{color:#fff;text-decoration:none}.t2-sign a:hover{color:var(--hero-em,var(--gold))}

/* Services (home). */
html[data-template="2"] .sec.t2-svc:nth-of-type(n){background:var(--alt)}

/* Reviews: one large quote at a time, centred; on inner pages, quote cards. */
html[data-template="2"] .sec.t2-rv:nth-of-type(n){background:var(--paper)}
.t2-two{text-transform:uppercase;letter-spacing:.01em}.t2-two em{font-style:normal;color:var(--gold)}
html[data-template="2"] .rv-card{background:transparent;border-top:2px dotted var(--gold);border-radius:0;font-family:var(--font-body);text-align:center;align-items:center;padding:26px 18px 6px}
html[data-template="2"] .rv-card header{order:3;margin:16px 0 0;grid-template-columns:auto auto 20px;justify-content:center;text-align:left}
html[data-template="2"] .rv-stars{order:0;justify-content:center}
html[data-template="2"] .rv-text{order:1;font-size:17px;line-height:1.7;color:var(--ink)}
html[data-template="2"] .rv-text:before{content:"“";color:var(--gold);font-family:var(--font-head);font-weight:700;margin-right:3px}
html[data-template="2"] .rv-more{order:2;align-self:center}
html[data-template="2"] .t2-rv .rv-track .rv-card{flex:0 0 100%;border-top:0;padding:4px clamp(8px,7vw,110px) 6px}
html[data-template="2"] .t2-rv .rv-text{font-size:clamp(18px,1.7vw,23px);-webkit-line-clamp:5}
html[data-template="2"] .t2-rv .rv-card header{order:3}
html[data-template="2"] .rv-arrow{border-radius:0;background:var(--t2-band);color:#fff;box-shadow:none}
.t2-more{text-align:center;margin:30px 0 0}

/* Service areas: towns as a centred list split by bars, everywhere in Template 2. */
html[data-template="2"] .areas{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 38px;max-width:1000px;margin:0 auto}
html[data-template="2"] .areas li{display:flex;align-items:center}
html[data-template="2"] .areas a,html[data-template="2"] .tone-alt .areas a{padding:0;background:none;border:0;border-radius:0;font:600 clamp(15px,1.3vw,19px)/1.4 var(--font-head);text-transform:uppercase;letter-spacing:.06em;color:inherit}
html[data-template="2"] .areas a:hover,html[data-template="2"] .areas a[aria-current]{color:var(--gold);transform:none;background:none}
html[data-template="2"] .areas .ic{display:none}
html[data-template="2"] .sec.t2-areas:nth-of-type(n){background:var(--t2-band);color:#fff}
.t2-areas .t2-thin,.t2-areas .t2-lede{color:rgba(255,255,255,.82)}
.t2-areas .t2-rule{color:var(--hero-em,var(--gold))}
.t2-areas .also{color:rgba(255,255,255,.75);text-align:center}.t2-areas .also a{color:#fff}

/* FAQ: one centred column with dotted rules. */
html[data-template="2"] .sec.t2-faq:nth-of-type(n){background:var(--paper)}
.t2-faq .faq{max-width:860px;margin:0 auto}
html[data-template="2"] .faq details,html[data-template="2"] .faq details:first-child{border-color:color-mix(in srgb,var(--gold) 55%,transparent);border-bottom-style:dotted;border-top-style:dotted;border-width:2px 0 0}
html[data-template="2"] .faq details:last-child{border-bottom-width:2px}
html[data-template="2"] .faq summary{font:600 17px/1.4 var(--font-head)}

/* Call-to-action bar and footer in the brand colour. Buttons invert on the brand colour. */
html[data-template="2"] .cta.t2-cta{background:var(--t2-band)}
.t2-cta .cta-inner{flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:22px;padding-block:clamp(52px,5.6vw,80px)}
.t2-cta h2{margin:0;font-size:clamp(26px,3.2vw,44px);color:#fff}
.t2-cta-link{color:var(--hero-em,#fff);text-decoration:none;white-space:nowrap}.t2-cta-link:hover{text-decoration:underline}
html[data-template="2"] .t2-cta .btn-primary,html[data-template="2"] .ftr .btn-primary{background:#fff;color:var(--t2-band)}
html[data-template="2"] .t2-cta .btn-primary:hover,html[data-template="2"] .ftr .btn-primary:hover{background:var(--gold);color:var(--gold-ink,#111)}
html[data-template="2"] .ftr{background:var(--t2-band);color:rgba(255,255,255,.86);text-align:center}
html[data-template="2"] .ftr-brand p{margin-inline:auto}
html[data-template="2"] .ftr .logo{display:inline-block}
html[data-template="2"] .ftr .social{justify-content:center}
html[data-template="2"] .ftr .hours{margin-inline:auto}
html[data-template="2"] .ftr h3{color:#fff;font-family:var(--font-head);font-weight:600}
html[data-template="2"] .ftr-base{border-top:0;background:var(--gold);color:var(--gold-ink,#111);box-shadow:0 0 0 100vmax var(--gold);clip-path:inset(0 -100vmax);margin-top:56px;padding-block:18px}
html[data-template="2"] .ftr-base a{color:inherit}

/* Inner page headers: pattern band, uppercase title in the brand colour. */
html[data-template="2"] .ph-band,html[data-template="2"] .ph-split{background:var(--alt)}
html[data-template="2"] .ph h1{text-transform:uppercase;letter-spacing:.01em;color:var(--t2-band)}

@media (max-width:900px){
 .t2-tiles>li,.t2-tiles.t2-n4>li{flex-basis:calc((100% - clamp(18px,2.4vw,36px))/2)}
 .t2-points{grid-template-columns:1fr;gap:18px}
}
@media (max-width:600px){
 .t2-tiles>li,.t2-tiles.t2-n4>li{flex-basis:100%}
 .t2-n4 .t2-tile{aspect-ratio:3/2}
 html[data-template="2"][data-header=transparent] .hdr:not(.is-scrolled) .logo img{height:64px;transform:none}
 html[data-template="2"] .hero-home .hero-inner{padding:130px 0 64px}
 html[data-template="2"] .areas{gap:10px 24px}
 .t2-rule:before,.t2-rule:after{width:70px}
}
/* Template 2 hero heading: full width, the place in the client's light accent. Light logo over the photo. */
html[data-template="2"] .hero h1{max-width:none;margin-inline:auto}
html[data-template="2"] .hero h1 em{color:var(--hero-em,#fff)}
html[data-template="2"] .hero-home.has-form h1{margin-left:0}
.logo-on-photo{display:none}
html[data-template="2"][data-header=transparent] .hdr:not(.is-scrolled) .logo:has(.logo-on-photo) img:not(.logo-on-photo){display:none}
html[data-template="2"][data-header=transparent] .hdr:not(.is-scrolled) .logo-on-photo{display:block}
html[data-template="2"] .ftr .logo img{height:96px}
html[data-template="2"] .sec.tone-tex:nth-of-type(n){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 220'%3E%3Cg fill='black' fill-opacity='.045'%3E%3Cellipse cx='44' cy='40' rx='26' ry='10' transform='rotate(-35 44 40)'/%3E%3Cellipse cx='70' cy='70' rx='22' ry='8' transform='rotate(25 70 70)'/%3E%3Cellipse cx='160' cy='130' rx='30' ry='11' transform='rotate(-50 160 130)'/%3E%3Cellipse cx='130' cy='170' rx='20' ry='8' transform='rotate(15 130 170)'/%3E%3Ccircle cx='110' cy='40' r='5'/%3E%3Ccircle cx='122' cy='52' r='4'/%3E%3Ccircle cx='30' cy='150' r='5'/%3E%3Ccircle cx='42' cy='162' r='4'/%3E%3Ccircle cx='190' cy='40' r='4'/%3E%3C/g%3E%3C/svg%3E");background-size:220px 220px}
.t2-tile-none{color:var(--ink)}.t2-tile-none:after{display:none}
.t2-tile-none .t2-tile-empty{place-items:start center;padding-top:22%}

/* ---------- Template 3 (Adam, 2026-10-20) ----------
   Only applies under html[data-template="3"]. Same page map and content; new section layouts and skin modelled on a
   reference contracting site (style only): white header with an accent line, centred hero over a brand-colour wash,
   rounded white cards with soft shadows, accent kickers, cream and brand-colour bands. Colours stay the client's own;
   fonts come from the style (Premium, Soft, Neutral) as in Templates 1 and 2. */
html[data-template="3"][data-style]{--radius:12px;--card-radius:18px;--btn-radius:8px;--btn-case:uppercase;--btn-track:.08em;--btn-size:13px;--btn-weight:700;--btn-pad:15px 26px;--btn-shadow:none;
 --sec-pad:clamp(72px,8vw,116px);--hero-h:min(94vh,900px);--t3-band:var(--btn-bg,var(--dark));--t3-em:var(--hero-em,var(--gold));--t3-shadow:0 18px 44px rgba(16,24,40,.10),0 2px 6px rgba(16,24,40,.05)}
html[data-template="3"] .btn-primary{background:var(--t3-band);color:#fff}
html[data-template="3"] .btn-primary:hover{background:color-mix(in srgb,var(--t3-band) 82%,#000)}
html[data-template="3"] .btn-outline{border-color:var(--t3-band);color:var(--t3-band)}html[data-template="3"] .btn-outline:hover{background:var(--t3-band);color:#fff}
html[data-template="3"] :is(.hero,.t3-svc,.t3-why,.t3-areas,.t3-ask,.t3-cta-panel,.sec-dark,.ftr) .btn-primary{background:#fff;color:var(--t3-band)}
html[data-template="3"] :is(.hero,.t3-svc,.t3-why,.t3-areas,.t3-ask,.t3-cta-panel,.sec-dark,.ftr) .btn-primary:hover{background:var(--t3-em);color:var(--gold-ink,#111)}
html[data-template="3"] .kicker,.t3-kicker{font:700 12px/1.3 var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-2);margin:0 0 14px}
html[data-template="3"] .kicker:before{display:none}
html[data-template="3"] .sec h2,html[data-template="3"] .ph h1{color:var(--t3-band)}
html[data-template="3"] :is(.sec-dark,.t3-svc,.t3-areas) h2{color:#fff}
html[data-template="3"] :is(.sec-dark,.t3-svc,.t3-why,.t3-areas,.t3-ask,.t3-cta-panel) :is(.kicker,.t3-kicker){color:var(--t3-em)}
html[data-template="3"] .text-link{border-color:var(--gold)}
.t3-head{text-align:center;max-width:860px;margin:0 auto clamp(36px,4vw,56px)}
.t3-head h2{font-size:clamp(30px,3.4vw,50px)}
.t3-lede{color:var(--ink-2);font-size:clamp(16px,1.2vw,18px);line-height:1.7;margin:18px 0 0}
.t3-head .t3-lede{max-width:700px;margin-inline:auto}
.t3-center{text-align:center;margin:34px 0 0}
.t3-num{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;flex:none;font:700 13px/1 var(--font-body);letter-spacing:.04em;background:color-mix(in srgb,var(--gold) 18%,#fff);color:var(--t3-band)}
.t3-checks{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.t3-checks li{display:flex;gap:12px;align-items:flex-start;font-weight:500}.t3-checks .ic{width:20px;height:20px;color:var(--gold-2);margin-top:3px}
.t3-sub{font-size:clamp(20px,1.6vw,24px);margin:30px 0 16px;color:var(--t3-band)}

/* Header: white bar with an accent line, quiet sentence-case menu. Over the photo it keeps the light logo. */
html[data-template="3"] .hdr{box-shadow:0 2px 0 var(--gold)}
html[data-template="3"][data-header=transparent] .hdr:not(.is-scrolled){box-shadow:none}
html[data-template="3"] .nav>a,html[data-template="3"] .dd-btn{font:500 14.5px/1 var(--font-body);letter-spacing:0;text-transform:none;color:var(--ink-2)}
html[data-template="3"][data-header=transparent] .hdr:not(.is-scrolled) :is(.nav>a,.dd-btn){color:rgba(255,255,255,.92)}
html[data-template="3"] .nav>a[aria-current]:after,html[data-template="3"] .nav>a:hover:after{background:var(--gold)}
html[data-template="3"] .hdr .logo img{max-width:230px;object-fit:contain;object-position:left center}
html[data-template="3"][data-header=transparent] .hdr:not(.is-scrolled) .logo:has(.logo-on-photo) img:not(.logo-on-photo){display:none}
html[data-template="3"][data-header=transparent] .hdr:not(.is-scrolled) .logo-on-photo{display:block}
html[data-template="3"][data-header=transparent] .hdr:not(.is-scrolled) .hdr-actions .btn-primary{background:#fff;color:var(--t3-band)}

/* Home hero: crossfading photos under a wash of the brand colour, centred copy. */
html[data-template="3"] .hero-home .hero-shade{background:linear-gradient(0deg,color-mix(in srgb,var(--t3-band) 84%,transparent),color-mix(in srgb,var(--t3-band) 58%,transparent) 70%,color-mix(in srgb,var(--t3-band) 70%,transparent))}
html[data-template="3"] .hero-home .hero-inner{justify-content:center;align-items:center;text-align:center;padding:170px 0 clamp(80px,12vh,140px)}
html[data-template="3"] .hero-home .hero-copy{max-width:1000px;margin-inline:auto}
html[data-template="3"] .hero-home .kicker{justify-content:center;color:var(--t3-em);font-size:13px}
html[data-template="3"] .hero h1{max-width:none;margin-inline:auto;font-size:clamp(38px,5vw,74px);line-height:1.08}
html[data-template="3"] .hero h1 em{color:var(--t3-em)}
html[data-template="3"] .hero-home .lede{margin-inline:auto;max-width:720px}
html[data-template="3"] .hero-home .actions{justify-content:center}
html[data-template="3"] .hero-home.has-form .hero-inner{justify-content:space-between;text-align:left}
html[data-template="3"] .hero-home.has-form .hero-copy{margin:0}
html[data-template="3"] .hero-home.has-form :is(.kicker,.actions){justify-content:flex-start}
html[data-template="3"] .hero-home.has-form :is(h1,.lede){margin-left:0}
html[data-template="3"] .hero-form{border-radius:var(--card-radius)}
html[data-template="3"] .hero-form h2{color:var(--t3-band)}
html[data-template="3"] .trust{background:var(--t3-band)}html[data-template="3"] .trust .ic{color:var(--t3-em)}

/* Stats count-up (Design 3): white cards on the brand colour. */
html[data-template="3"] .stats-row li{background:#fff;color:var(--t3-band);box-shadow:var(--t3-shadow)}
html[data-template="3"] .stats-row span{color:var(--gold-2)}
html[data-template="3"][data-stats-on] .stats{background:linear-gradient(to bottom,transparent 190px,var(--t3-band) 190px)}
@media (max-width:700px){html[data-template="3"] .stats,html[data-template="3"][data-stats-on] .stats{background:var(--t3-band)}html[data-template="3"] .stats-row li{border:0}}

/* About split: cream band, copy beside a photo in a white card. */
html[data-template="3"] .sec.t3-about:nth-of-type(n){background:var(--alt)}
.t3-about-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(36px,6vw,96px);align-items:center}
.t3-about-copy h2{font-size:clamp(32px,3.6vw,52px)}
.t3-about-copy .actions{margin-top:34px}
.t3-photo-card{margin:0;background:#fff;padding:14px;border-radius:22px;box-shadow:var(--t3-shadow)}
.t3-photo-card img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:12px}

/* Services: brand-washed photo, intro on the left, white cards on the right, every service in a frosted panel. */
html[data-template="3"] .sec.t3-svc:nth-of-type(n){position:relative;overflow:hidden;isolation:isolate;background:var(--t3-band);color:#fff}
.t3-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.t3-wash{position:absolute;inset:0;z-index:-1;background:color-mix(in srgb,var(--t3-band) 86%,transparent)}
.t3-svc-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,5vw,80px);align-items:start}
.t3-svc-intro{position:sticky;top:120px}
.t3-svc-intro h2{font-size:clamp(28px,2.9vw,42px);line-height:1.15}
.t3-cards{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.t3-cards.n1>li,.t3-cards.n3>li:last-child,.t3-cards.n5>li:last-child,.t3-cards.n7>li:last-child{grid-column:1/-1}
.t3-card{display:flex;flex-direction:column;gap:12px;height:100%;padding:26px 26px 22px;background:#fff;color:var(--ink);border-radius:var(--card-radius);box-shadow:0 18px 40px rgba(0,0,0,.18);text-decoration:none;transition:transform .25s}
.t3-card:hover{transform:translateY(-4px)}
.t3-card h3{font-size:clamp(20px,1.6vw,24px);color:var(--t3-band)}
.t3-card p{margin:0;color:var(--muted);font-size:15.5px;line-height:1.6}
.t3-more{margin-top:auto;padding-top:8px;display:inline-flex;align-items:center;gap:8px;font:700 12px/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--t3-band)}
.t3-more .ic{width:15px;height:15px;transition:transform .2s}.t3-card:hover .t3-more .ic{transform:translateX(4px)}
.t3-glass{grid-column:1/-1;padding:clamp(24px,3vw,36px);border-radius:var(--card-radius);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.t3-glass h3{font-size:20px;color:#fff;margin:0 0 18px}
.t3-glass ul{list-style:none;padding:0;margin:0;columns:3;column-gap:32px}
.t3-glass li{break-inside:avoid;padding:6px 0 6px 20px;position:relative}
.t3-glass li:before{content:"";position:absolute;left:2px;top:15px;width:7px;height:7px;border-radius:50%;background:var(--t3-em)}
.t3-glass a{color:rgba(255,255,255,.92);text-decoration:none;font-size:15.5px}.t3-glass a:hover{color:#fff;text-decoration:underline}

/* Our work: cream band with a faint accent speckle, filter pills and a carousel of rounded photo cards. */
html[data-template="3"] .sec.t3-work:nth-of-type(n){background-color:var(--alt);background-image:radial-gradient(color-mix(in srgb,var(--gold) 40%,transparent) 1px,transparent 1.5px);background-size:24px 24px}
.t3-pills{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:-14px 0 34px}
.t3-pills button{padding:10px 18px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:14.5px;font-weight:600;color:var(--ink-2);cursor:pointer;transition:background .2s,color .2s}
.t3-pills button:hover{border-color:var(--t3-band)}
.t3-pills button[aria-pressed=true]{background:var(--t3-band);border-color:var(--t3-band);color:#fff}
.t3-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px 2px 14px;outline:none}.t3-track::-webkit-scrollbar{display:none}
.t3-shot{flex:0 0 calc((100% - 36px)/3);margin:0;scroll-snap-align:start}
.t3-shot .zoom{display:block;width:100%;padding:0;border:0;background:var(--line);border-radius:14px;overflow:hidden;cursor:zoom-in;aspect-ratio:4/3;box-shadow:var(--t3-shadow)}
.t3-shot img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.t3-shot .zoom:hover img{transform:scale(1.04)}
.t3-shot figcaption{font-size:14px;color:var(--muted);margin-top:12px;line-height:1.5}
.t3-ctrl{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:20px}
.t3-arrow{width:46px;height:46px;border-radius:50%;border:0;background:#fff;color:var(--t3-band);box-shadow:var(--t3-shadow);display:grid;place-items:center;cursor:pointer}
.t3-arrow:disabled{opacity:.4;cursor:default}.t3-arrow .ic.flip{transform:scaleX(-1)}
.t3-count{font-size:14px;font-weight:600;color:var(--muted);min-width:52px;text-align:center}

/* Why: photo on one half, the brand colour on the other with numbered reasons. */
.t3-why{display:grid;grid-template-columns:1fr 1fr;background:var(--t3-band);color:#fff}
.t3-why-media{margin:0;position:relative;min-height:560px}
.t3-why-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.t3-why .wrap.t3-why-copy{width:auto;max-width:680px;margin:0;padding:var(--sec-pad) clamp(24px,5vw,80px)}
.t3-why h2{color:#fff;font-size:clamp(30px,3.2vw,48px)}
.t3-why .t3-lede{color:rgba(255,255,255,.84)}
.t3-points{list-style:none;padding:0;margin:34px 0 0;display:grid;gap:22px}
.t3-points li{display:grid;grid-template-columns:40px 1fr;gap:18px;align-items:start}
.t3-why .t3-num{background:var(--t3-em);color:var(--gold-ink,#111)}
.t3-points h3{font-size:20px;color:#fff;margin:6px 0 6px}.t3-points p{margin:0;color:rgba(255,255,255,.8);font-size:15.5px;line-height:1.6}
.t3-why .pending{color:rgba(255,255,255,.85);margin-top:26px}

/* Reviews: white cards with an accent top edge and soft shadow, three at a time. */
html[data-template="3"] .sec.t3-rv:nth-of-type(n){background:var(--paper)}
html[data-template="3"] .rv-card{background:#fff;border-top:3px solid var(--gold);border-radius:16px;box-shadow:var(--t3-shadow)}
html[data-template="3"] .rv-track{padding:6px 4px 26px}
html[data-template="3"] .rv-arrow{background:#fff;color:var(--t3-band);box-shadow:var(--t3-shadow)}
html[data-template="3"] .rv-summary{text-align:center}

/* Service areas: towns in the accent colour on the brand band. Elsewhere, white rounded cards. */
html[data-template="3"] .sec.t3-areas:nth-of-type(n){background:var(--t3-band);color:#fff}
.t3-areas .t3-lede{color:rgba(255,255,255,.82)}
html[data-template="3"] .areas a{background:#fff;border:0;border-radius:14px;box-shadow:var(--t3-shadow)}
html[data-template="3"] .t3-areas .areas a{background:none;box-shadow:none;border-radius:0;border-top:1px solid rgba(255,255,255,.22);padding:18px 4px 4px;font:var(--head-weight) clamp(18px,1.5vw,22px)/1.25 var(--font-head);letter-spacing:var(--head-track);color:var(--t3-em)}
html[data-template="3"] .t3-areas .areas a:hover,html[data-template="3"] .t3-areas .areas a[aria-current]{color:#fff;transform:none;background:none}
html[data-template="3"] .t3-areas .areas .ic{display:none}
.t3-areas .also{color:rgba(255,255,255,.78);text-align:center;margin-top:30px}.t3-areas .also a{color:#fff}

/* FAQ in a white card beside a brand-colour estimate card. */
html[data-template="3"] .sec.t3-faq:nth-of-type(n){background:var(--alt)}
.t3-faq-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(28px,4vw,56px);align-items:start}
.t3-faq-grid .t3-head{text-align:left;margin:0 0 30px}.t3-faq-grid .t3-head .t3-lede{margin-inline:0}
.t3-faq-card{background:#fff;border-radius:var(--card-radius);box-shadow:var(--t3-shadow);padding:6px clamp(20px,2.6vw,34px)}
.t3-faq-card .faq details:first-child{border-top:0}.t3-faq-card .faq details:last-child{border-bottom:0}
.t3-ask{position:sticky;top:120px;background:var(--t3-band);color:#fff;border-radius:var(--card-radius);padding:clamp(28px,3vw,40px);box-shadow:var(--t3-shadow)}
.t3-ask h3{font-size:clamp(24px,2vw,30px);color:#fff;margin:0 0 12px}.t3-ask p{color:rgba(255,255,255,.82)}
.t3-ask .t3-checks .ic{color:var(--t3-em)}
.t3-ask .actions{display:grid;gap:12px;margin-top:28px}

/* Call to action: a brand-colour panel inside a white band. */
html[data-template="3"] .cta.t3-cta{background:var(--paper);color:var(--ink);padding-block:clamp(56px,6vw,88px)}
.t3-cta-panel{display:flex;justify-content:space-between;align-items:center;gap:32px 48px;flex-wrap:wrap;background:var(--t3-band);color:#fff;border-radius:24px;padding:clamp(36px,5vw,68px);box-shadow:var(--t3-shadow)}
.t3-cta-panel h2{color:#fff;font-size:clamp(30px,3.4vw,48px);margin-bottom:14px}
.t3-cta-panel p{color:rgba(255,255,255,.8);max-width:540px;margin:0}
.t3-cta-panel .actions{margin:0}

/* Footer on the brand colour. */
html[data-template="3"] .ftr{background:var(--t3-band)}
html[data-template="3"] .ftr h3{font:var(--head-weight) 17px/1.2 var(--font-head);letter-spacing:var(--head-track);text-transform:none;color:var(--t3-em)}
html[data-template="3"] .ftr-base{border-color:rgba(255,255,255,.18)}

/* Inner pages: cream title band with a speckle, rounded white cards with soft shadows, brand-colour dark bands. */
html[data-template="3"] .ph-split{background:var(--paper)}
html[data-template="3"] :is(.ph-media,.scope-media,.split-media,.local-media img){border-radius:var(--card-radius);box-shadow:var(--t3-shadow)}
html[data-template="3"] .sec-dark,html[data-template="3"] .sec.sec-dark:nth-of-type(n){background:var(--t3-band)}
html[data-template="3"] .card,html[data-template="3"][data-style] .sec .card:not(.card-text){background:#fff;border-radius:var(--card-radius);box-shadow:var(--t3-shadow)}
html[data-template="3"][data-style] .card-body{padding:26px}
html[data-template="3"] .card-text{background:var(--t3-band)}
html[data-template="3"] :is(.related a,.local-cards li,.contact-card){border:0;border-top:3px solid var(--gold);border-radius:16px;box-shadow:var(--t3-shadow);background:#fff}
html[data-template="3"] .next-cards a{background:var(--t3-band);border-radius:18px}
html[data-template="3"] .next-cards a:hover{background:color-mix(in srgb,var(--t3-band) 82%,#000)}
html[data-template="3"] .do-links a{background:var(--t3-band);border-radius:999px}
html[data-template="3"] .chips li{border-radius:999px}
html[data-template="3"] .gallery .zoom,html[data-template="3"] .gallery .ba-tile{border-radius:12px;overflow:hidden}
html[data-template="3"] .why-n{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;background:color-mix(in srgb,var(--gold) 18%,#fff);color:var(--t3-band);font:700 13px/1 var(--font-body)}

@media (max-width:1100px){.t3-glass ul{columns:2}}
@media (max-width:900px){
 .t3-about-grid,.t3-svc-grid,.t3-faq-grid{grid-template-columns:minmax(0,1fr)}
 .t3-svc-intro,.t3-ask{position:static}
 .t3-photo-card img{aspect-ratio:4/3}
 .t3-why{grid-template-columns:1fr}.t3-why-media{min-height:0;aspect-ratio:4/3}
 .t3-why .wrap.t3-why-copy{max-width:none;padding-inline:clamp(20px,4vw,48px)}
 .t3-shot{flex-basis:calc((100% - 18px)/2)}
}
@media (max-width:600px){
 .t3-cards{grid-template-columns:minmax(0,1fr)}
 .t3-glass ul{columns:1}
 .t3-shot{flex-basis:86%}
 html[data-template="3"] .hero-home .hero-inner{padding:130px 0 64px}
 html[data-template="3"][data-header=transparent] .hdr:not(.is-scrolled) .logo img{height:58px}
 html[data-template="3"] .t3-areas .areas{grid-template-columns:repeat(2,minmax(0,1fr))}
 .t3-cta-panel{padding:30px 22px}
}
/* The hero form is a white card on the photo: its button keeps the brand colour. */
html[data-template="3"] .hero .hero-form .btn-primary{background:var(--t3-band);color:#fff}
html[data-template="3"] .hero .hero-form .btn-primary:hover{background:color-mix(in srgb,var(--t3-band) 82%,#000);color:#fff}
/* Inner title band keeps Template 1's own band colour (so it never matches the section below), with Template 3's speckle. */
html[data-template="3"] .ph-band,html[data-template="3"] .sec.tone-tex:nth-of-type(n){background-image:radial-gradient(color-mix(in srgb,var(--gold) 40%,transparent) 1px,transparent 1.5px);background-size:24px 24px}
/* Main Services and Service Areas pages (2026-10-24): the menu word is a link that keeps the dropdown look;
   area cards list each area page with the towns it covers. */
a.dd-btn{color:inherit}
.hub-areas{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.hub-areas a{display:flex;align-items:flex-start;gap:14px;height:100%;box-sizing:border-box;padding:22px 24px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;text-decoration:none;color:var(--ink)}
.hub-areas a:hover{border-color:var(--gold)}
.hub-areas .hub-pin{flex:none;color:var(--gold-2);margin-top:2px}
.hub-areas .hub-t{display:grid;gap:6px;flex:1;min-width:0}
.hub-areas b{font:var(--head-weight) 19px/1.25 var(--font-head)}
.hub-areas small{font-size:14.5px;line-height:1.5;color:var(--muted)}
.hub-areas a>.ic:last-child{flex:none;margin-top:4px;color:var(--gold-2)}
html[data-template="3"] .hub-areas a{border:0;border-radius:var(--card-radius);box-shadow:var(--t3-shadow)}
@media (max-width:900px){.hub-areas{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.hub-areas{grid-template-columns:minmax(0,1fr)}}
/* Template 3 home carousel with four cards per view (content.workSection.perView 4), two on tablets and phones. */
.t3-work-4 .t3-shot{flex-basis:calc((100% - 54px)/4)}
@media (max-width:900px){.t3-work-4 .t3-shot{flex-basis:calc((100% - 18px)/2)}}
/* About sections (content.about.sections, opt-in per client, Lindh's 2026-10-26). Every rule is scoped to its own
   ab- classes or .ph-tag, so clients without sections render exactly as before. */
.ph-tag{font:600 clamp(16px,1.3vw,19px)/1.45 var(--font-head);color:var(--ink);margin:12px 0 0;max-width:680px}
.ab-intro{max-width:760px;font-size:clamp(16.5px,1.25vw,18.5px);line-height:1.65;color:var(--ink-2);margin:0 0 clamp(28px,3vw,44px)}
.ab-tl{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,2.4vw,36px);position:relative}
.ab-tl::before{content:"";position:absolute;left:0;right:0;top:17px;border-top:2px solid var(--line)}
.ab-tl li{position:relative}
.ab-dot{position:relative;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--gold);color:var(--gold-ink);font:700 15px/1 var(--font-body);margin-bottom:18px}
.ab-tl h3{font-size:clamp(17px,1.3vw,19.5px);margin:0 0 8px}
.ab-tl p{margin:0;color:var(--ink-2);font-size:15.5px;line-height:1.6}
.ab-note{margin:clamp(28px,3vw,40px) 0 0;font-size:14.5px;line-height:1.6;color:var(--muted);max-width:760px}
.ab-mission{align-items:start}.ab-mission p{line-height:1.7}
.gallery.ab-photos{grid-template-columns:repeat(2,minmax(0,1fr))}.ab-photos .zoom{aspect-ratio:4/3}
.ab-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.6vw,24px)}
.ab-cards li{background:var(--paper);border:1px solid var(--line);border-radius:var(--card-radius);padding:clamp(22px,2vw,30px)}
.ab-ic{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#c9a24f1f;color:var(--gold-2);margin-bottom:16px}.ab-ic .ic{width:20px;height:20px}
.ab-cards h3{font-size:clamp(17px,1.3vw,19px);margin:0 0 8px}
.ab-cards p{margin:0;color:var(--muted);font-size:15.5px;line-height:1.6}
.sec-ab-badges{padding-block:clamp(32px,3.4vw,52px)}
.ab-badges{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.4vw,20px)}
.ab-badges li{display:flex;align-items:center;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--paper);font:600 15px/1.35 var(--font-body);color:var(--ink)}
.ab-badges .ic{flex:none;width:22px;height:22px;color:var(--gold-2)}
@media (max-width:900px){.ab-tl{grid-template-columns:minmax(0,1fr);gap:0}.ab-tl::before{top:0;bottom:0;left:17px;right:auto;border-top:0;border-left:2px solid var(--line)}
 .ab-tl li{padding:0 0 26px 56px}.ab-tl li:last-child{padding-bottom:0}.ab-dot{position:absolute;left:0;top:0;margin:0}.ab-tl h3{padding-top:7px}
 .ab-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.ab-badges{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.ab-cards{grid-template-columns:minmax(0,1fr)}.ab-badges li{padding:14px;font-size:14px;gap:10px}}
.sec-ab-story .sec-head{margin-bottom:clamp(14px,1.4vw,22px)}
/* About headshot (manifest.aboutPortrait, Lindh's 2026-10-26): above the title band's buttons, right side. */
.ph-side{display:flex;flex-direction:column;align-items:center;gap:20px;flex:none}
@media (min-width:1101px){.ph-row:has(.ph-side){align-items:center}}
.ph-side .ab-portrait{width:300px;margin:0;text-align:center}.ab-portrait img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius)}
.ab-portrait figcaption{font-size:14px;margin-top:10px;color:var(--muted)}
@media (max-width:1100px){.ph-side{align-self:flex-start}}
@media (max-width:600px){.ph-side{align-self:stretch}.ph-side .actions{align-self:stretch}.ph-side .ab-portrait{width:260px}}
