/* ===========================================================
   Corner d'accueil — refonte design V2 (« Jeux & Cadeaux »).
   Une seule structure, pilotée par .layout-* (5 variantes).
   Les COULEURS sont mappées sur les tokens marchand --corner-*
   (theming par boutique) ; seules les identités « cadeau »
   (badge/pièces dorées) restent figées comme les scènes de jeu.
   Partagé par le corner LIVE (jeux/catalogue) et l'aperçu du
   designer (espace/designer/preview) → une seule source de vérité.
   =========================================================== */
.crn {
    --surface: var(--corner-surface-light, #FAF4EF);
    --ink: var(--corner-text-on-light, #260C2C);
    --ink-soft: color-mix(in srgb, var(--corner-text-on-light, #260C2C) 55%, transparent);
    --accent: var(--corner-accent, #FFB23C);
    --on-bg: var(--corner-text-on-dark, #FAF4EF);
    --on-bg-soft: color-mix(in srgb, var(--corner-text-on-dark, #FAF4EF) 62%, transparent);
    --p1: var(--corner-action, #FB6B4B);
    --p2: var(--corner-accent, #FFB23C);
    --crn-font: var(--corner-font, system-ui), sans-serif;
    max-width: 1120px; margin: 0 auto;
}
.crn h1, .crn h2, .crn h3, .crn .num, .crn .big { font-family: var(--crn-font); letter-spacing: -0.02em; }
.crn a { text-decoration: none; color: inherit; }

/* ---------------- header ---------------- */
.crn-header { background: var(--surface); border-radius: 16px; padding: 11px 24px;
    display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.crn-brand { font-family: var(--crn-font); font-weight: 800; font-size: 21px; color: var(--ink); }
.crn-logo { max-height: 34px; width: auto; display: block; }
.crn-nav .on { color: var(--accent); font-weight: 700; font-size: 15px; }

/* ---------------- body layouts ---------------- */
.crn-body { margin-top: 12px; }
.layout-stack-top .crn-body, .layout-stack-bottom .crn-body { display: flex; flex-direction: column; gap: 12px; }
.layout-stack-bottom .crn-body .crn-promo { order: 2; }
.layout-stack-bottom .crn-body .crn-games-section { order: 1; }
.layout-side-left .crn-body { display: grid; grid-template-columns: 0.82fr 1.18fr; gap: 18px; align-items: start; }
.layout-side-right .crn-body { display: grid; grid-template-columns: 1.18fr 0.82fr; gap: 18px; align-items: start; }
.layout-side-right .crn-body .crn-promo { order: 2; }

/* ---------------- promo (bandeau cadeau) ---------------- */
.crn-promo { position: relative; border-radius: 24px; overflow: hidden;
    background: linear-gradient(118deg, var(--p1), var(--p2));
    box-shadow: 0 22px 50px -28px color-mix(in srgb, var(--p1) 70%, transparent); isolation: isolate; }
/* Bandeau d'accueil personnalisé (image marchand) qui remplace le bandeau orange. */
.crn-promo--custom { background: none; cursor: pointer; box-shadow: 0 22px 50px -30px rgba(16,22,28,.4); }
.crn-promo-img { display: block; width: 100%; height: auto; }
.crn-promo::before { content: ""; position: absolute; inset: 0; pointer-events: none;
    background: radial-gradient(120% 140% at 88% 8%, rgba(255,255,255,.30), transparent 46%); }
.promo-inner { position: relative; z-index: 2; display: grid; grid-template-columns: 1.6fr 0.95fr; }
.promo-main { padding: 22px 12px 22px 30px; }
.promo-aside { position: relative; padding: 16px 20px 16px 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; }

/* Points/série : PETIT, en haut du bandeau (compo client 2026-07-17) — la
   colonne droite est entièrement dédiée au cadeau. */
.promo-stats { position: absolute; z-index: 3; top: 14px; left: 50%; transform: translateX(-50%); }
.promo-stats .stat { padding: 6px 14px; }
.promo-stats .stat .num { font-size: 15px; }
.promo-stats .stat .cap { font-size: 9.5px; }
.promo-stats .dots { margin-top: 3px; }
.promo-stats .dots i { width: 5px; height: 5px; }
/* Variantes centrée/étroite (layouts latéraux) : pas d'absolu, le bloc revient
   dans le flux au-dessus du contenu. */
.promo--narrow .promo-stats {
    position: static; transform: none; display: flex; justify-content: center; padding-top: 16px;
}
/* variantes centrée & étroite : le badge passe AU-DESSUS du texte */
.promo--narrow .promo-inner { display: flex; flex-direction: column; align-items: center; text-align: center; }
.promo--narrow .promo-main { order: 2; padding: 2px 24px 22px; max-width: 36em; }
.promo--narrow .promo-aside { order: 1; padding: 18px 24px 0; }
.promo--narrow .promo-sub { margin-left: auto; margin-right: auto; }
.promo--narrow .promo-cta { justify-content: center; }

.crn .pill { display: inline-flex; align-items: center; gap: 8px; background: rgba(255,255,255,.22); color: #fff;
    font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; padding: 8px 14px; border-radius: 999px;
    backdrop-filter: blur(4px); white-space: nowrap; }
.crn-promo h1 { color: #fff; font-weight: 800; line-height: 1; margin-top: 8px; text-shadow: 0 3px 22px rgba(40,10,0,.22); }
.crn-promo h1 .kfront, .crn-promo h1 .kback { display: block; font-size: clamp(22px, 2.6vw, 30px); font-weight: 800; line-height: 1.05; opacity: .98; }
.crn-promo h1 .big { display: block; font-size: clamp(78px, 9.5vw, 128px); line-height: .9; letter-spacing: -0.04em; margin: 2px 0; }
.crn-promo h1 .big small, .prize-badge .num small { font-size: .42em; vertical-align: top; font-weight: 700; }
.promo-sub { color: #fff; font-weight: 600; font-size: 15px; max-width: 26em; margin-top: 10px; line-height: 1.4; opacity: .97; }
.promo-cta { display: flex; align-items: center; gap: 16px; margin-top: 14px; flex-wrap: wrap; }
/* `.crn .btn-play` (et non `.btn-play`) pour battre `.crn a { color: inherit }`
   en spécificité ; texte en rouge « cadeau » fixe = lisible sur le bouton blanc
   quelle que soit la couleur d'action du marchand. */
.crn .btn-play { display: inline-flex; align-items: center; gap: 10px; background: #fff; color: #e0481f;
    font-weight: 800; font-size: 15px; padding: 11px 20px; border-radius: 12px; box-shadow: 0 10px 26px rgba(20,10,0,.22);
    transition: transform .15s; animation: crn-pulse 2.6s ease-in-out infinite; white-space: nowrap; }
.btn-play:hover { transform: translateY(-2px); }
.btn-play .arr { transition: transform .15s; } .btn-play:hover .arr { transform: translateX(4px); }
.promo-note { color: #fff; font-weight: 600; font-size: 13px; opacity: .85; }
.btn-play:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

.prize-badge { position: relative; width: 158px; height: 158px; border-radius: 50%;
    background: radial-gradient(circle at 50% 38%, #fff7ec, #ffe6c2 70%, #ffd79e);
    box-shadow: 0 18px 40px rgba(140,40,0,.3), inset 0 0 0 6px rgba(255,255,255,.55);
    display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; }
.prize-badge .num { font-size: 54px; font-weight: 800; color: #e0481f; line-height: .9; letter-spacing: -0.04em; }
.prize-badge .lbl { font-weight: 800; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: #b8531f; margin-top: 5px; opacity: .9; }
.shine { position: absolute; top: 0; left: -60%; width: 50%; height: 100%; transform: skewX(-20deg);
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.7), transparent); }
.coin { position: absolute; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff1cf, #f9c33d 70%, #e09a1d);
    box-shadow: 0 4px 10px rgba(120,60,0,.3); font-weight: 800; color: #a9650f; display: flex; align-items: center; justify-content: center; }
.coin.c1 { width: 36px; height: 36px; top: 16px; right: 20px; font-size: 14px; }
.coin.c2 { width: 26px; height: 26px; bottom: 64px; left: 12px; font-size: 11px; }
.coin.c3 { width: 21px; height: 21px; bottom: 104px; right: 10px; font-size: 10px; }

.crn .stats { display: flex; background: rgba(40,20,55,.26); backdrop-filter: blur(6px);
    border: 1px solid rgba(255,255,255,.25); border-radius: 14px; overflow: hidden; }
.crn .stat { padding: 9px 18px; text-align: center; color: #fff; }
.crn .stat + .stat { border-left: 1px solid rgba(255,255,255,.22); }
.crn .stat .num { display: block; font-size: 21px; font-weight: 800; }
.crn .stat .cap { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; opacity: .85; }
.crn .dots { display: flex; gap: 5px; justify-content: center; margin-top: 5px; }
.crn .dots i { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.4); }
.crn .dots i.on { background: #fff; }
.crn .dots i.today { background: #fff; box-shadow: 0 0 0 3px rgba(255,255,255,.3); }

/* ---------------- games ---------------- */
.games-head { display: flex; align-items: baseline; justify-content: space-between; margin: 0 2px 8px; gap: 12px; flex-wrap: wrap; }
.games-head h2 { color: var(--on-bg); font-size: 22px; font-weight: 800; white-space: nowrap; }
.games-head p { color: var(--on-bg-soft); font-weight: 700; font-size: 14px; }
.games-head p b { color: var(--accent); }
.games { display: grid; gap: 12px; }
.games--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 720px) { .games--3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px) { .games--3 { grid-template-columns: 1fr; } }

.card { position: relative; background: var(--surface); color: var(--ink); border-radius: 15px; padding: 11px 14px;
    display: flex; align-items: center; gap: 14px; cursor: pointer; border: 1.5px solid transparent;
    transition: transform .16s, box-shadow .16s, border-color .16s; }
.card:hover { transform: translateY(-4px); box-shadow: 0 18px 34px -16px rgba(0,0,0,.45); border-color: color-mix(in srgb, var(--accent) 70%, transparent); }
.card:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.card-body { flex: 1 1 auto; min-width: 0; }
.card-body h3 { color: var(--ink); font-size: 17px; font-weight: 800; }
.card-body .desc { color: var(--ink-soft); font-size: 13px; font-weight: 600; margin-top: 1px; }
.card-foot { display: flex; align-items: center; gap: 8px; margin-top: 7px; }
.tag { font-size: 11px; font-weight: 700; color: var(--ink); background: color-mix(in srgb, var(--ink) 10%, transparent); padding: 3px 9px; border-radius: 999px; white-space: nowrap; }
.tag.daily { background: color-mix(in srgb, var(--accent) 24%, transparent); }
.tag.live { background: rgba(22,163,74,.18); color: #15803D; }
.go { margin-left: auto; color: var(--accent); font-weight: 800; font-size: 13px; display: inline-flex; align-items: center; gap: 4px;
    white-space: nowrap; opacity: .6; transition: opacity .16s, transform .16s; }
.card:hover .go { opacity: 1; transform: translateX(2px); }
.ribbon { position: absolute; top: 12px; right: 12px; display: inline-flex; align-items: center; gap: 4px;
    background: linear-gradient(110deg, var(--p1), var(--p2)); color: #fff; font-weight: 800; font-size: 11px;
    padding: 4px 9px; border-radius: 999px; box-shadow: 0 4px 12px -3px color-mix(in srgb, var(--p1) 60%, transparent); z-index: 1; }

/* vignettes : dégradé identité du jeu + glyphe SVG blanc (cf. config/corner.php). */
.tile { flex: 0 0 auto; width: 50px; height: 50px; border-radius: 13px; color: #fff;
    display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 16px -4px rgba(0,0,0,.4); }
.tile .gi { width: 30px; height: 30px; }
.tile-img { background-size: cover; background-position: center; }

/* layouts côte-à-côte : promo verticale, cartes recomposées en vignette verticale.
   ⚠️ JAMAIS de grid-template-rows: repeat(3, 1fr) ici (retiré 2026-08-14) :
   avec 6 jeux, la 3e rangée réservée restait VIDE (~1 rangée de blanc
   invisible sous les cartes) et le bandeau — calé sur la hauteur de la
   SECTION — semblait déborder sous les jeux ; l'interprétation des rangées
   fr en grille auto varie en plus selon les navigateurs. Rangées auto :
   la section = exactement ses cartes. */
.layout-side-left .crn-games-section, .layout-side-right .crn-games-section { display: flex; flex-direction: column; }
.layout-side-left .games, .layout-side-right .games { flex: 0 0 auto; }
.layout-side-left .card, .layout-side-right .card {
    flex-direction: column; align-items: center; justify-content: center; text-align: center;
    gap: 12px; padding: 18px 14px; border-radius: 18px; }
.layout-side-left .card-body, .layout-side-right .card-body { width: 100%; flex: 0 0 auto; }
.layout-side-left .card-body h3, .layout-side-right .card-body h3 { font-size: 19px; }
.layout-side-left .card-foot, .layout-side-right .card-foot { justify-content: center; margin-top: 11px; }
.layout-side-left .go, .layout-side-right .go { margin-left: 0; opacity: 1; }
.layout-side-left .tile, .layout-side-right .tile { width: 78px; height: 78px; }
.layout-side-left .tile .gi, .layout-side-right .tile .gi { width: 44px; height: 44px; }

/* Animations des icônes de jeu (héritées du corner V1). */
.gi-wheel .wheel { transform-origin: 14px 14px; animation: crn-spin 7s linear infinite; }
.card:hover .gi-wheel .wheel { animation-duration: 1.4s; }
.gi-gift .gift { transform-origin: 14px 16px; animation: crn-bob 2.2s ease-in-out infinite; }
.gi-bolt path { animation: crn-flash 1.6s ease-in-out infinite; }
.gi-cards .flip, .gi-spade .flip { transform-origin: 17px 14px; animation: crn-flip 3.6s ease-in-out infinite; }
.gi-word .t2 { transform-origin: 14px 14px; animation: crn-flip 3s ease-in-out infinite; }
.gi-puzzle { transform-origin: center; animation: crn-bob 2.6s ease-in-out infinite; }
@keyframes crn-spin { to { transform: rotate(360deg); } }
@keyframes crn-flash { 0%,100% { opacity: 1; } 50% { opacity: .4; } }
@keyframes crn-flip { 0%,82%,100% { transform: rotateY(0); } 41% { transform: rotateY(180deg); } }
@keyframes crn-bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }

/* responsive : promo en colonne unique sur mobile, badge à côté du texte */
@media (max-width: 880px) {
    .layout-side-left .crn-body, .layout-side-right .crn-body { grid-template-columns: 1fr; }
    .promo-inner { grid-template-columns: 1fr; }
    .promo-main { padding: 32px 28px 6px; }
    .promo-aside { padding: 18px 28px 30px; flex-direction: row; flex-wrap: wrap; }
    .layout-side-left .games, .layout-side-right .games { grid-template-rows: none; }
    /* Points/série : retour dans le flux (sous le contenu), jamais par-dessus le pill. */
    .promo-stats { position: static; transform: none; display: flex; justify-content: center; padding: 16px 0 0; }
}

@media (prefers-reduced-motion: no-preference) {
    @keyframes crn-pulse { 0%,100% { box-shadow: 0 10px 26px rgba(20,10,0,.22); } 50% { box-shadow: 0 10px 26px rgba(20,10,0,.22), 0 0 0 8px rgba(255,255,255,.16); } }
    @keyframes crn-shine { 0% { left: -60%; } 55%,100% { left: 130%; } }
    .shine { animation: crn-shine 3.6s ease-in-out infinite; }
    @keyframes crn-coin-bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
    .coin.c1 { animation: crn-coin-bob 3s ease-in-out infinite; }
    .coin.c2 { animation: crn-coin-bob 3.4s ease-in-out .4s infinite; }
    .coin.c3 { animation: crn-coin-bob 2.7s ease-in-out .8s infinite; }
}
@media (prefers-reduced-motion: reduce) { .gi *, .gi, .btn-play, .shine, .coin { animation: none !important; } }

/* Vignette de la dotation du mois (CDC dotation §8) — slot écran d'accueil. */
.cpx-dotation--accueil { margin: 0; text-align: center; }
.cpx-dotation--accueil img { max-width: 100%; width: 300px; height: auto; border-radius: 16px; display: block; box-shadow: 0 14px 34px rgba(0, 0, 0, .3); }
.cpx-dotation--accueil figcaption { margin-top: 8px; font-size: 13px; font-weight: 700; color: var(--corner-text-on-dark, #fff); }

/* Bloc promo du LOT EN COURS (demande client 2026-07-16, simplifié 2026-07-17) :
   carte BLANCHE, angles arrondis, ombre portée — visuel du lot, nom (+ valeur
   si affichable) et bouton « Jouer ». Texte encre sombre sur fond blanc. */
.lotp {
    position: relative; width: 250px; max-width: 100%;
    background: #fff; border-radius: 22px; overflow: hidden; cursor: pointer;
    box-shadow: 0 18px 44px rgba(0, 0, 0, .28);
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 10px; padding: 18px 16px; text-align: center;
    transition: transform .18s ease, box-shadow .18s ease;
}
.lotp:hover { transform: translateY(-3px); box-shadow: 0 24px 54px rgba(0, 0, 0, .34); }
.lotp-img { width: 100%; flex: 1; min-height: 0; object-fit: contain; display: block; }
.lotp-ph { font-size: 64px; line-height: 1; }
.lotp-titre {
    font-size: 17px; line-height: 1.2; color: #260C2C; letter-spacing: -.01em;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.lotp-valeur {
    display: inline-block; background: color-mix(in srgb, var(--corner-accent, #FFB23C) 25%, #fff);
    color: #260C2C; border-radius: 100px; padding: 4px 14px; font-weight: 800; font-size: 12px;
    white-space: nowrap;
}
.lotp-cta {
    display: inline-block; background: var(--corner-action, #FB6B4B); color: #fff;
    border-radius: 12px; padding: 10px 30px; font-weight: 800; font-size: 15px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .18);
}
.lotp:hover .lotp-cta { filter: brightness(1.05); }
@media (max-width: 600px) { .lotp { width: 220px; } }

/* Dans le BANDEAU d'accueil : la carte ÉPOUSE la hauteur du texte (position
   absolue, carré centré) — le bandeau s'arrête sous le bouton « Je tente ma
   chance », jamais étiré par le visuel (ligne de flottaison). */
@media (min-width: 881px) {
    .crn-promo:not(.promo--narrow) .promo-aside .lotp {
        position: absolute; top: 10px; bottom: 10px; left: 50%;
        width: auto; height: auto; aspect-ratio: 1 / 1;
        transform: translateX(-50%); margin: 0;
    }
    .crn-promo:not(.promo--narrow) .promo-aside .lotp:hover {
        transform: translateX(-50%) translateY(-2px);
    }
}
@media (max-width: 880px) {
    .promo-aside .lotp { width: 240px; }
}

/* Mobile : bandeau COMPACT (bug client 2026-08-14 — le bloc promo occupait un
   écran entier en 375px, dont ~410px pour la seule carte du lot ; les jeux
   passaient sous la ligne de flottaison). L'image du lot est bornée et la
   carte resserrée — mêmes éléments, proportions raisonnables. */
@media (max-width: 600px) {
    .promo-main { padding: 22px 20px 2px; }
    .promo-sub { font-size: 14px; }
    .promo-aside { padding: 10px 20px 20px; }
    .promo-aside .lotp { width: 214px; padding: 12px 12px 14px; gap: 8px; }
    .lotp-img { max-height: 108px; flex: 0 0 auto; }
    .lotp-titre { font-size: 15px; }
    .lotp-cta { padding: 8px 24px; font-size: 14px; }
    .promo-stats { padding: 10px 0 0; }
    .promo-stats .stat { padding: 5px 12px; }
    .cpx-dotation--accueil img { width: 220px; }
    .crn-promo h1 { font-size: 26px; margin: 8px 0 6px; }
    .crn-promo h1 .big { font-size: 26px !important; } /* bat le style inline du nom du lot */
    .crn-promo .pill { font-size: 11px; padding: 4px 10px; }
    .promo-sub { margin: 0 0 10px; }
    .promo-cta { gap: 8px; }
    .promo-cta .btn-play { padding: 10px 18px; font-size: 14px; }
    .promo-stats .stat .num { font-size: 13px; }
}

/* Structures latérales & centrée : le bandeau reste COMPACT (demande client
   2026-07-17 — il s'étirait à la hauteur de la colonne des jeux) : hauteur =
   son contenu, carte du lot réduite, titres resserrés. */
.promo--narrow .lotp { width: 200px; }
.crn-promo.promo--narrow h1 .big { font-size: clamp(56px, 6vw, 84px); }
.promo--narrow .prize-badge { width: 128px; height: 128px; }
.promo--narrow .prize-badge .num { font-size: 42px; }

/* Bandeau LATÉRAL (structures gauche/droite) : il S'ARRÊTE au bas des blocs
   de jeu (demande client 2026-08-14 — il débordait sous la colonne des jeux).
   Version ROBUSTE tous navigateurs (le hack grille height:0/min-height:100%
   n'était pas appliqué partout — pourcentages de rangée fragiles) : le flux
   ne contient QUE la colonne des jeux, qui dicte donc la hauteur du body ; le
   bandeau, en absolu, tapisse exactement cette hauteur. L'image du lot
   absorbe la différence (flex + min-height:0) ; textes et bouton restent
   entiers. Le hero personnalisé (image marchand) reste EN FLUX via la classe
   .crn-body--hero posée par le SERVEUR (jamais :has() : non supporté partout,
   ex. Firefox < 121, et un sélecteur inconnu invalide TOUT le bloc — c'est
   exactement pourquoi le calage ne s'appliquait pas chez le client).
   Largeurs = mêmes fractions que la grille (0.82fr/1.18fr, gap 18px). */
@media (min-width: 881px) {
    .layout-side-left .crn-body:not(.crn-body--hero),
    .layout-side-right .crn-body:not(.crn-body--hero) {
        display: block; position: relative;
    }
    .layout-side-left .crn-body:not(.crn-body--hero) {
        padding-left: calc((100% - 18px) * 0.41 + 18px);
    }
    .layout-side-right .crn-body:not(.crn-body--hero) {
        padding-right: calc((100% - 18px) * 0.41 + 18px);
    }
    .layout-side-left .crn-body:not(.crn-body--hero) .crn-promo,
    .layout-side-right .crn-body:not(.crn-body--hero) .crn-promo {
        position: absolute; top: 0; bottom: 0;
        width: calc((100% - 18px) * 0.41);
        display: flex; flex-direction: column;
    }
    .layout-side-left .crn-body:not(.crn-body--hero) .crn-promo { left: 0; }
    .layout-side-right .crn-body:not(.crn-body--hero) .crn-promo { right: 0; }
    .layout-side-left .crn-promo:not(.crn-promo--custom) .promo-inner,
    .layout-side-right .crn-promo:not(.crn-promo--custom) .promo-inner {
        flex: 1 1 auto; min-height: 0;
    }
    .promo--narrow .promo-aside { flex: 1 1 auto; min-height: 0; width: 100%; box-sizing: border-box; }
    .promo--narrow .promo-main { flex: 0 0 auto; }
    .promo--narrow .promo-aside .lotp { max-height: 100%; }
    .promo--narrow .lotp > :not(.lotp-img) { flex-shrink: 0; }
}

/* Structure « Bandeau centré » SUPPRIMÉE (décision client 2026-08-14) : les
   designs qui l'avaient retombent sur la structure par défaut (normaliserLayout). */
