:root { color-scheme: light; }
html { scroll-padding-top: 6rem; }
body { color: #252b31; overflow-wrap: break-word; }
main:focus { outline: none; }
a, button { touch-action: manipulation; }
:focus-visible { outline: 3px solid #f0a43a; outline-offset: 4px; }
.skip-link { position: absolute; left: 1rem; top: -10rem; z-index: 2000; background: #fff; color: #172b3a; padding: .75rem 1rem; }
.skip-link:focus { top: 1rem; }
.navbar-brand { font-weight: 600; }
.nav-link { padding-top: .7rem; padding-bottom: .7rem; }
.hero-section { background-color: #324b5a; }
.hero-title { text-wrap: balance; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; }
.hero-actions .btn { margin: 0 !important; }
.hero-section .badge.bg-info { color: #152c38; }
.hero-section .badge { white-space: normal; text-align: left; }
.tour-card, .village-card { transition: transform .2s ease; margin-bottom: 20px; }
.tour-card:hover, .village-card:hover { transform: translateY(-4px); }
.tour-card img, .card-img-top { width: 100%; height: 220px; object-fit: cover; }
.feature-icon { font-size: 2rem; margin-bottom: 1rem; color: #0d6efd; }
.gallery-trigger { display: block; width: 100%; padding: 0; background: transparent; border: 0; border-radius: .5rem; }
.gallery-trigger img { display: block; width: 100%; height: 220px; object-fit: cover; border-radius: inherit; }
.customer-img-index { aspect-ratio: 4 / 3; }
.gallery-trigger .customer-img-index { height: auto; }
.gallery-trigger:hover img { filter: brightness(.94); }
#modalImage { max-height: 75vh; width: auto; height: auto; object-fit: contain; }
.program-day { border-left: 3px solid #0d6efd; padding-left: 15px; margin-bottom: 25px; }
.price-include li, .price-exclude li { margin-bottom: 10px; }
.price-include li::before, .price-exclude li::before { font-family: "Font Awesome 6 Free"; font-weight: 900; margin-right: 10px; }
.price-include li::before { content: "\f00c"; color: #1d7032; }
.price-exclude li::before { content: "\f00d"; color: #b02a37; }
.demo-avatar { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; flex: 0 0 56px; border-radius: 50%; background: #edf2f7; color: #456075; font-size: 1.3rem; margin-right: .75rem; }
.demo-result { padding: .85rem; border: 1px solid currentColor; border-radius: .375rem; }
fieldset { min-width: 0; }
footer { background: #343a40; color: white; }
.footer-menu li { margin-bottom: .6rem; }
.footer-menu a { color: #fff; }
.case-cover { display: block; width: 100%; height: auto; border-radius: .75rem; }
.case-mobile { display: block; width: 100%; max-width: 280px; height: auto; margin-inline: auto; border-radius: .75rem; }
.case-main { max-width: 960px; }
.case-main p, .case-main li { line-height: 1.75; }
.case-meta { display: flex; flex-wrap: wrap; gap: .5rem; }
@media (max-width: 767px) {
    .hero-section { padding: 64px 0 !important; }
    .hero-title { font-size: clamp(1.85rem, 7vw, 2.75rem) !important; }
    .hero-actions .btn { flex: 1 1 210px; }
    .hero-actions { max-width: 420px; margin-inline: auto; }
    .gallery-trigger img { height: 190px; }
    .tour-card img { height: 210px; }
    .navbar-brand { font-size: 1.15rem; }
    .hero-section .btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
