/* Page-specific reading and decision layouts, continuing the approved public design. */
:root { --public-detail-capture-width: 320px; }
.editorial-opening, .policy-opening { padding-block: var(--space-6); text-align: center; }
.editorial-opening h1, .policy-opening h1, .library-opening h1, .split-intro h1,
.guide-opening h1, .not-found h1 { font: 400 clamp(36px,4.6vw,64px)/1.08 var(--display); letter-spacing: -.04em; }
.editorial-opening > p:not(.eyebrow), .policy-opening > p:not(.eyebrow) { max-width: 64ch; margin: var(--space-3) auto 0; font-size: var(--public-body); color: var(--ink-soft); }
.editorial-opening .eyebrow, .policy-opening .eyebrow { margin-bottom: var(--space-3); }
.policy-opening > span { display: block; margin-top: var(--space-3); color: var(--ink-soft); font-size: var(--public-small); }
.split-intro, .guide-opening, .library-opening { display: grid; grid-template-columns: 1.15fr 1fr; gap: var(--space-8); align-items: center; padding-block: var(--space-6); }
.split-intro > img, .guide-opening > img { width: 100%; height: var(--public-compact-photo-height); object-fit: cover; border-radius: var(--public-radius); }
.split-intro > img { height: var(--public-expanded-capture-height); }
.split-intro h1, .guide-opening h1 { max-width: 20ch; }
.split-intro .intro-lead, .guide-opening .intro-lead { margin-block: var(--space-3) 0; font-size: var(--public-body); max-width: 55ch; }
.split-intro .btn { margin-top: var(--space-3); }
.info-section { padding-block: var(--space-5); }
.info-section h2, .info-grid h2, .info-panel h2, .section-heading h2, .route-feature h2,
.featured-guide h2, .featured-side h2 { font: 400 clamp(28px,3vw,40px)/1.15 var(--display); letter-spacing: -.025em; margin-bottom: var(--space-3); }
.info-section > h2, .info-section > p { max-width: 78ch; margin-inline: auto; }
.info-section > h2 { text-align: center; }
.info-section p { color: var(--ink-soft); margin-bottom: var(--space-2); max-width: 75ch; }
.info-grid, .contact-grid, .guide-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-4); align-items: start; }
.info-grid { gap: var(--space-8); }
.info-grid > * { min-width: 0; }
.info-panel, .guide-panel { padding: var(--space-4); border-radius: var(--public-radius); background: var(--snow-2); }
.info-panel h3, .guide-panel h3 { font: 400 24px/1.25 var(--display); margin-bottom: var(--space-2); }
.info-panel p:last-child, .guide-panel p:last-child { margin-bottom: 0; }
.info-panel--green, .guide-panel--green { background: var(--spruce); color: var(--snow); }
.info-panel--green p, .info-panel--green dd, .guide-panel--green p { color: var(--snow-2); }
.info-panel--green a, .guide-panel--green a { color: var(--snow); }
.fact-list { margin-top: var(--space-3); }
.fact-list > div { display: grid; grid-template-columns: minmax(0,.75fr) minmax(0,1.5fr); gap: var(--space-3); padding-block: var(--space-3); border-top: 1px solid var(--rule); }
.fact-list dt { font-weight: 500; }
.fact-list dd { color: var(--ink-soft); }
.info-panel--green .fact-list > div { border-color: var(--pale); }
.topic-nav { display: flex; justify-content: center; gap: var(--space-4); flex-wrap: wrap; margin-top: var(--space-3); }
.guide-callout { background: var(--snow-2); border-left: 4px solid var(--lake); border-radius: 0 var(--public-radius) var(--public-radius) 0; padding: var(--space-3) var(--space-4); margin-block: var(--space-3); color: var(--ink); }
.guide-callout p:last-child { margin-bottom: 0; }
.guide-callout h2 { font-size: 28px; }
.related-links { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); margin-top: var(--space-3); }
.related-links a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 4px; }
.guide-body { display: grid; grid-template-columns: 240px minmax(0,1fr); gap: var(--space-8); padding-block: var(--space-4) var(--space-6); align-items: start; }
.guide-index { position: sticky; top: var(--space-12); border-left: 2px solid var(--rule); padding-left: var(--space-3); }
.guide-index p { font-weight: 500; margin-bottom: var(--space-2); }
.guide-index a { display: block; min-height: 44px; padding-block: var(--space-1); font-size: var(--public-small); color: var(--ink-soft); }
.guide-index a:hover { color: var(--lake); text-decoration: underline; }
.guide-content { min-width: 0; }
.guide-content > section { margin-bottom: var(--space-6); scroll-margin-top: var(--space-12); }
.guide-content > section:last-child { margin-bottom: 0; }
.guide-content h2 { font: 400 clamp(28px,3vw,40px)/1.15 var(--display); letter-spacing: -.025em; margin-bottom: var(--space-3); max-width: 32ch; }
.guide-content h3 { font: 500 20px/1.3 var(--sans); margin-block: var(--space-2); }
.guide-content p { font-size: var(--public-body); color: var(--ink-soft); margin-bottom: var(--space-3); max-width: 75ch; }
.guide-content a { text-decoration: underline; text-underline-offset: 4px; }
.guide-checklist { list-style: none; margin-block: var(--space-3); }
.guide-checklist li { padding: var(--space-2) 0 var(--space-2) var(--space-4); border-top: 1px solid var(--rule); position: relative; }
.guide-checklist li::before { content: '✓'; position: absolute; left: 0; color: var(--lake); font-weight: 600; }
.guide-timeline { list-style: none; counter-reset: guide-step; margin-block: var(--space-3); padding: 0; }
.guide-timeline > li { position: relative; padding: 0 0 var(--space-3) var(--space-6); margin: 0; border-left: 1px solid var(--rule); }
.guide-timeline > li::before { counter-increment: guide-step; content: counter(guide-step); position: absolute; left: -16px; top: 0; width: 32px; height: 32px; display: grid; place-items: center; background: var(--snow-2); border: 1px solid var(--rule); border-radius: 50%; font-size: var(--public-small); font-weight: 500; }
.guide-timeline p { margin-bottom: 0; }
.guide-script { border: 1px solid var(--rule); padding: var(--space-3); border-radius: var(--public-radius); margin-block: var(--space-3); font-size: var(--public-body); }
.guide-source { color: var(--ink-soft); font-size: var(--public-small); padding-block: var(--space-3) var(--space-5); }
.guide-source a { text-decoration: underline; text-underline-offset: 4px; }
.series-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.series-card { min-height: 64px; background: none; border-radius: var(--public-radius); padding: var(--space-2) var(--space-3); }
.series-card b { display: none; }
.series-card span { font: 400 var(--public-small)/1.5 var(--sans); }
.series-card.is-current { background: var(--spruce); color: var(--snow); border-color: var(--spruce); }
.series-card.is-current span { color: var(--snow); }
.series-nav > .kicker { margin-bottom: var(--space-2); }
.contact-grid { margin-top: var(--space-3); }
.contact-grid > article { border-top: 1px solid var(--rule); padding-block: var(--space-3); }
.contact-grid h2 { font: 400 28px/1.2 var(--display); margin-bottom: var(--space-2); }
.policy-status { margin-top: var(--space-3); border-left: 4px solid var(--lake); padding: var(--space-2) var(--space-3); background: var(--snow-2); }
.faq-group { display: grid; grid-template-columns: 1fr 2fr; gap: var(--space-8); padding-block: var(--space-4); }
.faq-group > h2 { font: 400 32px/1.15 var(--display); }
.faq-group .faq { width: 100%; max-width: none; }
.faq-group .faq details { margin: 0; padding-block: var(--space-2); background: none; border-radius: 0; }
.faq-group .faq summary { min-height: 44px; font-size: var(--public-body); font-weight: 500; padding-block: var(--space-1); }
.faq-group .faq p { font-size: var(--public-body); color: var(--ink-soft); max-width: 70ch; }
.source-register { border-block: 1px solid var(--rule); margin-block: var(--space-4); }
.source-register > summary { cursor: pointer; padding-block: var(--space-3); font-size: var(--public-body); font-weight: 500; }
.source-register .wrap { width: 100%; }
.source-register .band { padding-block: var(--space-3); }
.source-register .article-layout { display: block; }
.source-register .prose { max-width: none; }
.source-register .sheet { font-size: var(--public-small); }
.library-opening { grid-template-columns: 1.5fr 1fr; }
.library-opening > div > p:not(.eyebrow) { color: var(--ink-soft); margin-top: var(--space-3); font-size: var(--public-body); max-width: 55ch; }
.library-choices { display: grid; gap: var(--space-2); border-left: 2px solid var(--rule); padding-left: var(--space-4); }
.library-choices a { padding-block: var(--space-2); min-height: 48px; font-size: var(--public-body); text-decoration: underline; text-underline-offset: 5px; }
.featured-reading { display: grid; grid-template-columns: 1.3fr 1fr; gap: var(--space-5); padding-block: var(--space-3) var(--space-6); align-items: center; }
.featured-guide { display: grid; grid-template-columns: 1fr 1fr; border-radius: var(--public-radius); overflow: hidden; background: var(--spruce); color: var(--snow); min-height: var(--public-mobile-photo-height); }
.featured-guide > img { width: 100%; height: 100%; object-fit: cover; }
.featured-guide > div { padding: var(--space-4); align-self: center; }
.featured-guide .eyebrow { color: var(--gold-light); margin-bottom: var(--space-3); }
.featured-guide p { color: var(--snow-2); }
.featured-side > a, .reading-links > a, .recovery-links > a { display: block; padding-block: var(--space-3); border-top: 1px solid var(--rule); }
.featured-side b, .reading-links b, .recovery-links b { display: block; font-size: var(--public-body); font-weight: 500; }
.featured-side span, .reading-links span, .recovery-links span { display: block; color: var(--ink-soft); margin-top: 4px; }
.featured-side a:hover b, .reading-links a:hover b, .recovery-links a:hover b { text-decoration: underline; }
.library-section { padding-block: var(--space-5); }
.section-heading { display: flex; justify-content: space-between; gap: var(--space-5); align-items: end; margin-bottom: var(--space-4); }
.section-heading h2 { max-width: 24ch; margin: 0; }
.section-heading p { max-width: 38ch; color: var(--ink-soft); }
.manual-library { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 var(--space-5); }
.library-link { display: block; border-top: 1px solid var(--rule); padding-block: var(--space-3); }
.library-link > span { color: var(--lake); font-size: var(--public-small); }
.library-link h3 { font: 400 28px/1.2 var(--display); margin-block: var(--space-1); }
.library-link p { color: var(--ink-soft); max-width: 55ch; }
.library-link:hover h3 { text-decoration: underline; text-underline-offset: 4px; }
.route-feature, .route-overview { padding-block: var(--space-6); background: var(--snow-2); }
.route-feature .info-grid { align-items: center; }
.route-feature img { width: 100%; height: var(--public-mobile-photo-height); object-fit: cover; border-radius: var(--public-radius); }
.route-feature .eyebrow { margin-bottom: var(--space-3); }
.route-feature p:not(.eyebrow) { font-size: var(--public-body); color: var(--ink-soft); margin-bottom: var(--space-3); }
.route-feature .text-link { display: flex; margin-top: var(--space-1); }
.destination-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: var(--space-3); }
.destination-card { border-radius: var(--public-radius); overflow: hidden; background: var(--snow); }
.destination-card > img { width: 100%; height: var(--public-city-photo-height); object-fit: cover; }
.destination-card > div { padding: var(--space-3); }
.destination-card span { font-size: var(--public-small); color: var(--lake); }
.destination-card h3 { font: 400 28px/1.2 var(--display); margin-block: var(--space-1) var(--space-2); }
.destination-card p { color: var(--ink-soft); }
.wide-photo { position: relative; }
.wide-photo > img { width: 100%; height: var(--public-wide-compact-height); object-fit: cover; }
.wide-photo > div { position: absolute; inset: auto auto var(--space-5) max(var(--space-3),calc((100% - var(--public-width))/2)); max-width: 56ch; background: var(--snow); padding: var(--space-4); border-radius: var(--public-radius); }
.wide-photo h2 { font: 400 32px/1.15 var(--display); margin-bottom: var(--space-3); }
.wide-photo p { color: var(--ink-soft); }
.reading-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--space-4); }
.route-jump { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-block: 1px solid var(--rule); }
.route-jump a { text-align: center; padding: var(--space-3); font: 400 24px/1.2 var(--display); }
.route-jump span { display: block; font: 400 var(--public-small)/1.5 var(--sans); color: var(--ink-soft); margin-top: var(--space-1); }
.sample-days { padding-block: var(--space-5); }
.sample-stop { display: grid; grid-template-columns: .9fr 1.1fr; gap: var(--space-5); align-items: center; padding-block: var(--space-3); scroll-margin-top: var(--space-12); }
.sample-stop > img { width: 100%; height: var(--public-compact-photo-height); object-fit: cover; border-radius: var(--public-radius); }
.sample-stop > div { min-width: 0; }
.sample-stop .eyebrow { margin-bottom: var(--space-2); }
.sample-stop h2 { font: 400 40px/1.15 var(--display); margin-bottom: var(--space-2); }
.sample-stop h3 { font-size: var(--public-body); font-weight: 500; margin-bottom: var(--space-2); }
.sample-stop p:not(.eyebrow) { color: var(--ink-soft); font-size: var(--public-body); max-width: 60ch; }
.flight-home { border-top: 1px solid var(--rule); padding-top: var(--space-3); text-align: center; font-size: var(--public-body); }
.policy-brief { padding-block: var(--space-3); border-block: 1px solid var(--rule); }
.policy-brief dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--space-4); }
.policy-brief dt { font-weight: 500; margin-bottom: var(--space-1); }
.policy-brief dd { color: var(--ink-soft); }
.policy-brief a { text-decoration: underline; text-underline-offset: 4px; }
.policy-document { display: grid; grid-template-columns: 240px minmax(0,1fr); gap: var(--space-8); padding-block: var(--space-5) var(--space-8); align-items: start; }
.policy-index { position: sticky; top: var(--space-12); max-height: calc(100vh - var(--space-12) - var(--space-3)); overflow-y: auto; padding-right: var(--space-2); }
.policy-index > p { font-weight: 500; margin-bottom: var(--space-2); }
.policy-index a { display: block; color: var(--ink-soft); font-size: var(--public-small); min-height: 44px; padding-block: var(--space-1); }
.policy-index a:hover { text-decoration: underline; }
.policy-content { min-width: 0; }
.policy-content p, .policy-content li { max-width: 78ch; color: var(--ink-soft); margin-block: var(--space-2); font-size: var(--public-body); }
.policy-content ul, .policy-content ol { padding-left: var(--space-3); }
.policy-content a { text-decoration: underline; text-underline-offset: 4px; }
.policy-intro { margin-bottom: var(--space-4); }
.policy-section { border-top: 1px solid var(--rule); padding-block: var(--space-2); scroll-margin-top: var(--space-12); }
.policy-section h2 { font: 400 28px/1.25 var(--display); margin: var(--space-2) 0; }
.policy-section > summary { cursor: pointer; min-height: 48px; padding-block: var(--space-1); }
.policy-section > summary h2 { display: inline; margin: 0; font: 500 var(--public-body)/1.5 var(--sans); letter-spacing: 0; }
.policy-section[open] { padding-bottom: var(--space-3); }
.not-found { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-8); padding-block: var(--space-10); align-items: center; }
.not-found > div > p:not(.eyebrow) { max-width: 45ch; font-size: var(--public-body); color: var(--ink-soft); margin-block: var(--space-3); }
@media(max-width:1000px) {
  .guide-body, .policy-document { grid-template-columns: 200px minmax(0,1fr); gap: var(--space-4); }
  .featured-reading, .info-grid { gap: var(--space-4); }
  .featured-guide { grid-template-columns: 1fr; }
  .featured-guide > img { height: var(--public-city-photo-height); }
  .split-intro, .guide-opening { gap: var(--space-4); }
  .destination-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
  .editorial-opening, .policy-opening { padding-block: var(--space-4); }
  .split-intro, .guide-opening, .library-opening, .not-found { grid-template-columns: 1fr; gap: var(--space-3); padding-block: var(--space-4); }
  .split-intro > img, .guide-opening > img { height: var(--public-compact-photo-height); }
  .guide-body, .policy-document { grid-template-columns: 1fr; gap: var(--space-4); }
  .guide-index, .policy-index { position: static; max-height: none; padding: 0; border: 0; }
  .guide-index a { display: inline-block; padding-right: var(--space-3); }
  .guide-index { padding-bottom: var(--space-3); border-bottom: 1px solid var(--rule); }
  .guide-content h2 { font-size: 28px; }
  .guide-content p { font-size: var(--public-body); }
  .guide-content > section { margin-bottom: var(--space-4); }
  .guide-timeline > li { padding-left: var(--space-4); margin-left: var(--space-2); }
  .guide-pair, .info-grid, .contact-grid, .reading-links, .featured-reading, .manual-library, .faq-group, .policy-brief dl { grid-template-columns: 1fr; }
  .info-section { padding-block: var(--space-3); }
  .info-panel, .guide-panel { padding: var(--space-3); }
  .fact-list > div { grid-template-columns: 1fr; gap: var(--space-1); padding-block: var(--space-2); }
  .topic-nav { gap: var(--space-1) var(--space-3); }
  .library-choices { border: 0; padding: 0; gap: 0; }
  .featured-reading { padding-bottom: var(--space-4); }
  .featured-guide > img { height: var(--public-compact-photo-height); }
  .section-heading { display: block; }
  .section-heading p { margin-top: var(--space-2); }
  .series-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .series-card { min-height: 48px; }
  .faq-group { gap: var(--space-2); }
  .faq-group > h2 { font-size: 28px; }
  .route-feature, .route-overview { padding-block: var(--space-4); }
  .route-jump { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .route-jump a { padding: var(--space-2); }
  .sample-stop { grid-template-columns: 1fr; gap: var(--space-3); padding-block: var(--space-3); }
  .sample-stop > img { height: var(--public-compact-photo-height); }
  .wide-photo > img { height: var(--public-mobile-photo-height); }
  .wide-photo > div { position: static; border-radius: 0; max-width: none; padding: var(--space-4) var(--space-3); }
  .policy-index nav { display: flex; gap: var(--space-1) var(--space-3); flex-wrap: wrap; }
  .policy-index a { display: inline-block; }
  .policy-section > summary h2 { font-size: var(--public-body); }
  .not-found { padding-block: var(--space-6); }
}
@media(max-width:400px) { .destination-grid { grid-template-columns: 1fr; } }
@media(max-width:700px) {
  .policy-index nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); max-height: none; overflow-y: visible; border-block: 1px solid var(--rule); padding-block: var(--space-1); }
  .policy-index a { min-width: 0; overflow-wrap: anywhere; }
}
/* Band wrappers contain the grid; they do not form another outer grid. */
.walkthrough-step { display: block; margin: 0; border: 0; }
.policy-tools { display: flex; justify-content: flex-end; margin-top: var(--space-3); }
.policy-tools button { min-height: 44px; padding: var(--space-1) var(--space-2); border: 1px solid var(--rule); border-radius: var(--public-radius); font-size: var(--public-small); background: var(--snow-2); }
.info-panel--green .fact-list dd, .guide-content .guide-panel--green p { color: var(--snow-2); }
.guide-content h3, .sample-stop h3 { font-weight: 600; }
/* Keep panel headings close to the content they introduce. */
.guide-panel h3 { margin-top: 0; }
.guide-content > section > h2 + .guide-pair { margin-top: 0; }
.guide-content .guide-pair { align-items: stretch; }
.info-panel > ul { padding-left: var(--space-3); }
.editorial-opening .eyebrow, .policy-opening .eyebrow, .featured-guide .eyebrow, .route-feature .eyebrow { margin-bottom: var(--space-4); }
.editorial-opening > p:not(.eyebrow), .policy-opening > p:not(.eyebrow) { margin-top: var(--space-2); }
.featured-guide h2, .route-feature h2, .guide-content h2 { margin-bottom: var(--space-2); }
.guide-panel { padding: var(--space-3); }
.info-section p, .policy-content p { max-width: 64ch; }
.info-section strong, .policy-content strong, .guide-content strong { font-weight: 600; }
@media(max-width:700px) {
  .guide-panel { padding: var(--space-2); }
  .guide-content h2 { margin-bottom: var(--space-1); }
  .sample-stop h2 { font-size: 32px; }
  .policy-index nav { max-height: none; overflow: visible; }
}
.sample-stop h2, .sample-stop h3, .destination-card h3 { margin-bottom: var(--space-1); }
.contact-grid h3 { font: 600 20px/1.3 var(--sans); margin-bottom: var(--space-2); }
@media(max-width:700px) { .guide-content p, .policy-section > summary h2 { font-size: var(--public-body); } }
.policy-section > summary h2 { font-weight: 600; }
.guide-content p { max-width: 64ch; }
.sample-stop .eyebrow { margin-bottom: var(--space-1); }
.sample-stop h2 { margin-bottom: var(--space-2); }
.sample-stop h3 { margin-bottom: var(--space-1); }
.info-section .center-heading { margin-bottom: var(--space-1); }
.change-comparison h3, .booking-sequence h3 { margin-bottom: var(--space-2); }
.editorial-opening > .btn { margin-top: var(--space-3); }
.info-section > .center-heading { margin-bottom: var(--space-2); }
.guide-script p { max-width: 56ch; }
.policy-status p { max-width: 64ch; }
.policy-more { margin-top: var(--space-2); border-top: 1px solid var(--rule); }
.policy-more > summary { min-height: 44px; padding-block: var(--space-2); cursor: pointer; }
.policy-index:has(.policy-more[open]) { position: static; max-height: none; overflow: visible; }
.accuracy-layout { grid-template-columns: 1.4fr 1fr; align-items: start; }
.accuracy-layout > .fact-list { margin-top: 0; }
.accuracy-example { max-width: var(--public-detail-capture-width); margin-inline: auto; }
.accuracy-example img { width: 100%; height: auto; border: 1px solid var(--rule); border-radius: var(--public-radius); }
.accuracy-example figcaption { color: var(--ink-soft); font-size: var(--public-small); margin-top: var(--space-2); }
@media(max-width:700px) { .accuracy-layout { grid-template-columns: 1fr; } }
.guide-content .guide-pair + p { margin-top: var(--space-3); }
.reading-links b { text-decoration: underline; text-underline-offset: 4px; }
