main { overflow: clip; }
.process-section { position: relative !important; top: auto !important; right: auto !important; bottom: auto !important; left: auto !important; transform: none !important; }
.faq-item { min-width: 0; }
.faq-question { white-space: normal; }
@media (max-width: 480px) {
  .service-row .service-link, .room-list .service-link { flex: 0 0 auto; }
  .service-row { overflow: hidden; }
  .feature-item { grid-template-columns: 4rem minmax(0, 1fr); gap: .7rem; }
  .service-body-aside .service-link { white-space: nowrap; }
}

.hero { position: relative; min-height: min(56rem, 100svh); display: grid; grid-template-columns: minmax(0, 1.03fr) minmax(0, .97fr); background: var(--cream); }
.hero-media { position: relative; min-height: min(56rem, 100svh); overflow: hidden; background: var(--oxblood-deep); }
.hero-media .media-frame { height: 100%; min-height: 32rem; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 48% center; }
.hero-media::after { position: absolute; inset: 0; content: ''; background: linear-gradient(90deg, rgba(39,24,20,.04), rgba(67,21,29,.18)); pointer-events: none; }
.hero-copy { display: flex; min-width: 0; align-items: center; padding: clamp(7rem, 13vw, 12rem) clamp(1.5rem, 7vw, 8rem) clamp(5rem, 9vw, 8rem) clamp(1.5rem, 6vw, 7rem); background: radial-gradient(circle at 82% 18%, rgba(183,138,70,.12), transparent 18rem), linear-gradient(135deg, rgba(255,253,248,.42), transparent 62%); }
.hero-copy-inner { position: relative; width: min(100%, 38rem); }
.hero h1 { max-width: 8.7ch; margin-top: 1rem; }
.hero-intro { max-width: 38rem; margin-top: 1.6rem; color: var(--muted); font-size: var(--text-lg); line-height: 1.55; }
.hero-action { margin-top: 2.1rem; }
.hero-seal { position: absolute; right: clamp(1rem, 3vw, 3rem); bottom: clamp(1rem, 5vw, 5rem); z-index: 2; }
.hero-seal .stamp-label { padding: .2rem; color: #E4BD76; background: var(--oxblood-deep); }
.hero-seal .seal { background: rgba(67,21,29,.78); }
.hero-kicker { display: flex; align-items: center; gap: .75rem; }
.hero-kicker::before { width: 2.7rem; height: 1px; content: ''; background: var(--gold); }
.hero .gold-rule { margin-top: 1.8rem; }
.hero[data-page] { min-height: 42rem; }
.hero[data-page] .hero-media, .hero[data-page] .hero-copy { min-height: 42rem; }
.hero[data-page] .hero-copy { padding-top: 9rem; padding-bottom: 7rem; }
.hero[data-page] h1 { max-width: 12ch; font-size: var(--text-3xl); }
.service-hero-copy .button { white-space: nowrap; }

.home-intro { padding-block: var(--section-space); background: var(--paper); }
.intro-grid { display: grid; grid-template-columns: minmax(12rem, .7fr) minmax(0, 1.3fr); gap: clamp(2rem, 8vw, 9rem); align-items: start; }
.intro-lead { max-width: 28rem; }
.intro-lead h2 { margin-top: 1rem; }
.intro-lead p { margin-top: 1.35rem; color: var(--muted); }
.intro-copy { display: grid; grid-template-columns: minmax(0, 1fr) minmax(12rem, .7fr); gap: clamp(2rem, 5vw, 6rem); align-items: start; }
.intro-copy > p { max-width: 52ch; font-size: var(--text-lg); }
.intro-note { padding-top: .8rem; border-top: 1px solid var(--gold); color: var(--oxblood); font-family: var(--deku-a89); font-size: var(--text-xl); line-height: 1.18; }
.room-section { padding-block: var(--section-space); background: var(--paper); }
.rooms-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .65fr); gap: 2rem; align-items: end; margin-bottom: clamp(2.5rem, 5vw, 5rem); }
.rooms-heading h2 { max-width: 13ch; }
.rooms-heading p { color: var(--muted); }
.rooms-layout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); gap: clamp(1.25rem, 4vw, 4rem); align-items: start; }
.room-feature { display: grid; gap: 1.5rem; }
.room-feature .media-frame { aspect-ratio: 1.45; }
.room-feature h3 { font-size: var(--text-2xl); }
.room-feature p { max-width: 54ch; color: var(--muted); }
.room-list { align-self: stretch; }
.room-list .feature-item:first-child { padding-top: 0; }
.room-list .feature-item h3 { color: var(--ink); }
.room-list .feature-item a { text-decoration: none; }
.room-list .feature-item a:hover h3 { color: var(--oxblood); }

.evidence-section { padding-block: var(--section-space); background: var(--cream); }
.evidence-heading { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: clamp(2rem, 5vw, 4.5rem); }
.evidence-heading h2 { max-width: 12ch; }
.evidence-heading > p { width: min(100%, 32rem); color: var(--muted); }
.evidence-grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: clamp(1rem, 5vw, 5rem); align-items: start; }
.evidence-item:nth-child(2) { margin-top: clamp(3rem, 10vw, 9rem); }
.evidence-item .media-frame { aspect-ratio: 1.5; }
.evidence-item:nth-child(2) .media-frame { aspect-ratio: 1.1; }
.evidence-item h3 { margin-top: 1rem; font-size: var(--text-xl); }
.evidence-item p { margin-top: .5rem; color: var(--muted); font-size: var(--text-sm); }
.evidence-item .caption { max-width: 42ch; }

.process-section { padding-block: clamp(3rem, 6vw, 6rem); background: var(--paper); }
.process-heading { display: flex; gap: 2rem; align-items: end; justify-content: space-between; margin-bottom: 3rem; }
.process-heading h2 { max-width: 12ch; }
.process-heading p { max-width: 34ch; color: var(--muted); }
.process-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.process-item .process-number { font-size: var(--text-2xl); }
.process-item p { max-width: 25ch; }
.process-deliverable { display: block; margin-top: 1.2rem; color: var(--oxblood); font-family: var(--deku-8b5); font-size: var(--text-xs); letter-spacing: .04em; }
.process-deliverable::before { content: '→ '; color: var(--gold); }

.checker-section { padding-block: var(--section-space); background: var(--cream); }
.checker-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 8vw, 9rem); align-items: start; }
.checker-intro h2 { margin-top: 1rem; max-width: 10ch; }
.checker-intro p { margin-top: 1.25rem; max-width: 34ch; color: var(--muted); }
.fit-checker { padding: clamp(1.25rem, 4vw, 3.5rem); border: 1px solid var(--line); background: var(--paper); box-shadow: var(--shadow-soft); }
.fit-checker fieldset + fieldset { margin-top: 1.7rem; }
.fit-checker legend { margin-bottom: .65rem; color: var(--oxblood); font-family: var(--deku-8b5); font-size: var(--text-xs); letter-spacing: .05em; text-transform: uppercase; }
.fit-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.fit-options--wide { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fit-option { position: relative; min-width: 0; }
.fit-option input { position: absolute; opacity: 0; }
.fit-option label { display: flex; min-height: 3rem; height: 100%; align-items: center; justify-content: center; padding: .65rem .75rem; border: 1px solid var(--line); background: var(--paper); color: var(--ink); font-size: var(--text-sm); line-height: 1.25; text-align: center; cursor: pointer; transition: background-color var(--duration-fast) ease, border-color var(--duration-fast) ease, color var(--duration-fast) ease, transform var(--duration-fast) ease; }
.fit-option label:hover { border-color: var(--gold); background: var(--cream); transform: translateY(-1px); }
.fit-option label:active { background: var(--line); transform: translateY(1px); }
.fit-option input:focus-visible + label { outline: 3px solid var(--gold); outline-offset: 2px; }
.fit-option input:checked + label { border-color: var(--oxblood); background: var(--oxblood); color: var(--paper); }
.fit-result { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: end; margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--gold); }
.fit-result h3 { color: var(--oxblood); font-size: var(--text-xl); }
.fit-result p { margin-top: .45rem; color: var(--muted); font-size: var(--text-sm); }
.fit-result .button { align-self: end; }
.fit-disclaimer { margin-top: 1rem; color: var(--muted); font-family: var(--deku-8b5); font-size: var(--text-xs); }

.offer-band { position: relative; overflow: hidden; padding-block: clamp(4rem, 10vw, 9rem); color: var(--cream); background: var(--oxblood); }
.offer-band::before { position: absolute; top: -8rem; right: 8%; width: 25rem; height: 25rem; content: ''; border: 1px solid rgba(183,138,70,.36); border-radius: 50%; }
.offer-band::after { position: absolute; top: -5rem; right: 11%; width: 19rem; height: 19rem; content: ''; border: 1px solid rgba(183,138,70,.25); border-radius: 50%; }
.offer-layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 3rem; align-items: end; }
.offer-notes { padding-right: 9rem; }
.offer-band h2 { max-width: 10ch; color: var(--cream); }
.offer-band p { max-width: 50ch; margin-top: 1.4rem; color: rgba(245,240,231,.8); }
.offer-band .offer-action { margin-top: 2rem; }
.offer-band .button--light { border-color: var(--gold); }
.offer-notes { display: grid; gap: 0; border-top: 1px solid rgba(245,240,231,.35); }
.offer-note { padding: 1rem 0; border-bottom: 1px solid rgba(245,240,231,.35); }
.offer-note strong { display: block; color: var(--gold); font-family: var(--deku-8b5); font-size: var(--text-xs); font-weight: 500; letter-spacing: .07em; text-transform: uppercase; }
.offer-note span { display: block; margin-top: .3rem; }
.offer-seal { position: absolute; right: 3rem; bottom: 1rem; opacity: .95; color: #E4BD76; border-color: #E4BD76; }

.contact-close { padding-block: var(--section-space); background: var(--paper); }
.contact-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .7fr); gap: clamp(2.5rem, 9vw, 10rem); align-items: end; }
.contact-close h2 { max-width: 10ch; margin-top: 1rem; }
.contact-close .lead { max-width: 39ch; margin-top: 1.4rem; color: var(--muted); font-size: var(--text-lg); }
.contact-details { display: grid; gap: 0; border-top: 1px solid var(--line); }
.contact-details a, .contact-details address { min-height: 3.3rem; display: flex; align-items: center; gap: .7rem; padding-block: .7rem; border-bottom: 1px solid var(--line); }
.contact-details a { color: var(--oxblood); font-weight: 700; text-decoration-color: var(--gold); }
.contact-details a:hover { color: var(--oxblood-deep); }
.contact-details a:active { color: var(--gold); }
.contact-details a:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }

.page-intro { padding: clamp(9rem, 16vw, 14rem) var(--gutter) clamp(4rem, 8vw, 8rem); background: var(--paper); }
.page-intro-inner { width: min(100%, var(--shell)); margin-inline: auto; }
.page-intro h1 { max-width: 11ch; margin-top: 1.2rem; }
.page-intro .intro-text { max-width: 44rem; margin-top: 1.5rem; color: var(--muted); font-size: var(--text-lg); }
.page-intro--oxblood { color: var(--cream); background: var(--oxblood); }
.page-intro--oxblood h1 { color: var(--cream); }
.page-intro--oxblood .intro-text { color: rgba(245,240,231,.78); }
.page-intro--oxblood .eyebrow { color: #E4BD76; }

.service-overview { padding-block: var(--section-space); background: var(--cream); }
.service-overview-heading { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 2rem; margin-bottom: 4rem; }
.service-overview-heading h2 { max-width: 12ch; }
.service-overview-heading p { max-width: 46ch; color: var(--muted); }
.service-rows { border-top: 1px solid var(--ink); }
.service-row { display: grid; grid-template-columns: minmax(6rem, .35fr) minmax(0, 1fr) minmax(10rem, .65fr) auto; gap: clamp(1rem, 3vw, 3rem); align-items: start; padding: 2rem 0; border-bottom: 1px solid var(--line); }
.service-row > .number { padding-top: .35rem; }
.service-row h3 { font-size: var(--text-xl); }
.service-row p { max-width: 35ch; color: var(--muted); font-size: var(--text-sm); }
.service-row .service-basis { color: var(--oxblood); font-family: var(--deku-8b5); font-size: var(--text-xs); line-height: 1.5; }
.service-row .service-link { justify-self: end; }
.comparison-note { display: grid; grid-template-columns: minmax(0, .6fr) minmax(0, 1.4fr); gap: 2rem; margin-top: 3rem; padding-top: 1rem; border-top: 1px solid var(--gold); }
.comparison-note p { color: var(--muted); }

.service-hero { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); min-height: 38rem; background: var(--paper); }
.service-hero-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(7rem, 13vw, 12rem) clamp(1.5rem, 7vw, 8rem); }
.service-hero-copy h1 { max-width: 10ch; margin-top: 1rem; }
.service-hero-copy p { max-width: 38ch; margin-top: 1.5rem; color: var(--muted); font-size: var(--text-lg); }
.service-hero-media { min-height: 34rem; }
.service-hero-media .media-frame { height: 100%; }
.service-hero-media img { object-position: center; }
.service-body { padding-block: var(--section-space); background: var(--cream); }
.service-body-grid { display: grid; grid-template-columns: minmax(0, .65fr) minmax(0, 1.35fr); gap: clamp(2rem, 8vw, 9rem); align-items: start; }
.service-body-aside { position: sticky; top: 7rem; }
.service-body-aside h2 { max-width: 11ch; margin-top: 1rem; }
.service-body-aside p { margin-top: 1.2rem; color: var(--muted); }
.service-detail { max-width: 53rem; }
.service-detail h2 { max-width: 16ch; }
.service-detail > p { margin-top: 1.3rem; }
.service-detail .spec-list { margin-top: 2.4rem; }
.service-detail .media-frame { aspect-ratio: 1.6; margin-top: 3rem; }
.service-boundary { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-top: 3.5rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.service-boundary h3 { font-size: var(--text-lg); }
.service-boundary p { margin-top: .65rem; color: var(--muted); font-size: var(--text-sm); }

.anatomy-section { padding-block: var(--section-space); background: var(--paper); }
.anatomy-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(2rem, 7vw, 8rem); align-items: center; }
.anatomy-image .media-frame { aspect-ratio: 1.3; }
.anatomy-copy h2 { max-width: 13ch; margin-top: 1rem; }
.anatomy-copy p { margin-top: 1.25rem; color: var(--muted); }
.anatomy-points { display: grid; gap: 0; margin-top: 2rem; border-top: 1px solid var(--line); }
.anatomy-point { display: grid; grid-template-columns: 2.5rem 1fr; gap: 1rem; padding-block: 1rem; border-bottom: 1px solid var(--line); }
.anatomy-point strong { color: var(--oxblood); font-family: var(--deku-8b5); font-size: var(--text-sm); }
.anatomy-point p { margin: 0; color: var(--ink); font-size: var(--text-sm); }

.work-archive { padding-block: var(--section-space); background: var(--cream); }
.archive-heading { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: 3.5rem; }
.archive-heading h2 { max-width: 11ch; }
.archive-heading p { max-width: 35ch; color: var(--muted); }
.archive-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(1.2rem, 3vw, 3rem); }
.archive-card { grid-column: span 5; min-width: 0; }
.archive-card:nth-child(3n + 2) { grid-column: span 4; margin-top: 5rem; }
.archive-card:nth-child(3n + 3) { grid-column: span 3; margin-top: 10rem; }
.archive-card .media-frame { aspect-ratio: 1.05; }
.archive-card:nth-child(3n + 1) .media-frame { aspect-ratio: 1.35; }
.archive-card h3 { margin-top: 1rem; font-size: var(--text-lg); }
.archive-card p { margin-top: .45rem; color: var(--muted); font-size: var(--text-sm); }
.archive-card .meta { display: block; margin-top: 1rem; }
.archive-note { max-width: 35rem; margin-top: 5rem; padding-top: 1rem; border-top: 1px solid var(--gold); color: var(--oxblood); font-family: var(--deku-a89); font-size: var(--text-xl); line-height: 1.2; }

.about-band { padding-block: var(--section-space); background: var(--paper); }
.about-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 8vw, 9rem); align-items: start; }
.about-lead h2 { max-width: 11ch; margin-top: 1rem; }
.about-lead p { margin-top: 1.4rem; color: var(--muted); }
.about-copy { max-width: 54ch; }
.about-copy p + p { margin-top: 1.5rem; }
.about-quote { margin-top: 3rem; padding: 1.5rem 0 1.5rem 1.5rem; border-left: 2px solid var(--gold); color: var(--oxblood); font-family: var(--deku-a89); font-size: var(--text-xl); line-height: 1.22; }
.about-image { margin-top: 4rem; }
.about-image .media-frame { aspect-ratio: 1.9; }

.inquiry-section { padding-block: var(--section-space); background: var(--cream); }
.inquiry-layout { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: clamp(2rem, 8vw, 9rem); align-items: start; }
.inquiry-intro h1, .inquiry-intro h2 { max-width: 10ch; margin-top: 1rem; }
.inquiry-intro p { margin-top: 1.4rem; color: var(--muted); }
.inquiry-intro .contact-details { margin-top: 2.5rem; }
.inquiry-steps { display: grid; gap: .9rem; margin-top: 2.5rem; }
.inquiry-step { display: grid; grid-template-columns: 2rem 1fr; gap: .8rem; align-items: start; }
.inquiry-step strong { color: var(--gold); font-family: var(--deku-8b5); }
.inquiry-step p { color: var(--muted); font-size: var(--text-sm); }
.inquiry-form .form-heading { margin-bottom: 1.7rem; }
.inquiry-form .form-heading h2 { font-size: var(--text-xl); }
.inquiry-form .form-heading p { margin-top: .5rem; color: var(--muted); font-size: var(--text-sm); }
.inquiry-form .button { margin-top: 1rem; }
.form-success { margin-top: 1rem; padding: 1rem; border-left: 2px solid var(--success); background: rgba(65,100,75,.08); color: var(--success); }

.legal-wrap { padding-block: clamp(8rem, 14vw, 12rem) var(--section-space); background: var(--paper); }
.legal-header { width: min(100%, var(--shell)); margin-inline: auto; padding-inline: var(--gutter); }
.legal-header h1 { max-width: 10ch; margin-top: 1rem; }
.legal-header p { max-width: 46rem; margin-top: 1.35rem; color: var(--muted); font-size: var(--text-lg); }
.legal-header .meta { display: block; margin-top: 1.5rem; }
.legal-prose { width: min(100% - (2 * var(--gutter)), var(--content-narrow)); margin: 4rem auto 0; }
.legal-prose h2 { color: var(--oxblood); font-size: var(--text-xl); }
.legal-prose h3 { font-size: var(--text-lg); }
.legal-prose p, .legal-prose li { font-size: var(--text-sm); }
.legal-prose a { color: var(--oxblood); font-weight: 600; }
.legal-callout { margin: 2rem 0; padding: 1.25rem 1.4rem; border: 1px solid var(--gold); background: var(--cream); }
.legal-callout p { color: var(--oxblood); }
.legal-source { margin-top: 3rem; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--muted); font-family: var(--deku-8b5); font-size: var(--text-xs); }

.privacy-layout { display: grid; grid-template-columns: minmax(12rem, .38fr) minmax(0, 1fr); gap: clamp(2rem, 7vw, 8rem); width: min(100% - (2 * var(--gutter)), var(--content-wide)); margin: 4rem auto 0; align-items: start; }
.privacy-index { position: sticky; top: 7rem; border-top: 1px solid var(--line); }
.privacy-index a { display: grid; grid-template-columns: 2.2rem 1fr; gap: .6rem; min-height: 3.2rem; align-items: center; padding-block: .65rem; border-bottom: 1px solid var(--line); color: var(--muted); font-family: var(--deku-8b5); font-size: var(--text-xs); text-decoration: none; transition: color var(--duration-fast) ease, padding var(--duration-fast) ease, border-color var(--duration-fast) ease; }
.privacy-index a span { color: var(--gold); }
.privacy-index a:hover { padding-left: .3rem; color: var(--oxblood); border-color: var(--gold); }
.privacy-index a:active { color: var(--ink); }
.privacy-index a:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
.privacy-reading { max-width: 52rem; }
.privacy-section { scroll-margin-top: 7rem; padding-block: 0 4rem; }
.privacy-section + .privacy-section { padding-top: 1rem; border-top: 1px solid var(--line); }
.privacy-section .section-number { display: block; margin-bottom: .8rem; color: var(--gold); font-family: var(--deku-8b5); font-size: var(--text-sm); }
.privacy-section h2 { margin-bottom: 1rem; }
.privacy-section table { width: 100%; }
.privacy-jump { display: none; }

.cookie-document { background: var(--cream); }
.date-rail-layout { display: grid; grid-template-columns: 13rem minmax(0, 1fr); gap: clamp(2rem, 8vw, 9rem); width: min(100% - (2 * var(--gutter)), var(--content-wide)); margin: 4rem auto 0; }
.date-rail { position: relative; display: grid; align-content: start; gap: 0; padding-left: 1.7rem; border-left: 1px solid var(--gold); }
.date-marker { position: relative; padding: 0 0 3rem; color: var(--muted); font-family: var(--deku-8b5); font-size: var(--text-xs); line-height: 1.5; }
.date-marker::before { position: absolute; top: .3rem; left: -2rem; width: .55rem; height: .55rem; content: ''; border: 1px solid var(--gold); border-radius: 50%; background: var(--cream); }
.date-marker strong { display: block; color: var(--oxblood); font-weight: 500; }
.date-marker time { display: block; margin-top: .25rem; }
.date-reading { max-width: 55rem; }
.date-section { position: relative; scroll-margin-top: 7rem; padding: 0 0 4rem; }
.date-section + .date-section { padding-top: 1rem; }
.date-section h2 { margin-bottom: 1rem; }
.date-section p + p { margin-top: 1rem; }
.cookie-basis { margin-top: 2rem; }
.cookie-basis table { min-width: 34rem; }
.cookie-link { color: var(--oxblood); font-weight: 600; }

.terms-document { background: var(--paper); }
.oversized-reading { width: min(100% - (2 * var(--gutter)), 66rem); margin: 4rem auto 0; }
.terms-section { position: relative; display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: clamp(1rem, 4vw, 4rem); padding-block: clamp(2.5rem, 6vw, 6rem); border-top: 1px solid var(--line); scroll-margin-top: 7rem; }
.terms-section:first-child { border-top-color: var(--gold); }
.terms-number { color: var(--gold); font-family: var(--deku-a89); font-size: clamp(5rem, 10vw, 10rem); line-height: .75; letter-spacing: -.06em; }
.terms-section h2 { max-width: 17ch; margin-bottom: 1.2rem; }
.terms-section .prose { max-width: 53ch; }
.terms-section .prose ul { margin-top: 1.1rem; }
.terms-section .prose a { color: var(--oxblood); font-weight: 600; }
.terms-section .prose a.button { color: var(--paper); }
.terms-note { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--gold); color: var(--muted); font-family: var(--deku-8b5); font-size: var(--text-xs); }

.legal-still { width: min(100% - (2 * var(--gutter)), var(--shell)); margin: 0 auto 2rem; }
.legal-still .media-frame { width: min(100%, 31rem); aspect-ratio: 1.55; }
.legal-still figcaption { max-width: 36rem; }

.data-request-layout { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: clamp(2rem, 8vw, 9rem); width: min(100% - (2 * var(--gutter)), var(--content-wide)); margin: 4rem auto 0; align-items: start; }
.data-request-intro { position: sticky; top: 7rem; }
.data-request-intro h2 { max-width: 11ch; margin-top: 1rem; }
.data-request-intro p { margin-top: 1.2rem; color: var(--muted); }
.request-types { display: grid; gap: 0; margin-top: 2rem; border-top: 1px solid var(--line); }
.request-types span { padding: .8rem 0; border-bottom: 1px solid var(--line); color: var(--oxblood); font-family: var(--deku-8b5); font-size: var(--text-xs); }
.data-request-form { width: 100%; }
.data-request-form h2 { margin-bottom: 1.5rem; }

.not-found { min-height: 70vh; display: grid; place-items: center; padding-block: 10rem; background: var(--cream); text-align: center; }
.not-found-inner { width: min(100% - 2rem, 42rem); }
.not-found h1 { font-size: var(--text-display); }
.not-found p { margin: 1.2rem auto 0; color: var(--muted); }
.not-found .button { margin-top: 2rem; }

.reveal-group > * { will-change: transform; }
.signature-line { position: relative; }
.signature-line::after { display: block; width: clamp(8rem, 18vw, 16rem); height: 1px; margin-top: 1.5rem; content: ''; background: var(--gold); transform-origin: left center; }
[data-count] { font-variant-numeric: tabular-nums; }

@media (max-width: 1000px) {
  .hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .hero-copy { padding-inline: clamp(1.5rem, 4vw, 4rem); }
  .rooms-layout, .checker-layout, .service-body-grid, .data-request-layout { gap: 2.5rem; }
  .service-row { grid-template-columns: 4rem minmax(0, 1fr) minmax(9rem, .65fr); }
  .service-row .service-link { grid-column: 2 / -1; justify-self: start; }
  .privacy-layout, .date-rail-layout { gap: 3rem; }
  .offer-seal { right: 1rem; }
}

@media (max-width: 760px) {
  .hero, .service-hero { display: flex; flex-direction: column-reverse; }
  .hero { min-height: 0; }
  .hero-media, .hero[data-page] .hero-media { min-height: 54vw; height: 68vw; max-height: 34rem; }
  .hero-copy, .hero[data-page] .hero-copy { min-height: 0; padding: 8rem var(--gutter) 4rem; }
  .hero h1 { max-width: 10ch; }
  .hero-seal { right: 1rem; bottom: 1.2rem; }
  .intro-grid, .intro-copy, .rooms-heading, .evidence-grid, .offer-layout, .contact-layout, .service-overview-heading, .anatomy-grid, .about-grid, .inquiry-layout { grid-template-columns: 1fr; gap: 2.3rem; }
  .intro-note { max-width: 24rem; }
  .rooms-heading { margin-bottom: 2rem; }
  .room-feature .media-frame { aspect-ratio: 1.35; }
  .evidence-item:nth-child(2) { margin-top: 1rem; }
  .process-heading, .evidence-heading, .archive-heading { display: grid; gap: 1.2rem; align-items: start; }
  .process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .process-item:nth-child(2) { border-right: 0; }
  .process-item:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
  .process-item p { max-width: none; }
  .fit-options, .fit-options--wide { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fit-result { grid-template-columns: 1fr; align-items: start; }
  .offer-band::before, .offer-band::after { right: -9rem; }
  .offer-seal { position: relative; grid-column: auto; justify-self: start; right: auto; bottom: auto; margin-top: 2rem; }
  .service-hero { min-height: 0; }
  .service-hero-media { min-height: 60vw; height: 68vw; max-height: 34rem; }
  .service-hero-copy { padding: 5rem var(--gutter) 4rem; }
  .service-hero-copy h1 { max-width: 12ch; }
  .service-body-aside, .data-request-intro { position: static; }
  .service-boundary { gap: 1.2rem; }
  .archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1rem; }
  .archive-card, .archive-card:nth-child(3n + 2), .archive-card:nth-child(3n + 3) { grid-column: span 1; margin-top: 0; }
  .archive-card:first-child { grid-column: 1 / -1; }
  .about-image { margin-top: 2rem; }
  .privacy-layout { display: block; margin-top: 2.5rem; }
  .privacy-index { position: static; margin-bottom: 2.5rem; border: 1px solid var(--line); }
  .privacy-index:not(.is-open) a:not(:first-child) { display: none; }
  .privacy-jump { display: flex; width: 100%; min-height: 3rem; align-items: center; justify-content: space-between; padding: .75rem 1rem; border: 0; background: var(--cream); color: var(--oxblood); font-family: var(--deku-8b5); font-size: var(--text-xs); text-align: left; }
  .privacy-jump:hover { background: var(--line); }
  .privacy-jump:active { background: var(--gold); }
  .privacy-jump:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
  .privacy-index.is-open a { display: grid; }
  .date-rail-layout { display: block; margin-top: 2.5rem; }
  .date-rail { display: flex; gap: 0; overflow-x: auto; padding: 0 0 .75rem; border: 0; border-bottom: 1px solid var(--gold); }
  .date-marker { min-width: 9rem; padding: .35rem 1rem 1rem 0; }
  .date-marker::before { top: auto; right: auto; bottom: -.32rem; left: 0; }
  .date-reading { margin-top: 2.5rem; }
  .terms-section { grid-template-columns: 4.5rem minmax(0, 1fr); gap: 1rem; }
  .terms-number { font-size: clamp(4rem, 18vw, 7rem); }
  .data-request-layout { display: block; margin-top: 2.5rem; }
  .data-request-form { margin-top: 3rem; }
}

@media (max-width: 480px) {
  .hero-copy, .hero[data-page] .hero-copy { padding-top: 7rem; }
  .hero-intro { font-size: var(--text-base); }
  .hero-action, .offer-action { width: 100%; }
  .hero-action .button, .offer-action .button { width: 100%; }
  .fit-checker { padding: 1rem; }
  .fit-options, .fit-options--wide { grid-template-columns: 1fr 1fr; }
  .fit-option label { padding-inline: .45rem; font-size: var(--text-xs); }
  .process-item { padding: 1.1rem; }
  .process-item .process-number { margin-bottom: 1.5rem; }
  .service-row { grid-template-columns: 2.4rem minmax(0, 1fr); gap: .75rem; padding-block: 1.5rem; }
  .service-row p, .service-row .service-basis { grid-column: 2; }
  .service-row .service-link { grid-column: 2; }
  .comparison-note, .service-boundary { grid-template-columns: 1fr; gap: 1rem; }
  .archive-grid { display: block; }
  .archive-card, .archive-card:first-child { margin-bottom: 2.5rem; }
  .archive-card .media-frame, .archive-card:nth-child(3n + 1) .media-frame { aspect-ratio: 1.25; }
  .legal-prose { margin-top: 2.5rem; }
  .legal-still { margin-bottom: 1rem; }
  .terms-section { grid-template-columns: 3.2rem minmax(0, 1fr); gap: .7rem; padding-block: 2.5rem; }
  .terms-number { font-size: 3.8rem; }
  .terms-section h2 { font-size: var(--text-xl); }
  .date-marker { min-width: 8rem; }
}

@media (prefers-reduced-motion: reduce) {
  .media-frame img, .fit-option label, .privacy-index a { transition: none; }
  .media-frame:hover img, .fit-option label:hover, .privacy-index a:hover { transform: none; }
}

/* Numbered-spread terms: one reading measure, with numerals hanging into the margin. */
.terms-document .oversized-reading { width: min(calc(100% - (2 * var(--gutter)), 66rem)); }
.terms-document .terms-section { display: block; padding-block: clamp(3.5rem, 8vw, 8rem); }
.terms-document .terms-number { position: absolute; top: clamp(3.1rem, 7vw, 7rem); left: clamp(-8.5rem, -10vw, -3rem); width: 8rem; font-size: clamp(5.5rem, 12vw, 11rem); line-height: .7; }
.terms-document .terms-section .prose { max-width: 60ch; margin-inline: auto; }
.terms-document .terms-section h2 { max-width: none; }
.terms-heading-number { display: inline-block; margin-right: .45rem; color: var(--gold); font-family: var(--deku-8b5); font-size: var(--text-xs); font-weight: 500; letter-spacing: .05em; vertical-align: .2em; }
@media (max-width: 760px) {
  .terms-document .oversized-reading { width: min(calc(100% - (2 * var(--gutter)), 60rem)); }
  .terms-document .terms-section { padding-block: 3.5rem; }
  .terms-document .terms-number { top: 3.35rem; left: -.25rem; width: auto; font-size: clamp(4.8rem, 22vw, 7rem); opacity: .2; }
  .terms-document .terms-section .prose { position: relative; z-index: 1; max-width: 60ch; }
}
@media (max-width: 360px) {
  .terms-document .terms-section { padding-block: 3rem; }
  .terms-document .terms-number { left: -.1rem; font-size: 4.6rem; }
}
