main { position: relative; overflow: clip; }

.scene { position: relative; min-height: min(100svh, 980px); display: flex; align-items: center; padding-block: var(--scene-space); }
.scene > .shell { width: min(100% - (var(--gutter) * 2), var(--shell)); }
.scene--short { min-height: auto; }
.scene--white { background: var(--white); }
.scene--paper { background: var(--paper); }
.scene--mist { background: var(--mist); }
.scene--dark { color: var(--white); background: var(--night); }
.scene--dark a:not(.button) { color: var(--white); }
.scene--dark .button:not(.button--dark):not(.button--outline), .about-decline .button:not(.button--dark):not(.button--outline) { color: var(--ink); }
.scene--dark .eyebrow, .scene--dark .mono { color: #bdcbd0; }
.scene--dark .scene-index, .boundary-scene .scene-index { color: var(--ice); }
.scene--dark .rule { background: #40515e; }
.scene__head { display: grid; grid-template-columns: minmax(180px, .55fr) minmax(0, 1.45fr); gap: clamp(1.5rem, 6vw, 8rem); align-items: end; margin-bottom: clamp(2.5rem, 6vw, 6rem); }
.scene__head:has(> .flow) { grid-template-columns: minmax(0, 1fr); }
.scene__head:has(> .flow) > .flow { min-width: 0; }
.scene__head h2 { max-width: 12ch; }
.scene__head p { max-width: 54ch; color: var(--slate); }
.scene--dark .scene__head p { color: #c5d0d4; }
.scene__head--wide { grid-template-columns: minmax(0, 1fr); }
.scene__head--wide h2 { max-width: 18ch; }
.scene-index { position: relative; z-index: 3; display: flex; align-items: center; gap: .75rem; margin-bottom: .8rem; color: var(--ice-deep); font-family: var(--mono); font-size: var(--step--2); letter-spacing: .1em; text-transform: uppercase; }
.scene-index::after { content: ''; width: 4rem; height: 1px; background: currentColor; }

.hero { position: relative; min-height: max(680px, 100svh); display: flex; align-items: end; isolation: isolate; color: var(--white); background: var(--night); overflow: hidden; }
.hero__image, .hero__wash, .hero__grid, .hero__content { position: absolute; inset: 0; }
.hero__image { z-index: -3; }
.hero__image img { width: 100%; height: 100%; object-fit: cover; object-position: 58% 50%; }
.hero__wash { z-index: -2; background: linear-gradient(90deg, rgba(16,26,34,.96) 0%, rgba(16,26,34,.88) 55%, rgba(16,26,34,.65) 100%); }
.hero__grid { z-index: -1; opacity: .25; background-image: linear-gradient(rgba(255,255,255,.2) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.2) 1px, transparent 1px); background-size: 7rem 7rem; mask-image: linear-gradient(90deg, black, transparent 72%); }
.hero__content { position: relative; inset: auto; width: min(100% - (var(--gutter) * 2), var(--shell)); margin-inline: auto; padding-block: clamp(8rem, 20vh, 13rem) clamp(4rem, 10vh, 9rem); }
.hero h1 { position: relative; z-index: 2; max-width: 9ch; color: var(--white); font-size: clamp(3.35rem, 9.5vw, 10rem); line-height: .88; letter-spacing: -.075em; }
.hero > .hero__content > .eyebrow { position: relative; z-index: 3; margin-bottom: 1.25rem; color: #dbe8e9; }
.hero h1 em { display: inline-block; color: var(--ice); font-style: normal; }
.hero__content > h1, .hero__content > .hero__lead, .hero__content > .eyebrow { background: rgba(16,26,34,.88); box-shadow: 0 0 0 .35rem rgba(16,26,34,.88); }
.hero__lead { max-width: 37rem; margin-top: clamp(1.5rem, 3vw, 2.5rem); color: #e4edef; font-size: clamp(1.1rem, 1.5vw, 1.45rem); line-height: 1.35; }
.hero__actions { display: flex; flex-wrap: wrap; gap: .8rem 1rem; margin-top: 2rem; }
.hero__actions .button--outline { color: var(--white); border-color: rgba(255,255,255,.7); }
.hero__actions .button--outline:hover { color: var(--ink); border-color: var(--white); }
.hero__caption { position: absolute; right: var(--gutter); bottom: 2rem; max-width: 18rem; padding: .8rem 1rem; color: #e8eff1; background: rgba(16,26,34,.72); border-left: 2px solid var(--ice); backdrop-filter: blur(6px); font-family: var(--mono); font-size: .7rem; line-height: 1.5; }
.hero__caption strong { display: block; color: var(--ice); font-weight: 500; }
.hero__marker { position: absolute; z-index: -1; top: 36%; right: 12%; width: clamp(4rem, 12vw, 11rem); height: 1px; background: var(--ice); transform: rotate(-18deg); transform-origin: left; opacity: .9; }
.hero__marker::after { content: ''; position: absolute; right: 0; top: -.22rem; width: .45rem; height: .45rem; border-radius: 50%; background: var(--ice); }

.question-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); gap: clamp(2.5rem, 8vw, 9rem); align-items: center; }
.plate { position: relative; min-height: clamp(360px, 48vw, 600px); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem .75rem; align-content: center; align-items: start; }
.plate > figure, .plate > picture, .plate > figcaption { grid-column: 1 / -1; }
.plate > figure { margin-bottom: 1rem; }
.plate > picture, .plate figure > picture, .inquiry-photo > picture { display: block; overflow: hidden; }
.inquiry-photo > figcaption { position: relative; padding-top: .8rem; background: var(--white); }
.plate figure { position: relative; width: min(100%, 590px); margin: 0; padding: clamp(.8rem, 2vw, 1.5rem); background: var(--white); box-shadow: var(--shadow-soft); transform: rotate(-2deg); }
.plate figure::before { content: ''; position: absolute; z-index: -1; inset: 1.2rem -1.1rem -1rem 1.1rem; border: 1px solid var(--steel); background: var(--paper); transform: rotate(4deg); }
.plate img { width: 100%; aspect-ratio: 1.5; object-fit: cover; }
.plate figcaption { position: relative; z-index: 3; padding: .75rem .15rem .15rem; color: var(--slate); background: var(--white); font-family: var(--mono); font-size: .68rem; letter-spacing: .03em; }
.annotation { position: relative; z-index: 2; display: grid; gap: .2rem; min-width: 0; color: var(--slate); font-family: var(--mono); font-size: .66rem; line-height: 1.35; letter-spacing: .03em; text-transform: uppercase; }
.annotation::before { content: ''; display: block; width: 100%; height: 1px; background: var(--ice-deep); transform-origin: left; }
.annotation strong { color: var(--ink); font-family: var(--display); font-size: .78rem; letter-spacing: 0; text-transform: none; }
.annotation--one { transform: rotate(-8deg); }
.annotation--two { transform: rotate(7deg); }
.annotation--three { transform: rotate(-3deg); }
.annotation--two::before { transform-origin: right; }
.question-copy h2 { max-width: 9ch; }
.question-copy > .scene-index + h2 { margin-top: 1.5rem; }
.cookie-section__body > .kicker + h2 { margin-top: 1.5rem; }
.legal-hero .eyebrow { display: block; margin-bottom: 1.5rem; }
.question-copy p { margin-top: 1.5rem; color: var(--slate); }
.question-copy .text-link { margin-top: 1.5rem; }

.routes-scene { padding-block: var(--scene-space); }
.routes-list { display: grid; gap: clamp(4rem, 10vw, 10rem); }
.route-feature { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(2rem, 7vw, 8rem); align-items: center; }
.route-feature:nth-child(even) { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
.route-feature:nth-child(even) .route-feature__image { order: -1; }
.route-feature__image { overflow: hidden; background: var(--mist); }
.route-feature__image img { width: 100%; aspect-ratio: 1.5; object-fit: cover; transition: transform var(--duration-slow) var(--ease-out); }
.route-feature:hover .route-feature__image img { transform: scale(1.03); }
.route-feature__copy h3 { max-width: 12ch; font-size: clamp(2rem, 4.2vw, 4.2rem); }
.route-feature__copy > p { margin-top: 1.15rem; color: var(--slate); }
.route-feature__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 2rem 0; padding-top: 1rem; border-top: 1px solid var(--steel); }
.route-feature__facts dt { color: var(--slate); font-family: var(--mono); font-size: .68rem; letter-spacing: .07em; text-transform: uppercase; }
.route-feature__facts dd { margin: .35rem 0 0; font-size: .95rem; }
.route-feature__link { margin-top: .6rem; }

.scope-scene { color: var(--ink); background: var(--mist); }
.scope-layout { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: clamp(2rem, 7vw, 8rem); align-items: start; }
.scope-intro { position: sticky; top: 7rem; }
.scope-intro h2 { max-width: 9ch; }
.scope-intro > p { margin-top: 1.25rem; color: var(--slate); }
.scope-intro .mono { display: block; margin-top: 2rem; }
.scope-form { padding: clamp(1.25rem, 3.5vw, 3rem); background: var(--white); border: 1px solid var(--steel); box-shadow: 0 20px 50px rgba(64,81,94,.08); }
.scope-form fieldset + fieldset { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--steel); }
.scope-form legend { margin-bottom: .8rem; color: var(--ink); font-family: var(--display); font-size: var(--fefe-b1b); font-weight: 600; }
.scope-form legend span { display: block; margin-top: .35rem; color: var(--slate); font-family: var(--body); font-size: .9rem; font-weight: 400; }

.scope-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; }
.scope-option { position: relative; min-width: 0; }
.scope-option input { position: absolute; opacity: 0; }
.scope-option label { display: flex; min-height: 76px; align-items: center; padding: .85rem; color: var(--slate); border: 1px solid var(--line-strong); background: var(--paper); font-family: var(--display); font-size: .9rem; font-weight: 600; line-height: 1.2; cursor: pointer; transition: background-color var(--duration-fast), border-color var(--duration-fast), color var(--duration-fast), box-shadow var(--duration-fast), transform var(--duration-fast); }
.scope-option label:hover { color: var(--ink); background: var(--ice-pale); border-color: var(--ice-deep); transform: translateY(-1px); }
.scope-option label:active { background: var(--ice); border-color: var(--ice-deep); transform: translateY(0); }
.scope-option input:checked + label { color: var(--ink); background: var(--ice-pale); border-color: var(--ice-deep); box-shadow: inset 0 -3px 0 var(--ice-deep); }
.scope-option input:focus-visible + label { outline: 3px solid var(--ice-deep); outline-offset: 3px; }
.scope-select { display: grid; gap: .4rem; }
.scope-select label { color: var(--ink); font-family: var(--display); font-size: .9rem; font-weight: 600; }
.scope-select select, .scope-quantity input { width: 100%; min-height: 48px; padding: .7rem .8rem; color: var(--ink); background: var(--paper); border: 1px solid var(--line-strong); border-radius: var(--radius); }
.scope-select select:hover, .scope-quantity input:hover { background: var(--white); border-color: var(--slate); }
.scope-select select:active, .scope-quantity input:active { border-color: var(--ice-deep); }
.scope-select select:focus-visible, .scope-quantity input:focus-visible { outline: 3px solid var(--ice-pale); border-color: var(--ice-deep); }
.scope-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(100px, .38fr); gap: 1rem; }
.scope-result { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 1rem; margin-top: 2rem; padding: 1.25rem; color: var(--ink); background: var(--ice-pale); border-left: 4px solid var(--ice-deep); }
.scope-result__band { font-family: var(--display); font-size: var(--fefe-b1b); font-weight: 600; }
.scope-result__text { color: var(--slate); }
.scope-result__text strong { color: var(--ink); }
.scope-disclaimer { margin-top: 1rem; color: var(--slate); font-family: var(--mono); font-size: .7rem; }

.boundary-scene { position: relative; isolation: isolate; min-height: min(90svh, 860px); color: var(--white); background: var(--night); overflow: hidden; }
.boundary-scene__image { position: absolute; z-index: -2; inset: 0; }
.boundary-scene__image img { width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: .62; }
.boundary-scene::after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(16,26,34,.97), rgba(16,26,34,.72) 52%, rgba(16,26,34,.38)); }
.boundary-inner { min-height: min(90svh, 860px); display: flex; align-items: center; }
.boundary-copy { max-width: 44rem; }
.boundary-copy h2 { max-width: 10ch; color: var(--white); }
.boundary-copy > p { margin-top: 1.6rem; color: #d4dfe1; font-size: var(--fefe-b1b); }
.boundary-list { display: grid; gap: 0; margin-top: 2.2rem; border-top: 1px solid #5d6f76; }
.boundary-list li { display: flex; gap: .8rem; align-items: baseline; padding: .9rem 0; border-bottom: 1px solid #5d6f76; list-style: none; }
.boundary-list .icon { color: var(--ice); }

.inquiry-scene { background: var(--paper); }
.inquiry-layout { display: grid; grid-template-columns: minmax(240px, .78fr) minmax(0, 1.22fr); gap: clamp(2rem, 7vw, 8rem); align-items: start; }
.inquiry-aside { position: sticky; top: 7rem; }
.inquiry-aside h2 { max-width: 8ch; }
.inquiry-aside > p { margin-top: 1.25rem; color: var(--slate); }
.inquiry-photo { margin-top: 2.5rem; overflow: hidden; }
.inquiry-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.inquiry-aside .contact-facts { margin-top: 2rem; }
.contact-facts { display: grid; gap: .7rem; padding-top: 1rem; border-top: 1px solid var(--steel); }
.contact-facts a { display: inline-flex; min-height: 44px; align-items: center; gap: .6rem; color: var(--ink); text-decoration: none; }
.contact-facts a:hover { color: var(--ice-deep); }
.contact-facts a:active { color: var(--slate); }
.contact-facts a:focus-visible { outline: 3px solid var(--ice-deep); outline-offset: 3px; }
.inquiry-form .form-heading { margin-bottom: 1.5rem; }
.inquiry-form .form-heading h3 { font-size: var(--fefe-e29); }
.inquiry-form .form-heading p { margin-top: .5rem; color: var(--slate); }

.page-intro { padding: clamp(10rem, 18vw, 16rem) 0 clamp(5rem, 10vw, 9rem); background: var(--paper); }
.page-intro__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(220px, .8fr); gap: 3rem; align-items: end; }
.page-intro h1 { max-width: 10ch; font-size: clamp(3rem, 7vw, 7rem); }
.page-intro__lead { max-width: 36rem; color: var(--slate); font-size: var(--fefe-b1b); }
.page-intro__meta { margin-top: 1.3rem; }
.page-intro--dark { color: var(--white); background: var(--night); }
.page-intro--dark .page-intro__lead, .page-intro--dark .mono { color: #c5d0d4; }
.page-intro--dark h1 { color: var(--white); }

.services-intro { padding-bottom: 0; }
.service-index { padding-block: var(--scene-space); background: var(--white); }
.service-index__row { display: grid; grid-template-columns: minmax(80px, .2fr) minmax(200px, .6fr) minmax(0, 1.1fr) minmax(150px, .6fr); gap: clamp(1rem, 3vw, 3rem); align-items: start; padding: clamp(1.5rem, 4vw, 3rem) 0; border-top: 1px solid var(--steel); }
.service-index__row:last-child { border-bottom: 1px solid var(--steel); }
.service-index__number { color: var(--ice-deep); font-family: var(--mono); font-size: .8rem; }
.service-index__row h2 { font-size: var(--fefe-e29); }
.service-index__row p { color: var(--slate); }
.service-index__aside { color: var(--slate); font-family: var(--mono); font-size: .72rem; line-height: 1.55; }
.service-index__aside strong { display: block; margin-bottom: .4rem; color: var(--ink); font-family: var(--display); font-size: .9rem; }
.service-index__link { margin-top: 1rem; }
.service-boundaries { padding-block: var(--scene-space); }
.boundary-table { width: 100%; border-collapse: collapse; }
.boundary-table th, .boundary-table td { padding: 1.15rem 1rem; border-bottom: 1px solid var(--steel); text-align: left; vertical-align: top; }
.boundary-table th { width: 23%; color: var(--slate); font-family: var(--mono); font-size: .72rem; font-weight: 400; letter-spacing: .06em; text-transform: uppercase; }
.boundary-table td { color: var(--ink); }

.service-hero { padding-top: clamp(9rem, 16vw, 14rem); padding-bottom: var(--scene-space); background: var(--paper); }
.service-hero__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 8vw, 9rem); align-items: center; }
.service-hero h1 { max-width: 9ch; font-size: clamp(3.1rem, 7vw, 7.2rem); }
.service-hero__copy > p { margin-top: 1.5rem; color: var(--slate); font-size: var(--fefe-b1b); }
.service-hero__copy > .eyebrow { margin-top: 0; margin-bottom: 1rem; color: var(--slate); }
.service-hero__copy .button { margin-top: 1.8rem; }
.service-hero__image { position: relative; }
.service-hero__image::before { content: ''; position: absolute; inset: 1rem -1rem -1rem 1rem; border: 1px solid var(--ice-deep); }
.service-hero__image img { position: relative; width: 100%; aspect-ratio: 1.5; object-fit: cover; }
.service-detail { padding-block: var(--scene-space); background: var(--white); }
.service-detail__grid { display: grid; grid-template-columns: minmax(0, .65fr) minmax(0, 1.35fr); gap: clamp(2rem, 8vw, 8rem); }
.service-detail__aside { color: var(--slate); }
.service-detail__aside .mono { display: block; margin-bottom: 1.5rem; }
.service-detail__aside h2 { max-width: 11ch; }
.service-detail__body { max-width: 62ch; }
.service-detail__body h2 { font-size: var(--fefe-e29); }
.service-detail__body h3 { margin-top: 2.5rem; font-size: var(--fefe-b1b); }
.service-detail__body p { margin-top: 1rem; color: var(--slate); }
.service-detail__body ul { margin-top: 1rem; color: var(--slate); }
.service-detail__body li + li { margin-top: .6rem; }
.service-steps { display: grid; gap: 0; margin-top: 2.5rem; border-top: 1px solid var(--steel); }
.service-step { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 1.2rem; padding: 1.4rem 0; border-bottom: 1px solid var(--steel); }
.service-step__number { color: var(--ice-deep); font-family: var(--mono); font-size: .75rem; }
.service-step h3 { margin: 0; }
.service-step p { margin-top: .5rem; }
.service-bottom-image { padding-block: 0 var(--scene-space); }
.service-bottom-image img { width: 100%; max-height: 620px; object-fit: cover; aspect-ratio: 2.2; }

.about-method { padding-block: var(--scene-space); background: var(--white); }
.about-method__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 8vw, 8rem); }
.about-method__grid h2 { max-width: 10ch; }
.method-list { display: grid; gap: 0; border-top: 1px solid var(--steel); }
.method-item { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 1.2rem; padding: 1.7rem 0; border-bottom: 1px solid var(--steel); }
.method-item__number { color: var(--ice-deep); font-family: var(--mono); font-size: .75rem; }
.method-item h3 { font-size: var(--fefe-b1b); }
.method-item p { margin-top: .55rem; color: var(--slate); }
.about-decline { padding-block: var(--scene-space); color: var(--white); background: var(--ink); }
.about-decline h2 { max-width: 11ch; color: var(--white); }
.about-decline__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 8vw, 8rem); align-items: start; }
.about-decline p { color: #cbd7da; }
.about-decline a { color: var(--white); }

.contact-page { padding-block: clamp(9rem, 17vw, 15rem) var(--scene-space); background: var(--paper); }
.contact-layout { display: grid; grid-template-columns: minmax(220px, .75fr) minmax(0, 1.25fr); gap: clamp(2rem, 8vw, 8rem); align-items: start; }
.contact-layout h1 { max-width: 8ch; }
.contact-layout__lead { margin-top: 1.4rem; color: var(--slate); font-size: var(--fefe-b1b); }
.contact-address { margin-top: 2.5rem; padding-top: 1rem; border-top: 1px solid var(--steel); }
.contact-address .eyebrow { margin-bottom: .8rem; }
.contact-address address { color: var(--slate); line-height: 1.7; }
.contact-address a { display: inline-flex; min-height: 44px; align-items: center; margin-top: .7rem; color: var(--ink); }
.contact-address a:hover { color: var(--ice-deep); }
.contact-form-panel { padding: clamp(1.25rem, 4vw, 3rem); background: var(--white); border: 1px solid var(--steel); }
.contact-form-panel h2 { font-size: var(--fefe-e29); }
.contact-form-panel > p { margin-top: .55rem; color: var(--slate); }
.contact-form-panel .form-grid { margin-top: 1.7rem; }
.contact-note { margin-top: 2rem; padding: 1rem 1.2rem; color: var(--slate); background: var(--mist); border-left: 2px solid var(--ice-deep); font-size: .92rem; }

.legal-hero { padding-top: clamp(9rem, 16vw, 14rem); padding-bottom: clamp(4rem, 8vw, 7rem); background: var(--paper); border-bottom: 1px solid var(--steel); }
.legal-hero h1 { max-width: 10ch; }
.legal-hero p { max-width: 45rem; margin-top: 1rem; color: var(--slate); font-size: var(--fefe-b1b); }
.legal-updated { display: block; margin-top: 1.5rem; }
.privacy-page { padding-block: clamp(3rem, 7vw, 7rem) var(--scene-space); background: var(--white); }
.privacy-glance { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: clamp(4rem, 8vw, 8rem); border-top: 1px solid var(--steel); border-left: 1px solid var(--steel); }
.glance-item { min-height: 150px; padding: 1.25rem; border-right: 1px solid var(--steel); border-bottom: 1px solid var(--steel); }
.glance-item dt { color: var(--slate); font-family: var(--mono); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.glance-item dd { margin-top: .8rem; color: var(--ink); font-family: var(--display); font-size: var(--fefe-b1b); line-height: 1.18; }

.privacy-reading { max-width: 68ch; margin-inline: auto; }
.privacy-reading h2 { margin-top: 3.3em; }
.privacy-reading p, .privacy-reading ul { color: var(--slate); }
.privacy-reading strong { color: var(--ink); }
.privacy-reading .legal-contact { margin-top: 2rem; padding: 1.2rem; color: var(--ink); background: var(--mist); border-left: 2px solid var(--ice-deep); }

.cookies-page { padding-bottom: var(--scene-space); background: var(--white); }
.cookie-section { position: relative; display: grid; grid-template-columns: minmax(100px, .28fr) minmax(0, 1.72fr); gap: clamp(1.5rem, 6vw, 7rem); padding-block: clamp(4rem, 9vw, 9rem); border-bottom: 1px solid var(--steel); }
.cookie-number { color: var(--ice-deep); font-family: var(--display); font-size: clamp(5rem, 13vw, 12rem); font-weight: 600; letter-spacing: -.1em; line-height: .75; }
.cookie-section__body { max-width: 67ch; min-width: 0; overflow-wrap: anywhere; }
.cookie-section__body h2 { max-width: 12ch; }
.cookie-section__body p { max-width: 100%; margin-top: 1.2rem; color: var(--slate); overflow-wrap: anywhere; }
.cookie-section__body ul { margin-top: 1.2rem; color: var(--slate); }
.cookie-section__body li + li { margin-top: .6rem; }
.cookie-data { width: 100%; margin-top: 2rem; border-collapse: collapse; }
.cookie-data th, .cookie-data td { padding: .85rem .7rem; border-bottom: 1px solid var(--steel); text-align: left; vertical-align: top; }
.cookie-data th { width: 35%; color: var(--slate); font-family: var(--mono); font-size: .7rem; font-weight: 400; text-transform: uppercase; }
.cookie-choice { margin-top: 2rem; }

.terms-page { padding-block: clamp(4rem, 8vw, 8rem) var(--scene-space); background: var(--white); }
.terms-reading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(140px, .28fr); gap: clamp(1.5rem, 5vw, 5rem); max-width: 1000px; margin-inline: auto; }
.terms-block { display: contents; }
.terms-block__main { grid-column: 1; padding-bottom: 3.5rem; }
.terms-block__main h2 { margin-bottom: 1.15rem; font-size: var(--fefe-e29); }
.terms-block__main h3 { margin-top: 2rem; font-size: var(--fefe-b1b); }
.terms-block__main p { color: var(--slate); }
.terms-block__main p + p, .terms-block__main h3 + p { margin-top: 1rem; }
.terms-note { grid-column: 2; align-self: start; margin-bottom: 3.5rem; padding-top: .25rem; color: var(--slate); border-top: 1px solid var(--ice-deep); font-family: var(--mono); font-size: .68rem; line-height: 1.55; }
.terms-note strong { display: block; margin-bottom: .4rem; color: var(--ink); font-family: var(--display); font-size: .86rem; }
.terms-callout { margin-top: 1.5rem; padding: 1rem 1.2rem; color: var(--ink); background: var(--ice-pale); border-left: 2px solid var(--ice-deep); }

.accessibility-page, .data-page { padding-block: clamp(5rem, 10vw, 10rem) var(--scene-space); background: var(--white); }
.access-layout, .data-layout { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: clamp(2rem, 8vw, 8rem); align-items: start; }
.access-aside, .data-aside { position: sticky; top: 7rem; }
.access-aside h2, .data-aside h2 { max-width: 10ch; }
.access-aside p, .data-aside p { margin-top: 1rem; color: var(--slate); }
.access-reading, .data-reading { max-width: 64ch; }
.access-reading h2, .data-reading h2 { margin-top: 2.6em; font-size: var(--fefe-e29); }
.access-reading h2:first-child, .data-reading h2:first-child { margin-top: 0; }
.access-reading p, .data-reading p { margin-top: 1rem; color: var(--slate); }
.access-reading ul, .data-reading ul { margin-top: 1rem; color: var(--slate); }
.access-reading li + li, .data-reading li + li { margin-top: .65rem; }
.access-test { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 2rem; }
.access-test__item { padding: 1rem; border: 1px solid var(--steel); background: var(--paper); }
.access-test__item strong { display: block; margin-bottom: .35rem; font-family: var(--display); }
.data-route { margin-top: 2rem; padding: 1.3rem; background: var(--mist); border-left: 2px solid var(--ice-deep); }
.data-route a { display: inline-flex; min-height: 44px; align-items: center; margin-top: .6rem; font-family: var(--display); font-weight: 600; }

.faq { padding-block: var(--scene-space); background: var(--paper); }
.faq-list { max-width: 860px; margin-inline: auto; border-top: 1px solid var(--steel); }
.faq-item { border-bottom: 1px solid var(--steel); }
.faq-question { display: flex; width: 100%; min-height: 64px; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 0; color: var(--ink); font-family: var(--display); font-size: var(--fefe-b1b); font-weight: 600; text-align: left; transition: color var(--duration-fast), padding-left var(--duration-fast), background-color var(--duration-fast); }
.faq-question:hover { color: var(--ice-deep); padding-left: .35rem; background: rgba(232,239,241,.5); }
.faq-question:active { color: var(--slate); padding-left: 0; }

.faq-question:focus-visible { outline: 3px solid var(--ice-deep); outline-offset: 2px; }
.faq-question .icon { transition: transform var(--duration-fast), color var(--duration-fast); }
.faq-question[aria-expanded=true] .icon { color: var(--ice-deep); transform: rotate(45deg); }
.faq-answer { max-width: 62ch; padding: 0 3rem 1.25rem 0; color: var(--slate); }

.not-found { min-height: min(80svh, 760px); display: grid; place-items: center; padding-block: 10rem; text-align: center; background: var(--paper); }
.not-found h1 { font-size: clamp(5rem, 18vw, 15rem); color: var(--ice-deep); line-height: .8; }
.not-found h2 { margin-top: 2rem; }
.not-found p { margin: 1rem auto 0; color: var(--slate); }
.not-found .button { margin-top: 2rem; }

@media (max-width: 1000px) {
	.service-index__row { grid-template-columns: minmax(50px, .18fr) minmax(180px, .7fr) minmax(0, 1fr); }
	.service-index__aside { grid-column: 2 / -1; }
	.privacy-glance { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.terms-reading { max-width: 850px; }
}
@media (max-width: 800px) {
	.scene { min-height: auto; }
	.scene__head, .question-layout, .scope-layout, .inquiry-layout, .page-intro__grid, .service-hero__grid, .service-detail__grid, .about-method__grid, .about-decline__grid, .contact-layout, .access-layout, .data-layout { grid-template-columns: 1fr; }
	.scene__head { gap: 1rem; }
	.scene__head h2, .scope-intro h2, .question-copy h2, .inquiry-aside h2 { max-width: 14ch; }
	.scope-intro, .inquiry-aside, .access-aside, .data-aside { position: static; }
	.scope-intro .mono { margin-top: 1rem; }
	.scope-form { margin-top: 1rem; }
	.hero__content { padding-top: 10rem; }
	.hero__caption { position: relative; right: auto; bottom: auto; margin-top: 5rem; }
	.hero__marker { right: 20%; top: 26%; }
	.route-feature, .route-feature:nth-child(even) { grid-template-columns: 1fr; gap: 1.5rem; }
	.route-feature:nth-child(even) .route-feature__image { order: initial; }
	.route-feature__copy { order: 1; }
	.route-feature__image { order: 2; }
	.scope-form { order: 2; }
	.boundary-inner { min-height: 75svh; }
	.inquiry-photo { max-width: 30rem; }
	.terms-reading { display: block; max-width: 68ch; }
	.terms-block { display: block; }
	.terms-block__main { padding-bottom: 1rem; }
	.terms-note { margin: 0 0 3rem; padding: .8rem 0 0; }
	.cookie-section { grid-template-columns: 5.5rem minmax(0, 1fr); gap: 1rem; }
	.cookie-number { font-size: clamp(4rem, 16vw, 7rem); }
}
@media (max-width: 560px) {
	.hero h1 { max-width: 8ch; font-size: clamp(3.25rem, 17vw, 5.2rem); }
	.hero__lead { font-size: 1.05rem; }
	.hero__actions, .hero__actions .button { width: 100%; }
	.hero__actions .button { justify-content: center; }
	.hero__caption { max-width: 15rem; margin-top: 3rem; }
	.plate { min-height: 390px; }
	.plate figure { width: 100%; }
	.annotation { min-width: 0; font-size: .58rem; }
	.route-feature__facts { grid-template-columns: 1fr; }
	.scope-options { grid-template-columns: 1fr; }
	.scope-option label { min-height: 54px; }
	.scope-fields, .scope-result { grid-template-columns: 1fr; }
	.scope-result { gap: .6rem; }
	.service-index__row { grid-template-columns: 2.5rem minmax(0, 1fr); gap: .75rem 1rem; }
	.service-index__row h2, .service-index__row p, .service-index__aside, .service-index__link { grid-column: 2; }
	.service-index__number { grid-row: 1 / span 4; }
	.service-hero__image::before { inset: .6rem -.6rem -.6rem .6rem; }
	.privacy-glance { grid-template-columns: 1fr; }
	.glance-item { min-height: auto; }
	.cookie-section { grid-template-columns: 1fr; padding-block: 3.5rem; }
	.cookie-number { line-height: .6; }
	.cookie-data { display: block; overflow-x: auto; }
	.cookie-data th, .cookie-data td { min-width: 160px; }
	.boundary-table { display: block; overflow-x: auto; }
	.boundary-table th, .boundary-table td { min-width: 170px; }
	.access-test { grid-template-columns: 1fr; }
	.faq-question { font-size: 1.1rem; }
	.faq-answer { padding-right: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.hero__image, .hero__grid, .hero__content, [data-depth] { transform: none !important; }
	.plate figure { transform: none; }
	.annotation { transform: none; }
	.route-feature__image img { transition: none; }
}
