.page-opening { padding-block: clamp(2.5rem, 6vw, 5rem) var(--space-8); }
.page-opening h1 { max-width: 17ch; }
.page-opening .lede { margin-top: var(--space-6); }
.page-opening__bottom { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1.5rem; margin-top: var(--space-6); }
.front-page { padding-top: var(--space-6); }
.front-grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 3fr) minmax(0, 2fr); border-block: var(--rule-strong); }
.lead-story { grid-column: 1; grid-row: 1 / 3; padding: var(--space-6) var(--space-6) var(--space-7) 0; border-right: var(--rule); }
.lead-story__image { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.lead-story__copy { padding-top: var(--space-5); }
.lead-story h1 { font-size: clamp(2.7rem, 4.6vw, 4.5rem); max-width: 16ch; margin-block: .7rem 1.25rem; }
.lead-story .lede { font-size: clamp(1rem, 1.35vw, 1.2rem); line-height: 1.7; max-width: 43ch; }
.lead-story .button-group { margin-top: var(--space-6); }
.front-secondary { grid-column: 2; padding: var(--space-6); border-right: var(--rule); border-bottom: var(--rule); display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.front-secondary h2 { font-size: clamp(1.8rem, 2.6vw, 2.7rem); }
.front-secondary p { font-size: .85rem; line-height: 1.75; }
.front-secondary .text-link { margin-top: auto; }
.front-secondary--service { background: var(--paper-dark); border-bottom: 0; }
.front-secondary__ledger { font: 500 clamp(4rem, 7vw, 6rem)/1 var(--font-display); letter-spacing: -.05em; color: var(--accent-text); }
.front-rail { grid-column: 3; grid-row: 1 / 3; padding: var(--space-6) 0 var(--space-6) var(--space-5); }
.front-rail .eyebrow { color: var(--ink-muted); }
.front-rail .rail-item p { font-size: .8rem; }
.front-rail .rail-item a { font-family: var(--font-mono); font-size: .68rem; }
.front-rail__stamp { padding: 1rem .65rem; border: 2px solid var(--olive); font: 500 1.5rem/1.2 var(--font-display); color: var(--olive); text-align: center; margin-top: var(--space-6); }
.front-page__footnote { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; padding-top: .7rem; font: .65rem/1.7 var(--font-mono); }
.collage-section { padding-block: var(--section-space); }
.collage-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .7fr); gap: var(--space-7); align-items: end; padding-bottom: var(--space-7); border-bottom: var(--rule); }
.collage-heading h2 { max-width: 12ch; }
.collage-heading p { max-width: 41ch; font-size: var(--text-sm); }
.work-collage { position: relative; isolation: isolate; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: repeat(10, minmax(0, 1fr)); aspect-ratio: 1.68; max-width: 1040px; margin: clamp(2.5rem, 7vw, 5rem) auto clamp(2.5rem, 6vw, 4rem); padding: 1.5rem 2rem; }
.collage-photo { position: relative; align-self: center; margin: 0; padding: clamp(.3rem, .8vw, .65rem); background: var(--paper-light); box-shadow: var(--shadow-paper); transform-origin: 50% 50%; }
.collage-photo img { width: 100%; height: 100%; object-fit: cover; }
.collage-photo--proof { grid-column: 1 / 6; grid-row: 1 / 10; z-index: 1; transform: rotate(-5deg); }
.collage-photo--proof img { aspect-ratio: 4 / 5; }
.collage-photo--swatches { grid-column: 5 / 13; grid-row: 1 / 7; z-index: 2; transform: rotate(3deg); }
.collage-photo--swatches img { aspect-ratio: 4 / 3; }
.collage-photo--booklet { grid-column: 7 / 12; grid-row: 5 / 11; z-index: 3; transform: rotate(-3deg); }
.collage-photo--booklet img { aspect-ratio: 1; }
.collage-caption { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: var(--space-6); border-block: var(--rule); padding-block: 1rem; }
.collage-caption p { font: .75rem/1.8 var(--font-mono); max-width: 64ch; }
.collage-caption .text-link { padding-top: 0; }
.home-services { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1px; background: var(--rule-color); border-block: var(--rule-strong); }
.home-services .service-card { grid-column: span 4; border-bottom: 0; }
.home-services .service-card:first-child { grid-column: span 7; }
.home-services .service-card:nth-child(2) { grid-column: span 5; }
.home-services .service-card:first-child h3 { font-size: clamp(2rem, 3.5vw, 3.6rem); }
.engagement-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: var(--rule-strong); }
.engagement-step { padding: var(--space-6); border-right: var(--rule); }
.engagement-step:first-child { padding-left: 0; }
.engagement-step:last-child { border: 0; padding-right: 0; }
.engagement-step__number { font: 500 3.3rem/1 var(--font-display); color: var(--ochre); }
.engagement-step h3 { margin-block: var(--space-5) var(--space-4); }
.engagement-step p { font-size: .9rem; }
.ledger-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); border-top: var(--rule); padding-top: var(--space-7); margin-top: var(--space-8); }
.ledger-strip .stat + .stat { padding-left: var(--space-6); border-left: var(--rule); }
.estimate-teaser { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: var(--space-8); align-items: center; padding: clamp(1.5rem, 4vw, 3rem); border: var(--rule-strong); background: var(--paper-dark); }
.estimate-teaser__band { border-left: var(--rule); padding-left: var(--space-8); }
.estimate-teaser__band strong { display: block; font: 400 clamp(1.55rem, 3.2vw, 2.7rem)/1.4 var(--font-mono); color: var(--accent-text); overflow-wrap: anywhere; margin-block: .7rem; }
.estimate-teaser__band p { font: .72rem/1.7 var(--font-mono); }
.home-about { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: var(--space-8); align-items: center; }
.home-about figure img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.home-about blockquote { font-size: clamp(1.6rem, 2.7vw, 2.75rem); line-height: 1.4; font-style: italic; }
.home-about .text-link { margin-top: var(--space-6); }
.home-contact { border-top: var(--rule-strong); display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: clamp(2rem, 6vw, 5rem); padding-top: var(--space-8); }
.home-contact__details h2 { margin-bottom: var(--space-6); }
.home-contact__details address { font-size: .9rem; margin-top: var(--space-6); }
.home-contact__details a { display: flex; align-items: center; gap: .65rem; min-height: 44px; padding-block: .5rem; font-size: .85rem; }
.studio-opening { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .6fr); gap: var(--space-8); align-items: end; border-bottom: var(--rule-strong); }
.studio-opening__note { border-left: var(--rule); padding-left: var(--space-6); font-size: .9rem; }
.studio-opening__note .meta { margin-bottom: 1rem; }
.people-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(1.5rem, 5vw, 4rem); align-items: start; }
.person:nth-child(2) { margin-top: clamp(2rem, 8vw, 7rem); }
.person img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.person__copy { padding-top: var(--space-5); border-bottom: var(--rule); padding-bottom: var(--space-6); }
.person__copy h2 { font-size: var(--heading-sm); margin-block: .6rem 1rem; }
.person__copy p { font-size: .9rem; }
.studio-working { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-8); align-items: start; }
.studio-working__copy { padding-top: var(--space-6); border-top: var(--rule-strong); }
.studio-working__copy h2 { margin-bottom: var(--space-6); }
.studio-working__image { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.studio-week { border-top: var(--rule-strong); }
.week-row { display: grid; grid-template-columns: minmax(0, .28fr) minmax(0, .72fr) minmax(0, 1fr); gap: var(--space-6); border-bottom: var(--rule); padding-block: var(--space-6); }
.week-row__label { font: .72rem/1.7 var(--font-mono); color: var(--ink-muted); }
.week-row h3 { font-size: var(--text-xl); }
.week-row p { font-size: .9rem; }
.studio-ledger { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: var(--space-8); align-items: center; border-block: var(--rule-strong); padding-block: var(--space-8); }
.studio-ledger__number { font: 500 clamp(5rem, 15vw, 11rem)/1 var(--font-display); color: var(--accent-text); letter-spacing: -.055em; }
.work-opening .lede { max-width: 48ch; }
.case-index { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); gap: var(--space-8) var(--space-6); padding-top: var(--space-7); }
.case-index > :nth-child(even) { margin-top: var(--space-10); }
.case-index .editorial-card__media img { aspect-ratio: 3 / 2; }
.case-index > :nth-child(even) .editorial-card__media img { aspect-ratio: 4 / 5; }
.case-study { padding-block: var(--section-space); border-top: var(--rule-strong); }
.case-study__heading { display: grid; grid-template-columns: minmax(0, .25fr) minmax(0, 1fr); gap: var(--space-6); margin-bottom: var(--space-7); }
.case-study__heading h2 { max-width: 20ch; }
.case-study__heading .meta { padding-top: .4rem; }
.case-study__image { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.case-study__body { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-7); }
.case-decision + .case-decision { border-left: var(--rule); padding-left: var(--space-6); }
.case-decision h3 { font-size: var(--text-xl); margin-bottom: var(--space-4); }
.case-decision p { font-size: .9rem; }
.case-study__result { margin-top: var(--space-7); padding-top: var(--space-5); border-top: var(--rule); font-style: italic; font-size: var(--text-lg); }
.archive-feature { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: var(--space-8); align-items: center; }
.archive-feature img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.archive-feature h2 { margin-bottom: var(--space-5); }
.archive-feature p + p { margin-top: 1rem; }
.service-index { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-block: var(--rule-strong); margin-top: var(--space-7); }
.service-index a { display: flex; flex-direction: column; gap: .75rem; min-height: 44px; padding: 1.1rem; border-right: var(--rule); text-decoration: none; font: 500 1.1rem/1.35 var(--font-display); }
.service-index a:last-child { border-right: 0; }
.service-index a:hover { background: var(--paper-dark); }
.service-index span { font: .7rem/1.5 var(--font-mono); color: var(--ink-muted); }
.service-detail { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(1.5rem, 5vw, 4rem); border-top: var(--rule-strong); padding-block: var(--section-space); }
.service-detail__visual img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.service-detail__visual .meta { margin-top: 1rem; }
.service-detail__content h2 { margin-block: .75rem 1.25rem; }
.service-detail__content .price-basis { margin-block: var(--space-5); padding-block: 1rem; border-block: var(--rule); font: .85rem/1.8 var(--font-mono); color: var(--accent-text); }
.service-detail__content p + p { margin-top: 1rem; }
.service-detail__content ul { margin-block: 1.25rem; font-size: .9rem; }
.service-detail__content li + li { margin-top: .6rem; }
.service-detail__content .button-group { margin-top: var(--space-6); }
.service-deliverable { background: var(--paper-dark); padding: var(--space-5); margin-top: var(--space-6); border-left: 3px solid var(--olive); }
.service-deliverable h3 { font-size: 1.3rem; margin-bottom: .65rem; }
.service-deliverable p { font-size: .85rem; }
.scope-boundary { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-7); background: var(--ink); color: var(--paper); padding: clamp(1.5rem, 4vw, 3rem); }
.scope-boundary h2 { font-size: var(--heading-sm); }
.scope-boundary p { font-size: .9rem; }
.faq { border-top: var(--rule-strong); }
.faq-item, .faq details { border-bottom: var(--rule); }
.faq details > .faq-answer { display: none; }
.faq details[open] > .faq-answer { display: block; }
.faq summary { display: flex; justify-content: space-between; align-items: center; gap: 1.25rem; list-style: none; min-height: 64px; padding-block: 1.15rem; cursor: pointer; font: 500 clamp(1.1rem, 1.5vw, 1.4rem)/1.45 var(--font-display); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .icon { transition: transform var(--duration-ui) var(--ease-out); }
.faq details[open] summary .icon { transform: rotate(180deg); }
.faq summary:hover { color: var(--accent-text); }
.faq-answer { max-width: 70ch; padding: 0 2.5rem 1.5rem 0; font-size: .93rem; }
.faq-answer > * + * { margin-top: 1rem; }
.estimator-layout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); gap: var(--space-7); align-items: start; }
.estimator { border: var(--rule-strong); background: var(--paper-light); }
.estimator__header { padding: var(--space-6); border-bottom: var(--rule-strong); }
.estimator__header h2 { font-size: var(--heading-sm); }
.estimator__header p { font-size: .85rem; margin-top: .75rem; }
.estimator__controls { padding: var(--space-6); display: grid; gap: var(--space-5); }
.estimate-line { border-bottom: var(--rule); padding-bottom: var(--space-6); display: grid; gap: 1.1rem; }
.estimate-line__heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.estimate-line__heading h3 { font-size: 1.45rem; }
.unit-controls { display: grid; grid-template-columns: minmax(0, 1fr) minmax(75px, .25fr); align-items: center; gap: 1rem; }
.unit-controls input[type='range'] { width: 100%; min-height: 44px; padding: 0; accent-color: var(--accent-text); background: transparent; border: 0; box-shadow: none; }
.unit-controls input[type='number'] { width: 100%; min-height: 48px; padding: .6rem; border: 1px solid var(--olive); background: var(--paper); font: 1rem/1.5 var(--font-mono); }
.estimate-line__basis { font: .72rem/1.7 var(--font-mono); color: var(--ink-muted); }
.estimate-line__subtotal { font: .83rem/1.7 var(--font-mono); color: var(--accent-text); }
.estimator-modifiers { display: grid; gap: .35rem; padding-top: .5rem; }
.estimator-modifiers .check-row { border-top: var(--rule); padding-block: 1rem; }
.estimator-modifiers small { display: block; font: .7rem/1.7 var(--font-mono); color: var(--ink-muted); margin-top: .25rem; }
.estimate-output { background: var(--paper-dark); border-top: var(--rule-strong); padding: var(--space-6); }
.estimate-output__label { font: .72rem/1.7 var(--font-mono); }
.estimate-total { display: block; margin-block: .75rem; font: 400 clamp(1.35rem, 2.9vw, 2.45rem)/1.5 var(--font-mono); color: var(--accent-text); letter-spacing: -.055em; overflow-wrap: anywhere; }
.estimate-breakdown { display: grid; gap: .5rem; margin-block: 1.25rem; }
.estimate-breakdown > div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .3rem 1rem; font: .7rem/1.7 var(--font-mono); border-bottom: var(--rule); padding-bottom: .5rem; }
.estimate-breakdown dt { max-width: 37ch; }
.estimate-disclaimer { font-size: .85rem; font-style: italic; line-height: 1.7; }
.estimate-output .button-group { margin-top: 1.3rem; }
.estimator-status { font: .75rem/1.65 var(--font-mono); margin-top: .75rem; }
.estimator-status:empty { display: none; }
.estimate-notes { padding-left: var(--space-6); border-left: var(--rule); }
.estimate-notes h2 { font-size: var(--heading-sm); }
.estimate-notes p { font-size: .9rem; margin-top: 1rem; }
.estimate-notes img { margin-top: var(--space-7); width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.estimate-notes .notice { margin-top: var(--space-6); }
.estimate-followup { max-width: 850px; margin-inline: auto; }
.estimate-followup > h2 { margin-bottom: var(--space-5); }
.estimate-followup > p { margin-bottom: var(--space-7); }
.legal-heading { padding-block: clamp(2.5rem, 6vw, 5.5rem) var(--space-8); border-bottom: var(--rule-strong); }
.legal-heading h1 { max-width: 16ch; }
.legal-heading .lede { margin-top: var(--space-6); max-width: 58ch; }
.legal-heading .meta { display: block; margin-top: var(--space-5); }
.privacy-jumps, .jump-chips { position: sticky; top: var(--header-offset); z-index: var(--z-chips); display: flex; gap: .6rem; overflow-x: auto; max-width: 100%; overscroll-behavior-inline: contain; background: var(--paper); padding: .85rem 0; border-bottom: var(--rule-strong); scrollbar-width: thin; scrollbar-color: var(--olive) var(--paper-dark); }
.privacy-jumps a, .jump-chips a { flex: 0 0 auto; max-width: 230px; min-height: 44px; padding: .65rem .9rem; border: var(--rule); font: .7rem/1.5 var(--font-mono); text-align: center; text-decoration: none; }
.privacy-jumps a:hover, .privacy-jumps a[aria-current='location'], .jump-chips a:hover { background: var(--ink); color: var(--paper); }
.privacy-section { padding-block: clamp(3rem, 7vw, 6rem); border-bottom: var(--rule-strong); scroll-margin-top: calc(var(--header-offset) + 6.5rem); }
.privacy-section__heading { display: flex; flex-wrap: wrap; align-items: baseline; gap: .8rem 1.5rem; margin-bottom: var(--space-6); }
.privacy-section h2 { font-size: var(--heading-md); }
.privacy-section .standfirst { font-size: var(--text-xl); line-height: 1.5; max-width: 48ch; padding-bottom: var(--space-7); color: var(--ink); }
.privacy-section .prose { max-width: 76ch; }
.privacy-section .legal-table-wrap { margin-top: var(--space-7); }
.privacy-section .legal-callout { max-width: 76ch; margin-top: var(--space-7); }
.legal-callout { padding: var(--space-6); border-inline-start: 3px solid var(--olive); background: var(--paper-dark); }
.legal-callout h3 { font-size: var(--text-xl); margin-bottom: .8rem; }
.legal-callout p { font-size: .92rem; }
.legal-callout p + p { margin-top: 1rem; }
.legal-table-wrap { max-width: 100%; overflow-x: auto; border-block: var(--rule-strong); scrollbar-width: thin; }
.legal-table, .cookie-table { font-size: .85rem; line-height: 1.7; }
.legal-table caption, .cookie-table caption { text-align: left; padding-block: 1rem; font: 500 1.2rem/1.5 var(--font-display); }
.legal-table th, .legal-table td, .cookie-table th, .cookie-table td { border-bottom: var(--rule); padding: 1rem; vertical-align: top; overflow-wrap: anywhere; }
.legal-table thead th, .cookie-table thead th { background: var(--paper-dark); font: 400 .7rem/1.7 var(--font-mono); }
.legal-table tbody th, .cookie-table tbody th { font-weight: 500; text-align: left; }
.legal-table code, .cookie-table code { font-size: .72rem; }
.legal-table tr:last-child > *, .cookie-table tr:last-child > * { border-bottom: 0; }
.cookie-mood { margin-block: var(--space-7) 0; }
.cookie-mood img { width: 100%; aspect-ratio: 12 / 3; object-fit: cover; }
.cookie-mood figcaption { max-width: 68ch; }
.cookie-sections { padding-top: var(--space-8); }
.cookie-section { display: grid; grid-template-columns: minmax(65px, .18fr) minmax(0, 1fr); gap: clamp(1.25rem, 4vw, 4rem); padding-block: clamp(3rem, 7vw, 6rem); border-bottom: var(--rule); align-items: start; }
.cookie-section__number { font: 500 clamp(4rem, 9vw, 8.5rem)/.95 var(--font-display); color: var(--ochre); letter-spacing: -.06em; padding-top: .08em; }
.cookie-section__body { max-width: 84ch; }
.cookie-section__body h2 { font-size: clamp(2rem, 3.6vw, 3.4rem); margin-bottom: var(--space-6); }
.cookie-section__body .standfirst { font-size: var(--text-lg); margin-bottom: var(--space-6); }
.cookie-section__body .prose { max-width: none; }
.cookie-section__body .legal-table-wrap { margin-block: var(--space-7); }
.cookie-section__body .button-group { margin-top: var(--space-6); }
.consent-signals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin-block: var(--space-6); border-top: var(--rule-strong); }
.consent-signal { border-bottom: var(--rule); padding: var(--space-5) var(--space-5) var(--space-5) 0; }
.consent-signal:nth-child(even) { padding-left: var(--space-5); border-left: var(--rule); }
.consent-signal code { display: block; color: var(--accent-text); font-size: .8rem; margin-bottom: .7rem; }
.consent-signal p { font-size: .85rem; }
.storage-key { padding: .15rem .35rem; background: var(--paper-dark); box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.terms-document { padding-top: var(--space-8); }
.terms-section { padding-block: var(--space-8) var(--space-9); border-bottom: var(--rule-strong); }
.terms-section > h2 { max-width: 23ch; margin-bottom: var(--space-7); font-size: var(--heading-md); }
.terms-row { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); gap: clamp(1.5rem, 5vw, 4rem); align-items: start; }
.terms-row + .terms-row { margin-top: var(--space-7); }
.terms-copy { max-width: 68ch; }
.terms-copy > * + * { margin-top: 1.15rem; }
.terms-copy h3 { font-size: var(--text-xl); margin-bottom: 1rem; }
.terms-copy li + li { margin-top: .65rem; }
.margin-note { font: .74rem/1.85 var(--font-mono); padding: .7rem 0 .7rem var(--space-5); border-left: 2px solid var(--olive); color: var(--ink-muted); }
.margin-note__label { display: block; font: 500 .95rem/1.5 var(--font-display); color: var(--ink); letter-spacing: .04em; margin-bottom: .7rem; }
.margin-note p + p { margin-top: .8rem; }
.margin-note a { display: inline-block; min-height: 44px; padding-block: .5rem; }
.terms-row--emphasis .terms-copy { border-top: 3px solid var(--olive); padding-top: var(--space-5); }
.terms-section .legal-table-wrap { margin-top: var(--space-6); }
.data-request-form { padding: var(--space-6); background: var(--paper-dark); margin-top: var(--space-6); }
.data-request-form h3 { margin-bottom: var(--space-5); }
.accessibility-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-7); }
.accessibility-options article { border-top: var(--rule); padding-top: var(--space-5); }
.accessibility-options h3 { font-size: var(--text-xl); margin-bottom: 1rem; }
.accessibility-options p { font-size: .9rem; }
.policy-contact { display: flex; flex-wrap: wrap; gap: .5rem 2rem; margin-top: var(--space-7); border-top: var(--rule); padding-top: var(--space-5); }
.policy-contact a { display: inline-flex; gap: .6rem; align-items: center; min-height: 44px; padding-block: .5rem; font: .78rem/1.6 var(--font-mono); }
.contact-layout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); gap: clamp(2rem, 5vw, 4rem); padding-bottom: var(--section-space); }
.contact-form-panel { padding-top: var(--space-6); border-top: var(--rule-strong); }
.contact-form-panel > h2 { margin-bottom: 1.25rem; font-size: var(--heading-sm); }
.contact-form-panel > p { margin-bottom: var(--space-7); font-size: .9rem; }
.contact-details { border-top: var(--rule-strong); padding-top: var(--space-6); }
.contact-details > h2 { font-size: var(--heading-sm); margin-bottom: var(--space-6); }
.contact-detail { padding-block: 1.3rem; border-bottom: var(--rule); }
.contact-detail h3 { font: .7rem/1.6 var(--font-mono); color: var(--ink-muted); margin-bottom: .65rem; }
.contact-detail a { display: flex; align-items: center; gap: .65rem; min-height: 44px; padding-block: .5rem; font-size: .9rem; }
.contact-detail p, .contact-detail address { font-size: .9rem; }
.contact-details figure { margin-top: var(--space-7); }
.contact-details img { aspect-ratio: 3 / 2; width: 100%; object-fit: cover; }
.contact-map { padding: var(--space-6); background: var(--paper-dark); border-block: var(--rule); margin-top: var(--space-6); }
.contact-map h3 { font-size: 1.4rem; margin-bottom: 1rem; }
.contact-map p { font-size: .85rem; }
.contact-map iframe { width: 100%; border: 0; aspect-ratio: 4 / 3; margin-top: 1rem; }
.contact-expectations { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: var(--space-8); padding-top: var(--space-7); border-top: var(--rule-strong); }
.contact-expectations h2 { max-width: 16ch; }
.contact-expectations p + p { margin-top: 1rem; }
.not-found { padding-block: clamp(3rem, 8vw, 7rem); }
.not-found__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: var(--space-8); align-items: center; border-block: var(--rule-strong); padding-block: var(--space-8); }
.not-found__number { font: 500 clamp(6rem, 18vw, 15rem)/1 var(--font-display); color: var(--ochre); letter-spacing: -.06em; }
.not-found h1 { font-size: var(--heading-md); max-width: 15ch; }
.not-found .lede { margin-block: var(--space-6); }
.not-found__links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-8); }
.not-found__links article { padding-top: var(--space-5); border-top: var(--rule); }
.not-found__links h2 { font-size: var(--text-xl); margin-bottom: 1rem; }
.thanks-page { padding-block: var(--section-space); }
.thanks-letter { max-width: 840px; margin-inline: auto; border-block: 3px double var(--ink); padding-block: var(--space-8); }
.thanks-letter h1 { max-width: 15ch; }
.thanks-letter .lede { margin-top: var(--space-6); }
.thanks-letter__next { margin-block: var(--space-8); border-top: var(--rule); padding-top: var(--space-6); }
.thanks-letter__next h2 { font-size: var(--heading-sm); margin-bottom: 1rem; }
.thanks-letter__next p { max-width: 60ch; }
.thanks-letter__next p + p { margin-top: 1rem; }
@media (min-width: 1440px) {
  .front-grid { grid-template-columns: minmax(0, 6fr) minmax(0, 3fr) minmax(0, 2fr); }
  .lead-story h1 { font-size: 4.5rem; }
  .work-collage { margin-block: 5rem; }
}
@media (max-width: 1023px) {
  .front-grid { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); }
  .lead-story { grid-column: 1; }
  .front-secondary { border-right: 0; padding-right: 0; }
  .front-secondary--service { padding-right: var(--space-6); }
  .front-rail { grid-column: 1 / -1; grid-row: 3; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); padding: var(--space-5) 0; border-top: var(--rule); }
  .front-rail .rail-item { padding: 0; border-bottom: 0; }
  .front-rail .rail-item + .rail-item { padding-left: var(--space-5); border-left: var(--rule); }
  .front-rail__stamp { display: none; }
  .home-services .service-card { grid-column: span 6; }
  .home-services .service-card:first-child { grid-column: span 6; }
  .home-services .service-card:nth-child(2) { grid-column: span 6; }
  .home-services .service-card:last-child { grid-column: 1 / -1; }
  .estimator-layout { grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: var(--space-5); }
  .estimate-notes { padding-left: var(--space-5); }
  .estimator__controls, .estimator__header, .estimate-output { padding: var(--space-5); }
  .service-index { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .service-index a { border-bottom: var(--rule); }
  .terms-row { grid-template-columns: minmax(0, 2.6fr) minmax(0, 1fr); gap: var(--space-6); }
  .contact-layout { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: var(--space-6); }
}
@media (max-width: 767px) {
  .front-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .lead-story { grid-column: 1 / -1; grid-row: 1; padding: var(--space-5) 0 var(--space-6); border-right: 0; border-bottom: var(--rule-strong); }
  .lead-story h1 { max-width: 18ch; font-size: clamp(2.55rem, 7vw, 4.1rem); }
  .front-secondary { grid-column: auto; grid-row: 2; padding: var(--space-5) var(--space-5) var(--space-5) 0; border-bottom: 0; }
  .front-secondary--service { padding: var(--space-5); border-left: var(--rule); }
  .front-secondary h2 { font-size: 1.8rem; }
  .front-rail { gap: var(--space-3); }
  .front-rail .rail-item + .rail-item { padding-left: var(--space-3); }
  .front-rail .rail-item a { font-size: .62rem; }
  .collage-heading { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
  .collage-heading h2 { max-width: 17ch; }
  .work-collage { padding: 1rem 1.25rem; aspect-ratio: 1.35; margin-block: 2.5rem; }
  .collage-caption { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
  .collage-photo--proof { grid-column: 1 / 7; grid-row: 1 / 10; }
  .collage-photo--swatches { grid-column: 5 / 13; grid-row: 1 / 7; }
  .collage-photo--booklet { grid-column: 7 / 13; grid-row: 5 / 11; }
  .engagement-strip { grid-template-columns: minmax(0, 1fr); }
  .engagement-step, .engagement-step:first-child, .engagement-step:last-child { padding: var(--space-6) 0; border-right: 0; border-bottom: var(--rule); }
  .engagement-step__number { font-size: 2.5rem; }
  .engagement-step h3 { margin-top: 1rem; }
  .ledger-strip { gap: 1rem; }
  .ledger-strip .stat + .stat { padding-left: 1rem; }
  .stat__value { font-size: clamp(2.7rem, 8vw, 4rem); }
  .stat__label { font-size: .65rem; }
  .estimate-teaser, .home-about, .home-contact, .studio-opening, .studio-working, .studio-ledger, .archive-feature, .scope-boundary, .estimator-layout, .contact-layout, .contact-expectations { grid-template-columns: minmax(0, 1fr); gap: var(--space-7); }
  .estimate-teaser__band { padding: var(--space-5) 0 0; border-left: 0; border-top: var(--rule); }
  .home-about blockquote { max-width: 26ch; }
  .studio-opening__note { padding-left: 0; padding-top: 1rem; border-left: 0; border-top: var(--rule); }
  .people-grid { gap: var(--space-5); grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .person:nth-child(2) { margin-top: var(--space-8); }
  .person__copy h2 { font-size: 1.7rem; }
  .week-row { grid-template-columns: minmax(0, .35fr) minmax(0, 1fr); gap: 1rem; }
  .week-row p { grid-column: 2; }
  .case-index { gap: var(--space-7); }
  .case-study__heading { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .case-study__body { grid-template-columns: minmax(0, 1fr); }
  .case-decision + .case-decision { border-left: 0; padding-left: 0; border-top: var(--rule); padding-top: var(--space-5); }
  .service-detail { grid-template-columns: minmax(0, 1fr); gap: var(--space-7); }
  .service-detail__visual { max-width: 600px; }
  .estimate-notes { border-left: 0; border-top: var(--rule); padding: var(--space-6) 0 0; }
  .estimate-notes img { max-width: 550px; }
  .estimate-total { font-size: clamp(1.5rem, 5.3vw, 2.4rem); }
  .privacy-section .standfirst { font-size: 1.4rem; }
  .privacy-jumps, .jump-chips { padding-block: .6rem; }
  .legal-table, .cookie-table { min-width: 580px; }
  .cookie-section { grid-template-columns: 65px minmax(0, 1fr); gap: 1.25rem; }
  .cookie-section__number { font-size: 4.5rem; }
  .cookie-section__body h2 { font-size: 2rem; }
  .terms-row { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .margin-note { max-width: 68ch; padding: 1rem 1.15rem; background: var(--paper-dark); border-left: 2px solid var(--olive); }
  .margin-note__label { margin-bottom: .4rem; }
  .terms-section { padding-block: 2.5rem; }
  .not-found__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
  .not-found__number { font-size: 7rem; }
  .contact-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-6); }
  .contact-details > h2, .contact-details figure, .contact-details .contact-map { grid-column: 1 / -1; }
}
@media (max-width: 539px) {
  .home-services { grid-template-columns: minmax(0, 1fr); }
  .home-services .service-card, .home-services .service-card:first-child, .home-services .service-card:nth-child(2), .home-services .service-card:last-child { grid-column: 1; }
  .front-rail { grid-template-columns: minmax(0, 1fr); }
  .front-rail .rail-item, .front-rail .rail-item + .rail-item { padding: .6rem 0; border-left: 0; border-bottom: var(--rule); }
  .front-rail .rail-item a { font-size: .75rem; }
  .front-rail .rail-item__value { font-size: 2.5rem; }
  .front-rail .rail-item .meta { margin-bottom: .25rem; }
  .people-grid, .case-index { grid-template-columns: minmax(0, 1fr); }
  .person:nth-child(2), .case-index > :nth-child(even) { margin-top: var(--space-6); }
  .case-index > :nth-child(even) .editorial-card__media img { aspect-ratio: 3 / 2; }
  .service-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-index a { padding: .85rem; font-size: 1rem; }
  .service-index a:nth-child(even) { border-right: 0; }
  .cookie-section { grid-template-columns: 42px minmax(0, 1fr); gap: .8rem; padding-block: 2.5rem; }
  .cookie-section__number { font-size: 3rem; }
  .cookie-section__body h2 { font-size: 1.8rem; }
  .cookie-section__body .standfirst { font-size: 1.1rem; }
  .consent-signals { grid-template-columns: minmax(0, 1fr); }
  .consent-signal, .consent-signal:nth-child(even) { padding: 1rem 0; border-left: 0; }
  .cookie-mood img { aspect-ratio: 3 / 1; }
  .legal-callout { padding: var(--space-5); }
  .accessibility-options, .not-found__links, .contact-details { grid-template-columns: minmax(0, 1fr); }
  .data-request-form { padding: var(--space-5); }
  .faq-answer { padding-right: 0; }
  .policy-contact { flex-direction: column; }
}
@media (max-width: 359px) {
  .front-grid { grid-template-columns: minmax(0, 1fr); }
  .front-secondary { grid-column: 1; grid-row: auto; padding: 1.25rem 0; border-bottom: var(--rule); }
  .front-secondary--service { border-left: 0; padding: 1.25rem; }
  .front-rail { grid-row: auto; }
  .lead-story h1 { font-size: 2.55rem; }
  .work-collage { aspect-ratio: 1.15; padding: .8rem 1rem; }
  .ledger-strip { gap: .65rem; }
  .ledger-strip .stat + .stat { padding-left: .65rem; }
  .stat__value { font-size: 2.55rem; }
  .stat__label { font-size: .6rem; }
  .estimate-total { font-size: 1.4rem; }
  .estimate-output, .estimator__controls, .estimator__header { padding: 1rem; }
  .unit-controls { gap: .6rem; grid-template-columns: minmax(0, 1fr) 75px; }
  .cookie-section { grid-template-columns: 34px minmax(0, 1fr); gap: .65rem; }
  .cookie-section__number { font-size: 2.65rem; }
  .cookie-section__body h2 { font-size: 1.65rem; }
  .privacy-jumps a, .jump-chips a { max-width: 190px; }
}
@media (prefers-reduced-motion: reduce) {
  .faq summary .icon { transition: none; }
}
@media print {
  .front-grid, .home-contact, .contact-layout, .estimator-layout { display: block; }
  .front-secondary, .front-rail { border: 0; padding: 1rem 0; }
  .privacy-jumps, .jump-chips { position: static; flex-wrap: wrap; }
  .terms-row { grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); }
  .margin-note { background: transparent; }
  .cookie-section__number { color: black; }
  .estimate-output { background: transparent; }
  .estimate-total { color: black; }
  .work-collage { break-inside: avoid; }
  .faq details > .faq-answer { display: block; }
  .legal-table, .cookie-table { min-width: 0; font-size: 9pt; }
}

/* contrast repair: colours corrected against a measured backdrop */
div.cookie-section__number.cookie-section__number { color: #986e27; }  /* was #b8862f at 2.5:1 on rgb(236, 224, 200), floor 3.0 */
span.engagement-step__number.engagement-step__number { color: #8f6825; }  /* was #b8862f at 2.2:1 on rgb(226, 211, 176), floor 3.0 */
span.eyebrow.eyebrow { color: #6f511c; }  /* was #b8862f at 2.2:1 on rgb(226, 211, 176), floor 4.5 */
span.section-number.section-number { color: #6f511c; }  /* was #b8862f at 2.2:1 on rgb(226, 211, 176), floor 4.5 */
/* end contrast repair */
