
/* page-specific layout */
.site-main { position: relative; }
.site-main > section:first-child { border-block-start: 0; }
.page-intro { padding-block: clamp(3.5rem, 9vw, 9rem) clamp(3rem, 6vw, 6rem); }
.page-intro__grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(12rem, 1fr); gap: var(--grid-gap); align-items: end; }
.page-intro h1 { max-width: 10ch; }
.page-intro__aside { align-self: end; padding-block-end: .5rem; }
.page-intro__aside p { max-width: 31ch; }
.page-intro__rule { margin-block-start: clamp(2rem, 5vw, 5rem); border-block-start: 2px solid var(--ink); }
.page-intro__rule span { display: block; width: min(18rem, 45%); border-block-start: 4px solid var(--signal); }

.hero { position: relative; padding-block: clamp(3.5rem, 8vw, 8rem) clamp(4rem, 9vw, 9rem); }
.hero__grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-template-rows: auto auto; gap: clamp(2rem, 5vw, 5rem) var(--grid-gap); align-items: end; }
.hero__copy { position: relative; z-index: 1; grid-column: 1; grid-row: 1; padding-block-start: clamp(1rem, 5vw, 5rem); }
.hero__copy h1 { max-width: 8.8ch; }
.hero__copy .lead { margin-block-start: clamp(1.5rem, 3vw, 2.5rem); max-width: 39ch; }
.hero__meta { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin-block-end: 1.75rem; }
.hero__meta span { display: inline-flex; align-items: center; min-height: 2rem; padding-inline-start: .75rem; border-inline-start: 2px solid var(--signal); font-family: var(--kazu-e27); font-size: .75rem; letter-spacing: .045em; text-transform: uppercase; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-block-start: clamp(1.75rem, 4vw, 3rem); }
.hero__media { grid-column: 2; grid-row: 1 / span 2; align-self: start; margin-block-start: clamp(1rem, 5vw, 5rem); }
.hero__media .photo-frame { border-block-start-color: var(--signal); }
.hero__media img { aspect-ratio: 3 / 4; }
.hero__media figcaption { max-width: 30ch; }
.hero__stamp { grid-column: 1; grid-row: 2; align-self: end; }
.hero__stamp .maker-stamp { transform: rotate(-2deg); }
.hero__stamp-note { max-width: 28ch; margin-inline-start: 1rem; color: var(--muted); font-size: .875rem; }
.hero__baseline { position: absolute; inset-inline: 0; inset-block-end: 2rem; border-block-end: 1px solid var(--rule); pointer-events: none; }
.hero__baseline span { display: block; width: 16%; border-block-end: 2px solid var(--signal); }

.home-materials { padding-block: var(--section-space); }
.home-materials__media img { aspect-ratio: 4 / 5; object-fit: cover; }
.home-materials__copy { padding-block-start: clamp(0rem, 3vw, 3rem); }
.home-materials__copy h2 { max-width: 11ch; }
.home-materials__copy .lead { margin-block-start: 1.5rem; }
.home-materials__copy .prose { margin-block-start: 2rem; }
.home-materials__table { margin-block-start: clamp(2rem, 4vw, 4rem); }
.home-materials__quote { margin-block-start: 2.5rem; padding: 1.5rem 0 1.5rem 1.25rem; border-inline-start: 4px solid var(--signal); font-family: var(--kazu-e9e); font-size: clamp(1.75rem, 3vw, 3rem); line-height: 1.02; max-width: 15ch; }

.ledger-section { padding-block: var(--section-space); }
.ledger-section__heading { display: flex; justify-content: space-between; align-items: end; gap: var(--grid-gap); margin-block-end: clamp(2rem, 4vw, 4rem); }
.ledger-section__heading h2 { max-width: 10ch; }
.ledger-section__heading p { max-width: 34ch; color: var(--steel); }
.ledger-section .work-ledger__row { border-color: var(--muted); }
.ledger-section .work-ledger__detail { color: var(--steel); }
.ledger-section .work-ledger__basis { color: var(--steel); }
.ledger-section .work-ledger__row:hover .work-ledger__detail, .ledger-section .work-ledger__row:hover .work-ledger__basis { color: var(--ink); }

.scope-section { padding-block: var(--section-space); }
.scope-section__copy { max-width: 70ch; }
.scope-section__copy h2 { max-width: 13ch; }
.scope-section__copy .lead { margin-block-start: 1.5rem; }
.scope-section__copy .prose { margin-block-start: 2rem; }
.scope-section__note { padding-block-start: clamp(1rem, 4vw, 4rem); }
.scope-section__note .scope-note { min-height: 12rem; }
.scope-section__note .meta { color: var(--muted); }

.action-band { position: relative; z-index: 0; isolation: isolate; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--grid-gap); align-items: end; padding-block: clamp(3rem, 7vw, 7rem); }
.action-band h2 { max-width: 10ch; font-size: clamp(3.25rem, 7vw, 8rem); }
.action-band__side { padding-block-end: .5rem; }
.action-band__side p { max-width: 31ch; }
.action-band__side .button { margin-block-start: 1.5rem; }
.action-band .maker-stamp { margin-block-start: 2.5rem; border-color: var(--ink); }

.services-intro { padding-block: clamp(3.5rem, 8vw, 8rem) clamp(2rem, 4vw, 4rem); }
.services-intro h1 { max-width: 9ch; }
.services-intro__lower { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--grid-gap); align-items: end; margin-block-start: clamp(2.5rem, 6vw, 6rem); }
.services-intro__lower p { max-width: 47ch; }
.services-index { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--grid-gap); border-block-start: 2px solid var(--ink); }
.services-index a { display: flex; align-items: baseline; gap: .75rem; min-height: 3.25rem; padding: .875rem 0; border-block-end: 1px solid var(--rule); text-decoration: none; font-family: var(--kazu-e27); font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; }
.services-index a span:first-child { color: var(--signal); }
.services-index a:hover { padding-inline: .75rem; box-shadow: inset 4px 0 var(--signal); }

.catalogue { padding-block: var(--section-space); }
.catalogue-item { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--grid-gap); padding-block: clamp(3rem, 6vw, 6rem); border-block-start: 1px solid var(--rule); scroll-margin-block-start: calc(var(--header-height) + 1rem); }
.catalogue-item:nth-child(even) { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.catalogue-item:nth-child(even) .catalogue-item__media { grid-column: 2; grid-row: 1; }
.catalogue-item:nth-child(even) .catalogue-item__copy { grid-column: 1; grid-row: 1; }
.catalogue-item__media img { aspect-ratio: 3 / 2; object-fit: cover; }
.catalogue-item__copy { padding-block-start: .25rem; }
.catalogue-item__number { display: block; margin-block-end: 1.25rem; color: var(--signal); font-family: var(--kazu-e27); font-size: .8125rem; }
.catalogue-item h2 { max-width: 12ch; }
.catalogue-item__detail { margin-block-start: 1.25rem; max-width: 48ch; font-size: var(--text-lead); line-height: 1.35; }
.catalogue-item__copy .prose { margin-block-start: 1.5rem; }
.catalogue-item__facts { margin-block-start: 2rem; }
.catalogue-item__facts .spec-table th { width: 38%; }
.catalogue-item__question { margin-block-start: 1.5rem; padding: 1rem 1rem 1rem 1.25rem; border-inline-start: 2px solid var(--signal); background: var(--steel); }
.catalogue-item__question strong { display: block; margin-block-end: .375rem; font-family: var(--kazu-e27); font-size: .75rem; letter-spacing: .04em; text-transform: uppercase; }
.catalogue-faq { position: relative; z-index: 1; isolation: isolate; padding-block: var(--section-space); }
.catalogue-faq__heading { max-width: 35ch; }

.method-hero { padding-block: clamp(3.5rem, 8vw, 8rem); }
.method-hero__grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--grid-gap); align-items: end; }
.method-hero h1 { max-width: 40ch; }
.terms-hero h1 { max-width: 40ch; }
.method-hero__copy { padding-block-start: 2rem; }
.method-hero__copy .lead { margin-block-start: 1.5rem; }
.method-hero__media img { aspect-ratio: 3 / 4; object-fit: cover; }
.method-steps { padding-block: var(--section-space); }
.method-step { display: grid; grid-template-columns: minmax(5rem, 1fr) minmax(0, 2fr); gap: var(--grid-gap); padding-block: clamp(2.5rem, 5vw, 5rem); border-block-start: 1px solid var(--rule); }
.method-step__number { font-family: var(--kazu-e9e); font-size: clamp(4rem, 9vw, 10rem); color: var(--signal); line-height: .8; }
.method-step h2 { max-width: 13ch; }
.method-step__body { margin-block-start: 1.5rem; max-width: 65ch; }
.method-boundary { padding-block: var(--section-space); }
.method-boundary__panel { border-block-start: 2px solid var(--ink); border-block-end: 2px solid var(--ink); padding-block: clamp(2rem, 4vw, 4rem); }
.method-boundary__panel h2 { max-width: 11ch; }
.method-boundary__panel .prose { margin-block-start: 1.5rem; }
.method-stamp-line { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; margin-block-start: 3rem; }

.contact-hero { padding-block: clamp(3.5rem, 8vw, 8rem) clamp(2.5rem, 5vw, 5rem); }
.contact-hero h1 { max-width: 9ch; }
.contact-hero__lower { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--grid-gap); align-items: end; margin-block-start: 2rem; }
.contact-hero__lower p { max-width: 44ch; }
.contact-layout__aside h2, .contact-layout__aside .stack > h2 { max-width: none; min-width: 0; }
.contact-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); padding-block: var(--section-space); border-block-start: 1px solid var(--rule); }
.contact-layout__form { min-width: 0; }
.contact-layout__aside { min-width: 0; padding-block-start: clamp(0rem, 4vw, 4rem); }
.contact-layout__aside .photo-frame img { aspect-ratio: 3 / 4; }
.contact-layout__aside .scope-note { margin-block-start: 2rem; }
.contact-details { display: grid; gap: 1.5rem; margin-block-start: 2rem; border-block-start: 2px solid var(--ink); }
.contact-details__row { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: 1rem; padding-block: 1rem; border-block-end: 1px solid var(--rule); }
.contact-details__row dt { font-family: var(--kazu-e27); font-size: .6875rem; text-transform: uppercase; letter-spacing: .04em; }
.contact-details__row dd { min-width: 0; overflow-wrap: anywhere; }
.contact-details__row a { min-width: 0; max-width: 100%; }

.legal-hero { padding-block: clamp(3rem, 7vw, 7rem) clamp(2rem, 4vw, 4rem); }
.legal-hero h1 { max-width: 8ch; }
.legal-hero p { max-width: 45ch; margin-block-start: 1.5rem; }
.legal-oversized { padding-block: 0 var(--section-space); }
.legal-oversized__section { position: relative; display: grid; grid-template-columns: minmax(6rem, 1fr) minmax(0, 3fr); gap: var(--grid-gap); padding-block: clamp(3rem, 6vw, 6rem); border-block-start: 1px solid var(--rule); }
.legal-oversized__number { align-self: start; font-family: var(--kazu-e9e); font-size: clamp(5rem, 13vw, 13rem); font-weight: 700; line-height: .72; letter-spacing: -.04em; color: var(--signal); }
.legal-oversized__content { max-width: var(--reading-width); padding-block-start: .5rem; }
.legal-oversized__content h2 { max-width: 15ch; }
.legal-oversized__content .prose { margin-block-start: 1.5rem; }
.legal-oversized__content .legal-callout { margin-block-start: 2rem; }
.legal-callout { padding: 1.25rem 1.5rem; border-inline-start: 4px solid var(--signal); background: var(--steel); }
.legal-callout h3 { font-size: var(--text-h4); }
.legal-callout p { margin-block-start: .75rem; }
.data-request { margin-block-start: 2rem; padding-block-start: 1.5rem; border-block-start: 2px solid var(--ink); }
.data-request h3 { font-size: var(--text-h4); }
.data-request .button { margin-block-start: 1.25rem; }

.cookie-page { padding-block-end: var(--section-space); }
.cookie-hero { padding-block: clamp(3rem, 7vw, 7rem) clamp(2rem, 4vw, 4rem); }
.cookie-hero h1 { max-width: 9ch; }
.cookie-reading { display: grid; grid-template-columns: minmax(10rem, 1fr) minmax(0, 2.25fr); gap: var(--grid-gap); align-items: start; }
.cookie-index { position: sticky; inset-block-start: calc(var(--header-height) + 1rem); border-block-start: 2px solid var(--ink); }
.cookie-index__label { display: block; padding-block: .75rem; font-family: var(--kazu-e27); font-size: .6875rem; letter-spacing: .05em; text-transform: uppercase; }
.cookie-index__select { display: none; width: 100%; min-height: 2.75rem; padding: .625rem; border: 1px solid var(--ink); background: var(--paper); }
.cookie-index__list { list-style: none; padding: 0; margin: 0; }
.cookie-index__list li { margin: 0; border-block-end: 1px solid var(--rule); }
.cookie-index__list a { display: flex; gap: .75rem; min-height: 2.75rem; padding: .75rem .5rem; text-decoration: none; font-size: .9375rem; line-height: 1.3; }
.cookie-index__list a span { font-family: var(--kazu-e27); font-size: .6875rem; color: var(--signal); }
.cookie-index__list a:hover, .cookie-index__list a.is-active { background: var(--ink); color: var(--paper); box-shadow: inset 3px 0 var(--signal); }
.cookie-sections { min-width: 0; }
.cookie-section { padding-block: 0 clamp(3.5rem, 7vw, 7rem); scroll-margin-block-start: calc(var(--header-height) + 1rem); }
.cookie-section + .cookie-section { padding-block-start: clamp(3.5rem, 7vw, 7rem); border-block-start: 1px solid var(--rule); }
.cookie-section__number { display: block; margin-block-end: .75rem; color: var(--signal); font-family: var(--kazu-e27); font-size: .75rem; letter-spacing: .05em; text-transform: uppercase; }
.cookie-section h2 { max-width: 15ch; }
.cookie-section .prose { margin-block-start: 1.5rem; }
.cookie-section .legal-table { min-width: 42rem; margin-block-start: 2rem; }
.consent-settings { margin-block-start: 2rem; padding: 1.5rem; border: 2px solid var(--ink); border-inline-start: 5px solid var(--signal); }
.consent-settings h3 { font-size: var(--text-h4); }
.consent-settings p { margin-block-start: .75rem; }
.consent-settings button { margin-block-start: 1rem; }

.terms-page { padding-block-end: var(--section-space); }
.terms-hero { padding-block: clamp(3rem, 7vw, 7rem) clamp(2rem, 4vw, 4rem); }
.terms-hero h1 { max-width: 18ch; }
.terms-at-a-glance { padding-block: 0 var(--section-space); }
.at-a-glance { width: 100%; min-width: 42rem; border-collapse: collapse; border-block-start: 2px solid var(--ink); border-block-end: 2px solid var(--ink); }
.at-a-glance__item { border-block-end: 1px solid var(--rule); }
.at-a-glance__item:last-child { border-block-end: 0; }
.at-a-glance th, .at-a-glance td { padding: 1.25rem .75rem 1.25rem 0; text-align: start; vertical-align: top; }
.at-a-glance th { width: 30%; padding-inline-end: 1.5rem; font-family: var(--kazu-e27); font-size: .6875rem; line-height: 1.5; font-weight: 400; text-transform: uppercase; letter-spacing: .04em; }
.at-a-glance td { width: 70%; }
.at-a-glance a { font-weight: 600; }
.at-a-glance-scroll { margin-block-start: 0; }
.terms-reading { padding-block: var(--section-space) 0; border-block-start: 1px solid var(--rule); }
.terms-reading__heading { margin-block-end: clamp(2rem, 5vw, 5rem); }
.terms-reading__heading h2 { max-width: 10ch; }
.terms-reading .prose { max-width: var(--reading-width); }
.warranty { margin-block-start: var(--space-11); padding-block-start: 2rem; border-block-start: 4px solid var(--signal); scroll-margin-block-start: calc(var(--header-height) + 1rem); }
.warranty h2 { max-width: 10ch; }
.warranty__route { margin-block-start: 2rem; padding: 1.5rem; background: var(--steel); }
.warranty__route a { display: inline-flex; margin-block-start: .75rem; min-height: 2.75rem; padding: .625rem .25rem; font-weight: 600; }

.not-found { min-height: min(70vh, 48rem); display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--grid-gap); align-items: center; padding-block: var(--section-space); }
.not-found h1 { font-size: clamp(5rem, 17vw, 17rem); color: var(--signal); line-height: .75; }
.not-found__copy h2 { max-width: 10ch; }
.not-found__copy p { max-width: 35ch; margin-block-start: 1rem; }
.not-found__copy .button { margin-block-start: 1.5rem; }

@media (max-width: 1099px) {
  .hero__media { margin-block-start: 2rem; }
  .cookie-index { inset-block-start: calc(var(--header-height) + .5rem); }
}
@media (max-width: 767px) {
  .page-intro__grid, .hero__grid, .services-intro__lower, .action-band, .method-hero__grid, .contact-hero__lower, .contact-layout, .cookie-reading, .not-found { grid-template-columns: minmax(0, 1fr); }
  .page-intro h1, .hero__copy h1, .services-intro h1, .method-hero h1, .contact-hero h1, .legal-hero h1, .cookie-hero h1, .terms-hero h1 { max-width: 11ch; }
  .hero__copy { grid-column: 1; grid-row: 1; padding-block-start: 0; }
  .hero__media { grid-column: 1; grid-row: 2; margin-block-start: 0; }
  .hero__media img { aspect-ratio: 3 / 2; }
  .hero__stamp { grid-column: 1; grid-row: 3; }
  .hero__baseline { display: none; }
  .home-materials .split, .catalogue-item, .catalogue-item:nth-child(even) { grid-template-columns: minmax(0, 1fr); }
  .home-materials__media { order: 2; }
  .home-materials__copy { order: 1; }
  .ledger-section__heading { display: block; }
  .ledger-section__heading p { margin-block-start: 1.25rem; }
  .services-index { grid-template-columns: minmax(0, 1fr); }
  .catalogue-item:nth-child(even) .catalogue-item__media, .catalogue-item:nth-child(even) .catalogue-item__copy { grid-column: 1; grid-row: auto; }
  .catalogue-item:nth-child(even) .catalogue-item__media { order: 2; }
  .catalogue-item:nth-child(even) .catalogue-item__copy { order: 1; }
  .method-step { grid-template-columns: 4rem minmax(0, 1fr); gap: 1.25rem; }
  .method-step__number { font-size: clamp(3.5rem, 16vw, 6rem); }
  .contact-layout__aside { order: -1; }
  .legal-oversized__section { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .legal-oversized__number { font-size: clamp(4.5rem, 20vw, 8rem); }
  .cookie-index { position: static; border-block-end: 2px solid var(--ink); padding-block-end: 1rem; }
  .cookie-index__list { display: none; }
  .cookie-index__select { display: block; }
  .cookie-section { padding-block-start: 3rem; }
  .at-a-glance { grid-template-columns: minmax(0, 1fr); }
  .at-a-glance__item, .at-a-glance__item:nth-child(odd), .at-a-glance__item:nth-child(even) { grid-template-columns: minmax(7rem, .8fr) minmax(0, 1.2fr); padding-inline: 0; border-inline-end: 0; }
  .at-a-glance__item:nth-last-child(-n + 2) { border-block-end: 1px solid var(--rule); }
  .at-a-glance__item:last-child { border-block-end: 0; }
  .not-found { min-height: 55vh; }
}
@media (max-width: 414px) {
  .hero__actions .button, .action-band__side .button { width: 100%; }
  .hero__stamp-note { margin-inline-start: 0; margin-block-start: 1rem; }
  .catalogue-item__facts .spec-table th, .catalogue-item__facts .spec-table td { display: block; width: 100%; padding-block: .5rem; }
  .catalogue-item__facts .spec-table th { padding-block-end: .125rem; border-block-end: 0; }
  .catalogue-item__facts .spec-table td { padding-block-start: .125rem; }
  .contact-details__row { grid-template-columns: minmax(0, 1fr); gap: .25rem; }
  .method-step { grid-template-columns: minmax(0, 1fr); }
  .method-step__number { line-height: .7; }
  .at-a-glance__item, .at-a-glance__item:nth-child(odd), .at-a-glance__item:nth-child(even) { grid-template-columns: minmax(0, 1fr); gap: .25rem; }
}
@media (prefers-reduced-motion: reduce) {
  .hero__stamp .maker-stamp { transform: none; }
}
@media print {
  .hero, .page-intro, .method-hero, .contact-hero, .legal-hero, .cookie-hero, .terms-hero { padding-block: 2rem; }
  .hero__baseline, .cookie-index { display: none; }
  .catalogue-item, .legal-oversized__section, .cookie-section { break-inside: avoid; }
  .cookie-reading { display: block; }
}


/* Assigned legal architectures */
.numbered-headings .legal-oversized__section { grid-template-columns: minmax(8rem, 1fr) minmax(0, var(--reading-width)); }
.numbered-headings .legal-oversized__number { margin-inline-start: clamp(-2.5rem, -4vw, -1rem); }
.numbered-headings .legal-oversized__content h2::before { content: ''; display: block; width: 3rem; border-block-start: 3px solid var(--signal); margin-block-end: .75rem; }
.side-column { grid-template-columns: minmax(11rem, 1fr) minmax(0, 2.25fr); }
.side-column .cookie-index { align-self: start; }
.summary-first { position: relative; }
.summary-first .at-a-glance-scroll { padding: 1.25rem; border: 2px solid var(--ink); border-inline-start: 5px solid var(--signal); background: var(--white); }
.summary-first .at-a-glance { border-block-start: 0; border-block-end: 0; }
.summary-first .section-heading { margin-block-end: 1.5rem; }
.glance-title { max-width: 17ch; font-family: var(--kazu-e9e); font-size: var(--text-h2); font-weight: 600; line-height: var(--leading-heading); letter-spacing: var(--tracking-heading); }
@media (max-width: 767px) {
  .numbered-headings .legal-oversized__section { grid-template-columns: minmax(0, 1fr); }
  .numbered-headings .legal-oversized__number { margin-inline-start: 0; }
  .side-column { grid-template-columns: minmax(0, 1fr); }
  .summary-first .at-a-glance-scroll { padding: .75rem; }
}
@media (max-width: 359px) {
  .summary-first .at-a-glance-scroll { padding-inline: .5rem; }
}

.numbered-headings .legal-oversized__number { display: inline-block; margin: 0 .35em 0 0; font-size: .72em; line-height: .8; vertical-align: -.08em; }
.numbered-headings .legal-oversized__content h2::before { display: none; }
