@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;1,400&display=swap');
:root { --ink:#111; --muted:#666; --orange:#e66a19; --cream:#f5f3ef; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:'DM Sans',Arial,sans-serif; line-height:1.55; }
a { color:inherit; }
.shell { width:min(2080px,calc(100% - clamp(40px,8vw,192px))); margin:auto; }
.top { background:#111; color:#fff; }
.top .shell { min-height:88px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:inline-flex; align-items:center; gap:13px; text-decoration:none; font-size:.87rem; font-weight:700; letter-spacing:.15em; line-height:1.1; white-space:nowrap; }
.brand:before { content:''; display:block; width:5px; height:34px; background:var(--orange); }
.top-link { font-size:.85rem; text-decoration:none; border-bottom:1px solid var(--orange); padding-bottom:5px; }
.hero { background:#111; color:#fff; }
.hero-grid { display:grid; grid-template-columns:.8fr 1.2fr; align-items:center; min-height:580px; gap:clamp(30px,5vw,95px); }
.hero-copy { padding:70px 0; }
.eyebrow { margin:0 0 24px; color:var(--orange); text-transform:uppercase; letter-spacing:.16em; font-size:.8rem; font-weight:700; }
h1,h2 { font-family:'Playfair Display',Georgia,serif; font-weight:400; letter-spacing:-.035em; line-height:1.02; }
h1 { font-size:clamp(3rem,6vw,6.4rem); margin:0 0 28px; }
.lede { font-size:clamp(1rem,1.55vw,1.2rem); color:#c4c4c4; max-width:560px; }
.hero-image { height:100%; max-height:660px; width:100%; object-fit:cover; }
.hero-visual { align-self:stretch; overflow:hidden; }
.hero-open { width:100%; height:100%; }
.story { background:#fff; padding:0 0 85px; }
.facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-bottom:1px solid #d9d5cd; }
.fact { min-height:116px; padding:29px 32px 25px 0; display:flex; flex-direction:column; justify-content:center; gap:5px; }
.fact + .fact { border-left:1px solid #d9d5cd; padding-left:32px; }
.fact span { color:#777; text-transform:uppercase; font-size:.72rem; font-weight:700; letter-spacing:.14em; }
.fact strong { font-weight:500; font-size:1.06rem; }
.story-row { display:grid; grid-template-columns:1.12fr .88fr; gap:clamp(45px,7vw,135px); padding:76px 0; align-items:end; border-bottom:1px solid #d9d5cd; }
.story-row:last-child { border-bottom:0; padding-bottom:0; }
.story-index { color:var(--orange); font-size:.78rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; margin:0 0 26px; }
.story h2 { max-width:730px; font-size:clamp(2.1rem,3vw,3.7rem); line-height:1.08; }
.story-text { max-width:680px; color:#4b4945; font-size:clamp(1.06rem,1.3vw,1.18rem); line-height:1.75; margin:0 0 4px; }
.media-section { padding:100px 0; }
.section-head { display:flex; align-items:end; justify-content:space-between; gap:28px; margin-bottom:35px; }
h2 { font-size:clamp(2.45rem,4vw,4.2rem); margin:0; }
.section-head p { margin:0; color:var(--muted); max-width:440px; }
.gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.gallery figure { margin:0; background:#ddd; }
.gallery-open { display:block; width:100%; height:100%; padding:0; border:0; background:transparent; cursor:zoom-in; }
.gallery-open:focus-visible { outline:3px solid var(--orange); outline-offset:3px; }
.gallery img { width:100%; height:auto; aspect-ratio:4/5; display:block; object-fit:cover; }
.gallery figure:first-child { grid-column:span 2; grid-row:span 2; }
.gallery figure:first-child img { height:100%; aspect-ratio:auto; }
.gallery figcaption { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.gallery figure { position:relative; }
.media-block + .media-block { margin-top:95px; }
.media-label { display:flex; gap:16px; align-items:center; margin:0 0 20px; font-weight:700; font-size:.88rem; letter-spacing:.13em; text-transform:uppercase; }
.media-label:before { content:''; width:30px; height:2px; background:var(--orange); }
.note { color:#777; font-size:.85rem; max-width:760px; margin:32px 0 0; }
.bottom { padding:90px 0; background:#fff; }
.bottom-grid { display:flex; align-items:end; justify-content:space-between; gap:35px; }
.bottom h2 { max-width:550px; }
.button { display:inline-block; padding:16px 25px; background:var(--orange); color:#111; font-weight:700; font-size:.9rem; text-decoration:none; text-align:center; }
.footer { background:#111; color:#aaa; padding:28px 0; }
.footer .shell { display:flex; justify-content:space-between; gap:25px; }
.lightbox { position:fixed; inset:0; width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; padding:0; border:0; color:#fff; background:#111; }
.lightbox::backdrop { background:rgba(0,0,0,.92); }
.lightbox-layout { display:grid; grid-template-rows:auto minmax(0,1fr) auto; width:100%; height:100%; padding:clamp(14px,2vw,28px); }
.lightbox button { color:#fff; background:transparent; border:0; cursor:pointer; font:inherit; }
.lightbox button:focus-visible { outline:2px solid var(--orange); outline-offset:4px; }
.lightbox-close { justify-self:end; padding:8px 4px 14px; font-size:.9rem!important; }
.lightbox-close span { font-size:1.7rem; vertical-align:middle; margin-left:8px; }
.lightbox-image { display:block; align-self:center; justify-self:center; max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; }
.lightbox-controls { display:flex; align-items:center; justify-content:center; gap:clamp(20px,5vw,70px); min-height:58px; }
.lightbox-controls button { min-height:44px; padding:8px; }
.lightbox-count { min-width:64px; text-align:center; color:#aaa; font-size:.88rem; }
@media(max-width:800px) {
 .shell { width:min(100% - 36px,1300px); }
 .hero-grid { grid-template-columns:1fr; gap:0; }
 .hero-copy { padding:65px 0 45px; }
 .hero-visual { height:420px; margin:0 -18px; }
 .gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 .gallery figure:first-child { grid-column:span 2; grid-row:auto; }
 .gallery figure:first-child img { aspect-ratio:4/3; height:auto; }
 .story-row { grid-template-columns:1fr; gap:22px; padding:55px 0; }
 .story { padding-bottom:65px; }
 .media-section,.bottom { padding:70px 0; }
 .section-head,.bottom-grid { align-items:start; flex-direction:column; }
}
@media(max-width:520px) {
 .top .shell { min-height:73px; }
 .top-link { font-size:.75rem; }
 .hero-visual { height:330px; }
 .facts { grid-template-columns:1fr; }
 .fact { min-height:0; padding:18px 0; }
 .fact + .fact { border-left:0; border-top:1px solid #d9d5cd; padding-left:0; }
 .story-row { padding:45px 0; }
 .gallery { grid-template-columns:1fr; }
 .gallery figure:first-child { grid-column:auto; }
 .gallery figure:first-child img { aspect-ratio:4/5; }
 .footer .shell { flex-direction:column; }
 .lightbox-controls button span { display:none; }
}

/* Presentation-led project stories */
.case-study { background:#f8f7f3; }
.case-study h1,.case-study h2,.case-study h3 { font-family:'DM Sans',Arial,sans-serif; letter-spacing:-.035em; }
.case-study h1 { font-size:clamp(2.5rem,4.5vw,5rem); line-height:1.08; }
.case-study h2 { font-size:clamp(1.9rem,2.8vw,3.4rem); line-height:1.15; }
.case-study .hero-grid { min-height:540px; }
.case-study .hero-visual .gallery-open { height:100%; }
.case-study .hero-visual img { width:100%; height:100%; max-height:750px; object-fit:cover; display:block; }
.case-study .eyebrow,.case-study .story-index { font-size:.8rem; letter-spacing:.12em; }
.case-study .facts { grid-template-columns:repeat(4,minmax(0,1fr)); }
.case-study .fact span { font-size:.8rem; }
.case-study .story { background:#f8f7f3; padding-bottom:50px; }
.case-study .story-row { padding:65px 0 0; }
.case-nav { display:flex; flex-wrap:wrap; gap:16px 30px; padding-top:22px; padding-bottom:22px; border-bottom:1px solid #d9d5cd; }
.case-nav a { text-decoration:none; font-size:.9rem; color:#555; }
.case-nav a:hover { color:#9b4819; }
.case-palette { padding-top:60px; padding-bottom:70px; border-top:1px solid #d9d5cd; }
.case-palette h2 { max-width:900px; }
.swatches { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:18px; margin-top:35px; }
.swatches span { display:block; height:clamp(90px,12vw,180px); }
.swatches p { font-size:.9rem; margin:12px 0 0; }
.case-chapter { display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(30px,5vw,100px); align-items:center; padding-top:64px; padding-bottom:64px; border-top:1px solid #d9d5cd; }
.case-chapter:nth-of-type(even) { grid-template-columns:1.3fr .7fr; }
.case-chapter:nth-of-type(even) .chapter-copy { order:2; }
.chapter-copy p:last-child { font-size:1.08rem; line-height:1.8; color:#55514b; max-width:650px; margin:25px 0 0; }
.case-chapter figure { margin:0; min-width:0; }
.case-chapter img { display:block; width:100%; height:auto; max-height:720px; object-fit:contain; }
.case-comparison { padding-top:65px; padding-bottom:65px; border-top:1px solid #d9d5cd; }
.comparison-copy { color:#55514b; max-width:850px; font-size:1.08rem; margin:18px 0 30px; }
.compare-grid { display:grid; grid-template-columns:1fr 1fr; gap:25px; }
.compare-grid figure { margin:0; }
.compare-grid .gallery-open { height:auto; }
.compare-grid img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.compare-grid figcaption { padding:13px 0; border-bottom:1px solid #d9d5cd; font-size:.9rem; }
.case-principles { display:grid; grid-template-columns:repeat(3,1fr); gap:25px; padding-bottom:60px; }
.case-principles span { font-size:.85rem; color:#9b4819; text-transform:uppercase; letter-spacing:.08em; }
.case-principles p { font-size:1.08rem; max-width:380px; }
.case-study .media-section { background:#fff; }
.case-study .gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
.case-study .gallery figure:first-child { grid-column:auto; grid-row:auto; }
.case-study .gallery img,.case-study .gallery figure:first-child img { aspect-ratio:4/3; width:100%; height:auto; object-fit:cover; }
.case-study section[id],.case-study #spaces { scroll-margin-top:25px; }
@media(max-width:850px) {
 .case-study .facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .case-study .fact:nth-child(3) { border-left:0; padding-left:0; }
 .case-study .fact:nth-child(n+3) { border-top:1px solid #d9d5cd; }
 .case-chapter,.case-chapter:nth-of-type(even) { grid-template-columns:1fr; gap:28px; }
 .case-chapter:nth-of-type(even) .chapter-copy { order:0; }
 .case-principles { grid-template-columns:1fr; gap:8px; }
}
@media(max-width:520px) {
 .case-study .facts { grid-template-columns:1fr; }
 .case-study .fact + .fact { border-left:0; padding-left:0; }
 .case-study .gallery,.compare-grid { grid-template-columns:1fr; }
 .case-nav { gap:12px 20px; }
 .case-chapter,.case-comparison { padding-top:42px; padding-bottom:42px; }
 .swatches { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
