/* =====================================================================
   Institut Cheikh Ibn Achour — design system commun (référence : V6)
   ---------------------------------------------------------------------
   Fichier CSS central, chargé par toutes les pages (site, espace
   étudiant, administration).

   Application progressive : les styles ne s'activent que sur un <body>
   portant la classe « ia-theme » (et « ia-admin » pour l'administration).
   Une page non encore migrée garde donc exactement son rendu actuel.

   Sommaire
     1. Variables (couleurs, typographies, espacements, ombres)
     2. Base & typographie
     3. Mise en page (shell, sections, grilles)
     4. En-tête, navigation, pied de page
     5. Boutons, badges, liens
     6. Formulaires, recherche, filtres
     7. Listes de cours & fiche de cours
     8. Blog & articles scientifiques
     9. Tableaux, statistiques, cartes (espace étudiant / admin)
    10. Compatibilité Bootstrap (pages existantes)
    11. Administration (variante fonctionnelle)
    12. Responsive & accessibilité
   ===================================================================== */

/* ---------- 1. Variables ------------------------------------------- */
:root {
  /* Palette V6 : bleu profond, ivoire, doré */
  --ia-ink: #102e46;          /* texte principal */
  --ia-blue: #103d59;         /* couleur d'action */
  --ia-blue-hover: #205874;
  --ia-blue-deep: #0d3047;    /* bandeau, pied de page */
  --ia-gold: #b48642;
  --ia-gold-soft: #c9b58f;
  --ia-gold-dark: #8f724c;
  --ia-ivory: #fbf8f2;        /* fonds clairs */
  --ia-cream: #f4ede3;
  --ia-paper: #fffdfa;
  --ia-line: #e8e2d8;         /* bordures */
  --ia-line-soft: #eee9df;
  --ia-muted: #63717a;        /* texte secondaire */
  --ia-subtle: #86908d;
  --ia-tint: #edf3f5;         /* survol / actif */
  --ia-success: #2f6b4f;
  --ia-success-bg: #e8f2ec;
  --ia-warning: #8a5a12;
  --ia-warning-bg: #fbf1dd;
  --ia-danger: #9b2c2c;
  --ia-danger-bg: #f9e7e5;
  --ia-white: #fff;

  /* Typographies */
  --ia-font-sans: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ia-font-serif: 'Libre Baskerville', Georgia, serif;
  --ia-font-editorial: Georgia, 'Times New Roman', serif;
  --ia-font-arabic: 'Amiri', 'Traditional Arabic', serif;

  /* Échelle typographique */
  --ia-fs-xs: 10px;
  --ia-fs-sm: 12px;
  --ia-fs-base: 14px;
  --ia-fs-md: 15px;
  --ia-fs-lg: 17px;
  --ia-fs-h3: 19px;
  --ia-fs-h2: clamp(26px, 2.8vw, 35px);
  --ia-fs-h1: clamp(34px, 3.7vw, 56px);

  /* Espacements */
  --ia-space-1: 4px;
  --ia-space-2: 8px;
  --ia-space-3: 12px;
  --ia-space-4: 16px;
  --ia-space-5: 20px;
  --ia-space-6: 28px;
  --ia-space-7: 40px;
  --ia-space-8: 76px;
  --ia-shell: 1230px;
  --ia-gutter: 28px;

  /* Arrondis & ombres */
  --ia-radius-sm: 6px;
  --ia-radius: 9px;
  --ia-radius-md: 12px;
  --ia-radius-lg: 17px;
  --ia-shadow-sm: 0 6px 18px rgba(13, 48, 71, .06);
  --ia-shadow: 0 12px 40px rgba(34, 56, 43, .045);
  --ia-shadow-lift: 0 15px 38px rgba(13, 48, 71, .11);
  --ia-transition: .18s ease;
}

/* ---------- 2. Base & typographie ---------------------------------- */
body.ia-theme {
  margin: 0;
  background: var(--ia-white);
  color: var(--ia-ink);
  font: var(--ia-fs-base)/1.6 var(--ia-font-sans);
  -webkit-font-smoothing: antialiased;
}
.ia-theme *, .ia-theme *::before, .ia-theme *::after { box-sizing: border-box; }
.ia-theme a { color: inherit; text-decoration: none; }
.ia-theme a:hover { color: var(--ia-gold); }
.ia-theme img { max-width: 100%; }
.ia-theme h1, .ia-theme h2, .ia-theme h3, .ia-theme h4 { color: var(--ia-ink); }

.ia-h1 { font: 400 var(--ia-fs-h1)/1.22 var(--ia-font-serif); letter-spacing: -1.5px; margin: 18px 0 20px; }
.ia-h2 { font: 400 var(--ia-fs-h2)/1.35 var(--ia-font-serif); letter-spacing: -.8px; margin: 10px 0; }
.ia-h3 { font: 400 var(--ia-fs-h3)/1.45 var(--ia-font-serif); margin: 10px 0 12px; }
.ia-h1 em, .ia-h2 em { color: var(--ia-gold); font-style: normal; }
.ia-eyebrow {
  display: inline-block;
  color: var(--ia-gold);
  font-size: var(--ia-fs-xs);
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
}
.ia-lead { color: var(--ia-muted); font-size: var(--ia-fs-md); line-height: 1.85; max-width: 640px; }
.ia-sub { color: var(--ia-muted); font-size: 13px; line-height: 1.8; max-width: 670px; }
.ia-ar, .ia-theme [lang="ar"] { font-family: var(--ia-font-arabic); direction: rtl; }
.ia-muted { color: var(--ia-muted); }

/* ---------- 3. Mise en page ---------------------------------------- */
.ia-shell { max-width: var(--ia-shell); margin: 0 auto; padding-left: var(--ia-gutter); padding-right: var(--ia-gutter); }
.ia-section { padding-top: var(--ia-space-8); padding-bottom: var(--ia-space-8); }
.ia-section--ivory { background: var(--ia-ivory); }
.ia-section--paper { background: linear-gradient(180deg, #f7f3ea 0%, var(--ia-paper) 72%); }
.ia-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; margin-bottom: 23px; }
.ia-grid { display: grid; gap: var(--ia-space-4); }
.ia-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ia-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ia-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ia-split { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; align-items: start; }
.ia-sticky { position: sticky; top: 104px; }

/* Bandeau de page (pages intérieures) */
.ia-pagehead { background: var(--ia-ivory); border-bottom: 1px solid var(--ia-line); padding: 46px 0 40px; }
.ia-pagehead--photo { position: relative; overflow: hidden; color: var(--ia-white); border: 0; padding: 70px 0 56px; }
.ia-pagehead--photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ia-pagehead--photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(13, 48, 71, .88) 0%, rgba(13, 48, 71, .55) 55%, rgba(13, 48, 71, .15) 100%); }
.ia-pagehead--photo .ia-shell { position: relative; z-index: 1; }
.ia-pagehead--photo .ia-h1, .ia-pagehead--photo .ia-lead { color: var(--ia-white); }
.ia-pagehead--photo .ia-lead { opacity: .86; }
.ia-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; font-size: 11px; color: var(--ia-muted); margin-bottom: 14px; }
.ia-breadcrumb a:hover { color: var(--ia-gold); }
.ia-breadcrumb span + span::before { content: '›'; padding-right: 8px; color: var(--ia-gold-soft); }
.ia-pagehead--photo .ia-breadcrumb { color: rgba(255, 255, 255, .78); }

/* ---------- 4. En-tête, navigation, pied de page ------------------- */
.ia-topline { background: var(--ia-blue-deep); color: #e9eadd; text-align: center; font-size: 11px; letter-spacing: .04em; padding: 8px 15px; }
.ia-nav { background: var(--ia-white); position: sticky; top: 0; z-index: 50; border-bottom: 1px solid var(--ia-line); }
.ia-nav__in { height: 83px; display: flex; align-items: center; gap: 35px; }
.ia-brand { display: flex; align-items: center; gap: 12px; min-width: 0; flex: none; }
.ia-brand img { width: 62px; height: 62px; object-fit: contain; }
.ia-brand strong { display: block; font: 17px/1.25 var(--ia-font-serif); color: var(--ia-ink); }
.ia-brand small { display: block; font: 13px var(--ia-font-arabic); color: var(--ia-gold); margin-top: 2px; }
.ia-navlinks { display: flex; align-items: center; gap: 23px; flex: 1; justify-content: flex-end; font-size: var(--ia-fs-sm); font-weight: 600; }
.ia-navlinks a { padding: 6px 0; border-bottom: 2px solid transparent; }
.ia-navlinks a:hover, .ia-navlinks a.is-active { color: var(--ia-gold); border-bottom-color: var(--ia-gold); }
.ia-nav__actions { display: flex; align-items: center; gap: 10px; }
.ia-hamb { display: none; border: 0; background: transparent; font-size: 23px; color: var(--ia-ink); padding: 6px; }

.ia-footer { background: var(--ia-blue-deep); color: #edf1e8; padding: 48px 0 26px; margin-top: 0; }
.ia-footer__grid { display: grid; grid-template-columns: 1.4fr repeat(3, minmax(0, 1fr)); gap: 32px; }
.ia-footer strong { font: 16px var(--ia-font-serif); display: block; margin-bottom: 10px; }
.ia-footer h4 { color: var(--ia-gold-soft); font-size: var(--ia-fs-xs); letter-spacing: .12em; text-transform: uppercase; margin: 0 0 12px; }
.ia-footer p, .ia-footer a { font-size: 12px; color: #c4d0d8; line-height: 1.9; }
.ia-footer a { display: block; }
.ia-footer a:hover { color: var(--ia-white); }
.ia-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .12); margin-top: 32px; padding-top: 18px; display: flex; justify-content: space-between; gap: 16px; font-size: 11px; color: #9fb1bd; }

/* ---------- 5. Boutons, badges, liens ------------------------------ */
.ia-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  border: 1px solid var(--ia-blue); background: var(--ia-blue); color: var(--ia-white);
  padding: 12px 18px; border-radius: var(--ia-radius); font: 700 var(--ia-fs-sm)/1 var(--ia-font-sans);
  white-space: nowrap; cursor: pointer; transition: background var(--ia-transition), color var(--ia-transition);
}
.ia-theme a.ia-btn { color: var(--ia-white); }
.ia-btn:hover, .ia-theme a.ia-btn:hover { background: var(--ia-blue-hover); border-color: var(--ia-blue-hover); color: var(--ia-white); }
.ia-btn--ghost, .ia-theme a.ia-btn--ghost { background: transparent; color: var(--ia-blue); }
.ia-btn--ghost:hover, .ia-theme a.ia-btn--ghost:hover { background: var(--ia-blue); color: var(--ia-white); }
.ia-btn--soft, .ia-theme a.ia-btn--soft { background: var(--ia-white); color: var(--ia-blue); border-color: #adc2ca; }
.ia-btn--soft:hover, .ia-theme a.ia-btn--soft:hover { background: var(--ia-blue); color: var(--ia-white); }
.ia-btn--gold, .ia-theme a.ia-btn--gold { background: var(--ia-gold); border-color: var(--ia-gold); color: var(--ia-white); }
.ia-btn--gold:hover, .ia-theme a.ia-btn--gold:hover { background: var(--ia-gold-dark); border-color: var(--ia-gold-dark); }
.ia-btn--block { width: 100%; }
.ia-btn--sm { padding: 9px 13px; font-size: 11px; }
.ia-btn:disabled, .ia-btn[aria-disabled="true"] { opacity: .5; cursor: not-allowed; }

.ia-link { font-weight: 700; font-size: var(--ia-fs-sm); color: var(--ia-blue); border-bottom: 1px solid var(--ia-gold-soft); padding-bottom: 4px; }
.ia-badge {
  display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 30px;
  font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  background: var(--ia-cream); color: var(--ia-gold-dark);
}
.ia-badge--blue { background: var(--ia-tint); color: var(--ia-blue); }
.ia-badge--success { background: var(--ia-success-bg); color: var(--ia-success); }
.ia-badge--warning { background: var(--ia-warning-bg); color: var(--ia-warning); }
.ia-badge--danger { background: var(--ia-danger-bg); color: var(--ia-danger); }
.ia-category { font-size: 10px; color: var(--ia-gold); letter-spacing: .08em; text-transform: uppercase; font-weight: 700; }
.ia-chip { display: inline-block; padding: 9px 15px; border: 1px solid #e3ddcf; border-radius: 30px; background: var(--ia-white); color: #34594f; font-size: var(--ia-fs-sm); }
.ia-chip:hover, .ia-chip.is-active { border-color: var(--ia-blue); color: var(--ia-blue); background: var(--ia-tint); }

/* ---------- 6. Formulaires, recherche, filtres --------------------- */
.ia-label { display: block; color: #75817a; font-size: var(--ia-fs-xs); font-weight: 700; letter-spacing: .07em; text-transform: uppercase; margin: 0 0 7px; }
.ia-input, .ia-select, .ia-textarea {
  width: 100%; min-height: 44px; border: 1px solid #e1e5df; border-radius: var(--ia-radius-sm);
  padding: 11px 12px; background: #fafbf9; color: #304a42; font: inherit;
  transition: border-color var(--ia-transition), box-shadow var(--ia-transition);
}
.ia-textarea { min-height: 120px; resize: vertical; }
.ia-input:focus, .ia-select:focus, .ia-textarea:focus { outline: 0; border-color: var(--ia-gold-soft); box-shadow: 0 0 0 3px rgba(180, 134, 66, .15); background: var(--ia-white); }
.ia-field { margin-bottom: var(--ia-space-4); }
.ia-help { font-size: 11px; color: var(--ia-subtle); margin-top: 6px; }

.ia-search { background: var(--ia-white); border: 1px solid #e5e7e0; border-radius: 14px; box-shadow: 0 15px 38px rgba(13, 48, 71, .11); padding: 16px 17px; display: grid; grid-template-columns: minmax(180px, 1.9fr) repeat(2, minmax(135px, .75fr)) auto; gap: 10px; align-items: end; }

.ia-filters { background: var(--ia-white); border: 1px solid var(--ia-line); border-radius: var(--ia-radius); padding: 20px; align-self: start; }
.ia-filters h3 { font-size: var(--ia-fs-base); margin: 0 0 18px; }
.ia-filter-title { color: #738078; font-size: var(--ia-fs-xs); text-transform: uppercase; letter-spacing: 1px; font-weight: 700; margin: 20px 0 9px; }
.ia-filter-btn { display: block; width: 100%; text-align: left; padding: 9px 11px; background: transparent; border: 0; border-radius: 5px; color: #4a6159; font-size: var(--ia-fs-sm); cursor: pointer; }
.ia-filter-btn:hover, .ia-filter-btn.is-active { background: var(--ia-tint); color: var(--ia-blue); font-weight: 700; }

.ia-resultbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; font-size: var(--ia-fs-sm); color: #62726c; }
.ia-resultbar strong { color: var(--ia-blue); }

.ia-alert { border-radius: var(--ia-radius); padding: 13px 16px; font-size: 13px; border: 1px solid transparent; }
.ia-alert--info { background: var(--ia-tint); color: var(--ia-blue); border-color: #d3e1e7; }
.ia-alert--success { background: var(--ia-success-bg); color: var(--ia-success); }
.ia-alert--warning { background: var(--ia-warning-bg); color: var(--ia-warning); }
.ia-alert--danger { background: var(--ia-danger-bg); color: var(--ia-danger); }

/* ---------- 7. Listes de cours & fiche de cours -------------------- */
.ia-catalog { display: grid; grid-template-columns: 225px minmax(0, 1fr); gap: 30px; }
.ia-course-list { background: var(--ia-white); border: 1px solid var(--ia-line); border-radius: 13px; overflow: hidden; }
.ia-course-row { display: grid; grid-template-columns: 78px minmax(0, 1fr) 165px auto; gap: 19px; padding: 15px 17px; align-items: center; border-bottom: 1px solid #e8ebe6; transition: background var(--ia-transition); }
.ia-course-row:last-child { border-bottom: 0; }
.ia-course-row:hover { background: #faf9f5; }
.ia-course-thumb { width: 78px; height: 69px; object-fit: cover; border-radius: var(--ia-radius-sm); background: #ecefe9; }
.ia-course-title { font-size: 15px; font-weight: 700; margin: 0 0 8px; }
.ia-meta { color: #73817a; font-size: 11px; display: flex; gap: 9px; flex-wrap: wrap; }
.ia-meta span + span::before { content: '•'; padding-right: 9px; color: #b0bdb4; }
.ia-course-date { font-size: 11px; color: #586b61; line-height: 1.9; }
.ia-course-date strong { display: block; color: var(--ia-blue); font-size: var(--ia-fs-sm); }

/* Fiche de cours */
/* Bandeau compact : titre lisible, photo en carte, aucune superposition avec la navigation */
.ia-course-hero { background: var(--ia-ivory); border-bottom: 1px solid var(--ia-line); }
.ia-course-hero__in { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: 48px; align-items: center; padding-top: 22px; padding-bottom: 30px; }
.ia-course-hero h1 { font: 400 clamp(28px, 2.7vw, 40px)/1.25 var(--ia-font-serif); letter-spacing: -1px; margin: 12px 0 14px; }
.ia-course-hero h1 em { color: var(--ia-gold); font-style: normal; }
.ia-course-hero__desc { color: var(--ia-muted); font-size: 14px; line-height: 1.8; max-width: 560px; margin: 0 0 16px; }
.ia-course-hero__photo { height: 250px; border-radius: var(--ia-radius-md); overflow: hidden; position: relative; }
.ia-course-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.ia-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.ia-tag { padding: 6px 10px; font-size: 11px; border: 1px solid #ded7cc; border-radius: 5px; background: var(--ia-white); color: #4f626b; }
.ia-tag--open { color: var(--ia-success); background: var(--ia-success-bg); border-color: #d6e9dd; }
.ia-tag--warn { color: var(--ia-warning); background: var(--ia-warning-bg); border-color: #f0dfbd; }

/* Synthèse : niveau, horaires, modalités, places — visibles immédiatement */
.ia-synth { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: var(--ia-white); border: 1px solid var(--ia-line); border-radius: var(--ia-radius-md); overflow: hidden; }
.ia-synth > div { padding: 15px 18px; border-right: 1px solid var(--ia-line); min-width: 0; }
.ia-synth > div:last-child { border-right: 0; }
.ia-synth small { display: block; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--ia-gold-dark); font-weight: 700; margin-bottom: 6px; }
.ia-synth strong { display: block; font-size: 14px; color: var(--ia-ink); }
.ia-synth span { display: block; font-size: 11px; color: var(--ia-muted); margin-top: 2px; }
.ia-synth a { font-size: 11px; font-weight: 700; color: var(--ia-blue); }

/* Navigation interne de la page */
.ia-quicknav { background: var(--ia-white); border-bottom: 1px solid var(--ia-line); position: sticky; top: 83px; z-index: 40; }
.ia-quicknav .ia-shell { display: flex; gap: 28px; overflow-x: auto; scrollbar-width: none; }
.ia-quicknav a { display: block; padding: 14px 0; white-space: nowrap; font-size: 12px; font-weight: 700; color: var(--ia-muted); border-bottom: 2px solid transparent; }
.ia-quicknav a:hover, .ia-quicknav a.is-active { color: var(--ia-blue); border-bottom-color: var(--ia-gold); }
html:has(.ia-quicknav) { scroll-padding-top: 140px; }

/* Sections de la colonne principale */
.ia-csection { padding: 26px 0; border-bottom: 1px solid var(--ia-line); }
.ia-csection:first-child { padding-top: 0; }
.ia-csection:last-child { border-bottom: 0; }
.ia-csection > h2 { font: 400 22px/1.35 var(--ia-font-serif); letter-spacing: -.4px; margin: 0 0 16px; }

/* Créneau compact (remplace la grille des 7 jours) */
.ia-slots { display: grid; gap: 10px; }
.ia-slot { display: flex; align-items: center; gap: 16px; padding: 14px 16px; background: var(--ia-paper); border: 1px solid var(--ia-line); border-radius: var(--ia-radius-md); }
.ia-slot__day { width: 62px; height: 62px; flex: none; display: grid; place-content: center; text-align: center; background: var(--ia-white); border: 1px solid #d8c3a4; border-radius: var(--ia-radius); }
.ia-slot__day b { font-size: 11px; letter-spacing: .14em; color: var(--ia-gold-dark); }
.ia-slot__day span { font-size: 15px; font-weight: 700; color: var(--ia-blue); }
.ia-slot strong { display: block; font-size: 15px; }
.ia-slot p { margin: 3px 0 0; font-size: 12px; color: var(--ia-muted); }
.ia-slot__vol { margin-left: auto; font-size: 12px; font-weight: 700; color: var(--ia-gold-dark); white-space: nowrap; }

/* Programme en frise */
.ia-timeline { list-style: none; margin: 0; padding: 0; }
.ia-timeline li { display: grid; grid-template-columns: 30px 1fr; gap: 14px; position: relative; padding-bottom: 20px; }
.ia-timeline li:last-child { padding-bottom: 0; }
.ia-timeline li:not(:last-child)::before { content: ''; position: absolute; left: 14px; top: 30px; bottom: 0; width: 1px; background: var(--ia-line); }
.ia-timeline .ia-num { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--ia-cream); color: var(--ia-gold-dark); font-size: 11px; font-weight: 700; }
.ia-timeline strong { display: block; font-size: 14px; margin: 4px 0 3px; }
.ia-timeline p { margin: 0; font-size: 12px; color: var(--ia-muted); line-height: 1.7; }

/* Bandeau enseignant */
.ia-teacher-strip { display: flex; align-items: center; gap: 14px; padding: 16px 18px; background: #f8faf9; border: 1px solid #e5ebe8; border-radius: var(--ia-radius-md); }
.ia-teacher-strip .ia-avatar { width: 50px; height: 50px; font-size: 20px; }
.ia-teacher-strip strong { display: block; font: 17px var(--ia-font-serif); }
.ia-teacher-strip small { display: block; font-size: 11px; color: var(--ia-muted); margin-top: 3px; line-height: 1.5; }
.ia-teacher-strip .ia-verified { margin: 0 0 0 auto; justify-content: flex-end; }

/* Bloc tarif : mensualité en évidence, détail ligne par ligne */
.ia-price { display: flex; align-items: baseline; gap: 7px; }
.ia-price strong { font: 34px/1.1 var(--ia-font-serif); color: var(--ia-blue); }
.ia-price small { font-size: 13px; color: var(--ia-muted); }
.ia-price-note { font-size: 12px; color: var(--ia-muted); margin: 6px 0 16px; }
.ia-bill { border-top: 1px solid var(--ia-line); border-bottom: 1px solid var(--ia-line); padding: 14px 0; display: grid; gap: 10px; }
.ia-bill div { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; }
.ia-bill span { color: var(--ia-muted); }
.ia-bill b { text-align: right; color: var(--ia-ink); }
.ia-bill .is-discount b { color: var(--ia-success); }
.ia-bill .is-total { padding-top: 10px; border-top: 1px dashed var(--ia-line); }
.ia-bill .is-total b { font-size: 13px; }

/* Bouton d'inscription fixé en bas de l'écran sur mobile */
.ia-mobile-cta { display: none; }

.ia-block { background: var(--ia-white); border: 1px solid var(--ia-line); border-radius: var(--ia-radius-md); padding: 26px 28px; margin-bottom: 18px; }
.ia-block > h2, .ia-block > h3 { font: 400 21px/1.35 var(--ia-font-serif); margin: 0 0 16px; }
.ia-block p { color: #4f5f66; line-height: 1.85; }
.ia-objectives { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ia-objectives li { position: relative; padding-left: 28px; line-height: 1.7; color: #3f5058; }
.ia-objectives li::before { content: ''; position: absolute; left: 0; top: 7px; width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--ia-gold); }
.ia-program { list-style: none; margin: 0; padding: 0; counter-reset: ia-step; }
.ia-program li { counter-increment: ia-step; display: grid; grid-template-columns: 44px 1fr; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--ia-line-soft); }
.ia-program li:last-child { border-bottom: 0; }
.ia-program li::before { content: counter(ia-step, decimal-leading-zero); font: 20px var(--ia-font-editorial); color: var(--ia-gold); }
.ia-program strong { display: block; font-size: var(--ia-fs-md); margin-bottom: 4px; }
.ia-program span { color: var(--ia-muted); font-size: 13px; }

.ia-teacher { display: flex; gap: 16px; align-items: center; }
.ia-avatar { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; background: var(--ia-cream); display: grid; place-items: center; color: var(--ia-gold-dark); font: 22px var(--ia-font-serif); flex: none; }
.ia-teacher strong { display: block; font: 16px var(--ia-font-serif); }
.ia-teacher span { font-size: var(--ia-fs-sm); color: var(--ia-muted); }

.ia-schedule { width: 100%; border-collapse: collapse; font-size: 13px; }
.ia-schedule td { padding: 11px 0; border-bottom: 1px solid var(--ia-line-soft); }
.ia-schedule td:last-child { text-align: right; color: var(--ia-blue); font-weight: 700; }

.ia-enroll-card { background: var(--ia-white); border: 1px solid var(--ia-line); border-radius: var(--ia-radius-lg); box-shadow: var(--ia-shadow); overflow: hidden; }
.ia-enroll-card__head { background: var(--ia-blue-deep); color: var(--ia-white); padding: 20px 24px; }
.ia-enroll-card__head small { color: var(--ia-gold-soft); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; }
.ia-enroll-card__price { font: 30px/1.2 var(--ia-font-serif); margin-top: 6px; }
.ia-enroll-card__price span { font: 12px var(--ia-font-sans); opacity: .75; }
.ia-enroll-card__body { padding: 20px 24px 24px; }
.ia-option { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 1px solid var(--ia-line); border-radius: var(--ia-radius); margin-bottom: 10px; cursor: pointer; font-size: 13px; }
.ia-option:has(input:checked) { border-color: var(--ia-blue); background: var(--ia-tint); }
.ia-option input { accent-color: var(--ia-blue); }
.ia-option strong { color: var(--ia-blue); }
.ia-progress { height: 6px; background: var(--ia-line-soft); border-radius: 6px; overflow: hidden; }
.ia-progress > span { display: block; height: 100%; background: var(--ia-gold); border-radius: 6px; }
.ia-places { display: flex; justify-content: space-between; font-size: 11px; color: var(--ia-muted); margin: 14px 0 7px; }

/* ---------- 8. Blog & articles scientifiques ----------------------- */
.ia-article-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.ia-article-card { background: var(--ia-white); border: 1px solid #e9e3d7; border-radius: var(--ia-radius-md); overflow: hidden; display: flex; flex-direction: column; transition: box-shadow var(--ia-transition), transform var(--ia-transition); }
.ia-article-card:hover { box-shadow: var(--ia-shadow-lift); transform: translateY(-2px); }
.ia-article-card img { width: 100%; height: 180px; object-fit: cover; }
.ia-article-card__body { padding: 20px; display: flex; flex-direction: column; flex: 1; }
.ia-article-card h3 { font: 400 19px/1.45 var(--ia-font-editorial); margin: 10px 0 10px; }
.ia-article-card p { color: var(--ia-muted); font-size: var(--ia-fs-sm); line-height: 1.8; margin: 0 0 14px; }
.ia-article-meta { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; color: var(--ia-gold-dark); font-size: 10px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.ia-article-meta i { background: #bdad90; width: 4px; height: 4px; border-radius: 50%; }

/* Lecture d'un article */
.ia-article-head { max-width: 820px; margin: 0 auto; padding: 56px var(--ia-gutter) 28px; text-align: center; }
.ia-article-head .ia-article-meta { justify-content: center; }
.ia-article-head h1 { font: 500 clamp(30px, 3.6vw, 48px)/1.18 var(--ia-font-editorial); letter-spacing: -1px; margin: 18px 0; }
.ia-article-head .ia-lead { margin: 0 auto; }
.ia-byline { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 24px; font-size: 13px; color: var(--ia-muted); }
.ia-byline strong { color: var(--ia-ink); }
.ia-article-cover { max-width: 1100px; margin: 0 auto 10px; padding: 0 var(--ia-gutter); }
.ia-article-cover img { width: 100%; height: clamp(240px, 42vw, 480px); object-fit: cover; border-radius: var(--ia-radius-lg); }
.ia-article-cover figcaption { font-size: 11px; color: var(--ia-subtle); text-align: center; margin-top: 10px; }
.ia-article-layout { max-width: 1100px; margin: 0 auto; padding: 36px var(--ia-gutter) 70px; display: grid; grid-template-columns: 200px minmax(0, 700px); gap: 56px; justify-content: center; }
.ia-toc { position: sticky; top: 104px; align-self: start; font-size: var(--ia-fs-sm); }
.ia-toc strong { display: block; font-size: var(--ia-fs-xs); letter-spacing: .12em; text-transform: uppercase; color: var(--ia-gold-dark); margin-bottom: 12px; }
.ia-toc a { display: block; padding: 7px 0 7px 12px; border-left: 2px solid var(--ia-line); color: var(--ia-muted); }
.ia-toc a:hover, .ia-toc a.is-active { border-left-color: var(--ia-gold); color: var(--ia-blue); }

.ia-prose { font: 17px/1.9 var(--ia-font-editorial); color: #26394a; }
.ia-prose > p:first-of-type::first-letter { float: left; font-size: 58px; line-height: .9; padding: 6px 10px 0 0; color: var(--ia-gold); }
.ia-prose h2 { font: 400 26px/1.35 var(--ia-font-serif); margin: 42px 0 14px; }
.ia-prose h3 { font: 700 18px/1.4 var(--ia-font-sans); margin: 30px 0 10px; }
.ia-prose a { color: var(--ia-blue); border-bottom: 1px solid var(--ia-gold-soft); }
.ia-prose img { border-radius: var(--ia-radius); }
.ia-prose blockquote { margin: 28px 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--ia-gold); color: #4b5c66; font-style: italic; }
.ia-prose sup a, .ia-fnref { font: 700 11px var(--ia-font-sans); color: var(--ia-gold-dark); border: 0; padding: 0 2px; }

/* Citation arabe */
.ia-quote-ar { margin: 32px 0; padding: 26px 28px; background: var(--ia-ivory); border: 1px solid var(--ia-line); border-radius: var(--ia-radius-md); position: relative; }
.ia-quote-ar::before { content: '❝'; position: absolute; top: -14px; left: 24px; background: var(--ia-white); color: var(--ia-gold); font-size: 22px; padding: 0 8px; }
.ia-quote-ar p[lang="ar"] { font: 25px/1.9 var(--ia-font-arabic); color: var(--ia-blue); text-align: right; margin: 0 0 12px; }
.ia-quote-ar .ia-quote-tr { font: italic 15px/1.75 var(--ia-font-editorial); color: #4b5c66; margin: 0; }
.ia-quote-ar cite { display: block; margin-top: 10px; font: normal 11px var(--ia-font-sans); color: var(--ia-gold-dark); letter-spacing: .06em; }

/* Notes & références */
.ia-notes, .ia-refs { margin-top: 46px; padding-top: 24px; border-top: 1px solid var(--ia-line); font: 13px/1.75 var(--ia-font-sans); color: #4f5f66; }
.ia-notes h2, .ia-refs h2 { font: 700 11px var(--ia-font-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--ia-gold-dark); margin: 0 0 14px; }
.ia-notes ol { padding-left: 20px; margin: 0; }
.ia-notes li { margin-bottom: 8px; }
.ia-notes li:target { background: var(--ia-warning-bg); border-radius: 4px; }
.ia-refs ul { list-style: none; padding: 0; margin: 0; }
.ia-refs li { padding-left: 26px; text-indent: -26px; margin-bottom: 9px; }

.ia-download { display: flex; align-items: center; gap: 16px; padding: 18px 20px; border: 1px solid var(--ia-line); border-radius: var(--ia-radius-md); background: var(--ia-white); margin: 30px 0; }
.ia-download__icon { width: 46px; height: 54px; border-radius: 6px; background: var(--ia-danger-bg); color: var(--ia-danger); display: grid; place-items: center; font: 700 11px var(--ia-font-sans); flex: none; }
.ia-download strong { display: block; font-size: 14px; }
.ia-download span { font-size: 12px; color: var(--ia-muted); }
.ia-download .ia-btn { margin-left: auto; }

.ia-pubnav { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 44px; }
.ia-pubnav a { border: 1px solid var(--ia-line); border-radius: var(--ia-radius-md); padding: 18px 20px; background: var(--ia-white); transition: border-color var(--ia-transition); }
.ia-pubnav a:hover { border-color: var(--ia-gold-soft); color: inherit; }
.ia-pubnav small { display: block; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--ia-gold-dark); font-weight: 700; margin-bottom: 6px; }
.ia-pubnav strong { font: 400 16px/1.45 var(--ia-font-editorial); }
.ia-pubnav a:last-child { text-align: right; }

/* ---------- 9. Tableaux, statistiques, cartes ---------------------- */
.ia-card { background: var(--ia-white); border: 1px solid var(--ia-line); border-radius: var(--ia-radius-md); padding: 20px 22px; }
.ia-card__title { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 14px; font: 400 17px var(--ia-font-serif); }
.ia-stat { background: var(--ia-white); border: 1px solid var(--ia-line); border-radius: var(--ia-radius-md); padding: 18px 20px; position: relative; overflow: hidden; }
.ia-stat::before { content: ''; position: absolute; top: 0; left: 20px; width: 34px; height: 3px; background: var(--ia-gold); border-radius: 0 0 4px 4px; }
.ia-stat small { display: block; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--ia-subtle); font-weight: 700; }
.ia-stat strong { display: block; font: 28px/1.3 var(--ia-font-serif); color: var(--ia-blue); margin-top: 6px; }
.ia-stat span { font-size: 11px; color: var(--ia-success); }

.ia-table-wrap { background: var(--ia-white); border: 1px solid var(--ia-line); border-radius: var(--ia-radius-md); overflow-x: auto; }
.ia-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.ia-table th { text-align: left; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: #75817a; font-weight: 700; background: #fafaf7; padding: 11px 14px; border-bottom: 1px solid var(--ia-line); white-space: nowrap; }
.ia-table td { padding: 12px 14px; border-bottom: 1px solid var(--ia-line-soft); vertical-align: middle; }
.ia-table tr:last-child td { border-bottom: 0; }
.ia-table tbody tr:hover { background: #faf9f5; }

/* ---------- 10. Compatibilité Bootstrap (pages existantes) --------- */
/* Les pages existantes utilisent Bootstrap : on les habille aux couleurs
   de la V6 sans toucher à leur HTML ni à leur fonctionnement. */
.ia-theme .btn-primary, .ia-theme .btn-success { background: var(--ia-blue); border-color: var(--ia-blue); border-radius: var(--ia-radius); font-weight: 700; }
.ia-theme .btn-primary:hover, .ia-theme .btn-success:hover { background: var(--ia-blue-hover); border-color: var(--ia-blue-hover); }
.ia-theme .btn-outline-primary { color: var(--ia-blue); border-color: var(--ia-blue); border-radius: var(--ia-radius); }
.ia-theme .btn-outline-primary:hover { background: var(--ia-blue); color: var(--ia-white); }
.ia-theme .btn-warning { background: var(--ia-gold); border-color: var(--ia-gold); color: var(--ia-white); }
.ia-theme .form-control, .ia-theme .form-select { border-color: #e1e5df; border-radius: var(--ia-radius-sm); background-color: #fafbf9; min-height: 42px; }
.ia-theme .form-control:focus, .ia-theme .form-select:focus { border-color: var(--ia-gold-soft); box-shadow: 0 0 0 3px rgba(180, 134, 66, .15); }
.ia-theme .card { border-color: var(--ia-line); border-radius: var(--ia-radius-md); }
.ia-theme .table > thead th { font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: #75817a; background: #fafaf7; }
.ia-theme .badge.bg-primary { background: var(--ia-blue) !important; }
.ia-theme .text-primary { color: var(--ia-blue) !important; }
.ia-theme .bg-primary { background-color: var(--ia-blue) !important; }
.ia-theme .page-link { color: var(--ia-blue); }
.ia-theme .page-item.active .page-link { background: var(--ia-blue); border-color: var(--ia-blue); }

/* ---------- 11. Administration ------------------------------------- */
/* Même identité, densité plus forte, aucun décor superflu. */
body.ia-admin { background: #f6f5f1; font-size: 13px; }
.ia-admin .ia-h1 { font-size: 26px; letter-spacing: -.5px; margin: 0 0 4px; }
.ia-admin .ia-pagehead { background: var(--ia-white); padding: 20px 0; }
.ia-admin .ia-card, .ia-admin .ia-stat { padding: 14px 16px; }
.ia-admin .ia-table td { padding: 8px 12px; }
.ia-admin .ia-table th { padding: 9px 12px; }
.ia-admin .ia-btn { padding: 9px 13px; }
.ia-admin .ia-input, .ia-admin .ia-select { min-height: 36px; padding: 7px 10px; }
.ia-sidebar { background: var(--ia-blue-deep); color: #d5dee4; width: 240px; min-height: 100vh; padding: 18px 12px; }
.ia-sidebar a { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: var(--ia-radius-sm); font-size: 13px; color: #d5dee4; }
.ia-sidebar a:hover, .ia-sidebar a.is-active { background: rgba(255, 255, 255, .08); color: var(--ia-white); }
.ia-sidebar a.is-active { box-shadow: inset 3px 0 0 var(--ia-gold); }

/* ---------- 12. Responsive & accessibilité ------------------------- */
.ia-theme :focus-visible { outline: 2px solid var(--ia-gold); outline-offset: 2px; }
.ia-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; }

@media (max-width: 1050px) {
  .ia-navlinks { gap: 13px; }
  .ia-catalog { grid-template-columns: 175px minmax(0, 1fr); gap: 17px; }
  .ia-course-row { grid-template-columns: 70px minmax(0, 1fr) auto; }
  .ia-course-date { display: none; }
  .ia-split { grid-template-columns: minmax(0, 1fr) 300px; gap: 22px; }
  .ia-article-layout { grid-template-columns: minmax(0, 700px); }
  .ia-toc { display: none; }
  .ia-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  .ia-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ia-grid--3, .ia-article-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ia-split { grid-template-columns: 1fr; }
  .ia-sticky { position: static; }
  .ia-course-hero__in { grid-template-columns: 1fr; gap: 18px; }
  .ia-course-hero__photo { height: 190px; order: -1; }
  .ia-synth { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ia-synth > div:nth-child(2) { border-right: 0; }
  .ia-synth > div:nth-child(-n+2) { border-bottom: 1px solid var(--ia-line); }
}
@media (max-width: 760px) {
  :root { --ia-gutter: 16px; --ia-space-8: 52px; }
  .ia-nav__in { height: 70px; gap: 10px; }
  .ia-brand img { width: 50px; height: 50px; }
  .ia-brand strong { font-size: 14px; }
  .ia-hamb { display: block; margin-left: auto; }
  .ia-navlinks { display: none; position: absolute; top: 70px; left: 0; right: 0; background: var(--ia-white); padding: 18px 20px; box-shadow: 0 14px 19px rgba(0, 0, 0, .06); flex-direction: column; align-items: flex-start; }
  .ia-navlinks.is-open { display: flex; }
  .ia-nav__actions .ia-btn { display: none; }
  .ia-search { grid-template-columns: 1fr 1fr; }
  .ia-search > :first-child, .ia-search > button { grid-column: span 2; }
  .ia-catalog { display: block; }
  .ia-filters { display: flex; flex-wrap: wrap; gap: 7px; padding: 12px; margin-bottom: 15px; }
  .ia-filter-title { display: none; }
  .ia-filter-btn { width: auto; padding: 7px 9px; font-size: 11px; }
  .ia-course-row { grid-template-columns: 63px minmax(0, 1fr) auto; gap: 10px; padding: 12px; }
  .ia-course-thumb { width: 63px; height: 64px; }
  .ia-grid--2, .ia-grid--3, .ia-article-grid { grid-template-columns: 1fr; }
  .ia-block { padding: 20px; }
  .ia-section-head { display: block; }
  .ia-prose { font-size: 16px; }
  .ia-pubnav { grid-template-columns: 1fr; }
  .ia-pubnav a:last-child { text-align: left; }
  .ia-download { flex-wrap: wrap; }
  .ia-download .ia-btn { margin-left: 0; width: 100%; }
  .ia-footer__grid { grid-template-columns: 1fr; }
  .ia-footer__bottom { flex-direction: column; }
}
@media (max-width: 420px) {
  .ia-grid--4 { grid-template-columns: 1fr; }
  .ia-course-row { grid-template-columns: 55px minmax(0, 1fr); }
  .ia-course-row .ia-btn { grid-column: 2; justify-self: start; }
}
@media (prefers-reduced-motion: reduce) {
  .ia-theme *, .ia-theme *::before, .ia-theme *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ---------- 13. Annonce : informations, agenda, inscription -------- */
/* Sélecteur segmenté (format présentiel / en ligne, groupe / individuel) */
.ia-segment { display: inline-flex; align-self: flex-start; background: var(--ia-cream); border-radius: 30px; padding: 4px; gap: 4px; }
.ia-segment a, .ia-segment button { border: 0; background: transparent; border-radius: 30px; padding: 8px 16px; font: 700 var(--ia-fs-sm) var(--ia-font-sans); color: var(--ia-gold-dark); cursor: pointer; }
.ia-segment .is-active { background: var(--ia-white); color: var(--ia-blue); box-shadow: var(--ia-shadow-sm); }

/* Badges de confiance */
.ia-verified { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.ia-verified span { display: inline-flex; align-items: center; gap: 5px; font-size: 10px; font-weight: 700; color: var(--ia-success); background: var(--ia-success-bg); border-radius: 30px; padding: 4px 9px; }
.ia-verified span::before { content: '✓'; }

/* Informations essentielles */
.ia-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ia-fact { border: 1px solid var(--ia-line); border-radius: var(--ia-radius); padding: 14px 16px; background: var(--ia-paper); }
.ia-fact small { display: block; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--ia-gold-dark); font-weight: 700; margin-bottom: 6px; }
.ia-fact strong { display: block; font-size: 14px; color: var(--ia-ink); }
.ia-fact span { display: block; font-size: 12px; color: var(--ia-muted); margin-top: 2px; }
.ia-fact a { font-size: 12px; font-weight: 700; color: var(--ia-blue); margin-top: 6px; display: inline-block; }

/* Agenda hebdomadaire */
.ia-agenda { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.ia-agenda div { border: 1px solid var(--ia-line-soft); border-radius: var(--ia-radius-sm); padding: 10px 4px; text-align: center; font-size: 11px; color: var(--ia-subtle); min-height: 86px; }
.ia-agenda b { display: block; font-size: 10px; letter-spacing: .08em; color: var(--ia-muted); margin-bottom: 8px; }
.ia-agenda .is-on { border-color: var(--ia-gold-soft); background: var(--ia-ivory); color: var(--ia-blue); font-weight: 700; }
.ia-agenda .is-on em { display: block; font-style: normal; font-size: 10px; color: var(--ia-gold-dark); margin-top: 4px; }
.ia-dates { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ia-dates li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 14px; border: 1px solid var(--ia-line-soft); border-radius: var(--ia-radius-sm); font-size: 13px; }
.ia-dates li strong { color: var(--ia-blue); }

/* Sections dépliables (À propos, présentation, méthode…) */
.ia-accordion { border: 1px solid var(--ia-line); border-radius: var(--ia-radius-md); background: var(--ia-white); overflow: hidden; }
.ia-accordion details + details { border-top: 1px solid var(--ia-line-soft); }
.ia-accordion summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 20px; cursor: pointer; font: 700 14px var(--ia-font-sans); color: var(--ia-ink); }
.ia-accordion summary::-webkit-details-marker { display: none; }
.ia-accordion summary::after { content: '+'; font: 400 20px/1 var(--ia-font-sans); color: var(--ia-gold); }
.ia-accordion details[open] summary { background: var(--ia-paper); }
.ia-accordion details[open] summary::after { content: '−'; }
.ia-accordion .ia-accordion__body { padding: 4px 20px 18px; font-size: 13px; color: #4f5f66; line-height: 1.85; background: var(--ia-paper); }

/* Carte tarif & états */
.ia-price-lines { display: grid; gap: 6px; font-size: 13px; color: var(--ia-muted); }
.ia-price-lines div { display: flex; justify-content: space-between; gap: 10px; }
.ia-price-lines strong { color: var(--ia-ink); }
.ia-secure { display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 11px; color: var(--ia-muted); margin: 12px 0 0; }
.ia-state { border-radius: var(--ia-radius); padding: 14px 16px; font-size: 13px; text-align: center; }
.ia-state strong { display: block; font-size: 14px; margin-bottom: 4px; }

/* Fenêtre d'inscription en étapes */
.ia-modal { display: none; position: fixed; inset: 0; z-index: 100; background: rgba(8, 37, 58, .62); align-items: center; justify-content: center; padding: 16px; }
.ia-modal.is-open { display: flex; }
.ia-modal__box { background: var(--ia-white); width: 100%; max-width: 520px; max-height: calc(100vh - 32px); overflow-y: auto; border-radius: var(--ia-radius-lg); box-shadow: 0 20px 60px rgba(8, 45, 41, .35); position: relative; }
.ia-modal__head { padding: 22px 26px 14px; border-bottom: 1px solid var(--ia-line-soft); }
.ia-modal__head h3 { font: 400 21px var(--ia-font-serif); margin: 6px 0 0; }
.ia-modal__body { padding: 20px 26px 24px; }
.ia-modal__close { position: absolute; right: 14px; top: 12px; border: 0; background: transparent; font-size: 26px; color: var(--ia-muted); cursor: pointer; line-height: 1; }
.ia-steps { display: flex; gap: 6px; margin-top: 14px; }
.ia-steps i { flex: 1; height: 4px; border-radius: 4px; background: var(--ia-line); }
.ia-steps i.is-done { background: var(--ia-gold); }
.ia-step { display: none; }
.ia-step.is-active { display: block; }
.ia-step-title { font: 700 13px var(--ia-font-sans); color: var(--ia-ink); margin: 0 0 12px; }
.ia-choice { display: flex; gap: 12px; align-items: flex-start; width: 100%; text-align: left; padding: 14px 16px; border: 1px solid var(--ia-line); border-radius: var(--ia-radius); background: var(--ia-white); margin-bottom: 10px; cursor: pointer; font: inherit; color: inherit; }
.ia-choice:hover, .ia-choice:has(input:checked), .ia-choice.is-active { border-color: var(--ia-blue); background: var(--ia-tint); }
.ia-choice input { accent-color: var(--ia-blue); margin-top: 3px; }
.ia-choice strong { display: block; color: var(--ia-blue); font-size: 14px; }
.ia-choice span { font-size: 12px; color: var(--ia-muted); }
.ia-choice .ia-choice__price { margin-left: auto; font: 18px var(--ia-font-serif); color: var(--ia-ink); white-space: nowrap; }
.ia-people { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.ia-person { padding: 9px 14px; border: 1px solid var(--ia-line); border-radius: 30px; font-size: 13px; cursor: pointer; background: var(--ia-white); }
.ia-person.is-active { border-color: var(--ia-blue); background: var(--ia-blue); color: var(--ia-white); }
.ia-person--add { border-style: dashed; color: var(--ia-blue); }
.ia-promo { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.ia-promo-applied { display: flex; justify-content: space-between; align-items: center; gap: 10px; background: var(--ia-success-bg); color: var(--ia-success); border-radius: var(--ia-radius); padding: 11px 14px; font-size: 13px; }
.ia-promo-applied button { border: 0; background: transparent; color: var(--ia-success); text-decoration: underline; cursor: pointer; font-size: 12px; }
.ia-checklist { list-style: none; margin: 0 0 12px; padding: 14px 16px; background: var(--ia-ivory); border-radius: var(--ia-radius); font-size: 12px; color: #4f5f66; display: grid; gap: 6px; }
.ia-checklist li::before { content: '✓ '; color: var(--ia-gold); font-weight: 700; }
.ia-accept { display: flex; gap: 10px; align-items: flex-start; font-size: 12px; color: var(--ia-ink); }
.ia-accept input { width: 18px; height: 18px; accent-color: var(--ia-blue); flex: none; }
.ia-accept a { color: var(--ia-blue); text-decoration: underline; }
.ia-total { display: flex; justify-content: space-between; align-items: baseline; padding: 14px 0; border-top: 1px solid var(--ia-line-soft); margin-top: 14px; }
.ia-total strong { font: 24px var(--ia-font-serif); color: var(--ia-blue); }
.ia-nav-steps { display: flex; justify-content: space-between; gap: 10px; margin-top: 16px; }
.ia-divider { height: 1px; background: var(--ia-line-soft); margin: 16px 0; }

@media (max-width: 760px) {
  .ia-facts { grid-template-columns: 1fr; }
  .ia-agenda { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ia-quicknav { top: 70px; }
  .ia-quicknav .ia-shell { gap: 20px; }
  .ia-slot { gap: 12px; }
  .ia-slot__vol { display: none; }
  .ia-teacher-strip { flex-wrap: wrap; }
  .ia-teacher-strip .ia-verified { margin-left: 0; justify-content: flex-start; }
  .ia-mobile-cta { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; padding: 10px 16px; background: rgba(255, 255, 255, .96); backdrop-filter: blur(12px); border-top: 1px solid var(--ia-line); }
  .ia-mobile-cta .ia-btn { width: 100%; padding: 14px; }
  body:has(.ia-mobile-cta) .ia-footer { padding-bottom: 96px; }
  .ia-modal { padding: 8px; align-items: flex-end; }
  .ia-modal__box { max-height: calc(100vh - 16px); border-radius: var(--ia-radius-lg) var(--ia-radius-lg) 0 0; }
  .ia-modal__head, .ia-modal__body { padding-left: 18px; padding-right: 18px; }
  .ia-promo { grid-template-columns: 1fr; }
}

/* ---------- 14. Page annonce existante (annonce.php) ---------------- */
/* Habille les blocs fonctionnels hérités (parcours parent, popup invité,
   code promo, règlement, paiement) sans toucher à leur HTML ni à leur JS.
   Les !important sont nécessaires : ces blocs portent des styles en ligne. */
.ia-theme .annonce_part { background: var(--ia-white); padding: 0; }
.ia-theme .ia-course-hero__crumb { padding-top: 18px; margin: 0; }
.ia-enroll-card__title { font: 22px/1.3 var(--ia-font-serif); margin-top: 6px; }
.ia-btn--lg { padding: 15px 18px; font-size: 13px; }
.ia-card__lead { display: block; font: 16px var(--ia-font-serif); margin-bottom: 4px; }
.ia-aside-actions { margin-top: 16px; }
.ia-synth--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 10px; }
.ia-annonce { padding-top: 28px; padding-bottom: 80px; }
.ia-annonce .ia-sticky { top: 150px; }

/* Ordre de lecture : essentiel, horaires, inscription, enseignant, détail */
.ia-main { display: flex; flex-direction: column; min-width: 0; }
.ia-main-rest { display: contents; }
.ia-main #essentiel { order: 1; padding-top: 0; }
.ia-main #horaires { order: 2; }
.ia-main #inscription { order: 3; }
.ia-main #enseignant { order: 4; }
.ia-main #details { order: 5; border-bottom: 0; }
/* Visiteur non connecté : l'inscription passe par l'encart de droite (le popup reste dans cette section) */
.ia-main #inscription:has(.guest-offer), .ia-main #inscription:not(:has(.detail, .h3, .alert, .cour_access, #guest-popup)) { padding: 0; border: 0; }
.ia-theme .ia-main #inscription:has(.guest-offer) #course-registration-flow .detail { padding: 0 !important; border: 0 !important; background: transparent !important; }

/* Enseignant (bloc hérité) */
.ia-theme .ia-ens .s_sticky { position: static !important; display: grid; gap: 12px; }
.ia-theme .ia-ens .profile { display: flex !important; align-items: center; gap: 14px; margin: 0 !important; padding: 16px 18px !important; background: #f8faf9 !important; border: 1px solid #e5ebe8 !important; border-radius: var(--ia-radius-md) !important; box-shadow: none !important; }
.ia-theme .ia-ens .profile span { width: 50px !important; height: 50px !important; border-radius: 50% !important; display: grid !important; place-items: center; background: var(--ia-cream) !important; color: var(--ia-gold-dark) !important; font-size: 18px !important; flex: none; margin: 0 !important; }
.ia-theme .ia-ens .profile .h3 { font: 17px var(--ia-font-serif) !important; color: var(--ia-ink) !important; margin: 0 !important; text-align: left !important; }
.ia-theme .ia-ens .verified { background: transparent !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; }
.ia-theme .ia-ens .verified ul { display: flex !important; flex-wrap: wrap; gap: 6px; padding: 0 !important; margin: 0 !important; }
.ia-theme .ia-ens .verified ul li { display: inline-flex !important; align-items: center; gap: 5px; font-size: 11px !important; font-weight: 700; color: var(--ia-success) !important; background: var(--ia-success-bg) !important; border: 0 !important; border-radius: 30px !important; padding: 5px 10px !important; margin: 0 !important; }
.ia-theme .ia-ens .verified ul li i { width: auto !important; height: auto !important; line-height: 1 !important; background: none !important; color: inherit !important; font-size: 11px !important; margin: 0 !important; padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
.ia-theme .ia-ens .verified ul li i { color: var(--ia-success) !important; margin: 0 !important; }
.ia-theme .ia-ens .detail, .ia-theme .ia-ens .autres { margin: 0 !important; padding: 16px 18px !important; background: var(--ia-white) !important; border: 1px solid var(--ia-line) !important; border-radius: var(--ia-radius-md) !important; box-shadow: none !important; }
.ia-theme .ia-ens .detail .h3, .ia-theme .ia-ens .autres .h3 { font: 700 10px var(--ia-font-sans) !important; letter-spacing: .08em; text-transform: uppercase; color: var(--ia-gold-dark) !important; margin: 0 0 8px !important; text-align: left !important; }
.ia-theme .ia-ens .autres .h3 strong { font: inherit !important; color: inherit !important; }
.ia-theme .ia-ens .autres > span { display: none !important; }
.ia-theme .ia-ens .diploms p { font-size: 13px !important; color: var(--ia-ink) !important; margin: 4px 0 !important; }
.ia-theme .ia-ens .diploms i { color: var(--ia-gold) !important; }
.ia-theme .ia-ens .matieres { display: flex; flex-wrap: wrap; gap: 6px; }
.ia-theme .ia-ens .matieres .mat { display: inline-block !important; padding: 7px 12px !important; border: 1px solid #e3ddcf !important; border-radius: 30px !important; background: var(--ia-white) !important; color: var(--ia-blue) !important; font-size: 12px !important; margin: 0 !important; }

/* Contenu riche des sections dépliables */
.ia-theme .ia-accordion__body p { margin: 0 0 10px; }
.ia-theme .ia-accordion__body a { color: var(--ia-blue); text-decoration: underline; }
.ia-theme .ia-accordion__body img { border-radius: var(--ia-radius); height: auto; }

/* Alertes Bootstrap de la page */
.ia-theme .ia-main .alert { border-radius: var(--ia-radius); font-size: 13px; border: 0; }
.ia-theme .ia-main .alert-primary { background: var(--ia-tint); color: var(--ia-blue); }
.ia-theme .ia-main .alert-success { background: var(--ia-success-bg); color: var(--ia-success); }
.ia-theme .ia-main .alert a { color: inherit; text-decoration: underline; }

/* Parcours parent connecté (#course-registration-flow) */
.ia-theme #course-registration-flow .detail { background: var(--ia-white) !important; border: 1px solid var(--ia-line) !important; border-radius: var(--ia-radius-md) !important; box-shadow: none !important; padding: 20px 22px !important; }
.ia-theme #course-registration-flow .h3 { font: 400 18px/1.35 var(--ia-font-serif) !important; color: var(--ia-ink) !important; text-align: left !important; }
.ia-theme #course-registration-flow .h3.finished { font-family: var(--ia-font-sans) !important; font-size: 14px !important; color: var(--ia-gold-dark) !important; }
.ia-theme #course-registration-flow .h4 { font-size: 13px !important; color: var(--ia-ink) !important; }
.ia-theme #course-registration-flow .h4 strong, .ia-theme #course-registration-flow .tar { color: var(--ia-blue) !important; }
.ia-theme .selection-help { color: var(--ia-muted) !important; }
.ia-theme .annonce_enfants label { border: 1px solid var(--ia-line) !important; border-radius: 30px !important; background: var(--ia-white) !important; color: var(--ia-ink) !important; box-shadow: none !important; font-weight: 600 !important; }
.ia-theme .annonce_enfants label.is-selected, .ia-theme .annonce_enfants label.active_b { background: var(--ia-blue) !important; border-color: var(--ia-blue) !important; color: var(--ia-white) !important; }
.ia-theme .annonce_enfants label i { color: inherit !important; }
.ia-theme #btn_show_quick_child { background: var(--ia-white) !important; border: 1px dashed var(--ia-blue) !important; color: var(--ia-blue) !important; border-radius: 30px !important; }
.ia-theme .annual-membership, .ia-theme .guest-membership { background: var(--ia-ivory) !important; border: 1px solid var(--ia-line) !important; color: var(--ia-ink) !important; border-radius: var(--ia-radius) !important; }
.ia-theme .annual-membership > i { background: var(--ia-cream) !important; color: var(--ia-gold-dark) !important; }
.ia-theme .annual-membership strong, .ia-theme .guest-membership strong { color: var(--ia-ink) !important; }
.ia-theme .guest-membership i { color: var(--ia-gold) !important; }
.ia-theme .pricing-summary { background: var(--ia-paper) !important; border: 1px solid var(--ia-line) !important; border-radius: var(--ia-radius-md) !important; }
.ia-theme .pricing-summary .price-main, .ia-theme .pricing-summary .schedule-main { color: var(--ia-ink) !important; }
.ia-theme .pricing-summary .price-main strong { color: var(--ia-blue) !important; font-family: var(--ia-font-serif); font-weight: 400; font-size: 22px !important; }
.ia-theme .pricing-summary i, .ia-theme .registration-deadline i, .ia-theme .secure-line i, .ia-theme .guest-offer-details i { color: var(--ia-gold) !important; }
.ia-theme .payment-choice, .ia-theme .guest-pay-card { border: 1px solid var(--ia-line) !important; border-radius: var(--ia-radius) !important; background: var(--ia-white) !important; }
.ia-theme .payment-choice.is-selected, .ia-theme .guest-pay-card:has(input:checked) { border-color: var(--ia-blue) !important; background: var(--ia-tint) !important; }
.ia-theme .payment-choice input, .ia-theme .guest-pay-card input { accent-color: var(--ia-blue) !important; }
.ia-theme .payment-choice-text strong, .ia-theme .payment-choice-price { color: var(--ia-blue) !important; }
.ia-theme .conversion-primary, .ia-theme .guest-next, .ia-theme .mobile-enroll-bar button { background: var(--ia-blue) !important; border: 0 !important; border-radius: var(--ia-radius) !important; color: var(--ia-white) !important; box-shadow: none !important; font-family: var(--ia-font-sans) !important; font-weight: 700 !important; }
.ia-theme .conversion-primary:hover, .ia-theme .guest-next:hover { background: var(--ia-blue-hover) !important; }
.ia-theme .guest-back { border: 1px solid #adc2ca !important; border-radius: var(--ia-radius) !important; color: var(--ia-blue) !important; }
.ia-theme .cour_access { background: var(--ia-success-bg) !important; color: var(--ia-success) !important; border-radius: var(--ia-radius) !important; box-shadow: none !important; }
.ia-theme #course-registration-flow .paiement { background: var(--ia-blue) !important; border-radius: var(--ia-radius) !important; color: var(--ia-white) !important; }

/* Code promo */
.ia-theme .promo_code #show_code_promo, .ia-theme .guest-promo #show_code_promo { color: var(--ia-blue) !important; border-color: var(--ia-gold-soft) !important; border-radius: var(--ia-radius) !important; }
.ia-theme .guest-promo { background: var(--ia-paper) !important; border: 1px dashed var(--ia-gold-soft) !important; border-radius: var(--ia-radius) !important; }
.ia-theme .promo_code_insert input, .ia-theme .guest-promo .promo_code_insert input#code_promo { border: 1px solid #e1e5df !important; background: #fafbf9 !important; border-radius: var(--ia-radius-sm) !important; color: var(--ia-ink) !important; }
.ia-theme .promo_code_insert button, .ia-theme #guest-popup .guest-promo .promo_code_insert button, .ia-theme .guest-promo .promo_code_insert button#submit_promo_code { background: var(--ia-blue) !important; border-radius: var(--ia-radius-sm) !important; }
.ia-theme #checkout .promo_offer { background: var(--ia-success-bg) !important; border: 1px solid #cfe4d7 !important; color: var(--ia-success) !important; box-shadow: none !important; }
.ia-theme #checkout .promo_offer .promo-applied-label > i, .ia-theme #checkout .promo_offer #promo_remise { background: var(--ia-success) !important; }

/* Popup invité, ajout d'enfant, règlement, paiement */
.ia-theme #guest-popup, .ia-theme #quick_child_form, .ia-theme #reglement-popup, .ia-theme .paiment_popup { border-radius: var(--ia-radius-lg) !important; font-family: var(--ia-font-sans) !important; color: var(--ia-ink); }
.ia-theme #guest-overlay, .ia-theme #reglement-overlay, .ia-theme .quick-child-overlay { background: rgba(8, 37, 58, .62) !important; }
.ia-theme #guest-popup h3, .ia-theme #reglement-popup h3, .ia-theme #quick-child-title { font: 400 21px var(--ia-font-serif) !important; color: var(--ia-ink) !important; }
.ia-theme .guest-section-title { color: var(--ia-ink) !important; }
.ia-theme .guest-progress span.is-active { background: var(--ia-gold) !important; }
.ia-theme .enroll-child { border: 1px solid var(--ia-line) !important; color: var(--ia-ink) !important; }
.ia-theme .enroll-child.is-selected { background: var(--ia-blue) !important; border-color: var(--ia-blue) !important; color: var(--ia-white) !important; }
.ia-theme .guest-day-picker { background: var(--ia-paper) !important; border-color: var(--ia-line) !important; }
.ia-theme .guest-day-picker select { border-color: #e1e5df !important; color: var(--ia-ink) !important; }
.ia-theme .guest-login-link { color: var(--ia-blue) !important; }
.ia-theme #guest-popup [style*="#07158f"], .ia-theme #guest-popup [style*="#1e1b4b"], .ia-theme #guest-popup [style*="#315edc"], .ia-theme #quick_child_form [style*="#315edc"], .ia-theme #quick_child_form [style*="#07158f"] { color: var(--ia-blue) !important; }
.ia-theme #guest-popup [style*="accent-color"], .ia-theme #reglement-popup [style*="accent-color"] { accent-color: var(--ia-blue) !important; }
.ia-theme #reglement-popup [style*="#4724d9"] { color: var(--ia-gold) !important; }
.ia-theme #reglement-popup label[style] { background: var(--ia-paper) !important; border: 1px solid var(--ia-line) !important; }
.ia-theme #reglement-popup a { color: var(--ia-blue) !important; }
.ia-theme #reglement-continue-btn, .ia-theme #btn_add_quick_child, .ia-theme #submit_payment { background: var(--ia-blue) !important; border-radius: var(--ia-radius) !important; }

/* Blocs remplacés par l'encart de droite */
.ia-theme #course-registration-flow .guest-offer,
.ia-theme #course-registration-flow .h3:has(+ .guest-offer),
.ia-theme #course-registration-flow .registration-help { display: none !important; }

/* Barre d'inscription mobile existante */
.ia-theme .mobile-enroll-bar { border-top: 1px solid var(--ia-line) !important; box-shadow: none !important; background: rgba(255, 255, 255, .96) !important; }
.ia-theme .mobile-enroll-bar span, .ia-theme .mobile-enroll-bar strong { color: var(--ia-ink) !important; }

@media (max-width: 900px) {
  .ia-annonce .ia-sticky { position: static; }
  .ia-annonce .ia-annonce-aside { margin-top: 8px; }
}
@media (max-width: 760px) {
  .ia-synth--2 { grid-template-columns: 1fr; }
  .ia-synth--2 > div { border-right: 0; border-bottom: 1px solid var(--ia-line); }
  .ia-synth--2 > div:last-child { border-bottom: 0; }
}

/* ---------- 15. Page d'accueil & catalogue (index.php) ------------- */
/* Bandeau : texte à gauche, photo de la Zaytouna fondue à droite, vague en bas (V6) */
.ia-hero { position: relative; isolation: isolate; display: grid; grid-template-columns: 1fr 49%; min-height: 520px; overflow: hidden; background: linear-gradient(120deg, #faf8f3 0%, #f6f4eb 57%, #e3dfcf 100%); }
.ia-hero__copy { position: relative; z-index: 3; padding: 78px 6% 110px max(6%, calc((100vw - 1174px) / 2)); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.ia-hero .ia-h1 { font-size: clamp(36px, 3.7vw, 58px); margin: 19px 0 20px; }
.ia-hero .ia-lead { font-size: 15px; margin: 0 0 27px; max-width: 525px; }
.ia-hero__actions { display: flex; gap: 11px; flex-wrap: wrap; }
.ia-hero__photo { position: relative; overflow: hidden; min-height: 535px; margin-left: -65px; border-radius: 0 0 0 90px;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 20%), linear-gradient(to bottom, #000 75%, transparent 99%); -webkit-mask-composite: source-in;
  mask-image: linear-gradient(to right, transparent 0%, #000 20%), linear-gradient(to bottom, #000 75%, transparent 99%); mask-composite: intersect; }
.ia-hero__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 48%; }
.ia-hero__photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(247, 245, 238, .6), transparent 40%); }
.ia-hero__caption { position: absolute; right: 22px; bottom: 32%; z-index: 1; color: #fff; font-size: 10px; letter-spacing: .04em; text-shadow: 0 1px 6px rgba(0, 0, 0, .35); }
.ia-hero::after { content: ''; position: absolute; z-index: 4; left: 0; bottom: -2px; width: 100%; height: 128px; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none' viewBox='0 0 1440 150'%3E%3Cpath fill='%23ffffff' d='M0 57 C200 115 340 116 522 100 C745 79 812 29 1036 55 C1190 74 1315 118 1440 78 L1440 150 L0 150 Z'/%3E%3C/svg%3E") center bottom / 100% 100% no-repeat; }

/* Recherche (champs et identifiants repris de l'ancienne page pour main.js) */
.ia-searchbox { position: relative; z-index: 6; margin-top: -49px; }
.ia-searchbox--page { margin-top: -38px; }
.ia-catalog-section--results { border-top: 0; }
.ia-theme .ia-searchform { display: block !important; margin: 0; }
.ia-theme .search_m.ia-search--home { text-align: left; display: grid !important; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; align-items: end; width: auto; max-width: none; margin: 0; flex-wrap: initial; }
.ia-theme .ia-search--home .item { margin: 0 !important; min-width: 0; position: relative; width: auto !important; text-align: left; }
.ia-theme .ia-search--home .ia-label { text-align: left; left: 0; }
.ia-theme .ia-search--home .item.disabl { display: none !important; }
.ia-theme .ia-search--home .item select,
.ia-theme .ia-search--home .item input#ville_location,
.ia-theme .ia-search--home .item .dropdown-toggle { width: 100% !important; height: 44px; min-height: 44px; border: 1px solid #e1e5df !important; border-radius: var(--ia-radius-sm) !important; padding: 0 12px; background-color: #fafbf9 !important; color: #304a42 !important; font: 13px var(--ia-font-sans) !important; text-transform: none !important; box-shadow: none !important; outline: 0; }
.ia-theme .ia-search--home .item .bootstrap-select { width: 100% !important; }
.ia-theme .ia-search--home .item .bootstrap-select > select { width: .5px !important; padding: 0 !important; border: 0 !important; }
.ia-theme .ia-search--home .item .dropdown-toggle .filter-option-inner-inner { color: #304a42; font-size: 13px; text-transform: none; }
.ia-theme .ia-search--home .item input#ville_location::placeholder { color: #8a958f; font-size: 13px; text-transform: none; }
.ia-theme .ia-search--home .item select:focus, .ia-theme .ia-search--home .item input#ville_location:focus { border-color: var(--ia-gold-soft) !important; box-shadow: 0 0 0 3px rgba(180, 134, 66, .15) !important; }
.ia-theme .ia-search--home .element_ville .options { border-radius: var(--ia-radius-sm); background: var(--ia-white); box-shadow: var(--ia-shadow-lift); padding: 6px; }
.ia-theme .ia-search--home .element_ville .options button { color: var(--ia-blue); border-radius: var(--ia-radius-sm); font-size: 12px; text-transform: none; }
.ia-theme .ia-search--home .element_ville .options button:hover { background: var(--ia-tint); }
.ia-theme .ia-search--home .bt { margin: 0; }
.ia-theme .ia-search--home .bt button { width: auto; min-width: 140px; height: 44px; margin: 0; background: var(--ia-blue); border: 1px solid var(--ia-blue); color: var(--ia-white); border-radius: var(--ia-radius); font: 700 12px var(--ia-font-sans); text-transform: none; letter-spacing: 0; box-shadow: none; }
.ia-theme .ia-search--home .bt button:hover { background: var(--ia-blue-hover); }
.ia-search-tagline { margin: 14px 0 0; color: #708078; font-size: 12px; }

/* Niveaux d'étude */
.ia-levels { padding-top: 58px; padding-bottom: 10px; }
.ia-levels .ia-sub { margin: 0; max-width: 560px; }
.ia-level-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.ia-level-tile { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 8px; min-height: 140px; padding: 20px; background: var(--ia-white); border: 1px solid #e4e6e1; border-radius: 13px; transition: transform var(--ia-transition), box-shadow var(--ia-transition), border-color var(--ia-transition); }
.ia-level-tile::before { content: ''; position: absolute; top: 0; left: 20px; width: 34px; height: 3px; background: var(--ia-gold); border-radius: 0 0 4px 4px; }
.ia-level-tile:hover { border-color: #b79660; background: #fcfaf5; box-shadow: 0 11px 27px rgba(30, 59, 51, .06); transform: translateY(-2px); color: inherit; }
.ia-level-tile__num { font: 22px var(--ia-font-editorial); color: var(--ia-gold); }
.ia-level-tile strong { font: 400 17px var(--ia-font-serif); color: var(--ia-ink); flex: 1; }
.ia-level-tile__go { font-size: 11px; font-weight: 700; color: var(--ia-blue); }

/* Catalogue */
.ia-catalog-section { background: #f8f9f6; border-top: 1px solid #e9ebe5; border-bottom: 1px solid #e9ebe5; }
.ia-catalog-section--home { margin-top: 48px; }
.ia-theme .ia-catalog a.ia-filter-btn { display: block; }
.ia-course-title a:hover { color: var(--ia-gold); }
.ia-course-date b { color: var(--ia-ink); }
.ia-more { text-align: center; margin-top: 18px; }
.ia-empty { background: var(--ia-white); border: 1px dashed #d8cfbf; border-radius: 13px; padding: 34px 30px; text-align: center; }
.ia-empty strong { display: block; font: 400 20px/1.4 var(--ia-font-serif); color: var(--ia-ink); margin-bottom: 8px; }
.ia-empty p { color: var(--ia-muted); max-width: 520px; margin: 0 auto 18px; line-height: 1.75; }
.ia-pagehead--search { padding-bottom: 66px; }

/* Héritage */
.ia-heritage { padding: 76px 0; }
.ia-heritage__grid { display: grid; grid-template-columns: 45% 1fr; gap: 48px; align-items: center; }
.ia-heritage__image { height: 405px; border-radius: var(--ia-radius); overflow: hidden; background: #d4d5c7; }
.ia-heritage__image img { width: 100%; height: 100%; object-fit: cover; }
.ia-heritage__body h2 { font-size: 33px; line-height: 1.3; }
.ia-heritage__body p { color: var(--ia-muted); line-height: 1.85; }
.ia-heritage__books { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 22px; }
.ia-heritage__books span { background: #f0f2ec; padding: 10px 13px; border-left: 2px solid var(--ia-gold); font-size: 15px; }

/* La revue : carrousel + colonne */
.ia-journal { padding: 94px 0 100px; background: linear-gradient(180deg, #f7f3ea 0%, var(--ia-paper) 72%); }
.ia-journal__top { display: flex; justify-content: space-between; align-items: flex-end; gap: 36px; margin-bottom: 32px; }
.ia-journal__top h2 { font: 500 clamp(31px, 3.2vw, 49px)/1.13 var(--ia-font-editorial); letter-spacing: -1.3px; max-width: 760px; margin: 12px 0 14px; }
.ia-journal__top h2 em { font-weight: 400; color: #a7783e; }
.ia-journal__top p { color: #65706c; max-width: 670px; font-size: 15px; line-height: 1.7; margin: 0; }
.ia-journal__all { white-space: nowrap; color: var(--ia-blue); border-bottom: 1px solid var(--ia-gold-soft); padding-bottom: 8px; font-size: 13px; font-weight: 700; }
.ia-journal__all span { font-size: 18px; padding-left: 10px; }
.ia-journal__layout { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(330px, .88fr); gap: 24px; align-items: stretch; }
.ia-carousel { min-width: 0; display: flex; flex-direction: column; overflow: hidden; background: var(--ia-white); border: 1px solid #e9e3d7; border-radius: var(--ia-radius-lg); box-shadow: var(--ia-shadow); }
.ia-carousel__track { display: flex; flex: 1; width: 100%; transition: transform .65s cubic-bezier(.22, .61, .36, 1); will-change: transform; }
.ia-carousel__slide { flex: 0 0 100%; min-width: 0; display: flex; flex-direction: column; }
.ia-carousel__image { position: relative; height: 260px; overflow: hidden; }
.ia-carousel__image img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; display: block; transition: transform .5s; }
.ia-carousel:hover .ia-carousel__image img { transform: scale(1.025); }
.ia-carousel__label { position: absolute; left: 20px; bottom: 18px; background: #fffdf5; color: #25463e; padding: 8px 12px; border-radius: 5px; font-size: 10px; letter-spacing: .11em; font-weight: 800; }
.ia-carousel__content { flex: 1; display: flex; flex-direction: column; padding: 27px 30px 30px; }
.ia-carousel__content h3 { font: 500 clamp(22px, 2.1vw, 31px)/1.2 var(--ia-font-editorial); letter-spacing: -.6px; margin: 15px 0; }
.ia-carousel__content p { color: #67716e; font-size: 14px; line-height: 1.75; margin: 0 0 23px; }
.ia-carousel__content a { align-self: flex-start; margin-top: auto; color: var(--ia-blue); border-bottom: 1px solid var(--ia-gold-soft); padding-bottom: 5px; font-size: 13px; font-weight: 700; }
.ia-carousel__content a span { padding-left: 8px; }
.ia-carousel__bottom { display: flex; align-items: center; justify-content: space-between; gap: 15px; min-height: 56px; padding: 11px 19px; border-top: 1px solid #f1ece4; }
.ia-carousel__count { font: 700 11px/1.2 var(--ia-font-sans); color: #94774d; letter-spacing: .13em; }
.ia-carousel__dots { display: flex; gap: 7px; align-items: center; }
.ia-carousel__dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: #d9d8cf; cursor: pointer; transition: width var(--ia-transition); }
.ia-carousel__dots button.is-active { width: 25px; border-radius: 8px; background: var(--ia-blue); }
.ia-carousel__buttons { display: flex; gap: 7px; }
.ia-carousel__buttons button { width: 32px; height: 32px; border-radius: 50%; background: #f7f7f2; border: 1px solid #e2e5dc; color: var(--ia-blue); cursor: pointer; font-size: 16px; line-height: 1; }
.ia-carousel__buttons button:hover { background: var(--ia-blue); color: var(--ia-white); }
.ia-journal__aside { display: flex; flex-direction: column; padding: 22px 25px; background: var(--ia-white); border: 1px solid #e9e3d7; border-radius: var(--ia-radius-lg); }
.ia-journal__asidehead { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--ia-line-soft); }
.ia-journal__asidehead strong { font: 500 22px var(--ia-font-editorial); }
.ia-journal__asidehead span { font-size: 11px; color: #a07544; }
.ia-journal__mini { display: grid; grid-template-columns: 110px 1fr; gap: 17px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--ia-line-soft); }
.ia-journal__mini img { width: 110px; height: 92px; object-fit: cover; border-radius: var(--ia-radius); }
.ia-journal__mini h3 { font: 500 18px/1.3 var(--ia-font-editorial); margin: 7px 0 0; }
.ia-journal__mini:hover h3 { color: var(--ia-gold-dark); }
.ia-journal__more { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: auto; padding-top: 20px; }
.ia-journal__more span { font-size: 11px; color: #808c86; line-height: 1.5; max-width: 230px; }
.ia-journal__more a { font-size: 12px; font-weight: 700; color: var(--ia-blue); white-space: nowrap; }

/* Témoignages */
.ia-testimonials__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ia-testimonial { margin: 0; display: flex; flex-direction: column; justify-content: space-between; gap: 18px; padding: 24px 26px; background: var(--ia-white); border: 1px solid var(--ia-line); border-radius: var(--ia-radius-md); }
.ia-testimonial blockquote { margin: 0; font: italic 16px/1.75 var(--ia-font-editorial); color: #34474f; }
.ia-testimonial blockquote::before { content: '❝'; display: block; color: var(--ia-gold); font-style: normal; font-size: 22px; margin-bottom: 6px; }
.ia-testimonial figcaption strong { display: block; font-size: 13px; color: var(--ia-ink); }
.ia-testimonial figcaption span { font-size: 11px; color: var(--ia-subtle); }

/* Questions fréquentes (details/summary, sans JavaScript) */
.ia-faq-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 48px; align-items: start; }
.ia-faq details { background: var(--ia-white); border: 1px solid var(--ia-line); border-radius: var(--ia-radius-md); margin-bottom: 10px; }
.ia-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 17px 20px; font-weight: 700; font-size: 14px; color: var(--ia-ink); }
.ia-faq summary::-webkit-details-marker { display: none; }
.ia-faq summary::after { content: '+'; font: 400 20px/1 var(--ia-font-sans); color: var(--ia-gold); flex: none; }
.ia-faq details[open] summary::after { content: '−'; }
.ia-faq details p { margin: 0; padding: 0 20px 18px; color: var(--ia-muted); line-height: 1.8; font-size: 13px; }

/* Contact (accueil) */
.ia-contact-home__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 48px; align-items: center; }
.ia-contact-form { margin-top: 22px; }
.ia-contact-home__photo { height: 460px; border-radius: var(--ia-radius-lg); overflow: hidden; }
.ia-contact-home__photo img { width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 1050px) {
  .ia-level-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ia-testimonials__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .ia-journal__layout, .ia-faq-grid, .ia-contact-home__grid { grid-template-columns: 1fr; }
  .ia-journal__top { flex-direction: column; align-items: flex-start; }
  .ia-contact-home__photo { display: none; }
}
@media (max-width: 760px) {
  .ia-hero { grid-template-columns: 1fr; min-height: 0; }
  .ia-hero__copy { padding: 46px var(--ia-gutter) 34px; }
  .ia-hero__photo { margin-left: 0; min-height: 260px; border-radius: 0;
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 60%, transparent 100%); mask-image: linear-gradient(to bottom, #000 0%, #000 60%, transparent 100%); }
  .ia-hero__caption { bottom: 70px; }
  .ia-hero::after { height: 75px; }
  .ia-searchbox { margin-top: -18px; }
  .ia-theme .search_m.ia-search--home { grid-template-columns: 1fr; padding: 14px; }
  .ia-theme .ia-search--home .bt button { width: 100% !important; max-width: none; }
  .ia-levels { padding-top: 42px; }
  .ia-level-tile { min-height: 118px; padding: 16px; }
  .ia-level-tile strong { font-size: 15px; }
  .ia-heritage { padding: 52px 0; }
  .ia-heritage__grid { grid-template-columns: 1fr; gap: 22px; }
  .ia-heritage__image { height: 260px; }
  .ia-heritage__body h2 { font-size: 27px; }
  .ia-journal { padding: 58px 0; }
  .ia-carousel__image { height: 210px; }
  .ia-carousel__content { padding: 22px 20px; }
  .ia-journal__aside { padding: 18px 20px; }
  .ia-journal__mini { grid-template-columns: 90px 1fr; gap: 14px; }
  .ia-journal__mini img { width: 90px; height: 80px; }
  .ia-journal__mini h3 { font-size: 16px; }
  .ia-testimonials__grid { grid-template-columns: 1fr; }
  .ia-faq-grid { gap: 22px; }
  .ia-catalog-section--home { margin-top: 32px; }
}
@media (max-width: 420px) {
  .ia-level-grid { gap: 9px; }
}

/* style.css impose « img { height: auto !important } » : on rétablit les hauteurs du thème */
.ia-theme .ia-hero__photo img, .ia-theme .ia-heritage__image img, .ia-theme .ia-carousel__image img,
.ia-theme .ia-contact-home__photo img, .ia-theme .ia-course-hero__photo img, .ia-theme .ia-pagehead--photo img { height: 100% !important; }
.ia-theme .ia-course-thumb { height: 69px !important; }
.ia-theme .ia-journal__mini img { height: 92px !important; }
.ia-theme .ia-article-card img { height: 180px !important; }
.ia-theme .ia-article-cover img { height: clamp(240px, 42vw, 480px) !important; }
.ia-theme .ia-brand img { height: 62px !important; }
@media (max-width: 760px) {
  .ia-theme .ia-course-thumb { height: 64px !important; }
  .ia-theme .ia-journal__mini img { height: 80px !important; }
  .ia-theme .ia-brand img { height: 50px !important; }
}

/* ---------- 16. La revue (blog.php) -------------------------------- */
.ia-theme [hidden] { display: none !important; }
.ia-blog__tools { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.ia-blog__search { flex: 1; max-width: 420px; }
.ia-blog__search .ia-input { background: var(--ia-white); }
.ia-blog__count { font-size: 12px; color: var(--ia-muted); }
.ia-blog__count strong { color: var(--ia-blue); }
.ia-blog-feature { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); background: var(--ia-white); border: 1px solid #e9e3d7; border-radius: var(--ia-radius-lg); overflow: hidden; box-shadow: var(--ia-shadow); margin-bottom: 22px; transition: box-shadow var(--ia-transition); }
.ia-blog-feature:hover { box-shadow: var(--ia-shadow-lift); color: inherit; }
.ia-blog-feature__image { position: relative; min-height: 320px; }
.ia-theme .ia-blog-feature__image img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; }
.ia-blog-feature__body { padding: 34px 36px; display: flex; flex-direction: column; justify-content: center; }
.ia-blog-feature__body h2 { font: 500 clamp(24px, 2.4vw, 34px)/1.2 var(--ia-font-editorial); letter-spacing: -.6px; margin: 15px 0; }
.ia-blog-feature__body p { color: var(--ia-muted); line-height: 1.8; margin: 0 0 22px; }
.ia-blog-feature__body .ia-link { align-self: flex-start; }
.ia-article-layout--notoc { grid-template-columns: minmax(0, 720px); }
.ia-blog-single .ia-prose { min-width: 0; overflow-wrap: anywhere; }
.ia-blog-single .ia-prose img { height: auto !important; max-width: 100%; }
.ia-blog-single .ia-prose iframe, .ia-blog-single .ia-prose video { max-width: 100%; }
.ia-blog-single .ia-prose table { width: 100%; border-collapse: collapse; font: 14px/1.6 var(--ia-font-sans); }
.ia-blog-single .ia-prose td, .ia-blog-single .ia-prose th { border: 1px solid var(--ia-line); padding: 8px 10px; }
.ia-blog-single .ia-prose [dir="rtl"], .ia-blog-single .ia-prose [lang="ar"] { font-family: var(--ia-font-arabic); font-size: 1.25em; line-height: 1.9; }
.ia-pubnav > span:empty { display: block; }
@media (max-width: 900px) {
  .ia-blog-feature { grid-template-columns: 1fr; }
  .ia-blog-feature__image { min-height: 220px; }
  .ia-blog-feature__body { padding: 24px 22px; }
}
@media (max-width: 760px) {
  .ia-blog__tools { flex-direction: column; align-items: stretch; }
  .ia-blog__search { max-width: none; }
  .ia-article-layout, .ia-article-layout--notoc { grid-template-columns: minmax(0, 1fr); gap: 0; padding-top: 24px; }
  .ia-article-head { padding-top: 34px; }
}

/* ---------- 17. Connexion, inscription, contact -------------------- */
.ia-auth { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 45%); min-height: calc(100vh - 120px); background: var(--ia-ivory); }
.ia-auth__panel { display: flex; align-items: center; justify-content: center; padding: 56px var(--ia-gutter); }
.ia-auth__card { width: 100%; max-width: 440px; }
.ia-auth__card .ia-h2 { margin: 10px 0 8px; }
.ia-auth__card .ia-sub { margin: 0 0 22px; }
.ia-auth__card .ia-alert { margin-bottom: 16px; }
.ia-auth__form { margin-top: 6px; }
.ia-auth__row { display: flex; justify-content: flex-end; margin: -4px 0 18px; }
.ia-auth__alt { margin: 22px 0 0; font-size: 13px; color: var(--ia-muted); }
.ia-auth__photo { position: relative; overflow: hidden; }
.ia-theme .ia-auth__photo img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; }
.ia-auth__photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(13, 48, 71, .55), transparent 45%); }
.ia-auth__quote { position: absolute; left: 32px; right: 32px; bottom: 30px; z-index: 1; color: var(--ia-white); }
.ia-auth__quote span { display: block; font: 28px/1.5 var(--ia-font-arabic); }
.ia-auth__quote small { font-size: 11px; letter-spacing: .06em; opacity: .85; }
.ia-theme .ia-auth__form .alert { border-radius: var(--ia-radius); font-size: 13px; }

/* Inscription : choix du profil puis formulaire (champs injectés par main.js) */
.ia-signup__body { padding-top: 40px; }
.ia-theme .ia-signup__choice { display: flex; gap: 18px; max-width: 1100px; margin: 0 auto; }
.ia-signup__type { flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; text-align: left; padding: 28px; background: var(--ia-white); border: 1px solid var(--ia-line); border-radius: var(--ia-radius-lg); cursor: pointer; font: inherit; color: inherit; position: relative; transition: border-color var(--ia-transition), box-shadow var(--ia-transition), transform var(--ia-transition); }
.ia-signup__type::before { content: ''; position: absolute; top: 0; left: 28px; width: 34px; height: 3px; background: var(--ia-gold); border-radius: 0 0 4px 4px; }
.ia-signup__type:hover, .ia-signup__type:focus-visible { border-color: #b79660; box-shadow: var(--ia-shadow-lift); transform: translateY(-2px); }
.ia-theme .ia-signup__type img { width: 56px; height: 56px !important; }
.ia-signup__type strong { font: 400 21px var(--ia-font-serif); color: var(--ia-ink); }
.ia-signup__type span { color: var(--ia-muted); font-size: 13px; line-height: 1.7; }
.ia-signup__type em { font-style: normal; font-weight: 700; font-size: 12px; color: var(--ia-blue); margin-top: 6px; }
.ia-signup__form { max-width: 720px; margin: 0 auto; }
.ia-signup__who { display: flex; align-items: center; gap: 12px; padding-bottom: 16px; margin-bottom: 18px; border-bottom: 1px solid var(--ia-line); }
.ia-theme .ia-signup__who img { width: 44px; height: 44px !important; }
.ia-signup__who .h3 { font: 400 19px var(--ia-font-serif); color: var(--ia-ink); margin: 0; flex: 1; }
.ia-signup__who #who { color: var(--ia-gold); text-transform: lowercase; }
.ia-theme .ia-signup .row_ { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.ia-theme .ia-signup .mb-3 { margin-bottom: 12px !important; }
.ia-theme .ia-signup #inputs_inscription .form-control, .ia-theme .ia-signup #inputs_inscription .dropdown-toggle { height: 44px; border: 1px solid #e1e5df !important; border-radius: var(--ia-radius-sm) !important; background: #fafbf9 !important; color: #304a42 !important; font-size: 13px !important; box-shadow: none !important; }
.ia-theme .ia-signup #inputs_inscription label { color: #75817a !important; font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; margin-bottom: 6px; }
.ia-theme .ia-signup .inscrit-file > div { border: 1px dashed #d8cfbf; border-radius: var(--ia-radius); background: var(--ia-paper); }
.ia-theme .ia-signup .accept_term { display: flex; gap: 10px; align-items: flex-start; font-size: 12px; color: var(--ia-muted); line-height: 1.7; margin: 8px 0 16px; }
.ia-theme .ia-signup .accept_term input { accent-color: var(--ia-blue); margin-top: 4px; }
.ia-theme .ia-signup #reglement-block-inscription { border-width: 1px !important; }
.ia-theme .ia-signup .deja { text-align: center; }

/* Contact */
.ia-contact-page__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: 28px; align-items: start; }
.ia-contact-page__form { padding: 30px 32px; }
.ia-contact-page__legal { margin-top: 18px; line-height: 1.7; }
.ia-contact-page__aside { display: grid; gap: 16px; }
.ia-contact-page__photo { height: 300px; border-radius: var(--ia-radius-md); overflow: hidden; }
.ia-theme .ia-contact-page__photo img { width: 100%; height: 100% !important; object-fit: cover; }
.ia-contact-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.ia-contact-list small { display: block; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--ia-gold-dark); font-weight: 700; margin-bottom: 3px; }
.ia-contact-list a, .ia-contact-list span { font-size: 14px; color: var(--ia-ink); }
.ia-contact-social { display: flex; gap: 10px; }
.ia-contact-social a { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--ia-tint); color: var(--ia-blue); }
.ia-contact-social a:hover { background: var(--ia-blue); color: var(--ia-white); }

@media (max-width: 900px) {
  .ia-auth { grid-template-columns: 1fr; min-height: 0; }
  .ia-auth__photo { display: none; }
  .ia-contact-page__grid { grid-template-columns: 1fr; }
  .ia-contact-page__photo { display: none; }
}
@media (max-width: 760px) {
  .ia-auth__panel { padding: 36px var(--ia-gutter) 48px; }
  .ia-theme .ia-signup__choice { flex-direction: column; }
  .ia-theme .ia-signup .row_ { grid-template-columns: 1fr; }
  .ia-contact-page__form { padding: 22px 20px; }
}
/* Neutralisation des anciens styles du formulaire d'inscription */
.ia-theme main.ia-signup .inscription { padding: 0; }
.ia-theme main.ia-signup .inscription_2 .choose { text-align: left; }
.ia-theme main.ia-signup .inscription_2 .choose .h3 { font: 400 19px var(--ia-font-serif); text-transform: none; letter-spacing: 0; margin: 0; color: var(--ia-ink); }
.ia-theme main.ia-signup .inscription_2 .choose a { font: 700 12px var(--ia-font-sans); text-transform: none; color: var(--ia-blue); }
.ia-theme main.ia-signup .inscription_2 #inputs_inscription { max-width: none; margin: 0; }
.ia-theme main.ia-signup .inscription_2 #inputs_inscription .row_ { grid-template-columns: 1fr 1fr; gap: 0 12px; }
.ia-theme main.ia-signup .inscription_2 input:not([type=checkbox]), .ia-theme main.ia-signup .inscription_2 select { border-radius: var(--ia-radius-sm) !important; height: 44px; padding-left: 12px; color: #304a42 !important; font-size: 13px; border-color: #e1e5df !important; width: 100%; }
.ia-theme main.ia-signup .inscription_2 input::placeholder { color: #8a958f; }
.ia-theme main.ia-signup .inscription_2 #button_inscription { width: 100%; max-width: none; height: auto; padding: 14px 18px; background: var(--ia-blue); border-radius: var(--ia-radius); font: 700 13px var(--ia-font-sans); text-transform: none; box-shadow: none; margin: 6px 0 0; }
.ia-theme main.ia-signup .inscription_2 #button_inscription:hover { background: var(--ia-blue-hover); }
.ia-theme main.ia-signup .inscription_2 .deja { font-size: 13px; color: var(--ia-muted); margin-top: 18px; }
.ia-theme main.ia-signup .inscription_2 .deja a { color: var(--ia-blue); }
@media (max-width: 760px) { .ia-theme main.ia-signup .inscription_2 #inputs_inscription .row_ { grid-template-columns: 1fr; } }

/* ---------- 18. Pages d'information (mentions, confidentialité) ---- */
.ia-theme .ia-legal { background: var(--ia-white); padding: 0; }
.ia-theme .ia-legal .ia-legal__body { max-width: 900px; padding-top: 40px; padding-bottom: 70px; font-size: 14px; line-height: 1.8; color: #3f5058; }
.ia-theme .ia-legal .ia-legal__body .random { background: transparent; box-shadow: none; padding: 0; margin: 0; }
.ia-theme .ia-legal table { width: 100%; border-collapse: collapse; border: 1px solid var(--ia-line); border-radius: var(--ia-radius-md); overflow: hidden; }
.ia-theme .ia-legal td { padding: 14px 16px; border-bottom: 1px solid var(--ia-line-soft); vertical-align: top; }
.ia-theme .ia-legal td:first-child { width: 30%; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; font-weight: 700; color: var(--ia-gold-dark); background: var(--ia-ivory); }
.ia-theme .ia-legal h2, .ia-theme .ia-legal h3 { font: 400 20px/1.4 var(--ia-font-serif); color: var(--ia-ink); margin: 28px 0 10px; }
@media (max-width: 760px) { .ia-theme .ia-legal td { display: block; width: 100% !important; } }
.ia-theme .ia-legal .ia-legal__body, .ia-theme .ia-legal .ia-legal__body p, .ia-theme .ia-legal .ia-legal__body li, .ia-theme .ia-legal .ia-legal__body span, .ia-theme .ia-legal .ia-legal__body td { color: #3f5058 !important; font-family: var(--ia-font-sans) !important; font-size: 14px; font-weight: 400; }
.ia-theme .ia-legal .ia-legal__body td:first-child { color: var(--ia-gold-dark) !important; font-size: 11px !important; font-weight: 700 !important; }
.ia-theme .ia-legal .ia-legal__body table, .ia-theme .ia-legal .ia-legal__body td { border-color: var(--ia-line) !important; background-color: transparent; }
.ia-theme .ia-legal .ia-legal__body td:first-child { background: var(--ia-ivory) !important; }
.ia-theme .ia-legal .ia-legal__body h1, .ia-theme .ia-legal .ia-legal__body h2, .ia-theme .ia-legal .ia-legal__body h3, .ia-theme .ia-legal .ia-legal__body h4 { font: 400 19px/1.4 var(--ia-font-serif) !important; color: var(--ia-ink) !important; text-transform: none !important; margin: 30px 0 10px !important; }
.ia-theme .ia-legal .ia-legal__body h1::before, .ia-theme .ia-legal .ia-legal__body h2::before, .ia-theme .ia-legal .ia-legal__body h3::before, .ia-theme .ia-legal .ia-legal__body h4::before { display: none !important; }
.ia-theme .ia-legal .ia-legal__body a { color: var(--ia-blue) !important; border-bottom: 1px solid var(--ia-gold-soft); }
.ia-theme .ia-legal .ia-legal__body .h3, .ia-theme .ia-legal .ia-legal__body .h4 { font: 400 19px/1.4 var(--ia-font-serif) !important; color: var(--ia-ink) !important; text-transform: none !important; margin: 30px 0 10px !important; padding: 0 !important; }
.ia-theme .ia-legal .ia-legal__body .h3::first-letter { text-transform: uppercase; }
.ia-theme .ia-legal .ia-legal__body .h3::before, .ia-theme .ia-legal .ia-legal__body .h3::after { display: none !important; }
.ia-theme .ia-legal .ia-legal__body tr, .ia-theme .ia-legal .ia-legal__body td:not(:first-child) { background: var(--ia-white) !important; }

/* ---------- 19. Espace connecté & plateforme (compte, messagerie, cours en ligne) ---------- */
/* =====================================================================
   Institut Cheikh Ibn Achour — Espace connecté (V6)
   ---------------------------------------------------------------------
   Habille l'espace élève / parent / enseignant et la plateforme de cours
   (compte.php, chat.php, gestion-des-cours.php, mes-eleves.php,
   presence.php, mes-diplomes.php, remuniration.php, paiement.php,
   parrainage.php, contact-prof.php, asso_return.php, cour.php,
   questions.php, quiz.php, cours-questions.php).
   Le HTML et le JavaScript hérités ne changent pas : seuls les styles
   sont repris. Les !important neutralisent les règles de style.css
   (pilules, dégradés, couleurs vives) et les styles en ligne.
   Dépend des variables de ibnachour.css.
   Sommaire
     1. Bandeau de page & conteneurs
     2. Tableau de bord (compte.php?do=mon-compte)
     3. Titres de section, boutons hérités
     4. Formulaires (informations personnelles, enfants, cours…)
     5. Tableaux & DataTables
     6. Composants des pages enseignant (cartes, onglets, badges)
     7. Messagerie (chat.php)
     8. Plateforme : quiz, exercices, cours (quiz.php, cour.php…)
     9. Pages simples (paiement, parrainage, contact, retour paiement)
    10. Plateforme de cours autonome (cours-questions.php)
    11. Responsive
   ===================================================================== */

/* ---------- 1. Bandeau de page & conteneurs ------------------------ */
.ia-theme main.ia-espace { background: var(--ia-white); display: block; }
.ia-theme .ia-espace-head { padding: 34px 0 30px; }
.ia-theme .ia-espace-head .ia-h2 { margin: 8px 0 6px; font-size: clamp(26px, 2.6vw, 34px); }
.ia-theme .ia-espace-head .ia-sub { margin: 0; }
.ia-theme .ia-espace-head .ia-breadcrumb { margin-bottom: 10px; }
.ia-theme .ia-espace-head--dash { padding: 52px 0 46px; }
.ia-theme .ia-espace-head--dash .ia-h2 { color: var(--ia-white); font-size: clamp(28px, 3vw, 42px); }
.ia-theme .ia-espace-head--dash .ia-h2 em { color: var(--ia-gold-soft); }
.ia-theme .ia-espace-head--dash .ia-eyebrow { color: var(--ia-gold-soft); }
.ia-theme .ia-espace-head--dash .ia-lead { margin: 0; }
.ia-theme .ia-espace-head--dash img { object-position: center 40%; height: 100% !important; }

/* Fonds : ivoire léger au lieu du bleu ciel */
.ia-theme main .data_tables,
.ia-theme main .data_tables.q,
.ia-theme main .board .b_table,
.ia-theme main .user_info { background: var(--ia-white) !important; }
.ia-theme main .data_tables .holder_ { max-width: var(--ia-shell); width: auto; padding: 36px var(--ia-gutter) 80px; margin: 0 auto; }
.ia-theme main .board .b_table { padding: 34px 0 80px !important; }
.ia-theme main .board .b_table .hold { max-width: var(--ia-shell); width: auto; padding: 0 var(--ia-gutter); }

/* ---------- 2. Tableau de bord ------------------------------------- */
.ia-theme main .board .b_table .hold .list {
  display: grid !important; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)) !important;
  gap: 14px !important; margin: 0 !important; padding: 0 !important;
  background: transparent !important; border-radius: 0 !important; box-shadow: none !important;
}
.ia-theme main .board .b_table .hold .list a,
.ia-theme main .board .b_table .hold .list a:nth-child(n) {
  position: relative; display: flex !important; align-items: center; gap: 16px;
  padding: 18px 20px !important; min-height: 92px;
  background: var(--ia-white) !important; color: var(--ia-ink) !important;
  border: 1px solid var(--ia-line); border-radius: var(--ia-radius-md) !important;
  transition: border-color var(--ia-transition), box-shadow var(--ia-transition), transform var(--ia-transition);
}
.ia-theme main .board .b_table .hold .list a::after { content: '→'; margin-left: auto; padding-left: 8px; color: var(--ia-gold); font-size: 16px; transition: transform var(--ia-transition); }
.ia-theme main .board .b_table .hold .list a:hover { border-color: var(--ia-gold-soft); box-shadow: var(--ia-shadow-lift); transform: translateY(-2px); background: var(--ia-white) !important; }
.ia-theme main .board .b_table .hold .list a:hover::after { transform: translateX(3px); }
.ia-theme main .board .b_table .hold .list a .icon,
.ia-theme main .board .b_table .hold .list a:nth-child(n) .icon,
.ia-theme main .board .b_table .hold .list a:hover .icon {
  width: 48px !important; min-width: 48px !important; height: 48px !important;
  border-radius: 50% !important; font-size: 18px !important;
  background: var(--ia-cream) !important; color: var(--ia-gold-dark) !important;
}
.ia-theme main .board .b_table .hold .list a .data { margin: 0 !important; min-width: 0; }
.ia-theme main .board .b_table .hold .list a .data .p-title { font: 400 17px/1.35 var(--ia-font-serif) !important; letter-spacing: 0 !important; color: var(--ia-ink); }
.ia-theme main .board .b_table .hold .list a .data .p-subtitle { font-size: 12px; color: var(--ia-muted); line-height: 1.55; margin-top: 4px; }
.ia-theme main .board .b_table .hold .list a .data .p-subtitle b { color: var(--ia-blue); }
.ia-theme main .board .b_table .hold .list a .new_reservation { display: inline-block; margin-left: 6px; padding: 3px 9px; border-radius: 30px; background: var(--ia-success-bg); color: var(--ia-success); font: 700 10px var(--ia-font-sans); letter-spacing: .04em; text-transform: uppercase; vertical-align: middle; }
.ia-theme main .board .b_table .hold .list a .tado_btn { color: var(--ia-warning) !important; font-size: 11px; font-weight: 700; margin-top: 6px; }
/* Lien visio du jour : mis en avant */
.ia-theme main .board .b_table .hold .list a[target="_blank"] { background: var(--ia-blue-deep) !important; color: var(--ia-white) !important; border-color: var(--ia-blue-deep); }
.ia-theme main .board .b_table .hold .list a[target="_blank"] .p-title, .ia-theme main .board .b_table .hold .list a[target="_blank"] .p-subtitle { color: var(--ia-white) !important; }
/* Pastilles « à faire » */
.ia-theme .badge-fiche-rappel { background: var(--ia-danger) !important; animation: none !important; }
.ia-theme .icone-fiche-pulse { animation: none !important; }
.ia-theme .fiche-rappel-banner { background: var(--ia-danger-bg) !important; border: 1px solid #efcdc9 !important; color: var(--ia-danger) !important; border-radius: var(--ia-radius) !important; padding: 12px 16px !important; margin-bottom: 18px !important; }
.ia-theme .fiche-rappel-banner a { background: var(--ia-danger) !important; border-radius: var(--ia-radius-sm) !important; font-weight: 700; }

/* Vérification de l'adresse e-mail */
.ia-theme main .b_table .alert_validation { background: var(--ia-ivory) !important; border: 1px solid var(--ia-line) !important; border-radius: var(--ia-radius-lg) !important; color: var(--ia-ink) !important; padding: 28px !important; box-shadow: none !important; }
.ia-theme main .b_table .alert_validation .validate_email { color: var(--ia-ink); font-size: 14px; }
.ia-theme main .b_table .alert_validation .valid .two_btns input { border: 1px solid #e1e5df !important; border-radius: var(--ia-radius-sm) !important; background: var(--ia-white) !important; color: var(--ia-ink) !important; }
.ia-theme main .b_table .alert_validation .valid .two_btns button,
.ia-theme .valid .two_btns button { background: var(--ia-white) !important; color: var(--ia-blue) !important; border: 1px solid #adc2ca !important; border-radius: var(--ia-radius) !important; font-family: var(--ia-font-sans) !important; font-weight: 700 !important; text-transform: none !important; box-shadow: none !important; }
.ia-theme main .b_table .alert_validation .valid .two_btns button#valider,
.ia-theme main .b_table .alert_validation .valid .two_btns button[type="submit"] { background: var(--ia-blue) !important; color: var(--ia-white) !important; border-color: var(--ia-blue) !important; }

/* ---------- 3. Titres de section, boutons hérités ------------------ */
.ia-theme main .data_tables .holder_ .title__ { flex-wrap: wrap; gap: 12px; margin-bottom: 18px; }
.ia-theme main .data_tables .holder_ .title__ .h3,
.ia-theme main .data_tables .holder_ .h3:not(.chat_choose):not(.blocked) {
  font: 400 22px/1.35 var(--ia-font-serif) !important; color: var(--ia-ink) !important; letter-spacing: -.3px !important; padding-left: 0 !important;
}
.ia-theme main .data_tables .holder_ .title__ .h3::before { display: none !important; }
.ia-theme main .data_tables .holder_ .title__ .h3 span { color: var(--ia-gold-dark) !important; }
.ia-theme main .data_tables .holder_ .title__ a {
  background: var(--ia-blue) !important; color: var(--ia-white) !important; border-radius: var(--ia-radius) !important;
  padding: 11px 16px !important; font: 700 12px/1 var(--ia-font-sans) !important; gap: 8px;
}
.ia-theme main .data_tables .holder_ .title__ a:hover { background: var(--ia-blue-hover) !important; }
.ia-theme main .data_tables .holder_ .title__ a i { width: auto !important; height: auto !important; background: none !important; color: var(--ia-gold-soft) !important; margin: 0 !important; font-size: 12px !important; }

.ia-theme main .data_tables .form-group button[type="submit"],
.ia-theme main .data_tables .form-group .btn-primary,
.ia-theme main .user_info form .bts_ button,
.ia-theme main .data_tables .form-group a.btn-warning,
.ia-theme main .user_info form .bts_ a {
  height: 46px !important; border-radius: var(--ia-radius) !important; font: 700 13px var(--ia-font-sans) !important;
  letter-spacing: .02em !important; text-transform: none !important; background: var(--ia-blue) !important; color: var(--ia-white) !important; box-shadow: none !important;
}
.ia-theme main .data_tables .form-group button[type="submit"]:hover,
.ia-theme main .data_tables .form-group .btn-primary:hover,
.ia-theme main .user_info form .bts_ button:hover { background: var(--ia-blue-hover) !important; }
.ia-theme main .data_tables .form-group a.btn-warning,
.ia-theme main .user_info form .bts_ a { background: var(--ia-white) !important; color: var(--ia-blue) !important; border: 1px solid #adc2ca !important; }
.ia-theme main .data_tables .form-group a.btn-warning:hover,
.ia-theme main .user_info form .bts_ a:hover { background: var(--ia-blue) !important; color: var(--ia-white) !important; }
.ia-theme main.ia-espace .btn-danger { background: var(--ia-danger); border-color: var(--ia-danger); border-radius: var(--ia-radius); }
.ia-theme main.ia-espace .btn-secondary { border-radius: var(--ia-radius); }
.ia-theme main.ia-espace .badge.bg-danger { background: var(--ia-danger) !important; }
.ia-theme main.ia-espace .badge.bg-success { background: var(--ia-success) !important; }
.ia-theme main.ia-espace .badge.bg-warning { background: var(--ia-gold) !important; color: var(--ia-white) !important; }

/* ---------- 4. Formulaires ----------------------------------------- */
.ia-theme main .user_info form { max-width: 920px; width: auto; margin: 36px auto 80px !important; padding: 30px 32px; background: var(--ia-white); border: 1px solid var(--ia-line); border-radius: var(--ia-radius-lg); }
.ia-theme main .user_info form .rows_ { gap: 16px 22px; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.ia-theme main .user_info form .rows_ .column label,
.ia-theme main.ia-espace .form-group > label,
.ia-theme main.ia-espace .form-label,
.ia-theme main .data_tables form label:not(.form-check-label):not([for="file_img"]) {
  color: #6b7770 !important; font: 700 10px var(--ia-font-sans) !important; letter-spacing: .07em; text-transform: uppercase; margin: 0 0 7px !important;
}
.ia-theme main .user_info form .rows_ .column input,
.ia-theme main .user_info form .rows_ .column select,
.ia-theme main .data_tables form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="submit"]):not([type="button"]),
.ia-theme main .data_tables form select,
.ia-theme main .data_tables form textarea,
.ia-theme main .data_tables form .bootstrap-select > .btn,
.ia-theme main .user_info form .bootstrap-select .btn {
  height: auto !important; min-height: 44px; border-radius: var(--ia-radius-sm) !important; border: 1px solid #e1e5df !important;
  background-color: #fafbf9 !important; color: var(--ia-ink) !important; padding: 10px 12px !important; font: 13px var(--ia-font-sans) !important; box-shadow: none !important;
}
.ia-theme main .data_tables form textarea { min-height: 110px; }
.ia-theme main .user_info form .rows_ .column input:focus,
.ia-theme main .data_tables form input:focus,
.ia-theme main .data_tables form select:focus,
.ia-theme main .data_tables form textarea:focus { border-color: var(--ia-gold-soft) !important; box-shadow: 0 0 0 3px rgba(180, 134, 66, .15) !important; background-color: var(--ia-white) !important; outline: 0; }
.ia-theme main .user_info form .bts_ { display: flex; gap: 10px; flex-wrap: wrap; }
.ia-theme main .user_info form .bts_ > * { flex: 1 1 200px; margin-top: 0 !important; }
.ia-theme main .user_info form .bts_ i { color: inherit; }
.ia-theme main .user_info .list_pieces .piece-item { display: flex; gap: 10px; align-items: center; }
.ia-theme main .user_info .list_pieces a { color: var(--ia-blue); }
.ia-theme main .user_info .inscrit-file span { color: var(--ia-success); }
.ia-theme input[type="checkbox"], .ia-theme input[type="radio"] { accent-color: var(--ia-blue); }
.ia-theme main.ia-espace .note-editor { border-radius: var(--ia-radius-sm); border-color: var(--ia-line) !important; }

/* ---------- 5. Tableaux & DataTables ------------------------------- */
.ia-theme .data_tables table.data_reservation,
.ia-theme table.data_reservation {
  border: 1px solid var(--ia-line) !important; border-radius: var(--ia-radius-md) !important; box-shadow: none !important; background: var(--ia-white);
  border-collapse: separate !important; border-spacing: 0; transform: none !important; font-size: 13px;
}
.ia-theme .data_reservation thead th {
  background: #fafaf7 !important; color: #6b7770 !important; font: 700 10px var(--ia-font-sans) !important; letter-spacing: .08em !important;
  text-transform: uppercase; text-align: left !important; padding: 12px 14px !important; border-bottom: 1px solid var(--ia-line) !important; white-space: nowrap;
}
.ia-theme .data_reservation tbody td { text-align: left !important; padding: 12px 14px !important; border-bottom: 1px solid var(--ia-line-soft) !important; color: var(--ia-ink); letter-spacing: 0 !important; background: transparent; }
.ia-theme .data_reservation tbody tr:last-child td { border-bottom: 0 !important; }
.ia-theme .data_reservation tbody tr:hover td { background: #faf9f5; }
.ia-theme .data_reservation a { color: var(--ia-blue); font-weight: 600; }
.ia-theme .data_reservation a:hover { color: var(--ia-gold-dark); }
.ia-theme .scroll_table { overflow-x: auto; }
.ia-theme main .dataTables_wrapper { margin: 14px 0 30px !important; }
.ia-theme .data_tables .dataTables_length label, .ia-theme .data_tables .dataTables_filter label { color: var(--ia-muted) !important; font-size: 12px !important; font-weight: 600 !important; }
.ia-theme .data_tables .dataTables_length label select,
.ia-theme .data_tables .dataTables_filter label input { border: 1px solid #e1e5df !important; border-radius: var(--ia-radius-sm) !important; box-shadow: none !important; color: var(--ia-ink) !important; background: #fafbf9 !important; }
.ia-theme .data_tables .dataTables_filter label::before { color: var(--ia-gold) !important; }
.ia-theme .data_tables .dataTables_filter label input::placeholder { color: var(--ia-subtle) !important; font-size: 13px !important; }
.ia-theme .dataTables_wrapper .dataTables_paginate .paginate_button { border-radius: var(--ia-radius-sm) !important; }
.ia-theme .dataTables_wrapper .dataTables_paginate .paginate_button.current { background: var(--ia-blue) !important; border-color: var(--ia-blue) !important; color: var(--ia-white) !important; }
.ia-theme .dataTables_wrapper .dataTables_info { color: var(--ia-muted); font-size: 12px; }

/* Fenêtres d'information héritées (réservations, rapports) */
.ia-theme .show_buyer_info, .ia-theme .rapport_data, .ia-theme .paeiment_popup, .ia-theme .show_my_info { border-radius: var(--ia-radius-lg) !important; font-family: var(--ia-font-sans) !important; color: var(--ia-ink); }
.ia-theme .dark_overley { background: rgba(8, 37, 58, .62) !important; }

/* ---------- 6. Composants enseignant ------------------------------- */
/* Onglets d'années & filtres (rp-, gc-, pr-, rr-) */
.ia-theme .rp-tab, .ia-theme .gc-tab, .ia-theme .pr-tab, .ia-theme .rr-onglet, .ia-theme .tab-btn { border-radius: 30px !important; font-family: var(--ia-font-sans); font-weight: 600; }
.ia-theme .rp-tab.active, .ia-theme .gc-tab.active, .ia-theme .pr-tab.active, .ia-theme .tab-btn.active, .ia-theme .rr-onglet.active { background: var(--ia-blue) !important; border-color: var(--ia-blue) !important; color: var(--ia-white) !important; }
/* Cartes */
.ia-theme .rp-card, .ia-theme .gc-card, .ia-theme .pr-cours-block, .ia-theme .fe-card, .ia-theme .me-card, .ia-theme .rr-card { border-color: var(--ia-line) !important; border-radius: var(--ia-radius-md) !important; box-shadow: none !important; }
.ia-theme .gc-card:hover, .ia-theme .me-card:hover { box-shadow: var(--ia-shadow-sm) !important; border-color: var(--ia-gold-soft) !important; }
.ia-theme .rp-card-header { background: var(--ia-blue-deep) !important; }
.ia-theme .rp-card-header.encours { background: linear-gradient(90deg, var(--ia-blue-deep), #205874) !important; box-shadow: inset 4px 0 0 var(--ia-gold); }
.ia-theme .rp-card-header.expired { background: #7c878c !important; }
.ia-theme .rp-card-title, .ia-theme .gc-card-title, .ia-theme .pr-cours-titre { font-family: var(--ia-font-serif) !important; font-weight: 400 !important; }
.ia-theme .rp-card-title { font-size: 17px !important; }
.ia-theme .gc-card-title { font-size: 16px !important; color: var(--ia-ink) !important; }
.ia-theme .rp-progress-fill { background: var(--ia-gold-soft) !important; }
.ia-theme .rp-eleve-table th, .ia-theme .ntable th { background: #fafaf7 !important; color: #6b7770 !important; font-size: 10px !important; letter-spacing: .08em; }
.ia-theme .rp-section-label, .ia-theme .gc-section-label, .ia-theme .pr-section-title { color: var(--ia-gold-dark) !important; letter-spacing: .1em !important; }
.ia-theme .rp-section-label::after, .ia-theme .gc-section-label::after, .ia-theme .pr-section-title::after { background: var(--ia-line) !important; }
.ia-theme .rp-empty, .ia-theme .gc-empty { background: var(--ia-paper) !important; border: 1px dashed #d8cfbf !important; border-radius: var(--ia-radius-md) !important; color: var(--ia-muted) !important; font-style: normal !important; }
.ia-theme .gc-search { border-color: #e1e5df !important; border-radius: var(--ia-radius-sm) !important; background: #fafbf9 !important; min-height: 42px; }
.ia-theme .gc-search:focus { outline: 0; border-color: var(--ia-gold-soft) !important; box-shadow: 0 0 0 3px rgba(180, 134, 66, .15); }
.ia-theme .gc-chip { border-radius: 30px !important; }
.ia-theme .pr-appel-card { border-width: 1px !important; border-left: 4px solid var(--ia-gold) !important; box-shadow: var(--ia-shadow-sm) !important; }
.ia-theme .pr-appel-btn { border-radius: var(--ia-radius) !important; }
.ia-theme .pr-appel-btn.manque { background: var(--ia-gold) !important; color: var(--ia-white) !important; }
.ia-theme .pr-ok-box { border-radius: var(--ia-radius) !important; }
.ia-theme .pr-modal { border-radius: var(--ia-radius-lg) !important; }
.ia-theme .pr-modal-title { font: 400 19px var(--ia-font-serif) !important; }
.ia-theme .pr-modal-bg { background: rgba(8, 37, 58, .62) !important; }
/* Statistiques & avatars (mes-eleves.php) */
.ia-theme .me-stat { background: var(--ia-white) !important; border: 1px solid var(--ia-line); border-radius: var(--ia-radius-md) !important; position: relative; padding: 16px 12px !important; }
.ia-theme .me-stat::before { content: ''; position: absolute; top: 0; left: 50%; width: 30px; margin-left: -15px; height: 3px; background: var(--ia-gold); border-radius: 0 0 4px 4px; }
.ia-theme .me-stat .v { font: 26px/1.2 var(--ia-font-serif) !important; }
.ia-theme .me-stat .l { font-size: 10px !important; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; color: var(--ia-subtle) !important; }
.ia-theme .fe-avatar, .ia-theme .me-avatar { background: var(--ia-cream) !important; color: var(--ia-gold-dark) !important; font-family: var(--ia-font-serif) !important; font-weight: 400 !important; }
.ia-theme .fe-card-hd { background: var(--ia-paper) !important; border-color: var(--ia-line) !important; }
.ia-theme .fe-card-hd h6 { font: 400 16px var(--ia-font-serif) !important; color: var(--ia-ink) !important; }
.ia-theme .jitem { background: var(--ia-paper) !important; }
.ia-theme main.ia-espace h4 { font-family: var(--ia-font-serif); font-weight: 400 !important; }
.ia-theme .ia-me-wrap { max-width: var(--ia-shell) !important; padding: 28px var(--ia-gutter) 70px !important; }

/* Emploi du temps (compte.php?do=emploi-de-temps) */
.ia-theme .months, .ia-theme .list_days { border-radius: var(--ia-radius-md) !important; }
.ia-theme .months { background: var(--ia-blue-deep) !important; box-shadow: none !important; }
.ia-theme .months .month { color: rgba(255, 255, 255, .78) !important; border-radius: var(--ia-radius-sm) !important; font-family: var(--ia-font-sans) !important; }
.ia-theme .months .month.active, .ia-theme .months .month:hover { background: var(--ia-gold) !important; color: var(--ia-white) !important; }
.ia-theme .emploieAnneeScolaire select { border: 1px solid #e1e5df !important; border-radius: var(--ia-radius-sm) !important; background: #fafbf9 !important; }

/* ---------- 7. Messagerie ------------------------------------------ */
.ia-theme .rows__ { grid-template-columns: minmax(250px, 320px) minmax(0, 1fr) !important; gap: 20px; }
.ia-theme .rows__ .row__01, .ia-theme .rows__ .boxed__ { border: 1px solid var(--ia-line); border-radius: var(--ia-radius-lg) !important; box-shadow: none !important; background: var(--ia-white); }
.ia-theme .rows__ .row__01 { min-height: 560px !important; max-height: 640px !important; overflow-y: auto; }
.ia-theme .rows__ .row__01 .head,
.ia-theme .rows__ .row__02 .head {
  height: auto !important; min-height: 64px; padding: 18px 22px !important; justify-content: flex-start !important; text-align: left !important;
  background: var(--ia-blue-deep) !important; color: var(--ia-white) !important; border-radius: 0 !important;
  font: 400 18px/1.3 var(--ia-font-serif) !important; text-transform: none !important;
}
.ia-theme .rows__ .row__01 .head i { color: var(--ia-gold-soft); font-size: 16px !important; margin-right: 10px !important; top: 0 !important; }
.ia-theme .rows__ .row__01 .list_discution .amie,
.ia-theme .rows__ .row__01 .list_discution .amie.new { background: var(--ia-white) !important; border-top: 0 !important; border-bottom: 1px solid var(--ia-line-soft); padding: 14px 18px !important; }
.ia-theme .rows__ .row__01 .list_discution .amie:hover,
.ia-theme .rows__ .row__01 .list_discution .amie.active { background: var(--ia-ivory) !important; box-shadow: inset 3px 0 0 var(--ia-gold); }
.ia-theme .rows__ .row__01 .list_discution .amie .h4 { font: 700 14px var(--ia-font-sans) !important; color: var(--ia-ink) !important; }
.ia-theme .rows__ .row__01 .list_discution .amie .h4 span { font-size: 11px !important; font-weight: 600; color: var(--ia-gold-dark) !important; text-transform: uppercase; letter-spacing: .06em; }
.ia-theme .rows__ .row__01 .list_discution .amie .last_msg { font-size: 12px !important; color: var(--ia-muted) !important; margin-top: 3px; }
.ia-theme .rows__ .row__01 .list_discution .amie .last_msg .new_message_nf { background: var(--ia-gold) !important; }
.ia-theme .list_discution .h3.blocked { color: var(--ia-muted) !important; font-size: 13px !important; }
.ia-theme .rows__ .row__02 .messages { background: var(--ia-paper); padding: 20px 26px !important; }
.ia-theme .rows__ .row__02 .messages .row_m p { border-radius: 16px !important; font-size: 14px !important; line-height: 1.6; padding: 10px 16px !important; }
.ia-theme .rows__ .row__02 .messages .row_m.me p { background: var(--ia-blue) !important; color: var(--ia-white) !important; border-bottom-right-radius: 4px !important; }
.ia-theme .rows__ .row__02 .messages .row_m.him p { background: var(--ia-white) !important; color: var(--ia-ink) !important; border: 1px solid var(--ia-line); border-bottom-left-radius: 4px !important; }
.ia-theme .rows__ .row__02 .messages .row_m.me a { color: var(--ia-gold-soft) !important; }
.ia-theme .rows__ .row__02 .messages .row_m.him a { color: var(--ia-blue) !important; }
.ia-theme .rows__ .row__02 .messages .row_m span { color: var(--ia-subtle) !important; font-size: 10px !important; }
.ia-theme .rows__ .row__02 .messages .row_m p i.fa-check-double { color: inherit; opacity: .7; }
.ia-theme .rows__ .row__02 .send_m { border: 1px solid var(--ia-line); border-radius: var(--ia-radius-md) !important; background: var(--ia-white) !important; box-shadow: none !important; padding: 8px !important; gap: 8px; margin-top: 12px; }
.ia-theme .rows__ .row__02 .send_m textarea { border: 0 !important; background: transparent !important; font: 14px var(--ia-font-sans) !important; color: var(--ia-ink) !important; }
.ia-theme .rows__ .row__02 .send_m button { background: var(--ia-blue) !important; border-radius: var(--ia-radius) !important; font: 700 13px var(--ia-font-sans) !important; text-transform: none !important; box-shadow: none !important; }
.ia-theme .rows__ .row__02 .send_m button:hover { background: var(--ia-blue-hover) !important; }
.ia-theme .rows__ .row__02 label i { color: var(--ia-gold) !important; }
.ia-theme .h3.chat_choose { min-height: 560px; display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
  border: 1px dashed #d8cfbf; border-radius: var(--ia-radius-lg); background: var(--ia-paper);
  font: 400 19px var(--ia-font-serif) !important; color: var(--ia-muted) !important; }
.ia-theme .h3.chat_choose i { color: var(--ia-gold) !important; font-size: 30px !important; margin: 0 !important; }
.ia-theme .pop_image_dark { background: rgba(8, 37, 58, .8) !important; }

/* ---------- 8. Plateforme : quiz, exercices, cours ------------------ */
.ia-theme .filter-quiz { background: var(--ia-white) !important; border: 1px solid var(--ia-line) !important; border-radius: var(--ia-radius-lg) !important; box-shadow: none !important; }
.ia-theme .filter-quiz .title { font: 400 20px var(--ia-font-serif) !important; color: var(--ia-ink) !important; text-transform: none !important; letter-spacing: 0 !important; }
.ia-theme .filter-quiz .title span, .ia-theme .filter-quiz .title strong { color: var(--ia-gold-dark) !important; font-weight: 400 !important; }
.ia-theme .filter-quiz .search_m { background: var(--ia-ivory) !important; border-radius: var(--ia-radius) !important; box-shadow: none !important; }
.ia-theme .filter-quiz .search_m .txt { color: #6b7770 !important; font: 700 10px var(--ia-font-sans) !important; letter-spacing: .07em; }
.ia-theme .filter-quiz select { border: 1px solid #e1e5df !important; border-radius: var(--ia-radius-sm) !important; background: var(--ia-white) !important; }
.ia-theme .filter-quiz button, .ia-theme .filter-quiz .button button { background: var(--ia-blue) !important; border-radius: var(--ia-radius) !important; box-shadow: none !important; text-transform: none !important; font-family: var(--ia-font-sans) !important; }
.ia-theme .detail-quiz .questions { border: 1px solid var(--ia-line) !important; border-radius: var(--ia-radius-lg) !important; box-shadow: none !important; background: var(--ia-white) !important; }
.ia-theme .detail-quiz .questions .h3 { font: 400 22px var(--ia-font-serif) !important; color: var(--ia-ink) !important; text-transform: none !important; }
.ia-theme .detail-quiz .questions .quiz_questions .question { border: 1px solid var(--ia-line) !important; border-radius: var(--ia-radius-md) !important; box-shadow: none !important; background: var(--ia-paper) !important; }
.ia-theme .detail-quiz .questions .quiz_questions .question .h2,
.ia-theme .detail-quiz .questions .quiz_questions .question .h4 { color: var(--ia-ink) !important; font-family: var(--ia-font-sans) !important; }
.ia-theme .detail-quiz .questions .quiz_questions .question .h5 { color: var(--ia-gold-dark) !important; }
.ia-theme .detail-quiz .questions .quiz_questions .question .count_down { background: var(--ia-blue-deep) !important; border-radius: var(--ia-radius) !important; }
.ia-theme .detail-quiz .questions .quiz_questions .question .responses .res label { border: 1px solid var(--ia-line) !important; border-radius: var(--ia-radius) !important; background: var(--ia-white) !important; color: var(--ia-ink) !important; box-shadow: none !important; }
.ia-theme .detail-quiz .questions .quiz_questions .question .responses .res label:hover { border-color: var(--ia-blue) !important; background: var(--ia-tint) !important; }
.ia-theme .detail-quiz .questions .quiz_questions .question .responses .res label.green { background: var(--ia-success-bg) !important; border-color: #cfe4d7 !important; color: var(--ia-success) !important; }
.ia-theme .detail-quiz .questions .quiz_questions .question .responses .res label.red { background: var(--ia-danger-bg) !important; border-color: #efcdc9 !important; color: var(--ia-danger) !important; }
.ia-theme .detail-quiz .questions .quiz_questions .question .responses .res label.orange,
.ia-theme .detail-quiz .questions .quiz_questions .question .responses .res label.answer { background: var(--ia-warning-bg) !important; border-color: #f0dfbd !important; color: var(--ia-warning) !important; }
.ia-theme .detail-quiz .questions .show_case .case.green span { background: var(--ia-success) !important; }
.ia-theme .detail-quiz .questions .show_case .case.red span { background: var(--ia-danger) !important; }
.ia-theme .detail-quiz .questions .show_case .case.orange span { background: var(--ia-gold) !important; }
.ia-theme .detail-quiz .questions .btn_submit button,
.ia-theme .exercices .exercice .btns button { background: var(--ia-blue) !important; border-radius: var(--ia-radius) !important; box-shadow: none !important; text-transform: none !important; font: 700 13px var(--ia-font-sans) !important; color: var(--ia-white) !important; }
.ia-theme .detail-quiz .questions .btn_submit button:hover,
.ia-theme .exercices .exercice .btns button:hover { background: var(--ia-blue-hover) !important; }
.ia-theme .exercices .hol { border: 1px solid var(--ia-line) !important; border-radius: var(--ia-radius-lg) !important; box-shadow: none !important; background: var(--ia-white) !important; }
.ia-theme .exercices .hol .c_ { color: var(--ia-gold-dark) !important; font: 700 11px var(--ia-font-sans) !important; letter-spacing: .1em; text-transform: uppercase; }
.ia-theme .exercices .exercice .question { background: var(--ia-paper) !important; border: 1px solid var(--ia-line) !important; border-radius: var(--ia-radius-md) !important; color: var(--ia-ink) !important; }
.ia-theme .exercices .exercice .reponses label { border: 1px solid var(--ia-line) !important; border-radius: var(--ia-radius) !important; background: var(--ia-white) !important; color: var(--ia-ink) !important; box-shadow: none !important; }
.ia-theme .exercices .exercice .reponses label.active { border-color: var(--ia-blue) !important; background: var(--ia-tint) !important; color: var(--ia-blue) !important; }
.ia-theme main .data_tables .holder_.entra .card { border-color: var(--ia-line) !important; border-radius: var(--ia-radius-md) !important; box-shadow: none !important; }
.ia-theme main .data_tables .holder_ .card .h6 { color: var(--ia-gold-dark) !important; font-family: var(--ia-font-sans) !important; letter-spacing: .08em; text-transform: uppercase; font-size: 11px !important; }
.ia-theme main .data_tables .holder_ .card .dt .h3 { font: 400 18px var(--ia-font-serif) !important; color: var(--ia-ink) !important; }
.ia-theme main .data_tables .holder_ .card .dt button { background: var(--ia-blue) !important; border-radius: var(--ia-radius) !important; box-shadow: none !important; }
/* Fiche d'un cours de la plateforme (cour.php?id=) */
.ia-theme main .cour_p .cour_data { background: var(--ia-white) !important; }
.ia-theme main .cour_p .cour_data .hold { max-width: var(--ia-shell); width: auto; padding-left: var(--ia-gutter); padding-right: var(--ia-gutter); }
.ia-theme main .cour_p .cour_data .hold .detail { border: 1px solid var(--ia-line) !important; border-radius: var(--ia-radius-md) !important; box-shadow: none !important; background: var(--ia-white) !important; }
.ia-theme main .cour_p .cour_data .hold .detail .h3 { font: 400 20px var(--ia-font-serif) !important; color: var(--ia-ink) !important; text-transform: none !important; }
.ia-theme main .cour_p .cour_data .hold .detail .h3::before { background: var(--ia-gold) !important; }
.ia-theme main .cour_p .cour_data .hold .detail table thead th,
.ia-theme main .cour_p .cour_data .hold .detail table thead th.th2 { background: #fafaf7 !important; color: #6b7770 !important; font-size: 10px !important; letter-spacing: .08em; }
.ia-theme main .cour_p .cour_data .hold .detail table thead th.th2 span { color: inherit !important; background: none !important; }
.ia-theme main .cour_p .cour_data .hold .detail table tbody td { color: var(--ia-ink) !important; }
.ia-theme main .cour_p .cour_data .hold .detail .bts a,
.ia-theme main .cour_p .cour_data .hold .detail.det-4 .bts a { background: var(--ia-blue) !important; border-radius: var(--ia-radius) !important; box-shadow: none !important; text-transform: none !important; font-family: var(--ia-font-sans) !important; }
.ia-theme main .cour_p video, .ia-theme main .cour_p iframe { border-radius: var(--ia-radius-md); }

/* ---------- 9. Pages simples ---------------------------------------- */
/* Retour de paiement */
.ia-theme .message_payment_success { background: var(--ia-white) !important; border: 1px solid var(--ia-line) !important; border-radius: var(--ia-radius-lg) !important; box-shadow: none !important; color: var(--ia-ink) !important; font: 400 20px/1.5 var(--ia-font-serif) !important; }
.ia-theme .message_payment_success span { background: var(--ia-success-bg) !important; color: var(--ia-success) !important; }
.ia-theme .message_payment_success.not span { background: var(--ia-warning-bg) !important; color: var(--ia-warning) !important; }
.ia-theme .message_payment_success span div { color: inherit !important; }
/* Abonnement (paiement.php) */
.ia-theme main .data_tables.payment .holder_ .card { border: 1px solid var(--ia-line) !important; border-radius: var(--ia-radius-md) !important; box-shadow: none !important; }
.ia-theme main .data_tables .holder_ .data_period b { color: var(--ia-blue) !important; }
.ia-theme main .data_tables .holder_ .data_period i { color: var(--ia-gold) !important; }
.ia-theme main .data_tables .holder_ .promo_code #show_code_promo { color: var(--ia-blue) !important; border-color: var(--ia-gold-soft) !important; border-radius: var(--ia-radius) !important; }
/* Parrainage */
.ia-theme .ia-parrainage { background: var(--ia-ivory) !important; font-family: var(--ia-font-sans); }
.ia-theme .ia-parrainage > div { font-family: var(--ia-font-sans) !important; color: var(--ia-ink) !important; }
.ia-theme .ia-parrainage h1 { font: 400 clamp(26px, 2.6vw, 34px)/1.3 var(--ia-font-serif) !important; color: var(--ia-ink) !important; }
.ia-theme .ia-parrainage div[style*="border-radius:16px"] { border-radius: var(--ia-radius-lg) !important; box-shadow: none !important; }
.ia-theme .ia-parrainage button, .ia-theme .ia-parrainage a[href^="sms"], .ia-theme .ia-parrainage a[href^="mailto"] { border-radius: var(--ia-radius) !important; }
/* Contacter le professeur */
.ia-theme .ia-contact-prof { max-width: 760px; margin: 36px auto 80px; padding: 0 var(--ia-gutter); }
.ia-theme .ia-contact-prof form { background: var(--ia-white); border: 1px solid var(--ia-line); border-radius: var(--ia-radius-lg); padding: 26px 28px; }
.ia-theme .ia-contact-prof textarea { width: 100%; min-height: 160px; border: 1px solid #e1e5df; border-radius: var(--ia-radius-sm); background: #fafbf9; padding: 11px 12px; font: 13px/1.6 var(--ia-font-sans); color: var(--ia-ink); }
.ia-theme .ia-contact-prof textarea:focus { outline: 0; border-color: var(--ia-gold-soft); box-shadow: 0 0 0 3px rgba(180, 134, 66, .15); background: var(--ia-white); }
.ia-theme .ia-contact-prof .form-label { color: #6b7770; font: 700 10px var(--ia-font-sans); letter-spacing: .07em; text-transform: uppercase; }
.ia-theme .ia-contact-prof .btn-primary { min-height: 46px; }

/* Alertes Bootstrap dans l'espace */
.ia-theme main.ia-espace .alert { border-radius: var(--ia-radius); border: 0; font-size: 13px; }
.ia-theme main.ia-espace .alert-success { background: var(--ia-success-bg); color: var(--ia-success); }
.ia-theme main.ia-espace .alert-warning { background: var(--ia-warning-bg); color: var(--ia-warning); }
.ia-theme main.ia-espace .alert-danger { background: var(--ia-danger-bg); color: var(--ia-danger); }
.ia-theme main.ia-espace .alert-info, .ia-theme main.ia-espace .alert-primary { background: var(--ia-tint); color: var(--ia-blue); }
.ia-theme main.ia-espace .list-group-item.active { background: var(--ia-blue); border-color: var(--ia-blue); }

/* ---------- 10. Plateforme de cours autonome (cours-questions.php) -- */
/* Page autonome (sans header.php) : body.ia-theme.ia-pf charge ibnachour.css
   et ce fichier ; ses classes .ia-block/.ia-card/.ia-sub/.ia-badge locales
   sont renommées .pf-ia-* pour ne pas entrer en conflit avec le thème. */
body.ia-pf { background: var(--ia-ivory) !important; font-family: var(--ia-font-sans) !important; color: var(--ia-ink); }
.ia-pf {
  --bg: var(--ia-ivory); --surface: #fff; --border: var(--ia-line); --text: var(--ia-ink); --text-2: var(--ia-muted); --text-3: var(--ia-subtle);
  --accent: var(--ia-blue); --accent-2: var(--ia-gold-dark); --accent-3: var(--ia-success); --accent-4: var(--ia-danger); --gold: var(--ia-gold);
  --radius: 12px; --radius-sm: 9px; --font: 'DM Sans', system-ui, sans-serif; --font-d: 'Libre Baskerville', Georgia, serif;
}
.ia-pf .pf-sidebar { background: var(--ia-blue-deep); border-right: 0; color: #d5dee4; }
.ia-pf .pf-logo { border-bottom-color: rgba(255, 255, 255, .1); }
.ia-pf .pf-logo-icon { background: transparent; width: 46px; height: 46px; }
.ia-pf .pf-logo-icon img { width: 46px; height: 46px !important; object-fit: contain; }
.ia-pf .pf-logo-txt { color: var(--ia-white); font-size: 15px; }
.ia-pf .pf-logo-txt small { color: var(--ia-gold-soft); letter-spacing: .12em; }
.ia-pf .pf-nav-lbl { color: var(--ia-gold-soft); }
.ia-pf .pf-nav-item { color: #d5dee4; }
.ia-pf .pf-nav-item:hover { background: rgba(255, 255, 255, .08); color: var(--ia-white); }
.ia-pf .pf-nav-item.active { background: rgba(255, 255, 255, .08); color: var(--ia-white); box-shadow: inset 3px 0 0 var(--ia-gold); }
.ia-pf .pf-nav-badge { background: var(--ia-gold); }
.ia-pf .pf-sidebar-footer { border-top-color: rgba(255, 255, 255, .1); }
.ia-pf .pf-user { background: rgba(255, 255, 255, .06); }
.ia-pf .pf-uname { color: var(--ia-white); }
.ia-pf .pf-ulevel { color: var(--ia-gold-soft); }
.ia-pf .pf-avatar { background: var(--ia-cream); color: var(--ia-gold-dark); font-family: var(--ia-font-serif); font-weight: 400; }
.ia-pf .pf-topbar { background: rgba(255, 255, 255, .94); height: 70px; }
.ia-pf .pf-topbar-title { font: 400 20px var(--ia-font-serif); }
.ia-pf .pf-topbar-sub { color: var(--ia-gold-dark); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; font-weight: 700; }
.ia-pf .niv-sel, .ia-pf .pf-search { border-radius: var(--ia-radius-sm); background: #fafbf9; border-color: #e1e5df; }
.ia-pf .pf-search:focus-within { border-color: var(--ia-gold-soft); box-shadow: 0 0 0 3px rgba(180, 134, 66, .15); }
.ia-pf .pf-home-link { font-size: 12px; font-weight: 700; color: var(--ia-blue); white-space: nowrap; border-bottom: 1px solid var(--ia-gold-soft); padding-bottom: 3px; }
.ia-pf .pf-stat { border-radius: var(--ia-radius-md); position: relative; overflow: hidden; }
.ia-pf .pf-stat::before { content: ''; position: absolute; top: 0; left: 18px; width: 30px; height: 3px; background: var(--ia-gold); border-radius: 0 0 4px 4px; }
.ia-pf .pf-stat-ico { border-radius: 50%; }
.ia-pf .ico-blue, .ia-pf .ico-green, .ia-pf .ico-gold, .ia-pf .ico-purple { background: var(--ia-cream); color: var(--ia-gold-dark); }
.ia-pf .pf-stat-val { font: 400 24px var(--ia-font-serif); color: var(--ia-blue); }
.ia-pf .pf-stat-lbl { text-transform: uppercase; letter-spacing: .08em; font-size: 10px; font-weight: 700; color: var(--ia-subtle); }
.ia-pf .pf-ia-block { position: relative; overflow: hidden; background: var(--ia-blue-deep); border-radius: var(--ia-radius-lg); padding: 28px; margin-bottom: 28px; color: var(--ia-white); }
.ia-pf .pf-ia-block::before { content: ''; position: absolute; inset: 0; width: auto; height: auto; border-radius: 0; background: url('/images/ia/zaytouna-portique-sm.jpg') center 45% / cover; opacity: .16; }
.ia-pf .pf-ia-block > * { position: relative; }
.ia-pf .pf-ia-badge { display: inline-block; margin-bottom: 10px; padding: 4px 10px; border-radius: 30px; background: rgba(201, 181, 143, .18); color: var(--ia-gold-soft); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.ia-pf .ia-title { font: 400 24px/1.35 var(--ia-font-serif); margin-bottom: 4px; }
.ia-pf .pf-ia-sub { font-size: 13px; opacity: .8; margin-bottom: 18px; }
.ia-pf .ia-mode { background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); border-radius: var(--ia-radius); }
.ia-pf .ia-mode:hover { background: rgba(255, 255, 255, .14); border-color: var(--ia-gold-soft); }
.ia-pf .ia-mode i { color: var(--ia-gold-soft); }
.ia-pf .sec-title { font: 400 20px var(--ia-font-serif); }
.ia-pf .sec-count { color: var(--ia-gold-dark); }
.ia-pf .mat-card { border: 1px solid var(--ia-line); border-radius: var(--ia-radius-md); }
.ia-pf .mat-card:hover { border-color: var(--ia-gold-soft); box-shadow: var(--ia-shadow-lift); }
.ia-pf .mat-ico { background: var(--ia-cream) !important; color: var(--ia-gold-dark); border-radius: 50%; font: 400 24px var(--ia-font-serif); }
.ia-pf .mat-name { font-size: 13px; font-weight: 700; }
.ia-pf .mat-hero { border-radius: var(--ia-radius-lg); }
.ia-pf .mat-hero h2 { font: 400 24px var(--ia-font-serif); }
.ia-pf .mat-hero-ico { background: var(--ia-cream) !important; color: var(--ia-gold-dark); border-radius: 50%; font-family: var(--ia-font-serif); }
.ia-pf .back-btn { border-radius: var(--ia-radius-sm); }
.ia-pf .back-btn:hover { background: var(--ia-tint); }
.ia-pf .act-cours { background: var(--ia-tint); color: var(--ia-blue); border-color: #d3e1e7; }
.ia-pf .act-exo { background: var(--ia-success-bg); color: var(--ia-success); border-color: #cfe4d7; }
.ia-pf .act-ia { background: var(--ia-cream); color: var(--ia-gold-dark); border-color: #e3d6bf; }
.ia-pf .theme-head { border-radius: var(--ia-radius); }
.ia-pf .theme-head.open { border-radius: var(--ia-radius) var(--ia-radius) 0 0; }
.ia-pf .theme-head:hover { background: var(--ia-paper); border-color: var(--ia-gold-soft); }
.ia-pf .theme-num { color: var(--ia-gold-dark); }
.ia-pf .theme-name { font-weight: 700; }
.ia-pf .theme-body { border-radius: 0 0 var(--ia-radius) var(--ia-radius); }
.ia-pf .chap-row:hover { background: var(--ia-paper); }
.ia-pf .modal-overlay, .ia-pf .paywall { background: rgba(8, 37, 58, .62); }
.ia-pf .modal, .ia-pf .paywall-card { border-radius: var(--ia-radius-lg); }
.ia-pf .modal-head h2, .ia-pf .paywall-card h2 { font: 400 21px var(--ia-font-serif); }
.ia-pf .form-grp label { color: #6b7770; font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.ia-pf .form-grp input, .ia-pf .form-grp select, .ia-pf .form-grp textarea { border: 1px solid #e1e5df; border-radius: var(--ia-radius-sm); background: #fafbf9; min-height: 42px; }
.ia-pf .form-grp input:focus, .ia-pf .form-grp select:focus { border-color: var(--ia-gold-soft); box-shadow: 0 0 0 3px rgba(180, 134, 66, .15); }
.ia-pf .btn-primary { background: var(--ia-blue); border-radius: var(--ia-radius); font-weight: 700; }
.ia-pf .btn-primary:hover { background: var(--ia-blue-hover); transform: none; }
.ia-pf .btn-secondary { border-radius: var(--ia-radius); background: var(--ia-white); border: 1px solid #adc2ca; color: var(--ia-blue); }
.ia-pf .paywall-btn { background: var(--ia-blue); border-radius: var(--ia-radius); }
.ia-pf .paywall-btn:hover { background: var(--ia-blue-hover); box-shadow: none; transform: none; }
.ia-pf .pf-ia-card { background: var(--ia-paper); border: 1px solid var(--ia-line); border-radius: var(--ia-radius); padding: 18px; margin-bottom: 10px; }
.ia-pf .pf-ia-card h3 { font: 400 17px var(--ia-font-serif); margin-bottom: 7px; color: var(--ia-blue); }
.ia-pf .pf-ia-card h4 { font-size: 13px; font-weight: 700; margin-bottom: 5px; }
.ia-pf .pf-ia-card p { font-size: 13px; line-height: 1.75; color: var(--ia-muted); }
.ia-pf .ex-box { background: var(--ia-tint); border-left-color: var(--ia-blue); }
.ia-pf .ast-box, .ia-pf .indice { background: var(--ia-warning-bg); border-color: #f0dfbd; }
.ia-pf .spinner { border-color: var(--ia-cream); border-top-color: var(--ia-gold); }
.ia-pf .exam-head { background: var(--ia-blue-deep); }
.ia-pf .exam-bareme { background: var(--ia-gold); }
.ia-pf .exo-pts { background: var(--ia-cream); color: var(--ia-gold-dark); }
.ia-pf .qchoice:hover { border-color: var(--ia-blue); background: var(--ia-tint); }
.ia-pf .diff-btn.moyen { color: var(--ia-warning); }
.ia-pf :focus-visible { outline: 2px solid var(--ia-gold); outline-offset: 2px; }

/* ---------- 11. Responsive ----------------------------------------- */
@media (max-width: 900px) {
  .ia-theme .rows__ { grid-template-columns: 1fr !important; }
  .ia-theme .rows__ .row__01 { min-height: 0 !important; max-height: 340px !important; }
  .ia-theme .h3.chat_choose { min-height: 220px; }
}
@media (max-width: 760px) {
  .ia-theme .ia-espace-head { padding: 26px 0 22px; }
  .ia-theme .ia-espace-head--dash { padding: 38px 0 34px; }
  .ia-theme main .data_tables .holder_ { padding: 24px var(--ia-gutter) 56px !important; }
  .ia-theme main .board .b_table { padding: 22px 0 56px !important; }
  .ia-theme main .board .b_table .hold .list { grid-template-columns: 1fr !important; }
  .ia-theme main .board .b_table .hold .list a, .ia-theme main .board .b_table .hold .list a:nth-child(n) { padding: 14px 16px !important; min-height: 0; }
  .ia-theme main .board .b_table .hold .list a .data .p-title { font-size: 15px !important; }
  .ia-theme main .user_info form { margin: 22px var(--ia-gutter) 56px !important; padding: 20px 18px; }
  .ia-theme main .user_info form .rows_ { grid-template-columns: 1fr !important; }
  .ia-theme main .data_tables .holder_ .title__ .h3 { font-size: 19px !important; }
  .ia-theme .rows__ .row__02 .messages { padding: 14px !important; height: 380px !important; }
  .ia-theme .ia-contact-prof form { padding: 20px 18px; }
  .ia-theme .fiche-rappel-banner { flex-wrap: wrap; }
  /* Grille 4 stats en ligne de mes-eleves.php */
  .ia-theme main.ia-espace div[style*="grid-template-columns:repeat(4"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .ia-pf .pf-topbar { height: auto; min-height: 60px; flex-wrap: wrap; padding: 10px 14px; }
  .ia-pf .pf-topbar-right { flex-wrap: wrap; width: 100%; }
  .ia-pf .pf-search { flex: 1; }
  .ia-pf .pf-search input { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .ia-theme .rp-new-badge { animation: none !important; }
}

/* Compléments plateforme : pas de halo violet, pictogramme par défaut des matières */
.ia-pf .pf-ia-block::after { display: none; }
.ia-pf .mat-ico, .ia-pf .mat-hero-ico { font-size: 0 !important; }
.ia-pf .mat-ico::before, .ia-pf .mat-hero-ico::before { content: '✦'; color: var(--ia-gold); font-size: 20px; }
@media (max-width: 760px) {
  .ia-theme main .board .b_table .hold .list a, .ia-theme main .board .b_table .hold .list a:nth-child(n) { flex-direction: row !important; text-align: left !important; }
  .ia-theme main .board .b_table .hold .list a .icon { margin: 0 !important; }
  .ia-theme main .board .b_table .hold .list a .data { text-align: left !important; }
}
.ia-pf .pf-menu-btn { color: var(--ia-blue); border-color: var(--ia-line); }

/* Fiche cours de la plateforme : programme, chapitres, pièces jointes */
.ia-theme main .cour_p .cour_data { padding: 34px 0 80px !important; }
.ia-theme main .cour_p .cour_data .hold .detail table thead th.th2::before { display: none !important; }
.ia-theme main .cour_p .cour_data .hold .detail table thead th { border-radius: 0 !important; text-align: left !important; }
.ia-theme main .cour_p .cour_data .hold .detail table { border: 1px solid var(--ia-line); border-radius: var(--ia-radius); border-collapse: separate; border-spacing: 0; overflow: hidden; }
.ia-theme main .cour_p .cour_data .hold .detail a.file { color: var(--ia-blue) !important; border-bottom: 1px solid var(--ia-gold-soft); font-weight: 700; }
.ia-theme main .list_chapitres { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important; gap: 12px !important; }
.ia-theme main .list_chapitres .h4 { grid-column: 1 / -1 !important; font: 400 19px var(--ia-font-serif) !important; color: var(--ia-ink) !important; }
.ia-theme main .list_chapitres .h4 span { color: var(--ia-gold-dark) !important; font: 700 10px var(--ia-font-sans) !important; letter-spacing: .1em; text-transform: uppercase; }
.ia-theme main .list_chapitres .column { border: 1px solid var(--ia-line); border-radius: var(--ia-radius-md) !important; box-shadow: none !important; background: var(--ia-white) !important; }
.ia-theme main .list_chapitres .column:hover { border-color: var(--ia-gold-soft); box-shadow: var(--ia-shadow-sm) !important; background: var(--ia-white) !important; }
.ia-theme main .list_chapitres .column .head { background: var(--ia-paper) !important; color: var(--ia-ink) !important; font: 700 13px/1.4 var(--ia-font-sans) !important; text-transform: none !important; text-align: left !important; padding: 16px !important; border-left: 3px solid var(--ia-gold); }
.ia-theme main .list_chapitres .column:hover p { color: var(--ia-muted) !important; }
.ia-theme .detail.det-3 .chap .go_back_ch { background: var(--ia-white) !important; color: var(--ia-blue) !important; border: 1px solid #adc2ca !important; border-radius: var(--ia-radius) !important; font-size: 12px !important; font-weight: 700; }
.ia-theme .detail.det-3 .chap .go_back_ch:hover { background: var(--ia-blue) !important; color: var(--ia-white) !important; }
.ia-theme .detail.det-3 .chap .ex { background: var(--ia-blue) !important; border-radius: var(--ia-radius) !important; box-shadow: none !important; }
.ia-theme .detail.det-3 .chap .ex:hover { background: var(--ia-blue-hover) !important; }
.ia-theme .list_days .day_column { border-radius: var(--ia-radius) !important; border-color: var(--ia-line) !important; }
.ia-theme .list_days .day_column button { background: var(--ia-blue) !important; border-radius: var(--ia-radius-sm) !important; }
.ia-theme .list_days .day_column button.disabled { background: var(--ia-line-soft) !important; color: var(--ia-muted) !important; }

/* ---------- 20. Cours du jour (tableau de bord) & inscription adulte - */
.ia-today { margin: 0 0 22px; background: var(--ia-white); border: 1px solid var(--ia-line); border-left: 3px solid var(--ia-gold); border-radius: var(--ia-radius-md); padding: 18px 20px; box-shadow: var(--ia-shadow-sm); }
.ia-today__head { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }
.ia-today__head strong { font: 400 20px/1.3 var(--ia-font-serif); color: var(--ia-ink); }
.ia-today__item { display: flex; align-items: center; gap: 16px; padding: 12px 0; border-top: 1px solid var(--ia-line-soft); }
.ia-today__item:first-of-type { border-top: 0; }
.ia-today__time { width: 64px; flex: none; text-align: center; padding: 8px 0; border: 1px solid #d8c3a4; border-radius: var(--ia-radius); background: var(--ia-paper); }
.ia-today__time b { display: block; font-size: 15px; color: var(--ia-blue); }
.ia-today__time span { font-size: 11px; color: var(--ia-muted); }
.ia-today__body { flex: 1; min-width: 0; }
.ia-today__body strong { display: block; font-size: 15px; color: var(--ia-ink); }
.ia-today__body span { font-size: 12px; color: var(--ia-muted); }
.ia-today__live { font-style: normal; font-weight: 700; color: var(--ia-success); }
.ia-today__item.is-live .ia-today__time { border-color: var(--ia-gold); background: var(--ia-cream); }
.ia-guest-pour { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 0 0 12px; padding: 10px 12px; background: var(--ia-ivory); border: 1px solid var(--ia-line); border-radius: var(--ia-radius); font-size: 13px; }
.ia-guest-pour span { font-weight: 700; color: var(--ia-ink); }
.ia-guest-pour label { display: inline-flex; align-items: center; gap: 6px; margin: 0; cursor: pointer; }
.ia-guest-pour input { accent-color: var(--ia-blue); }
@media (max-width: 760px) {
  .ia-today__item { flex-wrap: wrap; }
  .ia-today__item .ia-btn { width: 100%; }
}

/* Revue : bandeau d'aperçu (brouillon, programmé, version non enregistrée) — visible par l'équipe seulement */
.ia-preview-banner { background: var(--ia-warning-bg); color: var(--ia-warning); border-bottom: 1px solid #ecd9b0; padding: 10px var(--ia-gutter, 16px); text-align: center; font-size: var(--ia-fs-sm); }
