:root {
  --ink: #20211f;
  --ink-soft: #52534e;
  --muted: #777871;
  --paper: #f8f7f3;
  --warm: #eeece6;
  --line: rgba(32, 33, 31, 0.14);
  --line-strong: rgba(32, 33, 31, 0.26);
  --line-dark: rgba(255, 255, 255, 0.18);
  --white: #ffffff;
  --dark: #20211f;
  --dark-soft: #2d2e2a;
  --accent: #b8aa91;
  --container-max: 1240px;
  --gutter-desktop: clamp(28px, 4vw, 52px);
  --gutter-tablet: 32px;
  --gutter-mobile: 20px;
  --gutter: var(--gutter-desktop);
  --section-y-desktop: clamp(104px, 9vw, 128px);
  --section-y-tablet: 88px;
  --section-y-mobile: 68px;
  --section-space: var(--section-y-desktop);
  --section-compact: clamp(50px, 5vw, 64px);
  --heading-gap-desktop: clamp(44px, 4vw, 58px);
  --heading-gap-tablet: 42px;
  --heading-gap-mobile: 34px;
  --heading-gap: var(--heading-gap-desktop);
  --grid-gap-desktop: clamp(24px, 2.25vw, 32px);
  --grid-gap-tablet: 24px;
  --grid-gap-mobile: 28px;
  --grid-gap: var(--grid-gap-desktop);
  --type-h1: clamp(46px, 5.3vw, 72px);
  --type-h2: clamp(34px, 3.6vw, 48px);
  --type-h3: clamp(20px, 1.7vw, 24px);
  --type-body-lg: 17px;
  --type-body: 15px;
  --type-body-sm: 14px;
  --type-caption: 11px;
  --radius-card: 2px;
  --radius-control: 3px;
  --radius-round: 999px;
  --shadow-nav: 0 8px 28px rgba(20, 21, 19, 0.055);
  --shadow-floating: 0 10px 26px rgba(24, 33, 26, 0.14);
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --font-sans: "Avenir Next", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--font-sans); font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
body, button, input, select, textarea { font-family: var(--font-sans); }
a { color: inherit; text-decoration: none; }
button { border: 0; cursor: pointer; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid #7f735d; outline-offset: 3px; }
p, h1, h2, h3, ul { margin: 0; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
ul { padding: 0; list-style: none; }
.container { width: min(var(--container-max), calc(100% - (var(--gutter) * 2))); margin: 0 auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.topbar { position: relative; z-index: 30; color: #d6d4ce; background: #242522; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; }
.topbar__inner { min-height: 32px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.topbar__links { display: flex; gap: 20px; }
.topbar__links a { color: #f5f4ef; opacity: 0.85; }
.topbar__links a:hover { opacity: 1; }

.site-header { position: absolute; z-index: 25; top: 32px; left: 0; width: 100%; color: #fff; transition: background 280ms ease, color 280ms ease, box-shadow 280ms ease, transform 280ms ease; }
.site-header.is-scrolled { position: fixed; top: 0; color: var(--ink); background: rgba(248, 247, 243, 0.96); box-shadow: var(--shadow-nav); backdrop-filter: blur(14px); }
.site-header__inner { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.site-brand { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 12px; min-height: 46px; }
.site-brand__logo { display: block; width: 46px; height: 46px; object-fit: contain; }
.site-brand__name { font-size: 17px; font-weight: 700; line-height: 1; letter-spacing: 0.22em; }
.desktop-nav { display: flex; align-items: center; gap: clamp(16px, 2vw, 34px); margin-left: auto; margin-right: 12px; font-size: 13px; letter-spacing: 0.03em; }
.desktop-nav a, .mobile-menu a { opacity: 0.86; transition: opacity 220ms ease; }
.desktop-nav a:hover, .mobile-menu a:hover { opacity: 1; }
.site-header__actions { display: flex; align-items: center; gap: 12px; }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 10px; background: transparent; color: currentColor; }
.menu-toggle span:not(.sr-only) { display: block; height: 1px; width: 22px; margin: 5px auto; background: currentColor; transition: transform 200ms ease, opacity 200ms ease; }
.menu-toggle.is-open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-toggle.is-open span:nth-child(2) { opacity: 0; }
.menu-toggle.is-open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.mobile-menu { display: none; border-top: 1px solid rgba(32, 33, 31, 0.1); background: rgba(248, 247, 243, 0.98); color: var(--ink); }
.mobile-menu__inner { display: grid; gap: 18px; padding-top: 24px; padding-bottom: 28px; }

.button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 24px; border: 1px solid transparent; border-radius: var(--radius-control); font-size: var(--type-caption); font-weight: 600; line-height: 1; letter-spacing: 0.1em; text-transform: uppercase; transition: background 220ms ease, border-color 220ms ease, color 220ms ease, opacity 220ms ease, transform 320ms var(--ease-out); }
.button:hover { transform: translateY(-1px); }
.button--small { min-height: 42px; padding: 0 18px; font-size: 10px; }
.button--primary { background: var(--ink); color: #fff; }
.site-header:not(.is-scrolled) .button--primary { background: #fff; color: var(--ink); }
.button--primary:hover { background: #393a36; color: #fff; }
.site-header:not(.is-scrolled) .button--primary:hover { background: #e9e7df; color: var(--ink); }
.button--light { background: #f7f6f1; color: var(--ink); }
.button--light:hover { background: #fff; }
.button--ghost-light { border-color: rgba(255,255,255,0.56); color: #fff; background: transparent; }
.button--ghost-light:hover { border-color: #fff; background: rgba(255,255,255,0.12); }
.button--text, .button--text-light { min-height: auto; padding: 0; border-radius: 0; justify-content: flex-start; background: transparent; font-size: var(--type-caption); letter-spacing: 0.1em; }
.button--text { color: var(--ink); }
.button--text-light { color: #fff; }
.button--text:hover, .button--text-light:hover { transform: translateX(3px); opacity: 0.72; }

.hero { position: relative; min-height: min(760px, 78vh); overflow: hidden; color: #fff; background: #30312e; }
.hero__slides, .hero-slide, .hero-slide__media, .hero-slide__veil { position: absolute; inset: 0; }
.hero-slide { opacity: 0; visibility: hidden; transition: opacity 800ms ease, visibility 800ms ease; }
.hero-slide.is-active { opacity: 1; visibility: visible; }
.hero-slide__media { width: 100%; height: 100%; }
.hero-slide__veil { background: linear-gradient(90deg, rgba(18, 19, 17, 0.46) 0%, rgba(18, 19, 17, 0.25) 44%, rgba(18, 19, 17, 0.1) 100%), linear-gradient(0deg, rgba(18,19,17,0.24), transparent 52%); }
.hero__content-wrap { position: relative; z-index: 2; min-height: inherit; display: flex; align-items: center; padding-top: 74px; padding-bottom: 98px; }
.hero__content { width: min(620px, 100%); padding-top: 44px; }
.eyebrow { margin-bottom: 18px; color: var(--muted); font-size: var(--type-caption); font-weight: 600; letter-spacing: 0.18em; line-height: 1.4; text-transform: uppercase; }
.eyebrow--light { color: rgba(255,255,255,0.72); }
h1, h2, h3 { font-weight: 500; line-height: 1.14; }
h1 { max-width: 690px; font-size: var(--type-h1); letter-spacing: -0.04em; }
.hero__body { max-width: 560px; margin-top: 26px; color: rgba(255,255,255,0.83); font-size: var(--type-body-lg); line-height: 1.7; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
.hero__benefits { display: grid; gap: 10px; max-width: 550px; margin-top: 43px; color: rgba(255,255,255,0.78); font-size: 13px; }
.hero__benefits li { display: flex; align-items: flex-start; gap: 10px; }
.benefit-dot { width: 6px; height: 6px; flex: 0 0 auto; margin-top: 8px; border-radius: 50%; background: #c8bca8; }
.hero__controls { position: absolute; z-index: 3; right: 0; bottom: 24px; left: 0; display: flex; justify-content: space-between; align-items: center; }
.hero__dots { display: flex; gap: 8px; }
.hero-dot { width: 30px; height: 3px; padding: 0; background: rgba(255,255,255,0.35); }
.hero-dot.is-active { background: #fff; }
.hero__arrows { display: flex; gap: 8px; }
.hero__arrows button { width: 42px; height: 42px; color: #fff; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.36); font-size: 18px; transition: background 220ms ease, border-color 220ms ease; }
.hero__arrows button:hover { border-color: rgba(255,255,255,0.7); background: rgba(255,255,255,0.16); }

.section { padding: var(--section-space) 0; scroll-margin-top: 78px; }
.section--warm { background: var(--warm); }
.section--dark { color: #fff; background: var(--dark); }
.section--quality { background: #eae8e2; }
.section-heading { max-width: 760px; margin-bottom: var(--heading-gap); }
.section-heading h2, .split-layout__copy h2 { font-size: var(--type-h2); letter-spacing: -0.035em; }
.section-heading__intro { max-width: 680px; margin-top: 22px; color: var(--ink-soft); font-size: var(--type-body-lg); line-height: 1.7; }
.section-heading--dark .section-heading__intro { color: rgba(255,255,255,0.7); }
.section-heading--dark { color: #fff; }

.trust-strip { padding: var(--section-compact) 0; border-bottom: 1px solid var(--line); background: var(--paper); }
.trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--grid-gap); }
.trust-item { position: relative; padding-left: 25px; }
.trust-item__index { position: absolute; top: 2px; left: 0; color: var(--accent); font-size: 11px; letter-spacing: 0.13em; }
.trust-item h3 { font-size: 17px; line-height: 1.3; }
.trust-item p { margin-top: 9px; color: var(--ink-soft); font-size: var(--type-body-sm); line-height: 1.65; }

.card-grid { display: grid; gap: var(--grid-gap); }
.card-grid--3 { grid-template-columns: repeat(3, 1fr); }
.image-card, .feature-card, .audience-card, .evidence-card { min-width: 0; background: transparent; }
.image-card__media, .feature-card__media, .audience-card__media, .evidence-card__media { overflow: hidden; }
.image-card__body { padding: 20px 0 0; }
.image-card h3, .feature-card h3, .audience-card h3, .evidence-card h3 { font-size: var(--type-h3); letter-spacing: -0.025em; }
.image-card p, .feature-card p, .audience-card p, .evidence-card p { margin-top: 10px; color: var(--ink-soft); font-size: var(--type-body-sm); line-height: 1.65; }

.media-placeholder { position: relative; aspect-ratio: var(--media-ratio, 4 / 3); display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: 5px; overflow: hidden; padding: 20px; color: rgba(32, 33, 31, 0.76); background: #d5d1c6; }
.media-placeholder::before, .media-placeholder::after { position: absolute; content: ""; pointer-events: none; }
.media-placeholder::before { top: -24%; right: -12%; width: 75%; height: 120%; border: 1px solid rgba(255,255,255,0.44); border-radius: 50%; transform: rotate(-14deg); }
.media-placeholder::after { right: 12%; bottom: 15%; width: 45%; height: 42%; border: 1px solid rgba(255,255,255,0.5); transform: skewY(-13deg); }
.media-placeholder > * { position: relative; z-index: 1; }
.media-placeholder__tag { color: rgba(32,33,31,0.6); font-size: 10px; font-weight: 700; letter-spacing: 0.14em; }
.media-placeholder strong { max-width: 320px; font-size: 15px; font-weight: 600; line-height: 1.35; }
.media-placeholder small { color: rgba(32,33,31,0.6); font-size: 11px; }
.media-placeholder code { font-size: 10px; }
.media-placeholder--video video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; }
.media-placeholder__play { position: absolute; top: 18px; right: 20px; z-index: 2; width: 38px; height: 38px; display: grid; place-items: center; color: var(--ink); border: 1px solid rgba(32,33,31,0.36); border-radius: 50%; font-size: 16px; }
.media-placeholder--sand { background: linear-gradient(135deg, #c8bda8, #ece5d7 60%, #b4a991); }
.media-placeholder--stone { background: linear-gradient(135deg, #a6a59f, #dedbd4 60%, #8f908b); }
.media-placeholder--clay { background: linear-gradient(135deg, #aa8670, #dcc4b2 62%, #917262); }
.media-placeholder--linen { background: linear-gradient(135deg, #d8cfbd, #f1ece1 62%, #b9ad95); }
.media-placeholder--charcoal { color: rgba(255,255,255,0.82); background: linear-gradient(135deg, #272925, #61625d 60%, #171815); }
.media-placeholder--charcoal .media-placeholder__tag, .media-placeholder--charcoal small { color: rgba(255,255,255,0.58); }
.media-placeholder--charcoal .media-placeholder__play { color: #fff; border-color: rgba(255,255,255,0.42); }
.media-placeholder--taupe { background: linear-gradient(135deg, #a99883, #ded5c8 64%, #8b7b6b); }
.media-placeholder--graphite { color: rgba(255,255,255,0.82); background: linear-gradient(135deg, #393b38, #6a6b65 60%, #242623); }
.media-placeholder--graphite .media-placeholder__tag, .media-placeholder--graphite small { color: rgba(255,255,255,0.58); }
.media-placeholder--graphite .media-placeholder__play { color: #fff; border-color: rgba(255,255,255,0.42); }
.media-placeholder--oak { background: linear-gradient(135deg, #b4936e, #e3d3bf 64%, #947354); }
.media-placeholder--mist { background: linear-gradient(135deg, #aab8b5, #dce5e0 64%, #84928f); }
.media-placeholder--blue { color: rgba(255,255,255,0.84); background: linear-gradient(135deg, #3f5962, #91acaf 62%, #32434d); }
.media-placeholder--blue .media-placeholder__tag, .media-placeholder--blue small { color: rgba(255,255,255,0.65); }
.media-placeholder--blue .media-placeholder__play { color: #fff; border-color: rgba(255,255,255,0.42); }
.media-placeholder--olive { background: linear-gradient(135deg, #75806e, #b5b7a6 62%, #5c675b); }
.media-placeholder--city { color: rgba(255,255,255,0.84); background: linear-gradient(135deg, #505964, #a6adb0 62%, #343c45); }
.media-placeholder--city .media-placeholder__tag, .media-placeholder--city small { color: rgba(255,255,255,0.65); }
.media-placeholder--team { background: linear-gradient(135deg, #988d7c, #d7cdbd 62%, #756b60); }
.media-frame { position: relative; aspect-ratio: var(--media-ratio, 4 / 3); overflow: hidden; border-radius: var(--radius-card); background: #d5d1c6; }
.media-frame img, .media-frame video { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform 700ms var(--ease-out); }
.hero-slide__media.media-frame { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; }
.hero-slide__media.media-frame, .hero-slide__media.media-frame img { border-radius: 0; }

.split-layout { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); align-items: center; gap: clamp(56px, 8vw, 112px); }
.split-layout--about .split-layout__media { order: 2; }
.split-layout__copy > p:not(.eyebrow) { max-width: 560px; margin-top: 22px; color: var(--ink-soft); font-size: var(--type-body-lg); line-height: 1.72; }
.value-list { display: grid; gap: 13px; margin: 32px 0 29px; }
.value-list__item { display: flex; align-items: center; gap: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.value-list__item span { color: var(--accent); font-size: 11px; letter-spacing: 0.12em; }
.value-list__item strong { font-size: 14px; font-weight: 600; }

.feature-card { color: #fff; }
.feature-card__body { padding: 24px 0 0; }
.feature-card p { color: rgba(255,255,255,0.7); }
.feature-card .button { margin-top: 20px; }

.why-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 clamp(40px, 5vw, 64px); border-top: 1px solid var(--line); }
.why-item { display: grid; grid-template-columns: 40px 1fr; gap: 20px; padding: 32px 0 34px; border-bottom: 1px solid var(--line); }
.why-item__number { color: var(--accent); font-size: 12px; letter-spacing: 0.13em; }
.why-item h3 { font-size: var(--type-h3); }
.why-item__bold { margin-top: 11px; color: var(--ink); font-size: var(--type-body); font-weight: 600; }
.why-item p:last-child { margin-top: 7px; color: var(--ink-soft); font-size: var(--type-body-sm); line-height: 1.65; }

.timeline { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--grid-gap); }
.timeline__step { position: relative; padding-right: 15px; }
.timeline__marker { position: relative; z-index: 1; width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: var(--radius-round); background: var(--warm); color: var(--ink); font-size: var(--type-caption); letter-spacing: 0.09em; }
.timeline__line { position: absolute; top: 23px; right: -18px; left: 48px; height: 1px; background: var(--line); }
.timeline__line.is-last { display: none; }
.timeline__step h3 { margin-top: 26px; font-size: 20px; }
.timeline__step p { margin-top: 11px; color: var(--ink-soft); font-size: var(--type-body-sm); line-height: 1.65; }
.section-cta { margin-top: clamp(38px, 4vw, 50px); }

.audience-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--grid-gap); }
.audience-card [data-media-key="homeownerPath"] img { object-position: center 51%; }
.audience-card [data-media-key="designerPath"] img { object-position: center 45%; }
.audience-card__body { padding: 24px 0 0; }
.audience-card__subtitle { color: var(--ink) !important; font-size: 14px !important; font-weight: 600; }
.audience-card .button { margin-top: 19px; }

.evidence-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(42px, 4vw, 56px) var(--grid-gap); align-items: start; }
.evidence-card:nth-child(1) { grid-column: span 7; }
.evidence-card:nth-child(2) { grid-column: span 5; }
.evidence-card:nth-child(n+3) { grid-column: span 6; }
.evidence-card .media-frame { aspect-ratio: 4 / 3; }
.evidence-card__body { max-width: 600px; padding: 18px 0 0; }
.evidence-card__label { margin-top: 0 !important; color: #9a8d76 !important; font-size: 9px !important; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; }
.evidence-card h3 { max-width: 560px; margin-top: 9px; font-size: clamp(19px, 1.55vw, 22px); line-height: 1.22; }
.evidence-card__body > p:last-child { max-width: 560px; margin-top: 9px; color: #666760; font-size: 13px; line-height: 1.62; }
.evidence-card:first-child .evidence-card__label { color: #7f725d !important; }
.evidence-card:first-child h3 { font-size: clamp(22px, 1.85vw, 25px); }
.evidence-card:first-child .evidence-card__body > p:last-child { font-size: 14px; }

.serve-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--grid-gap); }
.serve-card { padding: 27px 0 0; border-top: 1px solid var(--line-strong); background: transparent; }
.serve-card__index { color: var(--accent); font-size: 11px; letter-spacing: 0.12em; }
.serve-card h3 { margin-top: 24px; font-size: var(--type-h3); }
.serve-card__subtitle { margin-top: 12px; color: var(--ink); font-size: 14px; font-weight: 600; }
.serve-card p:last-child { margin-top: 11px; color: var(--ink-soft); font-size: var(--type-body-sm); line-height: 1.65; }

.quality-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--grid-gap); }
.quality-item { min-height: 190px; padding: 26px 0 0; border-top: 1px solid var(--line-strong); background: transparent; }
.quality-item__index { color: var(--accent); font-size: 11px; letter-spacing: 0.12em; }
.quality-item h3 { margin-top: 30px; font-size: 18px; line-height: 1.28; }
.quality-item p { margin-top: 12px; color: var(--ink-soft); font-size: 13px; line-height: 1.65; }

.project-cta { scroll-margin-top: 36px; }
.project-cta h2 { color: #fff; }
.project-cta__copy { max-width: 720px; }
.project-cta__copy > p:not(.eyebrow) { max-width: 620px; margin-top: 22px; color: rgba(255,255,255,0.7); font-size: var(--type-body-lg); line-height: 1.7; }

.site-footer { padding: 88px 0 28px; color: rgba(255,255,255,0.72); background: #20211f; }
.footer-grid { display: grid; grid-template-columns: 1.55fr repeat(4, 1fr); gap: var(--grid-gap); }
.site-brand--footer { min-height: 0; color: #fff; }
.footer-brand__logo { width: clamp(140px, 12vw, 160px); max-width: 100%; height: auto; }
.footer-brand__statement { max-width: 290px; margin-top: 27px; color: #fff; font-size: 16px; }
.footer-brand > p:last-child { max-width: 330px; margin-top: 12px; font-size: 13px; line-height: 1.7; }
.footer-column h3 { color: #fff; font-size: 12px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; }
.footer-column ul { display: grid; gap: 9px; margin-top: 19px; font-size: 13px; }
.footer-column a:hover { color: #fff; }
.muted { color: rgba(255,255,255,0.4); }
.social-links { display: flex; flex-wrap: wrap; gap: 9px 14px; margin-top: 21px; font-size: 12px; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 67px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,0.16); font-size: 11px; }
.footer-bottom > div { display: flex; gap: 19px; }
.floating-whatsapp { position: fixed; z-index: 35; right: 22px; bottom: 22px; display: inline-flex; align-items: center; gap: 9px; min-height: 46px; padding: 0 15px; border-radius: var(--radius-control); color: #fff; background: #3d5143; box-shadow: var(--shadow-floating); font-size: 12px; font-weight: 600; letter-spacing: 0.02em; transition: background 220ms ease, transform 320ms var(--ease-out); }
.floating-whatsapp span:first-child { width: 23px; height: 23px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,0.6); border-radius: 50%; font-size: 12px; }
.floating-whatsapp:hover { background: #4c6553; transform: translateY(-2px); }

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .image-card:hover .media-frame img,
  .feature-card:hover .media-frame img,
  .audience-card:hover .media-frame img { transform: scale(1.018); }
}

.reveal { opacity: 1; transform: none; }
@media (prefers-reduced-motion: no-preference) {
  .reveal { opacity: 0; transform: translateY(12px); transition: opacity 560ms ease, transform 560ms var(--ease-out); }
  .reveal.is-inview { opacity: 1; transform: none; }
}

@media (max-width: 1080px) {
  :root {
    --gutter: var(--gutter-tablet);
    --section-space: var(--section-y-tablet);
    --heading-gap: var(--heading-gap-tablet);
    --grid-gap: var(--grid-gap-tablet);
  }
  .desktop-nav { gap: 16px; font-size: 12px; }
  .quality-grid { grid-template-columns: repeat(3, 1fr); }
  .quality-item { min-height: 180px; }
  .quality-item h3 { margin-top: 24px; }
  .footer-grid { grid-template-columns: 1.5fr repeat(3, 1fr); }
  .footer-contact { grid-column: 2 / -1; }
}

@media (max-width: 800px) {
  .desktop-nav { display: none; }
  .menu-toggle { display: block; }
  .mobile-menu.is-open { display: block; }
  .hero { min-height: 680px; }
  .hero__content-wrap { align-items: flex-end; padding-bottom: 112px; }
  .hero__content { padding-top: 80px; }
  .trust-grid { grid-template-columns: repeat(2, 1fr); gap: 28px 20px; }
  .card-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .split-layout { grid-template-columns: 1fr; gap: 48px; }
  .split-layout--about .split-layout__media { order: initial; }
  .why-grid { grid-template-columns: 1fr; gap: 0; }
  .timeline { grid-template-columns: repeat(2, 1fr); gap: 34px 28px; }
  .timeline__line { display: none; }
  .audience-grid, .evidence-grid { grid-template-columns: 1fr; }
  .evidence-card:nth-child(n) { grid-column: auto; }
  .serve-grid { grid-template-columns: 1fr; }
  .quality-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-brand { grid-column: 1 / -1; }
  .footer-contact { grid-column: auto; }
}

@media (max-width: 560px) {
  :root {
    --gutter: var(--gutter-mobile);
    --section-space: var(--section-y-mobile);
    --heading-gap: var(--heading-gap-mobile);
    --grid-gap: var(--grid-gap-mobile);
    --section-compact: 44px;
    --type-h1: clamp(40px, 12vw, 52px);
    --type-h2: 32px;
    --type-h3: 21px;
  }
  .topbar__inner { min-height: 36px; }
  .topbar__inner > span { max-width: 230px; line-height: 1.3; }
  .topbar__links { gap: 10px; }
  .site-header__inner { min-height: 70px; }
  .site-brand { gap: 8px; min-height: 38px; }
  .site-brand__logo { width: 38px; height: 38px; }
  .site-brand__name { font-size: 15px; letter-spacing: 0.16em; }
  .site-brand--footer { min-height: 0; }
  .footer-brand__logo { width: 140px; height: auto; }
  .site-header__actions .button { display: none; }
  .hero { min-height: 690px; }
  .hero__content-wrap { padding-top: 88px; padding-bottom: 118px; }
  .hero__body { font-size: 16px; }
  .hero__actions { align-items: stretch; flex-direction: column; }
  .hero__actions .button { width: 100%; }
  .hero__controls { bottom: 20px; }
  .section-heading__intro { font-size: 16px; }
  .trust-grid, .card-grid--3, .quality-grid, .footer-grid { grid-template-columns: 1fr; }
  .quality-item { min-height: auto; padding: 24px 0 0; }
  .quality-item h3 { margin-top: 18px; }
  .timeline { grid-template-columns: 1fr; gap: 27px; }
  .timeline__step { display: grid; grid-template-columns: 48px 1fr; column-gap: 16px; }
  .timeline__step h3 { margin-top: 2px; }
  .timeline__step p { grid-column: 2; margin-top: 7px; }
  .evidence-grid { gap: 38px; }
  .evidence-card__body { padding-top: 16px; }
  .footer-brand, .footer-contact { grid-column: auto; }
  .footer-bottom { flex-direction: column; margin-top: 45px; }
  .floating-whatsapp { right: 14px; bottom: 14px; width: 46px; padding: 0; }
  .floating-whatsapp > span:last-child { display: none; }
}

/* Whole House page additions: scoped so the locked homepage styles remain unchanged. */
.whole-house-page { overflow: clip; }
.whole-house-hero { position: relative; min-height: min(820px, 84vh); overflow: hidden; color: #fff; background: #30312e; }
.whole-house-hero__media.media-frame { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; border-radius: 0; }
.whole-house-hero__media.media-frame img { border-radius: 0; }
.whole-house-hero__veil { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18,19,17,0.58) 0%, rgba(18,19,17,0.28) 48%, rgba(18,19,17,0.08) 100%), linear-gradient(0deg, rgba(18,19,17,0.35), transparent 58%); }
.whole-house-hero__inner { position: relative; z-index: 1; min-height: inherit; display: flex; align-items: center; padding-top: 94px; padding-bottom: 94px; }
.whole-house-hero__content { width: min(680px, 100%); padding-top: 34px; }
.whole-house-hero__content h1 { max-width: 680px; }
.whole-house-hero__body { max-width: 590px; margin-top: 26px; color: rgba(255,255,255,0.84); font-size: var(--type-body-lg); line-height: 1.7; }
.whole-house-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
.whole-house-hero__benefits { display: grid; gap: 10px; max-width: 560px; margin-top: 42px; color: rgba(255,255,255,0.78); font-size: 13px; }
.whole-house-hero__benefits li { display: flex; align-items: flex-start; gap: 10px; }
.whole-house-hero__benefits li span { width: 6px; height: 6px; flex: 0 0 auto; margin-top: 8px; border-radius: 50%; background: #c8bca8; }

.whole-house-meaning { background: var(--warm); }
.whole-house-meaning__heading { max-width: 780px; }
.whole-house-meaning__statement { margin-top: 38px; color: var(--accent); font-size: clamp(22px, 2.3vw, 32px); line-height: 1.25; letter-spacing: -0.02em; }
.whole-house-meaning__concepts { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--grid-gap); margin-top: 62px; }
.whole-house-meaning__concept { min-width: 0; padding-top: 20px; border-top: 1px solid var(--line-strong); }
.whole-house-meaning__concept > span { color: var(--accent); font-size: 11px; letter-spacing: 0.12em; }
.whole-house-meaning__concept h3 { margin-top: 24px; font-size: var(--type-h3); }
.whole-house-meaning__concept p { margin-top: 11px; color: var(--ink-soft); font-size: var(--type-body-sm); line-height: 1.65; }

.whole-house-spaces__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 50px var(--grid-gap); }
.whole-house-space { min-width: 0; }
.whole-house-space__media .media-frame { border-radius: 0; }
.whole-house-space__body { padding-top: 19px; }
.whole-house-space__body h3 { font-size: var(--type-h3); }
.whole-house-space__body p { margin-top: 9px; color: var(--ink-soft); font-size: var(--type-body-sm); line-height: 1.62; }

.whole-house-systems { background: var(--dark); }
.whole-house-systems__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--grid-gap); }
.whole-house-system { min-width: 0; color: #fff; }
.whole-house-system__media .media-frame { border-radius: 0; }
.whole-house-system__body { padding-top: 22px; }
.whole-house-system__body h3 { font-size: var(--type-h3); }
.whole-house-system__lead { margin-top: 10px; color: rgba(255,255,255,0.9); font-size: 15px; line-height: 1.55; }
.whole-house-system__body > p:not(.whole-house-system__lead) { margin-top: 11px; color: rgba(255,255,255,0.68); font-size: var(--type-body-sm); line-height: 1.65; }
.whole-house-system__body .button { margin-top: 20px; }

.whole-house-coordination { background: var(--warm); }
.whole-house-coordination__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 var(--grid-gap); border-top: 1px solid var(--line); }
.whole-house-coordination__step { min-width: 0; min-height: 196px; padding: 25px 0 30px; border-bottom: 1px solid var(--line); }
.whole-house-coordination__step > span { color: var(--accent); font-size: 11px; letter-spacing: 0.13em; }
.whole-house-coordination__step h3 { margin-top: 27px; font-size: 20px; }
.whole-house-coordination__step p { margin-top: 10px; color: var(--ink-soft); font-size: var(--type-body-sm); line-height: 1.65; }
.whole-house-coordination__statement { max-width: 640px; margin-top: 48px; color: var(--accent); font-size: clamp(21px, 2vw, 28px); line-height: 1.3; }

.whole-house-residential { background: var(--paper); }
.whole-house-residential__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--grid-gap); }
.whole-house-residential__project { min-width: 0; }
.whole-house-residential__media .media-frame { border-radius: 0; }
.whole-house-residential__body { padding-top: 22px; }
.whole-house-residential__body h3 { font-size: var(--type-h3); }
.whole-house-residential__lead { margin-top: 10px; color: var(--ink); font-size: 15px; line-height: 1.55; }
.whole-house-residential__body > p:not(.whole-house-residential__lead) { margin-top: 10px; color: var(--ink-soft); font-size: var(--type-body-sm); line-height: 1.65; }
.whole-house-residential__body .button { margin-top: 20px; }

.whole-house-process { background: var(--paper); }
.whole-house-process__steps { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0 24px; }
.whole-house-process__step { position: relative; min-width: 0; padding-top: 3px; }
.whole-house-process__marker { position: relative; z-index: 1; width: 47px; height: 47px; display: grid; place-items: center; color: var(--accent); border: 1px solid var(--line-strong); border-radius: 50%; font-size: 11px; letter-spacing: 0.1em; background: var(--paper); }
.whole-house-process__line { position: absolute; top: 24px; right: -24px; left: 47px; height: 1px; background: var(--line); }
.whole-house-process__line.is-last { display: none; }
.whole-house-process__step h3 { margin-top: 27px; font-size: 19px; line-height: 1.25; }
.whole-house-process__step p { margin-top: 10px; color: var(--ink-soft); font-size: var(--type-body-sm); line-height: 1.65; }
.whole-house-process__cta { margin-top: 48px; }

.whole-house-evidence { background: var(--warm); }
.whole-house-evidence__main { padding-bottom: 55px; border-bottom: 1px solid var(--line); }
.whole-house-evidence__main-media .media-frame { aspect-ratio: 16 / 9; border-radius: 0; background: #191a18; }
.whole-house-evidence__main-media video { object-fit: contain; }
.whole-house-evidence__main-body { max-width: 700px; padding-top: 21px; }
.whole-house-evidence__label { color: #8f816d; font-size: 10px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; }
.whole-house-evidence__main-body h3 { margin-top: 10px; font-size: clamp(24px, 2.1vw, 31px); }
.whole-house-evidence__main-body > p:last-child { margin-top: 10px; color: var(--ink-soft); font-size: var(--type-body-lg); line-height: 1.65; }
.whole-house-evidence__support { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--grid-gap); align-items: start; padding-top: 55px; }
.whole-house-evidence__support-card { min-width: 0; }
.whole-house-evidence__support-media .media-frame { border-radius: 0; }
.whole-house-evidence__support-card--portrait .media-frame { aspect-ratio: 9 / 16; background: #232421; }
.whole-house-evidence__support-card--portrait video { object-fit: contain; }
.whole-house-evidence__support-card--portrait-image .media-frame { aspect-ratio: 3 / 4; }
.whole-house-evidence__support-body { padding-top: 17px; }
.whole-house-evidence__support-body h3 { margin-top: 9px; font-size: 21px; line-height: 1.25; }
.whole-house-evidence__support-body > p:last-child { margin-top: 9px; color: var(--ink-soft); font-size: var(--type-body-sm); line-height: 1.65; }

.whole-house-final { background: var(--dark); }
.whole-house-final__layout { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(56px, 8vw, 112px); align-items: start; }
.whole-house-final__copy h2 { color: #fff; font-size: var(--type-h2); }
.whole-house-final__copy > p:not(.eyebrow) { max-width: 560px; margin-top: 22px; color: rgba(255,255,255,0.7); font-size: var(--type-body-lg); line-height: 1.72; }
.whole-house-final__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }
.whole-house-final__benefits { display: grid; gap: 0; border-top: 1px solid var(--line-dark); }
.whole-house-final__benefits article { display: grid; grid-template-columns: 40px 1fr; gap: 18px; padding: 23px 0 25px; border-bottom: 1px solid var(--line-dark); }
.whole-house-final__benefits article > span { color: #d4c6ac; font-size: 11px; letter-spacing: 0.12em; }
.whole-house-final__benefits h3 { color: #fff; font-size: 18px; }
.whole-house-final__benefits p { margin-top: 6px; color: rgba(255,255,255,0.64); font-size: var(--type-body-sm); line-height: 1.62; }

@media (max-width: 1080px) {
  .whole-house-spaces__grid { grid-template-columns: repeat(2, 1fr); }
  .whole-house-process__steps { grid-template-columns: repeat(3, 1fr); gap: 42px 24px; }
  .whole-house-process__line { display: none; }
}

@media (max-width: 800px) {
  .whole-house-hero { min-height: 760px; }
  .whole-house-hero__inner { align-items: flex-end; padding-top: 112px; padding-bottom: 102px; }
  .whole-house-hero__content { padding-top: 56px; }
  .whole-house-meaning__concepts, .whole-house-systems__grid, .whole-house-coordination__grid, .whole-house-residential__grid, .whole-house-evidence__support { grid-template-columns: 1fr; }
  .whole-house-meaning__concepts { gap: 28px; margin-top: 44px; }
  .whole-house-meaning__concept { min-height: auto; }
  .whole-house-spaces__grid { gap: 38px 24px; }
  .whole-house-coordination__step { min-height: auto; padding: 24px 0 28px; }
  .whole-house-process__steps { grid-template-columns: repeat(2, 1fr); gap: 36px 24px; }
  .whole-house-evidence__support { gap: 42px; }
  .whole-house-evidence__support-media .media-frame { max-width: 560px; }
  .whole-house-final__layout { grid-template-columns: 1fr; gap: 48px; }
}

@media (max-width: 560px) {
  .whole-house-hero { min-height: 930px; }
  .whole-house-hero__inner { padding-top: 128px; padding-bottom: 82px; }
  .whole-house-hero__content { padding-top: 30px; }
  .whole-house-hero__body { font-size: 16px; }
  .whole-house-hero__actions { align-items: stretch; flex-direction: column; }
  .whole-house-hero__actions .button { width: 100%; }
  .whole-house-hero__benefits { padding-right: 56px; }
  .whole-house-meaning__statement { margin-top: 27px; font-size: 25px; }
  .whole-house-spaces__grid { grid-template-columns: 1fr; gap: 32px; }
  .whole-house-systems__grid, .whole-house-coordination__grid, .whole-house-residential__grid { gap: 38px; }
  .whole-house-process__steps { grid-template-columns: 1fr; gap: 28px; }
  .whole-house-process__step { display: grid; grid-template-columns: 48px 1fr; column-gap: 16px; }
  .whole-house-process__step h3 { margin-top: 2px; }
  .whole-house-process__step p { grid-column: 2; margin-top: 7px; }
  .whole-house-evidence__main { padding-bottom: 39px; }
  .whole-house-evidence__support { padding-top: 39px; }
  .whole-house-evidence__support-card--portrait .media-frame { max-width: 350px; }
  .whole-house-final__actions { align-items: stretch; flex-direction: column; }
  .whole-house-final__actions .button { width: 100%; }
  .whole-house-final__benefits article { padding-right: 56px; }
}

/* Whole House V2: page-specific layout only. */
.whole-house-hero { min-height: min(720px, 78vh); }
.whole-house-hero__support { display: grid; gap: 13px; max-width: 610px; margin-top: 38px; color: rgba(255,255,255,0.8); font-size: 13px; }
.whole-house-hero__support li { display: grid; grid-template-columns: minmax(190px, auto) 1fr; gap: 16px; align-items: baseline; }
.whole-house-hero__support strong { color: #fff; font-size: 12px; font-weight: 600; letter-spacing: 0.04em; }
.whole-house-hero__support span { color: rgba(255,255,255,0.7); line-height: 1.55; }

.whole-house-space { scroll-margin-top: 104px; }
.whole-house-spaces__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 48px var(--grid-gap); }
.whole-house-space__media .media-frame { aspect-ratio: 4 / 3; border-radius: 0; }
.whole-house-space__body { padding-top: 18px; }
.whole-house-space__body h3 { font-size: var(--type-h3); }
.whole-house-space__body p { max-width: 300px; margin-top: 9px; color: var(--ink-soft); font-size: var(--type-body-sm); line-height: 1.62; }

.whole-house-systems__relationship { display: flex; align-items: center; justify-content: center; gap: 18px; margin: -10px auto 48px; color: rgba(255,255,255,0.72); font-size: 12px; font-weight: 600; letter-spacing: 0.13em; text-transform: uppercase; }
.whole-house-systems__relationship b { color: #d4c6ac; font-size: 20px; font-weight: 400; }
.whole-house-systems__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--grid-gap); }
.whole-house-system__media .media-frame { aspect-ratio: 4 / 3; border-radius: 0; }
.whole-house-system__body { padding-top: 22px; }
.whole-house-system__body h3 { font-size: var(--type-h3); }
.whole-house-system__lead { margin-top: 10px; color: rgba(255,255,255,0.9); font-size: 15px; line-height: 1.55; }
.whole-house-system__body > p:not(.whole-house-system__lead) { margin-top: 11px; color: rgba(255,255,255,0.68); font-size: var(--type-body-sm); line-height: 1.65; }
.whole-house-system__body .button { margin-top: 20px; }

.whole-house-coordination { background: var(--warm); }
.whole-house-coordination__steps { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.whole-house-coordination__step { position: relative; min-width: 0; padding: 25px 20px 30px 0; border-bottom: 1px solid var(--line); }
.whole-house-coordination__marker { position: relative; z-index: 1; width: 47px; height: 47px; display: grid; place-items: center; color: var(--accent); border: 1px solid var(--line-strong); border-radius: 50%; background: var(--warm); font-size: 11px; letter-spacing: 0.1em; }
.whole-house-coordination__line { position: absolute; top: 48px; right: 0; left: 47px; height: 1px; background: var(--line-strong); }
.whole-house-coordination__step h3 { position: relative; z-index: 1; margin-top: 27px; font-size: 19px; line-height: 1.25; }
.whole-house-coordination__step p { margin-top: 10px; padding-right: 10px; color: var(--ink-soft); font-size: var(--type-body-sm); line-height: 1.65; }
.whole-house-coordination__statement { max-width: 640px; margin-top: 48px; color: var(--accent); font-size: clamp(21px, 2vw, 28px); line-height: 1.3; }

.whole-house-journey { background: var(--warm); }
.whole-house-journey__layout { display: grid; grid-template-columns: minmax(0, 1.38fr) minmax(300px, 0.62fr); gap: var(--grid-gap); align-items: start; }
.whole-house-journey__main, .whole-house-journey__secondary, .whole-house-journey__support-card { min-width: 0; }
.whole-house-journey__main-media .media-frame { aspect-ratio: 16 / 9; border-radius: 0; background: #191a18; }
.whole-house-journey__main-media video { object-fit: contain; }
.whole-house-journey__side { display: grid; gap: 34px; }
.whole-house-journey__secondary-media { max-width: 260px; }
.whole-house-journey__secondary-media .media-frame { aspect-ratio: 9 / 16; border-radius: 0; background: #232421; }
.whole-house-journey__secondary-media video { object-fit: contain; }
.whole-house-journey__support { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.whole-house-journey__support-media .media-frame { aspect-ratio: 3 / 4; border-radius: 0; }
.whole-house-journey__body { padding-top: 18px; }
.whole-house-journey__label { color: #8f816d; font-size: 10px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; }
.whole-house-journey__body h3 { margin-top: 9px; font-size: clamp(21px, 2vw, 30px); line-height: 1.25; }
.whole-house-journey__body > p:last-child { margin-top: 10px; color: var(--ink-soft); font-size: var(--type-body-lg); line-height: 1.65; }
.whole-house-journey__support .whole-house-journey__body h3 { font-size: 19px; }
.whole-house-journey__support .whole-house-journey__body > p:last-child { font-size: var(--type-body-sm); }
.whole-house-journey .section-cta { margin-top: 48px; }

@media (max-width: 1080px) {
  .whole-house-spaces__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .whole-house-coordination__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .whole-house-coordination__line { display: none; }
}

@media (max-width: 800px) {
  .whole-house-hero { min-height: 680px; }
  .whole-house-hero__inner { align-items: flex-end; padding-top: 112px; padding-bottom: 72px; }
  .whole-house-hero__content { padding-top: 40px; }
  .whole-house-hero__support li { grid-template-columns: 1fr; gap: 3px; }
  .whole-house-systems__grid { grid-template-columns: 1fr; }
  .whole-house-journey__layout { grid-template-columns: 1fr; }
  .whole-house-journey__secondary-media { max-width: 300px; }
}

@media (max-width: 700px) {
  .whole-house-coordination__steps { grid-template-columns: 1fr; }
  .whole-house-coordination__step { display: grid; grid-template-columns: 47px 1fr; column-gap: 16px; min-height: 0; padding: 24px 0 28px; }
  .whole-house-coordination__line { display: block; top: 48px; right: auto; bottom: -1px; left: 23px; width: 1px; height: auto; }
  .whole-house-coordination__step h3 { margin-top: 1px; }
  .whole-house-coordination__step p { grid-column: 2; margin-top: 7px; padding-right: 0; }
  .whole-house-coordination__step:last-child .whole-house-coordination__line { display: none; }
}

@media (max-width: 560px) {
  .whole-house-hero { min-height: 670px; }
  .whole-house-hero__inner { padding-top: 116px; padding-bottom: 54px; }
  .whole-house-hero__actions { align-items: stretch; flex-direction: column; }
  .whole-house-hero__actions .button { width: 100%; }
  .whole-house-spaces__grid { grid-template-columns: 1fr; gap: 32px; }
  .whole-house-systems__relationship { flex-wrap: wrap; gap: 8px 12px; margin-bottom: 36px; font-size: 10px; }
  .whole-house-systems__relationship b { font-size: 16px; }
  .whole-house-journey__support { grid-template-columns: 1fr; }
  .whole-house-journey__secondary-media { max-width: 260px; }
}

/* Whole House V2 P1 visual polish: scoped corrections only. */
.whole-house-hero__support { color: rgba(255,255,255,0.9); }
.whole-house-hero__support strong { color: #fff; font-size: 13px; text-shadow: 0 1px 12px rgba(0,0,0,0.24); }
.whole-house-hero__support span { color: rgba(255,255,255,0.82); font-size: 13.5px; line-height: 1.6; text-shadow: 0 1px 12px rgba(0,0,0,0.2); }

.whole-house-coordination { padding: clamp(86px, 7vw, 108px) 0; }
.whole-house-coordination .section-heading { margin-bottom: clamp(36px, 3.5vw, 46px); }
.whole-house-coordination__marker { color: #6d5f4f; border-color: rgba(109,95,79,0.62); background: #f7f4ed; box-shadow: 0 0 0 5px rgba(248,247,243,0.58); font-weight: 700; }
.whole-house-coordination__line { height: 2px; background: rgba(109,95,79,0.55); }
.whole-house-coordination__step h3 { color: var(--ink); font-weight: 600; }
.whole-house-coordination__step p { color: #66645d; }
.whole-house-coordination__statement { margin-top: 32px; color: #8c7a62; font-weight: 500; }

.whole-house-journey { padding: clamp(82px, 7vw, 108px) 0; }
.whole-house-journey .section-heading { margin-bottom: clamp(30px, 3vw, 42px); }
.whole-house-journey__layout { gap: clamp(24px, 3vw, 36px); }
.whole-house-journey__main-media { background: #292b28 url("/src/assets/whole-house-v2/journey-project-discussion-poster.jpg") center / cover no-repeat; }
.whole-house-journey__main-media video { object-fit: cover; object-position: center; }
.whole-house-journey__side { gap: 24px; }
.whole-house-journey__support { gap: 16px; }
.whole-house-journey__body { padding-top: 12px; }
.whole-house-journey .section-cta { margin-top: 32px; }

@media (max-width: 700px) {
  .whole-house-coordination { padding: 58px 0; }
  .whole-house-coordination__line { width: 2px; height: auto; }
  .whole-house-journey { padding: 62px 0; }
}

/* Whole House Section 05 layout tightening. */
.whole-house-journey__layout { grid-template-columns: minmax(0, 1.55fr) minmax(280px, 0.85fr); column-gap: clamp(20px, 2.5vw, 32px); }
.whole-house-journey__side { gap: 16px; }
.whole-house-journey__secondary-media { max-width: 210px; }
.whole-house-journey__support { gap: 12px; }
.whole-house-journey__support .whole-house-journey__body { padding-top: 8px; }
.whole-house-journey__support .whole-house-journey__body h3 { font-size: 17px; }
.whole-house-journey__support .whole-house-journey__body > p:last-child { margin-top: 6px; line-height: 1.5; }
.whole-house-journey .section-cta { margin-top: 24px; }

@media (max-width: 800px) {
  .whole-house-journey__layout { grid-template-columns: 1fr; row-gap: 28px; }
  .whole-house-journey__secondary-media { max-width: 300px; }
  .whole-house-journey__side { gap: 20px; }
}

@media (max-width: 560px) {
  .whole-house-journey__support { gap: 16px; }
  .whole-house-journey .section-cta { margin-top: 28px; }
}

@media (min-width: 801px) {
  .whole-house-journey__secondary-media { max-width: 200px; }
  .whole-house-journey__support-card { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 10px; align-items: start; }
  .whole-house-journey__support .whole-house-journey__body { padding-top: 0; }
}

/* Solutions V1: page-specific capability layouts. */
.solutions-page { overflow: clip; background: var(--paper); }
.solutions-page h4, .solutions-page figure, .solutions-page ol { margin: 0; }
.solutions-page ol { padding: 0; list-style: none; }
.solutions-page .section.reveal { opacity: 1; transform: none; }
.solutions-page #cabinetry,
.solutions-page #furniture,
.solutions-page #doors-windows { scroll-margin-top: 104px; }

.solutions-hero { position: relative; min-height: clamp(720px, 74vh, 760px); overflow: hidden; isolation: isolate; color: #fff; background: var(--dark); }
.solutions-hero::after { position: absolute; z-index: 1; inset: 0; content: ""; pointer-events: none; background: linear-gradient(90deg, rgba(10,11,10,0.78) 0%, rgba(10,11,10,0.62) 32%, rgba(10,11,10,0.28) 58%, rgba(10,11,10,0.08) 100%), linear-gradient(180deg, rgba(10,11,10,0.14) 0%, rgba(10,11,10,0.02) 58%, rgba(10,11,10,0.2) 100%); }
.solutions-hero__inner { padding-top: clamp(170px, 16vw, 220px); padding-bottom: clamp(68px, 7vw, 94px); }
.solutions-hero__copy { max-width: 810px; }
.solutions-hero__copy h1 { max-width: 790px; }
.solutions-hero__body { max-width: 720px; margin-top: 25px; color: rgba(255,255,255,0.76); font-size: var(--type-body-lg); line-height: 1.72; }
.solutions-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.solutions-hero__systems { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: clamp(58px, 7vw, 82px); border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.solutions-hero__systems a { position: relative; display: grid; grid-template-columns: 32px minmax(0, 1fr) 18px; gap: 14px; min-width: 0; padding: 24px 24px 26px 0; }
.solutions-hero__systems a + a { padding-left: 24px; border-left: 1px solid var(--line-dark); }
.solutions-hero__systems a > span { color: #d4c6ac; font-size: 10px; font-weight: 700; letter-spacing: 0.14em; }
.solutions-hero__systems h2 { color: #fff; font-size: 18px; letter-spacing: -0.02em; }
.solutions-hero__systems p { margin-top: 8px; color: rgba(255,255,255,0.62); font-size: 13px; line-height: 1.58; }
.solutions-hero__systems b { align-self: start; color: #d4c6ac; font-size: 16px; font-weight: 400; transition: transform 220ms ease; }
.solutions-hero__systems a:hover b { transform: translateY(3px); }

.solutions-system { position: relative; }
.solutions-system__intro { display: grid; grid-template-columns: minmax(0, 0.82fr) minmax(440px, 1.18fr); gap: clamp(50px, 7vw, 96px); align-items: center; }
.solutions-system__copy { position: relative; }
.solutions-system__number { display: block; margin-bottom: 34px; color: #998a73; font-size: 11px; font-weight: 700; letter-spacing: 0.18em; }
.solutions-system__copy h2 { max-width: 590px; font-size: var(--type-h2); letter-spacing: -0.035em; }
.solutions-system__copy > p:last-child { max-width: 590px; margin-top: 23px; color: var(--ink-soft); font-size: var(--type-body-lg); line-height: 1.72; }
.solutions-system__main-media .media-frame { border-radius: 0; }
.solutions-block { margin-top: clamp(78px, 8vw, 108px); padding-top: clamp(52px, 5vw, 68px); border-top: 1px solid var(--line); }
.solutions-block__heading { max-width: 720px; margin-bottom: clamp(34px, 4vw, 50px); }
.solutions-block__heading h3 { font-size: clamp(27px, 2.5vw, 36px); letter-spacing: -0.03em; }
.solutions-block__heading > p:last-child:not(.eyebrow) { max-width: 650px; margin-top: 17px; color: var(--ink-soft); font-size: var(--type-body); line-height: 1.7; }

.solutions-indexed-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(36px, 5vw, 70px); border-top: 1px solid var(--line); }
.solutions-indexed-list li { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 16px; min-width: 0; padding: 24px 0 27px; border-bottom: 1px solid var(--line); }
.solutions-indexed-list li > span { color: #998a73; font-size: 10px; font-weight: 700; letter-spacing: 0.13em; }
.solutions-indexed-list h4 { font-size: 18px; font-weight: 600; line-height: 1.3; }
.solutions-indexed-list p { margin-top: 8px; color: var(--ink-soft); font-size: var(--type-body-sm); line-height: 1.65; }
.solutions-indexed-list--compact { grid-template-columns: 1fr; }
.solutions-indexed-list--compact li { padding: 19px 0 21px; }

.solutions-figure { display: grid; grid-template-rows: minmax(0, 1fr) auto; min-width: 0; }
.solutions-figure .media-frame { height: 100%; border-radius: 0; }
.solutions-figure figcaption { padding-top: 12px; color: var(--ink); font-size: 12px; font-weight: 600; letter-spacing: 0.03em; }
.solutions-page .solutions-figure--contain .media-frame img,
.solutions-page .solutions-component-matrix .media-frame img,
.solutions-page .solutions-material-matrix .media-frame img { object-fit: contain; }
.solutions-page .solutions-figure--contain .media-frame,
.solutions-page .solutions-component-matrix .media-frame,
.solutions-page .solutions-material-matrix .media-frame { background: #dedbd3; }

.solutions-cabinetry__categories { display: grid; grid-template-columns: minmax(230px, 0.55fr) minmax(0, 1.45fr); gap: clamp(50px, 8vw, 112px); align-items: start; }
.solutions-cabinetry__categories .solutions-block__heading { margin-bottom: 0; }
.solutions-material-matrix--cabinetry { display: grid; grid-template-columns: 1.35fr 0.72fr 0.72fr; grid-template-rows: repeat(2, minmax(245px, 1fr)); gap: 24px; }
.solutions-material-matrix--cabinetry .solutions-figure { min-height: 0; }
.solutions-material-matrix--cabinetry .solutions-figure.is-primary { grid-row: 1 / 3; min-height: 620px; }
.solutions-material-matrix--cabinetry .solutions-figure:not(.is-primary) .media-frame { aspect-ratio: auto; }
.solutions-customization__layout { display: grid; grid-template-columns: minmax(280px, 0.72fr) minmax(0, 1.28fr); gap: clamp(44px, 6vw, 82px); align-items: start; }
.solutions-proof-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 22px; }
.solutions-figure--proof .media-frame { aspect-ratio: 4 / 3; }

.solutions-practice { display: grid; gap: clamp(46px, 7vw, 92px); align-items: center; margin-top: clamp(78px, 8vw, 108px); padding: clamp(48px, 6vw, 76px); background: var(--warm); }
.solutions-practice--cabinetry, .solutions-practice--doors { grid-template-columns: minmax(220px, 0.48fr) minmax(0, 1.52fr); }
.solutions-practice--furniture { grid-template-columns: minmax(0, 1.52fr) minmax(220px, 0.48fr); background: var(--paper); }
.solutions-practice__media { width: min(290px, 100%); justify-self: center; }
.solutions-practice__media .media-frame { border-radius: 0; background: #292a27; }
.solutions-practice__media video { object-fit: contain; }
.solutions-practice__copy { max-width: 660px; }
.solutions-practice__copy h3 { font-size: clamp(27px, 2.5vw, 36px); letter-spacing: -0.03em; }
.solutions-practice__copy > p:last-of-type { margin-top: 17px; color: var(--ink-soft); font-size: var(--type-body); line-height: 1.7; }
.solutions-practice__copy > ul { display: grid; gap: 0; margin-top: 28px; border-top: 1px solid var(--line); }
.solutions-practice__copy > ul > li { padding: 13px 0; border-bottom: 1px solid var(--line); color: var(--ink); font-size: 13px; font-weight: 600; }

.solutions-furniture { background: var(--warm); }
.solutions-furniture__intro .solutions-system__main-media { order: -1; }
.solutions-furniture__categories { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(230px, 0.55fr); gap: clamp(50px, 8vw, 112px); align-items: start; }
.solutions-furniture__categories .solutions-block__heading { grid-column: 2; grid-row: 1; margin-bottom: 0; }
.solutions-furniture__categories .solutions-indexed-list { grid-column: 1; grid-row: 1; }
.solutions-furniture-materials { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 44px 24px; align-items: start; }
.solutions-furniture-material { min-width: 0; grid-column: span 5; }
.solutions-furniture-material.is-primary { grid-column: span 7; }
.solutions-furniture-material:nth-child(4) { grid-column: span 7; }
.solutions-furniture-material__media .media-frame { border-radius: 0; }
.solutions-furniture-material.is-primary .solutions-furniture-material__media .media-frame { aspect-ratio: 603 / 506; }
.solutions-furniture-material h4 { margin-top: 16px; font-size: 19px; font-weight: 600; }
.solutions-furniture-material p { max-width: 520px; margin-top: 8px; color: var(--ink-soft); font-size: var(--type-body-sm); line-height: 1.65; }
.solutions-craftsmanship { display: grid; grid-template-columns: minmax(0, 0.82fr) minmax(360px, 1.18fr); gap: clamp(50px, 8vw, 104px); align-items: center; margin-top: clamp(78px, 8vw, 108px); padding-top: clamp(52px, 5vw, 68px); border-top: 1px solid var(--line); }
.solutions-craftsmanship__copy h3 { font-size: clamp(27px, 2.5vw, 36px); letter-spacing: -0.03em; }
.solutions-craftsmanship__copy > p:last-child { margin-top: 17px; color: var(--ink-soft); font-size: var(--type-body); line-height: 1.7; }
.solutions-craftsmanship__media .media-frame { border-radius: 0; }

.solutions-doors { background: #e9e7e0; }
.solutions-doors__intro { grid-template-columns: minmax(0, 0.72fr) minmax(480px, 1.28fr); }
.solutions-door-types { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; }
.solutions-door-type { grid-column: span 4; min-width: 0; }
.solutions-door-type.is-text-only { grid-column: span 3; align-self: stretch; display: flex; flex-direction: column; justify-content: space-between; padding: 28px; border: 1px solid var(--line-strong); background: rgba(248,247,243,0.45); }
.solutions-door-type__media .media-frame { border-radius: 0; }
.solutions-door-type__index { color: #998a73; font-size: 11px; font-weight: 700; letter-spacing: 0.14em; }
.solutions-door-type h4 { margin-top: 17px; font-size: 20px; font-weight: 600; line-height: 1.3; }
.solutions-door-type p { margin-top: 9px; color: var(--ink-soft); font-size: var(--type-body-sm); line-height: 1.65; }
.solutions-component-matrix { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 42px 24px; align-items: start; }
.solutions-component { grid-column: span 4; min-width: 0; }
.solutions-component.is-wide { grid-column: span 7; }
.solutions-component:nth-child(2) { grid-column: span 5; }
.solutions-component__media .media-frame { border-radius: 0; }
.solutions-component > div:last-child { padding-top: 14px; }
.solutions-component span { color: #998a73; font-size: 10px; font-weight: 700; letter-spacing: 0.13em; }
.solutions-component h4 { margin-top: 8px; font-size: 18px; font-weight: 600; }
.solutions-component p { margin-top: 8px; color: var(--ink-soft); font-size: var(--type-body-sm); line-height: 1.65; }
.solutions-site-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 4vw, 52px); }
.solutions-site-grid__media .media-frame { border-radius: 0; }
.solutions-site-grid h4 { margin-top: 17px; font-size: 19px; font-weight: 600; }
.solutions-site-grid p { margin-top: 8px; color: var(--ink-soft); font-size: var(--type-body-sm); line-height: 1.65; }
.solutions-practice--doors { color: #fff; background: var(--dark); }
.solutions-practice--doors .eyebrow { color: rgba(255,255,255,0.65); }
.solutions-practice--doors .solutions-practice__copy > p:last-of-type { color: rgba(255,255,255,0.68); }
.solutions-practice--doors .solutions-practice__copy > ul { border-color: var(--line-dark); }
.solutions-practice--doors .solutions-practice__copy > ul > li { display: grid; grid-template-columns: minmax(160px, 0.55fr) minmax(0, 1fr); gap: 18px; border-color: var(--line-dark); color: #fff; }
.solutions-practice--doors .solutions-practice__copy li span { color: rgba(255,255,255,0.6); font-weight: 400; }

.solutions-bridge { background: var(--paper); }
.solutions-bridge__layout { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr); gap: clamp(44px, 7vw, 96px); align-items: center; }
.solutions-bridge__layout h2 { max-width: 570px; font-size: var(--type-h2); letter-spacing: -0.035em; }
.solutions-bridge__layout > div:first-child > p:last-child { max-width: 620px; margin-top: 21px; color: var(--ink-soft); font-size: var(--type-body-lg); line-height: 1.7; }
.solutions-bridge__relationship { display: grid; gap: 20px; padding: 34px; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); }
.solutions-bridge__relationship > div { display: flex; flex-wrap: wrap; gap: 10px 15px; align-items: center; }
.solutions-bridge__relationship span { font-size: 14px; font-weight: 600; }
.solutions-bridge__relationship b { color: #998a73; font-size: 20px; font-weight: 400; }
.solutions-bridge__relationship strong { font-size: clamp(22px, 2.3vw, 31px); font-weight: 500; }
.solutions-bridge__layout > .button { justify-self: start; }

.solutions-cta { color: #fff; background: var(--dark); }
.solutions-cta__layout { display: grid; grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr); gap: clamp(58px, 8vw, 112px); align-items: start; }
.solutions-cta__copy h2 { max-width: 590px; font-size: var(--type-h2); letter-spacing: -0.035em; }
.solutions-cta__copy > p:not(.eyebrow) { max-width: 590px; margin-top: 22px; color: rgba(255,255,255,0.7); font-size: var(--type-body-lg); line-height: 1.72; }
.solutions-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.solutions-cta__support { border-top: 1px solid var(--line-dark); }
.solutions-cta__support article { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 18px; padding: 22px 0 25px; border-bottom: 1px solid var(--line-dark); }
.solutions-cta__support article > span { color: #d4c6ac; font-size: 10px; font-weight: 700; letter-spacing: 0.13em; }
.solutions-cta__support h3 { color: #fff; font-size: 18px; }
.solutions-cta__support p { margin-top: 7px; color: rgba(255,255,255,0.62); font-size: var(--type-body-sm); line-height: 1.62; }

@media (max-width: 1080px) {
  .solutions-system__intro, .solutions-doors__intro { grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr); gap: 48px; }
  .solutions-material-matrix--cabinetry { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; }
  .solutions-material-matrix--cabinetry .solutions-figure.is-primary { grid-column: 1 / -1; grid-row: auto; min-height: 480px; }
  .solutions-material-matrix--cabinetry .solutions-figure:not(.is-primary) .media-frame { aspect-ratio: var(--media-ratio, 4 / 3); }
  .solutions-component { grid-column: span 6; }
  .solutions-component.is-wide, .solutions-component:nth-child(2) { grid-column: span 6; }
  .solutions-component:last-child { grid-column: 4 / 10; }
}

@media (max-width: 800px) {
  .solutions-hero__systems { grid-template-columns: 1fr; }
  .solutions-hero__systems a, .solutions-hero__systems a + a { padding: 21px 0 23px; border-left: 0; }
  .solutions-hero__systems a + a { border-top: 1px solid var(--line-dark); }
  .solutions-system__intro, .solutions-doors__intro { grid-template-columns: 1fr; }
  .solutions-furniture__intro .solutions-system__main-media { order: initial; }
  .solutions-cabinetry__categories, .solutions-furniture__categories { grid-template-columns: 1fr; gap: 32px; }
  .solutions-furniture__categories .solutions-block__heading,
  .solutions-furniture__categories .solutions-indexed-list { grid-column: auto; grid-row: auto; }
  .solutions-furniture__categories .solutions-block__heading { order: -1; }
  .solutions-customization__layout { grid-template-columns: 1fr; }
  .solutions-practice, .solutions-practice--cabinetry, .solutions-practice--furniture, .solutions-practice--doors { grid-template-columns: 1fr; padding: 48px; }
  .solutions-practice--furniture .solutions-practice__media { order: -1; }
  .solutions-craftsmanship { grid-template-columns: 1fr; }
  .solutions-door-type, .solutions-door-type:nth-child(2) { grid-column: span 6; }
  .solutions-door-type.is-text-only { grid-column: 1 / -1; min-height: 240px; }
  .solutions-bridge__layout, .solutions-cta__layout { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .solutions-hero__inner { padding-top: 146px; padding-bottom: 58px; }
  .solutions-hero__body { font-size: 16px; }
  .solutions-hero__actions { align-items: stretch; flex-direction: column; }
  .solutions-hero__actions .button { width: 100%; }
  .solutions-hero__systems { margin-top: 48px; }
  .solutions-hero__systems a { grid-template-columns: 28px minmax(0, 1fr) 14px; gap: 10px; }
  .solutions-system__number { margin-bottom: 25px; }
  .solutions-system__copy > p:last-child { font-size: 16px; }
  .solutions-block { margin-top: 66px; padding-top: 44px; }
  .solutions-indexed-list, .solutions-indexed-list--columns { grid-template-columns: 1fr; }
  .solutions-indexed-list li { grid-template-columns: 32px minmax(0, 1fr); gap: 12px; padding: 20px 0 22px; }
  .solutions-material-matrix--cabinetry, .solutions-proof-grid { grid-template-columns: 1fr; }
  .solutions-material-matrix--cabinetry .solutions-figure.is-primary { grid-column: auto; min-height: 0; }
  .solutions-material-matrix--cabinetry .solutions-figure .media-frame { height: auto; aspect-ratio: var(--media-ratio, 4 / 3); }
  .solutions-furniture-materials { grid-template-columns: 1fr; gap: 38px; }
  .solutions-furniture-material, .solutions-furniture-material.is-primary, .solutions-furniture-material:nth-child(4) { grid-column: auto; }
  .solutions-craftsmanship { gap: 34px; margin-top: 66px; padding-top: 44px; }
  .solutions-door-types, .solutions-component-matrix { grid-template-columns: 1fr; }
  .solutions-door-type, .solutions-door-type:nth-child(2), .solutions-door-type.is-text-only,
  .solutions-component, .solutions-component.is-wide, .solutions-component:nth-child(2), .solutions-component:last-child { grid-column: auto; }
  .solutions-door-type.is-text-only { min-height: 220px; }
  .solutions-site-grid { grid-template-columns: 1fr; }
  .solutions-practice, .solutions-practice--cabinetry, .solutions-practice--furniture, .solutions-practice--doors { gap: 34px; margin-top: 66px; padding: 34px 22px; }
  .solutions-practice__media { width: min(260px, 100%); }
  .solutions-practice--doors .solutions-practice__copy > ul > li { grid-template-columns: 1fr; gap: 4px; }
  .solutions-bridge__relationship { padding: 26px 0; }
  .solutions-bridge__relationship > div { align-items: flex-start; flex-direction: column; gap: 6px; }
  .solutions-bridge__relationship > div b { transform: rotate(90deg); }
  .solutions-cta__actions { align-items: stretch; flex-direction: column; }
  .solutions-cta__actions .button { width: 100%; }
}

/* Solutions V1 P1 visual refinement: denser rhythm and stronger media. */
.solutions-page > .section { padding: clamp(72px, 6vw, 88px) 0; }

.solutions-hero__inner { min-height: inherit; display: flex; align-items: center; padding-top: 124px; padding-bottom: 38px; }
.solutions-hero__layout { width: 100%; }
.solutions-hero__copy { position: relative; z-index: 2; width: min(600px, 100%); max-width: none; }
.solutions-hero__copy h1 { max-width: 600px; color: #fff; font-size: clamp(46px, 4vw, 58px); line-height: 1.03; text-shadow: 0 2px 24px rgba(0,0,0,0.2); }
.solutions-hero__body { max-width: 590px; margin-top: 16px; color: rgba(255,255,255,0.86); font-size: 15px; line-height: 1.56; }
.solutions-hero__systems { display: grid; grid-template-columns: 1fr; margin-top: 20px; border-top: 1px solid rgba(255,255,255,0.25); border-bottom: 1px solid rgba(255,255,255,0.25); background: transparent; }
.solutions-hero__systems a,
.solutions-hero__systems a + a { grid-template-columns: 28px minmax(0, 1fr) 14px; gap: 11px; padding: 10px 0 11px; border-left: 0; background: transparent; }
.solutions-hero__systems a + a { border-top: 1px solid rgba(255,255,255,0.22); }
.solutions-hero__systems h2 { font-size: 15px; }
.solutions-hero__systems p { margin-top: 3px; color: rgba(255,255,255,0.74); font-size: 11.5px; line-height: 1.42; }
.solutions-hero__actions { gap: 10px; margin-top: 20px; }
.solutions-hero__actions .button { min-height: 46px; padding: 0 18px; font-size: 10px; }
.solutions-hero__media { position: absolute; z-index: 0; inset: 0; min-width: 0; pointer-events: none; }
.solutions-hero__media .media-frame { width: 100%; height: 100%; aspect-ratio: auto; border-radius: 0; }
.solutions-hero__media img { object-fit: cover; object-position: 52% center; }

.solutions-system__intro { grid-template-columns: minmax(0, 0.38fr) minmax(0, 0.62fr); gap: clamp(40px, 5vw, 68px); }
.solutions-furniture__intro { grid-template-columns: minmax(0, 0.62fr) minmax(0, 0.38fr); }
.solutions-doors__intro { grid-template-columns: minmax(0, 0.36fr) minmax(0, 0.64fr); }
.solutions-system__number { margin-bottom: 24px; }
.solutions-system__copy > p:last-child { margin-top: 18px; font-size: 16px; line-height: 1.62; }
.solutions-system__main-media .media-frame { aspect-ratio: 4 / 3; }
.solutions-system__main-media img { object-fit: cover; }

.solutions-block { margin-top: 48px; padding-top: 36px; }
.solutions-block__heading { margin-bottom: 28px; }
.solutions-block__heading > p:last-child:not(.eyebrow) { margin-top: 13px; line-height: 1.58; }
.solutions-indexed-list { column-gap: 34px; }
.solutions-indexed-list li,
.solutions-indexed-list--compact li { padding: 15px 0 17px; }
.solutions-indexed-list p { margin-top: 5px; line-height: 1.52; }
.solutions-cabinetry__categories,
.solutions-furniture__categories { gap: clamp(38px, 5vw, 68px); }

.solutions-material-matrix--cabinetry { grid-template-rows: repeat(2, minmax(205px, 1fr)); gap: 18px; }
.solutions-material-matrix--cabinetry .solutions-figure.is-primary { min-height: 520px; }
.solutions-page .solutions-material-matrix .media-frame img { object-fit: cover; }
.solutions-material-matrix--cabinetry .solutions-figure:not(.is-primary) .media-frame { aspect-ratio: auto; }
.solutions-figure figcaption { padding-top: 9px; }

.solutions-customization__layout { grid-template-columns: minmax(280px, 0.82fr) minmax(0, 1.18fr); gap: clamp(38px, 4vw, 56px); }
.solutions-proof-grid { gap: 30px 20px; }
.solutions-figure--proof .media-frame { aspect-ratio: 4 / 3; background: transparent; }
.solutions-page .solutions-figure--proof .media-frame img { object-fit: cover; }
.solutions-page [data-media-key="solutionsCabinetryHardware"] img { object-position: center 42%; }
.solutions-page [data-media-key="solutionsCabinetryBuiltIn"] img { object-position: center 45%; }
.solutions-page [data-media-key="solutionsCabinetryProductionDetail"] img { object-position: center 48%; }

.solutions-practice { gap: clamp(34px, 4vw, 54px); margin-top: 52px; padding: clamp(28px, 3vw, 38px); }
.solutions-practice--cabinetry,
.solutions-practice--doors { grid-template-columns: minmax(0, 0.58fr) minmax(300px, 0.42fr); }
.solutions-practice--furniture { grid-template-columns: minmax(0, 0.6fr) minmax(300px, 0.4fr); }
.solutions-practice--cabinetry .solutions-practice__media,
.solutions-practice--doors .solutions-practice__media { width: 100%; justify-self: start; }
.solutions-practice--furniture .solutions-practice__media { width: 100%; justify-self: end; }
.solutions-practice--cabinetry .media-frame,
.solutions-practice--doors .media-frame { aspect-ratio: 1 / 1; }
.solutions-practice--cabinetry video,
.solutions-practice--doors video { object-fit: cover; }
.solutions-practice__copy > p:last-of-type { margin-top: 13px; line-height: 1.58; }
.solutions-practice__copy > ul { margin-top: 20px; }
.solutions-practice__copy > ul > li { padding: 10px 0; }

.solutions-furniture-materials { gap: 32px 18px; }
.solutions-furniture-material__media .media-frame { aspect-ratio: 4 / 3; }
.solutions-furniture-material__media img { object-fit: cover; }
.solutions-furniture-material h4 { margin-top: 11px; }
.solutions-furniture-material p { margin-top: 5px; line-height: 1.52; }
.solutions-craftsmanship { grid-template-columns: minmax(0, 0.38fr) minmax(0, 0.62fr); gap: clamp(40px, 5vw, 68px); margin-top: 52px; padding-top: 36px; }
.solutions-craftsmanship__copy > p:last-child { margin-top: 13px; line-height: 1.58; }
.solutions-craftsmanship__media .media-frame { aspect-ratio: 4 / 3; background: transparent; }
.solutions-craftsmanship__media img { object-fit: cover; object-position: center 42%; }

.solutions-door-types { gap: 18px; }
.solutions-door-type.is-text-only { padding: 22px; }
.solutions-door-type h4 { margin-top: 12px; }
.solutions-door-type p { margin-top: 6px; line-height: 1.52; }
.solutions-door-type__media .media-frame { aspect-ratio: 4 / 3; }
.solutions-door-type__media img { object-fit: cover; }

.solutions-component-matrix { gap: 30px 18px; }
.solutions-component__media .media-frame { background: transparent; }
.solutions-component__media img { object-fit: cover; }
.solutions-component.is-wide .media-frame { aspect-ratio: 1 / 1; }
.solutions-component:nth-child(2) .media-frame { aspect-ratio: 4 / 5; }
.solutions-component:nth-child(n + 3) .media-frame { aspect-ratio: 1 / 1; }
.solutions-component > div:last-child { padding-top: 10px; }
.solutions-component h4 { margin-top: 5px; }
.solutions-component p { margin-top: 5px; line-height: 1.5; }
.solutions-page [data-media-key="solutionsDoorsProfileSection"] img { object-position: center 45%; }

.solutions-doors__specifications .solutions-indexed-list { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 26px; }
.solutions-doors__specifications .solutions-indexed-list li { grid-template-columns: 30px minmax(0, 1fr); gap: 10px; padding: 13px 0 15px; }
.solutions-site-grid { gap: 22px; }
.solutions-site-grid__media .media-frame { aspect-ratio: 4 / 3; background: transparent; }
.solutions-site-grid__media img { object-fit: cover; }
.solutions-site-grid h4 { margin-top: 11px; }
.solutions-site-grid p { margin-top: 5px; line-height: 1.52; }
.solutions-page [data-media-key="solutionsDoorsInstallation"] img { object-position: center 38%; }
.solutions-page [data-media-key="solutionsDoorsSillEdge"] img { object-position: center 48%; }

.solutions-bridge { padding-top: 58px !important; padding-bottom: 58px !important; }
.solutions-bridge__layout { gap: clamp(34px, 5vw, 66px); }
.solutions-bridge__layout > div:first-child > p:last-child { margin-top: 15px; font-size: 16px; line-height: 1.58; }
.solutions-bridge__relationship { gap: 13px; padding: 24px 0; }
.solutions-cta { padding-top: 66px !important; padding-bottom: 66px !important; }
.solutions-cta__layout { gap: clamp(44px, 6vw, 82px); }
.solutions-cta__copy > p:not(.eyebrow) { margin-top: 16px; font-size: 16px; line-height: 1.6; }
.solutions-cta__actions { margin-top: 25px; }
.solutions-cta__support article { padding: 17px 0 19px; }

@media (max-width: 1080px) {
  .solutions-hero__copy h1 { font-size: clamp(44px, 5.2vw, 54px); }
  .solutions-system__intro,
  .solutions-furniture__intro,
  .solutions-doors__intro { grid-template-columns: minmax(0, 0.4fr) minmax(340px, 0.6fr); gap: 38px; }
  .solutions-furniture__intro { grid-template-columns: minmax(340px, 0.6fr) minmax(0, 0.4fr); }
  .solutions-material-matrix--cabinetry .solutions-figure.is-primary { min-height: 410px; }
  .solutions-practice--cabinetry,
  .solutions-practice--doors { grid-template-columns: minmax(0, 0.56fr) minmax(280px, 0.44fr); }
  .solutions-practice--furniture { grid-template-columns: minmax(0, 0.58fr) minmax(280px, 0.42fr); }
}

@media (max-width: 800px) {
  .solutions-page > .section { padding: 68px 0; }
  .solutions-hero { min-height: 820px; }
  .solutions-hero::after { background: linear-gradient(90deg, rgba(10,11,10,0.82) 0%, rgba(10,11,10,0.68) 48%, rgba(10,11,10,0.34) 100%), linear-gradient(180deg, rgba(10,11,10,0.2) 0%, rgba(10,11,10,0.08) 55%, rgba(10,11,10,0.3) 100%); }
  .solutions-hero__inner { padding-top: 126px; padding-bottom: 48px; }
  .solutions-hero__copy { width: min(600px, 100%); }
  .solutions-hero__copy h1 { max-width: 580px; }
  .solutions-hero__body { max-width: 570px; }
  .solutions-hero__media img { object-position: 52% center; }
  .solutions-system__intro,
  .solutions-furniture__intro,
  .solutions-doors__intro { grid-template-columns: 1fr; gap: 30px; }
  .solutions-furniture__intro .solutions-system__main-media { order: initial; }
  .solutions-block { margin-top: 44px; padding-top: 32px; }
  .solutions-customization__layout { gap: 32px; }
  .solutions-practice,
  .solutions-practice--cabinetry,
  .solutions-practice--furniture,
  .solutions-practice--doors { grid-template-columns: 1fr; gap: 30px; margin-top: 44px; padding: 30px; }
  .solutions-practice--cabinetry .solutions-practice__media,
  .solutions-practice--doors .solutions-practice__media,
  .solutions-practice--furniture .solutions-practice__media { width: min(430px, 72vw); justify-self: center; }
  .solutions-practice--furniture .solutions-practice__media { order: 0; }
  .solutions-craftsmanship { grid-template-columns: 1fr; gap: 28px; margin-top: 44px; padding-top: 32px; }
  .solutions-doors__specifications .solutions-indexed-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .solutions-page > .section { padding: 56px 0; }
  .solutions-hero { min-height: 980px; }
  .solutions-hero::after { background: linear-gradient(90deg, rgba(10,11,10,0.8), rgba(10,11,10,0.62)), linear-gradient(180deg, rgba(10,11,10,0.48) 0%, rgba(10,11,10,0.18) 44%, rgba(10,11,10,0.55) 100%); }
  .solutions-hero__inner { padding-top: 120px; padding-bottom: 42px; }
  .solutions-hero__copy h1 { font-size: clamp(38px, 11.2vw, 46px); line-height: 1.06; }
  .solutions-hero__body { margin-top: 15px; color: rgba(255,255,255,0.88); line-height: 1.52; }
  .solutions-hero__systems { margin-top: 19px; }
  .solutions-hero__systems a,
  .solutions-hero__systems a + a { padding: 10px 0 11px; }
  .solutions-hero__systems p { color: rgba(255,255,255,0.76); font-size: 11px; }
  .solutions-hero__actions { margin-top: 18px; }
  .solutions-hero__media img { object-position: 53% center; }
  .solutions-system__copy > p:last-child { font-size: 15px; line-height: 1.58; }
  .solutions-block { margin-top: 38px; padding-top: 27px; }
  .solutions-block__heading { margin-bottom: 24px; }
  .solutions-indexed-list li,
  .solutions-indexed-list--compact li { padding: 14px 0 16px; }
  .solutions-material-matrix--cabinetry { gap: 24px; }
  .solutions-material-matrix--cabinetry .solutions-figure.is-primary { min-height: 0; }
  .solutions-customization__layout { grid-template-columns: 1fr; }
  .solutions-proof-grid { gap: 26px; }
  .solutions-furniture-materials { gap: 28px; }
  .solutions-furniture-material__media .media-frame,
  .solutions-figure--proof .media-frame,
  .solutions-site-grid__media .media-frame { aspect-ratio: 4 / 3; }
  .solutions-craftsmanship { margin-top: 38px; padding-top: 27px; }
  .solutions-practice,
  .solutions-practice--cabinetry,
  .solutions-practice--furniture,
  .solutions-practice--doors { gap: 25px; margin-top: 38px; padding: 22px 20px; }
  .solutions-practice--cabinetry .solutions-practice__media,
  .solutions-practice--doors .solutions-practice__media,
  .solutions-practice--furniture .solutions-practice__media { width: 100%; }
  .solutions-component-matrix { gap: 26px; }
  .solutions-component.is-wide .media-frame { aspect-ratio: 1 / 1; }
  .solutions-component:nth-child(2) .media-frame { aspect-ratio: 4 / 5; }
  .solutions-doors__specifications .solutions-indexed-list { grid-template-columns: 1fr; }
  .solutions-site-grid { gap: 28px; }
  .solutions-bridge { padding-top: 48px !important; padding-bottom: 48px !important; }
  .solutions-cta { padding-top: 54px !important; padding-bottom: 54px !important; }
}

/* Projects V1: editorial case studies, portfolio and execution framework. */
.projects-page { overflow: clip; background: var(--paper); }
.projects-page figure, .projects-page h4 { margin: 0; }
.projects-page .section.reveal { opacity: 1; transform: none; }
.projects-page #featured-projects,
.projects-page #economic-headquarters,
.projects-page #villa,
.projects-page #shanghai-private-residence,
.projects-page #apartment,
.projects-page #design-portfolio,
.projects-page #project-execution { scroll-margin-top: 104px; }
.projects-anchor-alias { display: block; height: 0; }

.projects-image { position: relative; width: 100%; aspect-ratio: var(--projects-ratio); overflow: hidden; background: #d9d6ce; }
.projects-image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.projects-image--contain { background: #e7e4dd; }
.projects-image--contain img { object-fit: contain; }

.projects-hero { position: relative; min-height: clamp(680px, 78vh, 760px); overflow: hidden; color: #fff; background: #2d2e2a; }
.projects-hero__media { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; }
.projects-hero__media img { object-position: center center; }
.projects-hero__veil { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(16,17,15,0.7) 0%, rgba(16,17,15,0.43) 40%, rgba(16,17,15,0.1) 76%), linear-gradient(0deg, rgba(16,17,15,0.27), transparent 55%); }
.projects-hero__inner { position: relative; z-index: 1; min-height: inherit; display: flex; align-items: center; padding-top: 116px; padding-bottom: 74px; }
.projects-hero__copy { width: min(670px, 100%); }
.projects-hero__copy h1 { max-width: 660px; }
.projects-hero__copy > p:not(.eyebrow) { max-width: 610px; margin-top: 25px; color: rgba(255,255,255,0.84); font-size: var(--type-body-lg); line-height: 1.72; }
.projects-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 35px; }

.projects-featured { padding-bottom: clamp(92px, 8vw, 116px); }
.projects-case { position: relative; min-width: 0; padding-top: clamp(104px, 9vw, 132px); border-top: 1px solid var(--line-strong); }
.projects-featured .section-heading + .projects-case { padding-top: 0; border-top: 0; }
.projects-case + .projects-case { margin-top: clamp(112px, 10vw, 150px); }
.projects-case__heading { max-width: 840px; }
.projects-case__label, .projects-block-label { color: #927f64; font-size: 10px; font-weight: 700; letter-spacing: 0.17em; line-height: 1.4; text-transform: uppercase; }
.projects-case__heading h3 { margin-top: 15px; font-size: clamp(38px, 4.2vw, 58px); letter-spacing: -0.045em; }
.projects-case__subtitle { margin-top: 11px; color: var(--ink-soft); font-size: clamp(17px, 1.7vw, 22px); line-height: 1.45; }
.projects-case__wide-hero { margin-top: clamp(38px, 4vw, 54px); }
.projects-case__intro { margin-top: clamp(30px, 3.5vw, 46px); }
.projects-copy-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px clamp(38px, 6vw, 84px); max-width: 1040px; }
.projects-copy-columns p, .projects-editorial-copy > p:not(.projects-block-label), .projects-headquarters__material-intro > p:last-child, .projects-yunshan__statement > p:not(.projects-block-label) { color: var(--ink-soft); font-size: 16px; line-height: 1.72; }
.projects-editorial-copy h4, .projects-headquarters__material-intro h4, .projects-yunshan__statement h4, .projects-subheading h4 { margin-top: 13px; font-size: clamp(26px, 2.5vw, 36px); font-weight: 500; letter-spacing: -0.035em; line-height: 1.2; }
.projects-editorial-copy > p:not(.projects-block-label), .projects-headquarters__material-intro > p:last-child, .projects-yunshan__statement > p:not(.projects-block-label) { margin-top: 17px; }
.projects-editorial-copy > p:not(.projects-block-label) + p, .projects-yunshan__statement > p:not(.projects-block-label) + p { margin-top: 11px; }
.projects-case figure { min-width: 0; }
.projects-case figcaption { padding-top: 11px; color: #796b58; font-size: 10px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; }
.projects-case__closing { max-width: 760px; margin-top: clamp(46px, 5vw, 66px); color: #806f59; font-size: clamp(22px, 2.25vw, 30px); line-height: 1.4; }

.projects-headquarters__planning { display: grid; grid-template-columns: minmax(260px, 0.62fr) minmax(0, 1.38fr); gap: clamp(42px, 6vw, 82px); align-items: center; margin-top: clamp(66px, 7vw, 94px); }
.projects-technical-sheet { background: #e8e5de; }
.projects-headquarters__spaces { display: grid; grid-template-columns: minmax(0, 1.28fr) minmax(280px, 0.72fr); gap: clamp(42px, 6vw, 82px); align-items: center; margin-top: clamp(72px, 7vw, 100px); }
.projects-headquarters__spaces .projects-image { aspect-ratio: 4 / 3; }
.projects-headquarters__material-intro { max-width: 720px; margin-top: clamp(70px, 7vw, 98px); }
.projects-headquarters__material-pair { display: grid; grid-template-columns: minmax(0, 1fr) 32px minmax(0, 1fr); gap: 18px; align-items: center; margin-top: 34px; }
.projects-headquarters__material-pair > span { color: #99866d; font-size: 24px; text-align: center; }

.projects-yunshan__intro { display: grid; grid-template-columns: minmax(320px, 0.74fr) minmax(0, 1.26fr); gap: clamp(44px, 7vw, 92px); align-items: end; }
.projects-yunshan__intro .projects-copy-columns { grid-template-columns: 1fr; gap: 12px; }
.projects-yunshan__masonry { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr); gap: 30px; align-items: start; margin-top: clamp(50px, 6vw, 78px); }
.projects-yunshan__column { display: grid; gap: 30px; min-width: 0; align-content: start; }
.projects-yunshan__column--secondary { padding-top: 48px; }
.projects-yunshan__statement { max-width: 560px; padding: 18px 24px 12px 0; }

.projects-case--shanghai .projects-case__intro { margin-bottom: clamp(38px, 4vw, 54px); }
.projects-shanghai__planning { display: grid; grid-template-columns: minmax(270px, 0.58fr) minmax(0, 1.42fr); gap: clamp(42px, 6vw, 82px); align-items: center; margin-top: clamp(68px, 7vw, 96px); }
.projects-technical__trigger { display: block; width: 100%; min-width: 0; padding: 0; color: var(--ink); background: transparent; text-align: left; }
.projects-technical__trigger .projects-image { border: 1px solid var(--line); }
.projects-technical__trigger > span { display: inline-block; margin-top: 12px; color: #796b58; font-size: 10px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; }
.projects-technical__trigger { cursor: zoom-in; }
.projects-shanghai__selected { margin-top: clamp(72px, 7vw, 100px); }
.projects-subheading { margin-bottom: 27px; }
.projects-shanghai__space-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.projects-shanghai__space-grid .projects-image { aspect-ratio: 4 / 3; }
.projects-shanghai__development, .projects-shanghai__furniture { margin-top: clamp(76px, 7vw, 104px); padding-top: clamp(50px, 5vw, 68px); border-top: 1px solid var(--line); }
.projects-shanghai__development .projects-editorial-copy, .projects-shanghai__furniture .projects-editorial-copy { max-width: 760px; margin-bottom: 34px; }

.projects-portfolio { background: var(--warm); }
.projects-portfolio .section-heading__intro + .section-heading__intro { margin-top: 8px; }
.projects-portfolio__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 3vw, 38px); }
.projects-portfolio__card { min-width: 0; }
.projects-portfolio__cover { display: block; overflow: hidden; }
.projects-portfolio__cover .projects-image { aspect-ratio: 1 / 1; }
.projects-portfolio__cover img { transition: transform 420ms var(--ease-out); }
.projects-portfolio__body { padding-top: 21px; }
.projects-portfolio__body > p:first-child { color: #927f64; font-size: 10px; font-weight: 700; letter-spacing: 0.15em; }
.projects-portfolio__body h3 { margin-top: 9px; font-size: 24px; letter-spacing: -0.03em; }
.projects-portfolio__body > p:nth-of-type(2) { margin-top: 12px; color: var(--ink-soft); font-size: var(--type-body-sm); line-height: 1.66; }
.projects-portfolio__link { display: inline-block; margin-top: 20px; color: #6f604e; font-size: 11px; font-weight: 700; letter-spacing: 0.08em; }

.projects-execution { background: #e8e5de; }
.projects-execution__rows { display: grid; gap: clamp(68px, 7vw, 96px); }
.projects-execution__row { display: grid; grid-template-columns: minmax(0, 0.61fr) minmax(300px, 0.39fr); grid-template-rows: auto 1fr; gap: 28px clamp(28px, 4vw, 58px); align-items: start; padding-top: clamp(50px, 5vw, 68px); border-top: 1px solid var(--line-strong); }
.projects-execution__primary { grid-column: 1; grid-row: 1 / span 2; min-width: 0; }
.projects-execution__secondary { grid-column: 2; grid-row: 1; min-width: 0; }
.projects-execution__copy { grid-column: 2; grid-row: 2; align-self: end; padding-bottom: 8px; }
.projects-execution__row.is-reversed { grid-template-columns: minmax(300px, 0.39fr) minmax(0, 0.61fr); }
.projects-execution__row.is-reversed .projects-execution__primary { grid-column: 2; }
.projects-execution__row.is-reversed .projects-execution__secondary { grid-column: 1; grid-row: 2; }
.projects-execution__row.is-reversed .projects-execution__copy { grid-column: 1; grid-row: 1; align-self: start; padding-top: 8px; padding-bottom: 0; }
.projects-execution__primary .projects-image, .projects-execution__primary .projects-execution__placeholder { aspect-ratio: 5 / 4; }
.projects-execution__secondary .projects-image, .projects-execution__secondary .projects-execution__placeholder { aspect-ratio: 3 / 2; }
.projects-execution__primary .projects-image img, .projects-execution__secondary .projects-image img { object-fit: cover; }
.projects-execution__placeholder { position: relative; display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; overflow: hidden; padding: clamp(24px, 3vw, 38px); border: 1px solid rgba(32,33,31,0.3); color: #403e39; background: #d5d1c8; }
.projects-execution__placeholder::before { position: absolute; inset: 0; content: ""; opacity: 0.5; background: linear-gradient(135deg, transparent 49.6%, rgba(32,33,31,0.17) 49.8%, rgba(32,33,31,0.17) 50.2%, transparent 50.4%), linear-gradient(45deg, transparent 49.6%, rgba(32,33,31,0.12) 49.8%, rgba(32,33,31,0.12) 50.2%, transparent 50.4%); }
.projects-execution__placeholder > * { position: relative; z-index: 1; }
.projects-execution__placeholder span, .projects-execution__copy > small { color: #806e57; font-size: 10px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; }
.projects-execution__placeholder strong { max-width: 500px; font-size: clamp(20px, 2.1vw, 31px); font-weight: 500; line-height: 1.2; }
.projects-execution__secondary .projects-execution__placeholder { padding: clamp(20px, 2.2vw, 28px); }
.projects-execution__secondary .projects-execution__placeholder strong { max-width: 360px; font-size: clamp(17px, 1.5vw, 22px); }
.projects-execution__placeholder small { font-size: 11px; }
.projects-execution__copy > span { color: #927f64; font-size: 11px; font-weight: 700; letter-spacing: 0.16em; }
.projects-execution__copy h3 { margin-top: 18px; font-size: clamp(29px, 3vw, 42px); letter-spacing: -0.04em; }
.projects-execution__copy p { max-width: 520px; margin-top: 17px; color: var(--ink-soft); font-size: 16px; line-height: 1.7; }
.projects-execution__copy > small { display: block; margin-top: 20px; }
.projects-execution__closing { max-width: 800px; margin-top: clamp(62px, 7vw, 92px); color: #806f59; font-size: clamp(24px, 2.6vw, 34px); line-height: 1.38; }

.projects-final { color: #fff; background: var(--dark); }
.projects-final__inner { display: grid; grid-template-columns: minmax(0, 0.72fr) minmax(300px, 0.28fr); gap: clamp(52px, 8vw, 110px); align-items: end; }
.projects-final h2 { max-width: 620px; font-size: var(--type-h2); letter-spacing: -0.04em; }
.projects-final__inner > div > p:not(.eyebrow) { max-width: 620px; margin-top: 17px; color: rgba(255,255,255,0.7); font-size: 16px; line-height: 1.68; }
.projects-final__inner > div > p:not(.eyebrow) + p { margin-top: 8px; }
.projects-final__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 31px; }
.projects-final__closing { padding-top: 25px; border-top: 1px solid var(--line-dark); color: #d2c2a7; font-size: clamp(20px, 2.2vw, 28px); line-height: 1.45; }

.projects-lightbox { width: 100vw; max-width: none; height: 100vh; max-height: none; margin: 0; padding: 0; border: 0; color: #fff; background: rgba(15,16,14,0.94); }
.projects-lightbox::backdrop { background: rgba(15,16,14,0.88); }
.projects-lightbox[open] { display: grid; place-items: center; }
.projects-lightbox__panel { position: relative; display: grid; place-items: center; width: 100%; height: 100%; padding: 68px 28px 28px; }
.projects-lightbox__panel img { display: block; max-width: min(94vw, 1500px); max-height: calc(100vh - 106px); width: auto; height: auto; object-fit: contain; background: #fff; }
.projects-lightbox__close { position: fixed; z-index: 2; top: 18px; right: 22px; min-height: 40px; padding: 0 17px; border: 1px solid rgba(255,255,255,0.5); color: #fff; background: rgba(255,255,255,0.08); font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.has-projects-lightbox { overflow: hidden; }

@media (hover: hover) {
  .projects-portfolio__cover:hover img { transform: scale(1.012); }
  .projects-portfolio__link:hover, .projects-technical__trigger:hover > span { color: var(--ink); }
}

@media (min-width: 1081px) {
  .projects-page .container { width: min(1320px, calc(100% - 64px)); }
  .projects-featured { padding-top: 108px; padding-bottom: 100px; }
  .projects-featured .section-heading { margin-bottom: 50px; }
  .projects-case { padding-top: 84px; }
  .projects-case + .projects-case { margin-top: 76px; }
  .projects-case__wide-hero { width: 100%; margin-top: 42px; }
  .projects-case__intro { margin-top: 34px; }
  .projects-case__closing { margin-top: 44px; }

  .projects-headquarters__planning { grid-template-columns: minmax(280px, 0.34fr) minmax(0, 0.66fr); gap: 56px; margin-top: 62px; }
  .projects-headquarters__spaces { grid-template-columns: minmax(0, 0.66fr) minmax(300px, 0.34fr); gap: 56px; margin-top: 66px; }
  .projects-headquarters__material-intro { margin-top: 60px; }
  .projects-headquarters__material-pair { grid-template-columns: minmax(0, 1fr) 26px minmax(0, 1fr); gap: 16px; margin-top: 28px; }

  .projects-yunshan__intro { grid-template-columns: minmax(360px, 0.38fr) minmax(0, 0.62fr); gap: 72px; }
  .projects-yunshan__masonry { gap: 30px; margin-top: 52px; }
  .projects-yunshan__column { gap: 30px; }
  .projects-yunshan__column--secondary { padding-top: 48px; }

  .projects-case--shanghai .projects-case__intro { margin-bottom: 42px; }
  .projects-shanghai__planning { grid-template-columns: minmax(300px, 0.34fr) minmax(0, 0.66fr); gap: 44px; margin-top: 56px; }
  .projects-shanghai__selected { margin-top: 64px; }
  .projects-shanghai__space-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 28px; }
  .projects-shanghai__space-grid figure:first-child { grid-column: 1 / -1; }
  .projects-shanghai__space-grid figure:first-child .projects-image { aspect-ratio: 16 / 9; }
  .projects-shanghai__development-chapter { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; margin-top: 64px; padding-top: 46px; border-top: 1px solid var(--line); }
  .projects-shanghai__development, .projects-shanghai__furniture { margin-top: 0; padding-top: 0; border-top: 0; }
  .projects-shanghai__development .projects-editorial-copy, .projects-shanghai__furniture .projects-editorial-copy { margin-bottom: 24px; }

  .projects-portfolio { padding-top: 104px; padding-bottom: 104px; }
  .projects-portfolio .section-heading { margin-bottom: 44px; }
  .projects-portfolio__grid { gap: 24px; }
  .projects-portfolio__body { padding-top: 18px; }
  .projects-portfolio__body h3 { font-size: 26px; }

  .projects-execution { padding-top: 100px; padding-bottom: 100px; }
  .projects-execution .section-heading { margin-bottom: 48px; }
  .projects-execution__rows { gap: 52px; }
  .projects-execution__row { gap: 24px 38px; padding-top: 42px; }
  .projects-execution__closing { margin-top: 56px; }
}

@media (max-width: 1080px) {
  .projects-yunshan__intro { grid-template-columns: minmax(280px, 0.82fr) minmax(0, 1.18fr); gap: 44px; }
  .projects-yunshan__masonry { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 22px; }
  .projects-yunshan__column { display: contents; }
  .projects-yunshan__column--secondary { padding-top: 0; }
  .projects-yunshan__masonry .is-hero { order: 1; }
  .projects-yunshan__masonry .is-library { order: 2; }
  .projects-yunshan__statement { order: 3; }
  .projects-yunshan__masonry .is-courtyard { order: 4; }
  .projects-yunshan__masonry .is-kitchen { order: 5; }
  .projects-yunshan__masonry .is-bedroom { order: 6; }
  .projects-execution__row, .projects-execution__row.is-reversed { gap: 24px 34px; }
}

@media (max-width: 800px) {
  .projects-hero { min-height: 680px; }
  .projects-hero__inner { align-items: flex-end; padding-top: 126px; padding-bottom: 70px; }
  .projects-copy-columns { gap: 20px 34px; }
  .projects-headquarters__planning, .projects-headquarters__spaces, .projects-shanghai__planning { grid-template-columns: 1fr; gap: 32px; }
  .projects-headquarters__spaces .projects-editorial-copy { order: -1; }
  .projects-yunshan__intro { grid-template-columns: 1fr; gap: 28px; }
  .projects-yunshan__masonry { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 22px; }
  .projects-yunshan__masonry .is-hero, .projects-yunshan__masonry .is-library, .projects-yunshan__statement, .projects-yunshan__masonry .is-courtyard, .projects-yunshan__masonry .is-kitchen, .projects-yunshan__masonry .is-bedroom { grid-column: auto; grid-row: auto; margin-top: 0; }
  .projects-yunshan__statement { align-self: center; padding: 24px 0; }
  .projects-shanghai__space-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .projects-shanghai__space-grid figure:last-child { grid-column: 1 / -1; width: calc(50% - 11px); }
  .projects-portfolio__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .projects-execution__row { grid-template-columns: minmax(0, 0.57fr) minmax(260px, 0.43fr); gap: 22px 28px; }
  .projects-execution__row.is-reversed { grid-template-columns: minmax(260px, 0.43fr) minmax(0, 0.57fr); }
  .projects-final__inner { grid-template-columns: 1fr; gap: 46px; }
  .projects-final__closing { max-width: 600px; }
}

@media (max-width: 560px) {
  .projects-page #featured-projects,
  .projects-page #economic-headquarters,
  .projects-page #villa,
  .projects-page #shanghai-private-residence,
  .projects-page #apartment,
  .projects-page #design-portfolio,
  .projects-page #project-execution { scroll-margin-top: 84px; }
  .projects-hero { min-height: 620px; }
  .projects-hero__media img { object-position: 50% center; }
  .projects-hero__inner { padding-top: 112px; padding-bottom: 50px; }
  .projects-hero__copy > p:not(.eyebrow) { font-size: 15px; line-height: 1.62; }
  .projects-hero__actions { align-items: stretch; flex-direction: column; margin-top: 27px; }
  .projects-hero__actions .button { width: 100%; }
  .projects-case { padding-top: 74px; }
  .projects-case + .projects-case { margin-top: 82px; }
  .projects-case__heading h3 { font-size: clamp(34px, 10.5vw, 43px); }
  .projects-case__subtitle { font-size: 16px; }
  .projects-copy-columns { grid-template-columns: 1fr; gap: 10px; }
  .projects-copy-columns p, .projects-editorial-copy > p:not(.projects-block-label), .projects-headquarters__material-intro > p:last-child, .projects-yunshan__statement > p:not(.projects-block-label) { font-size: 15px; line-height: 1.64; }
  .projects-headquarters__planning, .projects-headquarters__spaces, .projects-shanghai__planning { margin-top: 54px; }
  .projects-headquarters__material-intro { margin-top: 58px; }
  .projects-headquarters__material-pair { grid-template-columns: 1fr; gap: 27px; }
  .projects-headquarters__material-pair > span { transform: rotate(90deg); }
  .projects-yunshan__masonry { grid-template-columns: 1fr; gap: 32px; margin-top: 42px; }
  .projects-yunshan__statement { order: 3; padding: 12px 0; }
  .projects-shanghai__space-grid { grid-template-columns: 1fr; gap: 30px; }
  .projects-shanghai__space-grid figure:last-child { grid-column: auto; width: auto; }
  .projects-shanghai__development, .projects-shanghai__furniture { margin-top: 60px; padding-top: 40px; }
  .projects-technical__trigger > span { margin-top: 10px; }
  .projects-portfolio__grid { grid-template-columns: 1fr; gap: 44px; }
  .projects-execution__rows { gap: 54px; }
  .projects-execution__row, .projects-execution__row.is-reversed { grid-template-columns: 1fr; gap: 25px; padding-top: 38px; }
  .projects-execution__primary, .projects-execution__secondary, .projects-execution__copy,
  .projects-execution__row.is-reversed .projects-execution__primary, .projects-execution__row.is-reversed .projects-execution__secondary, .projects-execution__row.is-reversed .projects-execution__copy { grid-column: auto; grid-row: auto; align-self: auto; padding-top: 0; padding-bottom: 0; }
  .projects-execution__primary .projects-image, .projects-execution__primary .projects-execution__placeholder { aspect-ratio: 4 / 3; }
  .projects-execution__secondary .projects-image, .projects-execution__secondary .projects-execution__placeholder { aspect-ratio: 3 / 2; }
  .projects-execution__copy h3 { font-size: 28px; }
  .projects-execution__copy p { font-size: 15px; line-height: 1.64; }
  .projects-final__actions { align-items: stretch; flex-direction: column; }
  .projects-final__actions .button { width: 100%; }
  .projects-lightbox__panel { padding: 62px 12px 16px; }
  .projects-lightbox__panel img { max-width: 96vw; max-height: calc(100vh - 88px); }
  .projects-lightbox__close { top: 12px; right: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .projects-portfolio__cover img { transition: none; }
}
