/* Static visitor companion: useful before the WebGL experience has loaded. */
.visitor-guide { background: #0d1720; color: #f6f3ec; }
.visitor-guide__nav { max-width: 90rem; margin: 0 auto; padding: 1.2rem var(--gutter); display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.visitor-guide__nav nav { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1.3rem; font-size: .85rem; }
.visitor-guide__nav nav a { display: flex; align-items: center; min-height: 44px; }
.visitor-guide__hero { max-width: 84rem; margin: 0 auto; padding: clamp(3rem, 8vw, 7rem) var(--gutter) clamp(3.5rem, 7vw, 6rem); display: grid; align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.visitor-guide__hero .caps { color: #acc0c8; font-size: .7rem; letter-spacing: .15em; margin: 0 0 1.5rem; }
.visitor-guide__hero h1 { font-size: clamp(2.2rem, 5vw, 4.8rem); line-height: 1.22; font-weight: 500; letter-spacing: .02em; margin: 0 0 1.5rem; }
.visitor-guide__lead { font-size: clamp(1rem, 1.4vw, 1.18rem); line-height: 1.85; color: #cad5d7; max-width: 38rem; }
.visitor-guide__hero figure { margin: 0; }
.visitor-guide__hero img { display: block; width: 100%; height: auto; border-radius: 3px; }
.visitor-guide__hero figcaption { font-size: .72rem; color: #b7c8cd; line-height: 1.6; padding-top: .7rem; }
.visitor-guide__contents { display: grid; justify-items: start; gap: .5rem; margin-top: 1.8rem; }
.visitor-guide__contents a { font-size: .9rem; line-height: 1.6; min-height: 44px; display: flex; align-items: center; border-bottom: 1px solid #738b90; }
.visitor-guide__paper { --text: #1e3439; --text-dim: #4b6165; background: #f2f1e9; color: #1e3439; padding: clamp(2.4rem, 6vw, 5rem) var(--gutter); }
.visitor-guide__paper > * { max-width: 68rem; margin-left: auto; margin-right: auto; }
.visitor-guide__paper a { color: #17616c; text-underline-offset: 3px; }
.visitor-guide__paper a:hover { text-decoration: underline; }
.visitor-guide__review { border-left: 2px solid #698e91; padding-left: 1.2rem; margin-bottom: clamp(3rem, 6vw, 5rem); }
.visitor-guide__review p { font-size: .82rem; line-height: 1.7; margin: 0 0 .3rem; max-width: 52rem; color: #4b6165; }
.visitor-guide__review p:first-child { font-weight: 600; color: #24484e; }
.visitor-guide__paper h2 { font-size: clamp(1.5rem, 3vw, 2.4rem); line-height: 1.4; font-weight: 500; margin: 0 0 1.8rem; }
.visitor-guide__answer { border-top: 1px solid #bdcccb; padding: clamp(1.5rem, 3vw, 2.5rem) 0; scroll-margin-top: 2rem; }
.visitor-guide__answer h3 { font-size: clamp(1.06rem, 1.8vw, 1.35rem); line-height: 1.65; font-weight: 600; margin: 0 0 .9rem; max-width: 56rem; }
.visitor-guide__answer > p { font-size: 1rem; line-height: 1.9; max-width: 56rem; margin: 0 0 .8rem; }
.visitor-guide__paper .visitor-guide__citation, .visitor-guide__paper .visitor-guide__method { font-size: .75rem; line-height: 1.85; color: #4b6165; }
.visitor-guide__citation a { text-decoration: underline; }
.visitor-guide__citation span { font-weight: 500; }
.visitor-guide__text-link { display: inline-flex; align-items: center; gap: .7rem; min-height: 44px; font-size: .83rem; line-height: 1.5; }
.visitor-guide__places { margin-top: clamp(3rem, 6vw, 5rem); }
.visitor-guide__place-grid { display: grid; gap: 1rem; }
.visitor-guide__place { padding: clamp(1.2rem, 3vw, 2rem); border: 1px solid #b9c9c6; background: #fafaf5; border-radius: 4px; scroll-margin-top: 2rem; }
.visitor-guide__place-number { color: #5e7d82; font-family: var(--font-en-serif); margin: 0 0 .5rem; font-size: 1.2rem; }
.visitor-guide__place h3 { font-family: var(--font-ja-serif); font-size: 1.2rem; line-height: 1.6; font-weight: 500; margin: 0 0 .8rem; }
:root[data-lang="en"] .visitor-guide__place h3 { font-family: var(--font-en-serif); font-size: 1.65rem; line-height: 1.25; }
.visitor-guide__place > p:not(.visitor-guide__place-number) { font-size: .88rem; line-height: 1.85; color: #4b6165; }
.visitor-guide__coordinate-note { font-size: .78rem; color: #4b6165; line-height: 1.8; margin: 1.2rem 0 0; max-width: 56rem; }
.visitor-guide__sources { border-top: 1px solid #bdcccb; padding-top: 2.5rem; margin-top: 4rem; }
.visitor-guide__sources ol { padding-left: 1.5rem; display: grid; gap: 1.1rem; }
.visitor-guide__sources li { font-size: .84rem; line-height: 1.6; padding-left: .2rem; overflow-wrap: anywhere; }
.visitor-guide__sources li > a { text-decoration: underline; }
.visitor-guide__sources li > span { display: block; color: #4b6165; font-size: .77rem; }
.visitor-guide__sources small { display: block; font-size: .72rem; color: #4b6165; }
.visitor-guide__data { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid #bdcccb; font-size: .8rem; line-height: 1.8; }
.visitor-guide__data a { display: inline-flex; min-height: 44px; align-items: center; font-weight: 600; text-decoration: underline; }
.visitor-guide__data p { max-width: 56rem; color: #4b6165; }
.visitor-guide__next { padding: clamp(3rem, 7vw, 6rem) var(--gutter); text-align: center; }
.visitor-guide__next h2 { font-size: clamp(1.5rem, 3.4vw, 2.7rem); line-height: 1.5; font-weight: 500; text-wrap: balance; margin: 0 0 1.5rem; }
.visitor-guide__next a { display: inline-flex; align-items: center; gap: 2rem; min-height: 48px; padding: .7rem 1.5rem; border: 1px solid #a4bdb7; border-radius: 3px; background: #1c3940; font-size: .9rem; }
.visitor-guide__footer { max-width: 84rem; margin: 0 auto; padding: 1.5rem var(--gutter) 2rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1.5rem; border-top: 1px solid #3c5158; font-size: .75rem; color: #bdcdcf; }
.visitor-guide__footer a, .visitor-guide__footer button { min-height: 44px; display: inline-flex; align-items: center; }
.visitor-guide__footer p { margin: 0; }
.visitor-guide a:focus-visible, .visitor-guide button:focus-visible { outline: 2px solid #ae8944; outline-offset: 5px; }
@media (min-width: 800px) { .visitor-guide__hero { grid-template-columns: 1.05fr 1fr; } .visitor-guide__place-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .visitor-guide__nav { align-items: flex-start; } .visitor-guide__nav .brand__sub { display: none; } .visitor-guide__nav nav { justify-content: flex-end; gap: 0 .9rem; } .visitor-guide__hero { padding-top: 2rem; } }
@media print { .visitor-guide__nav, .visitor-guide__hero figure, .visitor-guide__next, .visitor-guide__footer { display: none; } .visitor-guide, .visitor-guide__paper { background: white; color: black; } .visitor-guide__hero { padding: 1rem 0; } .visitor-guide__hero h1, .visitor-guide__lead { color: black; } .visitor-guide__answer { break-inside: avoid; } }
