/* ===================================================================
   OZEIL : CSS additionnel complet (Apparence > Personnaliser > CSS additionnel)
   Remplace tout le contenu actuel par ce fichier.
   Règle absolue : aucun chevron ouvrant (signe inférieur) nulle part, ni dans
   un commentaire ni dans content:"" : WordPress supprime tout ce qui le suit
   jusqu'au prochain chevron fermant au moment d'afficher ce CSS.
   1. Pagination, démo plein écran, cartes sidebar   2. Articles (oz-*)   3. Page d'accueil (oz-home-*)
   =================================================================== */

/* ============================================
   VARIABLES PERSONNALISABLES
   ============================================ */
.ozeil-pagination {
    --pagination-padding: 16px 32px;   /* MODIFIE LE PADDING ICI (pas de chevron dans ce fichier : WordPress les supprime) */
    --pagination-margin-top: 36px;     /* marge au-dessus modifiable aussi */
}

/* ===== ESPACE AU-DESSUS + CENTRAGE DU WIDGET ===== */
.ozeil-pagination { margin-top: var(--pagination-margin-top); width: 100%; text-align: center; }
.ozeil-pagination .elementor-widget-container { display: flex; justify-content: center; }

/* ===== 1. WRAPPER GLOBAL : CENTRAGE ===== */
.ozeil-pagination .elementor-pagination-wrapper { display: flex; justify-content: center; width: 100%; }

/* ===== 2. CONTENEUR PILULE ===== */
.ozeil-pagination .elementor-pagination {
    display: inline-flex; align-items: center; justify-content: center; gap: 1.5rem;
    padding: var(--pagination-padding); border-radius: 2rem; background-color: #F4F4F4;
    border: 0.0625rem solid rgba(0,0,0,0.06); box-shadow: 0 0.5rem 1.25rem rgba(0,0,0,0.15);
}

/* ===== 3. STYLE DE BASE DE TOUS LES LIENS ===== */
.ozeil-pagination .elementor-pagination .page-numbers {
    display: inline-flex; align-items: center; justify-content: center; font-size: 1rem; font-weight: 500;
    color: #2B1C32; text-decoration: none; line-height: 1;
    transition: background-color .2s ease, color .2s ease, transform .15s ease;
}

/* ===== 4. STYLE DES NUMÉROS ===== */
.ozeil-pagination .elementor-pagination .page-numbers:not(.prev):not(.next):not(.dots) { width: 2.4rem; height: 2.4rem; border-radius: 50%; }
.ozeil-pagination .elementor-pagination .page-numbers:not(.prev):not(.next):not(.dots):hover:not(.current) { background-color: rgba(13,166,255,0.12); transform: translateY(-0.05rem); }

/* ===== 5. PAGE ACTIVE ===== */
.ozeil-pagination .elementor-pagination .page-numbers.current { background-color: #0DA6FF; color: #F4F4F4; font-weight: 700; }

/* ===== 6. CHEVRONS PREV/NEXT ===== */
.ozeil-pagination .elementor-pagination .page-numbers.prev,
.ozeil-pagination .elementor-pagination .page-numbers.next {
    width: 1.5rem; height: 1.5rem; border-radius: 50%; background: transparent; color: #2B1C32; opacity: 0.8;
    position: relative; overflow: hidden; text-indent: -9999px;
}
.ozeil-pagination .elementor-pagination .page-numbers.prev::before,
.ozeil-pagination .elementor-pagination .page-numbers.next::before {
    content: "\003C"; /* chevron gauche en code Unicode : le signe littéral serait supprimé par WordPress */
    position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-indent: 0; font-size: 1.1rem;
}
.ozeil-pagination .elementor-pagination .page-numbers.next::before { content: "\003E"; }
.ozeil-pagination .elementor-pagination .page-numbers.prev:hover,
.ozeil-pagination .elementor-pagination .page-numbers.next:hover { opacity: 1; background-color: rgba(13,166,255,0.12); color: #2B1C32; }

/* ===== 7. RESPONSIVE ===== */
@media (max-width: 768px) {
    .ozeil-pagination .elementor-pagination { gap: 1rem; padding: 0.5rem 1.5rem; }
}

/* Wrapper général de la slot */
.pp-iframe-wrapper { position: relative; width: 100%; max-width: 100%; border-radius: 1rem; overflow: hidden; }
/* Quand on n'est PAS en plein écran : ratio 16/9 */
.pp-iframe-wrapper:not(:fullscreen) { aspect-ratio: 16 / 9; }
/* Iframe = toujours pleine taille du wrapper */
.pp-iframe { width: 100%; height: 100%; border: none; display: block; }
/* Bouton fullscreen overlay */
.pp-fullscreen-btn {
    position: absolute; right: 1rem; top: 1rem; z-index: 10;
    background: rgba(0, 0, 0, 0.65); color: #F4F4F4; border: none; border-radius: 1rem; padding: 0.5rem 1.25rem;
    font-size: 0.95rem; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; gap: 0.4rem;
    backdrop-filter: blur(6px); transition: opacity 0.2s ease, transform 0.15s ease, background-color 0.15s ease;
}
.pp-fullscreen-btn:hover { background: #0DA6FF !important; opacity: 1; transform: translateY(-1px); }

/* === Cartes articles sidebar : bordure arrondie uniforme === */
.sidebar-post-card { border-radius: 1rem !important; overflow: hidden !important; }
.sidebar-post-card img { border-radius: 1rem 1rem 0 0 !important; overflow: hidden !important; display: block; }
.sidebar-post-card .elementor-widget-container { border-radius: 0 0 1rem 1rem !important; overflow: hidden !important; }
.sidebar-post-card a, .sidebar-post-card .elementor-button { border-radius: .75rem !important; }

/* === Couleurs par défaut du site : fond violet, texte clair === */
body, .site-content, #content, #primary, .ast-separate-container .ast-article-single, .ast-separate-container .ast-article-post, .ast-separate-container .ast-comment-list li.depth-1, .ast-page-builder-template .site-content .ast-container, .entry-content { margin: 0; background-color: #2B1C32; color: #F4F4F4; }
body :is(h1, h2, h3, h4, h5, h6, p, li, .entry-title, .entry-header, .entry-content, .ast-archive-title) { color: #F4F4F4; }
.ast-page-builder-template .entry-header .entry-title { text-align: center; }
.ast-single-post .entry-header, .ast-page-builder-template .entry-header { margin: 0; }
.article-h1{font-family:'Roboto',sans-serif;font-size:3.05rem;font-weight:600;line-height:3.388rem;letter-spacing:-0.015rem;text-transform:uppercase;color:#F4F4F4;margin-bottom:1.5rem;}
.article-h2{font-family:'Roboto',sans-serif;font-size:2.44rem;font-weight:600;line-height:2.684rem;letter-spacing:-0.015rem;color:#F4F4F4;margin-top:3rem;margin-bottom:1.25rem;}
.article-h3{font-family:'Roboto',sans-serif;font-size:1.95rem;font-weight:600;line-height:2.535rem;letter-spacing:-0.005rem;color:#F4F4F4;margin-top:2rem;margin-bottom:1rem;}
.article-p{font-family:'Roboto',sans-serif;font-size:1rem;font-weight:400;line-height:1.5rem;color:#F4F4F4;margin-bottom:1rem;}
/* classes existantes iframe */
.pp-iframe-wrapper{position:relative;width:100%;max-width:100%;border-radius:1rem;overflow:hidden;}
.pp-iframe-wrapper:not(:fullscreen){aspect-ratio:16/9;}
.pp-iframe{width:100%;height:100%;border:none;display:block;}
.pp-fullscreen-btn{position:absolute;right:1rem;top:1rem;z-index:10;background:rgba(0,0,0,0.65);color:#F4F4F4;border:none;border-radius:1rem;padding:0.5rem 1.25rem;font-size:0.95rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:0.4rem;backdrop-filter:blur(6px);}
.pp-fullscreen-btn[hidden]{display:none;}
.pp-fullscreen-btn:hover{background:#0DA6FF!important;}
/* =====================================================================
   OZEIL — TEMPLATE « AVIS CASINO »
   Préfixe : .oz-   |   Palette : #F4F4F4 · #2B1C32 · #0DA6FF (+ opacités)
   Réutilise tes classes existantes : .article-h1 / .article-h2 / .article-h3 / .article-p
   ===================================================================== */


/* ===== 0. VARIABLES ===== */
:root {
    --oz-light: #F4F4F4;
    --oz-ink: #2B1C32;
    --oz-blue: #0DA6FF;

    --oz-blue-12: rgba(13,166,255,0.12);
    --oz-blue-24: rgba(13,166,255,0.24);
    --oz-surface: rgba(244,244,244,0.04);     /* fond des blocs sur fond sombre */
    --oz-surface-2: rgba(244,244,244,0.08);   /* en-têtes de blocs / chips */
    --oz-line: rgba(244,244,244,0.12);        /* bordures et séparateurs */
    --oz-muted: rgba(244,244,244,0.72);       /* texte secondaire */
    --oz-shadow: 0 0.5rem 1.25rem rgba(0,0,0,0.15);

    --oz-radius-lg: 1rem;
    --oz-radius-md: 0.75rem;
    --oz-radius-pill: 2rem;

    --oz-anchor-offset: 6rem;   /* hauteur de ton header fixe (pour les ancres du sommaire) */
}


/* ===== 1. BASE ===== */
.oz-review {
    font-family: 'Roboto', sans-serif;
    color: var(--oz-light);
    interpolate-size: allow-keywords;   /* animation d'ouverture sommaire/FAQ (Chrome/Edge) */
}

:is(.oz-review, .oz-sticky, .oz-modal),
:is(.oz-review, .oz-sticky, .oz-modal) *,
:is(.oz-review, .oz-sticky, .oz-modal) *::before,
:is(.oz-review, .oz-sticky, .oz-modal) *::after { box-sizing: border-box; }

.oz-review [id] { scroll-margin-top: var(--oz-anchor-offset); }

.oz-review img { max-width: 100%; height: auto; display: block; }

.oz-review a { color: var(--oz-blue); text-underline-offset: 0.2em; }
.oz-review a:hover { text-decoration-thickness: 2px; }

.oz-review strong { font-weight: 600; color: var(--oz-light); }

:is(.oz-review, .oz-sticky, .oz-modal) :is(a, button, summary):focus-visible {
    outline: 2px solid var(--oz-blue);
    outline-offset: 3px;
}

html:has(.oz-review) { scroll-behavior: smooth; }

/* Icônes SVG (sprite en haut du template) */
:is(.oz-review, .oz-sticky, .oz-modal) .oz-i {
    width: 1.25rem;
    height: 1.25rem;
    flex: none;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* ===== 2. BOUTONS & BADGES BONUS ===== */
:is(.oz-review, .oz-sticky, .oz-modal) .oz-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 3rem;
    padding: 0.75rem 1.75rem;
    border: 0;
    border-radius: var(--oz-radius-md);
    background-color: var(--oz-blue);
    color: var(--oz-ink);               /* texte foncé = contraste lisible sur le bleu */
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    box-shadow: var(--oz-shadow);
    cursor: pointer;
    transition: transform .15s ease, box-shadow .2s ease;
}

:is(.oz-review, .oz-sticky, .oz-modal) .oz-btn:hover {
    color: var(--oz-ink);
    transform: translateY(-1px);
    box-shadow: 0 0.75rem 1.5rem rgba(0,0,0,0.25);
}

:is(.oz-review, .oz-sticky, .oz-modal) .oz-btn--lg { min-height: 3.5rem; font-size: 1.125rem; }

.oz-review .oz-btn--ghost {
    background-color: transparent;
    color: var(--oz-light);
    box-shadow: inset 0 0 0 1px var(--oz-line);
}
.oz-review .oz-btn--ghost:hover { background-color: var(--oz-blue-12); color: var(--oz-light); box-shadow: inset 0 0 0 1px var(--oz-blue-24); }

:is(.oz-review, .oz-sticky, .oz-modal) .oz-perks {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

:is(.oz-review, .oz-sticky, .oz-modal) .oz-perk {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--oz-light);
}

:is(.oz-review, .oz-sticky, .oz-modal) :is(.oz-coin, .oz-fs) {
    display: inline-grid;
    place-items: center;
    flex: none;
    font-family: 'Roboto', sans-serif;
    font-weight: 800;
    line-height: 1;
    color: var(--oz-ink);
}

:is(.oz-review, .oz-sticky, .oz-modal) .oz-coin {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    background-color: var(--oz-blue);
    box-shadow: inset 0 0 0 2px rgba(0,0,0,0.15);
    font-size: 0.9rem;
}

:is(.oz-review, .oz-sticky, .oz-modal) .oz-fs {
    height: 1.5rem;
    padding: 0 0.4rem;
    border-radius: 0.4rem;
    background-color: var(--oz-light);
    font-size: 0.7rem;
    letter-spacing: 0.02em;
}


/* ===== 3. HERO (image 16:9 + H1 + note + offre) ===== */
.oz-review .oz-hero {
    display: grid;
    gap: clamp(1.25rem, 3vw, 1.75rem);
    padding: clamp(1rem, 2.5vw, 1.5rem);
    border-radius: var(--oz-radius-lg);
    background-color: var(--oz-surface);
    border: 1px solid var(--oz-line);
}

/* L'image de couverture garde ses proportions (1200×800 ou 16:9, au choix de l'éditeur) : jamais recadrée. */
.oz-review .oz-hero__media {
    position: relative;
    border-radius: var(--oz-radius-md);
    overflow: hidden;
    line-height: 0;
    background-color: var(--oz-ink);
    box-shadow: var(--oz-shadow);
}
.oz-review .oz-hero__media img { width: 100%; height: auto; object-fit: contain; }

/* Petit logo carré en surimpression (optionnel) */
.oz-review .oz-hero__badge {
    position: absolute;
    left: 1rem;
    bottom: 1rem;
    width: 4.5rem;
    aspect-ratio: 1;
    border-radius: var(--oz-radius-md);
    overflow: hidden;
    background-color: var(--oz-ink);
    box-shadow: var(--oz-shadow), 0 0 0 2px var(--oz-light);
}

.oz-review .oz-hero .article-h1 {
    font-size: clamp(1.75rem, 3.4vw, 3.05rem);
    line-height: 1.1;
    margin: 0 0 1rem;
}

.oz-review .oz-hero__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.75rem;
    margin: 0 0 1.25rem;
    padding: 0;
    list-style: none;
    font-size: 0.9rem;
    color: var(--oz-muted);
}
.oz-review .oz-hero__meta li { display: inline-flex; align-items: center; gap: 0.6rem; margin: 0; }

.oz-review .oz-hero__lead {
    max-width: 70ch;
    margin: 0 0 1.5rem;
    font-size: 1.0625rem;
    line-height: 1.65;
    color: var(--oz-muted);
}

.oz-review .oz-hero__offer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    padding: 1rem 1rem 1rem 1.25rem;
    border-radius: var(--oz-radius-md);
    background-color: var(--oz-blue-12);
    border: 1px solid var(--oz-blue-24);
}

.oz-review .oz-hero__offer-label {
    display: block;
    margin-bottom: 0.4rem;
    font-size: 0.85rem;
    color: var(--oz-muted);
}

.oz-review .oz-legal {
    margin: 0.75rem 0 0;
    font-size: 0.8rem;
    line-height: 1.5;
    color: var(--oz-muted);
}


/* ===== 4. NOTE (anneau) ===== */
.oz-review .oz-score {
    --score: 0;          /* note sur 10, ex : style="--score:8.7" */
    --size: 2.75rem;
    --ring: 4px;
    position: relative;
    display: inline-grid;
    place-items: center;
    flex: none;
    width: var(--size);
    height: var(--size);
    font-weight: 700;
    color: var(--oz-light);
}

.oz-review .oz-score::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: conic-gradient(var(--oz-blue) calc(var(--score) * 10%), var(--oz-line) 0);
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - var(--ring) - 1px), #000 calc(100% - var(--ring)));
            mask: radial-gradient(farthest-side, transparent calc(100% - var(--ring) - 1px), #000 calc(100% - var(--ring)));
}

.oz-review .oz-score__value { position: relative; font-size: calc(var(--size) * 0.3); line-height: 1; }
.oz-review .oz-score__value small { font-size: 0.45em; font-weight: 500; opacity: 0.7; margin-left: 0.1em; }

.oz-review .oz-score--lg { --size: 7.5rem; --ring: 7px; }


/* ===== 5. FICHE D'IDENTITÉ ===== */
.oz-review .oz-fiche { margin-top: 2rem; }

.oz-review .oz-fiche__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.25rem 1rem;
    margin-bottom: 1rem;
}

.oz-review .oz-fiche__title {
    margin: 0;
    font-family: 'Roboto', sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -0.01rem;
    text-transform: none;
    color: var(--oz-light);
}

.oz-review .oz-fiche__note { margin: 0; font-size: 0.85rem; color: var(--oz-muted); }

.oz-review .oz-fiche__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    align-items: stretch;
}
/* Les quatre panneaux de la fiche font la même hauteur et leurs lignes
   s'alignent d'une colonne à l'autre : même nombre de lignes, même hauteur. */
.oz-review .oz-fiche__grid .oz-panel { display: flex; flex-direction: column; }
.oz-review .oz-fiche__grid .oz-kv { flex: 1; }
.oz-review .oz-fiche__grid .oz-kv tbody { height: 100%; }
.oz-review .oz-fiche__grid .oz-kv th,
.oz-review .oz-fiche__grid .oz-kv td { min-height: 3.4rem; }
.oz-review .oz-fiche__grid .oz-kv th { white-space: nowrap; }

/* Panneau générique (fiche, conditions de bonus, support…) */
.oz-review .oz-panel {
    border-radius: var(--oz-radius-lg);
    background-color: var(--oz-surface);
    border: 1px solid var(--oz-line);
    overflow: hidden;
}

.oz-review .oz-panel__title {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin: 0;
    padding: 0.95rem 1.25rem;
    background-color: var(--oz-surface-2);
    font-family: 'Roboto', sans-serif;
    font-size: 1.0625rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0;
    text-transform: none;
    color: var(--oz-light);
}
.oz-review .oz-panel__title .oz-i { color: var(--oz-blue); }

.oz-review .oz-panel + .oz-panel,
.oz-review .oz-section .oz-panel { margin-top: 1.5rem; }
.oz-review .oz-fiche__grid .oz-panel { margin-top: 0; }

/* Tableau clé / valeur */
.oz-review .oz-kv {
    width: 100%;
    margin: 0;
    border: 0;
    border-collapse: collapse;
    background: transparent;
    font-size: 0.975rem;
    /* Colonnes fixes : une valeur longue passe à la ligne au lieu d'élargir le tableau hors du panneau. */
    table-layout: fixed;
}

.oz-review .oz-kv th,
.oz-review .oz-kv td {
    padding: 0.8rem 1.25rem;
    border: 0;
    background: transparent;
    line-height: 1.4;
    vertical-align: middle;
}

.oz-review .oz-kv tr + tr > * { border-top: 1px solid var(--oz-line); }

.oz-review .oz-kv th { width: 45%; text-align: left; font-weight: 400; color: var(--oz-muted); }
.oz-review .oz-kv td { text-align: right; font-weight: 500; color: var(--oz-light); overflow-wrap: break-word; }
/* Oui / Non avec précision : la pastille reste calée, le texte s'aligne à gauche sur plusieurs lignes. */
.oz-review .oz-kv td :is(.oz-yes, .oz-no) { max-width: 100%; text-align: left; align-items: flex-start; }
.oz-review .oz-kv td :is(.oz-yes, .oz-no)::before { margin-top: 0.1em; }

/* Oui / Non / À vérifier */
.oz-review :is(.oz-yes, .oz-no, .oz-na) { display: inline-flex; align-items: center; gap: 0.45rem; font-weight: 500; }

.oz-review :is(.oz-yes, .oz-no)::before {
    content: "";
    flex: none;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 50%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 0.8rem;
}

.oz-review .oz-yes::before {
    background-color: var(--oz-blue);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B1C32' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}

.oz-review .oz-no::before {
    box-shadow: inset 0 0 0 1.5px var(--oz-line);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F4F4F4' stroke-opacity='0.72' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M7 7l10 10M17 7L7 17'/%3E%3C/svg%3E");
}

.oz-review .oz-na { color: var(--oz-muted); font-style: italic; }

/* Chips (moyens de paiement, fournisseurs…) */
.oz-review .oz-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.oz-review .oz-kv .oz-chips { justify-content: flex-end; }

.oz-review .oz-chips li {
    margin: 0;
    padding: 0.3rem 0.75rem;
    border-radius: var(--oz-radius-pill);
    background-color: var(--oz-surface-2);
    font-size: 0.85rem;
    font-weight: 500;
    line-height: 1.25;
    color: var(--oz-light);
}


/* ===== 6. SOMMAIRE RÉTRACTABLE ===== */
.oz-review .oz-toc {
    margin: 2rem 0 2.5rem;
    border-radius: var(--oz-radius-lg);
    background-color: var(--oz-light);
    border: 0.0625rem solid rgba(0,0,0,0.06);
    box-shadow: var(--oz-shadow);
    color: var(--oz-ink);
}

.oz-review .oz-toc > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1rem 1rem 1.75rem;
    border-radius: var(--oz-radius-lg);
    list-style: none;
    cursor: pointer;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--oz-ink);
}
.oz-review .oz-toc > summary::-webkit-details-marker { display: none; }

.oz-review .oz-toc__icon {
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    background-color: var(--oz-ink);
    color: var(--oz-light);
    transition: transform .25s ease;
}
.oz-review .oz-toc[open] .oz-toc__icon { transform: rotate(180deg); }

.oz-review .oz-toc__list {
    margin: 0;
    padding: 0 1.75rem 1.25rem;
    list-style: none;
}

.oz-review .oz-toc__list li { margin: 0; border-top: 1px solid rgba(0,0,0,0.08); }

.oz-review .oz-toc__list a {
    display: block;
    padding: 0.85rem 1rem;
    border-radius: 0.5rem;
    font-size: 1.0625rem;
    line-height: 1.4;
    color: var(--oz-ink);
    text-decoration: none;
    transition: background-color .2s ease;
}
.oz-review .oz-toc__list a:hover { background-color: var(--oz-blue-12); color: var(--oz-ink); }

/* Animation d'ouverture (navigateurs compatibles, sinon ouverture directe) */
.oz-review :is(.oz-toc, .oz-faq__item)::details-content {
    block-size: 0;
    overflow: hidden;
    transition: block-size .3s ease, content-visibility .3s allow-discrete;
}
.oz-review :is(.oz-toc, .oz-faq__item)[open]::details-content { block-size: auto; }


/* ===== 7. CONTENU DE L'ARTICLE ===== */
.oz-review .oz-intro .article-p:first-child { font-size: 1.125rem; line-height: 1.8rem; }

/* Liste à puces */
.oz-review .oz-list {
    display: grid;
    gap: 0.55rem;
    margin: 0 0 1rem;
    padding: 0;
    list-style: none;
}
.oz-review .oz-list li { position: relative; margin: 0; padding-left: 1.5rem; line-height: 1.5rem; }
.oz-review .oz-list li::before {
    content: "";
    position: absolute;
    left: 0.25rem;
    top: 0.55rem;
    width: 0.4rem;
    height: 0.4rem;
    border-radius: 50%;
    background-color: var(--oz-blue);
}

/* Encadré (avis, astuce, méthode) */
.oz-review .oz-callout {
    margin: 1.5rem 0;
    padding: 1.25rem 1.5rem;
    border-radius: var(--oz-radius-md);
    background-color: var(--oz-blue-12);
    border-left: 3px solid var(--oz-blue);
}
.oz-review .oz-callout__title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 0.5rem;
    font-size: 1.0625rem;
    font-weight: 600;
    color: var(--oz-light);
}
.oz-review .oz-callout__title .oz-i { color: var(--oz-blue); }
.oz-review .oz-callout p { margin: 0; line-height: 1.6; color: var(--oz-light); }
.oz-review .oz-callout p + p { margin-top: 0.5rem; }

/* Images / captures */
.oz-review .oz-figure { margin: 1.5rem 0; }
.oz-review .oz-figure img { width: 100%; border-radius: var(--oz-radius-lg); border: 1px solid var(--oz-line); }
.oz-review .oz-figure figcaption { margin-top: 0.6rem; font-size: 0.85rem; line-height: 1.5; color: var(--oz-muted); }


/* ===== 8. VERDICT (note détaillée + points forts/faibles) ===== */
.oz-review .oz-verdict {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 1.5rem 2.5rem;
    margin: 1.5rem 0;
    padding: clamp(1.25rem, 3vw, 2rem);
    border-radius: var(--oz-radius-lg);
    background-color: var(--oz-surface);
    border: 1px solid var(--oz-line);
}

.oz-review .oz-verdict__score { display: grid; justify-items: center; gap: 0.6rem; text-align: center; }
.oz-review .oz-verdict__label { font-size: 1rem; font-weight: 600; }

.oz-review .oz-scores { display: grid; gap: 0.9rem; margin: 0; padding: 0; list-style: none; }

.oz-review .oz-scores li {
    display: grid;
    grid-template-columns: minmax(8rem, 11rem) minmax(0, 1fr) 3rem;
    align-items: center;
    gap: 1rem;
    margin: 0;
    font-size: 0.95rem;
}

.oz-review .oz-scores__name { color: var(--oz-muted); }
.oz-review .oz-scores__bar { height: 0.4rem; border-radius: var(--oz-radius-pill); background-color: var(--oz-line); overflow: hidden; }
.oz-review .oz-scores__bar span { display: block; height: 100%; width: calc(var(--v) * 10%); border-radius: inherit; background-color: var(--oz-blue); }
.oz-review .oz-scores__val { text-align: right; font-weight: 600; }

.oz-review .oz-proscons {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin: 1.5rem 0;
}

.oz-review .oz-proscons__col {
    padding: 1.25rem 1.5rem;
    border-radius: var(--oz-radius-lg);
    background-color: var(--oz-surface);
    border: 1px solid var(--oz-line);
}
.oz-review .oz-proscons__col--pros { border-top: 3px solid var(--oz-blue); }
.oz-review .oz-proscons__col--cons { border-top: 3px solid var(--oz-muted); }

.oz-review .oz-proscons__title {
    margin: 0 0 1rem;
    font-family: 'Roboto', sans-serif;
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0;
    text-transform: none;
    color: var(--oz-light);
}

.oz-review .oz-proscons ul { display: grid; gap: 0.7rem; margin: 0; padding: 0; list-style: none; }
.oz-review .oz-proscons li { position: relative; margin: 0; padding-left: 2rem; line-height: 1.5; }

.oz-review .oz-proscons li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.1rem;
    width: 1.3rem;
    height: 1.3rem;
    border-radius: 50%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 0.75rem;
}

.oz-review .oz-proscons__col--pros li::before {
    background-color: var(--oz-blue);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B1C32' stroke-width='3.4' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
}

.oz-review .oz-proscons__col--cons li::before {
    box-shadow: inset 0 0 0 1.5px var(--oz-muted);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F4F4F4' stroke-width='3.4' stroke-linecap='round'%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E");
}


/* ===== 9. BONUS : PACK DE BIENVENUE ===== */
.oz-review .oz-pack {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(13rem, 1fr);
    gap: 1rem;
    margin: 1.25rem 0 1.5rem;
    padding: 0 0 0.5rem;
    list-style: none;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
}

.oz-review .oz-pack > li {
    display: grid;
    align-content: start;
    gap: 0.6rem;
    margin: 0;
    padding: 1.1rem 1.25rem;
    border-radius: var(--oz-radius-lg);
    background-color: var(--oz-surface);
    border: 1px solid var(--oz-line);
    scroll-snap-align: start;
}

.oz-review .oz-pack__step { font-size: 0.9rem; color: var(--oz-muted); }
.oz-review .oz-pack__amount { font-size: 1.25rem; font-weight: 700; line-height: 1.25; color: var(--oz-light); }
.oz-review .oz-pack .oz-perks { gap: 0.5rem 1rem; }
.oz-review .oz-pack .oz-perk { font-size: 1rem; }


/* ===== 10. CHIFFRES CLÉS / ÉTAPES ===== */
.oz-review .oz-facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
    gap: 1rem;
    margin: 1.5rem 0;
    padding: 0;
    list-style: none;
}
.oz-review .oz-facts li {
    margin: 0;
    padding: 1rem 1.25rem;
    border-radius: var(--oz-radius-md);
    background-color: var(--oz-surface);
    border: 1px solid var(--oz-line);
}
.oz-review .oz-facts strong { display: block; font-size: 1.5rem; font-weight: 700; line-height: 1.2; }
.oz-review .oz-facts span { font-size: 0.9rem; color: var(--oz-muted); }
.oz-review .oz-facts small { display: block; margin-top: 0.4rem; font-size: 0.78rem; line-height: 1.35; color: var(--oz-muted); }

.oz-review .oz-steps {
    display: grid;
    gap: 1.1rem;
    margin: 1.5rem 0;
    padding: 0;
    list-style: none;
    counter-reset: oz-step;
}
.oz-review .oz-steps li {
    position: relative;
    min-height: 2.25rem;
    margin: 0;
    padding-left: 3.25rem;
    line-height: 1.5;
    counter-increment: oz-step;
}
.oz-review .oz-steps li::before {
    content: counter(oz-step);
    position: absolute;
    left: 0;
    top: 0;
    display: grid;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background-color: var(--oz-blue-12);
    box-shadow: inset 0 0 0 1px var(--oz-blue-24);
    color: var(--oz-blue);
    font-weight: 700;
}
.oz-review .oz-steps strong { display: block; margin-bottom: 0.15rem; }
.oz-review .oz-steps span { color: var(--oz-muted); }


/* ===== 11. TABLEAUX DE DONNÉES (paiements, alternatives…) ===== */
.oz-review .oz-table-wrap {
    margin: 1.5rem 0;
    border-radius: var(--oz-radius-lg);
    background-color: var(--oz-surface);
    border: 1px solid var(--oz-line);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.oz-review .oz-table {
    width: 100%;
    min-width: 36rem;
    margin: 0;
    border: 0;
    border-collapse: collapse;
    background: transparent;
    font-size: 0.95rem;
}

.oz-review .oz-table th,
.oz-review .oz-table td {
    padding: 0.85rem 1.25rem;
    border: 0;
    background: transparent;
    text-align: left;
    line-height: 1.4;
    vertical-align: middle;
    color: var(--oz-light);
}

.oz-review .oz-table thead th {
    background-color: var(--oz-surface-2);
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--oz-muted);
    white-space: nowrap;
}

.oz-review .oz-table tbody tr + tr > * { border-top: 1px solid var(--oz-line); }
.oz-review .oz-table tbody th { font-weight: 600; }
.oz-review .oz-table a { font-weight: 600; white-space: nowrap; }


/* ===== 12. VERDICT FINAL + AUTEUR + JEU RESPONSABLE ===== */
.oz-review .oz-final {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.25rem 2rem;
    margin: 2rem 0;
    padding: clamp(1.25rem, 3vw, 2rem);
    border-radius: var(--oz-radius-lg);
    background-color: var(--oz-blue-12);
    border: 1px solid var(--oz-blue-24);
}

/* Bandeau d'appel à l'action dans le corps de l'article : l'offre à gauche, le bouton à droite. */
.oz-review .oz-cta-band {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    margin: 1.75rem 0;
    padding: 1.1rem 1.35rem;
    border-radius: var(--oz-radius-lg);
    background-color: var(--oz-blue-12);
    border: 1px solid var(--oz-blue-24);
}
.oz-review .oz-cta-band__body { min-width: 0; }
.oz-review .oz-cta-band__title { margin: 0; font-size: 1.125rem; font-weight: 700; line-height: 1.3; color: var(--oz-light); }
.oz-review .oz-cta-band__text { margin: 0.25rem 0 0; font-size: 0.875rem; line-height: 1.45; color: var(--oz-muted); }
.oz-review .oz-cta-band .oz-btn { flex: none; white-space: nowrap; }
@media (max-width: 640px) {
    .oz-review .oz-cta-band { flex-direction: column; align-items: stretch; text-align: center; }
    .oz-review .oz-cta-band .oz-btn { width: 100%; }
}

/* Le logo garde ses proportions : largeur fixe, hauteur libre, jamais recadré. */
.oz-review .oz-final__logo {
    width: 7rem;
    flex: none;
    border-radius: var(--oz-radius-md);
    overflow: hidden;
    line-height: 0;
}
.oz-review .oz-final__logo img { width: 100%; height: auto; object-fit: contain; }

.oz-review .oz-final__name { margin: 0 0 0.5rem; font-size: 1.375rem; font-weight: 700; line-height: 1.2; }
.oz-review .oz-final__cta { display: grid; justify-items: center; gap: 0.5rem; text-align: center; }
.oz-review .oz-final__cta .oz-legal { margin: 0; }
/* La mention légale sous tout le bloc : le bouton reste seul, centré dans sa colonne. */
.oz-review .oz-final__legal { grid-column: 1 / -1; margin: 0; font-size: 0.75rem; line-height: 1.4; text-align: center; color: var(--oz-muted); }
.oz-review .oz-final__cta { align-self: center; }
/* Tableau des symboles : première colonne en gras, valeurs alignées à droite. */
.oz-review .oz-table--symbols th[scope="row"] { font-weight: 600; }
.oz-review .oz-table--symbols td { text-align: right; }

.oz-review .oz-author {
    display: grid;
    grid-template-columns: 4rem minmax(0, 1fr);
    gap: 1rem 1.25rem;
    margin: 2rem 0 1.5rem;
    padding: 1.25rem 1.5rem;
    border-radius: var(--oz-radius-lg);
    background-color: var(--oz-surface);
    border: 1px solid var(--oz-line);
}

.oz-review .oz-author__avatar {
    display: grid;
    place-items: center;
    width: 4rem;
    height: 4rem;
    border-radius: 50%;
    object-fit: cover;
    background-color: var(--oz-blue);
    color: var(--oz-ink);
    font-weight: 700;
}
/* WordPress glisse parfois un paragraphe vide entre la pastille et le texte :
   chaque élément est placé explicitement, le vide est ignoré. */
.oz-review .oz-author > p:empty, .oz-review .oz-author > br { display: none; }
.oz-review .oz-author > :first-child { grid-column: 1; grid-row: 1; }
.oz-review .oz-author > div:last-of-type { grid-column: 2; grid-row: 1; min-width: 0; }
.oz-review .oz-author p { max-width: none; }
.oz-review .oz-author__name { margin: 0; font-size: 1.0625rem; font-weight: 600; }
.oz-review .oz-author__role { margin: 0.15rem 0 0.6rem; font-size: 0.875rem; color: var(--oz-muted); }
.oz-review .oz-author__bio { margin: 0; font-size: 0.95rem; line-height: 1.6; color: var(--oz-muted); }

.oz-review .oz-responsible {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin: 1.5rem 0;
    padding: 1rem 1.25rem;
    border-radius: var(--oz-radius-md);
    border: 1px dashed var(--oz-line);
    font-size: 0.9rem;
    line-height: 1.6;
    color: var(--oz-muted);
}
.oz-review .oz-responsible p { margin: 0; }
.oz-review .oz-responsible__badge {
    display: grid;
    place-items: center;
    flex: none;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    border: 2px solid var(--oz-light);
    color: var(--oz-light);
    font-size: 0.85rem;
    font-weight: 700;
}


/* ===== 13. FAQ ===== */
.oz-review .oz-faq { display: grid; gap: 0.75rem; margin: 1.5rem 0 0; }

.oz-review .oz-faq__item {
    border-radius: var(--oz-radius-md);
    background-color: var(--oz-surface);
    border: 1px solid var(--oz-line);
    transition: background-color .2s ease, border-color .2s ease;
}
.oz-review .oz-faq__item[open] { background-color: var(--oz-blue-12); border-color: var(--oz-blue-24); }

.oz-review .oz-faq__item > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.25rem;
    border-radius: var(--oz-radius-md);
    list-style: none;
    cursor: pointer;
}
.oz-review .oz-faq__item > summary::-webkit-details-marker { display: none; }

.oz-review .oz-faq__q {
    margin: 0;
    font-family: 'Roboto', sans-serif;
    font-size: 1.0625rem;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0;
    text-transform: none;
    color: var(--oz-light);
}

.oz-review .oz-faq__icon {
    display: grid;
    place-items: center;
    flex: none;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background-color: var(--oz-blue-12);
    color: var(--oz-blue);
    transition: transform .25s ease;
}
.oz-review .oz-faq__item[open] .oz-faq__icon { transform: rotate(45deg); }

.oz-review .oz-faq__a { padding: 0 1.25rem 1.25rem; }
.oz-review .oz-faq__a p { margin: 0; line-height: 1.65; color: var(--oz-light); }
.oz-review .oz-faq__a p + p { margin-top: 0.6rem; }


/* ===== 14. BARRE CTA FIXE (bas d'écran) ===== */
.oz-sticky {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    /* Barre basse : un court dégradé, le bouton, une ligne. L'article doit rester visible. */
    padding: 1.25rem 1rem calc(0.4rem + env(safe-area-inset-bottom));
    background: linear-gradient(to bottom, rgba(43,28,50,0) 0%, rgba(43,28,50,0.96) 1.25rem, #2B1C32 100%);
    font-family: 'Roboto', sans-serif;
    pointer-events: none;
    visibility: hidden;
    transform: translateY(110%);
    transition: transform .35s ease, visibility 0s linear .35s;
}

.oz-sticky.is-visible {
    visibility: visible;
    transform: none;
    transition: transform .35s ease, visibility 0s;
}

.oz-sticky .oz-sticky__inner {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.3rem 0.4rem;
    max-width: 48rem;
    margin: 0 auto;
    pointer-events: auto;
}

.oz-sticky .oz-btn { flex: 0 0 100%; width: 100%; min-height: 3rem; font-size: 1.0625rem; }

/* Les paragraphes vides que WordPress glisse dans la barre ne prennent aucune place. */
.oz-sticky .oz-sticky__inner > p:not([class]), .oz-sticky .oz-sticky__inner > br { display: none; }

/* Une seule ligne, en petit, sous le bouton. */
.oz-sticky .oz-sticky__note { margin: 0; font-size: 0.75rem; line-height: 1.3; text-align: center; color: var(--oz-muted); }

/* Articles rédigés avant la ligne unique : bonus et mention légale ramenés sur la même ligne, en petit. */
.oz-sticky .oz-sticky__bonus {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
    font-size: 0.75rem;
    font-weight: 400;
    line-height: 1.3;
    color: var(--oz-muted);
}
.oz-sticky .oz-sticky__bonus:not(:has(.oz-perk)) { display: none; }
.oz-sticky .oz-sticky__bonus::after { content: "·"; }
.oz-sticky .oz-sticky__bonus .oz-perk { gap: 0.2rem; font-size: 0.75rem; font-weight: 500; color: var(--oz-light); }
.oz-sticky .oz-sticky__bonus .oz-perk + .oz-perk::before { content: "+"; margin-right: 0.15rem; color: var(--oz-muted); }
.oz-sticky .oz-sticky__bonus :is(.oz-coin, .oz-fs) { display: none; }
.oz-sticky .oz-sticky__bonus .oz-perk:has(.oz-fs)::after { content: " free spins"; white-space: pre; }

.oz-sticky .oz-sticky__legal { margin: 0; font-size: 0.75rem; line-height: 1.3; color: var(--oz-muted); }

/* La barre reste affichée en permanence : jamais de croix, y compris sur les articles anciens. */
.oz-sticky .oz-sticky__close { display: none !important; }
.oz-sticky { visibility: visible; transform: none; }

.oz-sticky .oz-sticky__close--legacy {
    position: absolute;
    top: -2.5rem;
    right: 0;
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background-color: rgba(0,0,0,0.35);
    color: var(--oz-light);
    cursor: pointer;
}
.oz-sticky .oz-sticky__close:hover { background-color: var(--oz-blue); color: var(--oz-ink); }
.oz-sticky .oz-sticky__close .oz-i { width: 1rem; height: 1rem; }

body.oz-sticky-on { padding-bottom: 5.5rem; }


/* ===== 16. TEMPLATE « JEUX / SLOTS » ===== */

/* Étiquettes RTP / volatilité dans le hero */
.oz-review .oz-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.25rem; padding: 0; list-style: none; }
.oz-review .oz-tags li {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    padding: 0.4rem 0.85rem;
    border-radius: var(--oz-radius-pill);
    background-color: var(--oz-surface-2);
    border: 1px solid var(--oz-line);
    font-size: 0.875rem;
    color: var(--oz-light);
}
.oz-review .oz-tags li strong { font-weight: 700; }

/* Volatilité (1 à 5 barres) : style="--vol:4" */
.oz-review .oz-vol { display: inline-flex; gap: 2px; align-items: flex-end; height: 0.9rem; }
.oz-review .oz-vol i {
    width: 4px;
    border-radius: 1px;
    background-color: var(--oz-line);
}
.oz-review .oz-vol i:nth-child(1){height:30%} .oz-review .oz-vol i:nth-child(2){height:48%}
.oz-review .oz-vol i:nth-child(3){height:66%} .oz-review .oz-vol i:nth-child(4){height:84%}
.oz-review .oz-vol i:nth-child(5){height:100%}
.oz-review .oz-vol i:nth-child(-n+1){background-color:var(--oz-blue)}
.oz-review .oz-vol[style*="--vol:2"] i:nth-child(-n+2),
.oz-review .oz-vol[style*="--vol:3"] i:nth-child(-n+3),
.oz-review .oz-vol[style*="--vol:4"] i:nth-child(-n+4),
.oz-review .oz-vol[style*="--vol:5"] i:nth-child(-n+5) { background-color: var(--oz-blue); }

/* --- Démo jouable --- */
.oz-review .oz-demo { margin: 2rem 0; }

/* Cadre de la démo : 16:9, l'iframe le remplit une fois chargée. */
.oz-review .oz-demo__frame { position: relative; aspect-ratio: 16 / 9; border-radius: var(--oz-radius-lg); overflow: hidden; background-color: #000; box-shadow: var(--oz-shadow); }
.oz-review .oz-demo__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.oz-review .oz-demo__frame.is-loaded .oz-demo__cover { display: none; }
@media (max-width: 640px) { .oz-review .oz-demo__frame { aspect-ratio: 4 / 3; } }
.oz-review .oz-demo__note { margin: 0.6rem 0 0; font-size: 0.85rem; color: var(--oz-muted); }

/* Écran d'attente avant chargement de l'iframe (économise le chargement + RGPD) */
.oz-review .oz-demo__cover {
    position: absolute;
    inset: 0;
    z-index: 5;
    display: grid;
    place-items: center;
    place-content: center;
    gap: 1rem;
    padding: 1.5rem;
    background-color: rgba(43,28,50,0.55);
    background-size: cover;
    background-position: center;
    text-align: center;
    color: var(--oz-light);
}
.oz-review .oz-demo__cover::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(43,28,50,0.85), rgba(43,28,50,0.25));
}
.oz-review .oz-demo__cover > * { position: relative; }
.oz-review .oz-demo__cover p { margin: 0; max-width: 40ch; font-size: 0.9rem; color: var(--oz-muted); }
.oz-review .oz-demo.is-loaded .oz-demo__cover { display: none; }

.oz-review .oz-demo__play { min-height: 3.5rem; padding: 0.9rem 2rem; font-size: 1.125rem; }
.oz-review .oz-demo__play .oz-i { fill: currentColor; stroke: none; }

/* Barre sous la démo : jouer en argent réel */
.oz-review .oz-demo__bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.5rem 1.5rem;
    margin-top: 1rem;
    padding: 1rem 1.25rem;
    border-radius: var(--oz-radius-md);
    background-color: var(--oz-blue-12);
    border: 1px solid var(--oz-blue-24);
}
.oz-review .oz-demo__bar p { margin: 0; font-size: 0.95rem; color: var(--oz-light); }
.oz-review .oz-demo__bar .oz-legal { grid-column: 1 / -1; margin: 0; }

/* --- Fenêtre : liste des casinos affiliés --- */
.oz-modal {
    width: min(100% - 2rem, 40rem);
    max-height: min(85vh, 48rem);
    margin: auto;
    padding: 0;
    border: 1px solid var(--oz-line);
    border-radius: var(--oz-radius-lg);
    background-color: #2B1C32;
    color: var(--oz-light);
    font-family: 'Roboto', sans-serif;
    box-shadow: 0 1.5rem 3rem rgba(0,0,0,0.5);
    overflow: hidden;
}
.oz-modal::backdrop { background-color: rgba(0,0,0,0.65); backdrop-filter: blur(3px); }
.oz-modal:not([open]) { display: none; }

.oz-modal__head {
    position: sticky;
    top: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    background-color: #2B1C32;
    border-bottom: 1px solid var(--oz-line);
}
.oz-modal__title { margin: 0; font-size: 1.25rem; font-weight: 700; line-height: 1.2; }
.oz-modal__sub { margin: 0.2rem 0 0; font-size: 0.85rem; color: var(--oz-muted); }

.oz-modal__close {
    display: grid;
    place-items: center;
    flex: none;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background-color: var(--oz-surface-2);
    color: var(--oz-light);
    cursor: pointer;
}
.oz-modal__close:hover { background-color: var(--oz-blue); color: var(--oz-ink); }
.oz-modal__close .oz-i { width: 1.1rem; height: 1.1rem; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; }

.oz-modal__body { padding: 1rem 1.25rem 1.25rem; overflow-y: auto; max-height: calc(min(85vh, 48rem) - 5rem); }
.oz-modal__legal { margin: 1rem 0 0; font-size: 0.75rem; line-height: 1.5; color: var(--oz-muted); }

/* Liste de casinos (utilisée dans la modale et en fin d'article) */
.oz-casinos { display: grid; gap: 0.75rem; margin: 0; padding: 0; list-style: none; }
.oz-casinos > li {
    display: grid;
    grid-template-columns: 4.5rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem 1rem;
    margin: 0;
    padding: 0.85rem 1rem;
    border-radius: var(--oz-radius-md);
    background-color: var(--oz-surface);
    border: 1px solid var(--oz-line);
}
.oz-casinos > li.is-top { border-color: var(--oz-blue-24); background-color: var(--oz-blue-12); }
.oz-casinos__logo { width: 100%; border-radius: 0.6rem; overflow: hidden; line-height: 0; }
.oz-casinos__logo img { width: 100%; height: auto; object-fit: contain; }
.oz-casinos__name { margin: 0 0 0.25rem; font-size: 1rem; font-weight: 700; line-height: 1.2; }
.oz-casinos__name small { margin-left: 0.4rem; font-size: 0.75rem; font-weight: 500; color: var(--oz-blue); }
.oz-casinos .oz-perks { gap: 0.25rem 0.9rem; }
.oz-casinos .oz-perk { font-size: 0.95rem; }
.oz-casinos__cond { margin: 0.3rem 0 0; font-size: 0.8rem; color: var(--oz-muted); }
.oz-casinos .oz-btn { align-self: center; min-height: 2.75rem; padding: 0.6rem 1.25rem; font-size: 0.95rem; box-shadow: none; }

/* Symboles / gains */
.oz-review .oz-symbols {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
    gap: 0.75rem;
    margin: 1.25rem 0;
    padding: 0;
    list-style: none;
}
.oz-review .oz-symbols li {
    display: grid;
    gap: 0.5rem;
    margin: 0;
    padding: 0.75rem;
    border-radius: var(--oz-radius-md);
    background-color: var(--oz-surface);
    border: 1px solid var(--oz-line);
    text-align: center;
}
.oz-review .oz-symbols img { width: 100%; aspect-ratio: 1; object-fit: contain; border-radius: 0.5rem; background-color: var(--oz-surface-2); }
.oz-review .oz-symbols__name { font-size: 0.85rem; font-weight: 600; }
.oz-review .oz-symbols__pay { font-size: 0.8rem; color: var(--oz-muted); }

/* Jeux similaires (cartes 16:9) */
.oz-review .oz-related {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
    gap: 1rem;
    margin: 1.25rem 0;
    padding: 0;
    list-style: none;
}
.oz-review .oz-related li { margin: 0; }
.oz-review .oz-related a {
    display: block;
    border-radius: var(--oz-radius-lg);
    overflow: hidden;
    background-color: var(--oz-surface);
    border: 1px solid var(--oz-line);
    color: var(--oz-light);
    text-decoration: none;
    transition: border-color .2s ease, transform .15s ease;
}
.oz-review .oz-related a:hover { border-color: var(--oz-blue-24); transform: translateY(-2px); color: var(--oz-light); }
.oz-review .oz-related img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.oz-review .oz-related__body { display: block; padding: 0.75rem 0.9rem 0.9rem; }
.oz-review .oz-related__name { display: block; font-weight: 600; line-height: 1.3; }
.oz-review .oz-related__meta { display: block; margin-top: 0.2rem; font-size: 0.8rem; color: var(--oz-muted); }

@media (max-width: 640px) {
    .oz-casinos > li { grid-template-columns: 3rem minmax(0, 1fr); }
    .oz-casinos .oz-btn { grid-column: 1 / -1; width: 100%; }
    .oz-review .oz-demo__bar { grid-template-columns: 1fr; }
    .oz-review .oz-demo__bar .oz-btn { width: 100%; }
}


/* ===== 15. RESPONSIVE ===== */
@media (max-width: 860px) {
    .oz-review .oz-fiche__grid { grid-template-columns: 1fr; }
    .oz-review .oz-final { grid-template-columns: auto minmax(0, 1fr); }
    .oz-review .oz-final__cta { grid-column: 1 / -1; justify-items: stretch; }
}

@media (max-width: 768px) {
    .oz-review .article-h2 { font-size: 1.8rem; line-height: 2.25rem; margin-top: 2.5rem; }
    .oz-review .article-h3 { font-size: 1.35rem; line-height: 1.8rem; margin-top: 1.75rem; }
    .oz-review .oz-toc > summary { font-size: 1.25rem; padding-left: 1.25rem; }
    .oz-review .oz-toc__list { padding: 0 1.25rem 1rem; }
    .oz-review .oz-toc__list a { padding: 0.75rem 0.5rem; font-size: 1rem; }
}

@media (max-width: 640px) {
    .oz-review .oz-hero__badge { width: 3.5rem; left: 0.75rem; bottom: 0.75rem; }
    .oz-review .oz-hero__offer .oz-btn { width: 100%; }

    .oz-review .oz-verdict { grid-template-columns: 1fr; }
    .oz-review .oz-scores li { grid-template-columns: minmax(0, 1fr) auto; gap: 0.4rem 1rem; }
    .oz-review .oz-scores__bar { grid-column: 1 / -1; grid-row: 2; }

    .oz-review .oz-proscons { grid-template-columns: 1fr; }
    .oz-review .oz-author { grid-template-columns: 1fr; }
    .oz-review .oz-author > :first-child, .oz-review .oz-author > div:last-of-type { grid-column: 1; grid-row: auto; }

    /* Tableaux clé/valeur : plus compacts */
    .oz-review .oz-kv { font-size: 0.9rem; }
    .oz-review .oz-kv th,
    .oz-review .oz-kv td { padding: 0.7rem 1rem; }
    .oz-review .oz-kv th { width: 42%; }
    .oz-review .oz-fiche__grid .oz-kv th { white-space: normal; }

    .oz-sticky .oz-btn { min-height: 3rem; font-size: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
    html:has(.oz-review) { scroll-behavior: auto; }
    .oz-review *,
    .oz-sticky,
    .oz-sticky * { transition: none !important; }
}

/* ===== Page d'accueil Ozeil (gabarit casino) ===== */
.oz-home *, .oz-home *::before, .oz-home *::after { box-sizing: border-box; }
.oz-home { --oz-pink: #dd3af5; --oz-violet: #7e22ce; max-width: calc(1140px + 2.5rem); margin: 0 auto; padding: 0 1.25rem; font-family: 'Roboto', sans-serif; }
.oz-home section, .oz-home .oz-home-hero { padding: 3.5rem 0; }

/* Hero */
/* Hero : image d'arrière-plan pleine largeur (une version ordinateur, une version téléphone), fondue dans le violet du site. */
.oz-home .oz-home-hero { position: relative; isolation: isolate; text-align: center; padding-top: 2rem; }
.oz-home .oz-home-hero__bg { position: absolute; z-index: -1; top: 0; bottom: 0; left: 50%; width: 100vw; transform: translateX(-50%); overflow: hidden; pointer-events: none; }
.oz-home .oz-home-hero__bg img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center top; }
.oz-home .oz-home-hero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(43,28,50,.25) 0%, rgba(43,28,50,.1) 45%, #2B1C32 100%); }
.oz-home .oz-home-kicker { margin: 0 0 1.25rem; padding: 0; text-transform: none; font-family: 'Roboto', sans-serif; font-size: 1.56rem; font-weight: 600; line-height: 1.56rem; letter-spacing: -.01rem; color: var(--oz-light); }
.oz-home .oz-home-title { margin: 0 auto 1.25rem; max-width: none; font-family: 'Roboto', sans-serif; font-size: 3.81rem; font-weight: 900; line-height: 3.81rem; letter-spacing: -.02rem; text-transform: uppercase; color: var(--oz-light); }
.oz-home .oz-home-verified { margin: -2rem auto 2.5rem; font-size: .95rem; font-weight: 500; color: var(--oz-muted); }
.oz-home .oz-home-verified .oz-i-check { display: inline-flex; align-items: center; justify-content: center; width: 1.25rem; height: 1.25rem; margin-right: .35rem; border-radius: 50%; background: var(--oz-blue); color: var(--oz-ink); font-size: .8rem; font-weight: 700; }
.oz-home .oz-home-lead { margin: 0 auto 3rem; max-width: none; font-family: 'Roboto', sans-serif; font-size: 2.44rem; font-weight: 600; line-height: 2.684rem; letter-spacing: -.01rem; color: var(--oz-light); }
.oz-home section .article-h2 { font-family: 'Roboto', sans-serif; font-size: 3.05rem; font-weight: 600; line-height: 3.388rem; letter-spacing: -.01rem; text-transform: uppercase; text-align: center; margin: 0 0 2rem; }
/* Cartes vedettes. Le visuel a la même taille sur les trois cartes ; la carte
   principale l'entoure d'un cadre rose (--frame) qui porte les boutons : elle
   est donc plus grande, sans mise à l'échelle qui floute le texte. */
.oz-home .oz-home-cards { --card-h: 25rem; --frame: 1.25rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(var(--frame) * 2 + 1rem); align-items: center; margin: 0 var(--frame); }
.oz-home .oz-home-card { position: relative; text-align: center; }
.oz-home .oz-home-card__visual { position: relative; isolation: isolate; display: flex; flex-direction: column; align-items: center; height: var(--card-h); padding: 1.5rem 1.25rem 1.25rem; border-radius: 1.5rem; overflow: hidden; background: rgba(244,244,244,.06); border: 1px solid var(--oz-line); box-shadow: 0 1rem 2rem rgba(0,0,0,.3); }
.oz-home .oz-home-card__bg { position: absolute; inset: 0; z-index: -2; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
/* Les images de fond sont fournies déjà assombries : aucun voile par-dessus, seulement une ombre portée sur le texte pour le détacher. */
.oz-home .oz-home-card.has-bg .oz-home-card__bonus { text-shadow: 0 2px 12px rgba(0,0,0,.55); }
/* Logo et offre forment un seul groupe, centré dans la hauteur libre au-dessus des boutons. */
.oz-home .oz-home-card__logo { align-self: center; flex: none; display: block; width: auto; max-width: 90%; height: 5.75rem; margin-top: auto; object-fit: contain; object-position: center; }
.oz-home .oz-home-card__bonus { flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center; margin: .75rem 0 auto; line-height: 1; color: var(--oz-light); }
.oz-home .oz-home-card__bonus strong { font-size: 2.7rem; font-weight: 800; letter-spacing: -.02em; color: var(--oz-light); }
.oz-home .oz-home-card__bonus small { margin: .45rem 0; font-size: 1.05rem; font-weight: 500; color: var(--oz-light); }
.oz-home .oz-home-card__bonus b { margin-top: .5rem; font-size: 1.2rem; font-weight: 800; }
/* Les boutons gardent toujours leur marge : au-dessus, un écart minimal avec l'offre ; en dessous, le bord de la carte. */
.oz-home .oz-home-card__actions { flex: none; display: flex; gap: .75rem; align-items: stretch; width: 100%; margin-top: 1.25rem; }
.oz-home .oz-home-card .oz-btn { flex: 1; justify-content: center; }

/* Carte principale : cadre rose + reflet lumineux qui la traverse en diagonale. */
.oz-home .oz-home-card--top { --move-dur: 3s; --pause-dur: 3s; --move-angle: 45deg; --bar-angle: calc(-1 * var(--move-angle)); --bar-thickness: 100px; --bar-length: 260%; --bar-opacity: .8; --bar-blur: 20px; --bar-rgb: 255,255,255; z-index: 1; margin: 0 calc(var(--frame) * -1); padding: var(--frame); border-radius: 1.75rem; overflow: hidden; background: var(--oz-pink); box-shadow: 0 1.5rem 3rem rgba(221,58,245,.35); }
.oz-home .oz-home-card--top .oz-home-card__visual { border-color: transparent; box-shadow: none; background: #2d2a2e; }
.oz-home .oz-home-card--top .oz-home-card__actions { position: relative; margin-top: var(--frame); }
.oz-home .oz-home-card--top::before { content: ""; position: absolute; z-index: 2; left: 10%; top: 100%; width: var(--bar-length); height: var(--bar-thickness); transform-origin: center; pointer-events: none; will-change: transform, opacity; background: linear-gradient(90deg, rgba(var(--bar-rgb), 0) 0%, rgba(var(--bar-rgb), var(--bar-opacity)) 50%, rgba(var(--bar-rgb), 0) 100%); filter: blur(var(--bar-blur)); animation: oz-sheen-path calc(var(--move-dur) + var(--pause-dur)) linear infinite; }
@keyframes oz-sheen-path {
  0% { transform: rotate(var(--move-angle)) translateX(-140%) rotate(calc(var(--bar-angle) - var(--move-angle))); opacity: 1; }
  14.285% { transform: rotate(var(--move-angle)) translateX(140%) rotate(calc(var(--bar-angle) - var(--move-angle))); opacity: 1; }
  14.286%, 100% { transform: rotate(var(--move-angle)) translateX(140%) rotate(calc(var(--bar-angle) - var(--move-angle))); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) { .oz-home .oz-home-card--top::before { animation: none; opacity: 0; } }

/* Bouton d'information : carré à coins arrondis, même hauteur et même rayon que le bouton d'offre. */
.oz-home .oz-home-info { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 3rem; min-height: 3rem; border-radius: var(--oz-radius-md); border: 0; background: #2d2d2d; color: #FFFFFF; cursor: pointer; transition: background-color .2s, color .2s; }
.oz-home .oz-home-info .oz-i { width: 1.2rem; height: 1.2rem; }
.oz-home .oz-home-info:hover { background: var(--oz-blue); color: var(--oz-ink); }

/* Sélection */
.oz-home .oz-home-selection h2, .oz-home .oz-home-how h2, .oz-home .oz-home-about h2, .oz-home .oz-home-compare h2, .oz-home .oz-home-needs h2, .oz-home .oz-home-latest h2 { text-align: center; text-transform: uppercase; }
/* Sélection : lignes blanches de même hauteur, colonnes fixes et alignées.
   La marge est la même sur les quatre côtés : celle qui sépare l'image du bord gauche. */
.oz-home .oz-home-list { --row-pad: 1rem; list-style: none; margin: 2.5rem 0 0; padding: 0; display: grid; grid-auto-rows: 1fr; gap: 1rem; }
.oz-home .oz-home-row { display: grid; grid-template-columns: 9.75rem minmax(11rem, 1.3fr) repeat(4, minmax(0, 1fr)) auto; gap: 1rem; align-items: center; padding: var(--row-pad); background: var(--oz-light); color: var(--oz-ink); border-radius: 1.25rem; box-shadow: 0 .75rem 1.5rem rgba(0,0,0,.25); }
.oz-home .oz-home-row__logo img { display: block; width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; border-radius: .9rem; }
.oz-home .oz-home-row__id { display: flex; flex-direction: column; justify-content: center; align-self: center; gap: .3rem; padding: 0 1.25rem 0 .25rem; }
.oz-home .oz-home-row__name { margin: 0; font-size: 1.95rem; font-weight: 500; line-height: 1.05; letter-spacing: -.01em; color: #2d2d2d; white-space: normal; overflow-wrap: normal; word-break: keep-all; }
/* WordPress enveloppe le lien d'avis dans un <p> : sans marge, et retiré quand il est vide, sinon le bloc n'est plus centré. */
.oz-home .oz-home-row__id > p { margin: 0; line-height: 1.4rem; }
.oz-home .oz-home-row__id > p:not(:has(a)) { display: none; }
.oz-home .oz-home-row__review { display: block; min-height: 1.4rem; font-size: 1rem; font-weight: 400; line-height: 1.4rem; color: var(--oz-blue); text-decoration: none; white-space: nowrap; }
.oz-home .oz-home-row__review:hover { text-decoration: none; opacity: .8; }
.oz-home .oz-home-row__sub { display: flex; flex-wrap: wrap; align-items: center; gap: 0 .6rem; min-height: 1.4rem; }
.oz-home .oz-home-row__rating { font-size: 1rem; font-weight: 700; line-height: 1.4rem; color: #2d2d2d; white-space: nowrap; }
.oz-home .oz-home-row__rating small { font-size: .8em; font-weight: 500; color: rgba(45,45,45,.65); }
/* Sans avis publié, rien n'est réservé : le nom se centre seul dans la ligne. Avec un avis, c'est le groupe nom + lien qui se centre. L'image fixe la hauteur de la ligne, donc ajouter le lien ne la change pas. */
.oz-home .oz-home-row__review--soon { display: none; }
.oz-home .oz-home-stat { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; line-height: 1.1; }
.oz-home .oz-home-stat strong { font-size: 1.56rem; font-weight: 600; color: #2d2d2d; white-space: nowrap; }
.oz-home .oz-home-stat small { margin-top: .5rem; font-size: 1rem; font-weight: 400; color: var(--oz-blue); white-space: nowrap; }
.oz-home .oz-home-stat--none strong { color: rgba(45,45,45,.5); }
.oz-home .oz-home-row__actions { display: flex; gap: 1rem; align-items: center; justify-content: flex-end; padding-right: .25rem; }
.oz-home .oz-home-row .oz-home-info { width: 3.25rem; height: 3.25rem; min-height: 0; border-radius: .9rem; }
.oz-home .oz-home-row .oz-btn { width: auto; min-height: 3.25rem; padding: .5rem 1.4rem; white-space: nowrap; text-align: center; line-height: 1.1; font-size: 1rem; font-weight: 700; color: #FFFFFF; border-radius: .9rem; box-shadow: none; }
.oz-home .oz-home-row .oz-na { font-size: .8rem; }
.oz-home .oz-home-more { margin: 1.75rem 0 0; text-align: center; }
.oz-home .oz-home-selection .oz-legal { margin-top: 1.5rem; text-align: center; }

/* Comment choisir / À propos / FAQ */
.oz-home .oz-home-subtitle { margin: 1rem 0; font-family: 'Roboto', sans-serif; font-size: 1.5rem; font-weight: 600; line-height: 2rem; color: var(--oz-light); }
.oz-home .oz-home-how .article-p { max-width: none; }
.oz-home .oz-home-steps { display: grid; gap: 1.25rem; margin-top: 2rem; }
.oz-home .oz-home-steps .oz-panel { background: var(--oz-light); border-color: transparent; border-radius: 1rem; box-shadow: 0 .75rem 1.5rem rgba(0,0,0,.2); }
.oz-home .oz-home-steps .oz-panel__title { background: transparent; color: var(--oz-ink); font-size: 1.15rem; padding: 1.25rem 1.5rem .25rem; }
.oz-home .oz-home-steps .oz-panel p { margin: 0; padding: .5rem 1.5rem 1.25rem; font-size: .95rem; line-height: 1.6rem; color: rgba(43,28,50,.9); }
.oz-home .oz-home-about__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(16rem, 1fr); gap: 2.5rem; align-items: center; margin-top: .5rem; }
.oz-home .oz-home-about__grid--text { grid-template-columns: 1fr; }
.oz-home .oz-home-about__media img { display: block; width: 100%; max-width: 26rem; height: auto; margin: 0 auto; }
.oz-home .oz-home-about .article-h3 { margin-top: 0; }
.oz-home .oz-home-faq .article-h2 { text-align: left; }
.oz-home .oz-home-faq .oz-faq { gap: 1rem; margin-top: 2rem; }
.oz-home .oz-home-faq .oz-faq__item, .oz-home .oz-home-faq .oz-faq__item[open] { background: var(--oz-light); border-color: transparent; border-radius: 1rem; box-shadow: 0 .5rem 1.25rem rgba(0,0,0,.2); }
.oz-home .oz-home-faq .oz-faq__q { color: var(--oz-ink); font-size: 1.05rem; }
.oz-home .oz-home-faq .oz-faq__icon { background: transparent; color: var(--oz-ink); width: 1.5rem; height: 1.5rem; }
.oz-home .oz-home-faq .oz-faq__icon .oz-i { width: 1.4rem; height: 1.4rem; stroke-width: 2.6; }
.oz-home .oz-home-faq .oz-faq__a p { color: rgba(43,28,50,.9); }

/* Comparatif, besoins, méthode, derniers contenus, responsable */
/* Comparatif : même langage que la liste (carte blanche, valeurs sombres, libellés bleus).
   Les règles valent dans la page et dans la fenêtre, qui est rendue hors du conteneur .oz-home. */
:is(.oz-home, .oz-modal) .oz-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:is(.oz-home, .oz-modal) .oz-home-table-wrap { margin-top: 2.5rem; border-radius: 1.25rem; background: var(--oz-light); box-shadow: 0 .75rem 1.5rem rgba(0,0,0,.25); overflow-x: auto; -webkit-overflow-scrolling: touch; }
:is(.oz-home, .oz-modal) .oz-home-table { width: 100%; margin: 0; border: 0; border-collapse: collapse; background: transparent; color: #2d2d2d; font-family: 'Roboto', sans-serif; overflow-wrap: normal; word-break: normal; }
:is(.oz-home, .oz-modal) .oz-home-table th, :is(.oz-home, .oz-modal) .oz-home-table td { padding: 1rem 1.1rem; border: 0; background: transparent; text-align: left; vertical-align: middle; line-height: 1.35; }
:is(.oz-home, .oz-modal) .oz-home-table thead th { padding: 1.15rem 1.1rem; font-size: 1.2rem; font-weight: 700; color: #2d2d2d; white-space: nowrap; border-bottom: 2px solid rgba(45,45,45,.12); }
:is(.oz-home, .oz-modal) .oz-home-table tbody tr + tr > * { border-top: 1px solid rgba(45,45,45,.1); }
:is(.oz-home, .oz-modal) .oz-home-table tbody th { font-size: 1.25rem; font-weight: 600; color: #2d2d2d; white-space: nowrap; }
:is(.oz-home, .oz-modal) .oz-home-table tbody td { font-size: 1rem; color: #2d2d2d; }
:is(.oz-home, .oz-modal) .oz-home-table strong { font-weight: 600; color: #2d2d2d; }
:is(.oz-home, .oz-modal) .oz-home-table__bonus { min-width: 17rem; }
:is(.oz-home, .oz-modal) .oz-home-table__bonus strong { display: block; font-size: 1.1rem; white-space: nowrap; }
:is(.oz-home, .oz-modal) .oz-home-table__tiers { margin: .35rem 0 0; padding: 0; list-style: none; font-size: .85rem; line-height: 1.45; color: rgba(45,45,45,.65); }
/* Les puces héritent du texte clair des articles : on impose la couleur sombre sur chaque ligne. */
:is(.oz-home, .oz-modal) .oz-home-table__tiers li { margin: 0; padding: 0; font-size: .85rem; line-height: 1.45; color: rgba(45,45,45,.65); list-style: none; }
:is(.oz-home, .oz-modal) .oz-home-table__tiers li::before { content: none; }
:is(.oz-home, .oz-modal) .oz-home-table__num { font-weight: 600; white-space: nowrap; }
:is(.oz-home, .oz-modal) .oz-home-table__nowrap { white-space: nowrap; }
:is(.oz-home, .oz-modal) .oz-home-table__none { color: rgba(45,45,45,.45); }
:is(.oz-home, .oz-modal) .oz-home-table__cta { text-align: right; white-space: nowrap; }
:is(.oz-home, .oz-modal) .oz-home-table .oz-btn { min-height: 2.6rem; padding: .4rem 1.25rem; font-size: .95rem; font-weight: 700; color: #FFFFFF; border-radius: .75rem; box-shadow: none; white-space: nowrap; }
.oz-home .oz-home-compare .oz-legal { margin-top: 1.25rem; text-align: center; }

/* Comparatif sur téléphone et tablette : une carte par casino, « libellé : valeur » sur chaque ligne. */
@media (max-width: 860px) {
  :is(.oz-home, .oz-modal) .oz-home-table-wrap { background: transparent; box-shadow: none; border-radius: 0; overflow: visible; }
  :is(.oz-home, .oz-modal) .oz-home-table, :is(.oz-home, .oz-modal) .oz-home-table tbody { display: block; }
  :is(.oz-home, .oz-modal) .oz-home-table thead { display: none; }
  :is(.oz-home, .oz-modal) .oz-home-table tbody tr { display: block; margin: 0 0 1rem; padding: 1rem; border-radius: 1.25rem; background: var(--oz-light); box-shadow: 0 .75rem 1.5rem rgba(0,0,0,.25); }
  :is(.oz-home, .oz-modal) .oz-home-table tbody tr + tr > * { border-top: 0; }
  :is(.oz-home, .oz-modal) .oz-home-table tbody th { display: block; padding: 0 0 .6rem; font-size: 1.6rem; font-weight: 600; white-space: normal; }
  :is(.oz-home, .oz-modal) .oz-home-table tbody td { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-top: 1px solid rgba(45,45,45,.1); text-align: right; }
  :is(.oz-home, .oz-modal) .oz-home-table tbody tr + tr > td { border-top: 1px solid rgba(45,45,45,.1); }
  :is(.oz-home, .oz-modal) .oz-home-table tbody td::before { content: attr(data-label); flex: none; font-size: 1rem; font-weight: 400; color: var(--oz-blue); text-align: left; }
  :is(.oz-home, .oz-modal) .oz-home-table__bonus { flex-wrap: wrap; min-width: 0; }
  :is(.oz-home, .oz-modal) .oz-home-table__bonus strong { display: inline; white-space: normal; }
  :is(.oz-home, .oz-modal) .oz-home-table__tiers { flex-basis: 100%; margin-top: .25rem; text-align: left; }
  :is(.oz-home, .oz-modal) .oz-home-table__nowrap { white-space: normal; }
  :is(.oz-home, .oz-modal) .oz-home-table tbody td.oz-home-table__cta { display: block; padding: .9rem 0 0; }
  :is(.oz-home, .oz-modal) .oz-home-table tbody td.oz-home-table__cta::before { content: none; }
  :is(.oz-home, .oz-modal) .oz-home-table .oz-btn { display: flex; justify-content: center; width: 100%; min-height: 3rem; font-size: 1rem; }
}
.oz-home .oz-home-dash { color: var(--oz-muted); }
.oz-home .oz-home-needs__list { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: 1rem; }
.oz-home .oz-home-need { display: flex; align-items: center; justify-content: center; min-height: 4.5rem; padding: 1rem; border-radius: 1rem; background: var(--oz-light); color: var(--oz-ink); font-weight: 700; text-decoration: none; text-align: center; box-shadow: 0 .5rem 1.25rem rgba(0,0,0,.2); transition: background .15s, color .15s; }
.oz-home .oz-home-need:hover { background: var(--oz-blue); color: var(--oz-ink); }
.oz-home .oz-home-method .oz-facts { margin-top: 1.5rem; }
/* Le texte prend toute la largeur du conteneur, comme le reste de la page. */
.oz-home .oz-home-method .article-p { max-width: none; }
.oz-home .oz-home-latest__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1.5rem; margin-top: 1.5rem; }
.oz-home .oz-home-latest__col .article-h3 { font-size: 1.15rem; line-height: 1.5rem; margin: 0 0 .75rem; }
.oz-home .oz-home-latest__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.oz-home .oz-home-latest__col li { padding: .9rem 1rem; border-radius: 1rem; background: var(--oz-light); color: var(--oz-ink); box-shadow: 0 .5rem 1.25rem rgba(0,0,0,.2); }
.oz-home .oz-home-latest__col a { display: block; font-weight: 700; text-decoration: none; color: var(--oz-ink); }
.oz-home .oz-home-latest__col a:hover { color: var(--oz-blue); }
.oz-home .oz-home-latest__col span { display: block; margin-top: .3rem; font-size: .85rem; color: rgba(43,28,50,.65); }
/* Derniers contenus : cartes d'articles avec image de couverture, une rangée par catégorie. */
.oz-home .oz-home-latest__row { margin-top: 2rem; }
.oz-home .oz-home-latest__row .article-h3 { font-size: 1.25rem; line-height: 1.6rem; margin: 0 0 1rem; }
.oz-home .oz-home-posts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.oz-home .oz-home-post { display: flex; flex-direction: column; overflow: hidden; border-radius: 1.25rem; background: var(--oz-light); color: var(--oz-ink); text-decoration: none; box-shadow: 0 .75rem 1.5rem rgba(0,0,0,.25); transition: transform .2s ease, box-shadow .2s ease; }
.oz-home .oz-home-post:hover { transform: translateY(-3px); box-shadow: 0 1rem 2rem rgba(0,0,0,.35); }
.oz-home .oz-home-post__media { display: block; aspect-ratio: 3/2; background: #2B1C32; }
.oz-home .oz-home-post__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.oz-home .oz-home-post__empty { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--oz-violet), var(--oz-pink)); opacity: .6; }
.oz-home .oz-home-post__body { display: flex; flex-direction: column; flex: 1; gap: .4rem; padding: 1rem 1.1rem 1.1rem; }
.oz-home .oz-home-post__kicker { font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--oz-blue); }
.oz-home .oz-home-post__title { font-size: 1.02rem; font-weight: 700; line-height: 1.35; color: var(--oz-ink); }
.oz-home .oz-home-post__excerpt { font-size: .85rem; line-height: 1.4; color: rgba(43,28,50,.68); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.oz-home .oz-home-post__more { margin-top: auto; padding-top: .5rem; font-size: .85rem; font-weight: 700; color: var(--oz-pink); }
@media (max-width: 960px) { .oz-home .oz-home-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .oz-home .oz-home-posts { grid-template-columns: 1fr; } }
.oz-home .oz-home-responsible .oz-callout p { max-width: none; }

/* Fenêtre large du comparatif. */
.oz-modal.oz-modal--wide { width: min(100% - 2rem, 74rem); max-height: min(90vh, 56rem); }
.oz-modal--wide .oz-modal__body { max-height: calc(min(90vh, 56rem) - 5rem); padding: 1rem; }
.oz-modal--wide .oz-home-table-wrap { margin-top: 0; }
.oz-modal--wide .oz-modal__legal a { color: var(--oz-blue); }

/* Écrans moyens : tout reste sur une ligne, en plus compact. */
@media (min-width: 961px) and (max-width: 1180px) {
  .oz-home .oz-home-row { grid-template-columns: 7.5rem minmax(9rem, 1.2fr) repeat(4, minmax(0, 1fr)) auto; gap: .75rem; }
  .oz-home .oz-home-row__name { font-size: 1.5rem; }
  .oz-home .oz-home-stat strong { font-size: 1.25rem; }
  .oz-home .oz-home-stat small, .oz-home .oz-home-row__review { font-size: .85rem; }
  .oz-home .oz-home-row__actions { gap: .6rem; }
  .oz-home .oz-home-row .oz-home-info { width: 2.9rem; height: 2.9rem; }
  .oz-home .oz-home-row .oz-btn { padding: .5rem .9rem; font-size: .9rem; min-height: 2.9rem; }
}

@media (max-width: 960px) {
  .oz-home section, .oz-home .oz-home-hero { padding: 2.5rem 0; }
  .oz-home .oz-home-cards { --card-h: 22rem; grid-template-columns: 1fr; gap: 1.5rem; max-width: 24rem; margin: 0 auto; }
  .oz-home .oz-home-card { margin: 0 var(--frame); }
  .oz-home .oz-home-card--top { order: -1; margin: 0; }
  .oz-home .oz-home-card__logo { height: 5rem; }
  .oz-home .oz-home-card__bonus strong { font-size: 2.25rem; }
  .oz-home .oz-home-card__bonus small { margin: .35rem 0; font-size: .95rem; }
  .oz-home .oz-home-card__actions { margin-top: 1rem; }
  /* Liste sur téléphone : image et nom côte à côte, puis les quatre chiffres
     deux par deux dans l'ordre de lecture (bonus, free spins, wager, dépôt),
     puis les boutons. Les colonnes sont ciblées par leur rang dans la ligne :
     image, nom, bonus, free spins, wager, dépôt, boutons. */
  .oz-home .oz-home-list { grid-auto-rows: auto; gap: 1rem; }
  .oz-home .oz-home-row { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); grid-template-areas: "logo id" "bonus spins" "wager deposit" "actions actions"; column-gap: 1rem; row-gap: 1rem; align-items: center; }
  .oz-home .oz-home-row__logo { grid-area: logo; }
  .oz-home .oz-home-row__id { grid-area: id; padding-left: 0; }
  .oz-home .oz-home-row__name { font-size: clamp(1.75rem, 7.6vw, 2.1rem); font-weight: 600; line-height: 1.05; white-space: normal; }
  .oz-home .oz-home-row__review { font-size: .9rem; white-space: nowrap; }
  .oz-home .oz-home-row > :nth-child(3) { grid-area: bonus; }
  .oz-home .oz-home-row > :nth-child(4) { grid-area: spins; }
  .oz-home .oz-home-row > :nth-child(5) { grid-area: wager; }
  .oz-home .oz-home-row > :nth-child(6) { grid-area: deposit; }
  .oz-home .oz-home-stat strong { font-size: 1.5rem; }
  .oz-home .oz-home-stat small { margin-top: .35rem; font-size: 1rem; }
  .oz-home .oz-home-row__actions { grid-area: actions; justify-content: center; gap: 1rem; padding: .25rem .5rem 0; }
  .oz-home .oz-home-row .oz-home-info { width: 3.25rem; height: 3.25rem; }
  .oz-home .oz-home-row .oz-btn { flex: 1; width: auto; max-width: 20rem; min-height: 3.25rem; }
  .oz-home .oz-home-about__grid { grid-template-columns: 1fr; }
  .oz-home .oz-home-kicker { font-size: 1.2rem; line-height: 1.4rem; }
  .oz-home .oz-home-title { font-size: 2.4rem; line-height: 2.5rem; }
  .oz-home .oz-home-lead { font-size: 1.5rem; line-height: 1.8rem; }
  .oz-home section .article-h2 { font-size: 2rem; line-height: 2.3rem; }
}
