/* Clean Scapes and Excavation
   Layout: dark brand bands (header, hero, feature, footer) alternate with light "concrete" reading
   sections; photos sit in the slanted-panel shape from the original banner. */
@font-face{font-family:"Barlow";font-weight:400;font-display:swap;src:url(/fonts/barlow-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-weight:500;font-display:swap;src:url(/fonts/barlow-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-weight:600;font-display:swap;src:url(/fonts/barlow-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Semi Condensed";font-weight:600;font-display:swap;src:url(/fonts/barlow-semi-condensed-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Semi Condensed";font-weight:700;font-display:swap;src:url(/fonts/barlow-semi-condensed-latin-700-normal.woff2) format("woff2")}

:root{
  --ink:#0c0d0c;          /* brand black */
  --ink-2:#171917;        /* raised dark surface */
  --line-d:#2c302c;       /* rules on dark */
  --concrete:#ebede9;     /* light section ground */
  --paper:#f7f8f5;        /* cards on light */
  --line-l:#d5d9d3;       /* rules on light */
  --fg-d:#f1eee8;         /* text on dark */
  --muted-d:#a9aea6;
  --fg-l:#1a1c1a;         /* text on light */
  --muted-l:#565b54;
  --green:#2f9b5c;        /* logo tree green: buttons */
  --green-hi:#38b06a;
  --green-ink:#1d7442;    /* green text on light */
  --copper:#c48a58;       /* logo house copper */
  --copper-ink:#94592b;   /* copper text on light */
  --display:"Barlow Semi Condensed","Arial Narrow",Arial,sans-serif;
  --body:"Barlow","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --slant:polygon(33.76% 0,100% 0,66.24% 100%,0 100%);
  --r:3px;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}
body{margin:0;background:var(--concrete);color:var(--fg-l);font:400 1.0625rem/1.6 var(--body);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,.h3{font-family:var(--display);font-weight:700;line-height:1.05;margin:0;text-wrap:balance;letter-spacing:.005em}
h1{font-size:clamp(2.1rem,4.4vw,3.4rem);text-transform:uppercase}
h2{font-size:clamp(1.7rem,3.2vw,2.5rem)}
h3,.h3{font-size:1.4rem}
p{margin:0}
.sr,.hp{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;background:var(--green);color:#fff;padding:10px 14px;z-index:50;border-radius:var(--r)}
.skip:focus{top:12px}
:focus-visible{outline:3px solid var(--copper);outline-offset:3px}
.wrap{width:100%;max-width:1200px;margin-inline:auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:46px;padding:0 20px;border-radius:var(--r);font:600 1rem/1 var(--body);letter-spacing:.02em;text-decoration:none;white-space:nowrap;border:2px solid transparent;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.btn-lg{min-height:52px;padding:0 26px;font-size:1.05rem}
.btn-go{background:var(--green);border-color:var(--green);color:#fff}
.btn-go:hover{background:var(--green-hi);border-color:var(--green-hi)}
.btn-line{background:transparent;border-color:currentColor;color:inherit}
.dark .btn-line,.hero .btn-line,.cta .btn-line,.page-hd .btn-line{border-color:rgba(241,238,232,.4);color:var(--fg-d)}
.dark .btn-line:hover,.hero .btn-line:hover,.cta .btn-line:hover,.page-hd .btn-line:hover{border-color:var(--fg-d)}
.btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.btns{display:flex;flex-wrap:wrap;gap:10px}
.more{font-weight:600;color:var(--green-ink);text-decoration:none;display:inline-flex;align-items:center;gap:.35em}
.more::after{content:"→";transition:transform .15s}
a:hover .more::after,.more:hover::after{transform:translateX(3px)}
.dark .more,.cta .more{color:var(--green-hi)}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:30;background:var(--ink);color:var(--fg-d);border-bottom:1px solid var(--line-d)}
.hdr-in{display:flex;align-items:center;gap:24px;min-height:72px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--copper);flex:none}
.brand-mark{width:96px;height:auto}
.brand-mark .tree{stroke:var(--green-hi)}
.brand-name{font:700 1.2rem/1 var(--display);text-transform:uppercase;letter-spacing:.04em;color:var(--fg-d);display:grid;gap:3px}
.brand-name small{font:600 .72rem/1 var(--body);letter-spacing:.2em;color:var(--copper)}
.brand-logo{height:42px;width:auto}
.nav{margin-left:auto}
.nav ul{list-style:none;display:flex;gap:4px;margin:0;padding:0}
.nav a{display:block;white-space:nowrap;padding:10px 10px;text-decoration:none;font-weight:500;color:var(--muted-d);border-radius:var(--r)}
.nav a:hover,.nav a[aria-current="page"]{color:var(--fg-d)}
.nav a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--copper)}
.hdr-act{display:flex;align-items:center;gap:12px}
.hdr-phone{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:600;color:var(--fg-d);white-space:nowrap}
.hdr-phone svg{width:18px;height:18px;fill:none;stroke:var(--green-hi);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.menu-btn{display:none;width:46px;height:46px;border:1px solid var(--line-d);background:transparent;border-radius:var(--r);padding:12px 11px;flex-direction:column;justify-content:space-between;cursor:pointer}
.menu-btn i{display:block;height:2px;background:var(--fg-d);transition:transform .2s,opacity .2s}
.menu-btn[aria-expanded="true"] i:nth-child(2){transform:translateY(8px) rotate(45deg)}
.menu-btn[aria-expanded="true"] i:nth-child(3){opacity:0}
.menu-btn[aria-expanded="true"] i:nth-child(4){transform:translateY(-8px) rotate(-45deg)}

/* ---------- hero ---------- */
.hero{background:var(--ink);color:var(--fg-d);overflow:hidden}
.strip{position:relative;width:100%;max-width:1920px;margin:0 auto;aspect-ratio:1920/573;overflow:hidden}
.track{position:absolute;inset:0}
.pnl{position:absolute;top:0;height:100%;width:28.65%;clip-path:var(--slant);animation:pnl-in .9s cubic-bezier(.2,.75,.25,1) both}
.pnl picture,.pnl img{width:100%;height:100%;object-fit:cover}
@keyframes pnl-in{from{opacity:0;transform:translateY(36px) scale(1.04)}to{opacity:1;transform:none}}
.hero-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 56px;align-items:end;padding-block:clamp(24px,3.4vw,44px) clamp(30px,4vw,56px)}
.hero-text{display:grid;gap:12px;min-width:0}
.eyebrow,.kicker{font:600 .8rem/1.35 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--copper);margin:0}
.kicker a{text-decoration:none}
.light .kicker,.page-hd + .light .kicker{color:var(--copper-ink)}
.hero-h1{font-family:var(--body);font-size:.82rem;font-weight:600;line-height:1.35;text-wrap:pretty}
.slogan{font:700 clamp(2.2rem,4.8vw,3.75rem)/1 var(--display);text-transform:uppercase;letter-spacing:.01em}
.slogan span{display:inline-block;margin-right:.24em;animation:up .7s cubic-bezier(.2,.75,.25,1) both}
.slogan span:nth-child(1){animation-delay:.55s}
.slogan span:nth-child(2){animation-delay:.7s}
.slogan span:nth-child(3){animation-delay:.85s;color:var(--green-hi)}
.hero-sub{max-width:60ch;color:var(--muted-d);font-size:clamp(1rem,1.25vw,1.12rem)}
.hero-act{display:grid;gap:10px;animation:up .7s .95s cubic-bezier(.2,.75,.25,1) both}
.lic{font-size:.85rem;color:var(--muted-d)}
.lic strong{color:var(--fg-d);font-weight:600}
@keyframes up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---------- trust strip ---------- */
.trust{background:var(--ink-2);color:var(--fg-d);border-top:1px solid var(--line-d)}
.trust ul{list-style:none;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 28px;padding-block:16px}
.trust li{display:flex;align-items:center;gap:10px;font-weight:600;font-size:.95rem}
.trust li::before{content:"";width:9px;height:9px;background:var(--green-hi);clip-path:polygon(33% 0,100% 0,67% 100%,0 100%);flex:none;width:14px}

/* ---------- sections ---------- */
.sec{padding-block:clamp(56px,7vw,96px)}
.light{background:var(--concrete);color:var(--fg-l)}
.dark{background:var(--ink);color:var(--fg-d)}
.dark .kicker{color:var(--copper)}
.sec-h{margin:8px 0 32px;max-width:24ch}
.sec-top{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;margin-bottom:32px}
.sec-top .sec-h{margin-bottom:0}
.split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,72px);align-items:center}
.split.flip{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.prose{display:grid;gap:16px;min-width:0}
.prose h2{margin-top:6px}
.prose p,.prose li{max-width:65ch}
.dark .prose p{color:var(--muted-d)}
.light .prose p,.light .prose li{color:var(--muted-l)}
.tagline{font:700 1.3rem/1.2 var(--display);text-transform:uppercase;color:var(--fg-l)!important}
.slant{clip-path:var(--slant);aspect-ratio:550/573;overflow:hidden;background:var(--ink-2);max-width:100%}
.slant picture,.slant img{width:100%;height:100%;object-fit:cover}
.split-img{width:100%}

/* cards */
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.cards-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cards-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px}
.card{display:grid;align-content:start;gap:10px;text-decoration:none;min-width:0}
.card-img{transition:transform .35s cubic-bezier(.2,.75,.25,1);margin-bottom:6px}
.card:hover .ph img{transform:scale(1.03)}
.card p{color:var(--muted-l);font-size:.98rem}
.dark .card p{color:var(--muted-d)}
.card-cat{font:600 .75rem/1.3 var(--body)!important;letter-spacing:.12em;text-transform:uppercase;color:var(--copper-ink)!important}
.dark .card-cat{color:var(--copper)!important}
.card-wide .card-img{aspect-ratio:16/9;clip-path:polygon(12% 0,100% 0,88% 100%,0 100%)}
.card[hidden]{display:none}

/* reviews */
.reviews{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px}
.review{margin:0;background:var(--paper);border:1px solid var(--line-l);padding:24px;display:grid;gap:12px}
.stars{color:#d9982f;letter-spacing:.1em}
.review blockquote{margin:0;font-size:1.05rem}
.review figcaption{font-weight:600;color:var(--muted-l)}

/* CTA + form */
.cta{background:var(--ink);color:var(--fg-d);border-top:4px solid var(--green)}
.cta .prose p{color:var(--muted-d)}
.cta-in{align-items:start}
.cta-call{font-weight:600;color:var(--fg-d)!important}
.cta-call a{color:var(--green-hi)}
.cta-band{display:flex;justify-content:space-between;align-items:center;gap:20px 40px;flex-wrap:wrap}
.cta-band p{color:var(--muted-d);margin-top:8px}
.ticks{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.ticks li{position:relative;padding-left:26px}
.ticks li::before{content:"";position:absolute;left:0;top:.42em;width:14px;height:8px;border-left:2.5px solid var(--green);border-bottom:2.5px solid var(--green);transform:rotate(-45deg)}
.dark .ticks li,.cta .ticks li{color:var(--fg-d)}
.dark .ticks li::before,.cta .ticks li::before{border-color:var(--green-hi)}

.qf{background:var(--paper);color:var(--fg-l);padding:clamp(20px,3vw,32px);border-radius:var(--r);display:grid;gap:14px;min-width:0}
.light .qf{border:1px solid var(--line-l)}
.qf-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fld{display:grid;gap:6px;margin:0}
.fld label{font-weight:600;font-size:.92rem}
.opt{font-weight:400;color:var(--muted-l)}
.fld input,.fld select,.fld textarea{width:100%;font:inherit;font-size:1rem;color:var(--fg-l);background:#fff;border:1.5px solid var(--line-l);border-radius:var(--r);padding:11px 12px;min-height:48px}
.fld textarea{resize:vertical;min-height:110px}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(47,155,92,.2)}
.qf-foot{display:grid;gap:8px;margin-top:4px}
.qf-foot .btn{width:100%}
.qf-note{font-size:.88rem;color:var(--muted-l);text-align:center}

/* page header (inner pages) */
.page-hd{background:var(--ink);color:var(--fg-d);padding-block:clamp(40px,6vw,76px)}
.page-hd .wrap{display:grid;gap:14px}
.page-hd .lead{max-width:62ch;color:var(--muted-d);font-size:clamp(1.05rem,1.4vw,1.2rem)}
.page-hd .lead a{color:var(--green-hi)}
.page-hd-tall{padding-block:clamp(72px,12vw,140px)}
.svc-hd{align-items:center}
.svc-hd > div:first-child{display:grid;gap:16px}

/* service body */
.svc-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(28px,5vw,64px);align-items:start}
.svc-body .prose h2{font-size:clamp(1.4rem,2.2vw,1.8rem);margin-top:18px}
.svc-body .prose a,.narrow a,.faq-a a{color:var(--green-ink);font-weight:600}
.svc-side{display:grid;gap:16px;position:sticky;top:96px}
.box{background:var(--paper);border:1px solid var(--line-l);padding:22px;display:grid;gap:10px}
.box-h{font:700 1.15rem/1.1 var(--display);text-transform:uppercase;letter-spacing:.02em}
.box-dark{background:var(--ink);color:var(--fg-d);border-color:var(--ink)}
.box-dark p:not(.box-h){color:var(--muted-d)}
.box-dark a{color:var(--fg-d);text-decoration:none}
.box .big{font:700 1.7rem/1 var(--display)}
.steps{margin:0;padding-left:1.2em;display:grid;gap:10px;color:var(--muted-l)}
.steps strong{color:var(--fg-l)}
.hours{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.hours li{display:flex;justify-content:space-between;gap:12px;color:var(--muted-l)}

/* projects */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.chip{font:600 .9rem/1 var(--body);padding:10px 16px;border-radius:999px;border:1.5px solid var(--line-l);background:var(--paper);color:var(--fg-l);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--fg-d)}
.proj{display:grid;gap:32px}
.proj-main{max-width:820px}
.proj-cover{width:100%}
.proj-main picture{display:block}
.proj-text{max-width:70ch}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px}
.gallery figure{margin:0;display:grid;gap:6px}
.gallery figcaption{font-size:.9rem;color:var(--muted-l)}

/* materials */
.mats{display:grid;gap:clamp(40px,6vw,72px)}
.mat{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,5vw,64px);align-items:center}
.mat:nth-child(even){grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}
.mat:nth-child(even) .split-img{order:2}
.note{font-size:.95rem;color:var(--muted-l);border-left:3px solid var(--copper);padding-left:14px;max-width:70ch}

/* FAQ */
.faq{display:grid;gap:12px;max-width:860px}
.faq-item{background:var(--paper);border:1px solid var(--line-l)}
.faq-item summary{list-style:none;cursor:pointer;padding:20px 56px 20px 22px;position:relative}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);font:600 1.6rem/1 var(--body);color:var(--green-ink)}
.faq-item[open] summary::after{content:"–"}
.faq-item summary .h3{font-size:1.25rem}
.faq-a{padding:0 22px 22px;display:grid;gap:10px;color:var(--muted-l);max-width:70ch}

/* contact */
.contact{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:clamp(24px,4vw,48px);align-items:start}
.contact-side{display:grid;gap:14px}

.narrow{max-width:760px}
.narrow h2{font-size:1.5rem;margin-top:14px}

/* footer */
.ftr{background:var(--ink);color:var(--muted-d);border-top:1px solid var(--line-d);font-size:.97rem}
.ftr a{text-decoration:none}
.ftr a:hover{color:var(--fg-d)}
.ftr-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.3fr;gap:32px;padding-block:56px 36px}
.ftr-col{display:grid;align-content:start;gap:12px}
.ftr ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ftr-brand{font:700 1.35rem/1.1 var(--display);text-transform:uppercase;color:var(--fg-d)}
.ftr-tag{color:var(--copper)}
.ftr-lic strong{color:var(--fg-d);font-weight:600}
.ftr-h{font:600 .78rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-d)}
.ftr-contact a{color:var(--fg-d)}
.ftr-hours{font-size:.9rem}
.ftr-social{display:flex;gap:16px}
.ftr-social a{color:var(--green-hi);font-weight:600}
.ftr-base{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-block:18px 26px;border-top:1px solid var(--line-d);font-size:.88rem}
.call-bar{display:none}

/* ---------- responsive ---------- */
@media (max-width:1240px){
  .nav a{padding:10px 8px}
  .hdr-phone span{display:none}
}
@media (max-width:1000px){
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cards-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .svc-body,.contact{grid-template-columns:1fr}
  .svc-side{position:static}
  .ftr-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:1080px){
  .menu-btn{display:flex}
  .hdr-quote{display:none}
  .hdr-phone{width:46px;height:46px;justify-content:center;border:1px solid var(--line-d);border-radius:var(--r)}
  .nav{position:absolute;left:0;right:0;top:100%;background:var(--ink);border-bottom:1px solid var(--line-d);display:none;margin:0}
  .nav.open{display:block}
  .nav ul{flex-direction:column;padding:8px max(20px,env(safe-area-inset-left,0px)) 16px}
  .nav a{padding:14px 4px;font-size:1.1rem;color:var(--fg-d);border-bottom:1px solid var(--line-d);border-radius:0}
  .hdr-act{margin-left:auto}
  .hero-copy,.split,.split.flip,.mat,.mat:nth-child(even){grid-template-columns:1fr}
  .mat:nth-child(even) .split-img{order:0}
  .split-img{max-width:460px}
  .split.flip .split-img{order:2}
  .hero-act{justify-items:start}
}
@media (max-width:640px){
  body{padding-bottom:60px}
  .brand-mark{width:72px}
  .brand-name{font-size:1.05rem}
  .strip{aspect-ratio:1329/573}
  .track{inset:0 auto 0 0;width:144.47%;left:-22.8%}
  .cards,.cards-3,.cards-2{grid-template-columns:1fr}
  .card-img{max-width:420px}
  .qf-row{grid-template-columns:1fr}
  .hero-act,.hero-act .btns{width:100%}
  .hero-act .btn{flex:1 1 100%}
  .trust ul{justify-content:flex-start}
  .ftr-grid{grid-template-columns:1fr}
  .call-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;justify-content:center;align-items:center;min-height:56px;padding-bottom:env(safe-area-inset-bottom,0px);background:var(--green);color:#fff;font:600 1.05rem/1 var(--body);text-decoration:none;box-shadow:0 -4px 16px rgba(0,0,0,.25)}
}
@media (prefers-reduced-motion:reduce){
  .pnl,.slogan span,.hero-act{animation:none}
  .card-img,.btn,.more::after{transition:none}
}

/* kicker colour wins over paragraph colours inside prose blocks */
.prose .kicker,.light .prose .kicker{color:var(--copper-ink)}
.dark .prose .kicker,.cta .prose .kicker,.page-hd .kicker{color:var(--copper)}

/* ---------- v2: normal photo frames, featured services, reviews, about ---------- */
.ph{aspect-ratio:4/3;overflow:hidden;border-radius:var(--r);background:var(--ink-2);width:100%;max-width:100%}
.ph picture{display:block;width:100%;height:100%}
.ph img{width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.2,.75,.25,1)}
.card .ph{margin-bottom:6px}
.brand{gap:14px}
.ftr-logo{height:52px;width:auto;margin-bottom:4px}
.sec-intro{max-width:62ch;color:var(--muted-l);margin:-16px 0 32px;font-size:1.08rem}
.feat{gap:32px}
.card-feat{background:var(--paper);border:1px solid var(--line-l);padding:16px 16px 22px;border-radius:var(--r)}
.card-feat h3,.card-feat .h3{font-size:clamp(1.6rem,2.4vw,2rem)}
.card-feat .ticks li{color:var(--fg-l);font-size:.97rem}
.extras{margin-top:36px;display:grid;gap:16px}
.extras-h{font:600 .78rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--copper-ink)}
.extra{display:grid;grid-template-columns:200px minmax(0,1fr);gap:20px;align-items:center;text-decoration:none;background:var(--paper);border:1px solid var(--line-l);padding:12px;border-radius:var(--r)}
.extra > div:last-child{display:grid;gap:6px;padding-right:8px}
.extra p{color:var(--muted-l);font-size:.98rem;max-width:62ch}
.minor{color:var(--muted-l);font-size:.97rem}
.minor a{color:var(--green-ink);font-weight:600}
.reviews-sec{background:var(--paper);border-block:1px solid var(--line-l)}
.rev-top{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;margin-bottom:28px}
.rev-top .sec-h{margin-bottom:0}
.rev-score{display:flex;align-items:center;gap:14px}
.rev-num{font:700 3.4rem/1 var(--display);color:var(--fg-l)}
.rev-meta{display:grid;gap:2px;color:var(--muted-l);font-weight:500}
.rev-meta .stars{font-size:1.3rem}
.rev-meta a{color:var(--green-ink)}
.review figcaption span{display:block;font-weight:400;font-size:.85rem;color:var(--muted-l)}
.rev-btns{margin-top:24px}
.reviews-sec .btn-line{color:var(--fg-l);border-color:var(--line-l)}
.reviews-sec .btn-line:hover{border-color:var(--fg-l)}
.reviews-sec .review{background:#fff}
.about-teaser{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.value{background:var(--paper);border:1px solid var(--line-l);border-top:3px solid var(--green);padding:22px;display:grid;gap:8px;align-content:start}
.value p{color:var(--muted-l)}
@media (max-width:900px){
  .about-teaser{grid-template-columns:1fr}
  .values{grid-template-columns:1fr}
  .ph{max-width:620px}
  .split.flip .ph{order:2}
}
@media (max-width:640px){
  .extra{grid-template-columns:1fr}
  .brand-logo{height:34px}
  .brand-name{font-size:.95rem}
  .rev-num{font-size:2.8rem}
}
@media (prefers-reduced-motion:reduce){.ph img{transition:none}}

@media (max-width:640px){ .hdr-phone{display:none} }
@media (min-width:1081px) and (max-width:1380px){ .brand-name{display:none} }
@media (max-width:640px){ .trust ul{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px} .trust li{font-size:.88rem;align-items:flex-start} .trust li::before{margin-top:.45em} }

/* thinner banner: trim the bottom of the photos */
.strip{aspect-ratio:1920/450}
.track{bottom:auto;aspect-ratio:1920/573}
.reviews{display:block;columns:3 300px;column-gap:20px}
.review{break-inside:avoid;margin:0 0 20px}
.extras-h2{margin-top:12px}
@media (max-width:640px){
  .strip{aspect-ratio:1329/460}
  .track{bottom:auto;aspect-ratio:1920/573}
}

/* review slider: equal cards, swipe or arrows, Read more on long reviews */
.rv-slider{position:relative}
.rv-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 40px) / 3);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 12px;scrollbar-width:thin;align-items:start}
.rv-card{scroll-snap-align:start;margin:0;background:#fff;border:1px solid var(--line-l);border-radius:var(--r);padding:24px;display:flex;flex-direction:column;gap:12px;min-height:310px}
.rv-text{margin:0;font-size:1.02rem;line-height:1.6;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden}
.rv-card.open .rv-text{-webkit-line-clamp:unset;display:block}
.rv-more{align-self:flex-start;background:none;border:0;padding:0;font:600 .95rem/1 var(--body);color:var(--green-ink);cursor:pointer}
.rv-card figcaption{margin-top:auto;font-weight:600;color:var(--fg-l)}
.rv-card figcaption span{display:block;font-weight:400;font-size:.85rem;color:var(--muted-l)}
.rv-nav{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}
.rv-arrow{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--line-l);background:#fff;color:var(--fg-l);font-size:1.2rem;cursor:pointer}
.rv-arrow:hover{border-color:var(--fg-l)}
.rv-arrow:disabled{opacity:.35;cursor:default}
@media (max-width:1000px){.rv-track{grid-auto-columns:calc((100% - 20px) / 2)}}
@media (max-width:640px){.rv-track{grid-auto-columns:86%}}

/* custom solutions feature */
.custom{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);margin-top:32px;background:var(--ink);color:var(--fg-d);border-radius:var(--r);overflow:hidden;text-decoration:none}
.custom .ph{border-radius:0;aspect-ratio:4/3}
.custom-txt{display:grid;align-content:center;gap:12px;padding:clamp(24px,4vw,48px)}
.custom-txt .kicker{color:var(--copper)}
.custom-txt h3{font-size:clamp(1.6rem,2.6vw,2.2rem)}
.custom-txt p:not(.kicker){color:var(--muted-d);max-width:48ch}
.custom-txt .more{color:var(--green-hi)}
.custom:hover .ph img{transform:scale(1.03)}
.extra{grid-template-columns:260px minmax(0,1fr)}
@media (max-width:900px){.custom{grid-template-columns:1fr}}
@media (max-width:640px){.extra{grid-template-columns:1fr}}

/* materials page */
.white{background:var(--paper);color:var(--fg-l);border-block:1px solid var(--line-l)}
.mat-jump{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.mat-jump a{font-weight:600;font-size:.95rem;text-decoration:none;color:var(--fg-d);border:1.5px solid rgba(241,238,232,.3);padding:9px 14px;border-radius:999px}
.mat-jump a:hover{border-color:var(--fg-d)}
.mat-sec{display:grid;gap:22px}
.mat-intro{max-width:70ch}
.mat-h{font-size:1.25rem;margin-top:18px;text-transform:uppercase;letter-spacing:.03em}
.swatches{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:16px 14px}
.swatches li{display:grid;gap:8px}
.sw{display:block;aspect-ratio:3/4;border-radius:var(--r);box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.sw-name{font-weight:600;font-size:.92rem}
.sw-name sup{font-size:.6em;margin-left:1px}
.profiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.profile{margin:0;background:var(--paper);border:1px solid var(--line-l);border-radius:var(--r);overflow:hidden;display:grid}
.profile picture,.profile img{width:100%;aspect-ratio:4/3;object-fit:cover}
.profile figcaption{padding:16px 18px 20px;display:grid;gap:6px}
.profile figcaption strong{font:700 1.2rem/1.1 var(--display);text-transform:uppercase;letter-spacing:.03em}
.profile figcaption span{color:var(--muted-l);font-size:.96rem}
.mat-split{align-items:center;margin-bottom:6px}
.textures{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px 14px}
.textures li{display:grid;gap:8px}
.textures picture,.textures img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r)}
.textures span{font-weight:600;font-size:.92rem}
.timber strong{color:var(--fg-l)}
.timber .small{font-size:.95rem;border-left:3px solid var(--copper);padding-left:14px}
@media (max-width:900px){.profiles{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.profiles{grid-template-columns:1fr}.swatches{grid-template-columns:repeat(3,1fr)}.textures{grid-template-columns:repeat(2,1fr)}}
.profile picture{display:flex;justify-content:center;background:#f3f2ee;padding:14px 0}
.profile picture img,.profile img{width:auto;max-width:72%;aspect-ratio:auto;max-height:170px;object-fit:contain}

.timber-wrap{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:start;column-gap:48px}
.timber-wrap .note{grid-column:1/-1}
.timber-ph{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.timber-ph .ph{aspect-ratio:5/4}
.profile picture img,.profile img{max-width:100%;max-height:200px}
@media (max-width:900px){.timber-wrap{grid-template-columns:1fr}}

.faq-a .btn-dl{color:var(--fg-l);border-color:var(--line-l);margin-top:4px}
.faq-a .btn-dl:hover{border-color:var(--fg-l)}

.ph img{object-position:var(--focus,50% 50%)}
.ph-free{aspect-ratio:auto;max-width:440px}
.ph-free img{height:auto}

/* construction diagrams + process */
.diagram{margin:28px 0 0;display:grid;gap:16px}
.diagram h2{font-size:clamp(1.4rem,2.2vw,1.8rem)}
.diagram picture,.diagram img{width:100%;max-width:680px;border-radius:var(--r);border:1px solid var(--line-l)}
.process-intro{max-width:66ch;color:var(--muted-d);margin:-16px 0 28px;font-size:1.05rem}
.stages{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.stage{background:var(--ink-2);border:1px solid var(--line-d);border-top:3px solid var(--copper);padding:24px;display:grid;gap:10px;align-content:start}
.stage-n{font:700 1.5rem/1 var(--display);text-transform:uppercase;color:var(--copper)}
.stage h3{font-size:1.2rem;color:var(--fg-d)}
.stage p{color:var(--muted-d);font-size:.98rem}
.process-note{margin-top:22px;max-width:75ch;color:var(--muted-d);font-size:.95rem;font-style:italic}
.process-note a{color:var(--green-hi);font-style:normal;font-weight:600}
@media (max-width:900px){.stages{grid-template-columns:1fr}}

.ph-portrait{aspect-ratio:4/5;max-width:440px}
.ph-portrait img{object-position:50% 30%}
.team-sec{padding-bottom:0}
.team{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center}
.team figure{margin:0}
@media (max-width:900px){.team{grid-template-columns:1fr}}
/* terms page */
.terms{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(28px,5vw,64px);align-items:start}
.terms .prose h2{font-size:1.3rem;margin-top:22px}
.terms-side{position:sticky;top:96px}
@media (max-width:900px){.terms{grid-template-columns:1fr}.terms-side{position:static}}
