/* AWM base v2.0 — mobile-first. Only 768 / 1024 / 1280 min-width queries. Timber Fencing build — dusk style (v5). */
@font-face{font-family:'Bodoni Moda';src:url('/fonts/bodoni-moda-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Bodoni Moda';src:url('/fonts/bodoni-moda-400-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'DM Sans';src:url('/fonts/dm-sans-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'DM Sans';src:url('/fonts/dm-sans-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'DM Sans';src:url('/fonts/dm-sans-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
:root{
  --display:'Bodoni Moda','Didot','Bodoni 72',Georgia,serif;
  --body:'Bodoni Moda',Georgia,serif;
  --sans:'DM Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  /* palette sampled from the logo: green = band under the dog, gold = lower M of TIMBER */
  --primary:#335530; --primary-dk:#284425;
  --gold:#dd9a28; --sand:#e9b04a; --accent:#dd9a28; --accent-ink:#8a5a12;
  --cream:#f4efe4; --ink:#16201a; --muted:#59605b; --bg:#f8f5ef; --alt:#efe9de; --card:#fffdf9;
  --night:#0e1511; --night-2:#16201a; --on-night:#e4dfd3; --on-night-mut:#a9a597;
  --line:rgba(22,32,26,.12); --line-lt:rgba(244,239,228,.14);
  --cred-h:30px; --header-h:64px; --sticky-h:64px; --wrap:1200px; --radius:2px; --pill:999px; --r-card:16px; --shadow:0 18px 40px rgba(14,21,17,.09),0 2px 6px rgba(14,21,17,.05);
}
*,*::before,*::after{box-sizing:border-box}
html,body{overflow-x:hidden;max-width:100%}
@supports (overflow:clip){html,body{overflow-x:clip}}   /* clip keeps position:sticky working on the header */
html{scroll-padding-top:calc(var(--header-h) + 12px);scroll-behavior:smooth}
body{margin:0;font:400 1.0625rem/1.7 var(--sans);color:var(--ink);background:var(--bg);padding-bottom:var(--sticky-h);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a,button,input[type=submit],select,[role=button]{min-height:48px;min-width:48px}
a{color:var(--primary)}
p{margin:0 0 1rem}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 20px}
.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:12px;top:12px;z-index:2000;background:#fff;padding:8px 12px}
h1,h2,h3{font-family:var(--display);line-height:1.08;margin:0 0 .5em;letter-spacing:-.01em;font-weight:500}
/* H1 = keyphrase label under the hero hook (operator spec for this build — deliberately smaller than the hook) */
h1{font:600 .8rem/1.3 var(--sans);letter-spacing:.24em;text-transform:uppercase}
main h2{font-size:clamp(2.1rem,7vw,3.4rem);font-weight:500;color:var(--ink)}       /* ONE rule for every section H2 (2.12) */
.section--dark h2,.cta-banner h2{color:#fbf7ef}                                     /* the only color override */
/* documented exception: the svc-intro and services H2s sit under a hook line as small labels, same as the hero H1 (operator spec) */
main .h2--label{font:600 .8rem/1.35 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--accent-ink);margin:0 0 1rem}
h3{font-size:1.4rem}
.eyebrow{display:inline-flex;align-items:center;gap:.7rem;margin:0 0 1.2rem;font:600 .68rem/1.2 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--accent-ink)}
.eyebrow svg{width:17px;height:17px;flex:none}
.section--dark .eyebrow{color:var(--sand)}
.section{padding:76px 0}.section--alt{background:var(--alt)}
.section--dark{background:var(--night);color:var(--on-night);position:relative}
.lead{font-size:1.125rem;color:var(--muted);max-width:44em}
.section--dark .lead{color:var(--on-night-mut)}
/* pill buttons — arrow circle on primary CTAs */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:0 28px;border-radius:var(--pill);font:600 .95rem/1 var(--sans);text-decoration:none;border:1px solid transparent;transition:background .25s,color .25s,border-color .25s}
.btn svg{width:18px;height:18px}
.btn--primary{background:var(--primary);color:#fff;border-color:var(--primary)}
.btn--primary:hover{background:var(--primary-dk);border-color:var(--primary-dk)}
.btn--ghost{border-color:currentColor;color:inherit;background:transparent}
.btn--ghost:hover{background:rgba(22,32,26,.05)}
.btn:has(.btn__arr){justify-content:space-between;gap:18px;padding:0 7px 0 28px;min-height:56px}
.btn__arr{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--cream);color:var(--primary);flex:none}
.btn__arr svg{transition:transform .25s}
.btn:hover .btn__arr svg{transform:translateX(3px)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.rule{display:block;width:56px;height:1px;background:var(--gold);margin:0 0 1.25rem}
/* cred bar — tan gold */
.cred-bar{height:var(--cred-h);overflow:hidden;background:var(--gold);color:#1a150c;font:600 .62rem/var(--cred-h) var(--sans);letter-spacing:.22em;text-transform:uppercase;white-space:nowrap}
.cred-bar__track{display:inline-flex;animation:awm-cred 52s linear infinite}
.cred-bar__set{display:inline-flex}.cred-bar__set>span{padding:0 1.5rem;position:relative}
.cred-bar__set>span::after{content:"";position:absolute;right:-2px;top:50%;width:3px;height:3px;margin-top:-1.5px;border-radius:50%;background:var(--primary)}
@keyframes awm-cred{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.cred-bar__track{animation:none}html{scroll-behavior:auto}}
/* header */
.site-header{position:sticky;top:0;z-index:999;background:rgba(248,245,239,.97);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line);transition:background .3s,box-shadow .3s}
.header__inner{display:flex;align-items:center;gap:4px;height:var(--header-h)}
.header__logo{display:flex;align-items:center;margin-right:auto;position:relative;z-index:2}
.header__logo img{height:54px;width:auto;transition:height .3s ease,filter .3s ease}
.header__right{display:flex;align-items:center}
.header__nav,.header__cta,.header__phone-num{display:none}
.header__phone{display:flex;align-items:center;justify-content:center;color:var(--primary)}
.header__phone svg{width:22px;height:22px}
.header__toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;background:none;border:0;padding:12px;cursor:pointer;border-radius:12px}
.header__toggle span{display:block;width:24px;height:1.5px;background:var(--ink);transition:transform .3s ease,background .3s}
.header__toggle span:nth-child(2){display:none}
.header__toggle[aria-expanded="true"] span:first-child{transform:translateY(3.75px) rotate(45deg)}
.header__toggle[aria-expanded="true"] span:last-child{transform:translateY(-3.75px) rotate(-45deg)}
/* mobile menu: compact panel anchored under the header (absolute — the header's backdrop-filter makes it the containing block),
   every service visible on open, rounded bottom corners, page dimmed behind */
.mobile-panel{position:absolute;top:100%!important;left:0;right:0;z-index:1000;background:var(--bg);padding:18px 20px 22px;border-radius:0 0 24px 24px;
  box-shadow:0 24px 40px rgba(14,21,17,.22),0 0 0 100vmax rgba(10,14,11,.5);clip-path:inset(0 -100vmax -100vmax -100vmax);
  max-height:calc(100dvh - 100px);overflow-y:auto;animation:mp-in .28s ease}
@keyframes mp-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.mobile-panel{animation:none}}
.mp__label{margin:0 0 6px;font:600 .62rem/1.2 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--accent-ink)}
.mp__svc,.mp__links{list-style:none;margin:0;padding:0}
.mp__svc li+li{border-top:1px solid var(--line)}
.mp__svc a{display:flex;align-items:center;justify-content:space-between;min-height:46px;font:500 1.2rem/1.2 var(--display);color:var(--ink);text-decoration:none}
.mp__svc a svg{width:16px;height:16px;color:var(--gold)}
.mp__links{display:flex;gap:8px;margin:14px 0 14px;padding-top:14px;border-top:1px solid var(--line)}
.mp__links li{flex:1}
.mp__links a{display:flex;align-items:center;justify-content:center;min-height:42px;border-radius:999px;background:var(--alt);font:600 .68rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ink);text-decoration:none}
.mp__ctas{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mp__ctas .btn{min-height:50px;padding:0 12px;font-size:.92rem}
.mp__ctas .btn--ghost{color:var(--primary);border-color:rgba(51,85,48,.35)}
.has-sub{position:relative}
.has-sub .sub{display:none;list-style:none;margin:0;padding:0}
/* homepage: header floats transparent over the hero until the visitor scrolls */
:is(.home,.svc) .site-header{margin-bottom:calc(-1 * var(--header-h))}
:is(.home,.svc) .site-header:not(.is-solid){background:transparent;box-shadow:none}
/* over the hero the badge sits larger and hangs below the bar, then shrinks into the solid header on scroll */
:is(.home,.svc) .site-header:not(.is-solid) .header__logo{align-self:flex-start;padding-top:6px}
:is(.home,.svc) .site-header:not(.is-solid) .header__logo img{height:72px;filter:drop-shadow(0 8px 18px rgba(0,0,0,.45))}
:is(.home,.svc) .site-header:not(.is-solid) .header__phone{color:var(--sand)}
:is(.home,.svc) .site-header:not(.is-solid) .header__toggle span{background:var(--cream)}
/* hero — dusk photo, dark scrim (lighter behind the header), light type */
.hero{position:relative;display:flex;align-items:flex-end;color:var(--cream);padding:30px 0 40px;overflow:hidden;background:var(--night)}
:is(.home,.svc) .hero{padding-top:calc(var(--header-h) + 52px)}
.hero__img,.hero__overlay{position:absolute;inset:0;width:100%;height:100%}
.hero__img{object-fit:cover;object-position:60% 60%}
.hero__overlay{background:linear-gradient(180deg,rgba(6,9,8,.74),rgba(6,9,8,.72) 45%,rgba(6,9,8,.9))}
.hero__hook,.hero h1,.hero__sub,.hero__rating{text-shadow:0 1px 2px rgba(0,0,0,.55),0 2px 18px rgba(0,0,0,.35)}
.hero__grid{position:relative;z-index:1}
.hero__hook{font:500 clamp(2.5rem,11vw,3.1rem)/1.03 var(--display);letter-spacing:-.015em;margin:0 0 1.1rem;color:#fbf7ef}
.hero__hook em{font-style:italic;font-weight:400;color:var(--sand)}
.hero h1{color:var(--sand);display:flex;align-items:center;gap:.9rem;margin:0 0 1rem}
.hero h1::before{content:"";width:26px;height:1px;background:var(--sand);flex:none}
.hero__sub{font:400 clamp(1rem,1.6vw,1.12rem)/1.6 var(--sans);margin:0 0 1.5rem;max-width:34em;color:#e2ddd1}
.hero__ctas{display:grid;gap:10px}.hero__ctas .btn{width:100%;min-height:56px}
.hero__ctas .btn--primary{background:var(--cream);color:var(--primary);border-color:var(--cream)}
.hero__ctas .btn--primary:hover{background:#fff;border-color:#fff}
.hero__ctas .btn--primary .btn__arr{background:var(--primary);color:var(--cream)}
.hero__ctas .btn--ghost{background:rgba(255,255,255,.08);color:var(--cream);border-color:rgba(244,239,228,.42);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.hero__ctas .btn--ghost:hover{background:rgba(255,255,255,.14)}
.hero__badges{display:flex;flex-wrap:wrap;gap:6px 0;list-style:none;padding:0;margin:22px 0 0;font:500 .66rem/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#cfc8b8}
.hero__badges li{display:inline-flex;align-items:center;margin-right:18px}
.hero__badges li::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--sand);margin-right:9px;flex:none}
.hero__rating{display:grid;gap:8px;margin:24px 0 0;max-width:38em;font:400 .95rem/1.55 var(--sans);color:#e2ddd1}
.hero__rating .rev__stars{flex:none;margin-top:3px}
.hero__rating cite{font-style:normal;font-weight:600;color:var(--sand)}
.hero--page{padding:48px 0 28px}
/* proof bar — 4 proofs + 1 review (v29) */
.proof-bar{background:var(--card);padding:26px 0;border-bottom:1px solid var(--line)}
.proof-bar__grid{display:grid;gap:20px}
.proof-bar__stats{display:grid;grid-template-columns:1fr 1fr;gap:18px 12px;list-style:none;margin:0;padding:0;text-align:center}
.proof-bar__stats strong{display:block;font:500 2.1rem/1 var(--display);color:var(--ink)}
.proof-bar__stats span{display:block;margin-top:6px;font:600 .6rem/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.proof-bar__review{display:grid;justify-items:center;gap:6px;margin:0;padding-top:18px;border-top:1px solid var(--line);text-align:center}
.proof-bar__review blockquote{margin:0}
.proof-bar__review p{margin:0;font:italic 400 1.1rem/1.45 var(--body);color:var(--ink)}
.proof-bar__review figcaption{font:600 .72rem var(--sans);letter-spacing:.06em;color:var(--muted)}
/* services intro */
.svc-intro__hook{font:500 clamp(2.1rem,7.4vw,3.4rem)/1.06 var(--display);letter-spacing:-.015em;margin:0 0 1.1rem;color:var(--ink)}
.svc-intro__hook em{font-style:italic;font-weight:400;color:var(--primary)}
.svc-intro__grid{display:grid;gap:56px;align-items:center}
.feature{position:relative;margin:0 14px 14px 0}
.feature::before{content:"";position:absolute;inset:14px -14px -14px 14px;border:1px solid var(--gold);border-radius:22px;z-index:0}
.feature__img{position:relative;z-index:1;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:22px;box-shadow:0 30px 60px rgba(14,21,17,.22),0 4px 12px rgba(14,21,17,.08)}
.feature__badge{position:absolute;z-index:2;left:-6px;bottom:28px;display:flex;align-items:center;gap:14px;padding:16px 22px 16px 18px;background:var(--night);color:var(--on-night);border-radius:14px;box-shadow:0 16px 34px rgba(14,21,17,.3)}
.feature__badge strong{font:500 2.4rem/1 var(--display);color:var(--sand)}
.feature__badge span{font:500 .78rem/1.35 var(--sans);letter-spacing:.04em}
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:1.25rem 0 1.6rem;padding:0}
.chips li{font:500 .78rem/1 var(--sans);padding:10px 15px;border-radius:var(--pill);background:var(--card);border:1px solid var(--line);color:#3d4540}
/* services grid */
.svc-grid{display:grid;gap:18px;margin-top:2.5rem;list-style:none;padding:0}
.svc-card{display:flex;flex-direction:column;height:100%;background:var(--card);color:var(--ink);text-decoration:none;border:1px solid rgba(22,32,26,.06);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow);transition:box-shadow .3s,transform .3s}
.svc-card:hover{box-shadow:0 28px 56px rgba(14,21,17,.16),0 4px 10px rgba(14,21,17,.06);transform:translateY(-4px)}
.svc-card__img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--alt)}
.svc-card__body{display:flex;flex-direction:column;flex:1;padding:24px 24px 26px}
.svc-card__num{display:none}
.svc-card h3{margin:0 0 .5rem}
.svc-card p{color:var(--muted);font-size:.97rem;margin:0 0 1.2rem}
.svc-card__more{margin-top:auto;display:inline-flex;align-items:center;gap:.5rem;font:600 .68rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--primary)}
.svc-card__more svg{width:16px;height:16px;transition:transform .2s}
.svc-card:hover .svc-card__more svg{transform:translateX(4px)}
/* why us — night section */
.why-grid{display:grid;gap:0;list-style:none;margin:2.75rem 0 0;padding:0;border-top:1px solid var(--line-lt)}
.why-grid li{padding:30px 0;border-bottom:1px solid var(--line-lt)}
.why-grid svg{width:26px;height:26px;color:var(--sand);margin-bottom:1rem}
.why-grid h3{margin:0 0 .5rem;color:#fbf7ef}
.why-grid p{color:var(--on-night-mut);margin:0;font-size:.98rem}
/* process */
.steps{display:grid;gap:18px;list-style:none;margin:2.5rem 0 2rem;padding:0;counter-reset:step}
.steps li{position:relative;padding:30px 26px 28px;background:var(--card);border:1px solid rgba(22,32,26,.06);border-radius:var(--r-card);box-shadow:var(--shadow)}
.steps li::before{counter-increment:step;content:"0" counter(step);display:block;font:italic 400 2.8rem/1 var(--display);color:var(--accent);margin-bottom:1rem}
.steps h3{margin:0 0 .45rem;font-size:1.3rem}
.steps p{margin:0;color:var(--muted);font-size:.97rem}
.process__cta{display:flex}
.process__cta .btn{width:100%}
/* about */
.about__grid{display:grid;gap:36px}
.ph{display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;font:600 .74rem/1.5 var(--sans);letter-spacing:.06em;color:var(--muted);background:var(--bg);border:1px dashed rgba(22,32,26,.25)}
.about__photo{margin:0;overflow:hidden;aspect-ratio:4/3;width:calc(100% - 14px);border:0;border-radius:22px;background:var(--card);box-shadow:14px 14px 0 -1px var(--alt),14px 14px 0 0 var(--gold),0 30px 60px rgba(14,21,17,.14)}
.about__photo img{width:100%;height:100%;object-fit:cover;object-position:center 55%}
.entity{font:400 1.08rem/1.7 var(--sans)}
.about__stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid rgba(22,32,26,.06);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow);list-style:none;margin:1.75rem 0 0;padding:0}
.about__stats li{background:var(--card);padding:20px 18px}
.about__stats strong{display:block;font:500 2.2rem/1 var(--display);color:var(--ink)}
.about__stats span{font:600 .64rem/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
/* gallery — night section */
.gallery__grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:150px;gap:12px;list-style:none;margin:2.5rem 0 0;padding:0}
.gallery__grid li{overflow:hidden;background:var(--night-2);border-radius:14px;box-shadow:0 16px 36px rgba(0,0,0,.35)}
.gallery__grid li:first-child{grid-column:span 2;grid-row:span 2}
.gallery__grid li:last-child{grid-column:span 2}
.gallery__grid img{width:100%;height:100%;object-fit:cover;transition:transform .6s,opacity .3s;opacity:.92}
.gallery__grid li:hover img{transform:scale(1.04);opacity:1}
.gallery__grid li .ph{height:100%}
/* faq */
.faq__grid{display:grid;gap:36px}
.faq__item{border-bottom:1px solid var(--line)}
.faq__item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:48px;padding:22px 0}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item h3{margin:0;font:500 1.22rem/1.35 var(--display);letter-spacing:-.005em}
.faq__item summary::after{content:"+";display:grid;place-items:center;flex:none;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;font:400 1.2rem/1 var(--sans);color:var(--primary);transition:transform .25s}
.faq__item[open] summary::after{transform:rotate(45deg)}
.faq__a{padding:0 0 24px;color:var(--muted);font-size:1rem}
.faq__a p{margin:0}
.faq__mid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 20px;margin:24px 0;padding:26px 26px;background:var(--night);color:#fff;border-radius:var(--r-card)}
.faq__mid p{margin:0;font:italic 400 1.4rem/1.3 var(--display);color:var(--cream)}
.faq__mid .btn--primary{background:var(--cream);color:var(--primary);border-color:var(--cream)}
.faq__mid .btn--primary .btn__arr{background:var(--primary);color:var(--cream)}
.faq__end{margin:26px 0 0;font-weight:500}
.cred-card{background:var(--night);color:var(--on-night);padding:32px 28px;align-self:start;border-radius:var(--r-card);box-shadow:0 24px 50px rgba(14,21,17,.18)}
.cred-card .footer-title{margin-bottom:1.2rem;color:var(--sand)}
.cred-card dl{margin:0;display:grid;gap:15px}
.cred-card dt{font:600 .62rem/1.2 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--on-night-mut)}
.cred-card dd{margin:4px 0 0;font-size:.98rem}
.cred-card a{color:var(--cream)}
.cred-card .btn{width:100%;margin-top:24px;background:var(--cream);color:var(--primary);border-color:var(--cream)}
.cred-card .btn .btn__arr{background:var(--primary);color:var(--cream)}
/* service area — Green & Clean pattern */
/* service area — range map + editorial hub list (custom for this build; replaces the boxed hub grid) */
.sa__grid{display:grid;gap:44px;align-items:start}
.sa__base{margin:2rem 0 1.25rem;padding:0 0 1.4rem;border-bottom:1px solid var(--line)}
.sa__label{display:block;font:600 .62rem/1.2 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--accent-ink);margin:0 0 .45rem}
.sa__city{font:500 clamp(2.2rem,7vw,2.8rem)/1 var(--display);margin:0 0 .6rem;color:var(--ink)}
.sa__city span{font:italic 400 1.05rem var(--body);color:var(--muted);margin-left:.4rem;letter-spacing:0}
.sa__also{margin:0;color:var(--muted);font-size:.98rem}
.sa__list{list-style:none;margin:0;padding:0}
.sa__row{border-bottom:1px solid var(--line)}
.sa__link{display:grid;grid-template-columns:1fr auto;column-gap:16px;padding:20px 4px;color:var(--ink);text-decoration:none;transition:background .25s,padding .25s}
.sa__link>span{grid-column:1}
.sa__link .sa__label{margin:0 0 .3rem}
.sa__name{font:500 1.7rem/1.1 var(--display)}
.sa__county{font:italic 400 1rem var(--body);color:var(--muted);margin:.2rem 0 .35rem}
.sa__towns{font-size:.92rem;color:var(--muted)}
.sa__go{grid-column:2!important;grid-row:1/span 4;align-self:center;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);color:var(--primary);transition:background .25s,color .25s,border-color .25s}
.sa__go svg{width:18px;height:18px}
.sa__link:hover{background:rgba(221,154,40,.08);padding-left:14px}
.sa__link:hover .sa__go{background:var(--primary);border-color:var(--primary);color:var(--cream)}
.sa__note{margin:22px 0 0;padding:18px 22px;border-left:2px solid var(--gold);background:var(--card);border-radius:0 12px 12px 0;font-size:.98rem}
.rmap{position:relative;margin:0;background:var(--night);border-radius:22px;overflow:hidden;box-shadow:0 30px 60px rgba(14,21,17,.25)}
.rmap__svg{display:block;width:100%;height:auto}
.rmap__ring{font:600 10px var(--sans);letter-spacing:.18em;fill:rgba(244,239,228,.38)}
.rmap__sc{fill:rgba(233,176,74,.5)}
.rmap__town{font:500 13px var(--sans);fill:rgba(244,239,228,.62)}
.rmap__hub{font:500 21px var(--display);fill:#f4efe4}
.rmap__home{font:italic 400 26px var(--display);fill:#e9b04a}
.rmap__pulse{transform-origin:282px 262px;animation:rmap-pulse 2.8s ease-out infinite}
@keyframes rmap-pulse{0%{transform:scale(1);opacity:.9}100%{transform:scale(3.2);opacity:0}}
@media (prefers-reduced-motion:reduce){.rmap__pulse{animation:none}}
.rmap__cap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding:14px 22px 18px;border-top:1px solid var(--line-lt);font:500 .74rem var(--sans);color:var(--on-night-mut)}
.rmap__cap span{font:600 .62rem var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--sand)}
/* cta banner — bookends the dusk hero */
.cta-banner{position:relative;background:var(--night) url('/images/aluminum-wood-fence-installation-hero-1200.webp') center 55%/cover no-repeat;color:#fff;padding:88px 0;text-align:center;overflow:hidden}
.cta-banner::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,9,8,.72),rgba(6,9,8,.82))}
.cta-banner .wrap{position:relative}
.cta-banner h2{font-size:clamp(2.2rem,7vw,3.6rem)}
.cta-banner p{color:#d9d4c8;max-width:34em;margin:0 auto 1.5rem}
.cta-banner__phone{display:inline-flex;align-items:center;justify-content:center;font:italic 400 clamp(2.1rem,7vw,3.1rem)/1 var(--display);color:var(--sand);text-decoration:none;margin:0 0 1.5rem}
.cta-banner__actions{display:grid;gap:10px;max-width:420px;margin:0 auto}
.cta-banner .btn--primary{background:var(--cream);color:var(--primary);border-color:var(--cream)}
.cta-banner .btn--primary .btn__arr{background:var(--primary);color:var(--cream)}
/* contact */
.contact__info .lead{margin-bottom:1.25rem}
.contact__phone{display:inline-flex;align-items:center;gap:.7rem;font:500 clamp(1.9rem,6vw,2.5rem)/1 var(--display);color:var(--ink);text-decoration:none;margin:0 0 1.25rem}
.contact__phone svg{width:24px;height:24px;color:var(--accent)}
.contact__meta{display:grid;gap:12px;margin:0 0 28px;padding:20px 0 0;border-top:1px solid var(--line)}
.contact__meta dt{font:600 .62rem/1.2 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-ink)}
.contact__meta dd{margin:3px 0 0}
.lead-form{display:grid;gap:14px;background:var(--card);border:1px solid rgba(22,32,26,.06);border-radius:20px;padding:28px 22px;box-shadow:0 30px 60px rgba(14,21,17,.1)}
.lead-form label{display:grid;gap:7px;font:600 .66rem/1.2 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ink)}
.lead-form input,.lead-form select,.lead-form textarea{width:100%;min-height:50px;padding:12px 16px;font:400 1rem var(--sans);letter-spacing:0;text-transform:none;color:var(--ink);background:var(--bg);border:1px solid #dad3c5;border-radius:10px}
.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus{border-color:var(--primary);outline:2px solid rgba(51,85,48,.18);background:#fff}
.lead-form .btn{min-height:56px;width:100%}
.lead-form__msg{margin:0;font-weight:600;color:#9b2c1d}
.lead-form__msg:empty{display:none}
.lead-form__privacy{margin:0;font-size:.84rem;color:var(--muted);text-align:center}
.lead-form .opt{font-weight:500;letter-spacing:.06em;text-transform:none;color:var(--muted)}
._gotcha{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;opacity:0;overflow:hidden}
/* footer */
.site-footer{background:var(--night);color:var(--on-night-mut);padding:64px 0 calc(24px + var(--sticky-h));margin-bottom:calc(-1 * var(--sticky-h));font-size:.95rem}   /* footer fills the sticky-bar clearance; content stays clear of the bar */
.site-footer a{color:var(--on-night);text-decoration:none}
.site-footer a:hover{color:var(--sand)}
.site-footer ul{list-style:none;margin:0 0 28px;padding:0}
.site-footer li a{display:inline-flex;align-items:center}
.site-footer address{font-style:normal;margin:0 0 .5rem}
.footer__logo{margin:0 0 1.25rem}
.footer__logo img{height:90px;width:auto}
.footer__brand p{margin:0 0 .4rem}
.nowrap{white-space:nowrap}
.footer__brand{margin-bottom:28px}
.footer__follow{display:grid;gap:18px;align-items:center;padding-bottom:36px;margin-bottom:44px;border-bottom:1px solid var(--line-lt)}
.footer__follow .footer-title{margin-bottom:.4rem}
.footer__follow-line{margin:0;font:italic 400 1.25rem/1.35 var(--display);color:var(--cream)}
.social{display:flex;flex-wrap:wrap;gap:8px}
.site-footer .social__btn{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:1px solid rgba(244,239,228,.22);color:var(--cream);transition:background .25s,border-color .25s,color .25s,transform .25s}
.social__btn svg{width:18px;height:18px;fill:currentColor}
.site-footer .social__btn:hover{background:var(--gold);border-color:var(--gold);color:#1a150c;transform:translateY(-2px)}
.footer-title{margin:0 0 10px;font:600 .62rem/1.2 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--sand)}
.footer__copy{margin:28px 0 0;padding:20px 20px 0;border-top:1px solid var(--line-lt);text-align:center;font-size:.8rem;color:#7f8279}
/* sticky bar */
.sticky-bar{position:fixed;left:0;right:0;bottom:0;z-index:998;display:grid;grid-template-columns:1fr 1fr;height:var(--sticky-h);box-shadow:0 -2px 14px rgba(0,0,0,.14)}
.sticky-bar a{display:flex;align-items:center;justify-content:center;gap:.5rem;font:600 .95rem/1 var(--sans);text-decoration:none}
.sticky-bar svg{width:18px;height:18px}
.sticky-bar a:first-child{background:var(--primary);color:var(--cream)}.sticky-bar a:last-child{background:var(--gold);color:#1a150c}
@media (min-width:768px){
  .hero__ctas{display:flex;flex-wrap:wrap;gap:12px}.hero__ctas .btn{width:auto}
  .proof-bar__stats{grid-template-columns:repeat(4,1fr)}
  .proof-bar__stats li+li{border-left:1px solid var(--line)}
  .section{padding:100px 0}
  .svc-grid{grid-template-columns:1fr 1fr}
  .why-grid{grid-template-columns:1fr 1fr;column-gap:56px}
  .steps{grid-template-columns:1fr 1fr}
  .process__cta .btn{width:auto}
  .about__stats{grid-template-columns:repeat(4,1fr)}
  .gallery__grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;gap:16px}
  .gallery__grid li{border-radius:18px}
  .gallery__grid li:last-child{grid-column:auto}
  .gallery__grid li:nth-child(6){grid-column:span 2}
  .cta-banner__actions{display:flex;justify-content:center;max-width:none}
  .lead-form{grid-template-columns:1fr 1fr;padding:38px}
  .lead-form .full,.lead-form .btn,.lead-form__msg,.lead-form__privacy{grid-column:1/-1}
  .footer__grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}
  .footer__follow{grid-template-columns:1fr auto}
}
@media (min-width:1024px){
  :root{--header-h:84px}
  .header__inner{gap:0}
  .header__logo img{height:66px}
  :is(.home,.svc) .site-header:not(.is-solid) .header__logo img{height:100px}
  :is(.home,.svc) .site-header:not(.is-solid) .header__logo{padding-top:8px}
  .header__nav{display:block;margin-right:14px}.header__nav>ul{display:flex;gap:6px;list-style:none;margin:0;padding:0}
  .header__nav>ul{align-items:center}
  .header__nav a{display:flex;align-items:center;padding:0 14px;font:500 .7rem var(--sans);letter-spacing:.24em;text-transform:uppercase;text-decoration:none;color:var(--ink)}
  .header__nav a:hover{color:var(--accent-ink)}
  .has-sub>a::after{content:"";width:5px;height:5px;margin-left:9px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-2px)}
  .has-sub .sub{position:absolute;top:calc(100% + 14px);left:50%;transform:translate(-50%,6px);width:300px;padding:10px;background:rgba(255,253,249,.98);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(221,154,40,.35);border-radius:18px;box-shadow:0 30px 60px rgba(14,21,17,.22),0 4px 12px rgba(14,21,17,.08);opacity:0;visibility:hidden;display:block;transition:opacity .22s,transform .22s,visibility .22s}
  .has-sub .sub::before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px}   /* hover bridge */
  .has-sub .sub::after{content:"";position:absolute;top:-7px;left:50%;width:12px;height:12px;margin-left:-6px;background:rgba(255,253,249,.98);border-left:1px solid rgba(221,154,40,.35);border-top:1px solid rgba(221,154,40,.35);transform:rotate(45deg)}
  .has-sub .sub li+li{border-top:1px solid rgba(22,32,26,.06)}
  .has-sub .sub a,:is(.home,.svc) .site-header:not(.is-solid) .has-sub .sub a{display:flex;align-items:center;justify-content:space-between;min-height:46px;padding:0 14px;border-radius:12px;font:500 .94rem var(--sans);letter-spacing:0;text-transform:none;color:var(--ink);transition:background .2s,color .2s,padding .2s}
  .has-sub .sub a::after{content:"→";font-size:.9rem;color:var(--gold);opacity:0;transform:translateX(-6px);transition:opacity .2s,transform .2s}
  .has-sub .sub a:hover{background:rgba(221,154,40,.12);color:var(--primary);padding-left:18px}
  .has-sub .sub a:hover::after{opacity:1;transform:none}
  .has-sub:hover .sub,.has-sub:focus-within .sub{opacity:1;visibility:visible;transform:translate(-50%,0)}
  .header__right{gap:22px;padding-left:28px;border-left:1px solid var(--line)}
  .header__phone{gap:8px;font:500 .98rem var(--sans);text-decoration:none;color:var(--ink)}
  .header__phone svg{width:17px;height:17px;color:var(--accent)}
  .header__cta,.header__phone-num{display:inline-flex}
  .header__cta{min-height:46px;height:46px;padding:0 24px;font:600 .68rem var(--sans);letter-spacing:.22em;text-transform:uppercase}
  .header__toggle,.mobile-panel{display:none}
  :is(.home,.svc) .site-header:not(.is-solid) .header__nav>ul>li>a,:is(.home,.svc) .site-header:not(.is-solid) .header__phone{color:var(--cream)}
  :is(.home,.svc) .site-header:not(.is-solid) .header__phone svg{color:var(--sand)}
  :is(.home,.svc) .site-header:not(.is-solid) .header__right{border-left-color:rgba(244,239,228,.2)}
  :is(.home,.svc) .site-header:not(.is-solid) .header__cta{background:var(--cream);border-color:var(--cream);color:var(--primary)}
  .hero{min-height:88vh;align-items:center;padding:80px 0}
  :is(.home,.svc) .hero{min-height:calc(100vh - var(--cred-h));padding:calc(var(--header-h) + 60px) 0 80px}
  .hero__img{object-position:center 60%}
  .hero__overlay{background:linear-gradient(90deg,rgba(6,9,8,.86),rgba(6,9,8,.58) 55%,rgba(6,9,8,.28)),linear-gradient(0deg,rgba(6,9,8,.55),rgba(6,9,8,0) 45%)}
  .hero__grid{display:grid;grid-template-columns:3fr 2fr;gap:56px;align-items:center}
  .hero__copy{max-width:760px}
  .hero__hook{font-size:clamp(3.8rem,5.1vw,5rem)}
  .hero h1{font-size:.82rem}
  .hero__badges{letter-spacing:.16em}
  .hero__badges li{margin-right:22px}
  .hero--page{min-height:40vh}
  .section{padding:130px 0}
  .split{display:grid;grid-template-columns:1fr 1fr;gap:88px;align-items:start}
  .svc-intro__grid{grid-template-columns:55fr 45fr;gap:88px}
  .feature{margin:0 18px 18px 0}
  .feature::before{inset:18px -18px -18px 18px}
  .feature__badge{left:-34px;bottom:48px}
  .svc-grid{grid-template-columns:repeat(3,1fr);gap:26px}
  .why-grid{grid-template-columns:repeat(3,1fr);column-gap:64px}
  .steps{grid-template-columns:repeat(4,1fr)}
  .about__grid{grid-template-columns:1fr 1fr;gap:88px;align-items:center}
  .faq__grid{grid-template-columns:55fr 45fr;gap:80px}
  .cred-card{position:sticky;top:calc(var(--header-h) + 24px)}
  .sa__grid{grid-template-columns:45fr 55fr;gap:72px}
  .rmap{position:sticky;top:calc(var(--header-h) + 24px)}
  .cta-banner{padding:130px 0}
  .contact__grid{display:grid;grid-template-columns:45fr 55fr;gap:80px;align-items:start}
  .footer__grid{grid-template-columns:repeat(4,1fr);gap:40px}
  .sticky-bar{left:auto;right:24px;bottom:20px;height:54px;grid-template-columns:auto auto;border-radius:var(--pill);overflow:hidden;box-shadow:0 14px 34px rgba(14,21,17,.28)}
  .sticky-bar a{padding:0 26px}
}
@media (min-width:1280px){.wrap{padding:0 32px}}
/* ---- service pages (v24) ---- */
/* reviews — kit 2.6A */
.rev-grid{display:grid;gap:18px;list-style:none;margin:2.5rem 0 0;padding:0}
.rev{display:flex;flex-direction:column;padding:28px 26px 24px;background:var(--card);border:1px solid rgba(22,32,26,.06);border-radius:var(--r-card);box-shadow:var(--shadow)}
.rev__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 1.1rem}
.rev__stars{display:block;width:96px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23dd9a28' d='m12 2.5 2.9 6 6.6.9-4.8 4.6 1.2 6.5L12 17.4l-5.9 3.1 1.2-6.5-4.8-4.6 6.6-.9z'/%3E%3C/svg%3E") left center/19.2px 16px repeat-x}
.rev__stars--sm{width:72px;height:12px;background-size:14.4px 12px}
.rev__q{margin:0 0 1.5rem;flex:1}
.rev__q p{margin:0;font:400 1rem/1.65 var(--sans);color:#2f3833}
.rev__q p::before{content:"“";display:block;height:.55em;font:italic 400 3rem/1 var(--display);color:var(--gold)}
.rev__by{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:12px;padding-top:18px;border-top:1px solid var(--line)}
.rev__av{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--primary);color:var(--cream);font:500 1.15rem/1 var(--display)}
.rev__who strong{display:block;font:600 .95rem/1.2 var(--sans);color:var(--ink)}
.rev__who span{display:block;margin-top:3px;font:600 .6rem/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--accent-ink)}
.rev__src{display:inline-flex;align-items:center;gap:7px;font:500 .78rem/1 var(--sans);color:var(--muted)}
.rev__src svg{width:14px;height:14px;fill:currentColor}
.rev__ctas{display:grid;gap:10px;margin-top:2.25rem}
.rev__ctas .btn{width:100%}
.rev__ctas .btn--ghost{color:var(--primary);border-color:rgba(51,85,48,.35);min-height:56px}
/* wood styles — editorial rows */
.styles{display:grid;list-style:none;margin:2.75rem 0 0;padding:0;border-top:1px solid var(--line)}
.styles li{display:grid;grid-template-columns:auto 1fr;align-content:start;column-gap:20px;padding:28px 0;border-bottom:1px solid var(--line)}
.styles__num{grid-row:1/span 3;font:italic 400 2.2rem/1 var(--display);color:var(--accent-ink)}
.styles h3{margin:0 0 .45rem}
.styles p{margin:0 0 .8rem;color:var(--muted);font-size:.98rem}
.styles__fit{justify-self:start;align-self:start;white-space:nowrap;font:600 .6rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-ink);padding:8px 12px;border-radius:var(--pill);background:var(--card);border:1px solid var(--line)}
.styles a{color:var(--primary);font-weight:600}
/* privacy feature card (inside #styles) */
.pcard{display:grid;margin:3rem 0 0;background:var(--night);color:var(--on-night);border-radius:22px;overflow:hidden;box-shadow:0 30px 60px rgba(14,21,17,.22)}
.pcard__photo{margin:0}
.pcard__photo img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}
.pcard__copy{padding:34px 26px 30px}
.pcard__tag{display:inline-block;margin:0 0 1rem;padding:8px 14px;border-radius:var(--pill);background:var(--gold);color:#1a150c;font:600 .6rem/1 var(--sans);letter-spacing:.22em;text-transform:uppercase}
.pcard h2{color:#fbf7ef}
.pcard .lead{color:var(--on-night-mut)}
.pcard__copy p:not(.lead):not(.pcard__tag){color:var(--on-night)}
.pcard a{color:var(--sand)}
.spec{display:grid;gap:0;margin:1.75rem 0 0;border-top:1px solid var(--line-lt)}
.spec div{display:grid;gap:4px;padding:16px 0;border-bottom:1px solid var(--line-lt)}
.spec dt{font:600 .62rem/1.2 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--sand)}
.spec dd{margin:0;color:var(--on-night)}
/* materials */
.mat-grid{display:grid;gap:18px;list-style:none;margin:2.5rem 0 0;padding:0}
.mat-grid li{padding:28px 26px;background:var(--card);border:1px solid rgba(22,32,26,.06);border-radius:var(--r-card);box-shadow:var(--shadow)}
.mat-grid svg{width:26px;height:26px;color:var(--accent);margin-bottom:.9rem}
.mat-grid h3{margin:0 0 .45rem;font-size:1.3rem}
.mat-grid p{margin:0;color:var(--muted);font-size:.97rem}
.included{margin:3rem 0 0;padding:32px 26px;background:var(--night);color:var(--on-night);border-radius:var(--r-card);box-shadow:0 24px 50px rgba(14,21,17,.18)}
.included .footer-title{color:var(--sand);margin-bottom:1.1rem}
.checklist{display:grid;gap:12px;list-style:none;margin:0;padding:0}
.checklist li{position:relative;padding-left:32px;font-size:.98rem}
.checklist li::before{content:"";position:absolute;left:0;top:.2em;width:20px;height:20px;border-radius:50%;background:var(--primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f4efe4' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center/12px no-repeat}
/* pricing */
/* materials block inside why-us (night) */
.built{margin:3.5rem 0 0;padding:32px 0 0;border-top:1px solid var(--line-lt)}
.built h3{color:#fbf7ef;margin:0 0 .6rem}
.built>p{color:var(--on-night-mut);max-width:44em}
.built__list{display:grid;gap:0;list-style:none;margin:1.5rem 0 0;padding:0}
.built__list li{padding:14px 0;border-bottom:1px solid var(--line-lt);color:var(--on-night-mut);font-size:.95rem}
.built__list strong{display:block;margin-bottom:2px;font:600 .62rem/1.3 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--sand)}
.process .included{margin:0 0 2rem}
.price__grid{display:grid;gap:36px;margin-top:2.5rem;align-items:start}
.price{width:100%;border-collapse:collapse;background:var(--card);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow)}
.price__cap{margin:0 0 12px;font:600 .62rem/1.2 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--accent-ink)}
.price th,.price td{padding:16px 18px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.price tr:last-child th,.price tr:last-child td{border-bottom:0}
.price th{font:500 1.08rem/1.3 var(--display)}
.price th span{display:block;margin-top:3px;font:400 .84rem/1.4 var(--sans);color:var(--muted)}
.price td{font:600 .95rem/1.3 var(--sans);color:var(--primary);white-space:nowrap;text-align:right}
.price__factors h3{margin:0 0 1rem}
.price__factors ul{list-style:none;margin:0 0 1.5rem;padding:0;border-top:1px solid var(--line)}
.price__factors li{padding:14px 0;border-bottom:1px solid var(--line);font-size:.97rem;color:var(--muted)}
.price__factors strong{color:var(--ink);font-weight:600}
.price__note{padding:18px 22px;border-left:2px solid var(--gold);background:var(--card);border-radius:0 12px 12px 0;font-size:.95rem}
.process__note{margin:0 0 2rem;padding:18px 22px;border-left:2px solid var(--gold);background:var(--card);border-radius:0 12px 12px 0;font-size:.97rem;max-width:52em}
/* 5-photo gallery */
.gallery__grid--5 li:last-child{grid-column:auto}
/* other services row */
.other-svc{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:56px 0 0;padding-top:28px;border-top:1px solid var(--line)}
.other-svc p{margin:0 8px 0 0;font:600 .62rem/1.2 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--accent-ink)}
.other-svc a{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:var(--pill);background:var(--card);border:1px solid var(--line);font:500 .88rem/1 var(--sans);color:var(--ink);text-decoration:none;transition:border-color .2s,color .2s}
.other-svc a:hover{border-color:var(--gold);color:var(--primary)}
@media (min-width:768px){
  .rev-grid{grid-template-columns:1fr 1fr}
  .rev__ctas{display:flex;flex-wrap:wrap;gap:12px}.rev__ctas .btn{width:auto}
  .styles{grid-template-columns:1fr 1fr;column-gap:56px}
  .mat-grid{grid-template-columns:1fr 1fr}
  .included{padding:40px}
  .checklist{grid-template-columns:1fr 1fr;column-gap:32px}
  .built__list{grid-template-columns:1fr 1fr;column-gap:40px}
}
@media (min-width:1024px){
  .proof-bar__grid{grid-template-columns:3fr 2fr;align-items:center;gap:44px}
  .proof-bar__review{justify-items:start;text-align:left;padding:0 0 0 44px;border-top:0;border-left:1px solid var(--line)}
  .hero__rating{display:flex;gap:14px}
  .rev-grid{grid-template-columns:repeat(3,1fr);gap:26px}
  .styles{grid-template-columns:repeat(4,1fr);column-gap:40px}
  .built__list{grid-template-columns:repeat(3,1fr);column-gap:48px}
  .pcard{grid-template-columns:42fr 58fr}
  .pcard__copy{padding:52px 56px 48px}
  .mat-grid{grid-template-columns:repeat(3,1fr);gap:26px}
  .price__grid{grid-template-columns:55fr 45fr;gap:72px}
}
/* ---- page-header heroes, about + contact (v35) ---- */
:is(.home,.svc) .hero.hero--page{min-height:auto;padding-bottom:44px}
.hero--page .hero__rating{margin-top:20px}
.why-grid--2{border-top:1px solid var(--line-lt)}
.standards__grid{display:grid;gap:40px;margin-top:2.75rem;align-items:start}
.standards__grid .why-grid{margin-top:0}
.svc-links{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--line)}
.svc-links .footer-title{color:var(--accent-ink);margin-bottom:.5rem}
.svc-links ul{display:grid;list-style:none;margin:0;padding:0}
.svc-links a{display:flex;align-items:center;justify-content:space-between;min-height:58px;border-bottom:1px solid var(--line);font:500 1.25rem/1.2 var(--display);color:var(--ink);text-decoration:none;transition:color .2s,padding .2s}
.svc-links a svg{width:18px;height:18px;color:var(--gold);flex:none}
.svc-links a:hover{color:var(--primary);padding-left:8px}
.cpage__head{margin-bottom:2.5rem}
.cpage__grid{display:grid;gap:28px;align-items:start}
.cpage__info{display:grid;gap:20px}
.cpage__card{padding:30px 26px;background:var(--card);border:1px solid rgba(22,32,26,.06);border-radius:20px;box-shadow:var(--shadow)}
.cpage__card .footer-title{color:var(--accent-ink);margin-bottom:.6rem}
.cpage__card .contact__phone{margin-bottom:.6rem}
.cpage__assure{margin:0 0 1.25rem;font-weight:500;color:var(--ink)}
.cpage__steps{margin:0;padding:0 0 0 1.2rem;display:grid;gap:10px;font-size:.95rem;color:var(--muted)}
.cpage__steps strong{color:var(--ink)}
.gmap{border-radius:20px;overflow:hidden;aspect-ratio:4/3;background:var(--alt);box-shadow:var(--shadow)}
.gmap iframe{display:block;width:100%;height:100%;min-height:0}
.sa--compact .sa__base{margin:2rem 0 1.5rem}
.sa--compact .sa__list{display:grid;gap:14px}
.sa--compact .sa__row{border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:0 8px 20px rgba(14,21,17,.05)}
.sa--compact .sa__link{padding:20px 22px;border-radius:16px}
.sa--compact .sa__link:hover{padding-left:22px}
.sa--compact .sa__note{margin-top:20px}
@media (min-width:768px){
  .svc-links ul{grid-template-columns:1fr 1fr;column-gap:48px}
  .sa--compact .sa__list{grid-template-columns:1fr 1fr}
  .mat-grid--4{grid-template-columns:1fr 1fr}
}
@media (min-width:1024px){
  :is(.home,.svc) .hero.hero--page{min-height:62vh;padding:calc(var(--header-h) + 70px) 0 70px}
  .standards__grid{grid-template-columns:1fr 360px;gap:64px}
  .why-grid--2{grid-template-columns:1fr 1fr;column-gap:56px}
  .svc-links ul{grid-template-columns:repeat(3,1fr)}
  .cpage__grid{grid-template-columns:55fr 45fr;gap:48px}
  .cpage__grid>.lead-form{position:sticky;top:calc(var(--header-h) + 24px)}
  .mat-grid--4{grid-template-columns:repeat(4,1fr)}
}
/* photo-less feature card (pages awaiting project photos) + svc-intro fact card (v36) */
.pcard--solo{grid-template-columns:1fr!important}
.pcard--solo .pcard__copy{max-width:900px}
.svc-intro__grid>.cred-card{align-self:center}

/* v41: hub rows shown as plain text until Phase 2 hub pages launch */
.sa__link--static{pointer-events:none}
.site-footer li>span{display:inline-flex;align-items:center;min-height:48px}
/* v41: legal / utility pages */
.legal{max-width:760px}
.legal h2{font:500 clamp(1.5rem,4vw,1.9rem)/1.2 var(--display);margin:2.2rem 0 .7rem;color:var(--ink)}
.legal p,.legal li{color:var(--ink);line-height:1.7}
.legal ul:not(.util-links){padding-left:1.2rem}
.legal>h2:first-child{margin-top:0}
.legal a{color:var(--accent-ink)}
.legal__updated{color:var(--muted);font-size:.92rem}
.util-links{display:flex;flex-wrap:wrap;gap:12px;list-style:none;margin:1.5rem 0 0;padding:0}
.util-links a{display:inline-block;padding:10px 18px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink);text-decoration:none}
.util-links a:hover{border-color:var(--accent-ink)}

/* v42: starting-price card (wood + aluminum pricing) */
.price-start{background:var(--card);border-radius:var(--r-card);box-shadow:var(--shadow);padding:32px 30px;border-top:3px solid var(--gold)}
.price-start .price__cap{margin-bottom:18px}
.price-start__amt{margin:0;font:500 clamp(3rem,9vw,4.2rem)/1 var(--display);color:var(--primary)}
.price-start__amt span{display:block;margin-bottom:10px;font:600 .72rem/1.2 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.price-start__amt small{margin-left:8px;font:500 1rem/1 var(--sans);color:var(--muted)}
.price-start__note{margin:20px 0 0;padding-top:18px;border-top:1px solid var(--line);font-size:.95rem;color:var(--ink)}

/* v43: sheen sweep on free-estimate buttons */
.btn--sheen{position:relative;overflow:hidden;isolation:isolate}
.btn--sheen::after{content:"";position:absolute;top:-2px;bottom:-2px;left:0;width:38%;pointer-events:none;background:linear-gradient(100deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.26) 50%,rgba(255,255,255,0) 100%);transform:translateX(-160%) skewX(-18deg);animation:btn-sheen 6s ease-in-out infinite}
@keyframes btn-sheen{0%,72%{transform:translateX(-160%) skewX(-18deg)}100%{transform:translateX(330%) skewX(-18deg)}}
/* cream buttons on dark backgrounds: a green sweep, since white would not show */
:is(.hero__ctas,.faq__mid,.cred-card,.cta-banner) .btn--sheen::after,:is(.home,.svc) .site-header:not(.is-solid) .header__cta.btn--sheen::after{background:linear-gradient(100deg,rgba(51,85,48,0) 0%,rgba(51,85,48,.22) 50%,rgba(51,85,48,0) 100%)}
@media (prefers-reduced-motion:reduce){.btn--sheen::after{animation:none;display:none}}

/* v45/v50: mobile hero — center button labels (arrow circle pinned right); mobile-first, desktop restores the default */
.hero__ctas .btn:has(.btn__arr){position:relative;justify-content:center;padding:0 58px}
.hero__ctas .btn:has(.btn__arr) .btn__arr{position:absolute;right:7px;top:50%;margin-top:-21px}
@media (min-width:768px){
  .hero__ctas .btn:has(.btn__arr){justify-content:space-between;padding:0 7px 0 28px}
  .hero__ctas .btn:has(.btn__arr) .btn__arr{position:static;margin-top:0}
}
