/* SSR content is readable with JavaScript disabled; enhancements never rewrite CMS blocks. */
.reveal, html.js .reveal { opacity: 1; transform: none; }
.mobile-nav { display: none; }
@media (max-width: 1023px) { .mobile-nav { display: grid; } .js .mobile-nav[hidden] { display: none; } }
.preview-banner { padding: 12px 5vw; color: #fff; background: #395c43; text-align: center; }
.travel-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; }
.travel-card img { width: 100%; aspect-ratio: 3/2; object-fit: cover; border-radius: 3px; margin-bottom: 24px; }
.travel-card h3 { font-size: clamp(22px, 2vw, 30px); line-height: 1.4; margin: 12px 0; }
.travel-card > p { margin-bottom: 18px; }
.travel-categories, .travel-pagination { display: flex; gap: 24px; flex-wrap: wrap; margin-bottom: 40px; }
.travel-categories a { padding-bottom: 8px; border-bottom: 1px solid transparent; }
.travel-categories [aria-current] { border-color: currentColor; }
.travel-pagination { margin-top: 48px; justify-content: space-between; }
.empty-state { grid-column: 1/-1; padding: 48px 0; border-block: 1px solid #dedfd4; }
.article-page { padding-bottom: 100px; }
.article-page .page-heading { max-width: 960px; margin-inline: auto; }
.article-page h1 { font-size: clamp(32px, 5vw, 68px); overflow-wrap: anywhere; }
.article-cover { width: 100%; max-height: 620px; object-fit: cover; }
.article-body { max-width: 800px; margin: 64px auto; font-size: 18px; line-height: 1.9; overflow-wrap: anywhere; }
.article-body > * + * { margin-top: 1.4em; }
.article-body img { max-width: 100%; height: auto; }
.article-body h2, .article-body h3 { line-height: 1.4; }
.article-body a { text-decoration: underline; }
.article-return { max-width: 800px; margin-inline: auto; }
.visitor-info { border-top: 1px solid #dedfd4; padding-top: 64px; }
.visitor-info > h2 { font-size: clamp(30px, 4vw, 48px); margin-bottom: 36px; }
.visitor-info .info-columns { width: 100%; margin: 0; }
.site-dialog { border: 0; border-radius: 5px; padding: 50px; width: min(92vw, 650px); max-height: 85vh; color: #263b2c; background: #f8f7f1; }
.site-dialog::backdrop { background: rgb(15 30 19 / 55%); }
.site-dialog p { margin-block: 20px; line-height: 1.8; white-space: pre-line; }
.site-dialog h2 { font-size: 32px; }
#visit-plan-form label { display: block; margin-bottom: 8px; }
#visit-plan-form input, #visit-plan-form select { width: 100%; padding: 12px; border: 1px solid #bdc7b9; border-radius: 3px; background: #fff; color: #263b2c; }
#visit-error { color: #a33128; }
#visit-plan-result:not(:empty) { margin-block: 28px; padding: 24px; border: 1px solid #bdc7b9; }
#visit-plan-result ul { padding-left: 20px; margin-block: 16px; }
.site-dialog [hidden] { display: none; }
.site-dialog .dialog-close { position: absolute; top: 12px; right: 18px; font-size: 28px; }
@media (max-width: 767px) { .travel-grid { grid-template-columns: 1fr; gap: 44px; } .site-dialog { padding: 38px 24px; } .article-body { margin-block: 36px; } }
