/* Custom Styles for Hoteles Ya! Landing Page */

/* Brand Font - Mochiy Pop One (logo/header/footer only) */
.font-brand {
    font-family: 'Mochiy Pop One', sans-serif;
    font-weight: 400;
}

/* Material Symbols Outlined base */
.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
    display: inline-block;
    line-height: 1;
    vertical-align: middle;
}

/* Glass Card Effect */
.glass-card {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

/* Smooth Scroll */
html {
    scroll-behavior: smooth;
}

/* Scroll Reveal Animations */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* Reveal Left */
.reveal-left {
    opacity: 0;
    transform: translateX(-30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.reveal-left.active {
    opacity: 1;
    transform: translateX(0);
}

/* Reveal Right */
.reveal-right {
    opacity: 0;
    transform: translateX(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.reveal-right.active {
    opacity: 1;
    transform: translateX(0);
}

/* Reveal Scale */
.reveal-scale {
    opacity: 0;
    transform: scale(0.9);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.reveal-scale.active {
    opacity: 1;
    transform: scale(1);
}

/* Stagger delays for children */
.reveal-children > * {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}

.reveal-children > *:nth-child(1) { transition-delay: 0ms; }
.reveal-children > *:nth-child(2) { transition-delay: 100ms; }
.reveal-children > *:nth-child(3) { transition-delay: 200ms; }
.reveal-children > *:nth-child(4) { transition-delay: 300ms; }
.reveal-children > *:nth-child(5) { transition-delay: 400ms; }
.reveal-children > *:nth-child(6) { transition-delay: 500ms; }
.reveal-children > *:nth-child(7) { transition-delay: 600ms; }
.reveal-children > *:nth-child(8) { transition-delay: 700ms; }

.reveal-children.active > * {
    opacity: 1;
    transform: translateY(0);
}

/* Selection Colors */
::selection {
    background-color: #F28C38;
    color: #ffffff;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: #f8f9fa;
}

::-webkit-scrollbar-thumb {
    background: #d9dadb;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #bcbdbd;
}

/* Focus Styles */
input:focus,
button:focus,
a:focus {
    outline: none;
}

/* Input Focus Animation */
input[type="email"]:focus,
input[type="text"]:focus {
    box-shadow: 0 0 0 3px rgba(242, 140, 56, 0.2);
}

/* Button Hover Lift */
.btn-lift {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.btn-lift:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(25, 28, 29, 0.12);
}

.btn-lift:active {
    transform: translateY(0);
}

/* Card Hover Effects */
.card-hover {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card-hover:hover {
    transform: translateY(-4px) scale(1.02);
}

/* Gradient Text */
.text-gradient {
    background: linear-gradient(135deg, #F28C38, #FF6B6B);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Stagger Animation for Bento Grid */
.bento-grid > * {
    animation: fadeInUp 0.5s ease forwards;
    opacity: 0;
}

.bento-grid > *:nth-child(1) { animation-delay: 0.1s; }
.bento-grid > *:nth-child(2) { animation-delay: 0.15s; }
.bento-grid > *:nth-child(3) { animation-delay: 0.2s; }
.bento-grid > *:nth-child(4) { animation-delay: 0.25s; }
.bento-grid > *:nth-child(5) { animation-delay: 0.3s; }
.bento-grid > *:nth-child(6) { animation-delay: 0.35s; }
.bento-grid > *:nth-child(7) { animation-delay: 0.4s; }
.bento-grid > *:nth-child(8) { animation-delay: 0.45s; }

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Mobile Menu Animation */
.mobile-menu-enter {
    animation: slideInRight 0.3s ease forwards;
}

.mobile-menu-exit {
    animation: slideOutRight 0.3s ease forwards;
}

@keyframes slideInRight {
    from {
        transform: translateX(100%);
    }
    to {
        transform: translateX(0);
    }
}

@keyframes slideOutRight {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(100%);
    }
}

/* Pulse Animation for Live Badge */
@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.5;
    }
}

.animate-pulse-slow {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* Hero Image Tilt Animation */
.hero-image {
    transition: transform 0.5s ease;
}

.hero-image:hover {
    transform: rotate(0deg) scale(1.02);
}

/* Step Circle Animation */
.step-circle {
    transition: transform 0.3s ease, background-color 0.3s ease;
}

.step-circle:hover {
    transform: scale(1.1);
}

/* Fade In Section Animation */
.section-fade-in {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.section-fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Gradient CTA Hover */
.cta-gradient:hover {
    background: linear-gradient(135deg, #F28C38, #FF8C5A);
    box-shadow: 0 12px 32px rgba(242, 140, 56, 0.4);
}

/* Form Input Styles */
.form-input {
    background-color: #ffffff;
    border: 2px solid transparent;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.form-input:focus {
    border-color: #F28C38;
    box-shadow: 0 0 0 4px rgba(242, 140, 56, 0.1);
}

/* Nav Link Underline Animation */
.nav-link {
    position: relative;
}

.nav-link::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: #F28C38;
    transition: width 0.3s ease;
}

.nav-link:hover::after {
    width: 100%;
}

/* Dashboard Widget Hover */
.dashboard-widget {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.dashboard-widget:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(25, 28, 29, 0.08);
}

/* Modal Animations */
#app-modal-backdrop {
    transition: opacity 0.3s ease;
}

#app-modal-backdrop.hidden {
    opacity: 0;
}

#app-modal-backdrop.flex {
    opacity: 1;
    display: flex !important;
}

.modal-card {
    animation: modalSlideUp 0.3s ease forwards;
}

@keyframes modalSlideUp {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Prevent body scroll when modal is open */
body.modal-open {
    overflow: hidden;
}