/* Marlo — components and sections. Load after tokens.css.
   The look: white page, dark cocoa bands inset 16px from the page edge, square corners everywhere,
   uppercase Albert Sans Bold headlines whose first phrase is muted, hairline vertical guides,
   rust buttons with a white square arrow box. */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; overflow-x: clip; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--font); font-size: 18px; line-height: 1.48; letter-spacing: -.18px; -webkit-font-smoothing: antialiased; overflow-x: clip; }
img, svg { display: block; max-width: 100%; }
img[height] { height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
h1, h2, h3, h4, p, ul, figure { margin: 0; }
ul { padding: 0; list-style: none; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
h1, h2, h3, h4, .t-display, .t-h1, .t-h2, .t-h3, .t-h4, .t-h5 { text-wrap: balance; }
h1 > .dim, h2 > .dim, h3 > .dim, .t-h2 > .dim, .t-h3 > .dim, .t-h4 > .dim, .t-h1 > .dim, .t-display > .dim { color: var(--muted); display: contents; }
.on-dark h1 > .dim, .on-dark h2 > .dim, .on-dark h3 > .dim, .on-dark .dim { color: var(--muted); }

/* ── Layout ── */
.band { width: calc(100% - 2 * var(--gutter)); margin-inline: auto; position: relative; }
.band--dark { background: var(--dark); color: var(--on-dark); }
.on-dark { color: var(--on-dark); }
.wrap { width: min(var(--container), 100% - 2 * (var(--gutter) + var(--band-pad))); margin-inline: auto; position: relative; }
.band .wrap { width: min(var(--container), 100% - 2 * var(--band-pad)); }
.section { padding: var(--section) 0; position: relative; }
.guide { position: absolute; top: 0; bottom: 0; width: 1px; background: var(--line); pointer-events: none; }
.band--dark .guide { background: var(--line-dark); }

/* ── Eyebrow: corner mark + uppercase label ── */
.eyebrow { display: inline-flex; align-items: center; gap: 12px; font-family: var(--font-display); font-weight: 500; font-size: 16px; line-height: 1.48; letter-spacing: -.16px; text-transform: uppercase; }
.eyebrow svg { width: 9px; height: 11px; flex: none; fill: currentColor; }
.eyebrow--center { justify-content: center; }

/* ── Section head ── */
.head { display: flex; flex-direction: column; gap: var(--head-gap); align-items: flex-start; }
.head--center { align-items: center; text-align: center; margin-inline: auto; }

/* ── Buttons: label + square arrow box ── */
.btn { display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; height: 48px; padding: 12px 12px 12px 20px; background: var(--accent); color: var(--on-accent); font-family: var(--font-display); font-weight: 500; font-size: 16px; line-height: 24px; letter-spacing: -.24px; text-transform: capitalize; white-space: nowrap; transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); }
.btn__go { width: 32px; height: 32px; flex: none; display: grid; place-items: center; background: #fff; color: var(--text); transition: transform var(--dur-fast) var(--ease); }
.btn__go svg { width: 16px; height: 16px; }
.btn:hover { background: var(--text); }
.btn:hover .btn__go { transform: translate(2px, -2px); }
.btn--ink { background: var(--text); }
.btn--ink:hover { background: var(--accent); }
.btn--white { background: #fff; color: var(--text); }
.btn--white .btn__go { background: var(--accent); color: #fff; }
.btn--white:hover { background: var(--surface); }
.btn--block { width: 100%; justify-content: center; padding: 16px 24px; height: auto; }
.btn--block:hover { background: var(--text); }
.arrow-btn { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--line-dark); color: var(--on-dark); transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease); }
.arrow-btn svg { width: 18px; height: 18px; }
.arrow-btn--fill, .arrow-btn:hover { background: #fff; color: var(--text); border-color: #fff; }

/* ── Chips on photos: icon + small text ── */
.chips { display: flex; gap: 12px; flex-wrap: wrap; }
.chip { display: inline-flex; align-items: center; gap: 6px; padding: 8px; background: #fff; color: var(--text-2); font-family: var(--font-display); font-weight: 400; font-size: 14px; line-height: 1.08; letter-spacing: -.28px; white-space: nowrap; }
.chip svg { width: 14px; height: 14px; flex: none; stroke: currentColor; }
.chip--soft { background: var(--surface); }

/* ── Header (absolute over the hero; same on every page) ── */
.site-head { position: absolute; top: 24px; left: 24px; right: 24px; z-index: 20; height: 48px; display: flex; align-items: center; justify-content: space-between; color: var(--on-dark); }
.site-head--ink { color: var(--text); }
.site-head--ink .btn--white { background: var(--accent); color: var(--on-accent); }
.site-head--ink .btn--white .btn__go { background: #fff; color: var(--text); }
.site-head--ink .btn--white:hover { background: var(--text); }
.menu-btn { display: inline-flex; align-items: center; gap: 14px; font-family: var(--font-display); font-weight: 500; font-size: 16px; letter-spacing: -.16px; text-transform: uppercase; }
.menu-btn i { display: block; width: 32px; height: 9px; border-top: 1px solid currentColor; border-bottom: 1px solid currentColor; transition: transform var(--dur-fast) var(--ease); }
.menu-btn:hover i { transform: scaleX(.8); }
.nav-links { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: flex; gap: 44px; font-family: var(--font-display); font-weight: 500; font-size: 16px; letter-spacing: -.16px; text-transform: uppercase; }
.nav-links a { position: relative; padding: 4px 0; opacity: 1; transition: opacity var(--dur-fast) var(--ease); }
.nav-links a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease-out); }
.nav-links a:hover::after, .nav-links a[aria-current="page"]::after { transform: scaleX(1); }
.site-head .btn--white { width: 195px; padding: 10px 8px 10px 16px; }
.site-head .btn--white:hover { background: #fff; }
.site-head .btn--white:hover .btn__go { transform: translate(2px, -2px); }

/* Full-screen menu */
.menu { position: fixed; inset: 0; z-index: 50; background: var(--dark); color: var(--on-dark); display: none; flex-direction: column; padding: 24px; }
.menu.open { display: flex; }
.menu__top { display: flex; align-items: center; justify-content: space-between; height: 48px; }
.menu__links { display: grid; gap: 8px; margin: auto 0; max-width: 1328px; width: 100%; align-self: center; }
.menu__links a { font-family: var(--font-display); font-weight: 700; font-size: clamp(36px, 6vw, 64px); line-height: 1.04; letter-spacing: -.02em; text-transform: uppercase; color: var(--muted); transition: color var(--dur-fast) var(--ease), padding-left .3s var(--ease-out); }
.menu__links a:hover, .menu__links a[aria-current="page"] { color: #fff; padding-left: 16px; }
.menu__foot { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; color: var(--on-dark-2); font-family: var(--font-display); font-weight: 500; font-size: 16px; text-transform: uppercase; letter-spacing: -.16px; }
.menu__foot a:hover { color: #fff; }
body.menu-open { overflow: hidden; }

/* ── Logo ── */
.logo { display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-display); font-weight: 600; font-size: 26px; letter-spacing: -.5px; line-height: 1; color: var(--text); }
.logo svg { width: 26px; height: 32px; fill: var(--accent); }
.on-dark .logo, .logo--light { color: #fff; }

/* ═══════════════ HOME ═══════════════ */
/* Hero: full-bleed photo band, headline top-left, copy mid-right, giant wordmark bleeding off the bottom */
.home-hero { min-height: clamp(620px, 81vw, 1296px); overflow: hidden; color: var(--on-dark); }
.home-hero__photo { position: absolute; inset: 0; }
.home-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.home-hero__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .62) 0%, rgba(0, 0, 0, .5) 45%, rgba(0, 0, 0, .05) 100%); }
.home-hero__in { position: relative; z-index: 2; min-height: inherit; }
.home-hero__in .guide { background: var(--line-hero); }
.home-hero__title { position: absolute; top: clamp(120px, 14.4vw, 230px); left: 0; width: min(749px, 64%); }
.home-hero__copy { position: absolute; top: clamp(290px, 31.6vw, 505px); left: 61.5%; width: min(361px, 38%); display: flex; flex-direction: column; gap: 32px; align-items: flex-start; }
.home-hero__mark { position: absolute; left: 0; bottom: clamp(-60px, -2.6vw, -28px); margin: 0; font-family: var(--font-display); font-weight: 700; font-size: clamp(88px, 18.6vw, 300px); line-height: .9; letter-spacing: -.03em; color: #fff; white-space: nowrap; pointer-events: none; }
.home-hero__mark sup { font-size: .14em; vertical-align: top; position: relative; top: .55em; margin-left: .06em; font-weight: 500; letter-spacing: 0; }
.home-hero__review { position: absolute; right: 0; bottom: 24px; z-index: 3; display: flex; align-items: center; gap: 12px; padding: 16px; width: 262px; background: var(--shade-pill); backdrop-filter: blur(6px); }
.home-hero__review-g { width: 44px; height: 44px; background: #fff; display: grid; place-items: center; flex: none; }
.home-hero__review-g svg { width: 22px; height: 22px; }
.home-hero__stars { display: flex; gap: 4px; margin-bottom: 4px; }
.home-hero__stars svg { width: 12px; height: 12px; fill: #fff; }
.home-hero__review p { font-size: 14px; line-height: 1.48; letter-spacing: -.14px; }

/* About: 3 guide columns (280 / 280 / 768); eyebrow + small photo left, title + copy + big photo right */
.home-about { padding-top: var(--section); padding-bottom: var(--section); }
.home-about__grid > .guide { top: calc(-1 * var(--section)); bottom: calc(-1 * var(--section) + 16px); }
.home-about__grid { display: grid; grid-template-columns: 42.17% 1fr; position: relative; }
.home-about__guide-mid { left: 21.08%; }
.home-about__left { display: flex; flex-direction: column; position: relative; }
.home-about__small { width: 50%; margin-top: 214px; aspect-ratio: 281 / 316; overflow: hidden; }
.home-about__small img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 30%; }
.home-about__est { margin-top: auto; padding-bottom: 0; font-family: var(--font-display); font-weight: 500; font-size: 16px; letter-spacing: -.16px; text-transform: uppercase; color: var(--text-2); }
.home-about__right { display: flex; flex-direction: column; align-items: flex-start; }
.home-about__title { margin-top: 0; }
.home-about__title img { display: inline-block; width: 77px; height: 49px; object-fit: cover; object-position: 50% 60%; vertical-align: -6px; margin-right: 12px; }
.home-about__copy { max-width: 631px; margin-top: 32px; color: var(--text-2); }
.home-about .btn { margin-top: 32px; }
.home-about__big { width: 100%; margin-top: 163px; aspect-ratio: 767 / 440; overflow: hidden; }
.home-about__big img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 62%; }

/* Why choose us: dark band, 2×2 white cards with a wooden house bleeding off each bottom-right corner */
.home-why .head { max-width: 880px; }
.home-why__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); margin-top: var(--head-to-content); }
.why-card { position: relative; background: #fff; color: var(--text); aspect-ratio: 656 / 570; padding: var(--card-pad); overflow: hidden; }
.why-card__text { max-width: 345px; display: flex; flex-direction: column; gap: 16px; position: relative; z-index: 1; }
.why-card__text h3 { max-width: 300px; }
.why-card__text p { font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--text-2); max-width: 316px; }
.why-card__dot { position: absolute; top: 32px; right: 32px; width: 8px; height: 8px; background: var(--accent-soft); }
.why-card__img { position: absolute; right: 0; bottom: 0; width: 44%; aspect-ratio: 1; display: flex; align-items: flex-end; justify-content: flex-end; }
.why-card__img img { width: 100%; height: 100%; object-fit: contain; object-position: right bottom; transition: transform .8s var(--ease-out); }
.why-card:hover .why-card__img img { transform: translateY(-6px); }
.why-card--2 .why-card__img { width: 40%; bottom: -2%; }
.why-card--3 .why-card__img { width: 46%; right: -2%; }
.why-card--4 .why-card__img { width: 48%; bottom: -6%; }

/* Selected work: 4 guide columns (320 / 352 / 328 / 328), photos placed on a tall board */
.home-work { padding-top: var(--section); padding-bottom: var(--section); }
.home-work__nav { display: flex; justify-content: space-between; align-items: flex-start; }
.home-work__years { display: inline-flex; align-items: center; gap: 12px; font-family: var(--font-display); font-weight: 500; font-size: 16px; letter-spacing: -.4px; text-transform: uppercase; }
.home-work__years i { display: block; width: 26px; height: 1px; background: var(--text); }
.home-work__title { position: relative; margin: 74px 0 0 24.1%; width: 352px; }
.home-work__board { position: relative; margin-top: 150px; aspect-ratio: 1328 / 2716; }
.proj { display: flex; flex-direction: column; gap: 20px; }
.home-work__board .proj { position: absolute; }
.proj__img { position: relative; overflow: hidden; width: 100%; }
.proj__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.proj:hover .proj__img img { transform: scale(1.04); }
.proj__img .chips { position: absolute; left: 16px; bottom: 16px; }
.proj__row { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-family: var(--font-display); font-size: 16px; line-height: .96; letter-spacing: -.32px; text-transform: uppercase; }
.proj__row b { font-weight: 600; color: var(--text); }
.proj__row span { font-weight: 400; color: var(--muted-ink); }
.proj--1 { left: 0; top: 0; width: 24.02%; }        .proj--1 .proj__img { aspect-ratio: 319 / 400; }
.proj--2 { left: 50.68%; top: 3.09%; width: 49.32%; } .proj--2 .proj__img { aspect-ratio: 655 / 821; }
.proj--3 { left: 0; top: 37.4%; width: 50.53%; }     .proj--3 .proj__img { aspect-ratio: 671 / 467; }
.proj--4 { left: 75.38%; top: 51.73%; width: 24.62%; } .proj--4 .proj__img { aspect-ratio: 327 / 400; }
.proj--5 { left: 24.1%; top: 70.88%; width: 51.2%; } .proj--5 .proj__img { aspect-ratio: 680 / 752; }

/* Services: dark band, 2×2 white cards with a 120px isometric line icon */
.home-services .head { max-width: 544px; }
.home-services__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); margin-top: var(--head-to-content); }
.svc-card { background: #fff; color: var(--text); padding: var(--card-pad); display: flex; flex-direction: column; gap: 240px; }
.svc-card__icon { width: 120px; height: 120px; }
.svc-card__icon img, .svc-card__icon svg { width: 100%; height: 100%; }
.svc-card__text { display: flex; flex-direction: column; gap: 16px; }
.svc-card__text p { max-width: 394px; color: var(--text-2); }
.svc-card:hover .svc-card__icon { animation: svc-nudge 1.2s var(--ease-out); }
@keyframes svc-nudge { 0% { transform: translateY(0); } 40% { transform: translateY(-8px); } 100% { transform: translateY(0); } }

/* Testimonials: photo band, two white quote cards sitting low on it */
.home-testi { aspect-ratio: 1568 / 1128; min-height: 720px; overflow: hidden; }
.home-testi__photo { position: absolute; inset: 0; }
.home-testi__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.home-testi__grid { position: absolute; left: var(--band-pad); right: var(--band-pad); bottom: 48px; display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); }
.quote-card { background: #fff; color: var(--text); padding: 36px 32px 32px; display: flex; flex-direction: column; justify-content: space-between; gap: 60px; min-height: 624px; }
.quote-card__q { display: flex; flex-direction: column; gap: 24px; }
.quote-card__q svg { width: 42px; height: 24px; fill: var(--accent); }
.quote-card__q p { font-family: var(--font-display); font-weight: 700; font-size: 20px; line-height: 1.3; letter-spacing: -.4px; text-transform: uppercase; }
.quote-card__who { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; }
.quote-card__photo { position: relative; width: 340px; max-width: 54%; aspect-ratio: 340 / 360; overflow: hidden; }
.quote-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.quote-card__play { position: absolute; left: 16px; bottom: 16px; width: 36px; height: 36px; background: #fff; display: grid; place-items: center; color: var(--text); transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); }
.quote-card__play svg { width: 12px; height: 12px; fill: currentColor; }
.quote-card__play:hover { background: var(--accent); color: #fff; }
.quote-card__meta { background: var(--surface); padding: 16px; flex: 0 1 252px; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.quote-card__meta b { font-family: var(--font-display); font-weight: 500; font-size: 16px; line-height: 1.48; letter-spacing: -.16px; text-transform: uppercase; overflow-wrap: anywhere; }
.quote-card__meta span { font-family: var(--font-display); font-size: 14px; line-height: 1.4; letter-spacing: -.28px; color: var(--text-2); }

/* Get in touch: copy + phone pill left, off-white form panel right; guides at the column edges */
.home-contact__grid { display: grid; grid-template-columns: 432px 1fr 656px; position: relative; }
.home-contact__guide-mid { left: 50.53%; }
.home-contact__left { display: flex; flex-direction: column; align-items: flex-start; gap: 48px; }
.home-contact__call { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; max-width: 351px; color: var(--text-2); }
.phone-pill { display: inline-flex; height: 44px; color: var(--text); }
.phone-pill i { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--line-ink); }
.phone-pill i svg { width: 16px; height: 16px; }
.phone-pill span { display: grid; place-items: center; padding: 0 16px; border: 1px solid var(--line-ink); margin-left: -1px; transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); font-family: var(--font-display); font-weight: 500; font-size: 16px; letter-spacing: -.16px; text-transform: uppercase; }
.phone-pill:hover span { background: var(--text); color: #fff; }
.home-contact__form { grid-column: 3; }
.form-panel { background: var(--surface); padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.form-panel form { display: flex; flex-direction: column; gap: 24px; }
.form-panel h3 { margin-bottom: 0; }
.fields { display: flex; flex-direction: column; gap: 16px; }
.field { display: flex; flex-direction: column; gap: 8px; }
.field > label, .field > .field__label { font-family: var(--font-display); font-weight: 500; font-size: 16px; line-height: 1.48; letter-spacing: -.16px; text-transform: uppercase; color: var(--text); }
.field > label small { font-size: 16px; color: var(--muted-ink); }
.field input, .field select, .field textarea { width: 100%; height: 52px; padding: 0 16px; border: 1px solid transparent; background: #fff; font-family: var(--font); font-size: 14px; letter-spacing: -.14px; color: var(--text); transition: border-color var(--dur-fast) var(--ease); }
.field textarea { height: 100px; padding: 16px; resize: vertical; }
.field input::placeholder, .field textarea::placeholder { color: var(--muted-ink); }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--accent); }
.field select { appearance: none; -webkit-appearance: none; color: var(--text); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='8' fill='none'%3E%3Cpath d='M.5.5 6.5 6.5l6-6' stroke='%2394877D'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; }
.switch { display: inline-flex; align-items: center; gap: 12px; font-size: 14px; letter-spacing: -.14px; color: var(--text); }
.switch input { position: absolute; opacity: 0; width: 0; height: 0; }
.switch i { position: relative; width: 44px; height: 24px; background: #fff; border-radius: var(--r-pill); flex: none; transition: background var(--dur-fast) var(--ease); }
.switch i::after { content: ""; position: absolute; top: 4px; left: 4px; width: 16px; height: 16px; border-radius: 50%; background: var(--accent); transition: transform .25s var(--ease-out); }
.switch input:checked + i::after { transform: translateX(20px); }
.switch input:focus-visible + i { outline: 2px solid var(--accent); outline-offset: 2px; }
.form-note { text-align: center; font-size: 14px; letter-spacing: -.14px; color: var(--muted-ink); }

/* CTA band: cocoa base under a multiplied roof photo, copy left, line-art house right */
.cta { height: clamp(560px, 40.5vw, 648px); overflow: hidden; color: var(--on-dark); background: var(--dark-2); }
.cta__photo { position: absolute; inset: 0; mix-blend-mode: multiply; }
.cta__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 100%; }
.cta__in { position: absolute; inset: var(--band-pad); display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; width: 703px; max-width: calc(100% - 2 * var(--band-pad)); }
.cta__text { display: flex; flex-direction: column; gap: 24px; max-width: 656px; }
.cta__text p { max-width: 547px; color: var(--on-dark-2); }
.cta__actions { display: flex; align-items: center; gap: 44px; flex-wrap: wrap; }
.cta__facts { display: flex; gap: 28px; flex-wrap: wrap; color: var(--on-dark-2); }
.cta__facts span { display: inline-flex; align-items: center; gap: 8px; }
.cta__facts svg { width: 16px; height: 16px; stroke: currentColor; fill: none; }
.cta__art { position: absolute; right: var(--band-pad); top: 50%; transform: translateY(-50%); width: 432px; max-width: 32%; opacity: .9; }
.cta__art img { width: 100%; }

/* Footer: off-white band, logo + three link columns above a hairline, legal row below */
.site-foot { background: var(--surface); color: var(--text); padding: 120px 156px 20px; }
.site-foot__grid { display: grid; grid-template-columns: 1.93fr 1.48fr 1.48fr 1fr; min-height: 300px; }
.site-foot__col { display: flex; flex-direction: column; gap: 32px; }
.site-foot__col p { font-size: 18px; letter-spacing: -.18px; }
.site-foot__col ul { display: flex; flex-direction: column; gap: 14px; font-family: var(--font-display); font-weight: 500; font-size: 16px; line-height: 1.48; letter-spacing: -.16px; text-transform: uppercase; color: var(--muted-ink); }
.site-foot__col a { transition: color var(--dur-fast) var(--ease); }
.site-foot__col a:hover { color: var(--text); }
.site-foot__bottom { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding-top: 20px; margin-top: 0; border-top: 1px solid rgba(66, 48, 33, .08); font-size: 14px; letter-spacing: -.14px; color: var(--muted-ink); }
.site-foot__social { display: flex; gap: 16px; }
.site-foot__social a { width: 16px; height: 16px; display: block; color: var(--text-2); transition: color var(--dur-fast) var(--ease); }
.site-foot__social a:hover { color: var(--accent); }
.site-foot__social svg { width: 16px; height: 16px; fill: currentColor; }

/* ── Responsive ── */
@media (max-width: 1500px) {
  .t-h2 { font-size: 40px; letter-spacing: -.8px; }
  .home-about__title img { width: 60px; height: 38px; }
}
@media (max-width: 1280px) {
  :root { --band-pad: 56px; }
  .site-foot { padding-inline: 56px; }
  .t-h1, .t-display, .home-work__title { font-size: 56px; letter-spacing: -1.4px; }
  .home-hero__copy { left: 58%; width: 40%; }
  .svc-card { gap: 160px; }
  .quote-card { min-height: 0; }
}
@media (max-width: 1024px) {
  :root { --section: 104px; --head-to-content: 48px; }
  .nav-links { display: none; }
  .t-h1, .t-display, .home-work__title { font-size: 48px; letter-spacing: -1.2px; }
  .t-h2 { font-size: 40px; letter-spacing: -.8px; }
  .t-h3 { font-size: 32px; }
  .home-hero { min-height: 760px; }
  .home-hero__title { position: static; width: 100%; margin-top: 120px; max-width: 640px; }
  .home-hero__copy { position: static; width: 100%; max-width: 420px; margin-top: 32px; padding-bottom: 260px; }
  .home-hero__mark { font-size: clamp(96px, 26vw, 260px); }
  .home-about__grid { grid-template-columns: 1fr; gap: 48px; }
  .home-about__guide-mid, .home-about__grid > .guide { display: none; }
  .home-about__left { flex-direction: row; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 24px; }
  .home-about__small { margin-top: 0; width: 40%; order: 2; }
  .home-about__est { margin-top: 0; padding-bottom: 0; order: 1; width: 100%; }
  .home-about__big { margin-top: 48px; }
  .home-work__title { margin-left: 0; }
  .home-work__board { aspect-ratio: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin-top: 56px; }
  .home-work__board .proj { position: static; width: auto; }
  .home-work__board .guide { display: none; }
  .home-testi { aspect-ratio: auto; min-height: 0; padding: 360px 0 48px; }
  .home-testi__grid { position: relative; left: 0; right: 0; bottom: auto; margin-inline: var(--band-pad); }
  .quote-card__photo { max-width: 55%; }
  .home-contact__grid { grid-template-columns: 1fr; gap: 56px; }
  .home-contact__form { grid-column: auto; }
  .home-contact__grid .guide { display: none; }
  .cta { height: auto; padding: 80px 0; }
  .cta__in { position: relative; inset: auto; width: auto; margin-inline: var(--band-pad); gap: 56px; }
  .cta__art { position: absolute; right: 24px; top: 24px; transform: none; width: 220px; max-width: 30%; opacity: .5; }
  .site-foot__grid { grid-template-columns: 1fr 1fr 1fr; gap: 32px; }
  .site-foot__grid .site-foot__col:first-child { grid-column: 1 / -1; }
}
@media (max-width: 820px) {
  :root { --section: 80px; --band-pad: 24px; --card-pad: 24px; }
  .site-foot { padding: 72px 24px 20px; }
  .home-why__grid, .home-services__grid, .home-testi__grid, .home-work__board { grid-template-columns: 1fr; }
  .why-card { aspect-ratio: auto; min-height: 420px; }
  .why-card__text h3 { max-width: 260px; }
  .svc-card { gap: 120px; }
  .quote-card__photo { max-width: 56%; }
  .quote-card__meta { max-width: 42%; }
  .home-testi { padding-top: 300px; }
  .site-foot__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  :root { --gutter: 12px; }
  body { font-size: 16px; }
  .t-h1, .t-display, .home-work__title { font-size: 32px; letter-spacing: -.8px; }
  .t-h2 { font-size: 32px; letter-spacing: -.64px; }
  .t-h3 { font-size: 28px; }
  .t-h4 { font-size: 22px; }
  .site-head { left: 16px; right: 16px; }
  .site-head .btn--white { display: none; }
  .home-hero { min-height: 0; }
  .home-hero__title { margin-top: 110px; }
  .home-hero__copy { padding-bottom: 220px; gap: 24px; }
  .home-hero__mark { font-size: 19vw; bottom: -.08em; }
  .home-hero__review { right: 16px; bottom: calc(17vw + 20px); width: 240px; padding: 12px; }
  .home-about__left { flex-direction: column; align-items: flex-start; }
  .home-about__small { width: 60%; }
  .home-about__title img { width: 56px; height: 36px; }
  .home-work__nav { flex-direction: column; gap: 16px; }
  .home-work__title { width: auto; margin-top: 32px; }
  .home-work__board { gap: 40px; }
  .home-work__board .proj__img { aspect-ratio: 4 / 3 !important; }
  .why-card { min-height: 380px; }
  .why-card__img { width: 52%; }
  .quote-card { padding: 28px 20px 20px; gap: 40px; }
  .quote-card__who { flex-direction: column; align-items: flex-start; }
  .quote-card__photo, .quote-card__meta { max-width: 100%; width: 100%; }
  .form-panel { padding: 16px; }
  .cta { padding: 64px 0; }
  .cta__actions { gap: 20px; }
  .cta__art { width: 140px; opacity: .35; }
  .site-foot__grid { grid-template-columns: 1fr; gap: 32px; min-height: 0; padding-bottom: 32px; }
  .site-foot__bottom { flex-direction: column; align-items: flex-start; }
}

/* ───────── About ───────── */
/* Marlo — About page (prefix ab-). Loaded after marlo.css, before motion.css.
   Source: About Us frame 2199:4242. White hero with a full-band facade photo, manifesto + 4 stats,
   3-photo highlight, dark "how we work" carousel, 4 portraits, 4 outlined award tiles, the home
   testimonials band, a 2-column FAQ, then the shared CTA + footer. Sections sit 120px apart. */
.about { --ab-gap: 120px; }
.about .site-head .btn { width: 195px; padding: 10px 8px 10px 16px; }
.about .site-head .btn:hover { background: var(--text); }

/* ── Hero: eyebrow + two-tone H1 left, intro right · facade photo across the band · manifesto · stats ── */
.ab-hero { padding-top: 192px; }
.ab-hero__top { display: grid; grid-template-columns: minmax(0, 656px) minmax(0, 430px); justify-content: space-between; align-items: center; column-gap: 48px; }
.ab-hero__head { display: flex; flex-direction: column; gap: 28px; align-items: flex-start; }
.ab-hero__intro { color: var(--text-2); }
.ab-hero__photo { margin-top: 60px; width: 100%; aspect-ratio: 1568 / 860; max-height: 860px; overflow: hidden; }
.ab-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 44%; }
.ab-hero__down { padding-top: var(--ab-gap); }
.ab-manifesto { display: flex; justify-content: space-between; align-items: flex-start; gap: 48px; }
.ab-manifesto__text { width: 542px; max-width: 100%; display: flex; flex-direction: column; gap: 26px; font-weight: 700; color: var(--text-2); }
.ab-stats { margin-top: var(--ab-gap); padding-bottom: var(--ab-gap); border-bottom: 1px solid var(--line-2); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 95px; row-gap: 40px; }
.ab-stat { display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.ab-stat__n { color: var(--text); white-space: nowrap; }
.ab-stat__n span { display: inline; }
.ab-stat p { color: var(--text-2); } /* source: muted (#94877D) — 3.5:1 on white fails AA, so the caption uses text-2 */
.ab-stat:nth-child(2) p, .ab-stat:nth-child(3) p { max-width: 208px; }

/* ── Highlight: 3-line two-tone H2 (767 wide) + three 432×560 photos ── */
.ab-highlight { padding-top: var(--ab-gap); }
.ab-highlight .t-h2 { max-width: 767px; }
.ab-highlight__row { margin-top: var(--head-to-content); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); }
.ab-highlight__row figure { aspect-ratio: 432 / 560; overflow: hidden; }
.ab-highlight__row img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.ab-highlight__row figure:hover img { transform: scale(1.04); }

/* ── How we work: dark band, head + two arrow buttons, horizontal card carousel bleeding off the band's right edge ── */
.ab-process { margin-top: 100px; padding: var(--ab-gap) 0; overflow: hidden; }
.ab-process__nav { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; }
.ab-process .head { max-width: 438px; }
.ab-process__arrows { display: flex; gap: 16px; margin-bottom: 24px; }
.ab-process .arrow-btn { width: 52px; height: 52px; border-color: var(--muted); }
.ab-process .arrow-btn svg { width: 24px; height: 24px; }
.ab-process .arrow-btn--fill, .ab-process .arrow-btn:hover { border-color: #fff; }
.ab-process__track { display: flex; gap: var(--gap); margin-top: var(--head-to-content); margin-right: calc(-1 * var(--band-pad)); padding-right: var(--band-pad); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; }
.ab-process__track::-webkit-scrollbar { display: none; }
.ab-step { flex: 0 0 432px; width: 432px; height: 617px; background: #fff; color: var(--text); display: flex; flex-direction: column; scroll-snap-align: start; }
.ab-step__top { display: flex; justify-content: space-between; align-items: center; padding: 24px 24px 0; font-weight: 700; font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--text-2); }
.ab-step__top i { display: block; width: 4px; height: 4px; background: var(--text-2); }
.ab-step__text { padding: 48px 24px 0; max-width: 312px; display: flex; flex-direction: column; gap: 12px; }
.ab-step__text p { font-weight: 700; font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--text-2); }
.ab-step__photo { position: relative; margin-top: auto; height: 380px; overflow: hidden; }
.ab-step__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.ab-step:hover .ab-step__photo img { transform: scale(1.04); }
.ab-step--1 .ab-step__photo img { object-position: 61% 43%; }
.ab-step--2 .ab-step__photo img { object-position: 61% 50%; }
.ab-step--3 .ab-step__photo img { object-position: 53% 64%; }
.ab-step--4 .ab-step__photo img { object-position: 54% 60%; }
.ab-step__icon { position: absolute; right: 0; bottom: 0; width: 124px; height: 124px; background: #fff; display: grid; place-items: center; }
.ab-step__icon img { width: 64px; height: 64px; }

/* ── Team: centred head + four 320-wide portrait cards with an off-white name bar ── */
.ab-team { padding-top: var(--ab-gap); }
.ab-team .head { max-width: 584px; }
.ab-team__grid { margin-top: var(--head-to-content); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gap); }
.ab-member { background: var(--surface); display: flex; flex-direction: column; }
.ab-member__photo { aspect-ratio: 320 / 340; overflow: hidden; }
.ab-member__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; transition: transform 1.2s var(--ease-out); }
.ab-member:hover .ab-member__photo img { transform: scale(1.04); }
.ab-member__info { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px; }
.ab-member__info div { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ab-member__info b { font-family: var(--font-display); font-weight: 700; font-size: 20px; line-height: 1.04; letter-spacing: -.4px; text-transform: uppercase; color: var(--text); }
.ab-member__info span { font-weight: 700; font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--text-2); } /* source: muted — fails AA on off-white */
.ab-member__in { width: 20px; height: 20px; flex: none; display: grid; place-items: center; background: var(--text); color: #fff; transition: background var(--dur-fast) var(--ease); }
.ab-member__in:hover { background: var(--accent); }
.ab-member__in svg { width: 20px; height: 20px; fill: currentColor; }

/* ── Awards: head left + four outlined 200-tall tiles, each with a cocoa award mark ── */
.ab-awards { padding-top: var(--ab-gap); }
.ab-awards .head { max-width: 430px; }
.ab-awards__grid { margin-top: var(--head-to-content); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gap); }
.ab-award { height: 200px; border: 1px solid rgba(148, 135, 125, .24); display: grid; place-items: center; color: var(--text-2); transition: border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); }
.ab-award:hover { border-color: var(--muted); color: var(--text); }
.ab-award svg { width: 240px; height: 110px; fill: currentColor; }
.ab-award text { font-family: var(--font-display); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; text-anchor: middle; }

/* Testimonials: the home band, 120 above and below here */
.about .home-testi { margin-top: var(--ab-gap); }

/* ── FAQ: head 544 left, five bordered rows 656 right; chevron turns when a row opens ── */
.ab-faq { padding: var(--ab-gap) 0; }
.ab-faq__grid { display: grid; grid-template-columns: minmax(0, 544px) minmax(0, 656px); justify-content: space-between; align-items: start; column-gap: clamp(48px, 8vw, 128px); row-gap: 48px; }
.ab-faq__list { display: flex; flex-direction: column; gap: 20px; }
.ab-q { background: #fff; border: 1px solid var(--line); padding: 24px; }
.ab-q summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; cursor: pointer; font-family: var(--font-display); font-weight: 700; font-size: 16px; line-height: 1.48; letter-spacing: -.16px; text-transform: uppercase; color: var(--text); transition: color var(--dur-fast) var(--ease); }
.ab-q summary::-webkit-details-marker { display: none; }
.ab-q summary:hover { color: var(--accent-ink); }
.ab-q__chev { width: 20px; height: 20px; flex: none; transition: rotate .3s var(--ease-out); }
.ab-q[open] .ab-q__chev { rotate: 180deg; }
.ab-q p { margin-top: 12px; max-width: 529px; font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--text-2); }

/* ── Responsive ── */
@media (max-width: 1500px) {
  .ab-stats { column-gap: 64px; }
}
@media (max-width: 1280px) {
  .ab-hero { padding-top: 160px; }
  .ab-stats { column-gap: 48px; }
}
@media (max-width: 1024px) {
  .about { --ab-gap: 88px; }
  .ab-hero { padding-top: 136px; }
  .ab-hero__top { grid-template-columns: 1fr; row-gap: 32px; }
  .ab-hero__intro { max-width: 480px; }
  .ab-stats { grid-template-columns: 1fr 1fr; row-gap: 48px; }
  .ab-process { margin-top: var(--ab-gap); }
  .ab-team__grid, .ab-awards__grid { grid-template-columns: 1fr 1fr; }
  .ab-faq__grid { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
  .about { --ab-gap: 64px; }
  .ab-hero { padding-top: 120px; }
  .ab-hero__photo { aspect-ratio: 4 / 3; }
  .ab-manifesto { flex-direction: column; gap: 24px; }
  .ab-stats { column-gap: 24px; }
  .ab-step { flex-basis: 360px; width: 360px; height: 560px; }
  .ab-step__photo { height: 320px; }
  .ab-step__icon { width: 96px; height: 96px; }
  .ab-step__icon img { width: 52px; height: 52px; }
}
@media (max-width: 600px) {
  .ab-hero { padding-top: 104px; }
  .ab-hero h1 br, .ab-faq h2 br { display: none; }
  .ab-highlight .t-h2 { font-size: 26px; letter-spacing: -.52px; }
  .ab-hero__photo { aspect-ratio: 4 / 5; }
  .ab-stats { grid-template-columns: 1fr; row-gap: 36px; }
  .ab-stat p { max-width: 100% !important; }
  .ab-highlight__row { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-right: calc(-1 * (var(--gutter) + var(--band-pad))); padding-right: calc(var(--gutter) + var(--band-pad)); }
  .ab-highlight__row::-webkit-scrollbar { display: none; }
  .ab-highlight__row figure { flex: 0 0 80%; scroll-snap-align: start; }
  .ab-process__nav { flex-wrap: wrap; }
  .ab-process__arrows { margin-bottom: 0; }
  .ab-step { flex-basis: 84%; width: 84%; height: auto; min-height: 520px; }
  .ab-step__text { padding-top: 32px; }
  .ab-step__photo { height: 280px; margin-top: 32px; }
  .ab-team__grid, .ab-awards__grid { grid-template-columns: 1fr; }
  .ab-award { height: 160px; }
  .ab-q { padding: 20px 16px; }
}

/* ───────── Projects ───────── */
/* Marlo — Projects list (pages/projects.html) and Project details (pages/project.html).
   Prefix pj-. Loaded after marlo.css, before motion.css. Faithful to the source frames
   "Project" (2199:4014) and "Project details" (2199:3874): off-white 1328×511 project panels with a
   2×3 hairline spec table and a photo inset 15px on the right; a 432 / 544 split content head; label-left
   body rows; a dark related-projects band whose wide white cards scroll sideways. */
.pj { --pj-line: rgba(66, 48, 33, .08); }

/* ── Header on a white page: ink links, rust quote button (markup identical to index.html) ── */
.pj .site-head { color: var(--text); }
.pj .site-head .btn--white { background: var(--accent); color: var(--on-accent); }
.pj .site-head .btn--white .btn__go { background: #fff; color: var(--text); }
.pj .site-head .btn--white:hover { background: var(--text); }

/* ── Shared type: 32px panel titles and body-row labels ── */
.pj-t32 { font-family: var(--font-display); font-weight: 700; font-size: 32px; line-height: 1.04; letter-spacing: -.64px; text-transform: uppercase; color: var(--text); }

/* ── Spec table: 2 columns × 3 rows, 49px cells, 14px icon + Lato 14 ── */
.pj-spec { display: grid; grid-template-columns: 1fr 1fr; width: 100%; border: 1px solid var(--pj-line); color: var(--text); }
.pj-spec li { display: flex; align-items: center; gap: 12px; height: 48px; padding: 0 16px; font-size: 14px; line-height: 1.48; letter-spacing: -.14px; white-space: nowrap; border-top: 1px solid var(--pj-line); }
.pj-spec li:nth-child(-n + 2) { border-top: 0; }
.pj-spec li:nth-child(2n) { border-left: 1px solid var(--pj-line); }
.pj-spec svg { width: 14px; height: 14px; flex: none; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; }

/* ── Project panel (list rows and related cards): text 585 wide, photo inset 15 on its side ── */
.pj-card { position: relative; display: grid; grid-template-columns: minmax(0, 585px) minmax(0, 1fr); column-gap: 40px; align-items: start; min-height: 511px; padding: 31px 15px 31px 31px; background: var(--surface); color: var(--text); }
.pj-card__text { display: flex; flex-direction: column; align-items: flex-start; gap: 72px; }
.pj-card__details { display: flex; flex-direction: column; gap: 60px; width: 100%; }
.pj-card__desc { display: flex; flex-direction: column; gap: 24px; }
.pj-card__row { display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.pj-card__year { font-family: var(--font-display); font-weight: 400; font-size: 16px; line-height: .96; letter-spacing: -.32px; text-transform: uppercase; color: var(--text-2); white-space: nowrap; }
.pj-card__desc p { max-width: 480px; font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--text-2); }
.pj-card__photo { position: relative; overflow: hidden; align-self: stretch; margin: -16px 0; min-height: 479px; }
.pj-card__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.pj-card:hover .pj-card__photo img { transform: scale(1.04); }
/* list page: the panels alternate (photo left, right, left, right) so the page reads as a rhythm while scrolling */
.pj-projects .pj-card:nth-child(odd) { grid-template-columns: minmax(0, 1fr) minmax(0, 585px); padding: 31px 31px 31px 15px; }
.pj-projects .pj-card:nth-child(odd) .pj-card__photo { order: -1; }

/* ═══════════════ PROJECTS LIST ═══════════════ */
.pj-list-head { padding-top: 192px; }
.pj-list-head .head--center { max-width: 656px; }
.pj-list { padding: var(--head-to-content) 0 160px; }
.pj-cards { display: flex; flex-direction: column; gap: 50px; }

/* ═══════════════ PROJECT DETAILS ═══════════════ */
.pj-detail { padding-top: 192px; }
.pj-dhead { display: grid; grid-template-columns: minmax(0, 432px) minmax(0, 544px); justify-content: space-between; column-gap: 48px; align-items: start; }
.pj-dhead__side { display: flex; flex-direction: column; gap: 32px; }
.pj-statement { font-family: var(--font-display); font-weight: 600; font-size: 32px; line-height: 1.3; letter-spacing: -.64px; text-transform: uppercase; color: var(--text); text-wrap: balance; }
.pj-detail .pj-spec { color: var(--text-2); }
.pj-dphoto { margin-top: 32px; aspect-ratio: 1328 / 740; overflow: hidden; }
.pj-dphoto img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.pj-body { padding: 48px 0 120px; }
.pj-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 543px); column-gap: 48px; align-items: start; padding: 48px 0; border-top: 1px solid var(--pj-line); }
.pj-body .wrap > :first-child { padding-top: 0; border-top: 0; }
.pj-body .wrap > :last-child { padding-bottom: 0; }
.pj-row__copy { display: flex; flex-direction: column; gap: 27px; color: var(--text-2); }
.pj-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding: 48px 0; border-top: 1px solid var(--pj-line); }
.pj-gallery figure { aspect-ratio: 652 / 612; overflow: hidden; }
.pj-gallery img { width: 100%; height: 100%; object-fit: cover; }

/* Related projects: dark band, head + arrows, one wide card at a time scrolling sideways */
.pj-related { padding: 120px 0; }
.pj-related__top { display: flex; justify-content: space-between; align-items: center; gap: 32px; }
.pj-related .head { gap: 24px; max-width: 560px; }
.pj-related__nav { display: flex; gap: 16px; flex: none; }
.pj-related .arrow-btn { width: 52px; height: 52px; border-color: var(--muted); transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease); }
.pj-related .arrow-btn svg { width: 24px; height: 24px; fill: none; stroke: currentColor; }
.pj-related .arrow-btn--fill, .pj-related .arrow-btn:hover { border-color: #fff; }
.pj-track { display: flex; gap: 16px; margin-top: var(--head-to-content); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; }
.pj-track::-webkit-scrollbar { display: none; }
.pj-track .pj-card { flex: 0 0 100%; scroll-snap-align: start; }
.pj-related .pj-spec { color: var(--text-2); }

/* ── Responsive ── */
@media (max-width: 1280px) {
  .pj-card, .pj-projects .pj-card:nth-child(odd) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 32px; }
  .pj-dhead { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .pj-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (max-width: 1024px) {
  .pj-list-head, .pj-detail { padding-top: 144px; }
  .pj-list { padding-bottom: var(--section); }
  .pj-body { padding-bottom: var(--section); }
  .pj-card, .pj-projects .pj-card:nth-child(odd) { grid-template-columns: 1fr; row-gap: 32px; min-height: 0; padding: 24px; }
  .pj-card__photo { order: -1; margin: 0; min-height: 0; aspect-ratio: 16 / 10; align-self: auto; }
  .pj-card__text { gap: 48px; }
  .pj-card__details { gap: 40px; }
  .pj-cards { gap: 32px; }
  .pj-dhead { grid-template-columns: 1fr; row-gap: 40px; }
  .pj-statement { font-size: 24px; letter-spacing: -.48px; }
  .pj-t32 { font-size: 28px; letter-spacing: -.56px; }
  .pj-row { padding: 40px 0; }
  .pj-gallery { padding: 40px 0; }
  .pj-related { padding: var(--section) 0; }
}
@media (max-width: 820px) {
  .pj-list-head, .pj-detail { padding-top: 120px; }
  .pj-row { grid-template-columns: 1fr; row-gap: 24px; }
  .pj-row__copy { gap: 20px; }
  .pj-gallery { grid-template-columns: 1fr; gap: 16px; }
  .pj-gallery figure { aspect-ratio: 4 / 3; }
  .pj-related__top { flex-wrap: wrap; }
}
@media (max-width: 600px) {
  .pj-list-head, .pj-detail { padding-top: 104px; }
  .pj-card, .pj-projects .pj-card:nth-child(odd) { padding: 16px; }
  .pj-card__photo { aspect-ratio: 4 / 3; }
  .pj-card__row { flex-direction: column; align-items: flex-start; gap: 8px; }
  .pj-t32 { font-size: 24px; letter-spacing: -.48px; }
  .pj-statement { font-size: 20px; letter-spacing: -.4px; }
  .pj-spec { grid-template-columns: 1fr; }
  .pj-spec li:nth-child(2) { border-top: 1px solid var(--pj-line); }
  .pj-spec li:nth-child(2n) { border-left: 0; }
  .pj-spec li { white-space: normal; height: auto; min-height: 48px; padding: 12px 16px; }
  .pj-dphoto { aspect-ratio: 4 / 3; }
  .pj-related .arrow-btn { width: 44px; height: 44px; }
}

/* ───────── Style Guide ───────── */
/* Marlo · design system page (pages/style-guide.html). Every class is prefixed sg-. Tokens only: no new colours, fonts or radii. */

/* ── Overview: dark cocoa band under the header, white tiles on a 12-column bento (the first 1440 × 990 is the store image) ── */
.sg-top { min-height: 990px; padding: 120px 0 64px; display: flex; flex-direction: column; justify-content: center; }
.sg-bento { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: auto minmax(420px, auto); gap: var(--gap); }
.sg-title { grid-column: span 5; display: flex; flex-direction: column; justify-content: flex-end; gap: var(--head-gap); padding: 0 24px 24px 0; }
.sg-title p:last-child { max-width: 420px; color: var(--on-dark-2); }
.sg-tile { background: #fff; color: var(--text); padding: 28px; display: flex; flex-direction: column; gap: 20px; min-width: 0; position: relative; }
.sg-k { font-family: var(--font-display); font-weight: 500; font-size: 14px; line-height: 1.48; letter-spacing: -.14px; text-transform: uppercase; color: var(--text-2); }
.sg-tile .why-card__dot { top: 28px; right: 28px; }
.sg-tile .logo { color: var(--text); }
.sg-tile .logo--light { color: #fff; }
.sg-nowrap { white-space: nowrap; }
.sg-tile--logo { grid-column: span 3; justify-content: space-between; }
.sg-logo { font-size: 40px; gap: 14px; letter-spacing: -.8px; }
.sg-logo svg { width: 40px; height: 49px; }
.sg-logo-dark { background: var(--dark); padding: 16px 20px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.sg-logo-dark .logo { font-size: 22px; }
.sg-logo-dark .logo svg { width: 22px; height: 27px; }
.sg-tile--colours { grid-column: span 4; }
.sg-ladder { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 8px; }
.sg-ladder li { display: grid; gap: 6px; min-width: 0; }
.sg-ladder i { display: block; height: 52px; box-shadow: inset 0 0 0 1px rgba(66, 48, 33, .08); }
.sg-ladder code { font-family: var(--mono); font-size: 12px; line-height: 1.3; color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sg-tile--type { grid-column: span 5; justify-content: space-between; }
.sg-aa { font-family: var(--font-display); font-weight: 700; font-size: 128px; line-height: .82; letter-spacing: -5px; margin-left: -5px; color: var(--text); }
.sg-aa em { font-style: normal; font-family: var(--font); font-weight: 400; letter-spacing: -2px; color: var(--muted); }
.sg-fams { display: grid; gap: 8px; padding-top: 16px; border-top: 1px solid var(--line); }
.sg-fams li { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 16px; align-items: baseline; font-size: 14px; letter-spacing: -.14px; color: var(--text-2); }
.sg-fams b { font-family: var(--font-display); font-weight: 500; font-size: 16px; letter-spacing: -.16px; color: var(--text); }
.sg-tile--btns { grid-column: span 3; justify-content: space-between; }
.sg-stack { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.sg-tile--why { grid-column: span 4; padding: 0; }
.sg-tile--why .why-card { aspect-ratio: auto; flex: 1; min-height: 380px; }

/* ── Sections on white ── */
.sg-sec { padding: var(--section) 0 0; }
.sg-sec > .wrap > .head { max-width: 760px; }
.sg-sec--last, .sg-sec--pad { padding-bottom: var(--section); }
.style-guide .arrow-btn { transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease); }
.sg-intro { max-width: 560px; margin-top: 24px; color: var(--text-2); }
.sg-group { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; align-items: baseline; margin: 56px 0 24px; padding-top: 16px; border-top: 1px solid var(--line); font-family: var(--font-display); font-weight: 500; font-size: 16px; line-height: 1.48; letter-spacing: -.16px; text-transform: uppercase; color: var(--text); }
.sg-group span { font-family: var(--font); font-size: 14px; letter-spacing: -.14px; text-transform: none; font-weight: 400; color: var(--text-2); max-width: 34em; }
.sg-sec .head + .sg-group { margin-top: var(--head-to-content); }
code.sg-code, .sg-meta code, .sg-sw code, .sg-spec code, .sg-space code, .sg-icon code, .sg-photo code { font-family: var(--mono); font-size: 13px; letter-spacing: 0; color: var(--text); }

/* Colour swatches: square, hairline-edged */
.sg-sws { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px var(--gap); }
.sg-sw { display: grid; gap: 4px; align-content: start; min-width: 0; }
.sg-sw i { display: block; aspect-ratio: 4 / 3; box-shadow: inset 0 0 0 1px rgba(66, 48, 33, .08); margin-bottom: 8px; }
.sg-sw b { font-family: var(--font-display); font-weight: 500; font-size: 16px; letter-spacing: -.16px; text-transform: uppercase; }
.sg-sw span { font-size: 14px; letter-spacing: -.14px; color: var(--text-2); }
.sg-sw--dark-demo i { background: var(--dark); }

/* Type specimens */
.sg-specs { border-bottom: 1px solid var(--line); }
.sg-spec { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 40px; align-items: baseline; padding: 28px 0; border-top: 1px solid var(--line); }
.sg-spec code { display: block; line-height: 1.6; color: var(--text-2); }
.sg-spec code b { display: block; font-weight: 400; color: var(--text); }
.sg-spec > p { max-width: 900px; }
.sg-spec > p.t-body, .sg-spec > p.t-lead, .sg-spec > p.t-small { color: var(--text-2); }
.sg-spec > p.t-body { max-width: 640px; }
.sg-two-tone { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--gap); margin-top: 24px; }
.sg-two-tone > div { padding: 32px; border: 1px solid var(--line); display: flex; flex-direction: column; gap: 24px; }
.sg-two-tone > .band--dark { border: 0; width: auto; }
.sg-two-tone p:last-child { font-size: 14px; letter-spacing: -.14px; color: var(--text-2); }
.sg-two-tone > .band--dark p:last-child { color: var(--on-dark-2); }

.on-dark code.sg-code, .on-dark .sg-meta code, .sg-two-tone > .band--dark code { color: #fff; background: rgba(255, 255, 255, .08); padding: 2px 6px; }
.sg-tile .sg-meta code { color: var(--text); background: var(--surface); }

/* Spacing & layout */
.sg-pair { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; align-items: start; }
.sg-map { position: relative; aspect-ratio: 1600 / 1000; border: 1px solid var(--line-2); background: #fff; overflow: hidden; }
.sg-map__band { position: absolute; left: 1%; right: 1%; top: 6%; bottom: 6%; background: var(--dark); }
.sg-map__wrap { position: absolute; left: 7.5%; right: 7.5%; top: 14.8%; bottom: 14.8%; border-left: 1px solid var(--line-dark); border-right: 1px solid var(--line-dark); }
.sg-map__wrap i { position: absolute; top: 0; bottom: 0; width: 1px; background: var(--line-dark); }
.sg-map__card { position: absolute; background: #fff; }
.sg-map__lbl { position: absolute; font-family: var(--font-display); font-weight: 500; font-size: 12px; line-height: 1.3; letter-spacing: -.12px; text-transform: uppercase; color: var(--on-dark-2); white-space: nowrap; }
.sg-map__lbl--ink { color: var(--text-2); }
.sg-space { display: grid; }
.sg-space li { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 20px; align-items: center; padding: 12px 0; border-top: 1px solid var(--line); }
.sg-space li:last-child { border-bottom: 1px solid var(--line); }
.sg-space code { display: grid; }
.sg-space code span { font-family: var(--font); font-size: 14px; color: var(--text-2); }
.sg-space i { display: block; height: 12px; width: var(--w); max-width: 100%; background: var(--accent-soft); box-shadow: inset 0 0 0 1px rgba(66, 48, 33, .12); }
.sg-guides { position: relative; height: 220px; margin-top: 24px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.sg-guides .guide { background: var(--line-2); }
.sg-guides span { position: absolute; top: 12px; margin-left: 8px; font-family: var(--font-display); font-weight: 500; font-size: 12px; letter-spacing: -.12px; text-transform: uppercase; color: var(--text-2); }
.sg-guides .sg-guides__block { position: absolute; bottom: 24px; height: 96px; background: var(--surface); }
.sg-shapes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gap); }
.sg-shape { display: grid; gap: 4px; align-content: start; }
.sg-shape i { display: flex; align-items: center; justify-content: center; height: 120px; background: var(--surface); margin-bottom: 8px; }
.sg-shape i.sg-shape--shadow { background: #fff; box-shadow: var(--shadow-2); margin: 12px 12px 20px; height: 96px; }
.sg-shape b { font-family: var(--font-display); font-weight: 500; font-size: 16px; letter-spacing: -.16px; text-transform: uppercase; }
.sg-shape span { font-size: 14px; letter-spacing: -.14px; color: var(--text-2); }

/* Components */
.sg-comp { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); }
.sg-box { border: 1px solid var(--line); padding: 32px; display: flex; flex-direction: column; justify-content: space-between; gap: 28px; min-width: 0; }
.sg-box--2 { grid-column: span 2; }
.sg-box--3 { grid-column: 1 / -1; }
.sg-box--dark { background: var(--dark); color: var(--on-dark); border-color: var(--dark); }
.sg-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.sg-row--top { align-items: flex-start; }
.sg-meta { font-size: 14px; line-height: 1.6; letter-spacing: -.14px; color: var(--text-2); max-width: 34em; }
.sg-box--dark .sg-meta { color: var(--on-dark-2); }
.sg-meta code { background: var(--surface); padding: 2px 6px; white-space: nowrap; }
.sg-box--dark .sg-meta code { background: rgba(255, 255, 255, .08); color: #fff; }
.sg-ondark { background: var(--dark); padding: 24px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; color: var(--on-dark); }
.sg-onphoto { position: relative; aspect-ratio: 16 / 7; overflow: hidden; }
.sg-onphoto img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 70%; }
.sg-onphoto .chips { position: absolute; left: 16px; right: 16px; bottom: 16px; }
.sg-box .form-panel { width: 100%; }
.sg-duo { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 32px; align-items: start; }
.sg-box .quote-card { min-height: 0; padding: 32px 0 0; min-width: 0; }
.sg-box .proj { width: 100%; }
.sg-box .proj__img { aspect-ratio: 319 / 400; }
.sg-headbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px; background: var(--dark); color: var(--on-dark); }
.sg-headbar .nav-links { position: static; transform: none; gap: 32px; }
.sg-headbar .btn--white { width: 195px; padding: 10px 8px 10px 16px; }
.sg-menu { position: relative; height: 520px; border: 1px solid var(--line-dark); }
.sg-menu .menu { position: absolute; inset: 0; display: flex; }
.sg-menu .menu__links a { font-size: clamp(28px, 4vw, 56px); }
.sg-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap); }
.sg-cards .why-card { aspect-ratio: auto; min-height: 480px; }
.sg-cards .svc-card { gap: 180px; }
.sg-caption { margin-top: 16px; font-size: 14px; line-height: 1.6; letter-spacing: -.14px; color: var(--on-dark-2); max-width: 34em; }
.sg-caption + .sg-caption { margin-top: 8px; }
.sg-caption code { font-family: var(--mono); font-size: 13px; color: #fff; }
.sg-band-note { padding: 0 0 var(--section); }
.sg-band-note .sg-caption { margin-top: 0; }

/* Imagery */
.sg-photos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gap); }
.sg-photo { display: grid; gap: 12px; align-content: start; }
.sg-photo figure { aspect-ratio: 4 / 5; overflow: hidden; background: var(--surface); }
.sg-photo figure img { width: 100%; height: 100%; object-fit: cover; }
.sg-photo figure.sg-photo--cut { background: #fff; box-shadow: inset 0 0 0 1px var(--line); padding: 24px; }
.sg-photo figure.sg-photo--cut img { object-fit: contain; object-position: center bottom; }
.sg-photo b { font-family: var(--font-display); font-weight: 500; font-size: 16px; letter-spacing: -.16px; text-transform: uppercase; }
.sg-photo span, .sg-photo p { font-size: 14px; line-height: 1.5; letter-spacing: -.14px; color: var(--text-2); }
.sg-icons { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--gap); }
.sg-icon { display: grid; gap: 10px; justify-items: start; padding: 24px; border: 1px solid var(--line); min-width: 0; }
.sg-icon img, .sg-icon svg { width: 72px; height: 72px; }
.sg-icon svg { width: 40px; height: 40px; margin: 16px 0; color: var(--text); }
.sg-icon--sm img { width: 40px; height: 40px; margin: 16px 0; }
.sg-icon code { font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; color: var(--text-2); }

/* Motion */
.sg-motion { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--gap); }
.sg-list { display: grid; }
.sg-list li { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 20px; padding: 14px 0; border-top: 1px solid var(--line); font-size: 14px; line-height: 1.6; letter-spacing: -.14px; color: var(--text-2); }
.sg-list li:last-child { border-bottom: 1px solid var(--line); }
.sg-list b { font-family: var(--font-display); font-weight: 500; font-size: 16px; letter-spacing: -.16px; text-transform: uppercase; color: var(--text); }
.sg-ease { display: grid; gap: 12px; }
.sg-ease li { position: relative; display: grid; gap: 4px; padding: 20px 20px 60px; border: 1px solid var(--line); }
.sg-ease li b { font-family: var(--font-display); font-weight: 500; font-size: 16px; letter-spacing: -.16px; text-transform: uppercase; }
.sg-ease li span { font-size: 14px; letter-spacing: -.14px; color: var(--text-2); }
.sg-ease li i { position: absolute; left: 20px; bottom: 20px; width: 16px; height: 16px; background: var(--accent); z-index: 1; transition: transform var(--sg-d, .6s) var(--sg-e); }
.sg-ease li:hover i { transform: translateX(calc(min(560px, 80vw) - 72px)); }
.sg-ease li::after { content: ""; position: absolute; left: 20px; right: 20px; bottom: 27px; height: 1px; background: var(--line-2); }

/* ═══════════════ RESPONSIVE ═══════════════ */
@media (max-width: 1280px) {
  .sg-aa { font-size: 140px; }
  .sg-sws { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .sg-icons { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .sg-spec { grid-template-columns: 240px minmax(0, 1fr); }
}
@media (max-width: 1024px) {
  .sg-top { min-height: 0; padding: 120px 0 56px; }
  .sg-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; }
  .sg-title { grid-column: 1 / -1; padding: 0 0 8px; }
  .sg-tile--logo, .sg-tile--colours, .sg-tile--type, .sg-tile--btns, .sg-tile--why { grid-column: span 1; }
  .sg-tile--type { grid-column: 1 / -1; }
  .sg-tile--why .why-card { min-height: 420px; }
  .sg-pair { grid-template-columns: minmax(0, 1fr); }
  .sg-comp { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sg-box--2 { grid-column: 1 / -1; }
  .sg-motion { grid-template-columns: minmax(0, 1fr); }
  .sg-duo { grid-template-columns: minmax(0, 1fr); }
  .sg-headbar .nav-links { display: none; }
  .sg-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .sg-cards { grid-template-columns: minmax(0, 1fr); }
  .sg-shapes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sg-two-tone { grid-template-columns: minmax(0, 1fr); }
  .sg-comp { grid-template-columns: minmax(0, 1fr); }
  .sg-box--2 { grid-column: auto; }
  .sg-spec { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .sg-space li { grid-template-columns: 150px minmax(0, 1fr); }
  .sg-icons { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .sg-top { padding: 110px 0 48px; }
  .sg-bento { grid-template-columns: minmax(0, 1fr); }
  .sg-tile, .sg-box { padding: 20px; }
  .sg-tile .why-card__dot { top: 20px; right: 20px; }
  .sg-aa { font-size: 112px; letter-spacing: -4px; }
  .sg-ladder { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 6px; }
  .sg-ladder code { font-size: 11px; }
  .sg-sws { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sg-shapes { grid-template-columns: minmax(0, 1fr); }
  .sg-space li { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .sg-list li { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .sg-meta code { white-space: normal; }
  .sg-photos { grid-template-columns: minmax(0, 1fr); }
  .sg-icons { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sg-menu { height: 440px; }
  .sg-map__lbl--long { display: none; }
  .sg-box .quote-card { padding-top: 24px; }
  .sg-group { margin-top: 40px; }
  .sg-stack .btn, .sg-row .btn { white-space: normal; max-width: 100%; text-align: left; height: auto; min-height: 48px; }
  .sg-map__lbl--rot { display: none; }
  .sg-headbar { flex-wrap: wrap; }
  .sg-headbar .btn--white { width: auto; }
}

/* Swatch helpers: a rule inside a dark/photo swatch, a photo under a shade */
.sg-sw i.sg-sw--rule { display: flex; justify-content: center; }
.sg-sw i.sg-sw--rule em { display: block; width: 1px; height: 100%; }
.sg-sw i.sg-sw--over { position: relative; overflow: hidden; }
.sg-sw i.sg-sw--over img { width: 100%; height: 100%; object-fit: cover; }
.sg-sw i.sg-sw--over em { position: absolute; inset: 0; }
.sg-sw i.sg-sw--over em.sg-sw--half { inset: 25% 25%; }

/* ───────── Variants ───────── */
/* Marlo — section library (pages/variants.html, prefix v-) and the 404 page (prefix nf-).
   Every value comes from tokens.css; layouts follow the source frame (1328 container, 16px band inset, square corners). */

/* ───────── Catalogue chrome (the label bars; checkers ignore .v-label / .v-intro) ───────── */
/* The catalogue is ~30,000px tall: smooth scrolling lets fast scroll loops (the motion checker, a flicked trackpad) skip whole screens between frames, so reveals never fire. Instant scroll on the two long pages only. */
.v-intro { padding: 150px 0 72px; }
.v-intro .wrap { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.v-intro p { max-width: 640px; color: var(--text-2); }
.v-jump { display: flex; flex-wrap: wrap; gap: 10px 28px; margin-top: 8px; font-size: 14px; letter-spacing: -.14px; }
.v-jump li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.v-jump li > span { font-family: var(--font-display); font-weight: 500; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; color: var(--muted-ink); margin-right: 4px; }
.v-jump a { padding: 4px 10px; background: var(--surface); color: var(--text-2); font-size: 13px; transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); }
.v-jump a:hover { background: var(--dark); color: var(--on-dark); }
.v-item { padding-bottom: 72px; scroll-margin-top: 24px; }
.v-label { width: calc(100% - 2 * var(--gutter)); margin: 0 auto 32px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding: 12px 0; border-top: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--text-2); }
.v-label__id { padding: 4px 10px; background: var(--dark); color: var(--on-dark); font-family: var(--font-display); font-weight: 500; font-size: 13px; letter-spacing: 0; }
.v-label__name { font-family: var(--font-display); font-weight: 500; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; color: var(--text); }
.v-label__use { flex: 1 1 320px; max-width: 34em; }
.v-label__cls { width: 100%; font-size: 14px; color: var(--muted-ink); }
.v-head { font-family: var(--font-display); font-weight: 500; font-size: 16px; letter-spacing: -.16px; letter-spacing: .04em; text-transform: uppercase; color: var(--muted-ink); width: calc(100% - 2 * var(--gutter)); margin: 56px auto 24px; }

/* ───────── hero-b · split: copy left on white with guides, tall photo right flush to the band edge ───────── */
.v-hero-b { padding-top: 120px; }
.v-hero-b__in { display: grid; grid-template-columns: 58% 1fr; position: relative; }
.v-hero-b__copy { position: relative; padding: 120px 48px 120px var(--band-pad); display: flex; flex-direction: column; align-items: flex-start; gap: 32px; }
.v-hero-b__copy > p { max-width: 460px; color: var(--text-2); }
.v-hero-b__actions { display: flex; flex-wrap: wrap; gap: 16px; }
.v-hero-b__photo { position: relative; overflow: hidden; min-height: 100%; }
.v-hero-b__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.v-hero-b__tag { position: absolute; left: 16px; bottom: 16px; }

/* ───────── hero-c · centred statement over a photo band, chip row + two buttons ───────── */
.v-hero-c { min-height: clamp(620px, 58vw, 860px); overflow: hidden; color: var(--on-dark); display: flex; align-items: center; justify-content: center; }
.v-hero-c__photo { position: absolute; inset: 0; }
.v-hero-c__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.v-hero-c__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .55) 0%, rgba(0, 0, 0, .5) 60%, rgba(0, 0, 0, .3) 100%); }
.v-hero-c__in { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 32px; width: min(880px, 100% - 2 * var(--band-pad)); padding: 140px 0 100px; }
.v-hero-c__in .guide { background: var(--line-hero); }
.v-hero-c__in > h1 { width: 100%; }
.v-hero-c__in > p { max-width: 560px; color: var(--on-dark-2); }
.v-hero-c__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; }

/* ───────── hero-d · white editorial: two-tone H1 left, intro + button right, full-width photo below ───────── */
.v-hero-d { padding-top: 120px; }
.v-hero-d__top { display: flex; flex-direction: column; gap: 60px; padding-bottom: 48px; border-bottom: 1px solid var(--line-2); }
.v-hero-d__row { display: grid; grid-template-columns: minmax(0, 749px) minmax(0, 430px); justify-content: space-between; align-items: end; gap: 48px; }
.v-hero-d__intro { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--text-2); }
.v-hero-d__photo { margin-top: 48px; aspect-ratio: 1568 / 720; overflow: hidden; }
.v-hero-d__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; }

/* ───────── hero-e · dark cocoa band: centred H1, a photo "window" card, a stat strip ───────── */
.v-hero-e { padding: 160px 0 0; overflow: hidden; }
.v-hero-e .head { max-width: 880px; }
.v-hero-e .head > p { max-width: 560px; color: var(--on-dark-2); }
.v-hero-e__window { width: min(1000px, 100%); margin: 60px auto 0; padding: 16px 16px 0; background: var(--surface-2); }
.v-hero-e__window figure { aspect-ratio: 968 / 520; overflow: hidden; }
.v-hero-e__window img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; }
.v-hero-e__sill { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 0 16px; color: var(--text); font-family: var(--font-display); font-weight: 500; font-size: 14px; letter-spacing: -.14px; text-transform: uppercase; }
.v-hero-e__sill span:last-child { color: var(--muted-ink); }
.v-hero-e__stats { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line-dark); margin-top: 0; }
.v-hero-e__stats > div { padding: 40px 32px 48px; border-left: 1px solid var(--line-dark); display: flex; flex-direction: column; gap: 12px; }
.v-hero-e__stats > div:first-child { border-left: 0; padding-left: 0; }
.v-hero-e__stats p:not([class]) { font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--on-dark-2); max-width: 220px; }

/* ───────── hero-f · lead-gen: photo left 60%, off-white panel with the form right ───────── */
.v-hero-f { display: grid; grid-template-columns: 60% 1fr; min-height: 820px; }
.v-hero-f__photo { position: relative; overflow: hidden; }
.v-hero-f__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.v-hero-f__photo .chips { position: absolute; left: 24px; bottom: 24px; }
.v-hero-f__panel { background: var(--surface); padding: 140px 56px 56px; display: flex; flex-direction: column; gap: 32px; }
.v-hero-f__panel .head { gap: 24px; }
.v-hero-f__panel .head > p { font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--text-2); max-width: 420px; }
.v-hero-f__panel .form-panel { padding: 0; background: none; }
.v-hero-f__panel .field input, .v-hero-f__panel .field select { background: var(--surface-2); }

/* ───────── features-a · 2×2 cards on dark with cut-out model houses (library, new content) ───────── */
.v-feat-a .head { max-width: 880px; }
.v-feat-a__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); margin-top: var(--head-to-content); }

/* ───────── features-b · alternating photo / text rows on white with guides ───────── */
.v-feat-b__rows { display: flex; flex-direction: column; gap: 96px; margin-top: var(--head-to-content); position: relative; }
.v-feat-b__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: center; }
.v-feat-b__row--flip .v-feat-b__photo { order: 2; }
.v-feat-b__photo { aspect-ratio: 656 / 480; overflow: hidden; }
.v-feat-b__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.v-feat-b__row:hover .v-feat-b__photo img { transform: scale(1.04); }
.v-feat-b__text { padding: 0 48px; display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.v-feat-b__text > p { color: var(--text-2); max-width: 480px; }
.v-feat-b__list { display: flex; flex-direction: column; gap: 12px; font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--text); }
.v-feat-b__list li { display: flex; align-items: center; gap: 12px; }
.v-feat-b__list svg { width: 9px; height: 11px; flex: none; fill: var(--accent); }

/* ───────── features-c · 3-column icon cards on a hairline grid ───────── */
.v-feat-c__grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: var(--head-to-content); border: 1px solid var(--line-2); }
.v-feat-c__cell { padding: 40px 32px; border-left: 1px solid var(--line-2); display: flex; flex-direction: column; gap: 120px; transition: background var(--dur-fast) var(--ease); }
.v-feat-c__cell:first-child { border-left: 0; }
.v-feat-c__cell:hover { background: var(--surface); }
.v-feat-c__icon { width: 96px; height: 96px; }
.v-feat-c__icon img { width: 100%; height: 100%; }
.v-feat-c__text { display: flex; flex-direction: column; gap: 16px; }
.v-feat-c__text p { font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--text-2); max-width: 320px; }

/* ───────── work-a · the 4-column photo board (library; four builds) ───────── */
.v-work-a__nav { display: flex; justify-content: space-between; align-items: flex-start; }
.v-work-a__title { position: relative; margin: 74px 0 0 24.1%; width: 352px; }
.v-work-a__board { position: relative; margin-top: 120px; aspect-ratio: 1328 / 1860; }
.v-work-a__board .proj { position: absolute; }
.v-work-a__p1 { left: 0; top: 0; width: 24.02%; }        .v-work-a__p1 .proj__img { aspect-ratio: 319 / 400; }
.v-work-a__p2 { left: 50.68%; top: 4.5%; width: 49.32%; } .v-work-a__p2 .proj__img { aspect-ratio: 655 / 821; }
.v-work-a__p3 { left: 0; top: 54.6%; width: 50.53%; }     .v-work-a__p3 .proj__img { aspect-ratio: 671 / 467; }
.v-work-a__p4 { left: 75.38%; top: 75.5%; width: 24.62%; } .v-work-a__p4 .proj__img { aspect-ratio: 327 / 400; }

/* ───────── work-b · two-column grid of equal cards with chips ───────── */
.v-work-b__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; }
.v-work-b__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px var(--gap); margin-top: var(--head-to-content); }
.v-work-b__grid .proj__img { aspect-ratio: 656 / 480; }

/* ───────── process-a · horizontal card carousel on dark (library) ───────── */
.v-proc-a__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; }
.v-proc-a__arrows { display: flex; gap: 12px; }
.v-proc-a .arrow-btn { transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease); }
.v-proc-a__track { display: flex; gap: var(--gap); margin-top: var(--head-to-content); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-right: calc(-1 * var(--band-pad)); padding-right: var(--band-pad); }
.v-proc-a__track::-webkit-scrollbar { display: none; }
.v-step { flex: 0 0 432px; scroll-snap-align: start; background: var(--surface-2); color: var(--text); display: flex; flex-direction: column; }
.v-step__top { position: relative; padding: 24px 32px 32px; display: flex; flex-direction: column; gap: 32px; min-height: 240px; }
.v-step__meta { display: flex; justify-content: space-between; align-items: center; font-size: 14px; letter-spacing: -.14px; color: var(--text); }
.v-step__meta i { display: block; width: 4px; height: 4px; background: var(--text); }
.v-step__text { display: flex; flex-direction: column; gap: 12px; }
.v-step__text h3 { max-width: 300px; }
.v-step__text p { font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--text-2); max-width: 340px; }
.v-step__photo { position: relative; aspect-ratio: 432 / 245; overflow: hidden; }
.v-step__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.v-step:hover .v-step__photo img { transform: scale(1.04); }
.v-step__icon { position: absolute; right: 0; bottom: 0; width: 72px; height: 72px; background: var(--surface-2); display: grid; place-items: center; }
.v-step__icon img { width: 40px; height: 40px; }

/* ───────── process-b · numbered vertical list with hairlines on white ───────── */
.v-proc-b__grid { display: grid; grid-template-columns: minmax(0, 432px) minmax(0, 752px); justify-content: space-between; gap: 48px; }
.v-proc-b__list { display: flex; flex-direction: column; border-top: 1px solid var(--line-2); }
.v-proc-b__row { display: grid; grid-template-columns: 72px 1fr auto; gap: 24px; align-items: start; padding: 32px 0; border-bottom: 1px solid var(--line-2); transition: padding-left var(--dur-fast) var(--ease); }
.v-proc-b__row:hover { padding-left: 8px; }
.v-proc-b__n { font-family: var(--font-display); font-weight: 500; font-size: 16px; letter-spacing: -.16px; color: var(--muted-ink); padding-top: 4px; }
.v-proc-b__text { display: flex; flex-direction: column; gap: 12px; }
.v-proc-b__text p { font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--text-2); max-width: 480px; }

/* ───────── proof-b · stat band: four big two-tone numbers on dark ───────── */
.v-stats { padding: 120px 0; }
.v-stats__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.v-stats__item { padding: 8px 32px 8px; border-left: 1px solid var(--line-dark); display: flex; flex-direction: column; gap: 20px; }
.v-stats__item:first-child { border-left: 0; padding-left: 0; }
.v-stats__item p:not([class]) { font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--on-dark-2); max-width: 220px; }
.v-stats__foot { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; margin-top: 72px; padding-top: 24px; border-top: 1px solid var(--line-dark); color: var(--on-dark-2); font-size: 14px; letter-spacing: -.14px; }

/* ───────── proof-c · award / logo tile row ───────── */
.v-awards__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; }
.v-awards__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--gap); margin-top: var(--head-to-content); }
.v-award { aspect-ratio: 316 / 200; border: 1px solid var(--line-2); display: grid; place-items: center; color: var(--text); transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease); }
.v-award:hover { border-color: var(--text); background: var(--surface); }
.v-award svg { width: 200px; height: 90px; }
.v-award__mark { fill: var(--text-2); }

/* ───────── pricing-a · three off-white plan panels, each with a spec table ───────── */
.v-price-a .head { max-width: 656px; }
.v-price-a__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap); margin-top: var(--head-to-content); }
.v-plan { position: relative; background: var(--surface); padding: 32px; display: flex; flex-direction: column; gap: 32px; }
.v-plan__dot { position: absolute; top: 32px; right: 32px; width: 8px; height: 8px; background: var(--accent-soft); }
.v-plan__head { display: flex; flex-direction: column; gap: 16px; }
.v-plan__price { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.v-plan__price small { font-family: var(--font-display); font-weight: 500; font-size: 16px; letter-spacing: -.16px; text-transform: uppercase; color: var(--muted-ink); }
.v-plan__head p { font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--text-2); }
.v-plan .btn { margin-top: auto; }
.v-plan__tag { position: absolute; top: 0; left: 32px; transform: translateY(-50%); padding: 6px 10px; background: var(--accent); color: var(--on-accent); font-family: var(--font-display); font-weight: 500; font-size: 14px; letter-spacing: -.14px; text-transform: uppercase; }
.v-spec { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid rgba(66, 48, 33, .08); }
.v-spec__cell { display: flex; align-items: center; gap: 12px; padding: 0 16px; height: 49px; border-top: 1px solid rgba(66, 48, 33, .08); font-size: 14px; letter-spacing: -.14px; color: var(--text); }
.v-spec__cell:nth-child(-n+2) { border-top: 0; }
.v-spec__cell:nth-child(even) { border-left: 1px solid rgba(66, 48, 33, .08); }
.v-spec__cell svg { width: 14px; height: 14px; flex: none; stroke: var(--text-2); fill: none; }

/* ───────── pricing-b · comparison table with hairlines ───────── */
.v-price-b .head { max-width: 656px; }
.v-table-wrap { margin-top: var(--head-to-content); overflow-x: auto; }
.v-table { width: 100%; border-collapse: collapse; min-width: 760px; }
.v-table th, .v-table td { padding: 20px 24px; text-align: left; border-bottom: 1px solid var(--line-2); vertical-align: middle; font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--text-2); }
.v-table th { font-family: var(--font-display); font-weight: 500; font-size: 16px; letter-spacing: -.16px; text-transform: uppercase; color: var(--text); }
.v-table thead th { padding-top: 0; padding-bottom: 24px; vertical-align: bottom; }
.v-table thead th small { display: block; margin-top: 8px; font-family: var(--font); font-weight: 400; font-size: 14px; text-transform: none; letter-spacing: -.14px; color: var(--muted-ink); }
.v-table th:first-child, .v-table td:first-child { padding-left: 0; width: 26%; min-width: 180px; }
.v-table td + td, .v-table th + th { border-left: 1px solid var(--line-2); }
.v-table tbody th { font-family: var(--font); font-weight: 400; font-size: 14px; text-transform: none; letter-spacing: -.14px; }
.v-table__pick { background: var(--surface); }
.v-table__yes { display: inline-grid; place-items: center; width: 20px; height: 20px; background: var(--text); color: var(--on-dark); }
.v-table__yes svg { width: 11px; height: 11px; stroke: currentColor; fill: none; }
.v-table__no { display: inline-block; width: 12px; height: 1px; background: var(--muted); vertical-align: middle; }
.v-table tfoot td { border-bottom: 0; padding-top: 24px; }

/* ───────── faq-a · head left, accordion right (library) ───────── */
.v-faq__grid { display: grid; grid-template-columns: minmax(0, 544px) minmax(0, 656px); justify-content: space-between; gap: 48px; }
.v-faq__list { display: flex; flex-direction: column; gap: 16px; }
.v-faq__item { border: 1px solid var(--line-2); background: var(--surface-2); transition: border-color var(--dur-fast) var(--ease); }
.v-faq__item:hover, .v-faq__item[open] { border-color: var(--text); }
.v-faq__item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 24px; font-family: var(--font-display); font-weight: 500; font-size: 16px; line-height: 1.48; letter-spacing: -.16px; text-transform: uppercase; color: var(--text); }
.v-faq__item summary::-webkit-details-marker { display: none; }
.v-faq__item summary svg { width: 14px; height: 14px; flex: none; stroke: var(--text); fill: none; transition: transform .3s var(--ease-out); }
.v-faq__item[open] summary svg { transform: rotate(180deg); }
.v-faq__item p { padding: 0 72px 24px 24px; font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--text-2); }

/* ───────── contact-a · split: head + details left, form panel right ───────── */
.v-contact-a__grid { display: grid; grid-template-columns: 432px 1fr 656px; position: relative; }
.v-contact-a__guide { left: auto; right: 656px; }
.v-contact-a__left { display: flex; flex-direction: column; align-items: flex-start; gap: 48px; }
.v-contact-a__rows { width: 100%; display: flex; flex-direction: column; border-top: 1px solid var(--line-2); }
.v-contact-a__rows > div { display: grid; grid-template-columns: 120px 1fr; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--line-2); font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--text-2); }
.v-contact-a__rows b { font-family: var(--font-display); font-weight: 500; font-size: 16px; letter-spacing: -.16px; text-transform: uppercase; color: var(--text); }
.v-contact-a__rows a { transition: color var(--dur-fast) var(--ease); }
.v-contact-a__rows a:hover { color: var(--accent-ink); }
.v-contact-a__form { grid-column: 3; }

/* ───────── contact-b · centred form on a dark band ───────── */
.v-contact-b .head { max-width: 656px; }
.v-contact-b .head > p { max-width: 520px; color: var(--on-dark-2); }
.v-contact-b__panel { width: min(656px, 100%); margin: var(--head-to-content) auto 0; color: var(--text); }
.v-contact-b__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

/* ───────── cta-b · white band: two-tone headline + phone pill ───────── */
.v-cta-b { padding: 96px 0; border-top: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); }
.v-cta-b__in { display: grid; grid-template-columns: minmax(0, 656px) minmax(0, 432px); justify-content: space-between; align-items: center; gap: 48px; position: relative; }
.v-cta-b__side { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; color: var(--text-2); }
.v-cta-b__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }

/* ───────── cta-c · off-white band with one big number ───────── */
.v-cta-c { background: var(--surface); padding: 120px 0; }
.v-cta-c__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 560px); align-items: center; gap: 48px; }
.v-cta-c__num { font-family: var(--font-display); font-weight: 700; font-size: clamp(96px, 13vw, 200px); line-height: .9; letter-spacing: -.04em; text-transform: uppercase; color: var(--text); display: flex; align-items: baseline; gap: .08em; flex-wrap: wrap; }
.v-cta-c__num .dim { color: var(--muted); font-size: .4em; letter-spacing: -.02em; }
.v-cta-c__copy { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.v-cta-c__copy p { color: var(--text-2); max-width: 480px; }

/* ───────── footer-b · dark footer with a giant wordmark bleeding off the bottom ───────── */
.v-foot-b { padding: 120px var(--band-pad) 0; overflow: hidden; }
.v-foot-b__grid { display: grid; grid-template-columns: 1.93fr 1.48fr 1.48fr 1fr; gap: 32px; padding-bottom: 64px; }
.v-foot-b__col { display: flex; flex-direction: column; gap: 32px; }
.v-foot-b__col > p { font-size: 18px; letter-spacing: -.18px; color: var(--on-dark); }
.v-foot-b__col ul { display: flex; flex-direction: column; gap: 14px; font-family: var(--font-display); font-weight: 500; font-size: 16px; line-height: 1.48; letter-spacing: -.16px; text-transform: uppercase; color: var(--muted); }
.v-foot-b__col a { transition: color var(--dur-fast) var(--ease); }
.v-foot-b__col a:hover { color: var(--on-dark); }
.v-foot-b__lead { max-width: 360px; font-size: 14px; line-height: 1.48; letter-spacing: -.14px; color: var(--on-dark-2); }
.v-foot-b__bottom { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding: 20px 0; border-top: 1px solid var(--line-dark); font-size: 14px; letter-spacing: -.14px; color: var(--muted); }
.v-foot-b__bottom .site-foot__social a { color: var(--on-dark-2); }
.v-foot-b__bottom .site-foot__social a:hover { color: var(--on-dark); }
.v-foot-b__mark { height: clamp(70px, 9.6vw, 160px); overflow: hidden; margin-top: 24px; }
.v-foot-b__mark p { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: clamp(88px, 18.6vw, 300px); line-height: .9; letter-spacing: -.03em; color: var(--on-dark); white-space: nowrap; pointer-events: none; }
.v-foot-b__mark sup { font-size: .14em; vertical-align: top; position: relative; top: .55em; margin-left: .06em; font-weight: 500; letter-spacing: 0; }

/* ───────── 404 (pages/404.html, prefix nf-) ───────── */
.nf-hero { min-height: clamp(620px, 72vw, 900px); overflow: hidden; color: var(--on-dark); display: flex; }
.nf-hero__in { display: flex; flex-direction: column; align-items: flex-start; gap: 32px; padding: 200px 0 320px; min-height: inherit; }
.nf-hero__in .guide { left: 0; }
.nf-hero__in h1 { max-width: 749px; }
.nf-hero__in > p { max-width: 460px; color: var(--on-dark-2); }
.nf-hero__mark { position: absolute; left: var(--band-pad); bottom: clamp(-60px, -2.6vw, -28px); margin: 0; font-family: var(--font-display); font-weight: 700; font-size: clamp(120px, 24vw, 380px); line-height: .9; letter-spacing: -.03em; color: rgba(148, 135, 125, .45); white-space: nowrap; pointer-events: none; }

/* ───────── Responsive ───────── */
@media (max-width: 1280px) {
  .v-hero-b__copy { padding: 96px 32px 96px var(--band-pad); }
  .v-feat-c__cell { gap: 80px; }
  .v-step { flex-basis: 380px; }
  .v-contact-a__grid { grid-template-columns: 1fr 48px minmax(0, 560px); }
  .v-contact-a__guide { right: 560px; }
  .v-hero-f__panel { padding: 120px 40px 40px; }
}
@media (max-width: 1024px) {
  .v-intro { padding-top: 120px; }
  .v-hero-b__in { grid-template-columns: 1fr; }
  .v-hero-b__copy { padding: 96px var(--band-pad) 56px; }
  .v-hero-b__photo { aspect-ratio: 4 / 3; min-height: 0; }
  .v-hero-c__in { padding: 120px var(--band-pad) 80px; }
  .v-hero-d__row { grid-template-columns: 1fr; gap: 32px; }
  .v-hero-e { padding-top: 120px; }
  .v-hero-e__stats { grid-template-columns: 1fr 1fr; border-top: 0; }
  .v-hero-e__stats > div { border-top: 1px solid var(--line-dark); padding: 32px 24px; }
  .v-hero-e__stats > div:first-child { padding-left: 0; }
  .v-hero-e__stats > div:nth-child(odd) { border-left: 0; padding-left: 0; }
  .v-hero-f { grid-template-columns: 1fr; min-height: 0; }
  .v-hero-f__photo { aspect-ratio: 16 / 10; }
  .v-hero-f__panel { padding: 56px var(--band-pad); }
  .v-feat-a__grid { gap: var(--gap); }
  .v-feat-b__rows { gap: 64px; }
  .v-feat-b__text { padding: 0 24px; }
  .v-feat-c__grid { grid-template-columns: 1fr; border-left: 0; border-right: 0; }
  .v-feat-c__cell { border-left: 0; border-top: 1px solid var(--line-2); gap: 48px; }
  .v-feat-c__cell:first-child { border-top: 0; }
  .v-work-a__title { margin-left: 0; }
  .v-work-a__board { aspect-ratio: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin-top: 56px; }
  .v-work-a__board .proj { position: static; width: auto; }
  .v-work-a__board .guide { display: none; }
  .v-proc-b__grid { grid-template-columns: 1fr; }
  .v-stats__grid { grid-template-columns: 1fr 1fr; gap: 48px 0; }
  .v-stats__item:nth-child(odd) { border-left: 0; padding-left: 0; }
  .v-awards__grid { grid-template-columns: 1fr 1fr; }
  .v-price-a__grid { grid-template-columns: 1fr; }
  .v-faq__grid { grid-template-columns: 1fr; }
  .v-contact-a__grid { grid-template-columns: 1fr; gap: 56px; }
  .v-contact-a__form { grid-column: auto; }
  .v-contact-a__grid .guide { display: none; }
  .v-cta-b__in { grid-template-columns: 1fr; }
  .v-cta-c__in { grid-template-columns: 1fr; }
  .v-foot-b { padding-top: 80px; }
  .v-foot-b__grid { grid-template-columns: 1fr 1fr 1fr; }
  .v-foot-b__grid .v-foot-b__col:first-child { grid-column: 1 / -1; }
  .nf-hero__in { padding: 160px 0 260px; }
}
@media (max-width: 820px) {
  .v-feat-a__grid, .v-feat-b__row, .v-work-b__grid, .v-hero-e__stats, .v-stats__grid { grid-template-columns: 1fr; }
  .v-feat-b__row--flip .v-feat-b__photo { order: 0; }
  .v-feat-b__text { padding: 0; }
  .v-hero-e__stats > div:nth-child(n) { border-left: 0; padding-left: 0; }
  .v-stats__item:nth-child(n) { border-left: 0; padding-left: 0; }
  .v-step { flex-basis: 320px; }
  .v-work-a__board { grid-template-columns: 1fr; }
  .v-awards__grid { grid-template-columns: 1fr 1fr; }
  .v-contact-b__row { grid-template-columns: 1fr; }
  .v-foot-b { padding: 72px var(--band-pad) 0; }
  .v-foot-b__grid { grid-template-columns: 1fr 1fr; }
  .v-proc-b__row { grid-template-columns: 48px 1fr; }
  .v-proc-b__row .chip { grid-column: 2; }
}
@media (max-width: 600px) {
  .v-intro { padding: 110px 0 48px; }
  .v-head { margin-top: 32px; }
  .v-label { gap: 6px 12px; }
  .v-hero-b { padding-top: 90px; }
  .v-hero-b__copy { padding: 56px var(--band-pad) 40px; }
  .v-hero-c { min-height: 0; }
  .v-hero-c__in { padding: 110px 20px 64px; gap: 24px; }
  .v-hero-d { padding-top: 90px; }
  .v-hero-d__top { gap: 32px; padding-bottom: 32px; }
  .v-hero-d__photo { aspect-ratio: 4 / 3; margin-top: 32px; }
  .v-hero-e { padding-top: 96px; }
  .v-hero-e__window { margin-top: 40px; padding: 10px 10px 0; }
  .v-hero-e__window figure { aspect-ratio: 4 / 3; }
  .v-hero-e__sill { flex-direction: column; align-items: flex-start; gap: 4px; }
  .v-hero-f__panel { padding: 40px var(--band-pad); }
  .v-feat-c__cell { padding: 32px 24px; gap: 40px; }
  .v-work-a__nav, .v-work-b__head, .v-proc-a__head, .v-awards__head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .v-work-a__title { width: auto; margin-top: 32px; }
  .v-work-a__board { gap: 40px; }
  .v-work-a__board .proj__img { aspect-ratio: 4 / 3 !important; }
  .v-work-b__grid { gap: 40px; }
  .v-step { flex-basis: 86%; }
  .v-step__top { padding: 20px 24px 28px; min-height: 0; }
  .v-stats { padding: 80px 0; }
  .v-stats__grid { gap: 40px; }
  .v-awards__grid { grid-template-columns: 1fr; }
  .v-award { aspect-ratio: 316 / 160; }
  .v-plan { padding: 24px; }
  .v-faq__item summary { padding: 20px; }
  .v-faq__item p { padding: 0 20px 20px; }
  .v-contact-a__rows > div { grid-template-columns: 1fr; gap: 4px; }
  .v-cta-b { padding: 64px 0; }
  .v-cta-c { padding: 80px 0; }
  .v-foot-b__grid { grid-template-columns: 1fr; gap: 32px; }
  .v-foot-b__bottom { flex-direction: column; align-items: flex-start; }
  .v-foot-b__mark { height: 15vw; margin-top: 16px; }
  .v-foot-b__mark p { font-size: 19vw; }
  .nf-hero { min-height: 0; }
  .nf-hero__in { padding: 130px 0 200px; gap: 24px; }
  .nf-hero__mark { font-size: 44vw; left: var(--band-pad); bottom: -.08em; }
}

/* ── header: logo + two header variants (Farhan 2026-10-12: every header shows the business logo; the MENU
   button only appears where the nav links hide, at the right) ── */
.site-head .logo { color: inherit; font-size: 24px; flex: none; }
.site-head .logo svg { width: 22px; height: 27px; }
.site-head__end { display: flex; align-items: center; gap: 24px; }
.site-head .menu-btn { display: none; }
/* header-b · split: links left, logo centred, button right */
.site-head--split .nav-links { position: static; transform: none; gap: 32px; }
.site-head--split .logo { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
@media (max-width: 1280px) {
  .site-head--split .nav-links { display: none; }
  .site-head--split .logo { position: static; transform: none; }
  .site-head--split .menu-btn { display: inline-flex; }
}
@media (max-width: 1024px) { .site-head .menu-btn { display: inline-flex; } }
@media (max-width: 600px) { .site-head__end .btn { display: none; } }   /* phone: logo + MENU only, any button style */
