:root {
    --v2-ink: #111210;
    --v2-ink-soft: #1b1c19;
    --v2-charcoal: #2d2e2a;
    --v2-stone: #ebe7df;
    --v2-stone-deep: #d7d0c4;
    --v2-paper: #f8f6f1;
    --v2-white: #ffffff;
    --v2-bronze: #a87a43;
    --v2-bronze-dark: #79542f;
    --v2-muted: #6c6a64;
    --v2-line: rgba(17, 18, 16, .16);
    --v2-line-light: rgba(255, 255, 255, .22);
    --v2-focus: #e3a95f;
    --v2-shadow: 0 24px 70px rgba(17, 18, 16, .18);
    --v2-serif: Georgia, "Times New Roman", serif;
    --v2-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    --v2-container: min(90rem, calc(100vw - clamp(2rem, 8vw, 9rem)));
    --v2-gutter: clamp(1rem, 4vw, 4.5rem);
    --v2-section: clamp(4.5rem, 9vw, 9rem);
    color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--v2-paper); color: var(--v2-ink); font-family: var(--v2-sans); font-size: 1rem; line-height: 1.65; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
body.v2-menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
[hidden] { display: none !important; }
a { color: inherit; text-underline-offset: .22em; text-decoration-thickness: .08em; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: .2rem solid var(--v2-focus); outline-offset: .22rem; }
::selection { background: var(--v2-bronze); color: var(--v2-white); }

.v2-container { width: var(--v2-container); margin-inline: auto; }
.v2-skip-link { position: fixed; z-index: 10000; top: .75rem; left: .75rem; transform: translateY(-180%); padding: .75rem 1rem; background: var(--v2-white); color: var(--v2-ink); font-weight: 700; }
.v2-skip-link:focus { transform: translateY(0); }
.v2-site-shell { min-height: 100vh; }
.v2-announcement { padding: .65rem var(--v2-gutter); background: var(--v2-bronze); color: var(--v2-white); text-align: center; font-size: .8rem; letter-spacing: .04em; }
.v2-announcement p { margin: 0; }

.v2-header { position: relative; z-index: 100; height: 6.25rem; background: var(--v2-ink); color: var(--v2-white); border-bottom: 1px solid var(--v2-line-light); }
.v2-header__inner { height: 100%; display: flex; align-items: center; gap: 2rem; }
.v2-brand { flex: 0 0 auto; display: inline-flex; align-items: center; text-decoration: none; }
.v2-brand__logo { width: clamp(9rem, 13vw, 13.5rem); max-height: 4.4rem; object-fit: contain; object-position: left center; }
.v2-brand__wordmark { font: 700 clamp(.78rem, 1vw, .9rem)/1 var(--v2-sans); letter-spacing: .075em; text-transform: uppercase; white-space: nowrap; }
.v2-footer__brand { font: 700 clamp(1.2rem, 2vw, 1.6rem)/1 var(--v2-serif); letter-spacing: -.02em; text-decoration: none; }
.v2-primary-nav { margin-left: auto; display: flex; align-items: center; gap: clamp(1rem, 2.2vw, 2.25rem); }
.v2-primary-nav > a { position: relative; padding-block: .55rem; color: rgba(255,255,255,.82); font-size: .91rem; font-weight: 600; text-decoration: none; }
.v2-primary-nav > a:not(.v2-primary-nav__cta)::after { content: ""; position: absolute; right: 0; bottom: .15rem; left: 0; height: 1px; transform: scaleX(0); transform-origin: right; background: var(--v2-bronze); transition: transform .22s ease; }
.v2-primary-nav > a:hover::after, .v2-primary-nav > a.is-active::after { transform: scaleX(1); transform-origin: left; }
.v2-primary-nav > a.is-active { color: var(--v2-white); }
.v2-primary-nav__cta { margin-left: .4rem; padding: .72rem 1.15rem !important; border: 1px solid var(--v2-bronze); color: var(--v2-white) !important; }
.v2-primary-nav__cta:hover { background: var(--v2-bronze); }
.v2-primary-nav__promoted { color: #d7ae7c !important; }
.v2-menu-toggle { display: none; margin-left: auto; min-width: 3.6rem; min-height: 3rem; padding: .5rem .75rem; border: 1px solid var(--v2-line-light); background: transparent; color: var(--v2-white); cursor: pointer; }
.v2-menu-toggle__label { font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.v2-breadcrumbs { padding-block: 1rem; }
.v2-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .35rem .6rem; margin: 0; padding: 0; list-style: none; color: var(--v2-muted); font-size: .78rem; }
.v2-breadcrumbs li { display: inline-flex; gap: .6rem; align-items: center; }
.v2-breadcrumbs a { color: var(--v2-ink); }

.v2-hero { position: relative; min-height: clamp(36rem, 74vh, 58rem); isolation: isolate; display: grid; align-items: end; overflow: hidden; background: var(--v2-ink); color: var(--v2-white); }
.v2-page:not(.v2-page--home) .v2-hero { min-height: clamp(29rem, 58vh, 45rem); }
.v2-hero--no-media { background: linear-gradient(120deg, var(--v2-ink), var(--v2-charcoal)); }
.v2-hero__media, .v2-hero__veil { position: absolute; inset: 0; z-index: -2; }
.v2-hero__image { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.v2-hero__veil { z-index: -1; background: linear-gradient(90deg, rgba(7,8,7,.9) 0%, rgba(7,8,7,.58) 47%, rgba(7,8,7,.12) 78%), linear-gradient(0deg, rgba(7,8,7,.72) 0%, transparent 50%); }
.v2-hero__content { padding-block: clamp(4rem, 9vw, 8rem); }
.v2-hero__content > * { max-width: 51rem; }
.v2-eyebrow { margin: 0 0 1rem; color: var(--v2-bronze); font-size: .72rem; font-weight: 800; line-height: 1.2; letter-spacing: .18em; text-transform: uppercase; }
.v2-hero h1, .v2-section h2, .v2-feature-project h2, .v2-final-cta h2, .v2-contact-dialog h2 { margin: 0; font-family: var(--v2-serif); font-weight: 400; line-height: .99; letter-spacing: -.038em; text-wrap: balance; }
.v2-hero h1 { max-width: 18ch; font-size: clamp(3rem, 7.2vw, 7.5rem); }
.v2-page:not(.v2-page--home) .v2-hero h1 { max-width: 20ch; font-size: clamp(2.9rem, 5.6vw, 6.3rem); }
.v2-hero__summary { max-width: 50rem; margin: 1.65rem 0 0; color: rgba(255,255,255,.82); font-size: clamp(1.02rem, 1.4vw, 1.22rem); line-height: 1.65; }
.v2-action-row { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 2.25rem; }
.v2-button { display: inline-flex; min-height: 3.25rem; align-items: center; justify-content: center; padding: .78rem 1.4rem; border: 1px solid transparent; color: inherit; font-size: .81rem; font-weight: 800; letter-spacing: .075em; text-decoration: none; text-transform: uppercase; cursor: pointer; transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease; }
.v2-button:hover { transform: translateY(-1px); }
.v2-button--bronze { background: var(--v2-bronze); color: var(--v2-white); }
.v2-button--bronze:hover { background: var(--v2-bronze-dark); }
.v2-button--ghost { border-color: rgba(255,255,255,.55); background: rgba(17,18,16,.2); color: var(--v2-white); backdrop-filter: blur(.5rem); }
.v2-button--ghost:hover { background: var(--v2-white); color: var(--v2-ink); }
.v2-button--light { background: var(--v2-paper); color: var(--v2-ink); }

.v2-section { padding-block: var(--v2-section); }
.v2-section--light { background: var(--v2-paper); color: var(--v2-ink); }
.v2-section--stone { background: var(--v2-stone); color: var(--v2-ink); }
.v2-section--ink { background: var(--v2-ink); color: var(--v2-white); }
.v2-section h2, .v2-feature-project h2, .v2-final-cta h2 { font-size: clamp(2.5rem, 5vw, 5.5rem); }
.v2-editorial-intro, .v2-editorial-split { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(18rem, .92fr); gap: clamp(2rem, 7vw, 8rem); align-items: end; }
.v2-editorial-intro > p, .v2-editorial-split > div:last-child { margin: 0; max-width: 38rem; color: var(--v2-muted); font-size: clamp(1.08rem, 1.6vw, 1.35rem); }
.v2-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: clamp(2.5rem, 5vw, 5rem); }
.v2-section-heading h2 { max-width: 13ch; }
.v2-text-link { display: inline-flex; align-items: center; gap: .6rem; color: var(--v2-bronze-dark); font-size: .82rem; font-weight: 800; letter-spacing: .075em; text-decoration: none; text-transform: uppercase; }
.v2-text-link--light { color: #d7ae7c; }
.v2-text-link span { transition: transform .18s ease; }
.v2-text-link:hover span { transform: translateX(.25rem); }

.v2-family-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--v2-line-light); border-bottom: 1px solid var(--v2-line-light); }
.v2-family { min-height: 22rem; padding: 2.2rem 2rem 2.5rem; border-right: 1px solid var(--v2-line-light); }
.v2-family:last-child { border-right: 0; }
.v2-family__number { margin: 0 0 4.5rem; color: var(--v2-bronze); font-size: .72rem; letter-spacing: .16em; }
.v2-family h3 { margin: 0; font: 400 clamp(1.55rem, 2vw, 2.2rem)/1.13 var(--v2-serif); }
.v2-family ul { display: grid; gap: .55rem; margin: 1.8rem 0 0; padding: 0; list-style: none; }
.v2-family li { color: rgba(255,255,255,.65); font-size: .88rem; }
.v2-family a { text-decoration: none; }
.v2-family a:hover { color: var(--v2-white); text-decoration: underline; }

.v2-process-grid { counter-reset: process; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; border-top: 1px solid var(--v2-line); border-bottom: 1px solid var(--v2-line); list-style: none; }
.v2-process-grid li { min-width: 0; padding: 2.25rem 2rem 2.6rem; border-right: 1px solid var(--v2-line); }
.v2-process-grid li:last-child { border-right: 0; }
.v2-process-grid span { color: var(--v2-bronze-dark); font-size: .72rem; font-weight: 800; letter-spacing: .14em; }
.v2-process-grid h3 { margin: 3.2rem 0 .8rem; font: 400 clamp(1.65rem, 2.4vw, 2.6rem)/1.08 var(--v2-serif); letter-spacing: -.025em; }
.v2-process-grid p { margin: 0; color: var(--v2-muted); }
.v2-process-grid--light { border-color: var(--v2-line-light); }
.v2-process-grid--light li { border-color: var(--v2-line-light); }
.v2-process-grid--light span { color: #d7ae7c; }
.v2-process-grid--light p { color: rgba(255,255,255,.64); }

.v2-evidence-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--v2-line-light); }
.v2-evidence-grid > div { padding: 2rem 2rem 2rem 0; border-bottom: 1px solid var(--v2-line-light); }
.v2-evidence-grid dt { color: #d7ae7c; font: 400 clamp(1.45rem, 2vw, 2.1rem)/1.15 var(--v2-serif); }
.v2-evidence-grid dd { margin: .75rem 0 0; color: rgba(255,255,255,.64); }

.v2-feature-project { display: grid; min-height: 42rem; grid-template-columns: minmax(0, 1.45fr) minmax(21rem, .55fr); background: var(--v2-charcoal); color: var(--v2-white); }
.v2-feature-project__media { min-height: 36rem; overflow: hidden; }
.v2-feature-project__image { width: 100%; height: 100%; object-fit: cover; }
.v2-feature-project__content { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(3rem, 6vw, 7rem); }
.v2-feature-project__content h2 { font-size: clamp(2.6rem, 4.4vw, 5rem); }
.v2-feature-project__content > p:not(.v2-eyebrow) { margin: 1.5rem 0 2rem; color: rgba(255,255,255,.7); }

.v2-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 2.2vw, 2.4rem); }
.v2-card-grid--projects { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.v2-card { min-width: 0; background: var(--v2-white); border-bottom: 1px solid var(--v2-line); }
.v2-card__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--v2-stone-deep); }
.v2-card__image { width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.2,.7,.2,1); }
.v2-card:hover .v2-card__image { transform: scale(1.025); }
.v2-card__body { padding: 1.6rem 1.5rem 1.8rem; }
.v2-card__title { margin: 0; font: 400 clamp(1.5rem, 2.1vw, 2.15rem)/1.1 var(--v2-serif); letter-spacing: -.02em; }
.v2-card__title a { text-decoration: none; }
.v2-card__title a:hover { text-decoration: underline; }
.v2-card__summary { display: -webkit-box; overflow: hidden; margin: 1rem 0 1.35rem; color: var(--v2-muted); font-size: .95rem; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
.v2-card__meta { margin: -.7rem 0 1rem; color: var(--v2-muted); font-size: .78rem; }

.v2-filter { margin: -1.8rem 0 clamp(2rem, 4vw, 4rem); padding-bottom: 1.5rem; border-bottom: 1px solid var(--v2-line); }
.v2-filter__label { margin: 0 0 .7rem; color: var(--v2-muted); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.v2-filter__controls { display: flex; flex-wrap: wrap; gap: .55rem; }
.v2-filter__controls button { min-height: 2.75rem; padding: .58rem .85rem; border: 1px solid var(--v2-line); background: transparent; color: var(--v2-ink); font-size: .82rem; font-weight: 700; cursor: pointer; }
.v2-filter__controls button[aria-pressed="true"] { border-color: var(--v2-ink); background: var(--v2-ink); color: var(--v2-white); }
.v2-filter__controls button span { margin-left: .3rem; opacity: .62; font-size: .72rem; }
.v2-filter__status { min-height: 1.3rem; margin: .75rem 0 0; color: var(--v2-muted); font-size: .78rem; }
.v2-pagination { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 2.5rem; }
.v2-pagination a { display: inline-flex; min-width: 2.75rem; min-height: 2.75rem; align-items: center; justify-content: center; padding: .45rem .75rem; border: 1px solid var(--v2-line); text-decoration: none; }
.v2-pagination a[aria-current="page"] { border-color: var(--v2-ink); background: var(--v2-ink); color: var(--v2-white); }
.v2-empty-state { max-width: 48rem; margin: 0; padding: 1.25rem; border: 1px solid var(--v2-line); color: var(--v2-muted); }
.v2-empty-state--light { border-color: var(--v2-line-light); color: rgba(255,255,255,.65); }
.v2-faq { max-width: 58rem; border-top: 1px solid var(--v2-line); }
.v2-faq details { border-bottom: 1px solid var(--v2-line); }
.v2-faq summary { padding: 1.15rem 2.5rem 1.15rem 0; font-weight: 750; cursor: pointer; }
.v2-faq details p { margin: 0; padding: 0 0 1.4rem; color: var(--v2-muted); }

.v2-article-meta { display: flex; flex-wrap: wrap; gap: .65rem 1rem; align-items: center; padding-block: 1.5rem; border-bottom: 1px solid var(--v2-line); color: var(--v2-muted); font-size: .84rem; }
.v2-article-toc { margin-top: 2rem; padding: 1.5rem; border: 1px solid var(--v2-line); background: var(--v2-stone); }
.v2-article-toc h2 { margin: 0; font: 400 clamp(1.55rem, 2.5vw, 2.4rem)/1.1 var(--v2-serif); }
.v2-article-toc ol { display: grid; gap: .35rem; margin: 1rem 0 0; padding-left: 1.25rem; }
.v2-article-toc a { color: var(--v2-bronze-dark); }
.v2-chip { padding: .2rem .65rem; border: 1px solid var(--v2-line); border-radius: 999px; }
.v2-source-content { padding-top: clamp(3.5rem, 6vw, 6rem); }
.v2-prose { max-width: 78rem; }
.v2-prose > * { max-width: 54rem; margin-inline: auto; }
.v2-prose > img, .v2-prose > figure, .v2-prose > picture, .v2-prose > table { max-width: 72rem; }
.v2-prose h2, .v2-prose h3, .v2-prose h4 { margin: clamp(2.5rem, 5vw, 5rem) auto 1.25rem; color: var(--v2-ink); font-family: var(--v2-serif); font-weight: 400; line-height: 1.08; letter-spacing: -.025em; text-wrap: balance; }
.v2-prose h2 { font-size: clamp(2.1rem, 4vw, 4.2rem); }
.v2-prose h3 { font-size: clamp(1.65rem, 2.8vw, 2.8rem); }
.v2-prose h4 { font-size: clamp(1.3rem, 2vw, 1.9rem); }
.v2-prose p, .v2-prose ul, .v2-prose ol, .v2-prose blockquote { margin-top: 0; margin-bottom: 1.3rem; font-size: clamp(1rem, 1.25vw, 1.14rem); }
.v2-prose a { color: var(--v2-bronze-dark); }
.v2-prose img { width: 100%; height: auto; margin-block: clamp(1.5rem, 4vw, 4rem); object-fit: cover; }
.v2-prose blockquote { padding: 1.5rem 0 1.5rem 2rem; border-left: 2px solid var(--v2-bronze); font: 400 clamp(1.45rem, 2.5vw, 2.35rem)/1.3 var(--v2-serif); }
.v2-prose table { display: block; overflow-x: auto; width: 100%; border-collapse: collapse; }
.v2-prose th, .v2-prose td { padding: .8rem; border: 1px solid var(--v2-line); text-align: left; }
.v2-prose form, .v2-prose input:empty, .v2-prose button:empty { display: none; }

.v2-gallery { display: grid; grid-template-columns: repeat(12, 1fr); gap: 1rem; }
.v2-gallery figure { grid-column: span 6; margin: 0; }
.v2-gallery figure:nth-child(3n + 1) { grid-column: span 7; }
.v2-gallery figure:nth-child(3n + 2) { grid-column: span 5; }
.v2-gallery__image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.v2-gallery figcaption { margin-top: .55rem; color: rgba(255,255,255,.62); font-size: .78rem; }

.v2-contact-layout { display: grid; grid-template-columns: minmax(18rem, .7fr) minmax(24rem, 1.3fr); gap: clamp(3rem, 8vw, 9rem); }
.v2-contact-layout h2 { font-size: clamp(2.8rem, 5vw, 5.2rem); }
.v2-contact-link { font-weight: 700; }
.v2-contact-layout address { max-width: 34rem; color: var(--v2-muted); font-style: normal; white-space: pre-line; }
.v2-enquiry-form { display: grid; gap: 1.15rem; }
.v2-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.v2-field { display: grid; gap: .45rem; color: var(--v2-charcoal); font-size: .82rem; font-weight: 700; }
.v2-field input, .v2-field textarea, .v2-field select { width: 100%; min-height: 3.35rem; padding: .78rem .9rem; border: 1px solid rgba(17,18,16,.35); border-radius: 0; background: var(--v2-paper); color: var(--v2-ink); }
.v2-field textarea { min-height: 9rem; resize: vertical; }
.v2-field input:focus, .v2-field textarea:focus, .v2-field select:focus { border-color: var(--v2-bronze-dark); outline: .2rem solid rgba(168,122,67,.28); outline-offset: 0; }
.v2-checkbox { display: flex; gap: .75rem; align-items: flex-start; color: var(--v2-muted); font-size: .84rem; }
.v2-checkbox input { flex: 0 0 auto; width: 1.15rem; height: 1.15rem; margin-top: .18rem; accent-color: var(--v2-bronze-dark); }
.v2-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.v2-form-status { min-height: 1.5rem; margin: 0; color: var(--v2-muted); font-size: .88rem; }
.v2-form-status[data-state="success"] { color: #17673f; }
.v2-form-status[data-state="error"] { color: #a82622; }

.v2-final-cta { padding-block: clamp(5rem, 10vw, 10rem); background: var(--v2-charcoal); color: var(--v2-white); text-align: center; }
.v2-final-cta h2 { max-width: 16ch; margin-inline: auto; }
.v2-final-cta .v2-button { margin-top: 2.3rem; }
.v2-footer { padding: clamp(4rem, 7vw, 7rem) 0 1.5rem; background: var(--v2-ink); color: var(--v2-white); }
.v2-footer__grid { display: grid; grid-template-columns: 1.25fr .75fr .75fr; gap: 2.5rem; }
.v2-footer__grid p { max-width: 28rem; color: rgba(255,255,255,.58); }
.v2-footer nav, .v2-footer__contact { display: grid; align-content: start; gap: .65rem; }
.v2-footer nav a, .v2-footer__contact a { color: rgba(255,255,255,.75); text-decoration: none; }
.v2-footer nav a:hover, .v2-footer__contact a:hover { color: var(--v2-white); text-decoration: underline; }
.v2-footer__base { display: flex; flex-wrap: wrap; gap: .75rem 1.4rem; align-items: center; margin-top: 4rem; padding-top: 1.25rem; border-top: 1px solid var(--v2-line-light); color: rgba(255,255,255,.5); font-size: .76rem; }
.v2-footer__base a { margin-left: auto; }
.v2-footer__base button { padding: 0; border: 0; background: transparent; color: inherit; text-decoration: underline; cursor: pointer; }

.v2-contact-launch { position: fixed; z-index: 80; right: 1.25rem; bottom: 1.25rem; min-height: 3.1rem; padding: .7rem 1.15rem; border: 1px solid rgba(255,255,255,.35); background: var(--v2-ink); color: var(--v2-white); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; box-shadow: var(--v2-shadow); cursor: pointer; }
.v2-contact-dialog { width: min(44rem, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); overflow: auto; padding: clamp(1.5rem, 4vw, 3.25rem); border: 0; border-radius: 0; background: var(--v2-paper); color: var(--v2-ink); box-shadow: var(--v2-shadow); }
.v2-contact-dialog::backdrop { background: rgba(9,10,9,.74); backdrop-filter: blur(.35rem); }
.v2-contact-dialog__header { display: flex; gap: 1.5rem; justify-content: space-between; margin-bottom: 2rem; }
.v2-contact-dialog__header h2 { font-size: clamp(2.3rem, 5vw, 4rem); }
.v2-contact-dialog__header p:not(.v2-eyebrow) { color: var(--v2-muted); }
.v2-contact-dialog__header button { flex: 0 0 auto; min-height: 2.8rem; padding: .55rem .9rem; border: 1px solid var(--v2-line); border-radius: 999px; background: transparent; color: var(--v2-ink); font: inherit; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }

@media (max-width: 74rem) {
    .v2-header { height: 5.5rem; }
    .v2-primary-nav { gap: .9rem; }
    .v2-primary-nav > a { font-size: .82rem; }
    .v2-family-grid { grid-template-columns: repeat(2, 1fr); }
    .v2-family:nth-child(2) { border-right: 0; }
    .v2-family:nth-child(-n + 2) { border-bottom: 1px solid var(--v2-line-light); }
    .v2-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 58rem) {
    .v2-header { height: 5rem; }
    .v2-menu-toggle { display: inline-flex; align-items: center; justify-content: center; }
    .v2-primary-nav { position: fixed; inset: 5rem 0 0; display: none; overflow-y: auto; width: 100%; padding: 2rem var(--v2-gutter) 4rem; background: var(--v2-ink); }
    .v2-primary-nav[data-open="true"] { display: grid; align-content: start; gap: 0; }
    .v2-primary-nav > a { padding: 1.05rem 0; border-bottom: 1px solid var(--v2-line-light); font: 400 clamp(1.65rem, 6vw, 2.4rem)/1.2 var(--v2-serif); }
    .v2-primary-nav > a::after { display: none; }
    .v2-primary-nav__cta { margin: 1.5rem 0 0; padding: 1rem !important; border: 1px solid var(--v2-bronze) !important; font: 800 .8rem/1 var(--v2-sans) !important; text-align: center; text-transform: uppercase; }
    .v2-primary-nav__promoted { color: #d7ae7c !important; }
    .v2-hero { min-height: clamp(34rem, 75dvh, 48rem); }
    .v2-page:not(.v2-page--home) .v2-hero { min-height: 34rem; }
    .v2-hero__veil { background: linear-gradient(0deg, rgba(7,8,7,.9) 0%, rgba(7,8,7,.42) 72%, rgba(7,8,7,.16) 100%); }
    .v2-hero__content { padding-block: 4rem; }
    .v2-editorial-intro, .v2-editorial-split, .v2-contact-layout { grid-template-columns: 1fr; align-items: start; gap: 2rem; }
    .v2-feature-project { grid-template-columns: 1fr; }
    .v2-feature-project__media { min-height: 28rem; }
    .v2-feature-project__content { padding: 3.5rem var(--v2-gutter) 4.5rem; }
    .v2-process-grid, .v2-evidence-grid { grid-template-columns: 1fr; }
    .v2-process-grid li { padding-inline: 0; border-right: 0; border-bottom: 1px solid var(--v2-line); }
    .v2-process-grid li:last-child { border-bottom: 0; }
    .v2-process-grid--light li { border-color: var(--v2-line-light); }
    .v2-process-grid h3 { margin-top: 1.4rem; }
    .v2-footer__grid { grid-template-columns: 1fr 1fr; }
    .v2-footer__grid > div:first-child { grid-column: 1 / -1; }
}

@media (max-width: 40rem) {
    :root { --v2-container: calc(100vw - 2rem); --v2-section: 4.5rem; }
    .v2-brand__logo { width: 10rem; max-height: 3.5rem; }
    .v2-hero h1, .v2-page:not(.v2-page--home) .v2-hero h1 { font-size: clamp(2.7rem, 12.5vw, 4.4rem); }
    .v2-hero__summary { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 5; }
    .v2-action-row { display: grid; }
    .v2-button { width: 100%; }
    .v2-section-heading { align-items: start; flex-direction: column; }
    .v2-family-grid, .v2-card-grid, .v2-card-grid--projects, .v2-field-grid { grid-template-columns: 1fr; }
    .v2-family { min-height: 0; padding: 1.75rem 0 2rem; border-right: 0; border-bottom: 1px solid var(--v2-line-light); }
    .v2-family:last-child { border-bottom: 0; }
    .v2-family__number { margin-bottom: 1.5rem; }
    .v2-feature-project__media { min-height: 22rem; }
    .v2-gallery { grid-template-columns: 1fr; }
    .v2-gallery figure, .v2-gallery figure:nth-child(n) { grid-column: auto; }
    .v2-prose > * { max-width: 100%; }
    .v2-prose img { margin-block: 1.5rem; }
    .v2-footer__grid { grid-template-columns: 1fr; }
    .v2-footer__grid > div:first-child { grid-column: auto; }
    .v2-footer__base { align-items: flex-start; flex-direction: column; }
    .v2-footer__base a { margin-left: 0; }
    .v2-contact-launch { right: .75rem; bottom: .75rem; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

@media print {
    .v2-header, .v2-contact-launch, .v2-final-cta, .v2-footer, .v2-menu-toggle { display: none !important; }
    .v2-hero { min-height: 0; background: #fff; color: #000; }
    .v2-hero__media, .v2-hero__veil { display: none; }
}
