/* Movimiento suave y realista (entrada + hover). Respeta prefers-reduced-motion. */

:root {
    --motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
    --motion-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --motion-dur: .55s;
}

/* Entrada al scroll */
html.js .kt-reveal {
    opacity: 0;
    transform: translateY(18px);
    transition:
        opacity var(--motion-dur) var(--motion-ease),
        transform var(--motion-dur) var(--motion-ease);
    will-change: opacity, transform;
}
html.js .kt-reveal.is-visible {
    opacity: 1;
    transform: none;
}
html.js .kt-reveal[data-delay="1"] { transition-delay: .06s; }
html.js .kt-reveal[data-delay="2"] { transition-delay: .12s; }
html.js .kt-reveal[data-delay="3"] { transition-delay: .18s; }
html.js .kt-reveal[data-delay="4"] { transition-delay: .24s; }

/* Botones */
.btn,
a.btn,
button.btn {
    transition:
        transform .22s var(--motion-ease),
        box-shadow .28s var(--motion-ease),
        background .22s ease,
        filter .22s ease,
        border-color .22s ease;
}
.btn:hover,
a.btn:hover {
    transform: translateY(-2px);
}
.btn:active,
a.btn:active {
    transform: translateY(0) scale(0.98);
}

/* Cards y bloques */
.service-card,
.benefit-card,
.help-card,
.vehicle-card,
.review-card,
.stat-card,
.discover-guide-card,
.prices-note-box,
.prices-header-box,
.summary-card,
.finder {
    transition:
        transform .35s var(--motion-ease),
        box-shadow .35s var(--motion-ease),
        border-color .25s ease;
}
.service-card:hover,
.benefit-card:hover,
.vehicle-card:hover,
.discover-guide-card:hover,
.help-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 36px rgba(10, 31, 68, 0.12);
}
.stat-card:hover {
    transform: translateY(-3px);
}

/* Tabla precios */
.prices-table tbody tr {
    transition: background .2s ease, transform .2s var(--motion-ease);
}
.prices-table tbody tr:hover {
    background: rgba(117, 199, 237, 0.12);
}
.prices-table tbody tr td a {
    transition: color .2s ease, padding-left .25s var(--motion-ease);
}
.prices-table tbody tr:hover td a {
    color: #0a1f44;
}

/* Enlaces nav / footer */
.nav-link,
.footer a,
.popular-chip {
    transition: color .2s ease, opacity .2s ease, transform .22s var(--motion-ease), background .22s ease;
}
.popular-chip:hover {
    transform: translateY(-2px);
}

/* WhatsApp flotante */
.whatsapp-float {
    transition: transform .3s var(--motion-ease), box-shadow .3s ease;
}
.whatsapp-float:hover {
    transform: translateY(-3px) scale(1.04);
}

/* Flecha arriba / scroll hero */
.back-to-top {
    transition: transform .25s var(--motion-ease), opacity .25s ease, background .2s ease;
}
.hero-scroll-indicator {
    animation: kt-bounce 2.2s var(--motion-ease) infinite;
}
@keyframes kt-bounce {
    0%, 100% { transform: translateY(0); opacity: .85; }
    50% { transform: translateY(8px); opacity: 1; }
}

/* Hero chips */
.hero-features-mini {
    transition: box-shadow .35s ease, transform .35s var(--motion-ease);
}
.hero-feature-mini {
    transition: background .25s ease, transform .25s var(--motion-ease);
}
.hero-feature-mini:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.16);
}

/* Imágenes destino */
.dest-card img,
.mallorca-image img {
    transition: transform .7s var(--motion-ease-out);
}
.dest-card:hover img,
.mallorca-image:hover img {
    transform: scale(1.04);
}

/* FAQ */
.faq-item,
.transfer-faq .faq-item {
    transition: box-shadow .25s ease, border-color .25s ease;
}
.faq-item:hover,
.transfer-faq .faq-item:hover {
    box-shadow: 0 8px 22px rgba(10, 31, 68, 0.08);
}

@media (prefers-reduced-motion: reduce) {
    html.js .kt-reveal,
    html.js .kt-reveal.is-visible {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
    .btn, a.btn, .service-card, .benefit-card, .vehicle-card, .stat-card,
    .discover-guide-card, .help-card, .whatsapp-float, .hero-scroll-indicator,
    .dest-card img, .mallorca-image img, .popular-chip, .prices-table tbody tr {
        animation: none !important;
        transition: none !important;
        transform: none !important;
    }
}
