/* v1.5: bounded padding, not viewport-derived padding inside capped containers. */
.reading-shell{display:block;width:100%;max-width:1240px;margin-inline:auto;padding:clamp(28px,4vw,56px) clamp(20px,3vw,48px);box-sizing:border-box}
.reading-document{display:block;width:100%;max-width:1120px;min-width:0;margin:0 auto;padding:0;column-count:1;column-width:auto}
.reading-document.prose{font-size:1.125rem;line-height:1.85;word-break:normal;overflow-wrap:break-word}
.reading-document p,.reading-document h2,.reading-document h3,.reading-document ul{max-width:none}
.reading-document .lede{font-size:1.35rem}
.reading-document .contact-box{margin-top:32px}
.profile-page{display:block;width:100%;max-width:1280px;margin-inline:auto;padding:clamp(28px,4vw,56px) clamp(20px,3vw,48px)}
.profile-layout{display:block;min-width:0}
.profile-page .detail-heading{max-width:none}
.profile-media{width:100%;max-width:760px;margin:0 auto 36px}
.profile-media .photo-viewer,.profile-media .detail-cover{width:100%;margin:0}
.profile-media .slideshow-image{display:block;width:100%;height:auto;max-height:660px;object-fit:contain;background:#f0f2f3}
.profile-media .slideshow-open{display:block;width:100%;padding:0}
.profile-media>.detail-cover{display:block;max-height:660px;object-fit:contain}
.profile-copy{display:block;float:none;clear:both;width:100%;max-width:1120px;min-width:0;margin-inline:auto;font-size:1.125rem;line-height:1.85}
.profile-copy p,.profile-copy h2{max-width:none}
.profile-copy .lede{font-size:1.3rem}
.detail-media{min-width:0}
/* Optional comparisons never replace the ordinary photo/audio viewer. */
.history-comparison{clear:both;margin:34px 0 26px;padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:14px}
.history-comparison h2{font-size:1.8rem}
.compare-canvas{position:relative;width:100%;aspect-ratio:var(--compare-aspect,1.3333);overflow:hidden;background:#e9edf0;border-radius:10px;border:1px solid var(--line)}
.compare-canvas img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:contain}
.compare-canvas .compare-then{clip-path:inset(0 calc(100% - var(--reveal,50%)) 0 0)}
.compare-badge{position:absolute;top:12px;padding:6px 12px;border:1px solid #ffffff80;background:#0d2f50ed;color:#fff;border-radius:6px;font-size:.9rem;font-weight:700;max-width:45%;overflow-wrap:anywhere;z-index:2}
.compare-badge-then{left:12px}.compare-badge-now{right:12px}
.compare-divider{position:absolute;top:0;bottom:0;left:var(--reveal,50%);width:3px;background:#fff;box-shadow:0 0 0 1px #19364b;transform:translateX(-50%);pointer-events:none}
.compare-range{width:100%;padding:0;min-height:48px;accent-color:var(--blue);cursor:ew-resize}
.compare-buttons{gap:10px}.compare-buttons button{min-height:46px;font-size:1rem}
.compare-buttons button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.compare-originals{margin-top:18px}.compare-originals summary{padding-block:10px}
.compare-original-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px}
.compare-original-grid figure{margin:0;min-width:0}.compare-original-grid img{width:100%;height:auto;object-fit:contain}.compare-original-grid h3{font:700 1rem/1.4 system-ui;margin-bottom:9px}
.compare-original-grid figcaption{padding:8px 0;font-size:.95rem}.compare-original-grid small{display:block;margin-top:4px}
.related-history{clear:both;margin:48px 0 18px;padding-top:34px;border-top:1px solid var(--line)}
.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:24px}
.related-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden;min-width:0}
.related-picture{display:block;aspect-ratio:1.6;background:#edf0f2}.related-picture img{display:block;width:100%;height:100%;object-fit:contain}
.related-copy{padding:22px}.related-copy h3{font-size:1.45rem}.related-copy p{font-size:1rem;overflow-wrap:break-word}.related-copy .eyebrow{font-size:.75rem}.related-copy .related-period{font-size:.95rem;font-weight:700}
.relation-admin-row{border:1px solid var(--line,#c9d4de);border-radius:10px;padding:22px;margin:18px 0}.relation-admin-row h3{margin:0 0 8px}
.comparison-admin-preview{max-width:1000px;margin-inline:auto}
/* Device-local accessibility preferences. These enhance, not replace, semantic markup. */
html[data-text-size=normal]{font-size:100%}html[data-text-size=large]{font-size:125%}html[data-text-size=xlarge]{font-size:150%}
body{font-size:1rem}
.topline{gap:16px;align-items:center;flex-wrap:wrap}.topline-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.accessibility-settings{position:relative;padding:0;border:0;margin:0;text-transform:none;letter-spacing:normal;z-index:95;color:var(--ink)}
.accessibility-settings>summary{display:flex;gap:8px;align-items:center;min-height:44px;padding:7px 12px;border:1px solid #ffffff90;border-radius:7px;font:650 .95rem/1.25 system-ui;color:#fff;background:transparent;list-style:none}
.accessibility-settings>summary::-webkit-details-marker{display:none}.accessibility-settings>summary>span{font:700 1.1rem/1 Georgia,serif;color:inherit}
.accessibility-settings[open]>summary{background:#ffffff20}
.accessibility-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(350px,calc(100vw - 40px));padding:22px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 38px #10263b33;text-align:left;font:1rem/1.6 system-ui}
.accessibility-panel h2{font-size:1.35rem;margin:0 0 12px}.accessibility-panel p{font-size:.9rem;letter-spacing:normal}.accessibility-panel label{font-size:1rem;margin:14px 0 6px}.accessibility-panel .checkline{display:flex;gap:10px;align-items:center}.accessibility-panel .checkline input{width:22px;height:22px;min-height:22px;margin:0}.accessibility-panel select{font-size:1rem;width:100%}
.accessibility-panel .a11y-state:empty{display:none}.accessibility-panel .field-note{font-size:.85rem;margin-top:12px}
.admin-language-bar{display:flex;gap:20px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.admin-language-bar .accessibility-settings>summary{color:var(--ink);border-color:var(--ink)}
/* Underlines and dual-color focus rings stay perceivable against light and dark surfaces. */
body :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #082746;outline-offset:4px;box-shadow:0 0 0 4px #fff}
.reading-document a,.profile-copy a,.related-copy h3 a{text-decoration:underline;text-underline-offset:.18em}
:root{--coral:#bd341d}
html[data-reduce-motion=true]{scroll-behavior:auto!important}
html[data-reduce-motion=true] *,html[data-reduce-motion=true] *::before,html[data-reduce-motion=true] *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
html[data-contrast=high]{color-scheme:dark;--navy:#153e61;--blue:#ffe79f;--coral:#8c230e;--cream:#071c2c;--paper:#0c283b;--ink:#fff;--muted:#e1ebf2;--line:#92b2c9;--sage:#123c45;--gold:#ffe79f;--shadow:none}
html[data-contrast=high] body{background:var(--cream);color:var(--ink)}
html[data-contrast=high] :is(.reading-document,.profile-copy,.story-card,.card-copy,.panel,.membership-level,.walk-option,.custom-walk-card,.intro-strip,.tinted,.map-heading,.map-footer,.collection-notice,.access-warning,.contact-box,.notice,.demo-notice,.directions-panel,.audio-dock,.slideshow-controls,.meeting-row,.community-form,.join-success,.membership-bonus,.map-popup,.stop-picker,.tour-card,.stop-option,.stop-copy,.collection-filters,.planner-controls,.accessibility-panel,.relation-admin-row){background:var(--paper);color:var(--ink);border-color:var(--line)}
html[data-contrast=high] :is(h1,h2,h3,p,small,label,summary,strong,.eyebrow,.field-note,.badge,.card-copy p,.footer-brand p,#audio-status){color:inherit}
html[data-contrast=high] :is(.eyebrow,.text-link,.reading-document a,.profile-copy a,.card-copy a,.related-copy a){color:#ffe79f}
html[data-contrast=high] :is(button,input,select,textarea,.button.outline){background:#123751;color:#fff;border-color:#c5dceb}
html[data-contrast=high] :is(.button.coral,.button.navy,#audio-toggle){background:#ffe79f;color:#08243a;border-color:#ffe79f}
html[data-contrast=high] .site-header a{color:#fff}html[data-contrast=high] .site-header a.coral{color:#08243a}
html[data-contrast=high] .map-attribution{background:#fff;color:#123}.map-attribution a{color:#123}
html[data-contrast=high] :is(a,button,input,select,textarea,summary):focus-visible{outline-color:#ffe79f;box-shadow:0 0 0 3px #071c2c}
html[data-contrast=high] .compare-buttons button[aria-pressed=true]{background:#ffe79f;color:#08243a}
/* No fixed text-height boxes: increased fonts and browser zoom can reflow. */
html:not([data-text-size=normal]) :is(.card-copy p,.walk-option p,.footer-brand p,.footer-links,.audio-actions button,.audio-actions select,.audio-info #audio-status,.meeting-row p,.community-form label,.field-note){font-size:1rem!important;line-height:1.65}
html:not([data-text-size=normal]) :is(.site-header,.footer-brand,.section-heading){flex-wrap:wrap}
html:not([data-text-size=normal]) .site-header #main-nav{flex-wrap:wrap;justify-content:flex-end}
html:not([data-text-size=normal]) .site-footer{grid-template-columns:1fr}
html:not([data-text-size=normal]) .footer-links{align-items:flex-start}
html:not([data-text-size=normal]) .facebook-footer-link{white-space:normal!important}
html:not([data-text-size=normal]) .detail-layout{grid-template-columns:1fr}
html:not([data-text-size=normal]) .membership-levels{grid-template-columns:repeat(2,minmax(0,1fr))}
html:not([data-text-size=normal]) .walk-layout{grid-template-columns:1fr}
html:not([data-text-size=normal]) .join-layout{grid-template-columns:1fr}
.sponsor-strip{flex-wrap:wrap}
.site-header{min-width:0}.site-header nav{min-width:0}.brand{flex:none}
@media(max-width:1200px){.site-header{flex-wrap:wrap}.site-header nav{flex-wrap:wrap;justify-content:flex-end;gap:12px}.site-header nav a{font-size:1rem}.site-header nav .button{font-size:1rem}.notable-home-card{gap:24px}}
@media(min-width:851px){html[data-text-size=normal] .facebook-footer-link{white-space:nowrap!important}}
@media(max-width:850px){.related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compare-original-grid{grid-template-columns:1fr}.profile-media{max-width:680px}.facebook-footer-link{white-space:normal!important}.profile-page{padding-inline:24px}.reading-shell{padding-inline:24px}}
@media(max-width:760px){.site-header{flex-wrap:wrap}.site-header nav{justify-content:flex-start}.site-header nav.open{width:100%}.related-grid{grid-template-columns:1fr}.history-comparison{padding:18px}.topline{align-items:flex-start;gap:4px}.topline-controls{width:100%;justify-content:space-between;gap:8px}.accessibility-settings>summary{padding:6px 10px;font-size:.85rem}.accessibility-panel{position:absolute;right:0}.profile-copy,.reading-document.prose{font-size:1.05rem}.profile-media .slideshow-image{max-height:580px}.related-copy h3{font-size:1.4rem}.profile-copy .lede{font-size:1.2rem}.reading-shell,.profile-page{padding-inline:22px}.reading-document .lede{font-size:1.2rem}.footer-brand{flex-wrap:wrap}.footer-links{width:100%;min-width:0}.admin-columns{grid-template-columns:1fr}}
@media(max-width:440px){html:not([data-text-size=normal]) .membership-levels{grid-template-columns:1fr}.compare-buttons{display:grid;grid-template-columns:1fr}.compare-badge{font-size:.8rem;padding:5px}.accessibility-panel{padding:16px;width:min(350px,calc(100vw - 28px))}.profile-page h1{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media print{.accessibility-settings,.compare-enhanced,.compare-originals>summary{display:none!important}.compare-originals:not([open])>.compare-original-grid,.compare-originals>.compare-original-grid{display:grid!important}.profile-page,.reading-shell{max-width:none;padding:0}.related-history{break-inside:avoid}.history-comparison{break-inside:avoid}.topline,.site-header{display:none!important}}

/* High-contrast surfaces must also override legacy literal background colors and gradients. */
html[data-contrast=high] :is(.page-banner,.facebook-callout,.notable-home-card,.photo-viewer,.photo-viewer figcaption,.photo-controls,.route-summary,.route-message,.map-toolbar,.map-error,.stop-pick,.address-results,.detail-sidebar,.audio-return,.public-empty,.gallery-placeholder,.person-relationship,.member-stats>*,.join-layout>.panel,.gift-page>.panel,.donation-panel,.chip:has(input:checked)){background:var(--paper);color:var(--ink);border-color:var(--line)}
html[data-contrast=high] :is(.badge,.image-badge){background:#264c63;color:#fff}
html[data-contrast=high] input::placeholder,html[data-contrast=high] textarea::placeholder{color:#c6d7e0;opacity:1}
html[data-contrast=high] .language-switch a:not(.active){color:#123751}
@media(max-width:760px){.topline-controls{position:relative}.topline-controls .accessibility-settings{position:static}.topline-controls .accessibility-panel{right:0;top:calc(100% + 8px);width:350px;max-width:100%}}
/* Intrinsic select/button widths must not widen narrow form grid tracks at 200% text. */
.join-layout>*,.public-field,.community-form{min-width:0;max-width:100%}
.public-field input,.community-form select,.community-form input,.community-form textarea{min-width:0;max-width:100%}
.community-form button,.join-layout .panel,.membership-level,.contact-box{overflow-wrap:anywhere}
html:not([data-text-size=normal]) .join-layout{grid-template-columns:minmax(0,1fr)}
@media(max-width:760px){.join-layout{grid-template-columns:minmax(0,1fr)}}
.page-banner h1,.accessibility-panel,.accessibility-panel h2,.topline-controls{overflow-wrap:anywhere}
.accessibility-panel{box-sizing:border-box}
