/* Movil: cabecera, formularios, tablas y pies. No toca la portada. */
html { -webkit-text-size-adjust: 100%; }
img, video, iframe, svg { max-width: 100%; }
body.menu-open { overflow: hidden; }

@media (max-width: 768px) {
    .header {
        padding-top: env(safe-area-inset-top);
        padding-left: env(safe-area-inset-left);
        padding-right: env(safe-area-inset-right);
    }
    .header .container { padding-left: 12px; padding-right: 12px; }
    .header-content { position: relative; gap: .6rem; }
    .logo-image { height: 48px; width: auto; }
    .mobile-menu-toggle {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        min-width: 46px;
        min-height: 46px;
        padding: 0 .75rem;
        touch-action: manipulation;
    }
    .nav-menu {
        max-height: calc(100dvh - 72px);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: calc(1rem + env(safe-area-inset-bottom));
    }
    .nav-link {
        min-height: 48px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.05rem;
    }
    .lang-btn {
        min-height: 44px;
        padding: .45rem .65rem;
        font-size: .85rem;
    }
    .lang-dropdown {
        right: 0;
        left: auto;
        min-width: min(220px, calc(100vw - 24px));
    }
    .lang-dropdown a { min-height: 44px; }
    .mobile-menu-action { min-height: 48px; }

    input, select, textarea,
    .input, .select, .textarea,
    .finder .select, .donate-form input {
        font-size: 16px !important;
        max-width: 100%;
    }
    .btn, a.btn, .chip span, .trip-toggle span {
        min-height: 42px;
        touch-action: manipulation;
        font-size: .92rem;
    }
    .btn.btn-large, a.btn.btn-large { min-height: 44px; font-size: .9rem; }
    .popular-chip { min-height: 36px; }
    .tab-btn { min-height: 40px; }
    .whatsapp-float {
        width: 54px;
        height: 54px;
        right: max(12px, env(safe-area-inset-right));
        bottom: max(14px, env(safe-area-inset-bottom));
    }
    .cookie-banner {
        left: max(8px, env(safe-area-inset-left));
        right: max(8px, env(safe-area-inset-right));
        bottom: max(8px, env(safe-area-inset-bottom));
    }
    .table-scroll, .price-table-wrap, .legal-block {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        max-width: 100%;
    }
    .page-head { padding-left: .25rem; padding-right: .25rem; }
}

@media (max-width: 560px) {
    .section-title { font-size: 1.18rem !important; }
    .page-head h1 { font-size: 1.22rem !important; }
    .container { padding-left: 14px; padding-right: 14px; }
    .dt-grid { grid-template-columns: 1fr; }
    .footer-main { grid-template-columns: 1fr; }
    .footer-brand, .footer-contact { grid-column: auto; }
    .book-card .btn, .status-actions .btn, .donate-pay, .donate-paypal,
    .card-form .btn, .prices-intro a.btn {
        width: 100%;
        text-align: center;
    }
    .swap-btn { width: 48px; height: 48px; }
    .stepper button { width: 44px; height: 44px; }
    .pax-row { flex-wrap: wrap; }
    .help-grid, .soporte-grid { grid-template-columns: 1fr; }
    .legal-table { min-width: 520px; }
}

@media (max-width: 480px) {
    .tab-btn span { display: inline !important; }
    .tab-btn {
        min-width: 0 !important;
        padding: .4rem .55rem !important;
        font-size: .72rem !important;
        gap: .3rem !important;
    }
    .tab-btn i { font-size: .78rem !important; }
}
@media (max-width: 380px) {
    .logo-image { height: 42px; }
    .header-right { gap: .4rem; }
    .lang-btn span, .lang-btn i.fa-chevron-down { display: none; }
}

@media (hover: none) {
    a, button { -webkit-tap-highlight-color: rgba(10, 31, 68, .12); }
}
