/* Warm editorial details; core content remains usable without animation. */
.visit-guide { background:#f4efe4; display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(32px,6vw,88px); align-items:center; }
.visit-guide-photo { margin:0; position:relative; overflow:hidden; border-radius:160px 160px 18px 18px; aspect-ratio:4/5; background:#163b2c; }
.visit-guide-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.visit-guide-photo::after { content:''; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,rgba(4,24,17,.85)); pointer-events:none; }
.visit-guide-photo figcaption { position:absolute; bottom:32px; left:32px; right:32px; z-index:1; color:#fff5db; font:400 clamp(26px,3vw,42px)/1.15 Georgia,serif; }
.visit-guide h2 { font-size:clamp(32px,4vw,52px); line-height:1.12; letter-spacing:-.035em; margin:18px 0 28px; color:#153a2b; }
.visit-guide details { border-top:1px solid #c8bea7; padding:20px 0; }
.visit-guide details:last-of-type { border-bottom:1px solid #c8bea7; }
.visit-guide summary { cursor:pointer; font-size:18px; font-weight:600; color:#163b2c; padding-right:8px; }
.visit-guide summary::marker { color:#997432; }
.visit-guide details p { margin:16px 0 8px; color:#455549; }
.visit-guide details a { text-decoration:underline; text-underline-offset:4px; color:#244d38; }
.visit-guide .guide-action { margin-top:28px; }
.gallery-grid figure,.location-media,.location-photo-grid a { overflow:hidden; }
.gallery-grid img,.location-media img,.location-photo-grid img,.visit-guide-photo img { transition:transform 700ms cubic-bezier(.22,.61,.36,1); }
.location-photo-grid a { display:block; border-radius:6px; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:2px solid #a87c30; outline-offset:5px; }
@media(hover:hover) and (pointer:fine) {
 .gallery-grid figure:hover img,.location-card:hover .location-media img,.visit-guide-photo:hover img { transform:scale(1.045); }
 .location-photo-grid a:hover img { transform:scale(1.07); }
}
.location-photo-grid a:focus-visible img { transform:scale(1.04); }
@media(max-width:700px) { .visit-guide{grid-template-columns:1fr;gap:32px}.visit-guide-photo{aspect-ratio:4/3;border-radius:100px 100px 16px 16px}.visit-guide summary{font-size:17px} }
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto!important; }
 *,*::before,*::after { animation:none!important; transition:none!important; }
 .reveal { opacity:1!important; transform:none!important; }
 .gallery-grid figure:hover img,.location-card:hover .location-media img,.visit-guide-photo:hover img,.location-photo-grid a:hover img,.location-photo-grid a:focus-visible img { transform:none!important; }
}
.destination-grid .destination-card { position:relative; overflow:hidden; transition:background .3s,color .3s,transform .35s,box-shadow .35s; }
.destination-grid .destination-card:nth-child(odd) { --hover-bg:#143d2c; --hover-ink:#fff5df; }
.destination-grid .destination-card:nth-child(even) { --hover-bg:#edc56c; --hover-ink:#162d22; }
.destination-grid .destination-card.destination-nicoya { background:#edc56c; color:#162d22; border-color:#d5a748; --hover-bg:#143d2c; --hover-ink:#fff5df; }
.destination-nicoya p { font-size:.85rem; line-height:1.5; margin:8px 0 0; max-width:26ch; }
.destination-card > span { transition:transform .35s; }
.destination-grid .destination-card:focus-visible { background:var(--hover-bg);color:var(--hover-ink); }
@media(hover:hover) and (pointer:fine) {
 .destination-grid .destination-card:hover { background:var(--hover-bg);color:var(--hover-ink);transform:translateY(-5px);box-shadow:0 12px 24px #143d2c18; }
 .destination-card:hover > span { transform:translate(3px,-3px); }
}
@keyframes destination-arrive { from { opacity:.5;translate:0 16px; } to { opacity:1;translate:0 0; } }
@media(prefers-reduced-motion:no-preference) { .destination-entered { animation:destination-arrive .55s cubic-bezier(.22,.61,.36,1) both;animation-delay:var(--card-delay); } }
[hidden] { display:none!important; }

/* Shared header refinement and original menu sheets. */
.site-header .brand-logo{width:96px;height:96px}
.site-header .brand-wordmark .brand-name{font-size:33px}
.site-header .brand-wordmark .brand-kicker{font-size:12px}
.menu-sheet-note{max-width:760px;margin:1rem 0 2rem;line-height:1.7}
.menu-sheet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.menu-sheet{border:1px solid #d2c9b7;border-radius:16px;overflow:hidden;background:#fffdf7}
.menu-sheet a{display:block;padding:20px;color:inherit;text-decoration:none}
.menu-sheet img{display:block;width:100%;height:340px;object-fit:contain;background:#f1ecdf;transition:transform .35s ease}
.menu-sheet h3{margin:20px 0 8px;font-size:1.3rem}
.menu-sheet span{font-size:.95rem;color:#345242}
.menu-sheet a:focus-visible{outline:3px solid #b78323;outline-offset:-4px}
@media(hover:hover){.menu-sheet a:hover img{transform:scale(1.025)}.menu-sheet a:hover{background:#f5edd8}}
@media(max-width:900px){.menu-sheet-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.site-header .brand-logo{width:74px;height:74px}.site-header .brand-wordmark .brand-name{font-size:27px}.site-header .brand-wordmark .brand-kicker{font-size:10px}.menu-sheet-grid{grid-template-columns:1fr}.menu-sheet img{height:auto;max-height:440px}}
@media(max-width:360px){.site-header .brand-logo{width:70px;height:70px}.site-header .brand-wordmark .brand-name{font-size:24px}.site-header .brand-wordmark .brand-kicker{font-size:9px}}
@media(prefers-reduced-motion:reduce){.menu-sheet img{transition:none}}

/* Seven navigation destinations: keep the header comfortable on laptops. */
@media(max-width:1500px){.desktop-nav{display:none}.menu-toggle{display:block}.nav-actions{margin-left:auto}}

/* Service overview and location-specific maps. */
.services-intro{max-width:760px;line-height:1.7;margin:22px 0 36px}
.brand-services{background:#eee8d9}
.brand-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.brand-service-card{background:#fffdf7;border:1px solid #d4cbb9;border-radius:18px;overflow:hidden}
.brand-service-card>img{display:block;width:100%;height:260px;object-fit:cover;transition:filter .3s}
.brand-service-card>div{padding:28px}
.brand-service-card h3{font-size:1.5rem;margin:0 0 16px}
.brand-service-card p{line-height:1.7;margin:0 0 22px}
.restaurant-map-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:32px}
.restaurant-map-grid.map-single{grid-template-columns:1fr}
.location-map-card{min-width:0}
.location-map-card h3{font-size:1.4rem;margin:0 0 18px}
.location-map-card iframe{display:block;width:100%;height:360px;border:0;border-radius:16px;background:#e8e4d9;margin-bottom:20px}
@media(hover:hover){.brand-service-card:hover>img{filter:brightness(1.07)}}
@media(max-width:650px){.brand-service-grid,.restaurant-map-grid{grid-template-columns:1fr}.brand-service-card>img{height:220px}.brand-service-card>div{padding:22px}.location-map-card iframe{height:300px}}
@media(prefers-reduced-motion:reduce){.brand-service-card>img{transition:none}}
