/* ==========================================================================
   OFFIL — WP PATCH — V1.9.0 + ANTI-FREEZE
   Base : V1.9.0 (Retour à la normale + S23 Fluide)
   Correctif : Anti-Freeze iOS (Suppression des animations bloquantes)
   ========================================================================== */

html, body {
  margin: 0; padding: 0; width: 100%;
  overflow-x: hidden; -webkit-text-size-adjust: 100%;
  /* [ANTI-FREEZE] Empêche le rebond élastique global qui fige l'interface */
  overscroll-behavior-y: none !important;
}

/* ==========================================================
   1. CONTENEUR GLOBAL
   ========================================================== */
.offil-webapp-root {
  position: fixed !important; inset: 0 !important;
  width: 100% !important; height: 100vh !important; height: 100dvh !important;
  z-index: 2147483647 !important; background-color: #f5f7fb !important;
  overflow-y: auto !important; overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch !important; display: block !important;
  box-sizing: border-box;
  /* [ANTI-FREEZE] Force l'interactivité */
  pointer-events: auto !important;
}

body.admin-bar .offil-webapp-root {
  top: var(--offil-adminbar-h, 32px) !important;
  height: calc(100vh - var(--offil-adminbar-h, 32px)) !important;
}

/* ==========================================================
   2. CARTE CENTRALE
   ========================================================== */
.offil-content-wrapper {
  width: min(600px, 100%); min-height: 100%; margin: 0 auto;
  background-color: #ffffff;
  box-shadow: 0 0 50px rgba(0,0,0,0.06);
  position: relative; display: block;
  overflow: visible !important; z-index: 10;
  box-sizing: border-box;

  /* [ANTI-FREEZE] LE CORRECTIF CRITIQUE EST ICI */
  /* On supprime translate3d qui crée des calques fantômes sur iPhone */
  transform: none !important;
  will-change: auto !important;
  transition: none !important;
}

/* --- SPÉCIFIQUE S23 : LARGEUR ÉTENDUE --- */
.offil-webapp-root.is-wide-mode .offil-content-wrapper {
   max-width: 1200px !important; 
   width: 100% !important;
   background-color: #f5f7fb !important;
}

/* Mobile */
@media (max-width: 767px) {
  .offil-webapp-root { background-color: #ffffff !important; }
  .offil-content-wrapper { max-width: 100% !important; box-shadow: none !important; }
}

/* ==========================================================
   3. CONTENU
   ========================================================== */
.offil-main {
  position: relative; z-index: 5;
  padding-bottom: 40px !important;
}

.offil-card {
    margin-bottom: 24px !important; display: block; position: relative;
}

/* On cache l'espaceur technique partout */
.offil-footer-spacer { display: none !important; }


/* ==========================================================
   4. LE FOOTER (RETOUR AU STANDARD)
   ========================================================== */

/* [ANTI-FREEZE] Ajout de sécurité pour garantir le clic */
.offil-footer {
    pointer-events: auto !important;
}

/* --- UNIQUEMENT POUR S23 --- */
/* On force le footer S23 à ressembler à une "Carte" en bas de page */
.offil-webapp-root.is-wide-mode .offil-footer {
    position: relative !important; /* Pas fixe, il suit le scroll */
    z-index: 20 !important;
    background: #ffffff !important;
    
    /* Design "Carte détachée" */
    margin-top: 30px !important; /* Espace avec le tableau */
    padding: 24px 20px !important;
    border-top: 1px solid #e2e8f0 !important;
    box-shadow: 0 -4px 20px rgba(0,0,0,0.03) !important;
    
    width: 100% !important;
    display: block !important;
    clear: both !important;
}

/* Centrage du contenu S23 sur grand écran */
.offil-webapp-root.is-wide-mode .offil-footer > div {
    max-width: 600px !important;
    margin: 0 auto !important;
}

/* Style Bouton S23 */
.offil-webapp-root.is-wide-mode .btn-primary {
    display: block !important; width: 100% !important;
    background: #0a3a76 !important; color: white !important;
    padding: 14px !important; border-radius: 12px !important;
    font-family: 'Oswald', sans-serif !important; font-weight: 700 !important;
    font-size: 15px !important; text-align: center !important; border: none !important;
    cursor: pointer !important;
}


/* ==========================================================
   5. HEADER & TABLEAU S23 (CE QUI MARCHAIT DÉJÀ)
   ========================================================== */

/* HEADER S23 : Sticky + Pleine largeur */
.offil-webapp-root.is-wide-mode .offil-header,
.offil-webapp-root.is-wide-mode .offil-progress {
    position: sticky !important; top: 0 !important; z-index: 1000 !important;
    left: 0 !important; width: 100% !important; margin: 0 !important;
    background: #ffffff !important; box-sizing: border-box !important;
    padding-left: 20px !important; padding-right: 20px !important;
}
.offil-webapp-root.is-wide-mode .offil-header > * { max-width: 600px; margin: 0 auto; }
.offil-webapp-root.is-wide-mode .offil-progress { top: 60px !important; z-index: 999 !important; }

/* TABLEAU S23 */
#S23_COMPARE, .offil-webapp-root.is-wide-mode .compare-container {
    background: #ffffff !important; border-radius: 12px !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05) !important;
    margin: 0 10px 0 10px !important; /* Marge bas 0 car le footer a une marge haut */
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important; display: block !important;
}

#S23_COMPARE table, .offil-webapp-root.is-wide-mode table {
    min-width: 600px !important; width: 100% !important;
    border-collapse: separate !important; border-spacing: 0 !important;
    table-layout: fixed !important;
}
.offil-webapp-root.is-wide-mode colgroup col:first-child { width: 130px !important; }
.offil-webapp-root.is-wide-mode colgroup col:not(:first-child) { width: 155px !important; }

/* En-têtes */
.offil-webapp-root.is-wide-mode th {
    position: sticky !important; top: 0 !important; z-index: 40 !important;
    background-color: #F8FAFC !important; padding: 12px 6px 45px 6px !important;
    vertical-align: top !important; font-family: 'Oswald', sans-serif !important;
    color: #0a3a76 !important; text-transform: uppercase !important;
    border-bottom: 1px solid #e2e8f0 !important; font-size: 13px !important;
}

/* Colonne Gauche */
#S23_COMPARE th:first-child, #S23_COMPARE td:first-child,
.offil-webapp-root.is-wide-mode th:first-child, .offil-webapp-root.is-wide-mode td:first-child {
    position: sticky !important; left: 0 !important;
    background-color: #ffffff !important; z-index: 50 !important;
    border-right: 2px solid #e2e8f0 !important;
    box-shadow: 4px 0 10px rgba(0,0,0,0.04) !important;
    width: 130px !important; min-width: 130px !important; max-width: 130px !important;
    padding: 12px 10px !important; text-align: left !important;
    font-size: 10.5px !important; line-height: 1.4 !important; white-space: normal !important;
}
.offil-webapp-root.is-wide-mode th:first-child { 
    z-index: 60 !important; background-color: #F8FAFC !important;
    top: 0 !important; padding-bottom: 12px !important;
}

/* Divers S23 */
.offil-webapp-root.is-wide-mode .offil-select { display: flex !important; justify-content: center !important; margin-top: 8px !important; font-size: 11px !important; }
.offil-webapp-root.is-wide-mode tr:nth-child(even) td { background-color: #f8fafc !important; }
.offil-webapp-root.is-wide-mode tr:nth-child(odd) td { background-color: #ffffff !important; }
.offil-webapp-root.is-wide-mode tr:nth-child(even) td.col-expert { background-color: #fff7ed !important; }
#S23_COMPARE td { border-bottom: 1px solid #cbd5e1 !important; vertical-align: top !important; }

/* Intro Card S23 */
.offil-webapp-root.is-wide-mode .offil-main > div:first-child {
    max-width: 600px !important; margin: 20px auto !important;
    background: #ffffff !important; border-radius: 12px !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05) !important; padding: 24px !important;
}
.offil-webapp-root.is-wide-mode h1 {
    font-family: 'Oswald', sans-serif !important; color: #0a3a76 !important;
    font-size: 24px !important; margin-top: 0 !important; text-transform: uppercase !important;
}

/* Scroll Hint */
.scroll-hint {
    display: table !important; margin: 0 20px 8px auto !important;
    font-family: 'Oswald', sans-serif !important; font-weight: 700 !important;
    font-size: 11px !important; color: #0a3a76 !important;
    background-color: #eff6ff !important; padding: 6px 12px !important;
    border-radius: 20px !important; border: 1px solid #dbeafe !important;
}

/* Patchs Généraux (Indispensables) */
.offil-screen { display: block !important; }
#S10_0 .offil-intro-text, #S10_0 .offil-title, #S10_0 p, #S10_0 h2 {
    color: #1e293b !important; flex-shrink: 0 !important;
}
/* ==========================================================
   6. STYLE SPÉCIFIQUE S24 (PAIEMENT)
   Design des cartes et offres (Porté depuis le HTML)
   ========================================================== */

/* Variables locales injectées via CSS pour S24 */
.offil-webapp-root {
    --offil-highlight-border: #F97316;
    --offil-highlight-bg: #FFF7ED;
    --offil-highlight-soft: #FFFBF6;
    --klarna-pink: #FFB3C7;
    --success: #10B981;
}

/* --- PROGRESS BAR --- */
.offil-progress {
    background: #fff;
    border-bottom: 1px solid #e2e8f0;
    padding: 10px 16px 12px;
    width: 100%;
}
.offil-progress__bar {
    height: 8px; background: #e9eef7; border-radius: 999px; overflow: hidden;
}
.offil-progress__fill {
    height: 100%; width: 80%; background: #0a3a76; border-radius: 999px;
}
.offil-progress__steps {
    margin-top: 8px; display: flex; justify-content: space-between; font-size: 11px; color: #94a3b8;
}
.offil-progress__steps span { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.dot { width: 7px; height: 7px; border-radius: 50%; background: #cbd5e1; display: inline-block; }
.is-done .dot { background: var(--success); }
.is-active { color: #0a3a76; font-weight: 700; }
.is-active .dot { background: #0a3a76; }

/* --- TITRES S24 --- */
.offil-main h1 {
    font-family: 'Oswald', sans-serif; font-size: 22px; color: #0a3a76;
    margin: 0 0 8px 0; text-transform: uppercase;
}
.section-label {
    font-family: 'Oswald', sans-serif; font-size: 13px; color: #6b7280;
    text-transform: uppercase; margin: 24px 0 12px 0; display: block; letter-spacing: .5px;
}
.muted { color: #6b7280; font-size: 14px; margin: 0 0 24px; line-height: 1.5; }

/* --- CARTES OFFRES --- */
.offer-selector { display: flex; flex-direction: column; gap: 14px; }
.offer-card {
    display: flex; align-items: center; gap: 16px;
    background: #fff; border: 1px solid #e2e8f0; border-radius: 12px;
    padding: 16px; cursor: pointer; transition: all .2s ease; position: relative;
}
.offer-card.selected { border: 2px solid #0a3a76; background: #F8FAFC; }
.offer-card.highlight { border-color: var(--offil-highlight-border); background: var(--offil-highlight-soft); }
.offer-card.highlight.selected { border: 2px solid var(--offil-highlight-border); background: var(--offil-highlight-bg); }

.offer-radio {
    width: 20px; height: 20px; border-radius: 50%; border: 2px solid #CBD5E1;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.offer-card.selected .offer-radio { border-color: #0a3a76; }
.offer-card.selected .offer-radio::after {
    content: ''; width: 10px; height: 10px; background: #0a3a76; border-radius: 50%;
}
.offer-card.highlight.selected .offer-radio { border-color: var(--offil-highlight-border); }
.offer-card.highlight.selected .offer-radio::after { background: var(--offil-highlight-border); }

.offer-content { flex: 1; min-width: 0; }
.offer-top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 2px; gap: 12px; }
.offer-name { font-family: 'Oswald', sans-serif; font-size: 16px; font-weight: 500; color: #111827; text-transform: uppercase; }
.offer-price { font-family: 'Oswald', sans-serif; font-size: 18px; font-weight: 700; color: #0a3a76; white-space: nowrap; }
.badge-promo {
    position: absolute; top: -9px; right: 12px; background: var(--offil-highlight-border);
    color: #fff; font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 4px; text-transform: uppercase;
}

/* --- CARTES PAIEMENT --- */
.payment-options { display: flex; flex-direction: column; gap: 12px; }
.pay-card {
    background: #fff; border: 1px solid #e2e8f0; border-radius: 12px;
    padding: 16px; cursor: pointer; display: flex; gap: 14px; align-items: flex-start;
}
.pay-card.active { border-color: #0a3a76; background: #F0F4FF; }
.pay-radio { margin-top: 2px; accent-color: #0a3a76; }
.pay-details { flex: 1; min-width: 0; }
.pay-title { display: block; font-weight: 600; font-size: 15px; color: #111827; margin-bottom: 4px; }
.pay-desc { display: block; font-size: 13px; color: #6b7280; line-height: 1.4; }
.klarna-badge {
    background: var(--klarna-pink); color: #000; font-size: 10px; font-weight: 700;
    padding: 2px 6px; border-radius: 4px; margin-left: 6px; text-transform: uppercase;
}

/* FORMULAIRES & INPUTS */
#option-offil { display: none; }
.card-form { margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(0,0,0,0.05); display: none; }
.pay-card.active .card-form { display: block; }
.offil-input {
    width: 100%; padding: 10px; border: 1px solid #CBD5E1; border-radius: 8px;
    font-size: 14px; margin-bottom: 8px; background: #fff;
}

/* BOUTON PAIEMENT (Footer) */
.pay-btn {
    width: 100%; padding: 16px; border-radius: 12px; border: none; cursor: pointer;
    font-family: 'Roboto', sans-serif; font-size: 16px; font-weight: 600; text-align: center;
    background: #0a3a76; color: #fff; box-shadow: 0 4px 15px rgba(10,58,118,0.25);
    transition: all .2s; margin-bottom: 10px;
}
.pay-btn:active { transform: scale(0.98); }
.secure-line {
    text-align: center; font-size: 11px; color: #94A3B8; margin-top: 12px;
    display: flex; justify-content: center; align-items: center; gap: 6px;
}

/* ==========================================================
   OFFIL — PATCH ISOLATION S23 / S24 (WEBAPP)
   Objectif : neutraliser le CSS structurel embarqué
   ========================================================== */

/* --- RÈGLE FONDAMENTALE ---
   Les écrans ne contrôlent PAS le layout global
--------------------------------------------- */

/* Neutralisation des body / shell internes */
.offil-webapp-root body,
.offil-webapp-root .offil-shell {
  margin: 0 !important;
  padding: 0 !important;
  min-height: auto !important;
  height: auto !important;
  max-width: 100% !important;
  background: transparent !important;
  display: block !important;
}

/* =========================
   S23_COMPARE
   ========================= */

/* Le footer S23 suit le flux (jamais sticky / fixed) */
.offil-webapp-root.is-s23-compare .offil-footer {
  position: relative !important;
  inset: auto !important;
  margin-top: 32px !important;
}

/* Le tableau reste large, mais contenu proprement */
.offil-webapp-root.is-s23-compare .compare-container {
  overflow-x: auto !important;
  overscroll-behavior-x: contain;
}

/* Footer jamais “dans” le tableau */
.offil-webapp-root.is-s23-compare table {
  margin-bottom: 0 !important;
}

/* =========================
   S24_PAIEMENTB
   ========================= */

/* Footer S24 = footer standard OFFIL */
.offil-webapp-root:not(.is-s23-compare) .offil-footer {
  position: relative !important;
  inset: auto !important;
  margin-top: 24px !important;
}

/* Empêche tout débordement mobile */
.offil-webapp-root:not(.is-s23-compare) .pay-btn {
  max-width: 100%;
}

/* Sécurité scroll iOS */
.offil-webapp-root:not(.is-s23-compare) {
  overscroll-behavior: contain;
}

/* ==========================================================
   OFFIL — PROGRESS BAR : RÈGLE CANON WEBAPP
   Objectif : éviter tout clipping iOS (S21/S23/S24)
   ========================================================== */

/* 1) Base : progress bar jamais "clippée" */
.offil-webapp-root .offil-progress{
  overflow: visible !important;
  height: auto !important;
  min-height: 56px !important;
  padding: 10px 16px 14px !important;
}

.offil-webapp-root .offil-progress span,
.offil-webapp-root .offil-progress *{
  line-height: 1.5 !important;
  white-space: nowrap !important;
}

/* Anti-clipping iOS sticky (petite réserve de rendu) */
.offil-webapp-root .offil-progress::after{
  content:"";
  display:block;
  height:6px;
}

/* 2) Spécifique S23 : offset sticky propre sous le header */
.offil-webapp-root.is-s23-compare .offil-header{
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
}

/* IMPORTANT : on écrase ton bloc "is-wide-mode ... .offil-progress { top:60px }" */
.offil-webapp-root.is-s23-compare .offil-progress{
  position: sticky !important;
  top: calc(60px + env(safe-area-inset-top)) !important;
  z-index: 999 !important;
}

/* ==========================================================
   OFFIL — RÈGLE CANON : PROGRESS BAR NON-STICKY
   ========================================================== */

.offil-webapp-root .offil-progress {
  position: relative !important;
  top: auto !important;
  z-index: auto !important;

  overflow: visible !important;
  height: auto !important;

  padding: 12px 16px 14px !important;
  min-height: 56px !important;
}

/* Sécurité texte */
.offil-webapp-root .offil-progress * {
  white-space: nowrap !important;
  line-height: 1.5 !important;
}

/* ==========================================================
   OFFIL — PROGRESS BAR CANON (anti-coupe droite)
   Cible: toutes progress bars (mobile + desktop)
   ========================================================== */

.offil-webapp-root .offil-progress{
  box-sizing: border-box !important;
  padding-right: 22px !important; /* marge de sécurité à droite */
}

/* Layout flex robuste */
.offil-webapp-root .offil-progress-top{
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
}

/* CRITIQUE: autorise le shrink en flex */
.offil-webapp-root .offil-progress-left,
.offil-webapp-root .offil-progress-right{
  min-width: 0 !important;
}

/* La partie gauche peut tronquer proprement */
.offil-webapp-root .offil-progress-section{
  display: block !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* La partie droite ne doit jamais être tronquée */
.offil-webapp-root #progress-percent{
  flex: 0 0 auto !important;
  white-space: nowrap !important;
  padding-right: 2px !important;
}
/* =====================================================================
   OFFIL — S23 COMPARE — MODE DEDIE (FINAL)
   Scope: Plugin B (WebApp)
   Cible: .offil-webapp-root.is-s23-compare

   Objectif:
   - S23 = ecran a part (largeur etendue, pas de carte 600px)
   - 1 scroll vertical (root), 1 scroll horizontal (table)
   - pas de sticky interne (header/progress) pour eviter conflits
   - zero impact sur S0-S22 + S24
   ===================================================================== */

/* 1) Conteneur : S23 n'est plus une "carte 600px" */
.offil-webapp-root.is-s23-compare .offil-content-wrapper{
  max-width: none !important;
  width: 100% !important;
  background: #f5f7fb !important;
  box-shadow: none !important;
}

/* 2) Neutraliser le layout "page autonome" embarque dans le HTML S23 */
.offil-webapp-root.is-s23-compare .offil-shell{
  max-width: none !important;
  width: 100% !important;
  min-height: auto !important;
  box-shadow: none !important;
  background: transparent !important;
  display: block !important;
}

/* 3) Pas de sticky interne sur S23 (evite conflits WebApp) */
.offil-webapp-root.is-s23-compare .offil-header{
  position: relative !important;
  top: auto !important;
  z-index: auto !important;
  left: auto !important;
  width: 100% !important;
  background: #ffffff !important;
}

/* Si une progress bar est presente dans d'autres versions S23 */
.offil-webapp-root.is-s23-compare .offil-progress{
  position: relative !important;
  top: auto !important;
  z-index: auto !important;
}

/* 4) Table : un seul scroll horizontal, propre */
.offil-webapp-root.is-s23-compare .compare-container{
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  margin: 0 10px !important;
  border-radius: 12px !important;
  background: #ffffff !important;
}

/* 5) Footer : dans le flux, stable, centré */
.offil-webapp-root.is-s23-compare .offil-footer{
  position: relative !important;
  inset: auto !important;
  margin-top: 24px !important;
  background: #ffffff !important;
  border-top: 1px solid #e2e8f0 !important;
}

.offil-webapp-root.is-s23-compare .offil-footer > div{
  max-width: 600px !important;
  margin: 0 auto !important;
}
/* =====================================================================
   OFFIL — S23 COMPARE — MODE DEDIE (PLUGIN A+)
   ===================================================================== */

/* 1) S23 n'est pas une carte 600px */
#S23_COMPARE,
body:has(#S23_COMPARE) .offil-shell {
  max-width: none !important;
  width: 100% !important;
  box-shadow: none !important;
  background: #f5f7fb !important;
}

/* 2) Neutraliser le layout page autonome interne */
body:has(#S23_COMPARE) .offil-shell {
  display: block !important;
  min-height: auto !important;
}

/* 3) Pas de sticky sur S23 */
body:has(#S23_COMPARE) .offil-header,
body:has(#S23_COMPARE) .offil-progress {
  position: relative !important;
  top: auto !important;
  z-index: auto !important;
}

/* 4) Table : scroll horizontal unique */
body:has(#S23_COMPARE) .compare-container {
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  margin: 0 10px !important;
  border-radius: 12px !important;
  background: #ffffff !important;
}

/* 5) Footer stable */
body:has(#S23_COMPARE) .offil-footer {
  position: relative !important;
  margin-top: 24px !important;
  background: #ffffff !important;
}
/* ==========================================================
   OFFIL — S23 COMPARE — PROGRESS BAR (SANS :has)
   ========================================================== */

/* Zone progress dédiée, stable */
.offil-webapp-root.is-s23-compare .offil-progress {
  position: sticky !important;
  top: 60px !important; /* sous le header */
  z-index: 999 !important;

  display: block !important;
  overflow: visible !important;

  /* 🔑 LE POINT QUI MANQUAIT */
  min-height: 64px !important;
  padding: 12px 16px 14px !important;

  background: #ffffff !important;
  border-bottom: 1px solid #e2e8f0 !important;
}

/* Texte "100 % complété" */
.offil-webapp-root.is-s23-compare .offil-progress span {
  display: inline-flex !important;
  align-items: center !important;
  line-height: 1.5 !important;
  white-space: nowrap !important;
}

/* Anti-clipping universel (desktop + mobile) */
.offil-webapp-root.is-s23-compare .offil-progress::after {
  content: "";
  display: block;
  height: 6px;
}
/* =========================================================
   OFFIL — PATCH SEGMENTATION MULTI-SCREENS (S11 → S21)
   Empêche l’affichage simultané des .offil-screen
========================================================= */
.offil-screen {
  display: none;
}

.offil-screen.active {
  display: block;
}

/* Animation légère (ne casse rien) */
.offil-screen {
  animation: offilFadeIn .18s ease-in-out;
}

@keyframes offilFadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}
/* =========================================================
   OFFIL — RÈGLE CANONIQUE MULTI-SCREENS
   Obligatoire pour S11 → S21
========================================================= */
.offil-screen {
  display: none !important;
}

.offil-screen.active {
  display: block !important;
}


/* ================================
   OFFIL FIX — S23 DESKTOP LAYOUT
   ================================ */

/* Desktop uniquement */
@media (min-width: 1024px) {

  /* On élargit le shell UNIQUEMENT pour S23 */
  .offil-shell {
    max-width: 1200px;
  }

  /* Le tableau peut respirer */
  table {
    min-width: 900px;
  }

  /* La colonne sticky reste stable */
  th:first-child,
  td:first-child {
    width: 180px;
    min-width: 180px;
  }

  /* Colonnes offres harmonisées */
  colgroup col:not(:first-child) {
    width: 240px;
  }
}
