/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1100px) {
    .hero-grid { grid-template-columns: 1fr; gap: 40px; }
    .hero-visual { max-width: 500px; margin: 0 auto; }
    .location-grid { grid-template-columns: 1fr; }
    .security-wrap { grid-template-columns: 1fr; gap: 32px; }
    .security-carousel { max-height: 360px; }
    .book-grid, .calc-wrap { grid-template-columns: 1fr; gap: 40px; }
    .segments { grid-template-columns: 1fr; }
    .steps { grid-template-columns: 1fr; }
    .step-arrow { transform: rotate(90deg); margin: 0 auto; }
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .trust-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
    .sizes-head, .size-row { grid-template-columns: 100px 1fr 100px 110px; }
    .sizes-head > div:nth-child(3), .size-row > div:nth-child(3) { display: none; }
    .size-row > div:nth-child(5) { display: none; }
    .sizes-head > div:nth-child(5) { display: none; }
}

@media (max-width: 1024px) {
    .nav {
        position: absolute;
        top: calc(100% + 8px);
        left: 12px; right: 12px;
        flex-direction: column;
        background: var(--surface);
        border: 1px solid var(--border);
        border-radius: var(--radius-lg);
        padding: 10px;
        gap: 2px;
        box-shadow: 0 12px 40px rgba(var(--primary-rgb), .15);
        opacity: 0;
        transform: translateY(-10px);
        pointer-events: none;
        transition: all .25s;
        z-index: 100;
    }
    .nav.open { opacity: 1; transform: translateY(0); pointer-events: auto; }
    .nav a:not(.nav-cta):not(.nav-phone) {
        padding: 14px 16px;
        font-size: .95rem;
        border-radius: var(--radius);
    }
    .nav a:not(.nav-cta):not(.nav-phone):active { background: var(--bg-2); }
    .nav-footer {
        display: flex;
        flex-direction: column;
        gap: 12px;
        margin-top: 6px;
        padding-top: 12px;
        border-top: 1px solid var(--border);
    }
    .nav-cta { width: 100%; text-align: center; font-size: .95rem; }
    .nav-meta {
        display: flex;
        flex-direction: column;
        gap: 8px;
        padding: 0 4px 4px;
    }
    .nav-phone {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        font-size: .9rem;
        font-weight: 600;
        color: var(--ink);
        padding: 8px 12px;
        border-radius: var(--radius);
    }
    .nav-phone:active { background: var(--bg-2); }
    .nav-phone svg { color: var(--accent); flex-shrink: 0; }
    .nav-hours {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        font-size: .82rem;
        color: var(--ink-2);
        padding: 0 12px 4px;
    }
    .nav-hours svg { opacity: .5; flex-shrink: 0; }
    .nav-overlay {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(var(--primary-rgb), .3);
        z-index: 89;
        opacity: 0;
        pointer-events: none;
        transition: opacity .25s;
    }
    .nav-overlay.open { opacity: 1; pointer-events: auto; }
    .menu-toggle { display: flex; z-index: 101; }
    .header-phone { display: none; }
    .hide-mobile { display: none; }

    .hero { padding: 50px 0 60px; }
    .quick-sizes { grid-template-columns: 1fr 1fr; }
    .hero-perks { grid-template-columns: 1fr; }

    .section { padding: 60px 0; }
    .section-head { margin-bottom: 40px; }
    .book-cta { padding: 32px 24px; }
    .sizes-head, .size-row { grid-template-columns: 90px 1fr 100px; padding: 14px 16px; }
}

@media (max-width: 600px) {
    .location-info { grid-template-columns: 1fr; }
    .location-map { min-height: 240px; }
    .loc-photo { min-height: 240px; }
    .security-carousel { max-height: 260px; }
    .security-list { grid-template-columns: 1fr 1fr; gap: 12px; }
    .sec-item { padding: 14px 16px; }
}

@media (max-width: 500px) {
    .container { padding: 0 16px; }
    .btn { padding: 12px 20px; font-size: .87rem; }
    .hero-card { padding: 22px; }
    .quick-sizes { grid-template-columns: 1fr; }
    .footer-grid { grid-template-columns: 1fr; gap: 30px; }
    .footer-bottom { flex-direction: column; text-align: center; }
    .trust-grid { grid-template-columns: 1fr; gap: 20px; }
    .topbar { display: none; }
    .lang-header { display: inline-flex; }
}
