/* Additions on top of the original compiled stylesheet (site.css). */

[hidden] { display: none !important; }

/* Discourage saving photos by dragging (as on the original site). */
img { -webkit-user-drag: none; user-select: none; }

/* Fade-up as sections scroll into view (only when JS is running). */
.js .reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.7s ease, transform 0.7s ease; }
.js .reveal.is-visible { opacity: 1; transform: none; }

/* Hero "scroll" hint line */
.hj-scroll-line { transform-origin: top; animation: hj-scroll 2s ease-in-out infinite; }
@keyframes hj-scroll { 0%, 100% { transform: scaleY(0.3); opacity: 0.4; } 50% { transform: scaleY(1); opacity: 1; } }

/* Keep anchored rooms/attractions clear of the fixed nav bar */
.hj-anchor { scroll-margin-top: 96px; }

/* Room price on home cards */
.hj-price-sm { font-size: 1.05rem; font-weight: 600; }

/* Native <select> styled like the original dropdown buttons */
.hj-select { appearance: none; -webkit-appearance: none; padding-right: 2.25rem; cursor: pointer; }
.hj-select:invalid, .hj-select option[value=""] { color: hsl(var(--muted-foreground)); }
.hj-select option { color: hsl(var(--foreground)); }
.hj-select-icon { position: absolute; right: 0.75rem; top: 50%; transform: translateY(-50%); pointer-events: none; }

/* Spam trap field, invisible to people */
.hj-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; opacity: 0; }

/* FAQ accordion */
.hj-collapse { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.2s ease-out; }
.hj-collapse > div { min-height: 0; overflow: hidden; }
[data-state="open"] > .hj-collapse { grid-template-rows: 1fr; }
[data-state="open"] .js-accordion-btn svg { transform: rotate(180deg); }

/* Dialog + lightbox entrance */
.hj-fade { animation: hj-fade 0.2s ease-out; }
.hj-zoom { animation: hj-zoom 0.2s ease-out; }
@keyframes hj-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes hj-zoom { from { opacity: 0; scale: 0.95; } to { opacity: 1; scale: 1; } }
.hj-lock { overflow: hidden; }

/* Toast notifications */
.hj-toast {
    pointer-events: auto; margin-top: 0.5rem; padding: 1rem 1.25rem; border-radius: 0.375rem;
    background: hsl(var(--background)); color: hsl(var(--foreground)); border: 1px solid hsl(var(--border));
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    animation: hj-toast 0.25s ease-out;
}
.hj-toast strong { display: block; font-size: 0.875rem; font-weight: 600; }
.hj-toast span { display: block; font-size: 0.875rem; opacity: 0.9; margin-top: 0.15rem; }
@keyframes hj-toast { from { opacity: 0; transform: translateY(0.5rem); } to { opacity: 1; transform: none; } }

.hj-amenity:hover { border-top-color: rgb(217, 138, 30) !important; }
.hj-call:hover { background: rgb(217, 138, 30); }

@media (prefers-reduced-motion: reduce) {
    .js .reveal { opacity: 1; transform: none; transition: none; }
    .hj-scroll-line, .hj-fade, .hj-zoom, .hj-toast { animation: none; }
}
