main { min-width: 0; }


.hero-split { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); min-height: min(52rem, 100vh); background: var(--oat); }
.hero-photo { position: relative; min-height: 42rem; overflow: hidden; background: var(--oat); view-transition-name: hero-photo; }
.hero-photo img { width: 100%; height: 100%; min-height: 42rem; object-fit: cover; object-position: center; }
.hero-photo::after { content: ''; position: absolute; inset: auto 0 0; height: 30%; background: linear-gradient(0deg, rgba(25,23,20,.42), transparent); pointer-events: none; }
.hero-caption { position: absolute; z-index: 1; left: var(--gutter); bottom: var(--space-6); max-width: 19rem; padding: .75rem 1rem; border-left: 2px solid var(--ochre); background: rgba(25,23,20,.83); color: var(--white); font-family: 'IBM Plex Mono', monospace; font-size: .72rem; letter-spacing: .04em; line-height: 1.45; }
.hero-copy { display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: clamp(7rem, 14vw, 12rem) clamp(1.25rem, 6vw, 7rem) clamp(4rem, 9vw, 8rem); }
.hero-copy h1 { max-width: 10ch; }
.hero-copy .lede { max-width: 37ch; }
.hero-kicker { display: flex; align-items: center; gap: .7rem; margin-bottom: var(--space-5); color: var(--rust-dark); }
.hero-kicker::before { content: ''; width: 2.7rem; height: 2px; background: var(--ochre); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: var(--space-3); }
.hero-stamp { align-self: flex-end; margin: var(--space-7) 0 0; }


.page-intro { position: relative; padding: clamp(8rem, 14vw, 13rem) var(--gutter) clamp(4rem, 8vw, 7rem); background: var(--oat); overflow: hidden; }
.page-intro-inner { width: min(100%, var(--shell)); margin-inline: auto; }
.page-intro h1 { max-width: 13ch; margin-bottom: var(--space-4); }
.page-intro .lede { max-width: 46ch; }
.page-intro .stamp { position: absolute; right: clamp(1rem, 8vw, 8rem); bottom: clamp(2rem, 5vw, 5rem); }
.page-intro-dark { background: var(--ink); color: var(--white); }
.page-intro-dark h1, .page-intro-dark p { color: var(--white); }
.page-intro-dark .eyebrow { color: var(--ochre); }


.home-feature { padding-block: clamp(5rem, 10vw, 10rem); }
.feature-kicker { margin-bottom: var(--space-5); }
.feature-copy h2 { max-width: 12ch; }
.feature-copy .text-link { margin-top: var(--space-3); }
.feature-row figcaption { padding: .85rem var(--gutter); color: var(--muted); background: var(--oat); font-family: 'IBM Plex Mono', monospace; font-size: .72rem; letter-spacing: .04em; }


.subjects { padding-block: clamp(4.5rem, 9vw, 9rem); }
.subjects-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: var(--space-6); }
.subjects-heading h2 { max-width: 22ch; margin-bottom: 0; }
.subjects-heading p { max-width: 36ch; margin-bottom: 0; }
.subject-row { grid-template-columns: minmax(10rem, .72fr) minmax(0, 1.28fr); gap: clamp(1.5rem, 5vw, 6rem); }
.subject-row:nth-child(even) { grid-template-columns: minmax(0, 1.28fr) minmax(10rem, .72fr); }
.subject-row:nth-child(even) img { grid-column: 2; grid-row: 1; }
.subject-row:nth-child(even) .subject-copy { grid-column: 1; grid-row: 1; }

.subject-row h3 { max-width: 18ch; }
.subject-row p { max-width: 52ch; }
.subject-row .text-link { margin-top: .25rem; }
.subject-row figure { margin: 0; }
.subject-row figure img { aspect-ratio: 5 / 3; }
.subject-copy-head { display: flex; align-items: baseline; gap: 1rem; flex-wrap: wrap; margin-bottom: .75rem; }
.subject-copy-head h3 { margin-bottom: 0; }
.subject-copy-head .subject-label { order: -1; }
.subject-note { margin-top: var(--space-4); padding-top: var(--space-3); border-top: 1px solid var(--line); color: var(--muted); }


.process-section { background: var(--paper); }
.process-head { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 2rem; align-items: end; margin-bottom: var(--space-6); }
.process-head h2 { max-width: 9ch; margin-bottom: 0; }
.process-head p { max-width: 42ch; margin-bottom: 0; }
.process-section .rail-item { background: var(--oat); }
.process-section .rail-item:nth-child(2) { background: var(--wash); }
.process-section .rail-item:nth-child(3) { background: var(--ink); color: var(--white); }
.process-section .rail-item:nth-child(3) h3, .process-section .rail-item:nth-child(3) p { color: var(--white); }
.process-section .rail-item:nth-child(3) .step-number { color: var(--ochre); }
.process-section .rail-item:nth-child(4) { background: var(--clay); color: var(--white); }
.process-section .rail-item:nth-child(4) h3, .process-section .rail-item:nth-child(4) p { color: var(--white); }
.process-section .rail-item:nth-child(4) .step-number { color: var(--white); }
.rail-instruction { display: flex; align-items: center; gap: .6rem; margin-top: .8rem; color: var(--muted); font-family: 'IBM Plex Mono', monospace; font-size: .72rem; }

.rail-instruction .icon { color: var(--clay); }


.offer-band { padding-block: clamp(5rem, 9vw, 8rem); }
.offer-band .shell { position: relative; }
.offer-band .offer-content { max-width: 54rem; padding-right: clamp(4rem, 16vw, 15rem); }
.offer-band h2 { max-width: 11ch; font-size: clamp(2.4rem, 5vw, 5.4rem); }
.offer-band p { max-width: 47ch; }
.offer-list { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: var(--space-5) 0; padding: 0; list-style: none; }
.offer-list li { display: flex; align-items: center; gap: .5rem; min-height: 44px; font-weight: 600; }
.offer-list .icon { color: var(--ochre); }
.offer-band .stamp { color: var(--white); border-color: var(--white); }
.offer-band .stamp::before { border-color: var(--white); }


.about-route { padding-block: clamp(5rem, 10vw, 10rem); }
.route-lead { display: grid; grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); gap: clamp(2rem, 8vw, 9rem); margin-bottom: var(--space-8); }
.route-lead h2 { max-width: 10ch; }
.route-lead p { max-width: 58ch; }
.route-rule { display: grid; grid-template-columns: minmax(6rem, .35fr) minmax(0, 1fr); gap: clamp(1.5rem, 5vw, 5rem); padding-block: var(--space-5); border-top: 2px solid var(--ink); }
.route-rule:last-child { border-bottom: 2px solid var(--ink); }
.route-rule .meta { color: var(--clay); padding-top: .4rem; }
.route-rule h3 { margin-bottom: .7rem; }
.route-rule p { margin-bottom: 0; max-width: 65ch; }
.about-image { margin: 0; background: var(--oat); }
.about-image img { width: 100%; max-height: 44rem; object-fit: cover; }
.about-image figcaption { padding: .8rem var(--gutter); font-family: 'IBM Plex Mono', monospace; font-size: .72rem; }
.records-section { padding-block: clamp(5rem, 10vw, 9rem); background: var(--oat); }
.records-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: var(--space-5); }
.records-heading h2 { margin-bottom: 0; }
.records-heading p { margin-bottom: .25rem; }
.records-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 3rem; }
.records-list .subject-row { display: block; padding-block: 1.6rem; }
.records-list .subject-row img { display: none; }


.contact-layout { padding-block: clamp(5rem, 10vw, 9rem); }

.contact-lead { margin-bottom: var(--space-7); }
.contact-lead h2 { max-width: 11ch; }
.contact-details { padding: var(--space-5); border-top: 2px solid var(--ink); background: var(--oat); }
.contact-details h2 { margin-bottom: var(--space-4); font-size: var(--text-xl); }
.contact-details address { margin: 0 0 var(--space-4); font-style: normal; }
.contact-details a { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; }
.contact-details .detail-line { margin-bottom: .3rem; }
.contact-details .detail-label { display: block; margin-bottom: .15rem; color: var(--muted); font-family: 'IBM Plex Mono', monospace; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.contact-photo { margin: var(--space-7) 0 0; }
.contact-photo img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--radius-image); }
.contact-photo figcaption { margin-top: .7rem; color: var(--muted); font-size: .85rem; }
.form-shell .form-intro h2 { max-width: 11ch; }
.form-intro .stamp { margin-top: var(--space-7); }
.form-shell form { padding: clamp(1.25rem, 3vw, 3rem); border-top: 2px solid var(--ink); background: var(--oat); }
.form-shell .form-grid { margin-top: var(--space-4); }
.form-submit { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: var(--space-4); }
.form-submit .form-note { flex: 1 1 15rem; margin: 0; }
.form-consent { grid-column: 1 / -1; }
.form-consent a { color: var(--rust-dark); }
.route-photo-band { padding-block: 0 clamp(5rem, 9vw, 8rem); }
.route-photo-band .split { align-items: stretch; gap: 0; background: var(--wash); }
.route-photo-band figure { margin: 0; min-height: 27rem; }
.route-photo-band img { width: 100%; height: 100%; min-height: 27rem; object-fit: cover; }
.route-photo-band .band-copy { padding: clamp(2rem, 6vw, 6rem); }
.route-photo-band .band-copy h2 { max-width: 11ch; }


.document-page { padding-block: clamp(5rem, 9vw, 9rem); }
.document-shell { display: grid; grid-template-columns: minmax(11rem, .28fr) minmax(0, .72fr); gap: clamp(2rem, 7vw, 8rem); align-items: start; }
.document-rail { position: sticky; top: 6rem; padding-left: 1.2rem; border-left: 2px solid var(--ink); }
.document-rail::before { content: ''; position: absolute; left: -.45rem; top: 0; width: .75rem; height: .75rem; border: 2px solid var(--clay); border-radius: 50%; background: var(--paper); }
.rail-date { position: relative; padding: 0 0 var(--space-6); }
.rail-date::before { content: ''; position: absolute; left: -1.58rem; top: .2rem; width: .55rem; height: .55rem; border-radius: 50%; background: var(--ochre); }
.rail-date time { display: block; margin-bottom: .4rem; color: var(--clay); font-size: .76rem; }
.rail-date strong { display: block; font-family: 'Fraunces', Georgia, serif; font-size: 1.15rem; font-weight: 500; line-height: 1.15; }
.rail-date p { margin: .4rem 0 0; color: var(--muted); font-size: .88rem; line-height: 1.4; }
.document-reading { min-width: 0; }
.document-reading > header { padding-bottom: var(--space-6); border-bottom: 2px solid var(--ink); }
.document-reading > header h1 { max-width: 10ch; }
.document-reading > header p { max-width: 55ch; }
.document-reading section { padding-block: var(--space-7); border-bottom: 1px solid var(--line); }
.document-reading section:last-child { border-bottom: 0; }
.document-reading section h2 { max-width: 18ch; font-size: clamp(1.8rem, 3.5vw, 3.3rem); }
.document-reading section h3 { margin-top: var(--space-5); }
.document-reading section p, .document-reading section ul { max-width: 68ch; }
.document-reading .legal-callout { margin-block: var(--space-5); padding: var(--space-4); border-left: 3px solid var(--clay); background: var(--oat); }
.document-reading .legal-callout p:last-child { margin-bottom: 0; }
.document-reading .table-wrap { margin-block: var(--space-5); background: var(--white); }


.question-page { padding-block: clamp(5rem, 10vw, 10rem); }
.question-intro { display: grid; grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); gap: clamp(2rem, 8vw, 9rem); padding-bottom: var(--space-8); border-bottom: 2px solid var(--ink); }
.question-intro h1 { max-width: 9ch; }
.question-intro p { max-width: 56ch; }
.question-list { max-width: 62rem; }
.question-block { padding-block: clamp(2.5rem, 6vw, 5.5rem); border-bottom: 1px solid var(--line); }
.question-block h2 { max-width: 15ch; margin-bottom: var(--space-4); font-size: clamp(2rem, 4vw, 4rem); }
.question-block > p, .question-block .answer { max-width: 60ch; }
.question-block .answer p:last-child { margin-bottom: 0; }
.question-block .table-wrap { margin-top: var(--space-5); background: var(--white); }
.question-block .legal-callout { margin-top: var(--space-5); padding: var(--space-4); background: var(--oat); border-left: 2px solid var(--ochre); }


.terms-page { padding-block: 0 clamp(5rem, 9vw, 9rem); }
.terms-intro { padding-block: clamp(5rem, 10vw, 9rem) var(--space-6); }
.terms-intro h1 { max-width: 9ch; }
.jump-chips { position: sticky; z-index: 5; top: 0; display: flex; gap: .55rem; overflow-x: auto; padding: .8rem max(var(--gutter), calc((100vw - var(--shell)) / 2)); background: var(--ink); scrollbar-width: thin; }
.jump-chips a { flex: 0 0 auto; display: inline-flex; align-items: center; min-height: 44px; padding: .55rem .85rem; border: 1px solid rgba(255,249,240,.7); color: var(--white); font-size: .88rem; font-weight: 600; text-decoration: none; }
.jump-chips a:hover { background: var(--white); color: var(--ink); }
.jump-chips a:active { background: var(--oat); color: var(--ink); transform: translateY(1px); }
.jump-chips a:focus-visible { background: var(--rust-dark); color: var(--white); outline: 3px solid var(--ochre); outline-offset: 2px; }
.terms-sections { width: min(100% - (2 * var(--gutter)), var(--shell)); margin-inline: auto; }
.terms-section { display: grid; grid-template-columns: minmax(9rem, .3fr) minmax(0, .7fr); gap: clamp(1.5rem, 7vw, 8rem); padding-block: clamp(3.5rem, 7vw, 7rem); border-bottom: 2px solid var(--ink); scroll-margin-top: 5rem; }
.terms-section .section-number { color: var(--clay); font-family: 'IBM Plex Mono', monospace; font-size: .76rem; letter-spacing: .08em; }
.terms-section h2 { max-width: 13ch; margin-bottom: var(--space-3); font-size: clamp(1.9rem, 3.5vw, 3.4rem); }
.terms-section .standfirst { max-width: 56ch; margin-bottom: var(--space-5); font-family: 'Fraunces', Georgia, serif; font-size: var(--text-lg); line-height: 1.35; }
.terms-section p, .terms-section ul { max-width: 65ch; }
.terms-section .legal-callout { margin-top: var(--space-5); padding: var(--space-4); background: var(--wash); border-top: 2px solid var(--ochre); }


.data-request { scroll-margin-top: 5rem; }
.accessibility-section { scroll-margin-top: 5rem; }
.legal-links { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin-top: var(--space-5); }
.legal-links a { min-height: 44px; display: inline-flex; align-items: center; }


.not-found { min-height: 72vh; display: grid; place-items: center; padding-block: 9rem; background: var(--oat); }
.not-found-inner { width: min(100% - (2 * var(--gutter)), 52rem); text-align: center; }
.not-found h1 { font-size: clamp(4rem, 15vw, 11rem); margin-bottom: 0; color: var(--clay); }
.not-found p { margin-inline: auto; max-width: 40ch; }
.not-found .btn { margin-top: var(--space-3); }


.faq-list { border-top: 2px solid var(--ink); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 4.5rem; padding: 1rem 0; cursor: pointer; list-style: none; font-family: 'Fraunces', Georgia, serif; font-size: var(--text-lg); font-weight: 500; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: '+'; flex: 0 0 auto; color: var(--clay); font-family: 'IBM Plex Mono', monospace; font-size: 1.5rem; }
.faq-list details[open] summary::after { content: '−'; }
.faq-list summary:hover { color: var(--clay); }
.faq-list summary:active { color: var(--rust-dark); transform: translateY(1px); }
.faq-list summary:focus-visible { background: var(--oat); outline: 3px solid var(--ochre); outline-offset: 3px; }
.faq-answer { padding: 0 3rem 1.5rem 0; }
.faq-answer p:last-child { margin-bottom: 0; }


@media (max-width: 900px) {
	.hero-split { grid-template-columns: 1fr; min-height: 0; }
	.hero-photo { min-height: 58vh; max-height: 42rem; }
	.hero-photo img { min-height: 58vh; }
	.hero-copy { min-height: 32rem; padding-top: 5rem; }
	.hero-copy h1 { max-width: 13ch; }
	.page-intro .stamp { right: var(--gutter); opacity: .7; }
	.route-lead, .process-head, .question-intro { grid-template-columns: 1fr; gap: 1rem; }
	.records-list { grid-template-columns: 1fr; }
	.document-shell { grid-template-columns: 1fr; gap: var(--space-6); }
	.document-rail { position: static; display: flex; gap: 0; overflow-x: auto; padding: 0 0 .75rem; border-left: 0; border-bottom: 2px solid var(--ink); }
	.document-rail::before { display: none; }
	.rail-date { flex: 1 0 10rem; padding: .35rem 1.25rem .5rem 0; border-right: 1px solid var(--line); }
	.rail-date + .rail-date { padding-left: 1.25rem; }
	.rail-date::before { display: none; }
	.document-reading > header h1 { max-width: 14ch; }
	.terms-section { grid-template-columns: 1fr; gap: 1rem; }
	.terms-section h2 { max-width: 18ch; }
}


@media (max-width: 640px) {
	.hero-photo { min-height: 52vh; }
	.hero-photo img { min-height: 52vh; }
	.hero-caption { left: 1rem; right: 1rem; bottom: 1rem; max-width: none; }
	.hero-copy { min-height: 0; padding: 4.5rem 1.25rem 4rem; }
	.hero-copy h1 { font-size: clamp(2.35rem, 12.6vw, 3.35rem); }
	.hero-actions .btn { flex: 1 1 13rem; }
	.hero-stamp { align-self: flex-start; margin-top: var(--space-5); }
	.page-intro { padding-top: 7rem; padding-bottom: 4rem; }
	.page-intro .stamp { position: static; margin-top: var(--space-5); }
	.subjects-heading, .records-heading { display: block; }
	.subjects-heading p, .records-heading p { margin-top: 1rem; }
	.subject-row, .subject-row:nth-child(even) { display: grid; grid-template-columns: 1fr; gap: 1rem; }
	.subject-row:nth-child(even) img, .subject-row:nth-child(even) .subject-copy { grid-column: auto; grid-row: auto; }
	.subject-row img { aspect-ratio: 16 / 10; }
	.subject-row .subject-copy { padding-top: .5rem; }
	.process-head h2 { max-width: 12ch; }
	.horizontal-rail { grid-auto-columns: minmax(16rem, 86vw); }
	.offer-band .offer-content { padding-right: 0; }
	.offer-band .stamp { top: auto; bottom: 1rem; transform: rotate(8deg); }
	.route-rule { grid-template-columns: 1fr; gap: .4rem; }
	.route-rule .meta { padding-top: 0; }
	.route-photo-band .split { display: flex; flex-direction: column; }
	.route-photo-band figure, .route-photo-band img { min-height: 18rem; }
	.form-shell form { padding: 1.25rem; }
	.form-submit { align-items: stretch; flex-direction: column; }
	.form-submit .btn { width: 100%; }
	.contact-details { padding: 1.25rem; }
	.document-rail { margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
	.document-reading section { padding-block: 3.5rem; }
	.question-block h2 { font-size: clamp(1.9rem, 9vw, 2.7rem); }
	.jump-chips { padding-inline: 1rem; }
	.terms-section { padding-block: 3.75rem; }
	.not-found { min-height: 65vh; }
}


@media (prefers-reduced-motion: reduce) {
	.hero-photo img, .about-image img, .contact-photo img { transform: none; }
	.document-rail { overflow-x: auto; }
	.jump-chips { position: static; }
}


.site-header.view-header { position: relative; }
.site-header.view-header .header-inner { min-height: 4.5rem; }
.thanks-box h1, .thanks-box h2, .sequence-heading h2, .module-title { color: var(--white); }
.thanks-box h1 { max-width: none; }
body:has(.stock) .site-header { position: relative; }
.section-label span { color: #665078; }
.site-header .nav-index { color: #b8a2c8; }
.btn-light { color: var(--ink) !important; }
.button { color: var(--ink); }
body:has(.thanks-page) a, body:has(.stock) a { color: #e8d5b9; }
body:has(.stock) .footer-consent { color: var(--paper); }
body:has(.hero-split) .stamp small, body:has(.hero-split) .stamp strong { color: #8a5a16; }
.process-section .rail-item .step-number { color: #8f3928; }
.thanks-box p, .sequence-heading p, .module .muted, .thanks-box .meta { color: #cfc2d4; }
.thanks-page, .sequence-section { scroll-margin-block-start: 5rem; }
.faq-question { color: var(--ink); }
.faq-question:hover { color: var(--rust-dark); }
.site-footer:has(.footer-logo), .site-footer[data-footer] { padding-block: 3rem 1rem; }
.site-footer:has(.footer-logo) .footer-main, .site-footer[data-footer] .footer-main { padding-block: 0 2rem; gap: 2rem; }
.site-footer:has(.footer-logo) .footer-bottom, .site-footer[data-footer] .footer-bottom { padding-top: .75rem; }
.chat-launcher:hover { background: var(--oat); color: var(--ink); border-color: var(--oat); transform: translateY(-2px); box-shadow: 0 10px 28px rgba(25,23,20,.32); }
.chat-launcher:active { background: var(--deep); color: var(--white); border-color: var(--ochre); transform: translateY(1px); box-shadow: 0 4px 15px rgba(25,23,20,.22); }


@media (min-width: 1440px) {
	.hero-copy { padding-left: clamp(5rem, 7vw, 9rem); }
	.hero-copy h1 { font-size: clamp(4rem, 5vw, 6.8rem); }
	.subject-row { gap: 7rem; }
}
