/* Garde-fous de mise en page (#68) : chargé en dernier ; les éléments fixes ne recouvrent jamais le contenu. */
:root { --btp-fix-r: 56px; --btp-fix-b: 72px; }

@media (min-width: 901px) {
    /* État « bar » (pages sans colonne réservée au rail) : bande horizontale opaque de 60 px, même disposition que l'état haut. */
    html body .btp-nav-kinetic[data-state="bar"] {
        top: 0 !important;
        padding: 16px 56px !important;
        background: var(--btp-primary) !important;
        box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08) !important;
        flex-direction: row !important;
        align-items: center !important;
    }
    html body .btp-nav-kinetic[data-state="bar"] .btp-compact-logo,
    html body .btp-nav-kinetic[data-state="bar"] .btp-nav-utility { display: none !important; }
    html body .btp-nav-kinetic[data-state="bar"] .btp-nav-list { flex-direction: row !important; gap: 36px !important; }
    html body .btp-nav-kinetic[data-state="bar"] .btp-nav-label { opacity: 1 !important; max-width: 200px !important; }

    /* Onglet Réservation (44 px à droite) : marge réservée de 56 px dans les blocs qui touchent le bord. */
    html body footer.btp-footer:not(#btp-guard) { padding-right: var(--btp-fix-r) !important; padding-left: var(--btp-fix-r) !important; }
    html body .btpv-body:not(#btp-guard),
    html body .btp-menu-app main.btp-menu-content:not(#btp-guard) { padding-right: var(--btp-fix-r) !important; }

    /* Sélecteur de langue : dans la même gouttière droite, sous l'onglet Réservation, à la verticale comme lui ; la colonne gauche reste libre. */
    html body .btp-lang:not(#btp-guard) { left: auto !important; right: 0 !important; bottom: 36px !important; width: 44px; display: flex; justify-content: center; }
    html body .btp-lang .btp-lang-btn:not(#btp-guard) { flex: none; transform: rotate(90deg) !important; }
    html body .btp-lang .btp-lang-list { left: auto !important; right: 8px !important; bottom: calc(100% + 26px) !important; }

    /* Pied de page : colonnes extrêmes alignées sur les bords (comme la ligne du bas), colonne centrale centrée. */
    html body .btp-footer-content > .btp-footer-col:first-child { text-align: left; }
    html body .btp-footer-content > .btp-footer-col:last-child { text-align: right; }
    .btp-footer-bottom > p { text-align: left; }
}

/* Sélecteur de langue (pastille fixe en bas à gauche) : le bas du pied de page lui laisse sa place. */
html body footer.btp-footer { padding-bottom: max(30px, var(--btp-fix-b)) !important; }

/* Accueil ≥ 1024 px, rail compact : le pied de page réserve la colonne du rail comme la pile de sections. */
@media (min-width: 1024px) {
    html body.home.btp-nav-compact footer.btp-footer:not(#btp-guard) { padding-left: max(240px, 14vw) !important; }
}

/* Titres de colonnes du pied de page : paragraphes stylés comme les anciens h4 (#66). */
.btp-footer-col .btp-footer-h {
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    line-height: 1.6;
    margin: 0 0 16px;
    color: var(--btp-white);
}
.btp-footer-col .btp-footer-h.btpv-foot { margin-top: 28px; }

/* Zéro décalage de mise en page au passage en compact (CLS) : les places sont réservées dès le haut de page, seuls visibilité et transform changent. */
@media (min-width: 901px) {
    html body .btp-menu-app .btp-sidebar-logo:not(#btp-guard) { display: inline-flex; visibility: hidden; }
    html body.btp-nav-compact .btp-menu-app .btp-sidebar-logo:not(#btp-guard) { visibility: visible; }
    html body .btp-btn-resa-fixed:not(#btp-guard) { top: 50% !important; }
    html body:not(.btp-nav-compact) .btp-btn-resa-fixed:not(#btp-guard) { transform: translateY(calc(90px - 50vh)) !important; }
    html body.btp-drawer-open .btp-btn-resa-fixed:not(#btp-guard) { transform: translateY(-50%) translateX(calc(-1 * min(520px, 92vw))) !important; }
}
@media (min-width: 1024px) {
    html body.home .btp-home-stack > section .btp-container:not(#btp-guard) { margin-left: max(240px, 14vw) !important; }
}

/* Mobile et tablette (< 901 px) : sélecteur de langue dans la barre du haut (opaque), entre « Réserver » et le menu ; il se masque avec elle. */
@media (max-width: 900px) {
    html body .btp-lang:not(#btp-guard) { left: auto !important; right: 62px !important; top: 13px !important; bottom: auto !important; transition: transform 0.3s ease; }
    html body .btp-lang .btp-lang-btn:not(#btp-guard) { transform: none !important; padding: 7px 12px; box-shadow: none; }
    html body .btp-lang .btp-lang-btn svg { display: none; }
    html body .btp-lang .btp-lang-list { left: auto !important; right: 0 !important; top: calc(100% + 8px) !important; bottom: auto !important; }
    html body:has(.btp-mobile-topbar.is-hidden) .btp-lang:not(.open):not(#btp-guard) { transform: translateY(-80px); }
}
/* Mobile : la barre « Réserver une table » (75 px) ne cache jamais la fin du pied de page. */
@media (max-width: 900px) {
    html body footer.btp-footer:not(#btp-guard) { padding-bottom: 100px !important; }
}
