/* Small, single-pass movement; all content remains visible without JavaScript. */
.hero-image { animation: none; }

@media (prefers-reduced-motion: no-preference) {
    .button {
        transition: background .3s ease, color .3s ease, border-color .3s ease,
            transform .3s cubic-bezier(.22,.68,.2,1), box-shadow .3s ease;
    }

    .image-button img { transition: transform 1s cubic-bezier(.22,.68,.2,1); }
    .stay-title a { transition: color .25s ease; }
    .save-button { transition: background .25s ease, transform .25s ease; }
    .promotion-filter { transition: background .25s ease, color .25s ease, border-color .25s ease; }
    .contact-widget summary { transition: background .25s ease, box-shadow .25s ease; }
    .contact-widget[open] .contact-widget-panel { animation: corali-panel-enter .28s cubic-bezier(.22,.68,.2,1); }
    .mobile-nav:not([hidden]) { animation: corali-panel-enter .24s ease-out; }

    @media (hover: hover) and (pointer: fine) {
        .button:hover { transform: translateY(-2px); box-shadow: 0 6px 16px #183e4514; }
        .button:active { transform: translateY(0); box-shadow: none; }
        .save-button:hover { transform: scale(1.06); }
        .stay-card:focus-within .image-button img { transform: scale(1.025); }
        .contact-widget summary:hover { background: #2f5358; box-shadow: 0 8px 24px #183e4524; }
    }
}

@keyframes corali-panel-enter {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .hero-image, .button, .save-button, .image-button img { transform: none !important; }
}
