/* Artemis Cast Stone — static rebuild
   Design tokens carried over verbatim from the Claude Design canvas source
   (Artemis Gallery Redesign.dc.html): cream/near-black/terracotta palette,
   Cormorant Garamond + Outfit type, clamp()-based fluid spacing. */

:root{
  --page:#f5f2ed;
  --fg:#1a1a18;
  --dim:rgba(26,26,24,.58);
  --dim2:rgba(26,26,24,.45);
  --hair:rgba(26,26,24,.1);
  --hair2:rgba(26,26,24,.14);
  --accent:#b5622a;
  --accent-hover:#c97038;
  --accent-tint:#e3a06c;
  --accent-tint2:#e8a06c;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Outfit',sans-serif;
}

html,body{margin:0;padding:0;background:var(--page);-webkit-font-smoothing:antialiased;color:var(--fg);}
*{box-sizing:border-box}
body{font-family:var(--sans);}
em{font-style:italic}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-hover)}
img{max-width:100%;display:block}
button{font:inherit;cursor:pointer}
::selection{background:var(--accent);color:var(--page)}

/* ---------- keyframes (verbatim) ---------- */
@keyframes acsRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes acsFade{from{opacity:0}to{opacity:1}}
@keyframes acsMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes acsScrollBob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@keyframes acsReveal{from{clip-path:inset(0 0 100% 0);opacity:0}to{clip-path:inset(0 0 0% 0);opacity:1}}
@keyframes acsBreath{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
@keyframes acsHeroFade{from{opacity:0}to{opacity:1}}
@keyframes acsHeroZoom{from{transform:scale(1.08)}to{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){
  [data-marquee]{animation:none !important}
  [data-rise]{animation:acsFade 260ms both !important}
  [data-panel]{animation:acsFade 400ms both !important}
  [data-breath]{animation:none !important}
  [data-herozoom]{animation:acsHeroFade 400ms both !important}
}

/* ---------- utility ---------- */
.wrap{max-width:1720px;margin:0 auto}
.pad-x{padding-left:clamp(24px,4vw,56px);padding-right:clamp(24px,4vw,56px)}
.hair-top{border-top:1px solid var(--hair)}
.hair-bottom{border-bottom:1px solid var(--hair)}
.kicker{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.kicker .bar{width:26px;height:1px;background:var(--accent)}
.kicker .label{font:400 11px/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--accent)}
.eyebrow{font:400 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--dim2)}
.btn{display:inline-flex;align-items:center;gap:13px;padding:16px 26px;cursor:pointer;font:400 11.5px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;text-decoration:none;transition:background 200ms ease,border-color 200ms ease,color 200ms ease,transform 160ms cubic-bezier(.23,1,.32,1);border:1px solid transparent;background:none;}
.btn:active{transform:scale(.97)}
.btn-solid{background:var(--accent);color:var(--page)}
.btn-solid:hover{background:var(--accent-hover);color:var(--page)}
.btn-outline{border-color:rgba(26,26,24,.24);color:var(--fg)}
.btn-outline:hover{border-color:var(--accent);color:var(--accent)}
.btn-outline-light{border-color:rgba(245,242,237,.5);color:#f5f2ed}
.btn-outline-light:hover{border-color:var(--accent-tint);color:var(--accent-tint)}
.link-arrow{cursor:pointer;font:400 11px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);transition:color 200ms ease;background:none;border:none;padding:0}
.link-arrow:hover{color:var(--accent-hover)}
.placeholder-plate{position:relative;overflow:hidden;background:linear-gradient(144deg,#e6e0d6,#d6cec1)}
.placeholder-plate::after{content:"";position:absolute;inset:0;display:flex}
.placeholder-square{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.placeholder-square span{display:block;width:30px;height:30px;border:1px solid rgba(26,26,24,.16);transform:rotate(45deg)}
.h1{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(40px,6vw,84px);line-height:.98;letter-spacing:-.015em;color:var(--fg)}
.h2{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(30px,4.2vw,58px);line-height:1.02;color:var(--fg)}
.lede{max-width:52ch;margin:20px 0 0;font:300 15.5px/1.75 var(--sans);color:var(--dim)}
.grid-line{display:grid;gap:1px;background:var(--hair)}
.grid-line>*{background:#fff}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

/* ---------- app shell ---------- */
#app{min-height:100vh;width:100%;background:var(--page);font-family:var(--serif)}
#route-view{animation:acsFade 420ms both}

/* ---------- masthead ---------- */
.masthead{position:sticky;top:0;z-index:50;background:var(--page);border-bottom:1px solid var(--hair);display:flex;align-items:center;gap:clamp(18px,3vw,40px);padding:18px clamp(20px,4vw,56px);}
.brand{flex:0 0 auto;cursor:pointer;display:flex;align-items:center;gap:12px;background:none;border:none;padding:0}
.brand img{height:34px;width:auto}
.nav-main{flex:1;display:flex;align-items:center;justify-content:flex-end;gap:clamp(16px,2.6vw,34px)}
.rail{display:flex;align-items:center;gap:clamp(16px,2.4vw,30px)}
.rail-item{flex:0 0 auto;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:none;padding:0}
.rail-item .lbl{font:400 11.5px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;color:var(--dim);transition:color 260ms}
.rail-item .bar{width:100%;height:1px;background:transparent;transition:background 260ms}
.rail-item.active .lbl,.rail-item:hover .lbl{color:var(--accent)}
.rail-item.active .bar{background:var(--accent)}
.more-wrap{position:relative;flex:0 0 auto}
.more-btn{cursor:pointer;background:none;border:none;padding:0;display:flex;flex-direction:column;align-items:center;gap:6px}
.more-btn .row{display:flex;align-items:center;gap:5px}
.more-btn .lbl{font:400 11.5px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
.more-btn svg{transition:transform 240ms cubic-bezier(.23,1,.32,1)}
.more-btn.open svg{transform:rotate(180deg)}
.more-btn .bar{width:100%;height:1px;background:transparent;transition:background 260ms}
.more-btn.open .bar{background:var(--accent)}
.more-panel{position:absolute;right:0;top:100%;margin-top:16px;z-index:60;width:min(520px,92vw);background:var(--page);border:1px solid var(--hair);border-radius:20px;box-shadow:0 30px 70px rgba(0,0,0,.5);padding:32px 34px;animation:acsFade 200ms both}
.more-panel .head{display:flex;align-items:center;gap:16px;margin-bottom:26px}
.more-panel .head .t{font-family:var(--serif);font-weight:400;font-size:22px;color:var(--fg)}
.more-panel .head .line{flex:1;height:1px;background:var(--hair)}
.more-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 40px}
.more-grid button{cursor:pointer;background:none;border:none;padding:0;text-align:left;font:400 13px/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--fg);transition:color 200ms ease}
.more-grid button:hover{color:var(--accent)}
.more-cta{margin-top:26px;padding-top:22px;border-top:1px solid var(--hair)}
.more-cta button{width:100%;cursor:pointer;background:none;border:none;padding:0;display:flex;align-items:center;justify-content:space-between;gap:12px;font:400 13px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.more-cta button:hover{opacity:.7}
.icon-btn{flex:0 0 auto;cursor:pointer;background:none;border:none;padding:0;position:relative;transition:opacity 200ms ease;color:var(--fg);display:flex;align-items:center}
.icon-btn:hover{opacity:.65}
.cart-badge{position:absolute;top:-8px;right:-9px;min-width:16px;height:16px;padding:0 3px;border-radius:50%;background:var(--accent);color:var(--page);display:flex;align-items:center;justify-content:center;font:400 10px/1 var(--sans)}
.enquire-btn{flex:0 0 auto;cursor:pointer;padding:11px 18px;border:1px solid var(--hair2);font:400 11.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--fg);background:none;transition:border-color 200ms ease,color 200ms ease;white-space:nowrap}
.enquire-btn:hover{border-color:var(--accent);color:var(--accent)}
.menu-btn{flex:0 0 auto;cursor:pointer;width:38px;height:38px;border:1px solid var(--hair2);display:flex;align-items:center;justify-content:center;background:none;transition:border-color 200ms ease}
.menu-btn:hover{border-color:var(--accent)}
.menu-btn .bars{display:flex;flex-direction:column;gap:3px;width:15px}
.menu-btn .bars div{height:1px;width:100%;background:var(--fg)}
.menu-btn .bars div:last-child{background:var(--accent);width:70%}

/* search overlay */
.search-panel{position:absolute;left:0;right:0;top:100%;z-index:51;background:var(--page);border-bottom:1px solid var(--hair);box-shadow:0 28px 56px rgba(0,0,0,.3);padding:clamp(22px,3vw,36px) clamp(24px,4vw,56px);animation:acsFade 180ms both}
.search-panel input{width:100%;background:transparent;border:none;border-bottom:1px solid var(--hair);padding:10px 0;font-family:var(--serif);font-size:clamp(22px,2.6vw,32px);color:var(--fg);outline:none}
.search-results{margin-top:18px;display:flex;flex-direction:column;gap:2px;max-height:50vh;overflow:auto}
.search-result{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:11px 0;cursor:pointer;border-bottom:1px solid var(--hair);background:none;border-left:none;border-right:none;border-top:none;width:100%;text-align:left}
.search-result:hover{color:var(--accent)}
.search-result .name{font:400 15px/1.4 var(--sans);color:var(--fg)}
.search-result .meta{font:300 11.5px/1.5 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--dim2)}

/* contact flyout */
.contact-panel{position:absolute;left:0;right:0;top:100%;z-index:52;background:var(--page);border-bottom:1px solid var(--hair);box-shadow:0 28px 56px rgba(0,0,0,.3);padding:clamp(26px,3.4vw,44px) clamp(24px,4vw,56px);animation:acsFade 180ms both}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:clamp(20px,2.6vw,38px)}
.contact-col .col-h{font:400 10.5px/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--accent);padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--hair)}
.contact-link{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;text-decoration:none;transition:color 200ms ease}
.contact-link:hover{color:var(--accent)}
.contact-link .name{font-family:var(--serif);font-weight:400;font-size:19px;line-height:1.25;color:var(--fg)}
.contact-link .meta{font:300 10.5px/1.5 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--dim2);flex:0 0 auto}
.contact-place{display:block;margin-bottom:16px;text-decoration:none}
.contact-place .k{font:400 10.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--dim2);margin-bottom:8px}
.contact-place .v{white-space:pre-line;font:300 13.5px/1.7 var(--sans);color:var(--fg);transition:color 200ms ease}
.contact-place:hover .v{color:var(--accent)}
.social-row{display:flex;flex-wrap:wrap;gap:7px}
.social-chip{padding:9px 14px;border:1px solid var(--hair);font:300 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--fg);text-decoration:none;transition:border-color 200ms ease,color 200ms ease}
.social-chip:hover{border-color:var(--accent);color:var(--accent)}

/* mobile menu panel */
.menu-panel{position:absolute;left:0;right:0;top:100%;z-index:52;background:var(--page);border-bottom:1px solid var(--hair);box-shadow:0 28px 56px rgba(0,0,0,.3);padding:clamp(20px,3vw,32px) clamp(24px,4vw,56px);max-height:calc(100vh - 70px);overflow:auto;animation:acsFade 180ms both}
.menu-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:14px 0;cursor:pointer;border-bottom:1px solid var(--hair);background:none;border-left:none;border-right:none;border-top:none;width:100%;text-align:left}
.menu-row .name{font-family:var(--serif);font-weight:400;font-size:22px;line-height:1.2;color:var(--fg)}
.menu-row .plate{font:300 10.5px/1 var(--sans);letter-spacing:.16em;color:var(--dim2)}
.menu-contact{display:flex;flex-direction:column;gap:2px;padding-top:8px}
.menu-contact .contact-link{border-bottom:1px solid var(--hair)}
.menu-contact .name{font:400 12px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--fg)}

/* ---------- hero ---------- */
.hero{position:relative;height:clamp(560px,92vh,980px);overflow:hidden;background:#efeae0}
.hero-media{position:absolute;top:-10%;left:0;width:100%;height:120%}
.hero-media video,.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:acsHeroFade 1300ms ease both}
.hero-media img{animation:acsHeroFade 1300ms ease both,acsHeroZoom 2400ms cubic-bezier(.16,1,.3,1) both}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,9,.58) 0%,rgba(10,10,9,.22) 14%,rgba(10,10,9,0) 24%,rgba(10,10,9,0) 42%,rgba(10,10,9,.48) 76%,rgba(10,10,9,.72) 100%)}
.hero-copy{position:absolute;left:clamp(24px,4vw,56px);bottom:clamp(64px,7.4vw,100px);max-width:min(640px,84vw)}
.hero-eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:18px;animation:acsRise 620ms cubic-bezier(.23,1,.32,1) 500ms both}
.hero-eyebrow .bar{width:26px;height:1px;background:var(--accent-tint)}
.hero-eyebrow .lbl{font:400 11px/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--accent-tint)}
.hero h1{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(38px,6.2vw,92px);line-height:1.02;letter-spacing:-.015em;color:#f5f2ed;animation:acsRise 680ms cubic-bezier(.23,1,.32,1) 620ms both}
.hero h1 em{font-weight:400;color:var(--accent-tint)}
.hero p{max-width:42ch;margin:22px 0 0;font:300 17px/1.65 var(--sans);color:rgba(245,242,237,.85);animation:acsRise 680ms cubic-bezier(.23,1,.32,1) 740ms both}
.hero-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px;animation:acsRise 680ms cubic-bezier(.23,1,.32,1) 860ms both}
.hero-scroll{position:absolute;right:clamp(24px,4vw,56px);bottom:clamp(28px,3.6vw,44px)}
.hero-scroll-inner{display:flex;flex-direction:column;align-items:center;gap:8px}
.hero-scroll .lbl{font:300 10px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:rgba(245,242,237,.72)}
.hero-scroll .line{width:1px;height:26px;background:linear-gradient(180deg,rgba(245,242,237,.78),transparent)}
.hero-scroll svg{animation:acsScrollBob 1.8s ease-in-out infinite}

/* marquee */
.marquee-wrap{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:16px 0;overflow:hidden;position:relative;mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%)}
.marquee-track{display:flex;width:max-content;animation:acsMarquee 52s linear infinite}
.marquee-group{display:flex;align-items:center;gap:38px;padding-right:38px}
.marquee-item{font:300 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;color:rgba(26,26,24,.52)}

/* about / vision */
.split{padding:clamp(48px,6vw,90px) clamp(24px,4vw,56px);display:flex;flex-wrap:wrap;align-items:stretch;gap:clamp(32px,5vw,72px)}
.split-media{flex:1 1 360px;min-width:280px;display:flex}
.split-media img{width:100%;height:100%;object-fit:cover;min-height:280px}
.split-media.vision-photo{align-self:flex-start}
.split-media.vision-photo img{height:auto;aspect-ratio:3/2;object-fit:cover;object-position:50% 79%}
.split-text{flex:1 1 420px;min-width:280px}
.split-text h2{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(32px,4.4vw,56px);line-height:1.05;color:var(--fg)}
.split-text h2 em{color:var(--accent)}
.split-text .body{margin-top:22px;display:flex;flex-direction:column;gap:22px}
.split-text .body p{margin:0;font:300 17px/1.75 var(--sans);color:var(--dim)}
.split-text .body p.sm{font:300 15px/1.75 var(--sans);color:rgba(26,26,24,.58)}
.rule{height:1px;background:var(--hair)}

.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--hair)}
.pillar{background:#fff;padding:clamp(26px,3vw,34px) clamp(22px,2.6vw,30px)}
.pillar .no{font:400 11px/1 var(--sans);letter-spacing:.2em;color:var(--accent);margin-bottom:14px}
.pillar .t{font-family:var(--serif);font-weight:400;font-size:22px;line-height:1.2;color:var(--fg)}
.pillar .d{margin-top:11px;font:300 13.5px/1.7 var(--sans);color:rgba(26,26,24,.55)}

/* advantages */
.section{padding:clamp(40px,5vw,72px) clamp(24px,4vw,56px)}
.section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:clamp(32px,4vw,48px)}
.section-head h2{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(30px,4.2vw,58px);line-height:1.02;color:var(--fg)}
.section-head h2 em{color:var(--accent)}
.section-head .tag{font:300 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:rgba(26,26,24,.38)}
.adv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));column-gap:clamp(32px,4vw,64px)}
.adv-item{border-top:1px solid var(--hair2);padding:22px 0;display:flex;gap:20px}
.adv-item .no{flex:0 0 auto;font:400 12px/1.4 var(--sans);letter-spacing:.1em;color:var(--accent);padding-top:3px}
.adv-item .t{font-family:var(--serif);font-weight:400;font-size:21px;line-height:1.2;color:var(--fg)}
.adv-item .d{margin-top:8px;font:300 13.5px/1.65 var(--sans);color:rgba(26,26,24,.55)}

/* craft strip */
.craft-banner{border-top:1px solid var(--hair);display:flex;flex-wrap:wrap-reverse;align-items:center;gap:clamp(32px,5vw,72px);padding:clamp(48px,6vw,90px) clamp(24px,4vw,56px)}
.craft-banner .text{flex:1 1 420px;min-width:280px}
.craft-banner .text h2{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(30px,4.2vw,58px);line-height:1.05;color:var(--fg)}
.craft-banner .text h2 em{color:var(--accent)}
.craft-banner .text p{max-width:44ch;margin:20px 0 0;font:300 16px/1.75 var(--sans);color:rgba(26,26,24,.6)}
.craft-grid{flex:3 1 760px;min-width:280px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.craft-tile{position:relative;aspect-ratio:3/4.4;overflow:hidden;background:#efeae0}
.craft-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* disciplines */
.disc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1px;background:var(--hair)}
.disc-item{background:#fff;padding:26px 22px 30px;cursor:pointer;display:flex;flex-direction:column;gap:16px;transition:background 220ms ease,transform 220ms cubic-bezier(.23,1,.32,1),box-shadow 220ms ease;border:none;text-align:left;font-family:inherit}
.disc-item:hover{background:#f2efe9;transform:translateY(-6px);box-shadow:0 24px 48px rgba(0,0,0,.15)}
.disc-item:active{transform:scale(.985)}
.disc-item .top{display:flex;align-items:baseline;justify-content:space-between}
.disc-item .no{font:400 11px/1 var(--sans);letter-spacing:.2em;color:var(--accent)}
.disc-item .arrow{font-size:15px;color:rgba(26,26,24,.3)}
.disc-item .name{font-family:var(--serif);font-weight:400;font-size:26px;line-height:1.1;color:var(--fg)}
.disc-item .meta{margin-top:9px;font:300 13px/1.6 var(--sans);color:rgba(26,26,24,.46)}
.plate-sm{position:relative;aspect-ratio:5/4;background:linear-gradient(140deg,#ece7dc,#ddd6c8);border:1px solid rgba(26,26,24,.07)}

/* material teaser */
.mat-split{display:flex;flex-wrap:wrap;gap:clamp(28px,4vw,64px)}
.mat-figs{flex:1 1 320px;min-width:260px;align-self:center;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair)}
.mat-figs .fig{background:#fff;padding:20px 18px}
.mat-figs .fig .v{font-family:var(--serif);font-weight:400;font-size:21px;line-height:1.15;color:var(--fg)}
.mat-figs .fig .l{margin-top:9px;font:300 10.5px/1.5 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:rgba(26,26,24,.44)}

/* colour band */
.colour-band{display:flex;height:clamp(120px,15vw,180px);width:100%}
.colour-swatch{flex:1 1 0;min-width:0;position:relative;overflow:hidden;cursor:pointer;transition:opacity 200ms ease,transform 220ms cubic-bezier(.23,1,.32,1);border:none;padding:0}
.colour-swatch:hover{opacity:.84;transform:scaleY(1.06)}
.colour-swatch:active{transform:scale(.97)}
.colour-swatch .lbl{position:absolute;left:7px;bottom:9px;writing-mode:vertical-rl;transform:rotate(180deg);font:400 10px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}

/* figures */
.figs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:30px}
.figs-grid .v{font-family:var(--serif);font-weight:300;font-size:clamp(34px,4vw,52px);line-height:1;color:var(--fg)}
.figs-grid .l{margin-top:11px;font:300 11px/1.5 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:rgba(26,26,24,.42)}

/* work / press teaser cards */
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1px;background:var(--hair)}
.work-card{background:#fff;cursor:pointer;transition:background 220ms ease,transform 220ms cubic-bezier(.23,1,.32,1),box-shadow 220ms ease;border:none;text-align:left;font-family:inherit;padding:0}
.work-card:hover{background:#f2efe9;transform:translateY(-6px);box-shadow:0 24px 48px rgba(0,0,0,.15)}
.work-card:active{transform:scale(.985)}
.work-plate{position:relative;aspect-ratio:4/3;background:linear-gradient(144deg,#e6e0d6,#d6cec1);overflow:hidden}
.work-body{padding:20px 20px 24px}
.work-cat{font:400 10.5px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
.work-name{margin-top:12px;font-family:var(--serif);font-weight:400;font-size:23px;line-height:1.14;color:var(--fg)}
.work-loc{margin-top:8px;font:300 12px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:rgba(26,26,24,.44)}

.press-card{background:#fff;cursor:pointer;display:flex;gap:16px;padding:20px;transition:background 220ms ease;border:none;text-align:left;font-family:inherit}
.press-card:hover{background:#f2efe9}
.press-thumb{flex:0 0 70px;position:relative;aspect-ratio:3/4;overflow:hidden;background:#eee8de}
.press-thumb img{width:100%;height:100%;object-fit:cover}
.press-pub{font:400 10.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.press-title{margin-top:9px;font-family:var(--serif);font-weight:400;font-size:19px;line-height:1.2;color:var(--fg)}

/* process */
.proc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;background:var(--hair)}
.proc-item{background:#fff;padding:24px 20px 28px}
.proc-item .no{font:400 11px/1 var(--sans);letter-spacing:.2em;color:var(--accent);margin-bottom:16px}
.proc-item .t{font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.2;color:var(--fg)}
.proc-item .d{margin-top:11px;font:300 13.5px/1.75 var(--sans);color:rgba(26,26,24,.5)}

/* instagram grid */
.ig-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(6px,1vw,12px)}
.ig-tile{aspect-ratio:1/1;background:linear-gradient(144deg,#e6e0d6,#d6cec1);position:relative;overflow:hidden}

/* closing cta */
.cta-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}
.cta-row h2{margin:0;max-width:20ch;font-family:var(--serif);font-weight:300;font-size:clamp(26px,3.2vw,42px);line-height:1.08;color:var(--fg)}
.cta-row h2 em{color:var(--accent)}
.cta-row .btns{display:flex;flex-wrap:wrap;gap:10px}

/* ---------- collection ---------- */
.coll-head{padding:clamp(34px,5vw,68px) clamp(24px,4vw,56px) clamp(26px,3vw,38px);border-bottom:1px solid var(--hair2)}
.coll-head-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:26px}
.coll-head-row h1{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(36px,5.4vw,76px);line-height:.98;letter-spacing:-.015em;color:var(--fg)}
.coll-head-row p{max-width:36ch;margin:0;font:300 15px/1.7 var(--sans);color:rgba(26,26,24,.6)}
.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:clamp(22px,2.8vw,32px)}
.group-chip{display:flex;align-items:baseline;gap:9px;padding:12px 17px;cursor:pointer;border:1px solid var(--hair2);background:none;transition:color 200ms ease,border-color 200ms ease,background 200ms ease,transform 160ms cubic-bezier(.23,1,.32,1);font-family:inherit}
.group-chip:active{transform:scale(.97)}
.group-chip.active{border-color:var(--accent);background:rgba(181,98,42,.08);color:var(--accent)}
.group-chip .name{font:400 11.5px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase}
.group-chip .n{font:300 10.5px/1 var(--sans);letter-spacing:.1em;opacity:.6;margin-left:6px}
.group-chip.dashed{border-style:dashed;border-color:rgba(26,26,24,.32);color:var(--accent)}
.group-chip.dashed:hover{border-color:var(--accent);background:rgba(181,98,42,.06)}
.cat-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:clamp(22px,2.6vw,30px);padding-top:clamp(18px,2.2vw,26px);border-top:1px solid var(--hair)}
.cat-chips{display:flex;flex-wrap:wrap;gap:8px}
.cat-chip{display:flex;align-items:baseline;gap:7px;padding:9px 15px;cursor:pointer;border:1px solid var(--hair2);background:none;font-family:inherit;transition:border-color 200ms ease,background 200ms ease,color 200ms ease}
.cat-chip.active{border-color:var(--accent);color:var(--accent);background:rgba(181,98,42,.06)}
.cat-chip .name{font:400 12px/1 var(--sans);letter-spacing:.05em}
.cat-chip .n{font:300 11px/1 var(--sans);letter-spacing:.06em;margin-left:6px;color:rgba(26,26,24,.4)}
.tray-count{font:300 13px/1.5 var(--sans);color:rgba(26,26,24,.45);white-space:nowrap}

.coll-body{background:var(--page);padding:clamp(28px,3.4vw,44px) clamp(24px,4vw,56px) clamp(50px,6vw,88px)}
.prod-grid{display:grid;gap:clamp(20px,2.6vw,36px)}
.prod-card{cursor:pointer;display:flex;flex-direction:column;gap:13px;transition:opacity 200ms ease,transform 160ms cubic-bezier(.23,1,.32,1);border:none;background:none;padding:0;text-align:left;font-family:inherit}
.prod-card:hover{opacity:.86}
.prod-card:active{transform:scale(.985)}
.prod-plate{position:relative;aspect-ratio:4/5;background:linear-gradient(150deg,#e6e0d6,#d6cec1);border:1px solid var(--hair)}
.prod-plate img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.prod-code{position:absolute;left:10px;top:9px;font:400 10px/1 var(--sans);letter-spacing:.18em;color:rgba(26,26,24,.4);text-shadow:0 1px 3px rgba(255,255,255,.6)}
.prod-sizes-tag{position:absolute;left:10px;bottom:9px;font:400 10px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:rgba(26,26,24,.38)}
.prod-cat{font:400 10px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.prod-name{font-family:var(--serif);font-weight:400;font-size:22px;line-height:1.14;color:var(--fg)}
.prod-desc{margin-top:9px;font:300 13.5px/1.7 var(--sans);color:rgba(26,26,24,.6)}
.prod-micro{display:flex;flex-wrap:wrap;gap:0 14px;margin-top:10px;padding-top:9px;border-top:1px solid var(--hair);font:300 11.5px/1.7 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:rgba(26,26,24,.5)}

/* ---------- product detail ---------- */
.back-link{padding:22px clamp(24px,4vw,56px);border-bottom:1px solid var(--hair);cursor:pointer;display:flex;align-items:center;gap:9px;font:400 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:rgba(26,26,24,.5);transition:color 200ms ease;background:none;border-left:none;border-right:none;border-top:none;width:100%;text-align:left}
.back-link:hover{color:var(--accent)}
.pdp{display:flex;flex-wrap:wrap;align-items:stretch;gap:1px;background:var(--hair)}
.pdp-media{flex:1 1 400px;min-width:300px;background:#fff;padding:clamp(26px,3.4vw,48px)}
.pdp-photo{position:relative;aspect-ratio:1/1;border:1px solid var(--hair);transition:background 420ms cubic-bezier(.4,0,.2,1);overflow:hidden}
.pdp-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pdp-photo .code-tag{position:absolute;left:0;top:0;padding:10px 12px;font:400 10px/1 var(--sans);letter-spacing:.18em;color:rgba(26,26,24,.6);z-index:2}
.pdp-photo .cap-tag{position:absolute;right:12px;bottom:11px;font:400 10.5px/1.6 var(--sans);letter-spacing:.16em;text-transform:uppercase;text-align:right;color:rgba(26,26,24,.55);z-index:2}
.pdp-photo .plate-tag{position:absolute;left:0;bottom:0;right:0;padding:10px 12px;font:400 10px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:rgba(26,26,24,.45);z-index:2}
.pdp-nav-btn{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:rgba(8,8,7,.5);border:1px solid rgba(26,26,24,.2);color:#fff;font:400 17px/1 var(--sans);transition:background 200ms ease,transform 160ms cubic-bezier(.23,1,.32,1);z-index:3}
.pdp-nav-btn:hover{background:rgba(181,98,42,.6)}
.pdp-nav-btn:active{transform:translateY(-50%) scale(.9)}
.pdp-nav-btn.prev{left:14px}
.pdp-nav-btn.next{right:14px}
.pdp-info{flex:1 1 380px;min-width:300px;background:var(--page);padding:clamp(28px,3.4vw,48px)}
.pdp-top{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.pdp-cat{font:400 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--accent)}
.pdp-code{font:400 11px/1 var(--sans);letter-spacing:.18em;color:rgba(26,26,24,.45)}
.pdp-info h1{margin:14px 0 0;font-family:var(--serif);font-weight:300;font-size:clamp(36px,4.6vw,60px);line-height:1.02;letter-spacing:-.014em;color:var(--fg)}
.pdp-info .desc{max-width:42ch;margin:20px 0 0;font:300 16px/1.75 var(--sans);color:rgba(26,26,24,.66)}
.field-label{font:400 10.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:rgba(26,26,24,.42);margin-bottom:13px}
.field-block{margin-top:28px}
.size-select{position:relative;max-width:280px}
.size-select-btn{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:var(--page);border:1px solid var(--hair2);width:100%;font:400 14px/1.4 var(--sans);color:var(--fg)}
.size-dropdown{position:absolute;left:0;right:0;top:100%;z-index:10;max-height:260px;overflow-y:auto;background:var(--page);border:1px solid var(--hair2);border-top:none;box-shadow:0 14px 28px rgba(26,26,24,.14)}
.size-opt{cursor:pointer;padding:12px 16px;background:none;border:none;width:100%;text-align:left;font:400 14px/1.4 var(--sans);color:var(--fg);transition:background 150ms ease}
.size-opt:hover{background:#e7e2d8}
.size-opt.active{background:#e7e2d8;font-weight:500}
.stat-boxes{display:flex;flex-wrap:wrap;gap:1px;margin-top:28px;background:var(--hair2)}
.stat-box{flex:1 1 110px;background:var(--page);padding:14px 15px}
.stat-box .k{font:300 10px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:rgba(26,26,24,.45)}
.stat-box .v{margin-top:8px;font:400 15px/1.3 var(--sans);color:var(--fg)}
.finish-row{display:flex;flex-wrap:wrap;gap:8px}
.finish-chip{padding:11px 17px;cursor:pointer;border:1px solid var(--hair2);background:none;color:var(--fg);font:400 12.5px/1 var(--sans);letter-spacing:.14em;transition:all 200ms}
.finish-chip.active{border-color:var(--accent);color:var(--accent);background:rgba(181,98,42,.06)}
.colour-head-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:13px}
.colour-head-row .name{font:300 12px/1 var(--sans);color:rgba(26,26,24,.6)}
.colour-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:5px}
.colour-swatch-sm{aspect-ratio:1/1;cursor:pointer;outline-offset:2px;transition:outline 180ms;border:none;padding:0}
.pdp-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:32px}
.pdp-actions>*{flex:1 1 140px;padding:16px 22px;display:flex;align-items:center;justify-content:center;text-align:center}
.cad-block{margin-top:32px;padding-top:28px;border-top:1px solid var(--hair2)}
.cad-frame{display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--hair2);padding:clamp(20px,2.4vw,32px)}
.cad-frame img{width:100%;max-width:340px;height:auto;object-fit:contain}
.cad-dims{margin-top:14px;display:flex;flex-wrap:wrap;gap:18px}
.cad-dims .lbl{font:400 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:rgba(26,26,24,.42)}
.cad-dims .val{font:400 14px/1.4 var(--sans);color:var(--fg)}
.pdp-related{background:#fff;padding:clamp(34px,4vw,60px) clamp(24px,4vw,56px)}
.related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:20px}
.related-card{cursor:pointer;border:none;background:none;padding:0;text-align:left;font-family:inherit;transition:opacity 200ms ease,transform 160ms cubic-bezier(.23,1,.32,1)}
.related-card:hover{opacity:.82}
.related-plate{position:relative;aspect-ratio:4/5;background:linear-gradient(146deg,#ece7dc,#ddd6c8);border:1px solid rgba(26,26,24,.08)}
.related-plate img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.related-name{margin-top:11px;font-family:var(--serif);font-size:19px;line-height:1.2;color:var(--fg)}
.related-meta{margin-top:6px;font:300 11px/1.5 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:rgba(26,26,24,.46)}

/* ---------- projects ---------- */
.spotlight{position:relative;aspect-ratio:20/9;cursor:pointer;overflow:hidden;background:linear-gradient(144deg,#e6e0d6,#d6cec1)}
.spotlight-scrim{position:absolute;inset:0;background:linear-gradient(100deg,rgba(26,26,24,.68) 0%,rgba(26,26,24,.2) 52%,transparent 74%);pointer-events:none}
.spotlight-copy{position:absolute;left:clamp(18px,3vw,32px);bottom:clamp(16px,2.4vw,26px);right:64px;pointer-events:none}
.spotlight-copy .tag{font:400 10.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--accent-tint2);margin-bottom:8px}
.spotlight-copy .t{font-family:var(--serif);font-weight:300;font-size:clamp(19px,2.5vw,30px);line-height:1.1;color:#f5f2ed}
.spotlight-copy .lede{margin-top:7px;max-width:520px;font:300 12.5px/1.55 var(--sans);color:rgba(245,242,237,.8)}
.spotlight-badge{position:absolute;top:12px;right:12px;padding:8px 14px;border-radius:999px;background:rgba(245,242,237,.94);font:400 10.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#1a1a18}
.inspo-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:96px;grid-auto-flow:dense;gap:6px}
.inspo-tile{position:relative;background:linear-gradient(150deg,#e6e0d6,#d6cec1);overflow:hidden;cursor:pointer}
.inspo-tag{position:absolute;inset:0;display:flex;align-items:flex-end;padding:9px;background:linear-gradient(to top,rgba(26,26,24,.6),transparent 55%);opacity:0;transition:opacity 220ms ease;pointer-events:none;font:400 10px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#f5f2ed}
.inspo-tile:hover .inspo-tag{opacity:1}
.client-chip{padding:8px 13px;border:1px solid rgba(26,26,24,.15);font:300 12.5px/1 var(--sans);letter-spacing:.06em;color:rgba(26,26,24,.62)}
.client-row{display:flex;flex-wrap:wrap;gap:8px 10px;max-width:900px}

.lightbox{position:fixed;inset:0;background:rgba(20,18,15,.92);z-index:9999;display:flex;align-items:center;justify-content:center;padding:44px;animation:acsFade 200ms ease both}
.lightbox-inner{position:relative;max-width:min(1100px,92vw);max-height:84vh}
.lightbox-inner img{display:block;max-width:100%;max-height:84vh;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.lightbox-tag{position:absolute;left:2px;bottom:-34px;font:400 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#f5f2ed}
.lightbox-close{position:absolute;top:-42px;right:0;width:32px;height:32px;border:1px solid rgba(245,242,237,.4);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#f5f2ed;cursor:pointer;font:300 15px/1 var(--sans);background:none}
.lightbox-close:hover{background:rgba(245,242,237,.14)}

/* ---------- case study ---------- */
.case-hero{position:relative;aspect-ratio:21/9;min-height:260px;background:linear-gradient(160deg,#ece7dc,#ddd6c8);border-bottom:1px solid var(--hair)}
.case-hero-copy{position:absolute;left:clamp(20px,4vw,50px);bottom:clamp(20px,3vw,40px);right:clamp(20px,4vw,50px)}
.case-hero-copy h1{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(34px,5.6vw,78px);line-height:1;letter-spacing:-.015em;color:var(--fg)}
.case-hero-copy h1 em{color:rgba(26,26,24,.62)}
.case-facts{display:flex;flex-wrap:wrap;gap:1px;background:var(--hair)}
.case-fact{flex:1 1 170px;background:#fff;padding:24px 22px}
.case-fact .k{font:400 10.5px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:rgba(26,26,24,.4)}
.case-fact .v{margin-top:11px;font-family:var(--serif);font-weight:400;font-size:21px;line-height:1.25;color:var(--fg)}
.case-brief{display:flex;flex-wrap:wrap;gap:clamp(28px,4vw,64px);padding:clamp(40px,5vw,80px) clamp(24px,4vw,56px);border-top:1px solid var(--hair)}
.case-brief-label{flex:0 1 220px;min-width:170px;font:400 10.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--accent)}
.case-brief-body{flex:1 1 380px;min-width:280px}
.case-lede{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(21px,2.3vw,30px);line-height:1.44;color:rgba(26,26,24,.92)}
.case-brief-body p.more{margin:22px 0 0;font:300 16px/1.85 var(--sans);color:rgba(26,26,24,.6)}
.case-plates{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1px;background:var(--hair);border-top:1px solid var(--hair)}
.case-plate{position:relative;aspect-ratio:3/4;background:linear-gradient(148deg,#e6e0d6,#d6cec1)}
.case-plate .cap{position:absolute;left:14px;bottom:13px;right:14px;font:400 10.5px/1.6 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:rgba(26,26,24,.42)}
.case-next{border-top:1px solid var(--hair);padding:clamp(34px,4vw,62px) clamp(24px,4vw,56px);display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:18px;cursor:pointer;transition:background 200ms ease;border-left:none;border-right:none;border-bottom:none;width:100%;background:none;text-align:left;font-family:inherit}
.case-next:hover{background:#efe9de}
.case-next .lbl{font:400 10.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:rgba(26,26,24,.4);margin-bottom:14px}
.case-next .t{font-family:var(--serif);font-weight:300;font-size:clamp(28px,3.6vw,48px);line-height:1.04;color:var(--fg)}
.case-cta{border-top:1px solid var(--hair);padding:clamp(30px,3.6vw,48px) clamp(24px,4vw,56px);display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:18px}
.case-cta .t{font-family:var(--serif);font-weight:300;font-size:clamp(20px,2.4vw,28px);color:var(--fg)}
.case-cta .t em{color:var(--accent)}
.case-cta .d{margin-top:8px;max-width:44ch;font:300 14px/1.7 var(--sans);color:rgba(26,26,24,.5)}

/* ---------- catalogues / downloads ---------- */
.cat-list-row{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(14px,2.4vw,34px);padding:clamp(18px,2.2vw,26px) clamp(24px,4vw,56px);border-bottom:1px solid rgba(26,26,24,.09);text-decoration:none;transition:background 200ms ease}
.cat-list-row:hover{background:#f2efe9}
.cat-list-row .no{flex:0 0 34px;font:400 11px/1 var(--sans);letter-spacing:.14em;color:rgba(26,26,24,.38)}
.cat-list-row .name{font-family:var(--serif);font-weight:400;font-size:clamp(23px,2.7vw,32px);line-height:1.1;color:var(--fg)}
.cat-list-row .meta{margin-top:7px;font:300 13px/1.5 var(--sans);color:rgba(26,26,24,.52)}
.cat-list-row .kind{flex:0 1 110px;font:300 11.5px/1.5 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:rgba(26,26,24,.48)}
.cat-list-row .dl{flex:0 0 26px;text-align:right;font-size:16px;color:rgba(26,26,24,.35)}
.split-cta{padding:clamp(34px,4vw,58px) clamp(24px,4vw,56px);display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:18px}
.split-cta .d{max-width:38ch;font:300 14.5px/1.8 var(--sans);color:rgba(26,26,24,.52)}
.split-cta2{border-top:1px solid var(--hair);padding:clamp(30px,3.6vw,48px) clamp(24px,4vw,56px);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px}
.split-cta2 .t{font-family:var(--serif);font-weight:300;font-size:clamp(20px,2.4vw,28px);color:var(--fg)}
.split-cta2 .t em{color:var(--accent)}
.split-cta2 .d{margin-top:8px;max-width:44ch;font:300 14px/1.7 var(--sans);color:rgba(26,26,24,.5)}

/* ---------- press ---------- */
.press-grid-card{background:#fff;display:flex;flex-direction:column}
.press-grid-photo{position:relative;aspect-ratio:3/4;overflow:hidden;background:#eee8de}
.press-grid-photo img{width:100%;height:100%;object-fit:cover}
.press-grid-body{padding:20px 20px 26px;display:flex;flex-direction:column;gap:12px;flex:1 1 auto}
.press-grid-title{font-family:var(--serif);font-weight:400;font-size:21px;line-height:1.18;color:var(--fg)}
.press-grid-quote{margin-top:auto;padding-top:10px;border-top:1px solid var(--hair);font-family:var(--serif);font-weight:300;font-style:italic;font-size:15px;line-height:1.55;color:rgba(26,26,24,.62)}
.exhibit-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:clamp(14px,2.4vw,30px);padding:clamp(16px,2vw,22px) clamp(24px,4vw,56px);border-bottom:1px solid rgba(26,26,24,.09)}
.exhibit-row .year{flex:0 0 56px;font:400 12px/1 var(--sans);letter-spacing:.1em;color:rgba(26,26,24,.4)}
.exhibit-row .name{flex:0 1 260px;min-width:180px;font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.2;color:var(--fg)}
.exhibit-row .loc{flex:0 1 200px;min-width:150px;font:300 12px/1.5 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:rgba(26,26,24,.48)}
.exhibit-row .note{flex:1 1 220px;min-width:200px;font:300 13.5px/1.6 var(--sans);color:rgba(26,26,24,.55)}

/* ---------- material ---------- */
.mat-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--hair)}
.mat-stats .cell{background:#fff;padding:22px 20px}
.mat-stats .v{font-family:var(--serif);font-weight:400;font-size:23px;line-height:1.15;color:var(--fg)}
.mat-stats .l{margin-top:9px;font:300 10.5px/1.5 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:rgba(26,26,24,.48)}
.mat-cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(28px,3.4vw,48px)}
.mat-cat .no{font:400 11px/1 var(--sans);letter-spacing:.2em;color:var(--accent);margin-bottom:14px}
.mat-cat .h{font-family:var(--serif);font-weight:400;font-size:26px;line-height:1.14;color:var(--fg)}
.mat-cat .h em{color:var(--accent)}
.mat-cat .bullets{margin-top:16px;display:flex;flex-direction:column;gap:9px}
.mat-cat .bullet{font:300 13.5px/1.6 var(--sans);color:rgba(26,26,24,.58);padding-left:14px;border-left:1px solid rgba(181,98,42,.4)}
.compare-tabs{display:flex;gap:1px;margin-bottom:18px;border:1px solid var(--hair2);width:fit-content}
.compare-tab{cursor:pointer;padding:10px 20px;background:none;font:400 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;transition:background 200ms ease,color 200ms ease;color:var(--fg)}
.compare-tab.active{background:var(--fg);color:var(--page)}
.compare-table-wrap{overflow-x:auto}
.compare-grid{display:grid;gap:1px;background:var(--hair)}
.compare-grid .hd{background:var(--page);padding:12px 14px;font:400 9.5px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:rgba(26,26,24,.45)}
.compare-grid .hd.center{text-align:center}
.compare-grid .row-label{background:#fff;padding:13px 14px;font:400 12.5px/1.4 var(--sans);color:var(--fg)}
.compare-grid .cell{background:#fff;padding:13px 14px;font:400 12.5px/1.4 var(--sans);text-align:center}
.craft-problems{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:clamp(20px,2.4vw,32px);margin-bottom:clamp(36px,4.4vw,56px)}
.craft-item .t{font-family:var(--serif);font-weight:400;font-size:18px;line-height:1.25;color:var(--fg)}
.craft-item .d{margin-top:8px;font:300 12.5px/1.6 var(--sans);color:rgba(26,26,24,.55)}
.solution-badge{display:inline-flex;align-items:center;gap:10px;padding:8px 16px;background:var(--fg);margin-bottom:clamp(24px,3vw,36px);font:400 9.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--page)}
.craft-solutions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:clamp(20px,2.4vw,32px);align-items:start}

/* ---------- studio & process ---------- */
.addr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--hair2)}
.addr-cell{background:var(--page);padding:26px 24px}
.addr-cell .k{font:400 10.5px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.addr-cell .v{font:300 15px/1.7 var(--sans);color:rgba(26,26,24,.6)}
.sustain-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:30px}
.sustain-grid .v{font-family:var(--serif);font-weight:300;font-size:clamp(26px,3vw,38px);line-height:1.1;color:var(--fg)}
.sustain-grid .l{margin-top:10px;font:300 13px/1.55 var(--sans);color:rgba(26,26,24,.5)}
.pull-quote{padding:clamp(48px,6vw,90px) clamp(24px,4vw,56px);text-align:center}
.pull-quote .t{max-width:26ch;margin:0 auto;font-family:var(--serif);font-weight:300;font-size:clamp(22px,3vw,36px);line-height:1.3;color:rgba(26,26,24,.78)}

/* ---------- specs ---------- */
.tech-core{display:flex;flex-direction:column}
.tech-core-row{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid rgba(26,26,24,.09)}
.tech-core-row .k{font:300 13px/1.5 var(--sans);letter-spacing:.06em;color:rgba(26,26,24,.52)}
.tech-core-row .v{font:400 14px/1.5 var(--sans);color:var(--fg);text-align:right}
.spec-block{border-top:1px solid var(--hair);padding:clamp(38px,4.6vw,64px) clamp(24px,4vw,56px)}
.spec-title{font:400 11px/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}
.quick-specs-box{border:1px solid var(--hair2);padding:clamp(26px,3vw,36px);margin-bottom:clamp(30px,3.4vw,48px)}
.quick-specs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:22px 20px}
.quick-spec{display:flex;gap:12px;align-items:flex-start}
.quick-spec .icon{flex:0 0 auto;width:24px;height:24px;margin-top:1px}
.quick-spec .k{font:400 13px/1.4 var(--sans);color:var(--fg)}
.quick-spec .v{margin-top:5px;font:300 12.5px/1.5 var(--sans);color:rgba(26,26,24,.55)}
.detail-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(30px,3.4vw,48px)}
.detail-cols.mt{margin-top:clamp(28px,3.2vw,40px)}
.detail-head{font:400 10.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--fg);background:#f0ece3;padding:9px 12px;margin-bottom:16px}
.detail-head.mid{margin:24px 0 16px}
.detail-row{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid rgba(26,26,24,.08)}
.detail-row .k{font:400 13px/1.4 var(--sans);color:var(--fg)}
.detail-row .v{font:300 12.5px/1.5 var(--sans);color:rgba(26,26,24,.55);text-align:right}
.app-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.app-item{padding:12px 14px;border:1px solid var(--hair);font:300 12.5px/1.5 var(--sans);color:rgba(26,26,24,.62)}
.app-item strong{color:var(--fg);font-weight:500}
.quote-info-row{display:flex;gap:14px;padding:9px 0;border-bottom:1px solid rgba(26,26,24,.08)}
.quote-info-row .no{flex:0 0 auto;font:400 12px/1.4 var(--sans);color:var(--accent)}
.quote-info-row .v{font:300 13px/1.6 var(--sans);color:rgba(26,26,24,.6)}
.doc-footnote{margin:clamp(24px,2.8vw,32px) 0 0;font:300 11.5px/1.6 var(--sans);color:rgba(26,26,24,.42)}
.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--hair)}
.feature-cell{background:#fff;padding:22px 20px}
.feature-cell .t{font:400 14px/1.3 var(--sans);color:var(--fg);margin-bottom:8px}
.feature-cell .d{font:300 13px/1.6 var(--sans);color:rgba(26,26,24,.52)}

/* ---------- colours & textures page ---------- */
.tab-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:clamp(22px,2.8vw,32px)}
.tab-chip{padding:12px 17px;cursor:pointer;border:1px solid var(--hair2);background:none;font:400 11.5px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--fg);transition:all 200ms ease}
.tab-chip.active{border-color:var(--accent);color:var(--accent);background:rgba(181,98,42,.06)}
.swatch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}
.swatch-item{cursor:pointer;background:none;border:none;padding:0;text-align:left}
.swatch-item:hover{opacity:.85}
.swatch-color{aspect-ratio:1/1}
.swatch-item .name{margin-top:10px;font:400 12.5px/1.4 var(--sans);color:var(--fg)}
.texture-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:clamp(20px,2.4vw,26px)}
.texture-grid.fixed{grid-template-columns:repeat(auto-fill,163px)}
.texture-item{cursor:pointer;display:flex;flex-direction:column;background:none;border:none;padding:0;text-align:left}
.texture-item:hover{opacity:.9}
.texture-thumb{width:163px;height:151px;overflow:hidden;box-sizing:border-box;border:1px solid var(--hair2)}
.texture-thumb.selected{border:2px solid var(--accent)}
.texture-thumb-inner{width:163px;height:151px;background-size:cover;background-position:center}
.texture-item .name{margin-top:12px;min-height:15px;font:400 13px/1.3 var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--fg)}
.texture-item .caption{margin-top:5px;min-height:29px;font:300 12px/1.45 var(--sans);color:rgba(26,26,24,.5);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.finish-facade-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:18px}
.finish-facade-item .name{margin-top:12px;font:400 13px/1.3 var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--fg)}
.sealer-box{background:var(--page);border:1px solid var(--hair2);padding:clamp(26px,3vw,36px)}
.sealer-box .t{font-family:var(--serif);font-weight:400;font-size:22px;color:var(--fg)}
.sealer-box .badge{margin-top:8px;font:400 11.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.sealer-list{margin-top:20px;display:flex;flex-direction:column;gap:11px}
.sealer-list div{font:300 14.5px/1.6 var(--sans);color:rgba(26,26,24,.68)}
.inlay-list{display:flex;flex-direction:column;gap:9px}
.inlay-list div{font:300 14.5px/1.6 var(--sans);color:rgba(26,26,24,.66);padding-left:14px;border-left:1px solid rgba(181,98,42,.4)}
.terms-list{display:flex;flex-direction:column;max-width:74ch}
.terms-item{display:flex;gap:20px;padding:20px 0;border-top:1px solid var(--hair2)}
.terms-item:last-child{border-bottom:1px solid var(--hair2)}
.terms-item .no{flex:0 0 auto;font:400 12px/1.4 var(--sans);letter-spacing:.1em;color:var(--accent);padding-top:2px}
.terms-item .d{font:300 14.5px/1.75 var(--sans);color:rgba(26,26,24,.62)}

/* ---------- FAQ ---------- */
.faq-item{border-bottom:1px solid var(--hair)}
.faq-q{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:clamp(20px,2.6vw,30px) clamp(24px,4vw,56px);transition:background 200ms ease;background:none;border:none;width:100%;text-align:left;font-family:inherit}
.faq-q:hover{background:rgba(26,26,24,.03)}
.faq-q .q{font-family:var(--serif);font-weight:400;font-size:clamp(18px,2vw,23px);line-height:1.3;color:var(--fg)}
.faq-plus{flex:0 0 auto;width:22px;height:22px;position:relative}
.faq-plus .h{position:absolute;left:0;top:50%;width:100%;height:1px;background:var(--accent);transform:translateY(-50%)}
.faq-plus .v{position:absolute;left:50%;top:0;width:1px;height:100%;background:var(--accent);transform:translateX(-50%);transition:transform 320ms cubic-bezier(.4,0,.2,1)}
.faq-item.open .faq-plus .v{transform:translateX(-50%) rotate(90deg)}
.faq-a{overflow:hidden;max-height:0;transition:max-height 380ms cubic-bezier(.4,0,.2,1)}
.faq-item.open .faq-a{max-height:600px}
.faq-a p{margin:0;padding:0 clamp(24px,4vw,56px) clamp(22px,2.8vw,30px);max-width:68ch;font:300 15.5px/1.75 var(--sans);color:rgba(26,26,24,.58)}

/* ---------- forms (quote / bulk / custom) ---------- */
.form-col{border-top:1px solid var(--hair);padding:clamp(30px,4vw,52px) clamp(24px,4vw,56px);display:flex;flex-direction:column;gap:22px;max-width:640px}
.form-field .lbl{font:400 10.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--dim2);margin-bottom:9px;display:flex;justify-content:space-between}
.form-field input,.form-field textarea,.form-field select{width:100%;background:transparent;border:none;border-bottom:1px solid var(--hair2);padding:10px 0;font:300 17px/1.5 var(--sans);color:var(--fg);outline:none}
.form-field textarea{min-height:96px;resize:vertical;font:300 17px/1.6 var(--sans)}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-bottom-color:var(--accent)}
.form-row2{display:flex;flex-wrap:wrap;gap:22px}
.form-row2>*{flex:1 1 220px}
.ref-drop{width:220px;aspect-ratio:4/3;background:var(--page);border:1px solid var(--hair2);display:flex;align-items:center;justify-content:center;text-align:center;padding:10px;font:300 12px/1.5 var(--sans);color:rgba(26,26,24,.4)}

.quote-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px}
.q-item-row{border:1px solid var(--hair2);padding:18px;position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}
.q-item-row .lbl{font:400 10px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--dim2);margin-bottom:8px}
.q-item-row select{background:transparent;border:none;border-bottom:1px solid var(--hair2);padding:8px 0;font:300 15px/1.4 var(--sans);color:var(--fg);outline:none;width:100%}
.q-item-row .size-display{width:100%;border-bottom:1px solid var(--hair2);padding:8px 0;font:300 15px/1.4 var(--sans);color:var(--fg)}
.q-item-row input[type=number]{background:transparent;border:none;border-bottom:1px solid var(--hair2);padding:8px 0;font:300 15px/1.4 var(--sans);color:var(--fg);outline:none;width:100%}
.q-item-remove{position:absolute;top:12px;right:14px;cursor:pointer;font:400 11px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--dim2);background:none;border:none}
.q-item-remove:hover{color:#c9584a}
.q-add-item{margin-top:14px;display:inline-block;cursor:pointer;padding:12px 20px;border:1px solid var(--hair2);font:400 11.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--fg);background:none;transition:border-color 200ms ease,color 200ms ease}
.q-add-item:hover{border-color:var(--accent);color:var(--accent)}
.q-thumb{flex:0 0 40px;width:40px;height:40px;object-fit:cover;border:1px solid var(--hair2);background:rgba(128,128,128,.08)}
.submit-btn{cursor:pointer;padding:16px 28px;background:var(--accent-tint);font:400 11.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#1a1a18;transition:background 200ms ease;display:inline-block;border:none}
.submit-btn.ready{background:var(--accent);color:#fff}
.submit-btn.ready:hover{background:var(--accent-hover)}
.form-error{margin-top:12px;font:300 14px/1.5 var(--sans);color:#c9584a}
.thank-you{border-top:1px solid var(--hair);padding:clamp(48px,7vw,90px) clamp(24px,4vw,56px);text-align:center}
.thank-you .t{font-family:var(--serif);font-weight:300;font-size:clamp(26px,3.4vw,40px);color:var(--fg)}
.thank-you .t em{color:var(--accent)}
.thank-you p{max-width:44ch;margin:16px auto 0;font:300 15px/1.75 var(--sans);color:rgba(26,26,24,.6)}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--hair);padding:clamp(30px,4vw,48px) clamp(20px,4vw,56px);display:flex;flex-wrap:wrap;gap:clamp(28px,4vw,60px);justify-content:space-between}
.foot-brand{flex:1 1 220px;max-width:320px}
.foot-brand .name{font-family:var(--serif);font-size:22px;color:var(--fg)}
.foot-brand p{margin:12px 0 0;font:300 13.5px/1.7 var(--sans);color:rgba(26,26,24,.58)}
.foot-col{flex:0 1 200px}
.foot-col .h{font:400 10px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:rgba(26,26,24,.45);margin-bottom:12px}
.foot-col .links{display:flex;flex-direction:column;gap:9px}
.foot-col .links a,.foot-col .links button{cursor:pointer;font:300 13.5px/1 var(--sans);color:var(--fg);text-decoration:none;background:none;border:none;padding:0;text-align:left}
.foot-col .links a:hover,.foot-col .links button:hover{color:var(--accent)}
.foot-social{display:flex;gap:9px}
.foot-social a{width:34px;height:34px;flex:0 0 auto;border:1px solid var(--hair);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--fg);text-decoration:none;transition:border-color 200ms ease,color 200ms ease}
.foot-social a:hover{border-color:var(--accent);color:var(--accent)}
.foot-bottom{padding:20px clamp(20px,4vw,56px) 32px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;border-top:1px solid var(--hair)}
.foot-bottom .c{font:300 11px/1.7 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:rgba(26,26,24,.45)}
.foot-bottom .tags{display:flex;gap:20px;font:300 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:rgba(26,26,24,.45)}

/* ---------- responsive ---------- */
@media (max-width:860px){
  .nav-main .rail{display:none}
  .prod-grid{grid-template-columns:repeat(2,1fr) !important}
  .ig-grid{grid-template-columns:repeat(3,1fr)}
  .inspo-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:560px){
  .prod-grid{grid-template-columns:1fr !important}
  .ig-grid{grid-template-columns:repeat(3,1fr)}
  .masthead{padding:14px 16px}
  .brand img{height:26px}
}
