/* 
 * Beachfront Villa - Custom Styles
 * Точная копия React globals.css
 */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Montserrat:wght@300;400;500;600;700&display=swap');

:root {
    --color-primary: #0077B6;
    --color-secondary: #00A8E8;
    --color-background: #EDE8E3;
    --color-accent: #2A7D4F;
    --color-gold: #D4AF37;
    --color-charcoal: #2C2C2C;
}

body {
    font-family: 'Montserrat', sans-serif;
    color: var(--color-charcoal);
    background-color: #FFFFFF;
    margin: 0;
    padding: 0;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Playfair Display', serif !important;
    font-weight: 600 !important;
}

h1 {
    font-size: 3.5rem !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
}

h2 {
    font-size: 2.5rem !important;
    line-height: 1.3 !important;
}

h3 {
    font-size: 1.75rem !important;
    line-height: 1.4 !important;
}

h4 {
    font-size: 1.25rem !important;
    line-height: 1.5 !important;
}

p {
    font-size: 1rem !important;
    line-height: 1.7 !important;
    font-weight: 400 !important;
}

/* Responsive Typography */
@media (max-width: 768px) {
    h1 {
        font-size: 2.25rem !important;
    }
    
    h2 {
        font-size: 1.875rem !important;
    }
    
    h3 {
        font-size: 1.5rem !important;
    }
}

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

/* Hide calendar picker icons */
input[type="date"]::-webkit-calendar-picker-indicator {
    opacity: 0;
    position: absolute;
    width: 100%;
    height: 100%;
    cursor: pointer;
}

input[type="date"]::-webkit-inner-spin-button {
    display: none;
}

input[type="date"]::-webkit-clear-button {
    display: none;
}

/* Hide scrollbar in carousel */
.scrollbar-hide::-webkit-scrollbar {
    display: none;
}

.scrollbar-hide {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* Booking label styling */
.booking-label {
    color: #2C2C2C !important;
}

/* Ensure white labels in hero section */
#hero .booking-label {
    color: white !important;
}

/* Custom animations */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fade-in {
    animation: fadeIn 0.5s ease-out;
}

/* Loading state */
.loading {
    pointer-events: none;
    opacity: 0.6;
}

/* Mobile responsive fixes */
@media (max-width: 640px) {
    /* Prevent horizontal overflow */
    body {
        overflow-x: hidden;
    }
    
    html {
        overflow-x: hidden;
    }
    
    /* Better touch targets */
    button, a, input, select {
        min-height: 44px;
    }
    
    /* Prevent text overflow */
    h1, h2, h3, h4, h5, h6, p {
        word-wrap: break-word;
        overflow-wrap: break-word;
    }
    
    /* Better image scaling */
    img {
        max-width: 100%;
        height: auto;
    }
    
    /* Prevent horizontal scroll from absolute positioned elements */
    * {
        max-width: 100vw;
    }
}


#hero-video-container {
    position: relative;
    width: 100%;
    height: 100%;
}


.hero-background-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 768px) {
    .mobile-video {
        object-fit: contain;
        background-color: #000; 
    }
}


@media (min-width: 769px) {
    .desktop-video {
        object-fit: cover;
    }
}


.desktop-video,
.mobile-video {
    display: none; 
}

.desktop-video[style*="display: block"],
.mobile-video[style*="display: block"] {
    display: block !important;
}