@media (max-width: 1400px) {
    :root {
        --spacing-3xl: calc(var(--spacing-unit) * 20);
    }
}

@media (max-width: 1200px) {
    :root {
        --spacing-3xl: calc(var(--spacing-unit) * 16);
        --spacing-2xl: calc(var(--spacing-unit) * 12);
    }
    
    .container {
        max-width: 100%;
    }
}

@media (max-width: 1024px) {
    :root {
        --spacing-3xl: calc(var(--spacing-unit) * 12);
        --spacing-2xl: calc(var(--spacing-unit) * 10);
        --spacing-xl: calc(var(--spacing-unit) * 8);
    }
    
    .philosophy-card img,
    .parallax-image img {
        height: 450px;
    }
    
    .exp-img {
        height: 350px;
    }
    
    .nav-container {
        padding: 0 var(--spacing-md);
    }
}

@media (max-width: 768px) {
    :root {
        --spacing-3xl: calc(var(--spacing-unit) * 10);
        --spacing-2xl: calc(var(--spacing-unit) * 8);
        --spacing-xl: calc(var(--spacing-unit) * 6);
    }
    
    .hero-scroll {
        display: none;
    }
    
    .philosophy-card img,
    .parallax-image img {
        height: 350px;
    }
    
    .dish-image {
        height: 280px;
    }
    
    .exp-img {
        height: 300px;
    }
    
    .course {
        grid-template-columns: 1fr;
        gap: var(--spacing-md);
    }
    
    .course-number {
        font-size: 1.5rem;
        min-width: auto;
    }
    
    .team-image {
        height: 300px;
    }
    
    .hero-title {
        font-size: clamp(2.75rem, 13vw, 4rem) !important;
        line-height: 1.1 !important;
    }
    
    .section-title {
        font-size: clamp(2rem, 8vw, 3rem);
    }
    
    .btn {
        padding: var(--spacing-sm) var(--spacing-lg);
        font-size: 0.875rem;
    }
    
    .form-group input[type="date"] {
        max-width: 100%;
        font-size: 16px; 
        -webkit-appearance: none;
        appearance: none;
    }
    
    
    .dish-card {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
    
    .dish-card[data-reveal] {
        opacity: 1 !important;
        transform: none !important;
    }
    
    .dish-card[data-reveal].revealed {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
    
    .dish-card:hover {
        transform: none !important;
    }
    
    .dish-image img {
        transition: none !important;
        transform: none !important;
    }
    
    .dish-card:hover .dish-image img {
        transform: none !important;
    }
}

@media (max-width: 640px) {
    .philosophy-stats {
        grid-template-columns: 1fr;
    }
    
    .dishes-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }
    
    .menu-details {
        grid-template-columns: 1fr;
    }
    
    .wine-highlights {
        grid-template-columns: 1fr;
    }
    
    .elements-grid {
        grid-template-columns: 1fr;
    }
    
    .team-grid {
        grid-template-columns: 1fr;
    }
    
    .private-features {
        grid-template-columns: 1fr;
    }
    
    .footer-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    :root {
        --spacing-3xl: calc(var(--spacing-unit) * 8);
        --spacing-2xl: calc(var(--spacing-unit) * 6);
        --spacing-xl: calc(var(--spacing-unit) * 5);
        --spacing-lg: calc(var(--spacing-unit) * 4);
    }
    
    .demo-modal-content {
        padding: var(--spacing-xl);
    }
    
    .demo-modal-body h2 {
        font-size: 1.5rem;
    }
    
    .philosophy-card img,
    .parallax-image img {
        height: 300px;
    }
    
    .dish-image {
        height: 250px;
    }
    
    .dish-content {
        padding: var(--spacing-md);
    }
    
    .exp-img {
        height: 250px;
    }
    
    .team-image {
        height: 250px;
    }
    
    .map-placeholder {
        height: 350px;
    }
    
    .hero-title {
        font-size: clamp(2.5rem, 11vw, 3.25rem) !important;
        line-height: 1.1 !important;
    }
    
    .hero-subtitle {
        font-size: 1rem;
    }
    
    .nav-container {
        height: 64px;
    }
    
    .page-hero {
        padding: calc(64px + var(--spacing-2xl)) 0 var(--spacing-xl);
    }
    
    .form-group input[type="date"] {
        padding: var(--spacing-sm) var(--spacing-xs);
        font-size: 14px;
    }
    
    body {
        overflow-x: hidden;
    }
    
    .container {
        padding: 0 var(--spacing-md);
        max-width: 100%;
    }
}

@media (max-width: 375px) {
    :root {
        --spacing-3xl: calc(var(--spacing-unit) * 6);
        --spacing-2xl: calc(var(--spacing-unit) * 5);
        --spacing-xl: calc(var(--spacing-unit) * 4);
    }
    
    .hero-title {
        font-size: 2.25rem !important;
        line-height: 1.15 !important;
    }
    
    .btn {
        padding: var(--spacing-sm) var(--spacing-md);
        font-size: 0.8125rem;
    }
    
    .dish-number {
        width: 48px;
        height: 48px;
        font-size: 1rem;
    }
    
    .form-group input[type="date"] {
        font-size: 13px;
        padding: 10px 6px;
        height: 42px;
        width: 100%;
    }
    
    .form-group input[type="date"]::-webkit-calendar-picker-indicator {
        width: 16px;
        height: 16px;
    }
}

@media (max-width: 320px) {
    :root {
        font-size: 14px;
    }
    
    .hero-title {
        font-size: clamp(2rem, 10vw, 2.5rem);
    }
    
    .section-title {
        font-size: 1.75rem;
    }
    
    .form-group input[type="date"] {
        font-size: 12px;
        padding: 8px 4px;
        height: 40px;
        width: 100%;
    }
    
    .form-group input[type="date"]::-webkit-calendar-picker-indicator {
        width: 14px;
        height: 14px;
    }
}

@media (min-width: 1600px) {
    .container {
        max-width: 1500px;
    }
    
    .hero-title {
        font-size: 7rem;
    }
    
    .section-title {
        font-size: 4.5rem;
    }
}

@media (min-width: 1920px) {
    .container {
        max-width: 1600px;
    }
    
    .hero-title {
        font-size: 8rem;
    }
}

@media (hover: hover) and (pointer: fine) {
    .stat:hover {
        box-shadow: var(--shadow-md);
    }
    
    .info-item:hover {
        background: var(--color-bg);
        border-color: var(--color-accent);
    }
    
    .dish-card:hover {
        transform: translateY(-12px);
    }
    
    .philosophy-card:hover {
        transform: translateY(-8px);
    }
}

@media (hover: none) and (pointer: coarse) {
    .dish-card {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
        -webkit-tap-highlight-color: transparent;
    }
    
    .dish-card[data-reveal] {
        opacity: 1 !important;
        transform: none !important;
    }
    
    .dish-card[data-reveal].revealed {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
    
    .dish-card:hover {
        transform: none !important;
    }
    
    .dish-image img {
        transition: none !important;
        transform: none !important;
    }
    
    .dish-card:hover .dish-image img {
        transform: none !important;
    }
    
    .philosophy-card-overlay {
        opacity: 0.7;
    }
}

@media (prefers-color-scheme: dark) {
    :root {
        color-scheme: dark;
    }
}

@media (orientation: landscape) and (max-height: 600px) {
    .hero {
        min-height: auto;
        padding: var(--spacing-3xl) 0 var(--spacing-2xl);
    }
    
    .hero-scroll {
        display: none;
    }
    
    .nav-container {
        height: 64px;
    }
}

@media (orientation: landscape) and (max-width: 896px) and (max-height: 414px) {
    .hero {
        padding: var(--spacing-2xl) 0;
    }
    
    .hero-title {
        font-size: 2.5rem;
    }
}

@supports (-webkit-touch-callout: none) {
    .hero {
        min-height: -webkit-fill-available;
    }
}

@media (max-width: 768px) and (orientation: landscape) {
    .nav-menu {
        padding: 100px var(--spacing-md) var(--spacing-md);
    }
}

@media (min-aspect-ratio: 16/9) and (min-width: 1024px) {
    .hero {
        min-height: 100vh;
    }
}

@media (max-aspect-ratio: 3/4) {
    .hero-title {
        font-size: clamp(2.5rem, 10vw, 3.5rem);
    }
    
    .dish-image,
    .exp-img,
    .team-image {
        height: 280px;
    }
}

@media print {
    .nav,
    .hero-scroll,
    .demo-modal,
    .preloader,
    .btn,
    footer {
        display: none !important;
    }
    
    body {
        background: white;
        color: black;
    }
    
    * {
        box-shadow: none !important;
    }
}

@media (max-width: 768px) {
    .nav-menu {
        will-change: transform;
        -webkit-overflow-scrolling: touch;
    }
    
    .nav-menu.active {
        animation: slideInMenu 0.3s ease-out;
    }
    
    [data-reveal] {
        opacity: 1;
        transform: none;
    }
    
    [data-reveal].revealed {
        opacity: 1;
        transform: none;
        transition: none;
    }
    
    .dish-card,
    .philosophy-card,
    .element-card,
    .team-member {
        transition: none;
    }
    
    .dish-card:hover,
    .philosophy-card:hover,
    .element-card:hover,
    .team-member:hover {
        transform: none;
    }
    
    .dish-image img,
    .philosophy-card img,
    .parallax-image img,
    .team-image img {
        transition: none;
    }
    
    .dish-card:hover .dish-image img,
    .philosophy-card:hover img,
    .parallax-image:hover img,
    .team-member:hover .team-image img {
        transform: none;
    }
}

@keyframes slideInMenu {
    from {
        transform: translateX(100%);
    }
    to {
        transform: translateX(0);
    }
}