.page-intro { padding-block: clamp(2.5rem, 6vw, 6rem) var(--section-gap); }
.page-intro-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: var(--grid-gap); align-items: start; }
.page-intro-meta { display: grid; gap: 1.25rem; padding-top: .5rem; }
.page-intro-title { max-width: 14ch; text-wrap: balance; }
.page-intro-copy { max-width: 47ch; margin-top: 2rem; font-size: var(--text-lg); color: var(--mist); }
.page-intro-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem 2rem; padding-block: 1.25rem; margin-top: var(--section-gap); border-top: var(--rule); }
.page-intro-bottom p { font-family: var(--ginu-23a); font-size: var(--text-xs); color: var(--mist); }
.page-kicker { display: flex; align-items: baseline; flex-wrap: wrap; gap: .75rem 2rem; margin-bottom: 1.75rem; font-family: var(--ginu-23a); font-size: var(--text-xs); color: var(--mist); text-transform: uppercase; letter-spacing: var(--tracking-meta); }
.page-kicker span { min-width: 0; overflow-wrap: anywhere; }
.page-deck { max-width: 48ch; font-size: var(--text-xl); line-height: 1.45; }
.indexed-section { padding-block: var(--section-space); border-top: var(--rule); }
.indexed-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: var(--grid-gap); align-items: start; }
.section-index { align-self: start; padding-top: .375rem; }
.section-index .index-number { font-size: clamp(5rem, 13vw, 12rem); }
.section-index .eyebrow { margin-top: 1.5rem; max-width: 19ch; }
.indexed-content { min-width: 0; }
.indexed-content > h2 { max-width: 19ch; }
.indexed-content > p { max-width: 52ch; margin-top: 1.5rem; }
.section-tail { display: flex; flex-wrap: wrap; gap: 1.25rem 3rem; align-items: center; padding-top: 2rem; margin-top: 3rem; border-top: var(--rule); }
.section-tail p { max-width: 48ch; font-size: var(--text-sm); color: var(--mist); }
.editorial-pair { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--section-gap); align-items: start; }
.editorial-copy > * + * { margin-top: 1.5rem; }
.editorial-copy p { max-width: 52ch; }
.editorial-copy h2 { max-width: 17ch; }
.editorial-copy .eyebrow + h2 { margin-top: 1rem; }
.editorial-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.editorial-note { padding-top: 1.25rem; border-top: var(--rule); color: var(--mist); font-size: var(--text-sm); }

.home-hero { padding-top: clamp(1.5rem, 3vw, 3rem); padding-bottom: var(--section-space); }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: var(--grid-gap); }
.hero-index { padding-top: .625rem; }
.hero-index .index-number { font-size: clamp(5.5rem, 15vw, 14rem); color: var(--violet-line); }
.hero-index .eyebrow { margin-top: 1.5rem; max-width: 16ch; }
.hero-copy { align-self: start; }
.hero-title { max-width: 11ch; font-size: clamp(2.6rem, .95rem + 6.8vw, 8rem); line-height: .99; font-weight: 900; letter-spacing: -.055em; text-wrap: balance; }
.hero-title-line { display: block; }
.hero-title-accent { color: var(--accent); }
.hero-description { max-width: 43ch; margin-top: 2rem; font-size: var(--text-lg); line-height: 1.55; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 2rem; margin-top: 1.75rem; }
.hero-location { margin-top: 1.75rem; font-family: var(--ginu-23a); font-size: var(--text-xs); color: var(--mist); }
.hero-media { margin-top: clamp(2.5rem, 5vw, 5rem); margin-left: max(var(--gutter), calc((100% - var(--shell-max)) / 2)); }
.hero-media img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; object-position: center 48%; }
.hero-media figcaption { max-width: none; padding-right: var(--gutter); display: flex; flex-wrap: wrap; gap: .5rem 2rem; justify-content: space-between; }
.hero-bottom-rule { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: var(--grid-gap); margin-top: 1.25rem; padding-top: 1rem; border-top: var(--rule); }
.hero-bottom-rule p { font-family: var(--ginu-23a); font-size: var(--text-xs); color: var(--mist); }
.statement-text { max-width: 22ch; font-family: var(--ginu-e6a); font-size: clamp(1.8rem, 1.1rem + 2.8vw, 3.8rem); font-weight: 700; line-height: 1.2; letter-spacing: -.035em; }
.statement-text strong { color: var(--paper); font-weight: 700; }
.statement-detail { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap); margin-top: 2.5rem; }
.statement-detail p { color: var(--mist); font-size: var(--text-sm); }
.count-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: clamp(3rem, 6vw, 6rem); border-top: var(--rule); border-bottom: var(--rule); }
.count-item { padding: 1.75rem 1.25rem 2rem 0; }
.count-item + .count-item { border-left: var(--rule); padding-left: clamp(1rem, 2.5vw, 2.5rem); }
.count-value { display: block; width: fit-content; font-family: var(--ginu-e6a); font-size: clamp(4rem, 8vw, 8.75rem); font-weight: 900; color: var(--accent); line-height: 1; letter-spacing: -.055em; font-variant-numeric: tabular-nums; }
.count-label { display: block; max-width: 18ch; margin-top: 1rem; font-family: var(--ginu-23a); font-size: var(--text-xs); line-height: 1.6; color: var(--mist); }
.directions-intro { max-width: 49ch; color: var(--mist); margin-top: 1.5rem; }
.directions-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem var(--grid-gap); margin-top: 3rem; }
.direction-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 1rem; width: 100%; }
.direction-meta { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; width: 100%; padding-top: 1rem; }
.direction-meta > span { color: var(--mist); font-family: var(--ginu-23a); font-size: var(--text-xs); }
.session-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--grid-gap); margin-top: 3rem; align-items: start; }
.session-steps { list-style: none; padding: 0; margin: 0; }
.session-step { display: grid; grid-template-columns: minmax(0, .55fr) minmax(0, 1fr); align-items: start; gap: 1.25rem; padding-block: 1.5rem 2rem; border-top: var(--rule); }
.session-step + .session-step { margin-top: 0; }
.step-number { display: block; font-family: var(--ginu-e6a); font-weight: 900; font-size: clamp(3.5rem, 6vw, 7rem); line-height: .9; letter-spacing: -.065em; color: var(--violet-line); }
.step-body h3 { font-size: var(--text-lg); line-height: 1.3; }
.step-body p { margin-top: .75rem; color: var(--mist); font-size: var(--text-sm); }
.step-duration { display: block; margin-top: 1rem; color: var(--mist); font-family: var(--ginu-23a); font-size: var(--text-xs); }
.session-figure img { aspect-ratio: 4 / 5; width: 100%; object-fit: cover; }
.session-note { border-top: var(--rule); margin-top: 2rem; padding-top: 1rem; font-size: var(--text-sm); color: var(--mist); }
.studio-break { padding-block: var(--section-space); border-top: var(--rule); }
.studio-break-heading { display: flex; flex-wrap: wrap; align-items: baseline; gap: 1.5rem 3rem; padding-bottom: 2rem; }
.studio-break-heading .index-number { font-size: clamp(5rem, 10vw, 10rem); }
.studio-break-media img { width: 100%; aspect-ratio: 16 / 7; object-fit: cover; }
.studio-break-caption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem 2rem; padding-top: 1rem; color: var(--mist); font-family: var(--ginu-23a); font-size: var(--text-xs); }
.studio-break-quote { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: var(--grid-gap); margin-top: clamp(2.5rem, 6vw, 6rem); }
.studio-break-quote > .eyebrow { padding-top: .5rem; }
.teaser-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: var(--section-gap); margin-top: 2.5rem; }
.teaser-copy p { max-width: 40ch; font-size: var(--text-lg); }
.teaser-copy .button { margin-top: 2rem; }
.teaser-register { display: grid; align-content: start; border-top: var(--rule); }
.teaser-register > div { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: 1rem; padding-block: 1rem; border-bottom: var(--rule); }
.teaser-register dt { font-family: var(--ginu-23a); font-size: var(--text-xs); color: var(--mist); }
.teaser-register dd { font-size: var(--text-sm); }
.teaser-footnote { margin-top: 1.5rem; font-family: var(--ginu-23a); font-size: var(--text-xs); color: var(--mist); }
.home-contact-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: var(--section-gap); margin-top: 3rem; }
.home-contact-copy > p { margin-top: 1.5rem; max-width: 32ch; color: var(--mist); }
.home-contact-details { display: grid; gap: 1rem; margin-top: 2rem; }
.home-contact-details address { max-width: 29ch; font-size: var(--text-sm); color: var(--mist); }
.home-contact-form { padding-top: 1.5rem; border-top: var(--rule); }

.about-opening { padding-bottom: var(--section-space); }
.about-opening-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: var(--section-gap); align-items: start; }
.about-opening-copy { padding-top: clamp(1rem, 3vw, 3rem); }
.about-opening-copy h1 { max-width: 10ch; }
.about-opening-copy .lead { margin-top: 2rem; }
.about-opening-copy .eyebrow { margin-bottom: 1.5rem; }
.about-window img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.about-manifesto { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--section-gap); margin-top: 3rem; }
.about-manifesto .prose { max-width: 54ch; }
.founder-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: var(--section-gap); align-items: center; }
.founder-portrait img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.founder-copy { padding-block: 1.5rem; }
.founder-copy > * + * { margin-top: 1.5rem; }
.founder-copy h2 { max-width: 13ch; }
.founder-copy p { max-width: 43ch; }
.founder-copy .eyebrow { margin-top: 0; }
.team-layout { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); gap: var(--section-gap); align-items: end; }
.team-photo img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.team-copy > * + * { margin-top: 1.5rem; }
.team-copy h2 { font-size: var(--text-2xl); }
.team-copy p { color: var(--mist); }
.capacity-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--section-gap); }
.capacity-number { font-family: var(--ginu-e6a); font-size: clamp(7rem, 24vw, 21rem); line-height: .82; letter-spacing: -.075em; font-weight: 900; color: var(--violet-line); }
.capacity-copy > * + * { margin-top: 1.5rem; }
.capacity-copy h2 { max-width: 16ch; }
.capacity-register { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .625rem; margin-top: 2rem; }
.capacity-register > span { padding-block: .75rem; border-top: 2px solid var(--violet-line); font-family: var(--ginu-23a); font-size: var(--text-xs); color: var(--mist); text-align: left; overflow-wrap: anywhere; }
.studio-location-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr); gap: var(--section-gap); }
.studio-location-copy h2 { max-width: 13ch; }
.studio-location-copy p, .studio-location-copy address { margin-top: 1.5rem; max-width: 37ch; }
.studio-location-copy address { font-family: var(--ginu-23a); font-size: var(--text-sm); color: var(--mist); }
.studio-exterior img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }

.services-opening { padding-bottom: var(--section-gap); }
.services-directory { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--grid-gap); margin-top: 2.5rem; border-bottom: var(--rule); }
.services-directory .list-row { grid-template-columns: 2rem minmax(0, 1fr); }
.service-section { padding-block: var(--section-space); border-top: var(--rule); scroll-margin-top: calc(var(--header-space) + 1.5rem); }
.service-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: var(--grid-gap); align-items: start; }
.service-heading .index-number { font-size: clamp(5rem, 13vw, 12rem); }
.service-heading h2 { max-width: 17ch; font-size: var(--text-4xl); }
.service-heading .eyebrow { margin-bottom: 1rem; }
.service-lede { max-width: 47ch; font-size: var(--text-lg); margin-top: 1.5rem; }
.service-main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: var(--section-gap); margin-top: 3rem; align-items: start; }
.service-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.service-scope > * + * { margin-top: 1.5rem; }
.service-scope h3 { font-size: var(--text-xl); }
.service-scope p { max-width: 52ch; }
.service-scope ul { padding-left: 1.25em; }
.service-scope li { padding-left: .25rem; font-size: var(--text-sm); }
.service-scope li::marker { color: var(--violet-line); }
.service-specifications { margin-top: 2rem; }
.service-exclusions { margin-top: 2rem; padding-top: 1.5rem; border-top: var(--rule); }
.service-exclusions h3 { font-size: var(--text-lg); }
.service-exclusions p { margin-top: .75rem; color: var(--mist); font-size: var(--text-sm); }
.service-bottom { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: var(--section-gap); margin-top: 2rem; align-items: start; }
.service-fee-note { max-width: 47ch; color: var(--mist); font-family: var(--ginu-23a); font-size: var(--text-xs); }
.service-bottom .button { justify-self: start; }
.service-comparison { margin-top: 3rem; }
.service-comparison table { min-width: 40rem; }
.service-comparison th:first-child { width: 28%; }
.service-evidence { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: center; gap: var(--section-gap); }
.service-evidence img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.service-evidence-copy > * + * { margin-top: 1.5rem; }
.service-evidence-copy p { max-width: 38ch; }
.service-faq-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--section-gap); }
.service-faq-intro > p { margin-top: 1.5rem; color: var(--mist); max-width: 30ch; }
.faq-section { padding-block: var(--section-space); border-top: var(--rule); }
.faq-section-title { margin-bottom: 2rem; max-width: 18ch; }
.faq-footnote { padding-top: 1.5rem; max-width: 54ch; font-size: var(--text-sm); color: var(--mist); }

.configurator-intro { padding-block: clamp(2rem, 5vw, 5rem) var(--section-gap); }
.configurator-intro h1 { max-width: 12ch; }
.configurator-intro .lead { margin-top: 2rem; }
.configurator-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: var(--section-gap); padding-bottom: var(--section-space); align-items: start; }
.configurator-options { display: grid; gap: 2.5rem; }
.config-step { border-top: var(--rule); padding-top: 1.5rem; }
.config-step-heading { display: grid; grid-template-columns: 3.25rem minmax(0, 1fr); gap: 1rem; margin-bottom: 1.5rem; }
.config-step-index { color: var(--violet-line); font-family: var(--ginu-e6a); font-weight: 900; font-size: 2.75rem; line-height: 1; letter-spacing: -.06em; }
.config-step-heading h2 { font-size: var(--text-xl); line-height: 1.2; }
.config-step-heading p { margin-top: .5rem; max-width: 43ch; color: var(--mist); font-size: var(--text-sm); }
.config-direction-options { display: grid; gap: .75rem; }
.config-band-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.config-band-options .option { flex-wrap: wrap; gap: .5rem; padding-inline: .875rem; }
.config-band-options .option > span { flex: 1 1 3.5rem; }
.config-timeline-options { display: grid; gap: .75rem; }
.config-limit-note { margin-top: 1rem; font-size: var(--text-sm); color: var(--mist); }
.config-result { padding: clamp(1.25rem, 3vw, 2.5rem); background: var(--plum); border-top: 2px solid var(--accent); }
.config-result-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 1rem; padding-bottom: 1.5rem; border-bottom: var(--rule); }
.config-result-heading h2 { font-size: var(--text-xl); }
.config-result-heading .eyebrow { color: var(--mist); }
.config-result-summary { margin-top: 1.5rem; max-width: 35ch; font-family: var(--ginu-e6a); font-size: var(--text-2xl); font-weight: 700; letter-spacing: -.035em; line-height: 1.2; }
.config-result-metrics { display: grid; gap: 0; margin-top: 1.75rem; }
.config-result-metrics > div { display: grid; gap: .5rem; padding-block: 1.25rem; border-top: var(--rule); }
.config-result-metrics dt { color: var(--mist); font-family: var(--ginu-23a); font-size: var(--text-xs); }
.config-result-metrics dd { font-size: var(--text-lg); line-height: 1.5; }
.config-hours { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1rem; }
.config-hours-value { font-family: var(--ginu-e6a); font-size: clamp(3.5rem, 6vw, 6rem); font-weight: 900; color: var(--accent); letter-spacing: -.045em; line-height: 1.05; font-variant-numeric: tabular-nums; }
.config-hours-unit { font-family: var(--ginu-23a); font-size: var(--text-xs); color: var(--mist); }
.config-result-note { border-top: var(--rule); margin-top: 1rem; padding-top: 1.25rem; font-size: var(--text-xs); color: var(--mist); }
.config-result-disclaimer { margin-top: 1.5rem; font-family: var(--ginu-23a); font-size: var(--text-xs); line-height: 1.7; }
.config-result-actions { display: grid; gap: 1rem; margin-top: 1.75rem; }
.config-result-status { margin-top: 1rem; font-size: var(--text-sm); color: var(--accent); }
.config-result-status:empty { display: none; }
.config-inquiry { padding-block: var(--section-space); border-top: var(--rule); }
.config-inquiry-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: var(--section-gap); }
.config-inquiry-copy > * + * { margin-top: 1.5rem; }
.config-inquiry-copy h2 { max-width: 14ch; }
.config-inquiry-copy p { max-width: 35ch; color: var(--mist); }
.config-selection-summary { margin-top: 2rem; padding: 1.25rem; border-left: 2px solid var(--accent); background: var(--plum); font-family: var(--ginu-23a); font-size: var(--text-xs); line-height: 1.8; overflow-wrap: anywhere; }
.config-explainer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: var(--section-gap); align-items: start; }
.config-explainer figure img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.config-explainer-copy > * + * { margin-top: 1.5rem; }
.config-explainer-copy h2 { max-width: 16ch; }
.config-noscript { padding: 1.5rem; border: var(--rule); margin-bottom: 2rem; max-width: 65ch; }
.config-noscript p + p { margin-top: 1rem; }

.contact-opening { padding-block: clamp(2rem, 5vw, 5rem) var(--section-gap); }
.contact-opening h1 { max-width: 11ch; }
.contact-opening .lead { margin-top: 2rem; }
.contact-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: var(--section-gap); align-items: start; padding-bottom: var(--section-space); }
.contact-aside { border-top: var(--rule); }
.contact-detail { padding-block: 1.5rem; border-bottom: var(--rule); }
.contact-detail h2, .contact-detail h3 { margin-bottom: .875rem; font-family: var(--ginu-23a); font-size: var(--text-xs); line-height: 1.6; font-weight: 400; letter-spacing: .04em; color: var(--mist); }
.contact-detail address { max-width: 28ch; }
.contact-detail > p { font-size: var(--text-sm); max-width: 35ch; }
.contact-address-row { display: grid; grid-template-columns: 1.25rem minmax(0, 1fr); align-items: start; gap: 1rem; }
.contact-address-row .icon { margin-top: .3rem; color: var(--mist); }
.contact-hours { display: grid; gap: .75rem; font-size: var(--text-sm); }
.contact-hours > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 1rem; }
.contact-hours dt { color: var(--mist); }
.contact-inquiry { padding-top: 1.5rem; border-top: var(--rule); }
.contact-form-intro { margin-bottom: 2rem; }
.contact-form-intro h2 { font-size: var(--text-2xl); }
.contact-form-intro p { max-width: 46ch; margin-top: 1rem; color: var(--mist); font-size: var(--text-sm); }
.contact-image { margin-top: 2.5rem; }
.contact-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.contact-afterword { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: var(--section-gap); padding-block: var(--section-gap); border-top: var(--rule); }
.contact-afterword p { max-width: 57ch; color: var(--mist); }
.contact-afterword h2 { font-size: var(--text-xl); }

.legal-header { padding-block: clamp(2rem, 5vw, 5rem) var(--section-gap); border-bottom: var(--rule); }
.legal-header-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: var(--grid-gap); }
.legal-header h1 { max-width: 13ch; font-size: var(--text-4xl); }
.legal-header .lead { margin-top: 1.5rem; max-width: 46ch; font-size: var(--text-lg); }
.legal-meta { display: flex; flex-wrap: wrap; gap: .75rem 2rem; margin-top: 2rem; font-family: var(--ginu-23a); font-size: var(--text-xs); color: var(--mist); }
.legal-header-label { display: grid; gap: 1rem; align-content: start; padding-top: .5rem; }
.legal-header-label .index-number { font-size: clamp(4.5rem, 10vw, 9rem); }
.legal-contact-strip { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 1rem 2rem; padding-block: 2rem; margin-top: 2rem; border-top: var(--rule); }
.legal-contact-strip p { max-width: 49ch; font-size: var(--text-sm); color: var(--mist); }
.legal-notice { margin-block: 2rem; padding: 1.25rem 1.5rem; background: var(--plum); border-left: 2px solid var(--violet-line); font-size: var(--text-sm); }
.legal-notice > * + * { margin-top: 1rem; }
.legal-notice strong { color: var(--paper); }
.legal-data { margin-block: 2rem; }
.legal-data table { min-width: 36rem; }
.legal-data caption { max-width: 65ch; }
.legal-data td code { font-size: .75rem; }
.legal-data th { width: auto; }
.legal-data th:first-child { width: 22%; }
.legal-data td p + p { margin-top: .75rem; }
.legal-bases-table { min-width: 38rem; }
.legal-bases-table th:nth-child(1) { width: 25%; }
.legal-bases-table th:nth-child(2) { width: 35%; }
.legal-bases-table th:nth-child(3) { width: 40%; }
.legal-table-note { margin-top: .875rem; font-family: var(--ginu-23a); font-size: var(--text-xs); line-height: 1.7; color: var(--mist); }
.legal-signal-list { display: grid; gap: 0; margin-block: 1.5rem; border-top: var(--rule); }
.legal-signal-list > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 1.25rem; padding-block: 1rem; border-bottom: var(--rule); }
.legal-signal-list dt { font-family: var(--ginu-23a); font-size: var(--text-xs); overflow-wrap: anywhere; }
.legal-signal-list dd { font-size: var(--text-sm); color: var(--mist); }
.privacy-layout { max-width: 73rem; margin-inline: auto; padding-block: var(--section-gap) var(--section-space); }
.privacy-row { display: grid; grid-template-columns: minmax(0, 2.7fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); padding-block: 2.5rem; border-bottom: var(--rule-soft); align-items: start; }
.privacy-row:first-child { padding-top: .5rem; }
.privacy-copy { max-width: 66ch; line-height: 1.85; }
.privacy-copy > * + * { margin-top: 1.25rem; }
.privacy-copy h2 { max-width: 24ch; font-size: var(--text-2xl); line-height: 1.2; margin-bottom: 1.5rem; }
.privacy-copy h3 { margin-top: 2rem; font-size: var(--text-xl); }
.privacy-copy li + li { margin-top: .75rem; }
.privacy-copy li::marker { color: var(--mist); }
.privacy-copy code { font-size: .8125em; color: var(--paper); background: var(--plum); padding: .125rem .25rem; }
.margin-note { padding-top: 1rem; padding-left: 1.25rem; border-top: var(--rule); border-left: var(--rule-soft); color: var(--mist); font-size: var(--text-sm); line-height: 1.7; }
.margin-note > * + * { margin-top: 1rem; }
.margin-note-label { display: block; color: var(--paper); font-family: var(--ginu-23a); font-size: var(--text-xs); letter-spacing: .025em; }
.margin-note time, .retention-clock { display: block; margin-block: .5rem; font-family: var(--ginu-23a); font-size: var(--text-sm); color: var(--paper); overflow-wrap: anywhere; }
.margin-note dl > div + div { margin-top: 1rem; }
.margin-note dt { font-family: var(--ginu-23a); font-size: var(--text-xs); color: var(--paper); }
.margin-note dd { margin-top: .25rem; }
.privacy-wide { padding-block: 2.5rem; border-bottom: var(--rule-soft); }
.privacy-wide-heading { max-width: 66ch; margin-bottom: 1.75rem; }
.privacy-wide-heading h2 { font-size: var(--text-2xl); }
.privacy-wide-heading p { margin-top: 1.25rem; }
.privacy-accessibility, .privacy-request { scroll-margin-top: calc(var(--header-space) + 2rem); }
.privacy-request-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.75rem; }
.request-details { display: grid; margin-top: 1.5rem; border-top: var(--rule); }
.request-details > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 1.5rem; padding-block: 1rem; border-bottom: var(--rule); }
.request-details dt { font-family: var(--ginu-23a); font-size: var(--text-xs); color: var(--mist); }
.request-details dd { font-size: var(--text-sm); }
.cookies-layout { padding-block: var(--section-gap) var(--section-space); }
.cookies-masthead { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 1rem 2rem; padding-bottom: 1rem; margin-bottom: 2rem; border-bottom: var(--rule); }
.cookies-masthead p { font-family: var(--ginu-23a); font-size: var(--text-xs); color: var(--mist); }
.cookies-columns { column-count: 2; column-gap: clamp(2.5rem, 6vw, 6rem); column-rule: var(--rule); font-size: var(--text-sm); line-height: 1.9; }
.cookies-clause { margin-bottom: 1.5rem; break-inside: avoid-column; }
.cookies-clause p + p { margin-top: .875rem; }
.cookies-clause > h2, .cookies-clause > h3, .run-in-heading { display: inline; font-family: var(--ginu-947); font-size: 1em; font-weight: 600; line-height: inherit; letter-spacing: .045em; font-variant-caps: all-small-caps; }
.cookies-clause > h2::after, .cookies-clause > h3::after { content: ' '; white-space: pre-wrap; }
.cookies-clause > h2 + p, .cookies-clause > h3 + p { display: inline; }
.cookies-clause > ul, .cookies-clause > ol { margin-top: .875rem; }
.cookies-clause li { padding-left: .25rem; }
.cookies-clause code { font-size: .8125em; background: var(--plum); padding: .125rem .25rem; }
.cookies-clause .text-link { font-size: inherit; }
.cookies-column-note { padding: 1rem 1.25rem; margin-block: 1.5rem; background: var(--plum); border-top: var(--rule); border-bottom: var(--rule); break-inside: avoid-column; }
.cookies-column-note p { font-size: var(--text-sm); line-height: 1.8; }
.cookies-column-note p + p { margin-top: 1rem; }
.cookies-register { margin-top: 3rem; padding-top: 2rem; border-top: var(--rule); }
.cookies-register h2 { max-width: 24ch; font-size: var(--text-2xl); }
.cookies-register > p { margin-top: 1rem; max-width: 66ch; font-size: var(--text-sm); }
.cookies-register .repofe4 { margin-top: 2rem; }
.cookie-inventory { min-width: 43rem; }
.cookie-inventory th:nth-child(1) { width: 20%; }
.cookie-inventory th:nth-child(2) { width: 28%; }
.cookie-inventory th:nth-child(3) { width: 30%; }
.cookie-inventory th:nth-child(4) { width: 22%; }
.cookie-inventory td code { font-size: .75rem; }
.cookie-preference-panel { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 2rem; align-items: start; margin-block: 3rem 0; padding-block: 2rem; border-top: var(--rule); border-bottom: var(--rule); }
.cookie-preference-panel h2 { font-size: var(--text-xl); }
.cookie-preference-panel p { margin-top: 1rem; max-width: 48ch; font-size: var(--text-sm); }
.cookie-preference-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.cookie-preference-actions .consent-status { flex-basis: 100%; }
.terms-layout { padding-block: var(--section-gap) var(--section-space); }
.terms-glance { background: var(--plum); padding: clamp(1.25rem, 4vw, 3.5rem); border-top: 2px solid var(--violet-line); }
.terms-glance-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 2rem; padding-bottom: 2rem; }
.terms-glance-heading h2 { max-width: 13ch; font-size: var(--text-2xl); }
.terms-glance-heading p { max-width: 45ch; font-size: var(--text-sm); color: var(--mist); }
.terms-glance-table { width: 100%; table-layout: fixed; font-size: var(--text-sm); line-height: 1.75; }
.terms-glance-table th, .terms-glance-table td { padding-block: 1.25rem; border-top: var(--rule); }
.terms-glance-table th { width: 32%; padding-right: 2rem; font-family: var(--ginu-23a); font-size: var(--text-xs); font-weight: 400; color: var(--mist); }
.terms-glance-table td { padding-left: 1rem; }
.terms-glance-table td p + p { margin-top: .625rem; }
.terms-glance-table address { max-width: 40ch; }
.terms-prose { max-width: 68ch; margin-inline: auto; margin-top: var(--section-gap); line-height: 1.85; }
.terms-prose > section { padding-block: 2.5rem; border-bottom: var(--rule-soft); }
.terms-prose > section:first-child { padding-top: 0; }
.terms-prose h2 { font-size: var(--text-2xl); line-height: 1.2; max-width: 25ch; margin-bottom: 1.5rem; }
.terms-prose h3 { font-size: var(--text-xl); line-height: 1.3; margin-top: 2rem; }
.terms-prose p + p, .terms-prose h3 + p, .terms-prose p + ul, .terms-prose ul + p { margin-top: 1.25rem; }
.terms-prose li + li { margin-top: .75rem; }
.terms-prose li::marker { color: var(--mist); }
.terms-warranty { border-left: 2px solid var(--violet-line); padding-left: 1.5rem; margin-top: 2rem; }
.terms-warranty p { font-size: var(--text-lg); line-height: 1.65; }
.terms-contact { padding-top: 2rem; }
.terms-contact p { max-width: 54ch; }
.terms-contact .cluster { margin-top: 1rem; }

.confirmation-page { padding-block: clamp(2.5rem, 6vw, 6rem) var(--section-space); }
.confirmation-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: var(--grid-gap); }
.confirmation-index { font-family: var(--ginu-e6a); font-weight: 900; font-size: clamp(5rem, 13vw, 12rem); line-height: .85; letter-spacing: -.07em; color: var(--violet-line); }
.confirmation-copy h1 { max-width: 12ch; font-size: var(--text-4xl); }
.confirmation-copy > .eyebrow { margin-bottom: 1.25rem; }
.confirmation-copy > .lead { margin-top: 2rem; max-width: 40ch; }
.confirmation-state { display: flex; align-items: flex-start; gap: 1rem; margin-top: 2rem; padding-block: 1.25rem; border-top: var(--rule); border-bottom: var(--rule); color: var(--mist); font-size: var(--text-sm); }
.confirmation-state .icon { margin-top: .25rem; color: var(--accent); }
.confirmation-state p { flex: 1; }
.confirmation-next { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap); margin-top: 3rem; }
.confirmation-next article { border-top: var(--rule); padding-top: 1.25rem; }
.confirmation-next h2 { font-size: var(--text-xl); max-width: 19ch; }
.confirmation-next p { margin-top: 1rem; color: var(--mist); font-size: var(--text-sm); }
.confirmation-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.confirmation-reference { margin-top: 2rem; color: var(--mist); font-family: var(--ginu-23a); font-size: var(--text-xs); }
.error-page { padding-block: clamp(2rem, 5vw, 5rem) var(--section-space); }
.error-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: var(--section-gap); align-items: end; }
.error-number { display: block; font-family: var(--ginu-e6a); font-size: clamp(6rem, 22vw, 20rem); font-weight: 900; line-height: .9; letter-spacing: -.075em; color: var(--violet-line); font-variant-numeric: lining-nums; }
.error-copy { padding-top: 2rem; }
.error-copy h1 { font-size: var(--text-3xl); max-width: 13ch; }
.error-copy p { margin-top: 1.5rem; max-width: 42ch; color: var(--mist); }
.error-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.error-route-index { margin-top: var(--section-gap); padding-top: 2rem; border-top: var(--rule); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--section-gap); }
.error-route-index h2 { font-size: var(--text-xl); }
.error-route-index p { margin-top: 1rem; color: var(--mist); max-width: 35ch; font-size: var(--text-sm); }
.error-route-list { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 2rem; }
.error-route-list li { margin: 0; border-bottom: var(--rule); padding-bottom: .75rem; }

@media (min-width: 1440px) {
  .hero-media { margin-left: max(var(--gutter), calc((100% - var(--shell-max)) / 2 + 8rem)); }
  .hero-media img { aspect-ratio: 2.25 / 1; }
  .about-opening-grid { grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr); }
  .service-main { margin-left: calc(25% + var(--grid-gap) / 4); }
  .service-bottom { margin-left: calc(25% + var(--grid-gap) / 4); }
}
@media (min-width: 1920px) {
  .hero-media figcaption { padding-right: max(var(--gutter), calc((100vw - var(--shell-max)) / 2)); }
  .hero-media img { max-height: 47rem; }
  .studio-break-media img { max-height: 55rem; }
}
@media (max-width: 1023px) {
  .page-intro-grid, .hero-grid, .indexed-layout, .service-heading, .legal-header-grid, .confirmation-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 3.5fr); }
  .hero-title { font-size: clamp(2.6rem, 8vw, 5.5rem); }
  .hero-index .index-number, .section-index .index-number, .service-heading .index-number { font-size: clamp(4.75rem, 12vw, 8rem); }
  .session-layout { grid-template-columns: minmax(0, 1fr); }
  .session-figure { max-width: 100%; }
  .session-figure img { aspect-ratio: 3 / 2; }
  .session-step { grid-template-columns: minmax(0, .4fr) minmax(0, 1.6fr); }
  .teaser-layout, .home-contact-grid { grid-template-columns: minmax(0, 1fr); }
  .home-contact-details { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; }
  .home-contact-details address { grid-column: 1 / -1; }
  .team-layout { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: start; }
  .configurator-layout { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 2rem; }
  .config-band-options { grid-template-columns: minmax(0, 1fr); }
  .config-band-options .option { flex-wrap: nowrap; }
  .contact-layout, .contact-afterword { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 2rem; }
  .privacy-row { gap: 2rem; grid-template-columns: minmax(0, 2.5fr) minmax(0, 1fr); }
  .margin-note { padding-left: 1rem; }
  .cookies-columns { column-gap: 3rem; }
}
@media (max-width: 767px) {
  .page-intro-grid, .hero-grid, .indexed-layout, .service-heading, .legal-header-grid, .confirmation-layout { grid-template-columns: minmax(0, 1fr); }
  .page-intro-meta { display: flex; flex-wrap: wrap; gap: .5rem 2rem; padding-top: 0; }
  .page-intro-title { max-width: 13ch; }
  .hero-index { display: flex; align-items: flex-end; gap: 1.5rem; padding-top: 0; }
  .hero-index .index-number { font-size: clamp(4.5rem, 17vw, 7rem); }
  .hero-index .eyebrow { margin-top: 0; padding-bottom: .25rem; }
  .hero-title { max-width: 12ch; font-size: clamp(2.6rem, 9.5vw, 4.75rem); }
  .hero-description { margin-top: 1.5rem; }
  .hero-media { margin-top: 2rem; }
  .hero-media img { aspect-ratio: 4 / 3; }
  .hero-bottom-rule { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
  .section-index { display: flex; align-items: flex-end; gap: 1.5rem; padding-top: 0; }
  .section-index .index-number, .service-heading .index-number { font-size: clamp(4.5rem, 17vw, 7rem); }
  .section-index .eyebrow { margin-top: 0; padding-bottom: .25rem; }
  .statement-text { max-width: 24ch; }
  .statement-detail { margin-top: 2rem; }
  .count-row { margin-top: 2.5rem; }
  .count-item { padding-block: 1.25rem; padding-right: .75rem; }
  .count-item + .count-item { padding-left: .875rem; }
  .count-value { font-size: clamp(3.25rem, 12vw, 5.5rem); }
  .count-label { font-size: .6875rem; letter-spacing: 0; }
  .directions-grid { margin-top: 2rem; }
  .studio-break-media img { aspect-ratio: 4 / 3; }
  .studio-break-quote { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .editorial-pair, .about-opening-grid, .about-manifesto, .founder-layout, .team-layout, .capacity-layout, .studio-location-layout { grid-template-columns: minmax(0, 1fr); }
  .about-opening-copy { padding-top: 0; }
  .about-window { max-width: 29rem; width: 100%; justify-self: end; }
  .founder-portrait { max-width: 29rem; width: 100%; }
  .founder-copy { padding-block: 0; }
  .capacity-number { font-size: clamp(7rem, 28vw, 12rem); }
  .team-copy { max-width: 48ch; }
  .services-directory { grid-template-columns: minmax(0, 1fr); }
  .service-heading h2 { max-width: 16ch; font-size: var(--text-3xl); }
  .service-main, .service-bottom, .service-evidence, .service-faq-layout { grid-template-columns: minmax(0, 1fr); }
  .service-main { margin-top: 2rem; }
  .service-image img { aspect-ratio: 3 / 2; }
  .service-bottom { gap: 1.5rem; }
  .configurator-layout, .config-inquiry-layout, .config-explainer { grid-template-columns: minmax(0, 1fr); }
  .config-band-options { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .config-band-options .option { flex-wrap: wrap; }
  .config-result { padding: 1.5rem; }
  .config-result-summary { max-width: 25ch; }
  .config-inquiry-copy p { max-width: 49ch; }
  .contact-layout, .contact-afterword { grid-template-columns: minmax(0, 1fr); }
  .contact-aside { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.5rem; }
  .contact-image { grid-column: 1 / -1; }
  .contact-image img { aspect-ratio: 16 / 10; }
  .contact-inquiry { margin-top: 1rem; }
  .legal-header-label { display: flex; flex-wrap: wrap; align-items: baseline; gap: 1rem 2rem; }
  .legal-header-label .index-number { font-size: 4.5rem; }
  .privacy-row { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; padding-block: 2rem; }
  .margin-note { border-top: 0; border-left: 2px solid var(--violet-line); background: var(--plum); padding: 1rem 1.25rem; max-width: 66ch; }
  .privacy-wide { padding-block: 2rem; }
  .cookies-columns { column-count: 1; column-rule: none; }
  .cookies-clause { margin-bottom: 1.5rem; }
  .cookie-preference-panel { grid-template-columns: minmax(0, 1fr); }
  .terms-glance-heading { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .terms-glance-heading h2 { max-width: 20ch; }
  .terms-glance-table th { width: 34%; padding-right: 1rem; }
  .terms-glance-table td { padding-left: .5rem; }
  .terms-prose > section { padding-block: 2rem; }
  .confirmation-index { font-size: 5rem; }
  .error-layout { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .error-number { font-size: clamp(6rem, 30vw, 13rem); }
  .error-copy { padding-top: 0; }
  .error-route-index { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 479px) {
  .hero-actions { align-items: stretch; flex-direction: column; gap: .75rem; }
  .hero-actions > * { align-self: flex-start; }
  .hero-media figcaption { flex-direction: column; gap: .375rem; }
  .statement-detail { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .directions-grid { grid-template-columns: minmax(0, 1fr); row-gap: 0; }
  .session-step { grid-template-columns: 4rem minmax(0, 1fr); gap: 1rem; }
  .step-number { font-size: 3.5rem; }
  .studio-break-heading { gap: 1.25rem; }
  .home-contact-details { grid-template-columns: minmax(0, 1fr); gap: .75rem; }
  .home-contact-details address { grid-column: auto; }
  .capacity-register { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .config-band-options { grid-template-columns: minmax(0, 1fr); }
  .config-band-options .option { flex-wrap: nowrap; }
  .config-step-heading { grid-template-columns: 2.75rem minmax(0, 1fr); gap: .75rem; }
  .config-step-index { font-size: 2.5rem; }
  .config-result { padding: 1.25rem; }
  .contact-aside { grid-template-columns: minmax(0, 1fr); }
  .contact-image { grid-column: auto; }
  .contact-hours > div { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); }
  .legal-signal-list > div, .request-details > div { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
  .terms-glance-table, .terms-glance-table tbody, .terms-glance-table tr, .terms-glance-table th, .terms-glance-table td { display: block; width: 100%; }
  .terms-glance-table th { padding: 1.25rem 0 .5rem; }
  .terms-glance-table td { border-top: 0; padding: 0 0 1.25rem; }
  .terms-warranty { padding-left: 1rem; }
  .confirmation-next { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .confirmation-actions, .error-actions { flex-direction: column; align-items: stretch; }
  .error-route-list { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 359px) {
  .hero-title { font-size: 2.6rem; letter-spacing: -.045em; }
  .hero-index, .section-index { gap: 1rem; }
  .hero-index .eyebrow, .section-index .eyebrow { font-size: .6875rem; }
  .count-item { padding-right: .5rem; }
  .count-item + .count-item { padding-left: .625rem; }
  .count-value { font-size: 3rem; }
  .count-label { font-size: .6875rem; }
  .legal-header h1 { font-size: 2.5rem; }
  .config-result-summary { font-size: 1.65rem; }
}
@media (forced-colors: active) {
  .hero-index .index-number, .section-index .index-number, .step-number, .capacity-number, .error-number, .confirmation-index { color: CanvasText; }
  .config-result, .margin-note, .terms-glance, .cookies-column-note { border: 1px solid CanvasText; }
  .count-value, .config-hours-value { color: CanvasText; }
}
@media print {
  .home-hero, .page-intro, .legal-header, .confirmation-page, .error-page { padding-block: 1rem 2rem; }
  .indexed-section, .studio-break, .service-section, .config-inquiry { padding-block: 2rem; }
  .hero-title { font-size: 42pt; }
  .hero-media { margin-left: 0; }
  .hero-media img, .studio-break-media img { max-height: 22rem; object-fit: cover; }
  .hero-index .index-number, .section-index .index-number, .service-heading .index-number { font-size: 50pt; }
  .count-value { font-size: 42pt; }
  .count-row, .session-step, .service-heading, .config-result, .privacy-row, .terms-glance-table tr { break-inside: avoid; }
  .configurator-layout, .contact-layout { grid-template-columns: minmax(0, 1fr); }
  .config-result { border: 1px solid #777; }
  .privacy-layout, .cookies-layout, .terms-layout { padding-block: 2rem; }
  .privacy-row { grid-template-columns: minmax(0, 2.7fr) minmax(0, 1fr); gap: 2rem; }
  .cookies-columns { column-count: 2; column-gap: 2rem; }
  .cookies-clause { break-inside: auto; }
  .terms-prose { max-width: 100%; }
  .terms-glance { border: 1px solid #777; padding: 1.5rem; }
  .legal-data table, .cookie-inventory, .legal-bases-table, .service-comparison table { min-width: 0; font-size: 9pt; }
  .cookie-preference-actions, .config-result-actions, .config-inquiry .inquiry-form, .home-contact-form, .contact-inquiry { display: none; }
}
