/* =========================================================
   Cosaan Education Network — feuille de style complémentaire
   Tailwind gère la grille & les utilitaires ; ce fichier
   contient les composants, formes organiques et animations.
   ========================================================= */

:root{
  --burgundy:#58101A;
  --burgundy-dark:#470D15;
  --crimson:#E8063C;
  --gold:#E28D06;
  --yellow:#FFD600;
  --grape:#490D59;
  --leaf:#76AD1E;
  --aqua:#18C0CB;
  --cream:#FAF6F0;
  --ink:#23282D;
}

html{ scroll-padding-top:120px; }
body{ overflow-x:hidden; }

/* ---------- Préchargeur ---------- */
#preloader.is-hidden{ opacity:0; visibility:hidden; }

.loader-ring{ position:relative; width:104px; height:104px; }
.loader-ring span{ position:absolute; inset:0; border-radius:50%; border:3px solid transparent; }
.loader-ring span:nth-child(1){
  border-top-color:var(--grape); border-left-color:var(--grape);
  animation:spin 1.1s linear infinite;
}
.loader-ring span:nth-child(2){
  inset:5px; border-top-color:var(--crimson); border-right-color:var(--crimson);
  animation:spin 1.6s linear infinite reverse;
}
@keyframes spin{ to{ transform:rotate(360deg); } }

/* ---------- Boutons ---------- */
.btn-primary,
.btn-gold,
.btn-crimson{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:'Fredoka',sans-serif; font-weight:600; font-size:16px;
  padding:.85rem 1.9rem; border-radius:999px; color:#fff; line-height:1; white-space:nowrap;
  transition:transform .25s ease, box-shadow .25s ease, background-color .25s ease;
}
.btn-primary{ background:var(--burgundy); }
.btn-primary:hover{ background:var(--crimson); transform:translateY(-3px); box-shadow:0 12px 24px -12px rgba(232,6,60,.7); }

.btn-gold{ background:var(--gold); }
.btn-gold:hover{ background:var(--yellow); color:var(--burgundy); transform:translateY(-3px); box-shadow:0 12px 24px -12px rgba(255,214,0,.7); }

.btn-crimson{ background:var(--crimson); border-radius:10px; padding:1rem 2.6rem; }
.btn-crimson:hover{ background:var(--burgundy); transform:translateY(-3px); box-shadow:0 12px 24px -12px rgba(88,16,26,.6); }

/* ---------- Navigation bureau ---------- */
.nav-link{
  display:inline-flex; align-items:center; gap:.45rem;
  color:var(--ink); padding:.35rem 0; position:relative; transition:color .2s ease;
}
.nav-link:hover,
.nav-link.is-active{ color:var(--crimson); }
.nav-link::after{
  content:""; position:absolute; left:0; bottom:-2px; height:2px; width:0;
  background:var(--crimson); transition:width .25s ease;
}
.nav-link:hover::after,
.nav-link.is-active::after{ width:100%; }

.chev{
  width:11px; height:7px; flex:0 0 auto; fill:none; stroke:currentColor;
  stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:transform .25s ease;
}
.dropdown:hover > .nav-link .chev{ transform:rotate(180deg); }

.dropdown-menu{
  position:absolute; top:calc(100% + 14px); left:0; min-width:250px;
  background:#fff; border-radius:12px; padding:.5rem 0; list-style:none;
  box-shadow:0 18px 40px -18px rgba(0,0,0,.35); border:1px solid rgba(0,0,0,.06);
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .22s ease, transform .22s ease, visibility .22s;
  z-index:60;
}
.dropdown:hover > .dropdown-menu,
.dropdown:focus-within > .dropdown-menu{ opacity:1; visibility:visible; transform:translateY(0); }

.dropdown-menu a{
  display:flex; align-items:center; justify-content:space-between; gap:.6rem;
  padding:.6rem 1.15rem; font-size:15.5px; color:var(--ink);
  transition:background .2s ease, color .2s ease, padding-left .2s ease;
}
.dropdown-menu a:hover{ background:var(--cream); color:var(--crimson); padding-left:1.45rem; }
.dropdown-menu li.is-active > a{ color:var(--crimson); font-weight:600; }

/* Sous-menu latéral (niveau 3) */
.dropdown-sub{ position:relative; }
.dropdown-menu--flyout{
  top:-.5rem; left:100%; margin-left:.25rem;
}
.dropdown-sub:hover > .dropdown-menu--flyout,
.dropdown-sub:focus-within > .dropdown-menu--flyout{ opacity:1; visibility:visible; transform:translateY(0); }
.dropdown-sub > a .chev{ transform:rotate(-90deg); }

/* Burger */
.burger-bar{
  display:block; width:26px; height:3px; border-radius:2px;
  background:var(--ink); transition:transform .3s ease, opacity .25s ease;
}
#menu-toggle.is-open .burger-bar:nth-child(1){ transform:translateY(9px) rotate(45deg); }
#menu-toggle.is-open .burger-bar:nth-child(2){ opacity:0; }
#menu-toggle.is-open .burger-bar:nth-child(3){ transform:translateY(-9px) rotate(-45deg); }

/* ---------- Navigation mobile ---------- */
.m-link{
  display:flex; align-items:center; justify-content:space-between; gap:.5rem;
  width:100%; padding:.9rem .25rem; border-bottom:1px solid rgba(0,0,0,.07);
  color:var(--ink); text-align:left;
}
.m-link.is-active{ color:var(--crimson); font-weight:600; }

.m-sub{ display:none; padding:.25rem 0 .6rem .9rem; }
.acc-mobile.is-open > .m-sub{ display:block; }
.acc-mobile.is-open > .m-link .chev{ transform:rotate(180deg); }

.m-sub-link,
.m-sub-lead{
  display:block; padding:.5rem .25rem; font-size:15.5px; color:#5b5b5b;
  border-bottom:1px solid rgba(0,0,0,.05);
}
.m-sub-lead{ font-style:italic; color:var(--crimson); }
.m-sub-link:hover{ color:var(--crimson); }
.m-sub-link.is-active{ color:var(--crimson); font-weight:600; }

/* ---------- Hero d'accueil ---------- */
.hero-slide{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; transform:scale(1.06);
  transition:opacity 1.2s ease, transform 6s ease;
}
.hero-slide.is-active{ opacity:1; transform:scale(1); }

.hero-dot{ width:10px; height:10px; border-radius:999px; background:rgba(255,255,255,.45); transition:all .3s ease; }
.hero-dot.is-active{ width:30px; background:var(--crimson); }

/* ---------- Hero de page interne ---------- */
.page-hero-bg{ background-size:cover; background-position:center; }

.breadcrumb{ font-size:15.5px; color:rgba(255,255,255,.8); }
.breadcrumb a{ color:rgba(255,255,255,.85); transition:color .2s ease; }
.breadcrumb a:hover{ color:var(--yellow); }
.breadcrumb .sep{ margin:0 .5rem; opacity:.55; }
.breadcrumb [aria-current]{ color:var(--yellow); font-weight:500; }

.hero-contact-card{
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(6px); border-radius:20px; padding:1.6rem 1.5rem; color:#fff;
}
.hc-title{
  font-family:'Fredoka',sans-serif; font-weight:600; font-size:19px;
  margin-bottom:.9rem; color:var(--yellow);
}
.hc-line{ font-size:15.5px; line-height:1.7; }
.hc-line a{ transition:color .2s ease; }
.hc-line a:hover{ color:var(--yellow); }

/* ---------- Cartes de cycle (accueil) ---------- */
.cycle-card{ position:relative; }
.cycle-photo{ overflow:hidden; border-radius:16px 16px 0 0; height:230px; }
.cycle-photo img{ width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.3,1); }
.cycle-card:hover .cycle-photo img{ transform:scale(1.09); }

.cycle-body{
  position:relative; margin-top:-115px; padding:3.6rem 1.9rem 2.4rem;
  border-radius:50% 50% 22px 22px / 26% 26% 22px 22px; text-align:center; color:#fff;
}
.cycle-body h3{ font-family:'Fredoka',sans-serif; font-weight:600; font-size:24px; margin-bottom:.85rem; }
.cycle-body p{ font-family:'Fredoka',sans-serif; font-weight:400; font-size:16px; line-height:1.75; color:rgba(255,255,255,.95); }

.cycle-icon{
  position:absolute; top:-38px; left:50%; transform:translateX(-50%);
  width:98px; height:98px; background:#fff; border-radius:22px 22px 0 22px;
  display:grid; place-items:center; box-shadow:0 12px 26px -16px rgba(0,0,0,.4);
  transition:transform .4s ease;
}
.cycle-card:hover .cycle-icon{ transform:translateX(-50%) rotate(-8deg); }
.cycle-icon svg{ width:44px; height:44px; }

/* ---------- Cartes à icône ---------- */
.info-card{
  background:#fff; border:1px solid rgba(0,0,0,.07); border-radius:20px;
  padding:2rem 1.6rem; height:100%;
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.info-card:hover{
  transform:translateY(-6px); border-color:transparent;
  box-shadow:0 22px 42px -26px rgba(88,16,26,.55);
}
.info-card-icon{
  display:grid; place-items:center; width:64px; height:64px; font-size:30px;
  background:var(--cream); border-radius:20px 20px 0 20px; margin-bottom:1.25rem;
}
.info-card h3{ font-family:'Fredoka',sans-serif; font-weight:600; font-size:20px; margin-bottom:.7rem; color:var(--ink); }
.info-card p{ font-size:15.5px; line-height:1.8; color:#5f5f5f; }

/* ---------- Cartes équipe ---------- */
.team-card{ text-align:center; }
.team-photo{
  overflow:hidden; border-radius:26px 26px 26px 0; aspect-ratio:1/1;
  box-shadow:0 18px 36px -24px rgba(0,0,0,.5);
}
.team-photo img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.team-card:hover .team-photo img{ transform:scale(1.08); }
.team-card h3{ font-family:'Fredoka',sans-serif; font-weight:600; font-size:20px; margin-top:1.2rem; color:var(--ink); }
.team-card p{ font-size:15.5px; color:var(--crimson); margin-top:.25rem; }

/* ---------- Statistiques ---------- */
.stat-card{ text-align:center; }
.stat-value{
  display:block; font-family:'Fredoka',sans-serif; font-weight:600;
  font-size:46px; line-height:1; color:var(--yellow);
}
.stat-label{ display:block; margin-top:.7rem; font-size:16px; color:rgba(255,255,255,.9); }

/* ---------- Étapes ---------- */
.step{ text-align:center; }
.step img{ width:118px; height:118px; object-fit:contain; margin:0 auto 1.25rem; transition:transform .4s ease; }
.step:hover img{ transform:translateY(-8px) scale(1.05); }
.step h3{ font-family:'Fredoka',sans-serif; font-weight:600; font-size:20px; margin-bottom:.7rem; }
.step p{ font-family:'Fredoka',sans-serif; font-size:15.5px; line-height:1.75; color:rgba(255,255,255,.9); }

/* ---------- Listes à coches ---------- */
.checklist{ display:grid; gap:.85rem; }
.checklist li{
  position:relative; padding-left:2rem; font-size:16px; line-height:1.75; color:#555;
}
.checklist li::before{
  content:""; position:absolute; left:0; top:.45rem;
  width:16px; height:16px; border-radius:5px; background:var(--yellow);
  box-shadow:inset 0 0 0 2px rgba(88,16,26,.35);
}

/* ---------- Encadré d'information ---------- */
.notice{
  display:flex; gap:1rem; align-items:flex-start;
  background:var(--cream); border-left:5px solid var(--gold);
  border-radius:14px; padding:1.2rem 1.4rem;
}
.notice span{ font-size:22px; line-height:1.3; }
.notice p{ font-size:16px; line-height:1.75; color:#5a5a5a; }

/* ---------- Fournitures ---------- */
.supply-title{
  font-family:'Fredoka',sans-serif; font-weight:600; font-size:23px; color:var(--burgundy);
  padding-bottom:.7rem; margin-bottom:1.5rem; border-bottom:2px solid var(--yellow);
}
.supply-group{
  background:#fff; border:1px solid rgba(0,0,0,.07); border-radius:18px; padding:1.5rem 1.4rem;
  transition:box-shadow .3s ease;
}
.supply-group:hover{ box-shadow:0 18px 36px -26px rgba(88,16,26,.5); }
.supply-group h4{
  font-family:'Fredoka',sans-serif; font-weight:600; font-size:17.5px;
  color:var(--crimson); margin-bottom:.9rem;
}
.supply-group ul{ display:grid; gap:.55rem; }
.supply-group li{
  position:relative; padding-left:1.4rem; font-size:15.5px; line-height:1.7; color:#5b5b5b;
}
.supply-group li::before{
  content:""; position:absolute; left:0; top:.6rem;
  width:7px; height:7px; background:var(--yellow); transform:rotate(45deg);
}

/* ---------- Puces de niveau ---------- */
.level-chip{
  display:inline-flex; align-items:center; padding:.55rem 1.35rem;
  border-radius:999px; border:1.5px solid rgba(88,16,26,.25);
  font-family:'Fredoka',sans-serif; font-weight:500; font-size:15.5px; color:var(--burgundy);
  transition:all .25s ease;
}
.level-chip:hover{ background:var(--burgundy); border-color:var(--burgundy); color:#fff; }
.level-chip.is-current{ background:var(--crimson); border-color:var(--crimson); color:#fff; }

/* ---------- Cartes de date ---------- */
.date-card{
  background:#fff; border:1px solid rgba(0,0,0,.07); border-top:4px solid var(--crimson);
  border-radius:14px; padding:1.4rem 1.2rem; text-align:center;
  font-size:16px; line-height:1.7; color:#555;
}

/* ---------- Cartes de contact ---------- */
.contact-card{
  background:#fff; border:1px solid rgba(0,0,0,.07); border-radius:20px;
  padding:2rem 1.6rem; text-align:center; height:100%;
  transition:transform .35s ease, box-shadow .35s ease;
}
.contact-card:hover{ transform:translateY(-6px); box-shadow:0 22px 42px -26px rgba(88,16,26,.55); }
.contact-icon{
  display:grid; place-items:center; width:62px; height:62px; margin:0 auto 1.1rem;
  font-size:27px; background:var(--cream); border-radius:999px;
}
.contact-card h3{ font-family:'Fredoka',sans-serif; font-weight:600; font-size:20px; margin-bottom:.6rem; color:var(--ink); }
.contact-card p{ font-size:16px; line-height:1.85; color:#5f5f5f; }
.contact-card a{ color:var(--crimson); transition:color .2s ease; }
.contact-card a:hover{ color:var(--burgundy); }

.whatsapp-cta{
  display:inline-flex; align-items:center; gap:.7rem; padding:1rem 2.2rem;
  background:#25D366; color:#fff; border-radius:999px;
  font-family:'Fredoka',sans-serif; font-weight:600; font-size:16.5px;
  transition:transform .25s ease, box-shadow .25s ease;
}
.whatsapp-cta:hover{ transform:translateY(-3px); box-shadow:0 14px 28px -14px rgba(37,211,102,.8); }

/* ---------- Formes organiques ---------- */
.blob-shape{ border-radius:56% 44% 47% 53% / 46% 42% 58% 54%; }
.blob-shape--alt{ border-radius:48% 52% 44% 56% / 52% 46% 54% 48%; }
.blob-accent{
  position:absolute; z-index:0; top:6%; right:-6%; width:78%; height:88%;
  border-radius:56% 44% 47% 53% / 46% 42% 58% 54%;
  animation:float 7s ease-in-out infinite;
}
.blob-accent--left{ right:auto; left:-6%; top:-4%; }
@keyframes float{
  0%,100%{ transform:translateY(0) rotate(0deg); }
  50%    { transform:translateY(-16px) rotate(4deg); }
}

.star-shape{
  clip-path:polygon(
    50% 0%, 60% 8%, 72% 4%, 78% 15%, 91% 15%, 92% 28%, 100% 36%,
    95% 48%, 100% 62%, 91% 70%, 92% 84%, 78% 85%, 72% 96%, 60% 92%,
    50% 100%, 40% 92%, 28% 96%, 22% 85%, 9% 84%, 8% 70%, 0% 62%,
    5% 48%, 0% 36%, 8% 28%, 9% 15%, 22% 15%, 28% 4%, 40% 8%
  );
}

/* ---------- Accordéon ---------- */
.acc-item{
  background:var(--cream); border-radius:999px;
  transition:background .3s ease, border-radius .3s ease, box-shadow .3s ease;
}
.acc-item.is-open{ background:transparent; border-radius:26px; box-shadow:0 0 0 1px rgba(0,0,0,.07); }

.acc-head{
  display:flex; align-items:center; justify-content:space-between; gap:1.25rem;
  width:100%; text-align:left; padding:1.15rem 1rem 1.15rem 2rem;
  font-family:'Fredoka',sans-serif; font-weight:600; font-size:17px;
  color:var(--ink); border-radius:inherit; transition:color .3s ease, background .3s ease;
}
.acc-item.is-open .acc-head{ background:var(--burgundy); color:#fff; border-radius:26px 26px 0 0; }

.acc-icon{
  flex:0 0 auto; width:44px; height:44px; border-radius:999px;
  display:grid; place-items:center; background:#fff;
  box-shadow:0 6px 16px -10px rgba(0,0,0,.4);
  transition:background .3s ease, transform .3s ease;
}
.acc-icon svg{ width:13px; height:9px; fill:none; stroke:var(--ink); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.acc-item.is-open .acc-icon{ background:var(--crimson); transform:rotate(180deg); }
.acc-item.is-open .acc-icon svg{ stroke:#fff; }

.acc-panel{ max-height:0; overflow:hidden; transition:max-height .45s cubic-bezier(.25,.8,.3,1); }
.acc-panel p{ padding:1.4rem 2rem 1.7rem; text-align:justify; font-size:16px; line-height:1.85; color:#555; }

/* ---------- Formulaires ---------- */
.field label{ display:block; margin-bottom:.5rem; font-size:16px; font-weight:500; color:var(--ink); }
.field .req{ color:var(--crimson); }

.field input,
.field select,
.field textarea{
  width:100%; padding:.95rem 1.1rem; border:1px solid #DCDCDC; border-radius:10px;
  font-family:'Jost',sans-serif; font-size:16px; color:var(--ink); background:#fff;
  transition:border-color .25s ease, box-shadow .25s ease;
}
.field input::placeholder,
.field textarea::placeholder{ color:#B4B4B4; }
.field input:focus,
.field select:focus,
.field textarea:focus{
  outline:none; border-color:var(--crimson); box-shadow:0 0 0 3px rgba(232,6,60,.12);
}
.field.has-error input,
.field.has-error select,
.field.has-error textarea{ border-color:var(--crimson); }
.field .err{ display:none; margin-top:.35rem; font-size:13.5px; color:var(--crimson); }
.field.has-error .err{ display:block; }

.enroll-form fieldset{ border:1px solid rgba(0,0,0,.09); border-radius:20px; padding:1.8rem 1.5rem; }
.enroll-form legend{
  padding:0 .75rem; font-family:'Fredoka',sans-serif; font-weight:600;
  font-size:19px; color:var(--burgundy);
}

.field-check{ display:flex; align-items:flex-start; gap:.75rem; }
.field-check input{ margin-top:.3rem; width:18px; height:18px; accent-color:var(--crimson); flex:0 0 auto; }
.field-check label{ font-size:15.5px; line-height:1.7; color:#5b5b5b; }

/* ---------- Pied de page ---------- */
.footer-doodles{
  background-image:url('../img/footer-bg.png');
  background-size:cover; background-position:center; opacity:.22;
}

.ft-title{
  position:relative; display:inline-block;
  font-family:'Fredoka',sans-serif; font-weight:600; font-size:26px; padding-bottom:.6rem;
}
.ft-title::after{
  content:""; position:absolute; left:0; bottom:0;
  width:38px; height:4px; border-radius:2px; background:var(--yellow);
}

.ft-icon{ display:grid; place-items:center; width:42px; height:42px; border-radius:999px; background:var(--yellow); }
.ft-icon svg{ width:20px; height:20px; }

.ft-link{ position:relative; padding-left:1.15rem; font-size:16.5px; transition:color .2s ease, padding-left .2s ease; }
.ft-link::before{
  content:""; position:absolute; left:0; top:50%; margin-top:-4px;
  width:8px; height:8px; background:var(--yellow); transform:rotate(45deg);
}
.ft-link:hover{ color:var(--yellow); padding-left:1.5rem; }

/* ---------- Boutons flottants (WhatsApp + retour en haut) ---------- */
#to-top.is-visible{ opacity:1; transform:translateY(0); pointer-events:auto; }
#to-top:hover{ background:var(--burgundy); }

.wa-float{ position:relative; background:#25D366; }
.wa-float:hover{ transform:scale(1.08); background:#1EBE5A; }

/* Halo qui pulse pour attirer l'oeil sans gener la lecture. */
.wa-float::after{
  content:""; position:absolute; inset:0; border-radius:999px;
  border:2px solid #25D366; animation:wa-pulse 2.2s ease-out infinite;
}
@keyframes wa-pulse{
  0%{ transform:scale(1); opacity:.65; }
  70%{ transform:scale(1.55); opacity:0; }
  100%{ transform:scale(1.55); opacity:0; }
}

/* Infobulle affichee au survol sur ecran large. */
.wa-float-tip{
  position:absolute; right:calc(100% + 12px); top:50%; transform:translateY(-50%) translateX(6px);
  white-space:nowrap; padding:.45rem .8rem; border-radius:999px;
  background:var(--burgundy); color:#fff; font-size:14px; font-weight:600;
  opacity:0; pointer-events:none; transition:opacity .25s ease, transform .25s ease;
}
.wa-float:hover .wa-float-tip,
.wa-float:focus-visible .wa-float-tip{ opacity:1; transform:translateY(-50%) translateX(0); }

/* ---------- Apparitions au défilement ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
.reveal.is-visible{ opacity:1; transform:none; }

@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  .wa-float::after{ animation:none; }
  .wa-float:hover{ transform:none; }
  .blob-accent{ animation:none; }
  .hero-slide{ transition:opacity .3s ease; transform:none; }
}

/* ---------- Ajustements responsives ---------- */
@media (max-width:1023px){
  html{ scroll-padding-top:90px; }
  .cycle-body{ margin-top:-100px; }
}
@media (max-width:640px){
  .acc-head{ padding-left:1.4rem; font-size:16px; }
  .acc-panel p{ padding:1.2rem 1.4rem 1.5rem; }
  .acc-item{ border-radius:26px; }
  .btn-primary,.btn-gold{ padding:.8rem 1.6rem; font-size:15px; }
  #floating-actions{ bottom:1.25rem; right:1.25rem; gap:.6rem; }
  #to-top,.wa-float{ width:3rem; height:3rem; }
  .wa-float svg{ width:1.5rem; height:1.5rem; }
  .wa-float-tip{ display:none; }
  .step img{ width:96px; height:96px; }
  .stat-value{ font-size:38px; }
  .enroll-form fieldset{ padding:1.4rem 1.1rem; }
  .enroll-form legend{ font-size:17px; }
}

/* =========================================================
   Ajouts de la version dynamique (contenu venant de la base)
   ========================================================= */

/* Corps de texte riche saisi dans l'administration */
.prose-cen p{
  font-size:16.5px; line-height:1.9; color:#5f5f5f;
}
.prose-cen p + p{ margin-top:1.25rem; }
.prose-cen strong{ font-weight:600; color:var(--ink); }
.prose-cen a{ color:var(--crimson); text-decoration:underline; text-underline-offset:3px; }
.prose-cen a:hover{ color:var(--burgundy); }
.prose-cen ul{ margin-top:1rem; display:grid; gap:.5rem; }
.prose-cen li{ position:relative; padding-left:1.4rem; font-size:16px; line-height:1.8; color:#5f5f5f; }
.prose-cen li::before{
  content:""; position:absolute; left:0; top:.65rem;
  width:7px; height:7px; background:var(--yellow); transform:rotate(45deg);
}
.prose-justify p{ text-align:justify; }

/* Drapeaux du sélecteur de langue */
.flag{
  width:20px; height:14px; border-radius:2px; object-fit:cover;
  box-shadow:0 0 0 1px rgba(0,0,0,.08);
}

/* Bloc de fournitures groupé par niveau */
.supply-block + .supply-block{ margin-top:3rem; }

/* Messages de validation renvoyes par Symfony */
.field .err ul{ margin:0; padding:0; list-style:none; }
.field .err li{ font-size:13.5px; color:var(--crimson); }
.field .err:empty{ display:none; }
