/* Sandstone & Co. — shared styles (Variant D) */
:root{
  --paper:#F7F4EF; --linen:#EEE8DD; --stone:#E4DCCE; --olive:#2F3A2C; --moss:#55603F; --sage:#A9B29A;
  --ink:#24221F; --gray:#6B665E; --muted-dark:#BFC4B4;
  --line:rgba(36,34,31,.12); --line-dark:rgba(247,244,239,.18);
  --serif:"Fraunces", Georgia, serif;
  --sans:"Manrope", "Helvetica Neue", Arial, sans-serif;
  --gutter:clamp(20px, 5vw, 80px);
  --space:clamp(96px, 11vw, 168px);
  --radius:6px;
  --hh:78px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:88px}
html,body{overflow-x:clip}
body{background:var(--paper);color:var(--ink);font:400 17px/1.7 var(--sans);-webkit-font-smoothing:antialiased}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
figure{margin:0}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

.wrap{padding-left:var(--gutter);padding-right:var(--gutter)}
.kicker{display:inline-flex;align-items:center;gap:10px;font:600 12px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--moss)}
.kicker::before{content:"";width:18px;height:1px;background:currentColor}
h1,h2,h3{font-family:var(--serif);font-weight:300;letter-spacing:-.022em;font-variation-settings:"SOFT" 60}
.h2{font-size:clamp(38px, 4.4vw, 64px);line-height:1.05;margin-top:18px}
.h3{font-size:clamp(22px, 1.8vw, 27px);line-height:1.2;font-weight:400}
.lead{font-size:clamp(17px, 1.3vw, 19px);color:var(--gray);max-width:46ch}
.gray{color:var(--gray)}
.cap{font-size:13px;line-height:1.5;color:var(--gray);margin-top:12px}

.btn{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;height:52px;padding:0 24px;border-radius:999px;background:var(--olive);color:var(--paper);font:600 15px/1 var(--sans);transition:background-color .35s var(--ease),color .35s var(--ease),transform .2s var(--ease)}
.btn:hover{background:var(--moss)}
.btn:active{transform:scale(.97)}
.btn svg{flex:0 0 auto;transition:transform .35s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn.light{background:var(--paper);color:var(--olive)}
.btn.light:hover{background:var(--linen)}
.txt{font:600 15px/1 var(--sans);padding-bottom:6px;display:inline-block;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;transition:color .3s var(--ease)}
.txt:hover{color:var(--moss);animation:txt-line .7s var(--ease)}
@keyframes txt-line{
  0%{background-size:100% 1px;background-position:100% 100%}
  45%{background-size:0 1px;background-position:100% 100%}
  46%{background-size:0 1px;background-position:0 100%}
  100%{background-size:100% 1px;background-position:0 100%}
}
@media (prefers-reduced-motion: reduce){
  .btn,.btn svg,.txt,.txt:hover{transition:none;animation:none}
  .btn:hover svg,.btn:active{transform:none}
}

.ph{overflow:hidden;border-radius:var(--radius);background:var(--stone)}

/* Header */
header{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;align-items:stretch;padding:0 var(--gutter);height:var(--hh);color:var(--paper);border-bottom:1px solid var(--line-dark);transition:background-color .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease)}
header.scrolled{color:var(--ink);background:rgba(247,244,239,.92);backdrop-filter:saturate(1.4) blur(16px);-webkit-backdrop-filter:saturate(1.4) blur(16px);border-color:var(--line)}
.logo{display:inline-flex;align-items:center;gap:12px;font:400 23px/1 var(--serif);letter-spacing:-.02em;white-space:nowrap}
.logo-mark{flex:0 0 34px;height:34px;border-radius:50%;border:1px solid currentColor;display:grid;place-items:center;font:italic 400 17px/1 var(--serif);opacity:.95}
.logo-mark+span{line-height:1}
header .logo{flex:1;padding-right:24px}
.hcell{display:flex;align-items:center;padding:0 clamp(18px, 1.9vw, 30px);border-left:1px solid var(--line-dark);white-space:nowrap;transition:border-color .4s var(--ease)}
header.scrolled .hcell{border-color:var(--line)}
header nav{gap:clamp(18px, 2vw, 30px);font:500 14.5px/1 var(--sans)}
header nav a{padding:6px 0;opacity:.88;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .45s var(--ease),opacity .3s var(--ease)}
header nav a:hover,header nav a[aria-current="page"]{opacity:1;background-size:100% 1px}
.hstack{flex-direction:column;align-items:flex-start;justify-content:center;gap:6px}
.hstack small{font:600 10.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;opacity:.6}
.hmeta em{font:italic 300 16px/1 var(--serif);letter-spacing:-.01em}
header .phone{font:600 14.5px/1 var(--sans);transition:opacity .3s var(--ease)}
header .phone:hover{opacity:.7}
.hcta{gap:12px;padding-right:0}
header .btn{height:44px;padding:0 20px;font-size:14px;background:var(--paper);color:var(--olive)}
header .btn:hover{background:var(--linen)}
header.scrolled .btn{background:var(--olive);color:var(--paper)}
header.scrolled .btn:hover{background:var(--moss)}
.menu-btn{display:none;width:44px;height:44px;border-radius:50%;border:1px solid rgba(247,244,239,.4);place-items:center;color:inherit}
header.scrolled .menu-btn{border-color:var(--line)}
.menu-btn span{position:relative;display:block;width:16px;height:1.5px;background:currentColor}
.menu-btn span::before,.menu-btn span::after{content:"";position:absolute;left:0;width:16px;height:1.5px;background:currentColor}
.menu-btn span::before{top:-5px} .menu-btn span::after{top:5px}
header.open{color:var(--paper);background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-color:var(--line-dark)}
header.open .hcell{border-color:var(--line-dark)}
header.open .menu-btn{border-color:rgba(247,244,239,.4)}
header.open .menu-btn span{background:transparent}
header.open .menu-btn span::before{top:0;transform:rotate(45deg)}
header.open .menu-btn span::after{top:0;transform:rotate(-45deg)}
header.open .btn{background:var(--paper);color:var(--olive)}
.mnav{position:fixed;inset:0;z-index:25;background:var(--olive);color:var(--paper);padding:calc(var(--hh) + 24px) var(--gutter) 32px;display:flex;flex-direction:column;overflow-y:auto}
.mnav[hidden]{display:none}
.mnav ul{list-style:none;border-top:1px solid var(--line-dark)}
.mnav li a{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid var(--line-dark);font:300 36px/1.1 var(--serif);letter-spacing:-.02em}
.mnav li a small{font:500 12px/1 var(--sans);color:var(--sage);letter-spacing:.1em}
.mnav-foot{margin-top:auto;padding-top:40px;display:flex;flex-direction:column;gap:18px;font-size:15px;color:var(--muted-dark)}
.mnav-foot a{color:var(--paper)}
.mnav-foot .btn{align-self:flex-start;background:var(--paper);color:var(--olive)}

/* Breadcrumbs */
.crumbs{display:flex;flex-wrap:wrap;gap:8px;list-style:none;font:500 13px/1.4 var(--sans);color:var(--gray)}
.crumbs li+li::before{content:"/";margin-right:8px;opacity:.5}
.crumbs a:hover{color:var(--ink)}
.crumbs [aria-current]{color:var(--ink)}

/* Light page title (inner pages without a photo hero) */
.ptitle{padding-top:calc(var(--hh) + clamp(56px, 7vw, 112px))}
.ptitle-grid{display:flex;justify-content:space-between;align-items:flex-end;gap:clamp(32px, 6vw, 96px);margin-top:clamp(36px, 4vw, 56px)}
.ptitle h1{font-size:clamp(48px, 7.4vw, 124px);line-height:.95;letter-spacing:-.045em;max-width:10.5em}
.ptitle h1 em{font-style:italic;color:var(--moss)}
.ptitle .lead{flex:0 1 420px;padding-bottom:.6em}

/* Dark photo hero (inner pages) */
.phero{position:relative;min-height:min(92svh, 920px);display:flex;align-items:flex-end;color:var(--paper);background:#1A1D16;overflow:hidden}
.phero>img{position:absolute;inset:0;opacity:.62}
.phero-pics{position:absolute;inset:0;display:flex;gap:6px}
.phero-pics img{flex:1;min-width:0;opacity:.6}
.phero-pics img:first-child{flex:1.35}
.phero::before{content:"";position:absolute;z-index:1;left:0;right:0;top:0;height:clamp(180px, 26vh, 260px);background:linear-gradient(to bottom, rgba(20,22,17,.72), rgba(20,22,17,0))}
.phero::after{content:"";position:absolute;z-index:1;left:0;right:0;bottom:0;height:72%;background:linear-gradient(to top, rgba(26,29,22,.92) 0%, rgba(26,29,22,.55) 50%, rgba(26,29,22,0) 100%)}
.phero-in{position:relative;z-index:2;width:100%;padding-top:calc(var(--hh) + 64px);padding-bottom:clamp(48px, 6vw, 88px);display:flex;justify-content:space-between;align-items:flex-end;gap:clamp(32px, 6vw, 96px)}
.phero .crumbs{color:rgba(247,244,239,.7);margin-bottom:28px}
.phero .crumbs a:hover,.phero .crumbs [aria-current]{color:var(--paper)}
.phero h1{font-size:clamp(46px, 6.4vw, 104px);line-height:.96;letter-spacing:-.04em;max-width:10em}
.phero h1 em{font-style:italic;color:var(--sage)}
.phero-side{flex:0 1 400px;display:flex;flex-direction:column;gap:22px}
.phero-side p{font-size:16px;line-height:1.6;color:rgba(247,244,239,.88)}
.phero-side .actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.phero-side .btn{height:48px;background:var(--paper);color:var(--olive)}
.phero-side .btn:hover{background:var(--linen)}
.phero-side .txt{color:var(--paper)}

/* Facts strip */
.facts{display:flex;list-style:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:clamp(48px, 6vw, 88px)}
.facts li{flex:1;padding:28px clamp(16px, 2vw, 32px) 30px;border-left:1px solid var(--line)}
.facts li:first-child{border-left:0;padding-left:0}
.facts b{display:block;font:300 clamp(36px, 3.6vw, 56px)/1 var(--serif);letter-spacing:-.03em;margin-bottom:10px}
.facts span{font-size:14px;color:var(--gray)}

/* Section head */
.shead{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:clamp(40px, 5vw, 64px)}
.section{padding-top:var(--space)}

/* Statement */
.statement{padding-top:var(--space);display:flex;gap:clamp(40px, 9vw, 160px)}
.statement .kicker{flex:0 0 180px;padding-top:16px;align-self:flex-start}
.statement p.big{font:300 clamp(28px, 3vw, 44px)/1.3 var(--serif);letter-spacing:-.02em;max-width:26em}

/* Split: text + photo */
.split{display:flex;gap:clamp(40px, 7vw, 120px);align-items:center}
.split.rev{flex-direction:row-reverse}
.split-text{flex:1;display:flex;flex-direction:column;gap:22px;max-width:560px}
.split-media{flex:0 0 50%;display:flex;gap:16px;align-items:flex-end}
.split-media .ph:first-child{flex:0 0 62%;aspect-ratio:3/4}
.split-media .ph:nth-child(2){flex:1;aspect-ratio:3/5;margin-bottom:12%}
.split-media .ph:only-child{flex:1;aspect-ratio:4/5}

/* Check list */
.checks{list-style:none;columns:2;column-gap:clamp(32px, 4vw, 64px)}
.checks li{break-inside:avoid;display:flex;gap:14px;padding:16px 0;border-top:1px solid var(--line)}
.checks li::before{content:"";flex:0 0 18px;height:18px;margin-top:4px;border-radius:50%;background:var(--olive) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M5.5 9.2l2.3 2.3 4.7-5' fill='none' stroke='%23F7F4EF' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat}
.checks b{display:block;font-weight:600}
.checks span{display:block;font-size:15px;color:var(--gray);line-height:1.55}

/* Image cards (3 columns) */
.cards{list-style:none;display:flex;gap:clamp(20px, 2.4vw, 36px)}
.cards>li{flex:1;min-width:0;display:flex;flex-direction:column;gap:16px}
.cards>li:nth-child(2){margin-top:clamp(40px, 6vw, 96px)}
.cards .ph{aspect-ratio:4/5}
.cards p{color:var(--gray);font-size:15.5px;max-width:42ch}
.cards .tag{font-size:13px;font-weight:600;color:var(--moss)}

/* Photo link cards (featured projects) */
.pcard{display:flex;flex-direction:column;gap:16px}
.pcard .ph{position:relative}
.pcard .ph img{transition:transform 1.2s var(--ease)}
.pcard:hover .ph img{transform:scale(1.035)}
.pcard .meta{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.pcard .meta span{font-size:14px;color:var(--gray);white-space:nowrap}
.pcard:hover h3{color:var(--moss)}
.more{display:inline-flex;align-items:center;gap:10px;font:600 14px/1 var(--sans)}
.more i{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-style:normal;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.pcard:hover .more i,.more:hover i{background:var(--olive);border-color:var(--olive);color:var(--paper)}

/* Project index */
.filters{display:flex;gap:8px;flex-wrap:wrap}
.filters button{font:600 14px/1 var(--sans);padding:11px 18px;border-radius:999px;border:1px solid var(--line);color:var(--gray)}
.filters button:hover{color:var(--ink);border-color:rgba(36,34,31,.3)}
.filters button.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.filters button sup{font-size:10px;margin-left:4px;opacity:.7}
.rows{list-style:none;border-top:1px solid var(--ink)}
.hide{display:none!important}
.rows li a{display:flex;align-items:center;gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}
.rows li a:hover .name{color:var(--moss)}
.rows .no{flex:0 0 44px;font-size:13px;color:var(--gray);font-variant-numeric:tabular-nums}
.rows .name{flex:1 1 34%;font:400 24px/1.2 var(--serif);letter-spacing:-.015em}
.rows .type{flex:0 0 16%;font-size:15px;color:var(--gray)}
.rows .where{flex:0 0 14%;font-size:15px;color:var(--gray)}
.rows .arrow{flex:0 0 32px;height:32px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center}
.rows li a:hover .arrow{background:var(--olive);border-color:var(--olive);color:var(--paper)}

/* Masonry gallery */
.masonry{columns:3;column-gap:clamp(14px, 1.6vw, 24px)}
.masonry>*{break-inside:avoid;margin-bottom:clamp(28px, 3vw, 44px)}
.tile{display:block;width:100%;text-align:left;cursor:zoom-in}
a.tile{cursor:pointer}
.tile .ph{position:relative;display:block}
.tile .ph img{height:auto;transition:transform 1.2s var(--ease)}
.tile:hover .ph img{transform:scale(1.035)}
.tile .zoom{position:absolute;right:12px;bottom:12px;width:36px;height:36px;border-radius:50%;background:rgba(247,244,239,.9);color:var(--ink);display:grid;place-items:center;opacity:0;transition:opacity .3s var(--ease)}
.tile:hover .zoom,.tile:focus-visible .zoom{opacity:1}
.tile .meta{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:14px}
.tile .meta h3{font:400 21px/1.25 var(--serif);letter-spacing:-.01em}
.tile:hover .meta h3{color:var(--moss)}
.tile .meta span{font-size:13px;color:var(--gray);white-space:nowrap}
.tile p{font-size:14.5px;line-height:1.55;color:var(--gray);margin-top:6px}
.tile .badge{position:absolute;left:12px;top:12px;font:600 12px/1 var(--sans);padding:8px 12px;border-radius:999px;background:var(--paper);color:var(--olive)}
.qtile{background:var(--olive);color:var(--paper);border-radius:var(--radius);padding:clamp(28px, 3vw, 40px)}
.qtile blockquote{font:300 clamp(21px, 1.7vw, 25px)/1.4 var(--serif);letter-spacing:-.01em}
.qtile cite{display:block;font:500 13px/1.5 var(--sans);font-style:normal;color:var(--sage);margin-top:22px}

/* Editorial gallery for project pages */
.pgal{display:grid;grid-template-columns:repeat(12, 1fr);gap:clamp(14px, 1.6vw, 24px);align-items:start}
.pgal .tile{grid-column:span 4}
.pgal .tile .ph{aspect-ratio:3/4}
.pgal .tile .ph img{height:100%}
.pgal .w7{grid-column:span 7} .pgal .w5{grid-column:span 5} .pgal .w6{grid-column:span 6} .pgal .w8{grid-column:span 8}
.pgal .w7 .ph{aspect-ratio:4/5} .pgal .w5 .ph{aspect-ratio:3/4}
.pgal .down{margin-top:clamp(40px, 8vw, 140px)}
.pgal .note{display:block;font-size:13px;line-height:1.5;color:var(--gray);margin-top:10px}
.pgal-break{margin:clamp(56px, 7vw, 112px) 0}

/* Specs */
.specs{display:flex;flex-wrap:wrap;list-style:none;border-top:1px solid var(--line)}
.specs li{flex:1 1 200px;padding:22px 24px 24px 0;border-bottom:1px solid var(--line)}
.specs b{display:block;font:600 12px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--moss);margin-bottom:8px}
.specs span{font:400 19px/1.35 var(--serif);letter-spacing:-.01em}

/* Story columns */
.story{display:flex;gap:clamp(32px, 5vw, 80px)}
.story>div{flex:1;border-top:1px solid var(--ink);padding-top:22px}
.story h3{margin-bottom:12px}
.story p{color:var(--gray);font-size:16px}

/* Material swatches */
.swatches{list-style:none;display:flex;flex-wrap:wrap;gap:clamp(20px, 3vw, 48px)}
.swatches li{display:flex;flex-direction:column;gap:14px;width:140px}
.swatches i{display:block;width:100%;aspect-ratio:1;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px rgba(36,34,31,.08)}
.swatches b{font:400 19px/1.2 var(--serif)}
.swatches span{font-size:13.5px;color:var(--gray);line-height:1.45;margin-top:-8px}

/* Next project */
.next{display:flex;align-items:center;gap:clamp(24px, 4vw, 64px);padding:clamp(40px, 5vw, 64px) 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}
.next .ph{flex:0 0 clamp(120px, 16vw, 240px);aspect-ratio:4/5}
.next small{display:block;font:600 12px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--moss);margin-bottom:14px}
.next strong{display:block;font:300 clamp(34px, 4.6vw, 72px)/1.02 var(--serif);letter-spacing:-.03em}
.next:hover strong{color:var(--moss)}
.next .arrow{margin-left:auto;flex:0 0 64px;height:64px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:22px;transition:background .3s var(--ease),color .3s var(--ease)}
.next:hover .arrow{background:var(--olive);color:var(--paper);border-color:var(--olive)}

/* Quotes */
.quotes{display:flex;list-style:none;border-top:1px solid var(--line)}
.quotes li{flex:1;padding:36px clamp(20px, 2.6vw, 44px) 0;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:22px}
.quotes li:first-child{border-left:0;padding-left:0}
.quotes li:last-child{padding-right:0}
.stars{color:var(--moss);letter-spacing:4px;font-size:14px}
.quotes blockquote{font:300 clamp(20px, 1.5vw, 23px)/1.45 var(--serif);letter-spacing:-.01em}
.quotes cite{margin-top:auto;font:600 14px/1.4 var(--sans);font-style:normal}
.quotes cite span{display:block;font-weight:400;color:var(--gray)}
.bigquote{max-width:1100px}
.bigquote blockquote{font:300 clamp(30px, 3.4vw, 52px)/1.2 var(--serif);letter-spacing:-.025em;margin-top:22px}
.bigquote cite{display:block;margin-top:28px;font:600 15px/1.4 var(--sans);font-style:normal}
.bigquote cite span{font-weight:400;color:var(--gray)}

/* Services */
.services{margin-top:var(--space);background:var(--linen);padding:var(--space) var(--gutter)}
.services-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:56px}
.svc{list-style:none;display:flex;flex-wrap:wrap;gap:16px}
.svc li{flex:1 1 calc(33.333% - 11px);min-width:230px;background:var(--paper);border-radius:var(--radius);padding:28px 26px 30px;display:flex;flex-direction:column;gap:10px}
.svc .n{font-size:13px;color:var(--moss);font-weight:600;margin-bottom:22px}
.svc p{color:var(--gray);font-size:15px;line-height:1.6}
.svc a.txt{margin-top:auto;align-self:flex-start;font-size:14px}
.band{background:var(--linen);margin-top:var(--space);padding:var(--space) var(--gutter)}

/* Process */
.process{padding-top:var(--space)}
.steps{list-style:none;display:flex;gap:40px;margin-top:56px;counter-reset:s}
.steps li{flex:1;counter-increment:s;padding-top:24px;border-top:1px solid var(--line);position:relative}
.steps li::before{content:"0" counter(s);display:block;font:300 40px/1 var(--serif);color:var(--sage);margin-bottom:18px}
.steps li::after{content:"";position:absolute;top:-1px;left:0;width:48px;height:1px;background:var(--ink)}
.steps p{color:var(--gray);font-size:15px;margin-top:8px;max-width:30ch}

/* FAQ */
.faq{padding-top:var(--space);display:flex;gap:clamp(40px, 9vw, 160px)}
.faq-side{flex:0 0 30%;display:flex;flex-direction:column;gap:20px}
.faq-list{flex:1}
details{border-top:1px solid var(--line)}
details:last-child{border-bottom:1px solid var(--line)}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0;font:400 22px/1.3 var(--serif);letter-spacing:-.01em}
summary::-webkit-details-marker{display:none}
summary:hover{color:var(--moss)}
.ico{position:relative;flex:0 0 36px;height:36px;border-radius:50%;border:1px solid var(--line);transition:background .4s var(--ease), border-color .4s var(--ease), transform .5s var(--ease)}
.ico::before,.ico::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:var(--ink);transform:translate(-50%,-50%);transition:transform .45s var(--ease), background .3s}
.ico::after{transform:translate(-50%,-50%) rotate(90deg)}
details[open] .ico{background:var(--olive);border-color:var(--olive);transform:rotate(180deg)}
details[open] .ico::before,details[open] .ico::after{background:var(--paper)}
details[open] .ico::after{transform:translate(-50%,-50%) rotate(0deg)}
.ans{overflow:hidden}
.ans p{color:var(--gray);max-width:56ch;font-size:16px;padding:0 60px 28px 0}

/* Contact block */
.contact{margin-top:var(--space);background:var(--olive);color:var(--paper);display:flex}
.contact-img{flex:0 0 38%;min-height:660px}
.contact-img img{border-radius:0}
.contact-body{flex:1;padding:clamp(56px, 7vw, 112px) var(--gutter);display:flex;flex-direction:column;gap:26px}
.contact .kicker{color:var(--sage)}
.contact h2{font-size:clamp(42px, 5vw, 76px);line-height:1.02}
.contact .lead{color:var(--muted-dark)}
form{display:flex;flex-wrap:wrap;gap:28px;margin-top:12px;max-width:720px}
.f{flex:1 1 calc(50% - 14px);display:flex;flex-direction:column;gap:8px;min-width:0}
.f.full{flex-basis:100%}
.f label,.f legend{font-size:13px;font-weight:600;color:var(--muted-dark)}
.f input,.f select,.f textarea{background:transparent;border:0;border-bottom:1px solid var(--line-dark);color:var(--paper);font:400 17px/1.4 var(--sans);padding:8px 0 12px;outline:0;border-radius:0}
.f select option{color:var(--ink)}
.f input:focus,.f textarea:focus,.f select:focus{border-color:var(--sage)}
.f textarea{min-height:88px;resize:vertical}
fieldset.f{border:0}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.chips label{position:relative}
.chips input{position:absolute;opacity:0;pointer-events:none}
.chips span{display:inline-block;font:600 14px/1 var(--sans);padding:11px 16px;border-radius:999px;border:1px solid var(--line-dark);color:var(--paper);cursor:pointer;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.chips span:hover{border-color:var(--sage)}
.chips input:checked+span{background:var(--paper);color:var(--olive);border-color:var(--paper)}
.chips input:focus-visible+span{outline:2px solid var(--sage);outline-offset:2px}
.form-foot{flex-basis:100%;display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.form-foot .btn{background:var(--paper);color:var(--olive)}
.form-foot .btn:hover{background:var(--linen)}
.form-foot small{font-size:14px;color:var(--muted-dark)}
.form-foot small a{color:var(--paper)}
.reach{display:flex;gap:48px;flex-wrap:wrap;margin-top:12px;padding-top:28px;border-top:1px solid var(--line-dark);font-size:15px}
.reach b{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);font-weight:600;margin-bottom:4px}

/* Lightbox */
.lb{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;border:0;padding:0;background:rgba(20,22,17,.96);color:var(--paper)}
.lb::backdrop{background:rgba(20,22,17,.96)}
.lb[open]{display:flex;flex-direction:column}
.lb-top{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px var(--gutter);font-size:14px;color:var(--muted-dark)}
.lb-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:0 clamp(64px, 8vw, 128px)}
.lb-stage img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius)}
.lb-cap{padding:18px var(--gutter) 26px;text-align:center;font:300 20px/1.4 var(--serif)}
.lb button{width:48px;height:48px;border-radius:50%;border:1px solid var(--line-dark);display:grid;place-items:center;color:var(--paper);font-size:20px;transition:background .3s var(--ease)}
.lb button:hover{background:rgba(247,244,239,.12)}
.lb-prev,.lb-next{position:absolute;top:50%;transform:translateY(-50%)}
.lb-prev{left:clamp(12px, 2vw, 32px)} .lb-next{right:clamp(12px, 2vw, 32px)}

/* Footer */
.foot{padding:clamp(72px, 8vw, 112px) var(--gutter) 0;overflow:hidden}
.foot-main{display:flex;justify-content:space-between;gap:clamp(40px, 6vw, 96px);flex-wrap:wrap}
.foot-brand{flex:0 1 420px;display:flex;flex-direction:column;gap:24px}
.foot-brand h2{font-size:clamp(30px, 2.8vw, 40px);line-height:1.15}
.foot-brand .btn{align-self:flex-start}
.foot-cols{display:flex;gap:clamp(40px, 6vw, 96px);flex-wrap:wrap}
.foot-cols h4{font:600 12px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--moss);margin-bottom:16px}
.foot-cols a,.foot-cols p{display:block;font-size:15px;line-height:2.1;color:var(--gray)}
.foot-cols a:hover{color:var(--ink)}
.areas{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:clamp(56px, 6vw, 80px);padding-top:28px;border-top:1px solid var(--line)}
.areas span{font-size:13px;color:var(--gray);margin-right:8px}
.areas ul{display:flex;gap:10px;flex-wrap:wrap}
.areas li{list-style:none;font:500 14px/1 var(--sans);padding:10px 16px;border-radius:999px;background:var(--linen)}
.foot-bot{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:28px 0 0;font-size:13px;color:var(--gray)}
.foot-bot a:hover{color:var(--ink)}
.foot-mark{display:block;width:100%;height:auto;margin-top:clamp(32px, 4vw, 56px);margin-bottom:-2%;fill:var(--stone);user-select:none}
.foot-mark text{font-family:var(--serif);font-weight:300;letter-spacing:-.04em}

@media (max-width: 1180px){
  .hcell.hmeta{display:none}
}
@media (max-width: 1100px){
  .masonry{columns:2}
}
@media (max-width: 900px){
  body{font-size:16px}
  header nav.hcell{display:none}
  header .btn{padding:0 18px}
  .menu-btn{display:grid}
  .ptitle-grid,.phero-in,.split,.split.rev,.story{flex-direction:column;align-items:flex-start}
  .ptitle .lead{flex:none}
  .phero-side{flex:none;max-width:460px}
  .split-media{flex:none;width:100%}
  .split-text{max-width:none}
  .cards{flex-direction:column;gap:48px}
  .cards>li:nth-child(2){margin-top:0}
  .cards>li:nth-child(even){width:86%;align-self:flex-end}
  .pgal .tile,.pgal .w5,.pgal .w7{grid-column:span 6}
  .pgal .w6,.pgal .w8{grid-column:span 12}
  .pgal .down{margin-top:0}
  .facts{flex-wrap:wrap}
  .facts li{flex:1 1 50%;border-left:0;padding-left:0}
  .facts li:nth-child(n+3){border-top:1px solid var(--line)}
  .quotes{flex-direction:column}
  .quotes li{border-left:0;padding:32px 0;border-bottom:1px solid var(--line)}
  .quotes li:first-child{padding-top:32px}
}
@media (max-width: 560px){
  header .btn,.hcell.hcall{display:none}
  .hcta{border-left:0}
  .logo{font-size:21px;gap:10px}
  .logo-mark{flex-basis:30px;height:30px;font-size:15px}
  :root{--hh:74px}
  .foot-brand{flex-basis:100%}
  .foot-cols{gap:32px 48px}
  .statement,.faq,.shead,.services-head{flex-direction:column;align-items:flex-start;gap:24px}
  .statement .kicker{flex:none;padding-top:0}
  .rows .type,.rows .where{display:none}
  .rows .name{font-size:20px}
  .svc li{flex-basis:100%;min-width:0;padding:22px}
  .svc .n{margin-bottom:8px}
  .steps{flex-direction:column;gap:32px}
  .faq-side{flex:none}
  .ans p{padding-right:0}
  .contact{flex-direction:column}
  .contact-img{min-height:0;aspect-ratio:4/3;flex:none}
  .f{flex-basis:100%}
  .checks{columns:1}
  .masonry{columns:1}
  .pgal{gap:10px}
  .pgal .tile,.pgal .w5,.pgal .w7,.pgal .w6,.pgal .w8{grid-column:span 12}
  .phero{min-height:88svh}
  .phero h1{font-size:44px}
  .phero-pics img:nth-child(3){display:none}
  .ptitle h1{font-size:50px}
  .swatches li{width:calc(50% - 10px)}
  .swatches i{width:96px}
  .next{flex-wrap:wrap}
  .next .arrow{display:none}
  .lb-stage{padding:0 12px}
  .lb-prev,.lb-next{top:auto;bottom:18px;transform:none}
}
@media (prefers-reduced-motion: reduce){
  .ico,.ico::before,.ico::after,.tile .ph img,.pcard .ph img{transition:none}
  .tile:hover .ph img,.pcard:hover .ph img{transform:none}
  html{scroll-behavior:auto}
}

/* Sticky side column (desktop only) */
@media (min-width: 901px){
  .sticky{position:sticky;top:calc(var(--hh) + 40px)}
}
.checks-side{flex:0 0 55%;columns:1;width:100%}
@media (max-width: 900px){ .checks-side{flex:none} }
