/* ============================================================
   GENIOS ACADEMY — Design system site public (mockups) — v2
   Base CSS partagée par accueil.html / liste-cours.html /
   detail-cours.html / mon-compte.html / connexion-login.html
   Charte officielle client, palette éclaircie (08/2026) :
   bleu turquoise #55D0DE (primaire), jaune #FFC942 (secondaire),
   blanc, noir texte #56666F. Tokens prefixés --sd-* (mêmes noms
   que la v1 pour que les pages fonctionnent ; valeurs = charte).
   ============================================================ */
:root{
  /* Charte officielle — palette éclaircie (ajustement client 08/2026) */
  --sd-teal:#55D0DE;        /* bleu turquoise primaire éclairci : CTA, liens, accents, focus */
  --sd-teal-mid:#3BB6C7;    /* dérivé moyen du bleu : hover, dégradés */
  --sd-teal-strong:#137E90; /* dérivé foncé du bleu (AA 4,8:1 sur blanc, ≈4,6:1 sur #F0FBFD) : texte, liens */
  --sd-teal-soft:#F0FBFD;   /* dérivé clair du bleu, lumineux : fonds d'encarts */

  --sd-gold:#FFC942;        /* jaune secondaire éclairci : gratuité, badges, éléments chaleureux */
  --sd-gold-strong:#F2B52E; /* dérivé foncé du jaune : hover */
  --sd-gold-deep:#8A6304;   /* dérivé foncé du jaune (AA ≈5,1:1 sur #FFF8E0) : texte sur jaune */
  --sd-gold-soft:#FFF8E0;   /* dérivé clair du jaune, lumineux : fonds/badges */

  --sd-ink:#56666F;  /* noir texte charte éclairci (AA ≈6:1 sur blanc, ≈5,7:1 sur #F0FBFD) */
  --sd-ink-2:#56666F;/* idem (sous-titres, libellés) */
  --sd-text:#56666F; /* idem (corps de texte) */
  --sd-muted:#68757A;/* gris neutre dérivé du noir charte (métadonnées) — assombri v36 : AA ≈4,7:1 sur blanc */

  --sd-border:#D3E8EB;      /* dérivé clair du bleu : bordures standard */
  --sd-border-strong:#BCD9DD; /* bordures hover/fortes, inputs focus */
  --sd-surface:#F7FCFD;     /* dérivé très clair du bleu : fonds de sections */
  --sd-surface-2:#EFF7F9;   /* zones imbriquées, pastilles */
  --sd-white:#FFFFFF;

  /* Exceptions indispensables documentées (README-V2.md) */
  --sd-success:#1F9D63; --sd-success-soft:#E3F5EC; /* vert toléré : validation/succès */
  --sd-danger:#E5484D;  --sd-danger-soft:#FCEBEC;  /* rouge conservé : erreurs (accessibilité) */
  --sd-warning:#8A6304; --sd-warning-soft:#FFF8E0; /* jaune foncé AA : statut "en attente" */

  --sd-navy:#137E90; /* dérivé foncé du bleu éclairci (texte blanc AA 4,8:1) : topbar, heroes */

  --sd-grad-gold:linear-gradient(135deg,#FFD66B 0%,#FFC942 55%,#F2B52E 100%);
  --sd-grad-teal:linear-gradient(135deg,#55D0DE 0%,#17808F 100%); /* moitié basse : blanc AA */
  --sd-grad-header:linear-gradient(135deg,#17808F 0%,#137E90 100%);

  --sd-shadow-sm:0 1px 2px rgba(19,126,144,.05);
  --sd-shadow-md:0 8px 24px -6px rgba(19,126,144,.12);
  --sd-shadow-lg:0 22px 48px -10px rgba(19,126,144,.22);
  --sd-shadow-gold:0 10px 24px -6px rgba(242,181,46,.4);
  --sd-shadow-teal:0 10px 24px -6px rgba(19,126,144,.35);
  --sd-focus:0 0 0 4px rgba(85,208,222,.22);
  --sd-focus-gold:0 0 0 4px rgba(255,201,66,.3);

  --sd-radius-s:10px; --sd-radius-m:14px; --sd-radius-l:20px; --sd-radius-pill:999px;
  --sd-ff:"Rubik",-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --sd-ff-display:"Fredoka One","Rubik",-apple-system,sans-serif;
  --sd-space-1:4px; --sd-space-2:8px; --sd-space-3:12px; --sd-space-4:16px;
  --sd-space-5:20px; --sd-space-6:24px; --sd-space-8:32px; --sd-space-10:40px; --sd-space-12:48px;
}
*{box-sizing:border-box}
/* Règles globales SCOPÉES sous .sd-page pour cohabiter avec les pages legacy
   (le site intègre le v2 progressivement ; header/footer legacy conservés en phase 1). */
.sd-page{font-family:var(--sd-ff);font-size:15px;line-height:1.55;color:var(--sd-text);background:var(--sd-white);-webkit-font-smoothing:antialiased;padding-bottom:64px}
.sd-page h1,.sd-page h2,.sd-page h3,.sd-page h4,.sd-page h5{margin:0 0 .4em;font-weight:700;color:var(--sd-ink);line-height:1.2}
.sd-page a:not(.sd-btn){color:var(--sd-teal-strong);text-decoration:none}
.sd-page a:not(.sd-btn):hover{color:var(--sd-ink)}
.sd-display{font-family:var(--sd-ff-display);font-weight:400;color:var(--sd-ink)}
.sd-a11y-skip{position:absolute;left:-9999px;top:0;background:var(--sd-ink);color:#fff;padding:10px 16px;border-radius:0 0 8px 0;z-index:3000}
.sd-a11y-skip:focus{left:0}

/* ============ Header ============ */
.sd-header{background:var(--sd-white);box-shadow:0 2px 14px -6px rgba(19,126,144,.18);position:sticky;top:0;z-index:500}
.sd-topbar{background:var(--sd-navy);color:#fff;font-size:12.5px;line-height:1}
.sd-topbar .sd-container{display:flex;justify-content:space-between;align-items:center;padding:8px 0;gap:12px;flex-wrap:wrap}
.sd-topbar a{color:#fff}
.sd-topbar a:hover{color:#fff;text-decoration:underline}
.sd-topbar i{margin-inline-end:5px;color:var(--sd-gold)}
.sd-topbar__right{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.sd-lang{display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,.12);border-radius:var(--sd-radius-pill);padding:4px 10px;font-weight:500}
.sd-lang img{width:18px;height:13px;border-radius:3px;object-fit:cover}
.sd-mainbar{position:relative}
.sd-container{max-width:1200px;margin:0 auto;padding-left:20px;padding-right:20px}
.sd-mainbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px 0}
/* Logo officiel (webroot/images/logo-sticky.png — fichier ORIGINAL, retour client 08/2026) :
   66px de haut (132px de large, ratio 2:1), posé DIRECTEMENT sur la mainbar blanche —
   aucun cadre ni bandeau autour (décision client : intégrer le logo tel qu'il est). */
.sd-logo{display:flex;align-items:center}
.sd-logo__img{display:block;height:66px;width:auto}
.sd-nav{display:flex;align-items:center;gap:4px;list-style:none;margin:0}
.sd-nav a{display:block;padding:10px 14px;font-size:14.5px;font-weight:500;color:var(--sd-ink-2);border-radius:10px;transition:background .15s,color .15s}
.sd-nav a:hover{color:var(--sd-teal-strong);background:var(--sd-teal-soft)}
.sd-nav a.is-active{color:var(--sd-teal-strong);font-weight:600}
.sd-header__actions{display:flex;align-items:center;gap:10px}
.sd-header__burger{display:none}

/* ============ Boutons ============ */
.sd-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--sd-ff);font-size:15px;font-weight:600;line-height:1;border-radius:var(--sd-radius-pill);min-height:52px;padding:0 26px;cursor:pointer;border:none;text-decoration:none;transition:all .16s ease;text-align:center}
/* Primaire = BLEU (paiement, engagement) */
.sd-btn--primary{background:var(--sd-grad-teal);color:#fff;box-shadow:var(--sd-shadow-teal)}
.sd-btn--primary:hover{color:#fff;transform:translateY(-1px);box-shadow:0 14px 30px -8px rgba(19,126,144,.5)}
.sd-btn--primary:focus-visible{outline:none;box-shadow:var(--sd-focus)}
/* Secondaire = JAUNE (gratuit, chaleureux) */
.sd-btn--secondary{background:var(--sd-gold);color:var(--sd-ink);font-weight:700;box-shadow:var(--sd-shadow-gold)}
.sd-btn--secondary:hover{background:var(--sd-gold-strong);color:var(--sd-ink);transform:translateY(-1px);box-shadow:0 14px 30px -8px rgba(242,181,46,.5)}
.sd-btn--secondary:focus-visible{outline:none;box-shadow:var(--sd-focus-gold)}
.sd-btn--ghost{background:var(--sd-surface-2);color:var(--sd-ink-2)}
.sd-btn--ghost:hover{background:var(--sd-border);color:var(--sd-ink)}
.sd-btn--ghost:focus-visible{outline:none;box-shadow:var(--sd-focus)}
/* Outline teal = secondaire non-gratuit (liste d'attente, actions secondaires) */
.sd-btn--outline{background:transparent;border:1.5px solid var(--sd-teal);color:var(--sd-teal)}
.sd-btn--outline:hover{background:var(--sd-teal-soft);color:var(--sd-teal-strong);border-color:var(--sd-teal-strong)}
.sd-btn--outline:focus-visible{outline:none;box-shadow:var(--sd-focus)}
/* Teal plein = bleu d'information / confirmation (Voir la séance) */
.sd-btn--teal{background:var(--sd-grad-teal);color:#fff}
.sd-btn--teal:hover{background:var(--sd-teal-mid);color:#fff}
.sd-btn--teal:focus-visible{outline:none;box-shadow:var(--sd-focus)}
.sd-btn--block{width:100%}
.sd-btn--sm{min-height:40px;padding:0 16px;font-size:13.5px}
.sd-btn[disabled]{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}
.sd-btn.is-loading{pointer-events:none}
.sd-btn__spinner{display:none;width:16px;height:16px;border:2px solid rgba(86,102,111,.3);border-top-color:var(--sd-ink);border-radius:50%;animation:sdSpin .7s linear infinite}
.sd-btn--primary .sd-btn__spinner,.sd-btn--teal .sd-btn__spinner{border-color:rgba(255,255,255,.4);border-top-color:#fff}
.sd-btn.is-loading .sd-btn__spinner{display:inline-block}
@keyframes sdSpin{to{transform:rotate(360deg)}}

/* ============ Hero accueil ============ */
.sd-hero{position:relative;overflow:hidden;background:linear-gradient(rgba(19,126,144,.84),rgba(19,126,144,.9)),radial-gradient(120% 150% at 85% -20%,rgba(255,201,66,.3),transparent 45%),var(--sd-grad-header);background-size:cover;background-position:center;color:#EAF6F8}
/* variante avec photo de banniere (ancien design) sous filtre teal */
.sd-hero--photo{background-image:linear-gradient(rgba(19,126,144,.84),rgba(19,126,144,.9)),url('../../images/1_.png');background-size:cover;background-position:center}
.sd-hero .sd-container{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:32px;align-items:center;padding-top:60px;padding-bottom:64px}
.sd-hero__deco{position:absolute;font-size:70px;opacity:.18;color:var(--sd-gold);pointer-events:none}
.sd-hero__eyebrow{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);border-radius:var(--sd-radius-pill);padding:7px 16px;font-size:12px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:#FFF8E0;margin-bottom:20px}
.sd-hero h1{font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.08;color:#fff;margin-bottom:16px}
.sd-hero h1 em{font-style:normal;color:var(--sd-gold)}
.sd-hero__lead{font-size:17px;line-height:1.6;color:#E2F1F4;max-width:540px;margin-bottom:26px}
.sd-hero__ctas{display:flex;gap:12px;flex-wrap:wrap}
.sd-hero__trust{display:flex;gap:24px;flex-wrap:wrap;margin-top:34px;align-items:center}
.sd-hero__trust span{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:#EAF6F8}
.sd-hero__trust i{color:var(--sd-gold);font-size:16px}
.sd-hero__art{position:relative}
.sd-hero__card{background:var(--sd-white);border-radius:var(--sd-radius-l);padding:24px;box-shadow:var(--sd-shadow-lg);max-width:340px;margin-inline-start:auto}
.sd-hero__card-head{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:14px}
.sd-hero__card-title{font-size:18px;font-weight:700;color:var(--sd-ink);margin:0;width:100%;line-height:1.35}
.sd-hero__card-badge{font-size:10.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--sd-teal-strong);background:var(--sd-teal-soft);border-radius:var(--sd-radius-pill);padding:4px 10px}
.sd-hero__meta{display:flex;flex-direction:column;gap:8px;font-size:13.5px;color:var(--sd-text);margin-bottom:16px}
.sd-hero__meta span{display:flex;align-items:center;gap:9px}
.sd-hero__meta i{color:var(--sd-teal);width:16px;text-align:center}
.sd-hero__price{display:flex;flex-direction:column;align-items:flex-start;gap:10px;border-top:1px dashed var(--sd-border);padding-top:14px}
.sd-hero__amount{font-size:26px;font-weight:800;color:var(--sd-ink);font-variant-numeric:tabular-nums}
/* Chip gratuité = JAUNE (v1 : teal) */
.sd-hero__free{display:flex;gap:7px;align-items:center;font-size:13px;font-weight:700;color:var(--sd-gold-deep);background:var(--sd-gold-soft);border:1px solid rgba(255,201,66,.45);border-radius:var(--sd-radius-pill);padding:6px 12px}
.sd-hero__free i{color:var(--sd-gold)}

/* ============ Sections ============ */
.sd-section{padding-top:64px;padding-bottom:64px}
.sd-section--alt{background:var(--sd-surface)}
.sd-section--navy{background:var(--sd-navy);color:#E2F1F4}
.sd-section--navy .sd-sec-kicker,.sd-section--navy h2{color:#fff}
.sd-sec-head{max-width:640px;margin-bottom:36px}
.sd-sec-head--center{margin-inline:auto;text-align:center}
.sd-sec-kicker{display:block;font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--sd-teal-strong);margin-bottom:10px}
.sd-sec-head h2{font-size:clamp(1.6rem,3vw,2.4rem);font-family:var(--sd-ff-display);font-weight:400;margin:0 0 12px}
.sd-sec-head p{font-size:15.5px;line-height:1.6;margin:0}

/* ============ Cartes ============ */
.sd-grid{display:grid;gap:24px}
.sd-grid--3{grid-template-columns:repeat(3,1fr)}
.sd-grid--2{grid-template-columns:repeat(2,1fr)}
.sd-grid--4{grid-template-columns:repeat(4,1fr)}
.sd-card{background:var(--sd-white);border:1px solid var(--sd-border);border-radius:var(--sd-radius-l);box-shadow:var(--sd-shadow-sm);overflow:hidden;transition:transform .16s ease,box-shadow .16s ease}
.sd-card:hover{transform:translateY(-3px);box-shadow:var(--sd-shadow-md)}
.sd-card__img{height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;font-size:52px;color:rgba(255,255,255,.9);position:relative}
.sd-card__badge{position:absolute;top:14px;left:14px;z-index:2}
.sd-card__statut{position:absolute;top:14px;right:14px;z-index:2}
.sd-card__body{padding:20px}
.sd-card__kicker{font-size:12px;font-weight:600;color:var(--sd-muted);letter-spacing:.4px;text-transform:uppercase}
/* Variante dans le cadre coloré de la carte (image/icône) : icône + texte
   forment un seul groupe centré verticalement dans .sd-card__img (flex
   column ci-dessus) plutôt qu'une icône centrée seule + texte plaqué en bas. */
.sd-card__kicker--onimg{
  margin:0;padding:0 16px;text-align:center;
  color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.35);
}
.sd-grid--3 .sd-card__kicker--onimg{font-size:11px}
@media (min-width:768px) and (max-width:991px){
  .sd-grid--3 .sd-card__kicker--onimg{font-size:12px}
}
/* Respiration dédiée entre le bas du cadre coloré et le titre : le kicker
   n'étant plus la 1ère ligne du body pour donner cet espace, on l'ajoute ici. */
.sd-card--accent .sd-card__body{padding-top:24px}
.sd-grid--3 .sd-card--accent .sd-card__body{padding-top:22px}
.sd-card__title{font-size:19px;font-weight:700;color:var(--sd-ink);margin:4px 0 10px}
.sd-card__meta{display:flex;flex-direction:column;gap:7px;font-size:13.5px;color:var(--sd-text);margin-bottom:16px}
.sd-card__meta span{display:flex;align-items:center;gap:9px}
.sd-card__meta i{width:15px;text-align:center;color:var(--sd-teal-strong)}
.sd-card__price{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px dashed var(--sd-border);padding-top:14px;margin-bottom:14px}
.sd-card__amount{font-size:21px;font-weight:800;color:var(--sd-ink);font-variant-numeric:tabular-nums}
/* Badge devise = BLEU (confiance) — v1 : jaune */
.sd-card__dev{font-size:11px;font-weight:700;color:#fff;background:linear-gradient(135deg,#55D0DE,#137E90);border:1px solid transparent;border-radius:8px;padding:3px 9px}
.sd-card__actions{display:flex;gap:10px;flex-wrap:wrap}
.sd-card__actions .sd-btn{flex:1 1 auto;min-width:130px}

/* ============ Badges de statut ============ */
.sd-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;border-radius:var(--sd-radius-pill);padding:5px 12px;line-height:1}
.sd-badge i{font-size:9px}
.sd-badge--success{color:var(--sd-success);background:var(--sd-success-soft)}
.sd-badge--success i{color:var(--sd-success)}
.sd-badge--pending{color:var(--sd-warning);background:var(--sd-warning-soft)}
.sd-badge--pending i{color:var(--sd-gold)}
.sd-badge--teal{color:var(--sd-teal-strong);background:var(--sd-teal-soft)}
.sd-badge--teal i{color:var(--sd-teal-strong)}
.sd-badge--danger{color:var(--sd-danger);background:var(--sd-danger-soft)}
.sd-badge--danger i{color:var(--sd-danger)}
.sd-badge--gold{color:var(--sd-gold-deep);background:var(--sd-gold-soft)}
.sd-badge--gold i{color:var(--sd-gold)}
.sd-badge--neutral{color:var(--sd-muted);background:var(--sd-surface-2)}

/* ============ Hero intérieur (page-title) ============ */
.sd-page-hero{background:radial-gradient(100% 180% at 0% 0%,rgba(255,201,66,.24),transparent 40%),var(--sd-grad-header);color:#fff;padding:44px 0 46px}
.sd-page-hero h1{font-family:var(--sd-ff-display);font-weight:400;font-size:clamp(1.9rem,3.4vw,2.7rem);color:#fff;margin:10px 0 0}
.sd-page-hero .sd-lead{color:#E2F1F4;margin:10px 0 0}
.sd-crumb{font-size:13px;color:#DDF1F4}
.sd-page .sd-crumb a{color:#fff;font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:rgba(255,255,255,.55)}
.sd-page .sd-crumb a:hover{color:#fff;text-decoration-color:#fff}
.sd-crumb i{font-size:10px;margin:0 8px;color:#9FCBD4}
.sd-crumb span{color:#DDF1F4}

/* ============ Bloc tarif / sidebar ============ */
.sd-pricebox{background:var(--sd-white);border:1px solid var(--sd-border);border-radius:var(--sd-radius-l);padding:24px;box-shadow:var(--sd-shadow-sm)}
.sd-pricebox__label{font-size:13px;font-weight:600;color:var(--sd-ink-2);margin-bottom:8px;letter-spacing:.4px;text-transform:uppercase}
.sd-pricebox__amount{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.sd-pricebox__value{font-size:32px;font-weight:800;color:var(--sd-ink);font-variant-numeric:tabular-nums;line-height:1.1}
.sd-pricebox__note{font-size:12.5px;color:var(--sd-muted);margin-bottom:16px}
.sd-pricebox__cta{margin-bottom:14px}
.sd-secure{display:flex;align-items:center;gap:10px;background:var(--sd-teal-soft);border:1px solid rgba(85,208,222,.45);border-radius:12px;padding:12px 14px;font-size:13px;color:var(--sd-ink-2);font-weight:600}
.sd-secure i{color:var(--sd-teal-strong);font-size:15px}
.sd-secure small{font-weight:500;color:var(--sd-text)}
.sd-list-title{font-size:15px;font-weight:700;color:var(--sd-ink);margin:22px 0 10px}
.sd-kv{list-style:none;margin:0;padding:0;border-top:1px solid var(--sd-border)}
.sd-kv li{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--sd-border);font-size:13.5px}
.sd-kv .sd-kv__k{display:flex;align-items:center;gap:9px;color:var(--sd-muted);font-weight:500}
.sd-kv .sd-kv__k i{color:var(--sd-teal);width:14px;text-align:center}
.sd-kv .sd-kv__v{color:var(--sd-ink);font-weight:600;text-align:right}
.sd-jours{border-radius:var(--sd-radius-l);background:var(--sd-surface);border:1px solid var(--sd-border);padding:18px}
.sd-jours .sd-list-title{margin-top:0}
.sd-jours ul{list-style:none;margin:0;padding:0}
.sd-jours li{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--sd-ink-2);padding:6px 0}
.sd-jours li i{color:var(--sd-teal);width:16px;text-align:center}

/* ============ Formulaire ============ */
.sd-form{background:var(--sd-white);border:1px solid var(--sd-border);border-radius:var(--sd-radius-l);box-shadow:var(--sd-shadow-sm)}
.sd-form__head{border-bottom:1px solid rgba(255,255,255,.25);padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:linear-gradient(135deg,#55D0DE 0%,#137E90 100%);border-radius:calc(var(--sd-radius-l) - 1px) calc(var(--sd-radius-l) - 1px) 0 0}
.sd-form__head h3{font-size:18px;margin:0;color:#fff;font-weight:700}
.sd-form__head .sd-card__dev{color:var(--sd-teal-strong);background:#fff;border-color:#fff}
.sd-form__body{padding:24px}
.sd-field{margin-bottom:16px}
.sd-label{display:block;font-size:13px;font-weight:600;color:var(--sd-ink-2);letter-spacing:.3px;margin-bottom:7px}
.sd-req{color:var(--sd-danger)}
.sd-input{position:relative;display:flex;align-items:center;height:52px;border:1.5px solid var(--sd-border);border-radius:var(--sd-radius-m);background:var(--sd-white);box-shadow:var(--sd-shadow-sm);transition:border-color .16s,box-shadow .16s}
.sd-input:focus-within{border-color:var(--sd-teal);box-shadow:var(--sd-focus)}
.sd-input__icon{flex:0 0 auto;width:48px;display:flex;justify-content:center;color:var(--sd-muted);font-size:14px}
.sd-input:focus-within .sd-input__icon{color:var(--sd-teal-strong)}
.sd-input__control{flex:1;min-width:0;border:none;outline:none;background:transparent;font-family:var(--sd-ff);font-size:15px;color:var(--sd-ink);height:100%;padding:0 14px 0 0}
.sd-input__control::placeholder{color:#9FB8BD}
.sd-feedback{min-height:20px;font-size:12.5px;line-height:20px;display:flex;align-items:flex-start;gap:6px;margin-top:5px;color:var(--sd-danger)}
.sd-feedback i{font-size:13px;margin-top:3px}
.sd-hint{font-size:12.5px;color:var(--sd-muted);margin:6px 0 0;display:flex;gap:7px;align-items:flex-start;line-height:18px}
.sd-hint i{color:var(--sd-teal);margin-top:2px}

/* ============ Alertes ============ */
.sd-alert{display:flex;align-items:flex-start;gap:12px;border-radius:12px;padding:14px 16px;font-size:13.5px;line-height:20px;box-shadow:var(--sd-shadow-sm);margin-bottom:20px}
.sd-alert i{font-size:16px;margin-top:2px}
.sd-alert--success{background:var(--sd-success-soft);color:var(--sd-success);border:1px solid rgba(31,157,99,.3)}
.sd-alert--success i{color:var(--sd-success)}
.sd-alert--danger{background:var(--sd-danger-soft);color:var(--sd-danger);border:1px solid rgba(229,72,77,.3)}
.sd-alert--danger i{color:var(--sd-danger)}
.sd-alert--warning{background:var(--sd-warning-soft);color:var(--sd-warning);border:1px solid rgba(255,201,66,.45)}
.sd-alert--warning i{color:var(--sd-gold)}
.sd-alert--teal{background:var(--sd-teal-soft);color:var(--sd-teal-strong);border:1px solid rgba(85,208,222,.4)}
.sd-alert--teal i{color:var(--sd-teal-strong)}
.sd-alert--info{background:var(--sd-teal-soft);color:var(--sd-teal-strong);border:1px solid rgba(85,208,222,.35)}
.sd-alert--info i{color:var(--sd-teal)}
.sd-alert b{color:inherit}

/* ============ Garanties / encarts ============ */
.sd-guarantees{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.sd-guarantee{display:flex;gap:14px;background:var(--sd-white);border:1px solid var(--sd-border);border-radius:var(--sd-radius-l);padding:18px;box-shadow:var(--sd-shadow-sm)}
.sd-guarantee__icon{flex:0 0 auto;width:46px;height:46px;border-radius:14px;background:var(--sd-teal-soft);color:var(--sd-teal-strong);display:flex;align-items:center;justify-content:center;font-size:19px}
.sd-guarantee h4{font-size:15px;font-weight:700;margin:0 0 5px;color:var(--sd-ink)}
.sd-guarantee p{font-size:13px;line-height:19px;margin:0;color:var(--sd-text)}

/* ============ Étapes (comment ça marche) ============ */
.sd-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;position:relative;counter-reset:step}
.sd-step{background:var(--sd-white);border:1px solid var(--sd-border);border-radius:var(--sd-radius-l);padding:22px;position:relative;box-shadow:var(--sd-shadow-sm)}
/* Pastilles = BLEU (principales) ; variante --gold = JAUNE (étape "gratuité") */
.sd-step__dot{width:40px;height:40px;border-radius:var(--sd-radius-pill);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;margin-bottom:14px;background:var(--sd-grad-teal);color:#fff;box-shadow:0 0 0 5px rgba(85,208,222,.2)}
.sd-step__dot--gold{background:var(--sd-grad-gold);color:var(--sd-ink);box-shadow:0 0 0 5px rgba(255,201,66,.22)}
.sd-step h4{font-size:15.5px;font-weight:700;margin:0 0 6px;color:var(--sd-ink)}
.sd-step p{font-size:13.5px;line-height:20px;margin:0;color:var(--sd-text)}

/* ============ Avatar / pastille enfant ============ */
.sd-avatar{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:var(--sd-radius-pill);background:var(--sd-grad-teal);color:#fff;font-weight:700;font-size:14px}

/* ============ Table (planning) ============ */
.sd-table-wrap{overflow-x:auto;border:1px solid var(--sd-border);border-radius:var(--sd-radius-l);box-shadow:var(--sd-shadow-sm)}
.sd-table{width:100%;border-collapse:collapse;background:var(--sd-white);font-size:14px}
.sd-table th{background:var(--sd-surface);color:var(--sd-ink-2);font-weight:600;text-align:left;padding:12px 16px;border-bottom:1px solid var(--sd-border);white-space:nowrap}
.sd-table td{padding:12px 16px;border-bottom:1px solid var(--sd-border);color:var(--sd-text)}
.sd-table tbody tr:last-child td{border-bottom:none}

/* ============ Espace parent (compte) ============ */
.sd-account-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:28px}
.sd-account-head .sd-avatar{width:64px;height:64px;font-size:22px}
.sd-account-head h2{margin:0 0 4px}
.sd-account-head p{margin:0;color:var(--sd-muted);font-size:13.5px}
.sd-row-insc{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--sd-white);border:1px solid var(--sd-border);border-radius:var(--sd-radius-l);padding:18px 20px;box-shadow:var(--sd-shadow-sm);margin-bottom:14px}
.sd-row-insc__info{flex:1;min-width:220px}
.sd-row-insc__info h4{margin:0 0 4px}
.sd-row-insc__info p{margin:0;font-size:13px;color:var(--sd-muted)}
.sd-row-insc__price{font-weight:800;color:var(--sd-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.sd-row-insc__actions{display:flex;gap:10px;flex-wrap:wrap}

/* ============ Login / split ============ */
.sd-login-split{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.sd-login-split--top{align-items:start}

/* ============ Espace parent (profil / mot de passe) ============ */
.sd-account-split{display:grid;grid-template-columns:260px 1fr;gap:32px;align-items:start}
.sd-account-nav{background:#fff;border:1px solid var(--sd-border);border-radius:var(--sd-radius-l);padding:20px}
.sd-account-nav h3{font-size:15px;font-weight:700;color:var(--sd-teal-strong);margin:0 0 14px;padding-bottom:12px;border-bottom:1px dashed var(--sd-border);display:flex;align-items:center;gap:8px}
.sd-account-nav nav{display:flex;flex-direction:column;gap:6px}
.sd-account-nav a{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:12px;font-size:14px;font-weight:500;color:var(--sd-ink);text-decoration:none}
.sd-account-nav a i{width:16px;text-align:center;color:var(--sd-teal-strong)}
.sd-account-nav a:hover{background:rgba(85,208,222,.1)}
.sd-account-nav a.is-active{background:linear-gradient(135deg,#55D0DE,#137E90);color:#fff;font-weight:600}
.sd-account-nav a.is-active i{color:#fff}
@media (max-width:767px){.sd-account-split{grid-template-columns:1fr}}
/* Icônes = BLEU (info) ; variante .stack-gold = JAUNE (gratuité/séance découverte) */
.sd-feature{display:flex;gap:14px;margin-bottom:18px}
.sd-feature__icon{flex:0 0 auto;width:48px;height:48px;border-radius:14px;background:var(--sd-teal-soft);color:var(--sd-teal-strong);display:flex;align-items:center;justify-content:center;font-size:19px}
.sd-feature.stack-gold .sd-feature__icon{background:var(--sd-gold-soft);color:var(--sd-gold-deep)}
.sd-feature h4{font-size:15.5px;font-weight:700;margin:0 0 4px;color:var(--sd-ink)}
.sd-feature p{font-size:13.5px;line-height:20px;margin:0;color:var(--sd-text)}

/* ============ CTA final ============ */
.sd-cta-final{border-radius:var(--sd-radius-l);background:radial-gradient(120% 200% at 90% -30%,rgba(255,201,66,.4),transparent 45%),var(--sd-grad-gold);padding:48px 40px;text-align:center;box-shadow:var(--sd-shadow-md)}
.sd-cta-final h2{font-family:var(--sd-ff-display);font-weight:400;color:var(--sd-ink);margin-bottom:10px}
.sd-cta-final p{color:var(--sd-ink);font-size:15px;max-width:480px;margin:0 auto 24px}

/* ============ Footer ============ */
/* Footer CLAIR : fond teinte bleue #F0FBFD partout (zone haute + basse), logo sombre posé
   directement SANS puce/cadre blanc. Dérivé clair autorisé (palette éclaircie). Les liens
   restent en teal foncé AA, le texte en noir charte. */
.sd-footer{background:var(--sd-teal-soft);color:var(--sd-ink-2);padding-top:56px;font-size:13.5px;line-height:1.7}
.sd-footer__grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr;gap:32px;padding-bottom:36px}
.sd-footer h5{font-family:var(--sd-ff);color:var(--sd-ink);font-size:14px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;margin-bottom:14px}
.sd-footer a{color:var(--sd-teal-strong)}
.sd-footer a:hover{color:var(--sd-ink)}
.sd-footer ul{list-style:none;margin:0;padding:0}
.sd-footer li{margin-bottom:8px}
/* Logo officiel ORIGINAL logo-sticky.png (retour client) sur fond clair DIRECTEMENT — aucune chip, aucun cadre */
.sd-footer__brand{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.sd-footer__logo-img{display:block;height:66px;width:auto}
.sd-footer__social{display:flex;gap:10px;margin-top:16px}
.sd-footer__social a{width:38px;height:38px;border-radius:var(--sd-radius-pill);background:rgba(19,126,144,.1);display:inline-flex;align-items:center;justify-content:center;color:var(--sd-teal-strong);transition:background .15s}
.sd-footer__social a:hover{background:var(--sd-gold);color:var(--sd-ink)}
.sd-footer__bottom{border-top:1px solid var(--sd-border);padding:18px 0;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--sd-muted);font-size:12.5px}

/* ============ Security strip ============ */
.sd-security-strip{display:flex;align-items:center;justify-content:center;gap:26px;flex-wrap:wrap;background:var(--sd-surface-2);border-top:1px solid var(--sd-border);padding:14px 20px;font-size:13px;color:var(--sd-ink-2)}
.sd-security-strip span{display:inline-flex;align-items:center;gap:8px}
.sd-security-strip i{color:var(--sd-teal-strong)}

/* ============ Utilitaires ============ */
.sd-center{text-align:center}
.sd-mt-5{margin-top:20px}
.sd-mt-6{margin-top:24px}
.sd-mb-5{margin-bottom:20px}
.sd-mb-6{margin-bottom:24px}
.sd-muted{color:var(--sd-muted)}
.sd-nowrap{white-space:nowrap}

/* ============ Animation d'apparition légère ============ */
.sd-fade{opacity:0;transform:translateY(10px);animation:sdFadeUp .5s ease forwards}
@keyframes sdFadeUp{to{opacity:1;transform:none}}

/* ============ Focus global (scopé .sd-page) ============ */
.sd-page :focus-visible{outline:none;box-shadow:var(--sd-focus)}

/* ============ Responsive ============ */
@media (max-width:991px){
  .sd-grid--3,.sd-grid--4{grid-template-columns:repeat(2,1fr)}
  .sd-guarantees{grid-template-columns:1fr}
  .sd-steps{grid-template-columns:repeat(2,1fr)}
  .sd-hero .sd-container{grid-template-columns:1fr;padding-top:44px;padding-bottom:52px}
  .sd-hero__card{margin-inline-start:0}
  .sd-login-split{grid-template-columns:1fr}
  .sd-footer__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:767px){
  .sd-nav{display:none}
  .sd-header__actions .sd-btn--primary span{display:none}
  .sd-header__actions .sd-btn--primary{min-height:44px;padding:0 16px;font-size:13.5px}
  .sd-topbar{font-size:11.5px}
  .sd-topbar .sd-container{padding:6px 0;gap:8px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .sd-topbar__right{gap:10px;flex-wrap:nowrap}
  .sd-topbar a{white-space:nowrap}
  .sd-topbar__lang-label{display:none}
  .sd-grid--2{grid-template-columns:1fr}
  .sd-hero__ctas .sd-btn{flex:1 1 100%}
  .sd-row-insc__actions .sd-btn{flex:1 1 100%}
  .sd-security-strip{flex-direction:column;gap:8px}
}
@media (max-width:479px){
  .sd-grid--3,.sd-grid--4{grid-template-columns:1fr}
  .sd-steps{grid-template-columns:1fr}
  .sd-footer__grid{grid-template-columns:1fr}
}

/* ============ RTL ============ */
[dir="rtl"] .sd-topbar i,[dir="rtl"] .sd-btn i,[dir="rtl"] .sd-card__meta i{margin-inline-end:0;margin-inline-start:6px}
[dir="rtl"] .sd-kv .sd-kv__v{text-align:left}
[dir="rtl"] .sd-hero__card{margin-inline-start:0;margin-inline-end:auto}
[dir="rtl"] .sd-table th{text-align:right}

/* ============ Motion réduite ============ */
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001s !important;transition-duration:.05s !important;scroll-behavior:auto}
}
/* ============ Variante liste-cours 3 colonnes (mockup v2) ============ */
@media (max-width:767px){
  .sd-grid--3{grid-template-columns:1fr}
}
.sd-grid--3 .sd-card__img{height:120px;font-size:44px}
.sd-grid--3 .sd-card__body{padding:16px}
.sd-grid--3 .sd-card__title{font-size:17px;margin:3px 0 9px}
.sd-grid--3 .sd-card__meta{gap:6px;font-size:13px;margin-bottom:14px}
.sd-grid--3 .sd-card__price{padding-top:12px;margin-bottom:12px}
.sd-grid--3 .sd-card__amount{font-size:19px}
.sd-grid--3 .sd-card__actions .sd-btn{min-width:108px}
.sd-grid--3 .sd-hint{margin-top:4px}
@media (min-width:768px) and (max-width:991px){
  .sd-grid--3 .sd-card__body{padding:20px}
  .sd-grid--3 .sd-card__title{font-size:19px}
  .sd-grid--3 .sd-card__meta{gap:7px;font-size:13.5px}
  .sd-grid--3 .sd-card__amount{font-size:21px}
  .sd-grid--3 .sd-card__actions .sd-btn{min-width:130px}
}
/* Variante photo de couverture (données réelles du site) */
.sd-card__img--photo{background-size:cover;background-position:center;color:transparent}

/* Liste d'attente : lien discret sous les actions de carte */
.sd-waitlist-link{display:block;font-size:12.5px;font-weight:600;color:var(--sd-teal);margin-top:8px;text-align:center;text-decoration:none;transition:color .15s}
.sd-waitlist-link:hover{color:var(--sd-teal-strong);text-decoration:none}
.sd-waitlist-link i{margin-inline-end:4px;font-size:11px}
.sd-waitlist-link:focus-visible{outline:none;box-shadow:var(--sd-focus);border-radius:6px}

/* Flash messages (charte v2 : rouge=erreurs, vert=validation) */
.sd-flash .message{border-radius:14px;padding:12px 16px;font-size:13.5px;margin-bottom:20px;border:1px solid;line-height:1.5}
.sd-flash .message.error{color:#B42318;background:#FCEBEC;border-color:rgba(229,72,77,.35)}
.sd-flash .message.success{color:#166534;background:#E3F5EC;border-color:rgba(31,157,99,.3)}
/* Element/Flash/success.ctp et error.ctp (partagés avec l'ancien layout) rendent
   des classes Bootstrap .alert/.alert-success/.alert-danger, pas .message - on
   les ré-habille ici en charte v2 sans toucher aux éléments partagés. */
.sd-flash .alert{border-radius:14px;padding:12px 16px;font-size:13.5px;line-height:1.5;cursor:pointer}
.sd-flash .alert-danger{color:#B42318;background:#FCEBEC;border-color:rgba(229,72,77,.35)}
.sd-flash .alert-success{color:#166534;background:#E3F5EC;border-color:rgba(31,157,99,.3)}

/* ============ Accent couleur logo par card (rotation 7 couleurs) ============ */
.sd-card--accent{border-top:4px solid var(--sd-accent,#55D0DE)}
.sd-status{max-width:720px;margin:0 auto;background:var(--sd-white);border:1px solid var(--sd-border);border-radius:var(--sd-radius-l);box-shadow:var(--sd-shadow-md);padding:44px 36px;text-align:center}
.sd-status__badge{width:74px;height:74px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;font-size:30px;color:#fff;background:var(--sd-teal-strong);box-shadow:var(--sd-shadow-teal)}
.sd-status--success .sd-status__badge{background:var(--sd-success);box-shadow:0 10px 24px -6px rgba(31,157,99,.35)}
.sd-status--error .sd-status__badge{background:var(--sd-danger);box-shadow:0 10px 24px -6px rgba(229,72,77,.35)}
.sd-status--wait .sd-status__badge{background:var(--sd-gold-soft);color:var(--sd-warning);box-shadow:none;border:1px solid var(--sd-border)}
.sd-status--free .sd-status__badge{background:var(--sd-grad-gold);box-shadow:var(--sd-shadow-gold)}
.sd-status h2{font-family:var(--sd-ff-display);font-size:26px;color:var(--sd-ink);margin:0 0 8px;font-weight:500}
.sd-status__sub{color:var(--sd-text);font-size:15.5px;line-height:1.6;margin:0 auto;max-width:520px}
.sd-status__note{color:var(--sd-muted);font-size:13.5px;margin-top:10px}
.sd-def-list{list-style:none;margin:26px 0 0;padding:0;border-top:1px solid var(--sd-border);text-align:left}
.sd-def-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:12px 2px;border-bottom:1px dashed var(--sd-border)}
.sd-def-row dt{color:var(--sd-text);font-size:14.5px;flex-shrink:0}
.sd-def-row dd{margin:0;font-weight:600;color:var(--sd-ink);text-align:right;overflow-wrap:anywhere}
.sd-status__actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:28px}

.sd-intro{max-width:860px;margin:0 auto;background:var(--sd-white);border:1px solid var(--sd-border);border-radius:var(--sd-radius-l);box-shadow:var(--sd-shadow-md);padding:44px 36px 48px}
.sd-flags{list-style:none;display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin:0;padding:0}
.sd-flags li{flex:0 1 150px;min-width:120px}
.sd-flags a{display:block;text-decoration:none;border:1px solid var(--sd-border);border-radius:var(--sd-radius-m);padding:16px 10px 12px;text-align:center;transition:all .16s ease;background:var(--sd-surface)}
.sd-flags a:hover{border-color:var(--sd-teal-strong);transform:translateY(-2px);box-shadow:var(--sd-shadow-md)}
.sd-flags__img{display:flex;align-items:center;justify-content:center;height:52px;margin-bottom:10px}
.sd-flags__img img{max-height:48px;max-width:90px;border-radius:6px;box-shadow:var(--sd-shadow-sm)}
.sd-flags__name{font-size:14px;font-weight:600;color:var(--sd-ink)}


.sd-input--area{height:auto;align-items:flex-start;padding:16px 0}
.sd-input--area .sd-input__icon{padding-top:3px}
.sd-input__control--area{min-height:140px;padding:4px 14px 8px 0;resize:vertical;max-height:360px;line-height:1.6;font-size:15px}
.sd-input__control--area:focus{outline:none;box-shadow:none;border:none;background:transparent}
.sd-input__control--area::placeholder{color:#9FB8BD;line-height:1.5}


.sd-lang__menu{min-width:150px;border:1px solid var(--sd-border);border-radius:var(--sd-radius-m);box-shadow:var(--sd-shadow-md);overflow:hidden}
.sd-lang__menu li a{display:flex;align-items:center;gap:8px;padding:10px 14px;color:var(--sd-ink);font-weight:500;font-size:13px;background:#fff}
.sd-lang__menu li a img{width:18px;height:13px;border-radius:3px;object-fit:cover}
.sd-lang__menu li a:hover,.sd-lang__menu li a:focus{background:rgba(85,208,222,.12);color:var(--sd-teal-strong);text-decoration:none}
.sd-lang__menu li+li{border-top:1px solid var(--sd-border)}


/* ===== Contact / A propos (v2) ===== */
.sd-map-card{border:1.5px solid var(--sd-border);border-radius:var(--sd-radius-l);overflow:hidden;box-shadow:var(--sd-shadow-md);background:#fff;margin-bottom:40px}
.sd-map-card #map{width:100%;height:420px}
.sd-about-media{position:relative;padding-bottom:24px}
.sd-about-media figure{margin:0;border-radius:var(--sd-radius-l);overflow:hidden;box-shadow:var(--sd-shadow-lg);background:#fff}
.sd-about-media figure img{display:block;width:100%;height:auto}
.sd-about-media__second{max-width:62%;margin:-48px auto 0;position:relative}
.sd-rich{color:var(--sd-muted);line-height:1.7;font-size:15px}
.sd-rich img{max-width:100%;height:auto;border-radius:var(--sd-radius-m)}
.sd-grid-3{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.sd-acti-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1.5px solid var(--sd-border);border-radius:var(--sd-radius-l);overflow:hidden;text-decoration:none;box-shadow:var(--sd-shadow-sm);transition:transform .16s,box-shadow .16s,border-color .16s;color:var(--sd-ink)}
.sd-acti-card:hover{transform:translateY(-3px);box-shadow:var(--sd-shadow-md);border-color:var(--sd-teal);text-decoration:none}
.sd-acti-card__media{display:block;height:170px;overflow:hidden;background:var(--sd-teal-soft)}
.sd-acti-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.sd-acti-card h4{font-size:16.5px;font-weight:700;margin:16px 18px 8px;color:var(--sd-ink)}
.sd-acti-card .fa-angle-right{margin:0 18px 16px;margin-top:auto;color:var(--sd-teal-strong);font-size:18px}
.sd-skills{background:linear-gradient(135deg,var(--sd-navy),#0E2A3A);padding:64px 0}
.sd-skills__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px}
.sd-skills__grid li{text-align:center;color:#fff}
.sd-skills__grid img{width:56px;height:56px;object-fit:contain;margin-bottom:12px}
.sd-skills__grid h4{font-size:15.5px;font-weight:600;color:#fff;line-height:1.4}
.sd-timeline{position:relative;max-width:760px;margin:0 auto}
.sd-timeline:before{content:'';position:absolute;top:0;bottom:0;left:19px;width:2px;background:rgba(85,208,222,.35)}
.sd-timeline__item{position:relative;padding:0 0 28px 56px}
.sd-timeline__dot{position:absolute;left:12px;top:6px;width:16px;height:16px;border-radius:50%;background:#fff;border:3.5px solid var(--sd-teal)}
.sd-timeline__card{background:#fff;border:1.5px solid var(--sd-border);border-radius:var(--sd-radius-l);padding:18px 22px;box-shadow:var(--sd-shadow-sm)}
.sd-timeline__card h4{font-size:15.5px;font-weight:700;color:var(--sd-ink);margin-bottom:8px}
.sd-timeline__card p{margin:0 0 6px;color:var(--sd-muted);font-size:14px;line-height:1.6}
.sd-timeline__card p:last-child{margin-bottom:0}
.sd-sec-kicker--light{color:#9FE8F0}


/* ===== Activites / Evenements (v2) ===== */
.sd-media-card{background:#fff;border:1.5px solid var(--sd-border);border-radius:var(--sd-radius-l);overflow:hidden;box-shadow:var(--sd-shadow-sm)}
.sd-media-card iframe,.sd-media-card embed{display:block;width:100%;border:0}
.sd-nav-prevnext{display:flex;justify-content:space-between;gap:16px;margin-top:32px}
.sd-events-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:22px}
.sd-event-card{display:flex;flex-direction:column;background:#fff;border:1.5px solid var(--sd-border);border-radius:var(--sd-radius-l);overflow:hidden;text-decoration:none;color:var(--sd-ink);box-shadow:var(--sd-shadow-sm);transition:transform .16s,box-shadow .16s,border-color .16s}
.sd-event-card:hover{transform:translateY(-3px);box-shadow:var(--sd-shadow-md);border-color:var(--sd-teal);text-decoration:none}
.sd-event-card__media{display:block;height:190px;overflow:hidden;background:var(--sd-teal-soft)}
.sd-event-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.sd-event-card__body{display:flex;flex-direction:column;padding:18px 20px 20px}
.sd-event-card__date{font-size:12.5px;font-weight:700;color:var(--sd-teal-strong)}
.sd-event-card__date i{margin-inline-end:5px}
.sd-event-card__body h4{font-size:17px;font-weight:700;margin:8px 0 10px;color:var(--sd-ink)}
.sd-event-card__place{font-size:13px;color:var(--sd-muted)}
.sd-event-card__place i{color:var(--sd-teal-strong);margin-inline-end:5px}
.sd-empty{text-align:center;padding:56px 0}
.sd-empty__icon{display:inline-flex;width:64px;height:64px;border-radius:50%;background:var(--sd-teal-soft);color:var(--sd-teal-strong);align-items:center;justify-content:center;font-size:26px;margin-bottom:16px}
.sd-empty h2{font-size:clamp(1.2rem,2.5vw,1.6rem);font-weight:700;color:var(--sd-ink)}
.sd-event-detail{display:grid;grid-template-columns:2fr 1fr;gap:28px;align-items:start}
@media (max-width:900px){.sd-event-detail{grid-template-columns:1fr}}
.sd-gallery-strip{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory}
.sd-gallery-strip a{flex:0 0 auto;scroll-snap-align:start;border-radius:var(--sd-radius-m);overflow:hidden;max-height:230px}
.sd-gallery-strip img{height:230px;width:auto;display:block}
.sd-contact-inline{list-style:none;display:flex;gap:22px;flex-wrap:wrap;margin:20px 0 0;padding:14px 0 0;border-top:1.5px dashed var(--sd-border);font-size:14px}
.sd-contact-inline a{color:var(--sd-teal-strong);text-decoration:none;font-weight:600}
.sd-side-event{display:flex;gap:12px;align-items:center;text-decoration:none;padding:10px 0;border-bottom:1px dashed var(--sd-border);color:var(--sd-ink)}
.sd-side-event:last-of-type{border-bottom:0}
.sd-side-event img{width:74px;height:54px;object-fit:cover;border-radius:var(--sd-radius-m);flex:0 0 auto}
.sd-side-event .sd-event-card__date{display:block;margin-bottom:3px}
.sd-side-event strong{font-size:13.5px;line-height:1.35}


/* ===== Hub inscription (v2) ===== */
.sd-hub{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;max-width:820px;margin:0 auto}
.sd-hub__link{align-items:center;text-align:center;padding:26px 18px 22px}
.sd-hub__icon{display:inline-flex;width:54px;height:54px;border-radius:50%;background:var(--sd-teal-soft);color:var(--sd-teal-strong);align-items:center;justify-content:center;font-size:22px;margin-bottom:14px}


/* ===== Navigation complète v2 ===== */
.sd-nav__item--drop{position:relative}
.sd-nav__item--drop>a .fa-angle-down{font-size:12px;margin-inline-start:4px}
.sd-nav__drop{position:absolute;top:100%;inset-inline-start:0;min-width:250px;margin:0;padding:8px;list-style:none;background:#fff;border:1px solid var(--sd-border);border-radius:14px;box-shadow:var(--sd-shadow-md);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .15s,transform .15s,visibility .15s;z-index:70}
.sd-nav__item--drop:hover>.sd-nav__drop,.sd-nav__item--drop:focus-within>.sd-nav__drop{opacity:1;visibility:visible;transform:none}
.sd-nav__drop a{padding:9px 12px;font-size:14px}
.sd-burger,.sd-nav-toggle{display:none}
.sd-burger{align-items:center;justify-content:center;width:44px;height:44px;margin-inline-start:10px;border-radius:12px;border:1px solid var(--sd-border);background:#fff;color:var(--sd-ink);cursor:pointer;font-size:17px}
.sd-burger .fa-times{display:none}
@media (max-width:767px){
  .sd-burger{display:inline-flex}
  .sd-nav-toggle:checked~nav .sd-nav{display:flex;flex-direction:column;align-items:stretch;gap:2px;position:absolute;top:100%;inset-inline:0;z-index:80;padding:10px 16px 16px;background:#fff;border-top:1px solid var(--sd-border);box-shadow:var(--sd-shadow-md)}
  .sd-nav-toggle:checked~nav .sd-nav a{padding:11px 12px}
  .sd-nav-toggle:checked~nav .sd-nav__item--drop{position:static}
  .sd-nav-toggle:checked~nav .sd-nav__drop{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:2px 0 6px 18px}
  .sd-nav-toggle:checked~.sd-header__actions .sd-burger{color:var(--sd-teal-strong)}
  .sd-nav-toggle:checked~.sd-header__actions .sd-burger .fa-bars{display:none}
  .sd-nav-toggle:checked~.sd-header__actions .sd-burger .fa-times{display:inline}
}


/* ===== Carrousel galerie événement + zoom PhotoSwipe ===== */
.sd-carousel__main{position:relative;border-radius:var(--sd-radius-l);overflow:hidden;background:#0E2A3A;aspect-ratio:16/9}
.sd-carousel__track{display:flex;height:100%;transition:transform .35s ease}
.sd-carousel__slide{flex:0 0 100%;margin:0;min-width:0}
.sd-carousel__link{display:block;width:100%;height:100%}
.sd-carousel__slide img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in}
.sd-carousel__btn{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:var(--sd-navy);font-size:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 14px rgba(14,42,58,.25);transition:background .15s,color .15s;z-index:2}
.sd-carousel__btn:hover{background:#fff;color:var(--sd-teal-strong)}
.sd-carousel__btn--prev{inset-inline-start:12px}
.sd-carousel__btn--next{inset-inline-end:12px}
.sd-carousel__zoom{position:absolute;inset-inline-end:14px;bottom:14px;width:36px;height:36px;border-radius:10px;background:rgba(14,42,58,.65);color:#fff;font-size:14px;display:flex;align-items:center;justify-content:center;pointer-events:none}
.sd-carousel__thumbs{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.sd-carousel__thumb{width:86px;height:60px;padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;cursor:pointer;background:none}
.sd-carousel__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.sd-carousel__thumb.is-active{border-color:var(--sd-teal)}

/* ===== Sidebar événements empilée (v30) ===== */
.sd-side-event{flex-direction:column;align-items:stretch;gap:6px;padding-bottom:16px;margin-bottom:16px}
.sd-side-event img,.sd-side-event__img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:var(--sd-radius-m)}
.sd-side-event .sd-event-card__date{font-size:12.5px}
.sd-side-event__name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:15px;line-height:1.35;color:var(--sd-ink);transition:color .15s}
.sd-side-event:hover .sd-side-event__name{color:var(--sd-teal-strong)}

/* ===== Hub moncompte images ===== */
.sd-hub__img{height:110px;width:auto;max-width:70%;object-fit:contain;margin:4px auto 12px}


/* ===== Photos CMS : dimension standard (v33) ===== */
.sd-rich img{max-width:min(100%,320px);height:auto;border-radius:var(--sd-radius-m);display:inline-block;margin:6px 4px;vertical-align:middle}
.sd-pswp-item img,.sd-acti-card img{cursor:zoom-in}

/* ===== Liens dans les textes CMS (charte v2) ===== */
.sd-rich a{color:var(--sd-teal);text-decoration:underline;text-underline-offset:2px}
.sd-rich a:hover{color:var(--sd-teal-strong);text-decoration:none}
.sd-rich a[target="_blank"]::after{content:" \2197";font-size:.85em}

/* ===== Hub compte (dashboard parent) ===== */
.sd-hub--account{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.sd-hub__desc{font-size:13.5px;color:var(--sd-ink-2);line-height:1.5;margin:0 0 14px}
.sd-hub__link h2{font-size:17px;margin:0 0 8px}
.sd-hub__icon--muted{background:var(--sd-surface-2);color:var(--sd-ink-2)}

/* ===== Hero sub ===== */
.sd-page-hero__sub{margin:10px 0 0;font-size:15.5px;color:rgba(255,255,255,.85);max-width:640px}

/* ============================================================
   Retouches audit UX (v36) — conformité charte + accessibilité
   Détail : docs/design/mockups/v2/audit-ux-v34.md
   ============================================================ */

/* --- Focus visible hors .sd-page (header / footer / bandeau sécurité) --- */
.sd-topbar a:focus-visible,.sd-lang>a:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(255,255,255,.35)}
.sd-logo:focus-visible,.sd-nav a:focus-visible,.sd-footer a:focus-visible,.sd-security-strip a:focus-visible{outline:none;box-shadow:var(--sd-focus)}

/* --- Déclencheur du sélecteur de langue (style inline retiré du layout v36) --- */
.sd-lang>a{display:inline-flex;align-items:center;gap:4px;color:#fff;text-decoration:none}

/* --- Chevron du dropdown Activités : rotation à l'ouverture --- */
.sd-nav__item--drop>a .fa-angle-down{transition:transform .15s}
.sd-nav__item--drop:hover>a .fa-angle-down,.sd-nav__item--drop:focus-within>a .fa-angle-down{transform:rotate(180deg)}

/* --- Burger accessible au clavier (<768px) : la checkbox invisible recouvre
       le label .sd-burger (Tab + Espace/Entrée natifs) ; l'anneau de focus est
       reporté sur l'icône visible --- */
.sd-nav-toggle:focus-visible~.sd-header__actions .sd-burger{box-shadow:var(--sd-focus)}
@media (max-width:767px){
  .sd-nav-toggle{display:block;position:absolute;inset-inline-end:20px;top:21px;width:44px;height:44px;margin:0;opacity:0;z-index:6;cursor:pointer}
}

/* --- Liens « Espace parent » / « Devenir partenaire » dans le panneau burger
       (mobile uniquement — desktop : topbar + footer) --- */
.sd-nav__item--account{display:none}
@media (max-width:767px){
  .sd-nav-toggle:checked~nav .sd-nav__item--account{display:block;border-top:1px dashed var(--sd-border);margin-top:8px;padding-top:8px}
  .sd-nav-toggle:checked~nav .sd-nav__item--account+.sd-nav__item--account{border-top:0;margin-top:0;padding-top:0}
  .sd-nav__item--account a i{width:18px;text-align:center;margin-inline-end:4px;color:var(--sd-teal-strong)}
}

/* --- Selects natifs des formulaires v2 : même gabarit que .sd-input --- */
.sd-form select.form-control{display:block;width:100%;height:52px;border:1.5px solid var(--sd-border);border-radius:var(--sd-radius-m);background-color:var(--sd-white);font-family:var(--sd-ff);font-size:15px;color:var(--sd-ink);box-shadow:var(--sd-shadow-sm);padding:0 38px 0 14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23137E90' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;transition:border-color .16s,box-shadow .16s}
[dir="rtl"] .sd-form select.form-control{padding:0 14px 0 38px;background-position:left 14px center}
.sd-form select.form-control:focus{outline:none;border-color:var(--sd-teal);box-shadow:var(--sd-focus)}
.sd-form select.form-control option{color:var(--sd-ink)}

/* --- Radios « Civilité » (mutualisé : inscription + inscription_partenaire) --- */
.insc-radio{display:flex;align-items:center;gap:10px;border:1.5px solid rgba(19,126,144,.25);background:#fff;border-radius:14px;padding:12px 16px;cursor:pointer;font-weight:500;font-size:14.5px;color:var(--sd-ink);transition:border-color .15s,box-shadow .15s}
.insc-radio:hover{border-color:var(--sd-teal-strong)}
.insc-radio:has(input:checked){border-color:var(--sd-teal-strong);background:rgba(85,208,222,.08)}
.insc-radio:has(input:focus-visible){box-shadow:var(--sd-focus)}
.insc-radio input{width:18px;height:18px;flex:0 0 auto;accent-color:var(--sd-teal)}

/* --- Grille 2 colonnes des formulaires : passage en 1 colonne sur petit mobile --- */
@media (max-width:575px){
  .insc-grid-2{grid-template-columns:1fr !important}
}

/* --- Bouton œil « afficher le mot de passe » (styles inline mutualisés ici) --- */
.sd-pw-toggle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border:0;background:none;padding:0 12px;height:100%;cursor:pointer;color:var(--sd-teal-strong);font-size:15px}
.sd-pw-toggle:hover{background:rgba(85,208,222,.12);border-radius:10px}
.sd-pw-toggle:focus-visible{outline:none;box-shadow:var(--sd-focus);border-radius:10px}

/* ============================================================
   Social login buttons (Lot 2 — ADR-005 Google OAuth)
   ============================================================ */
.sd-social-login{margin-bottom:16px}
.sd-btn--outline-social{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  width:100%;min-height:52px;padding:0 20px;
  border:1.5px solid var(--sd-border);border-radius:var(--sd-radius-m);
  background:var(--sd-white);color:var(--sd-ink);
  font-family:var(--sd-ff);font-size:15px;font-weight:600;
  cursor:pointer;text-decoration:none;
  transition:border-color .16s,box-shadow .16s,background .16s
}
.sd-btn--outline-social:hover{
  border-color:var(--sd-teal);background:var(--sd-teal-soft);
  text-decoration:none;color:var(--sd-teal-strong)
}
.sd-btn--outline-social:focus-visible{outline:none;box-shadow:var(--sd-focus)}
.sd-social-login__icon{flex:0 0 auto}
/* Séparateur « ou » */
.sd-divider{display:flex;align-items:center;gap:14px;margin:4px 0 16px}
.sd-divider__line{flex:1;height:1px;background:var(--sd-border)}
.sd-divider__text{font-size:13px;font-weight:600;color:var(--sd-muted);white-space:nowrap}

/* ============================================================
   Activités / réalisations (v43) — médias de cartes
   Ratio uniforme 4/3 anti-CLS (remplace la hauteur fixe 170 px,
   s'applique aussi aux cartes catégories de Pages/content.ctp),
   zoom hover charte, placeholder photo manquante, vidéos 16/9.
   Détail : docs/suivi-integration-v2.md (v43)
   ============================================================ */
.sd-grid-3 .sd-acti-card__media{position:relative;height:auto;aspect-ratio:4/3;background:var(--sd-surface-2)}
.sd-grid-3 .sd-acti-card__media img{width:100%;height:100%;object-fit:cover;display:block}
@media (prefers-reduced-motion:no-preference){
  .sd-grid-3 a.sd-acti-card:hover .sd-acti-card__media img{transform:scale(1.02)}
}
.sd-grid-3 .sd-acti-card__zoom{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff;background:rgba(19,126,144,.45);opacity:0;transition:opacity .16s ease;pointer-events:none}
.sd-grid-3 a.sd-acti-card:hover .sd-acti-card__zoom,.sd-grid-3 a.sd-acti-card:focus-visible .sd-acti-card__zoom{opacity:1}
.sd-acti-card--empty,.sd-acti-card--broken{cursor:default}
.sd-acti-card--empty:hover,.sd-acti-card--broken:hover{transform:none;border-color:var(--sd-border);box-shadow:var(--sd-shadow-sm)}
.sd-acti-card--empty .sd-acti-card__media,.sd-acti-card--broken .sd-acti-card__media{display:flex;align-items:center;justify-content:center;font-size:30px;color:var(--sd-muted)}
.sd-acti-card__media--link{display:flex;align-items:center;justify-content:center;font-size:26px;color:var(--sd-teal-strong);background:var(--sd-surface-2)}
.sd-acti-card__label{padding:14px 18px 16px;font-size:15px;font-weight:600;line-height:1.35;color:var(--sd-ink)}
.sd-video{position:relative;aspect-ratio:16/9;background:#0E2A3A;overflow:hidden}
.sd-video iframe,.sd-video embed,.sd-video object{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.sd-pswp-caption{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);max-width:min(86vw,720px);padding:8px 18px;border-radius:var(--sd-radius-pill);background:rgba(19,126,144,.88);color:#fff;font-family:var(--sd-ff);font-size:13.5px;font-weight:500;line-height:1.4;text-align:center;pointer-events:none;z-index:10}
.sd-pswp-caption[hidden]{display:none}

/* ============================================================
   Bloc liste d'attente (page d'accueil) : tableau de disponibilités
   jour/heure ajoutable, bouton d'envoi, aide inline.
   ============================================================ */
.sd-hint-inline{font-size:12.5px;color:var(--sd-muted);font-weight:400;text-transform:none;letter-spacing:0}
.sd-dispo-table{border:1px solid var(--sd-border);border-radius:var(--sd-radius-m);overflow:hidden}
.sd-dispo-table__head{display:grid;grid-template-columns:1.3fr 1fr 1fr 32px;background:var(--sd-teal-strong);color:#fff}
.sd-dispo-table__head span{padding:10px 14px;font-size:12.5px;font-weight:600}
.sd-dispo-table__row{display:grid;grid-template-columns:1.3fr 1fr 1fr 32px;align-items:center;border-top:1px solid var(--sd-border);padding:8px 10px;gap:8px}
.sd-dispo-table__row select,.sd-dispo-table__row input[type="time"]{width:100%;border:1px solid var(--sd-border);border-radius:8px;padding:7px 8px;font-size:13.5px;color:var(--sd-ink);background:var(--sd-surface)}
.sd-dispo-table__remove{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:var(--sd-surface-2);color:var(--sd-muted);font-size:14px;line-height:1;cursor:pointer}
.sd-dispo-table__remove:hover{background:var(--sd-danger-soft);color:var(--sd-danger)}
.sd-dispo-table__add{padding:10px;text-align:center;border-top:1px solid var(--sd-border)}
.sd-dispo-table__add a{font-size:13px;font-weight:600;color:var(--sd-teal-strong);text-decoration:none}
.sd-dispo-submit{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:18px}
.sd-dispo-submit .sd-hint{margin:0}
@media (max-width:540px){
  .sd-dispo-table__head span:nth-child(4),.sd-dispo-table__row .sd-dispo-table__remove{display:flex}
  .sd-dispo-table__head,.sd-dispo-table__row{grid-template-columns:1.1fr .8fr .8fr 28px;font-size:12px}
}

/* ============================================================
   Carte du formulaire liste d'attente (accueil) : liseré doré en haut
   (repris de la maquette approuvée), champs à fond plein sans bordure
   visible, plus accueillant que le simple form-control Bootstrap.
   ============================================================ */
.sd-waitlist-card{position:relative;max-width:720px;margin:0 auto}
.sd-waitlist-card__bar{position:absolute;top:0;left:28px;right:28px;height:16px;border-radius:16px 16px 0 0;background:linear-gradient(90deg,var(--sd-gold),#FFDE85)}
.sd-waitlist-card__body{position:relative;margin-top:8px;background:var(--sd-white);border-radius:var(--sd-radius-l);box-shadow:var(--sd-shadow-md);padding:34px 34px 28px}
@media (max-width:600px){.sd-waitlist-card__body{padding:26px 20px 22px}}
.sd-wf-field{margin-bottom:18px}
.sd-wf-field label{display:block;font-size:13px;font-weight:600;color:var(--sd-ink);margin-bottom:8px}
.sd-wf-field input[type="text"],.sd-wf-field input[type="number"],.sd-wf-field input[type="email"],.sd-wf-field input[type="tel"],.sd-wf-field select,.sd-wf-field textarea{
  width:100%;font-family:var(--sd-ff);font-size:14.5px;color:var(--sd-ink);border:none;border-radius:var(--sd-radius-m);
  padding:13px 16px;background:var(--sd-surface-2);transition:box-shadow .15s ease;
}
.sd-wf-field textarea{resize:vertical;min-height:64px}
.sd-wf-field input::placeholder,.sd-wf-field textarea::placeholder{color:var(--sd-muted)}
.sd-wf-field input:focus,.sd-wf-field select:focus,.sd-wf-field textarea:focus{outline:none;box-shadow:0 0 0 3px rgba(85,208,222,.35)}
.sd-wf-field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%2368757A' stroke-width='2' fill='none' fill-rule='evenodd' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-inline-end:38px}
.sd-wf-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.sd-wf-row--2a{grid-template-columns:1fr 2fr}
@media (max-width:540px){.sd-wf-row,.sd-wf-row--2a{grid-template-columns:1fr}}

/* ============================================================
   Transition entre la grille des cours (fond --sd-surface) et la
   section formulaire d'inscription : vague SVG + fond légèrement plus
   soutenu (--sd-surface-2) + formes douces en arrière-plan. Couleurs
   et rayons repris des tokens existants, rien d'inventé. Validé via
   artifact avant implémentation.
   ============================================================ */
.sd-wave{display:block;line-height:0;background:var(--sd-surface)}
.sd-wave svg{display:block;width:100%;height:56px}
@media (max-width:600px){.sd-wave svg{height:36px}}

.sd-section--waitlist{background:var(--sd-surface-2);position:relative;overflow:hidden}
.sd-section--waitlist .sd-container{position:relative;z-index:2}
.sd-section__blob{position:absolute;border-radius:50%;filter:blur(32px);pointer-events:none;z-index:1}
.sd-section__blob--teal{width:260px;height:260px;background:var(--sd-teal);opacity:.16;top:-70px;left:-70px}
.sd-section__blob--gold{width:220px;height:220px;background:var(--sd-gold);opacity:.14;bottom:-60px;right:-50px}
@media (max-width:600px){
  .sd-section__blob--teal{width:170px;height:170px;top:-40px;left:-50px}
  .sd-section__blob--gold{width:150px;height:150px;bottom:-40px;right:-40px}
}
