/* Bannière Cookie — même identité "Ligne" que le FAB (assets/css/core.css) :
   filet quasi invisible et ombre diffuse plutôt qu'une bordure épaisse et
   une ombre portée dure, qui juraient avec le thème réel du site (tons
   chauds et sourds, serif élégante Cardo) tout autant qu'avec le FAB
   aujourd'hui adouci. */
.bcc-banner-card, .bcc-banner-card *, .bcc-banner-card *::before, .bcc-banner-card *::after,
.bcc-modal-overlay, .bcc-modal-overlay *, .bcc-modal-overlay *::before, .bcc-modal-overlay *::after {
    box-sizing: border-box;
}

.bcc-banner-card {
    position: fixed;
    bottom: 20px;
    right: 20px;
    width: 380px;
    max-width: calc(100% - 40px);

    /* Sans limite de hauteur, une carte trop grande pour un écran laptop
       (souvent moins haut qu'un grand moniteur) dépasse par le haut du
       viewport : le logo, premier élément de la carte, devient invisible
       et impossible à faire défiler (élément fixed). */
    max-height: calc(100vh - 40px);
    overflow: hidden auto;
    background: #fff;
    border: 1px solid rgba(33, 28, 23, 0.12);
    box-shadow: 0 18px 40px rgba(33, 28, 23, 0.14);
    padding: 20px;
    z-index: 999999;
    font-family: sans-serif;
    border-radius: 0;
}
.bcc-logo { max-height: 65px; margin-bottom: 15px; }
/* Gotu : même police que le titre produit et le bouton d'ajout au panier
   (assets/css/sticky-cart.css) — les 3 panneaux du FAB doivent se lire comme
   un seul système, pas trois designs juxtaposés. */
.bcc-title { margin: 0 0 10px 0; font-size: 1rem; font-weight: bold; color: #000; font-family: Gotu, sans-serif; }
.bcc-desc { margin: 0 0 15px 0; font-size: 0.8125rem; color: #333; line-height: 1.4; }
.bcc-links { margin-bottom: 15px; font-size: 0.6875rem; }
.bcc-links a { color: #000; text-decoration: underline; }
/* "Accepter" et "Refuser" sur la même rangée, même taille, même poids de
   police : voir la note dans public-display.php sur la prééminence CNIL. */
.bcc-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.bcc-btn { padding: 10px; font-size: 0.8125rem; font-weight: bold; cursor: pointer; border: 1.5px solid rgba(33, 28, 23, 0.55); background: #fff; color: #211c17; transition: all 0.2s; text-transform: uppercase; font-family: Gotu, sans-serif; }
.bcc-btn-accepter { background: #211c17; color: #fff; border-color: #211c17; }
.bcc-btn-accepter:hover { background: #fff; color: #211c17; }
.bcc-btn-refuser:hover { background: rgba(33, 28, 23, 0.06); }

/* "Personnaliser" : action secondaire, un simple lien sous les deux boutons
   principaux plutôt qu'un troisième bouton de même poids visuel. */
.bcc-btn-link {
    display: block;
    width: 100%;
    margin-top: 10px;
    padding: 6px;
    background: none;
    border: none;
    text-decoration: underline;
    font-size: 0.75rem;
    color: #333;
    cursor: pointer;
    text-align: center;
}

.bcc-btn-link:hover {
    color: #000;
}

/* Panneau de préférences : un simple bloc de contenu affiché à l'intérieur
   du slot partagé #eh-fab-detail (voir includes/core/frontend.php et
   assets/css/core.css) plutôt qu'une modale flottante indépendante — la
   réouverture après consentement se lit comme le MÊME objet que l'engrenage,
   pas une fenêtre à part. Position, taille et habillage (fond flouté, ombre,
   bordure) sont désormais portés par #eh-fab lui-même. */
.bcc-modal-overlay {
    width: 100%;

    /* max-height (pas height:100%) : #eh-fab grandit selon son propre contenu
       (height: auto), donc un pourcentage ici ne se résoudrait jamais et la
       zone de défilement plus bas ne saurait jamais quand s'activer — le
       bouton "Annuler" se retrouvait coupé, sans aucun moyen d'y accéder. */
    max-height: calc(100vh - 140px);
    font-family: sans-serif;
}

/* .bcc-modal reste un simple conteneur flex interne (plus d'habillage
   propre : celui-ci vient de #eh-fab, l'objet visuel unique). */
.bcc-modal {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: 0;
}

/* Seule cette zone défile si le contenu dépasse : la croix, elle, reste
   toujours en place et cliquable dans son intégralité. */
.bcc-modal-scroll {
    flex: 1;
    min-height: 0;
    overflow: hidden auto;

    /* Marge droite plus large que les autres côtés : laisse de la place à la
       barre de défilement, pour qu'elle n'arrive pas juste sous la croix de
       fermeture (position: absolute, hors de cette zone qui défile). */
    padding: 34px 20px 16px 16px;
}

.bcc-modal-close {
    position: absolute;
    top: 8px;
    right: 14px;
    width: 28px;
    height: 28px;
    border-radius: 0;
    border: none;
    background: rgba(0, 0, 0, 0.06);
    color: #333;
    font-size: 0.875rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    z-index: 2;
    flex-shrink: 0;
}

.bcc-modal-close:hover {
    background: rgba(0, 0, 0, 0.12);
}

.bcc-cookie-type { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 15px; padding-bottom: 15px; border-bottom: 1px solid #ddd; gap: 15px; }
.bcc-cookie-type label { cursor: pointer; }
.bcc-cookie-type strong { font-size: 0.8125rem; }

/* Le thème du site peut appliquer des styles globaux agressifs aux checkboxes
   (reset, toggle personnalisé) : on force explicitement leur affichage natif. */
.bcc-modal input[type="checkbox"] {
    appearance: auto;
    display: inline-block !important;
    position: static !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 20px !important;
    height: 20px !important;
    min-width: 20px;
    flex-shrink: 0;
    margin: 0;
    accent-color: #000;
    cursor: pointer;
}

/* Largeur du panneau de préférences gérée par #eh-fab (assets/css/core.css) ;
   seule sa hauteur max doit rester alignée sur les mêmes points de rupture,
   pour que la zone de défilement ci-dessus sache quand s'activer. */
@media (max-width: 1440px) {
    .bcc-modal-overlay {
        max-height: calc(100vh - 120px);
    }
}

@media (max-width: 480px) {
    .bcc-banner-card { width: 100%; bottom: 0; right: 0; border: none; border-top: 1px solid rgba(33, 28, 23, 0.12); box-shadow: none; }

    .bcc-modal-overlay {
        max-height: calc(100vh - 110px);
    }
}

/* Confirmation brève après un choix enregistré (assets/js/cookie-consent.js,
   showSavedToast). */
.bcc-toast {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translate(-50%, 12px);
    background: #111;
    color: #fff;
    padding: 10px 18px;
    border-radius: 6px;
    font-size: 0.8125rem;
    font-family: sans-serif;
    z-index: 999999;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease, transform 0.25s ease;
}

.bcc-toast-visible {
    opacity: 1;
    transform: translate(-50%, 0);
}

@media (prefers-reduced-motion: reduce) {
    .bcc-toast {
        transition: opacity 0.01ms;
    }
}

/* Focus clavier visible, cohérent avec les panneaux panier/accessibilité. */
.bcc-modal-close:focus-visible,
.bcc-btn:focus-visible,
.bcc-btn-link:focus-visible,
.bcc-modal input[type="checkbox"]:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
}
