/* ==================================================================
   EDE ACADEMY : feuille commune à tout le site
   Polices, charte, en-tête, pied de page, boutons.
   Charte graphique reprise du thème Neve : blanc, gris ardoise,
   bleu d'accent, bandes gris clair, angles peu arrondis.
   Les pages livrées avec le thème ont en plus leur propre feuille
   dans assets/css/pages/ ; le blog a assets/css/blog.css.
   ================================================================== */

/* Polices hébergées sur le site : aucun appel à Google Fonts. */
@font-face{
  font-family:'Nunito Sans'; font-style:normal; font-weight:200 1000; font-display:swap;
  src:url('../fonts/nunito-sans-latin-variable.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Bricolage Grotesque'; font-style:normal; font-weight:200 800; font-display:swap;
  src:url('../fonts/bricolage-grotesque-latin-variable.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Charte. Les anciens noms de variables sont gardés (les feuilles des
   pages les utilisent) ; seules leurs valeurs changent. */
:root{
  --marine:#1F2937;
  --marine-nuit:#111827;
  --marine-brume:#9CA3AF;
  --bleu:#2563EB;
  --bleu-access:#2563EB;
  --bleu-clair:#93C5FD;
  --bleu-pale:#F1F5F9;
  --bleu-ombre:#E5E7EB;
  --bleu-fort:#111827;
  --ambre:#2563EB;
  --ambre-hover:#1D4ED8;
  --ambre-pale:#EFF6FF;
  --fond:#FFFFFF;
  --border:#E5E7EB;
  --text:#1F2937;
  --text-muted:#5B6472;
  --valide:#1F7A55;
  --radius:8px;
  --radius-l:12px;
  --large:1180px;
  --ombre:0 1px 3px rgba(17,24,39,.06);
  --ombre-cta:none;
  --titre:'Bricolage Grotesque', 'Nunito Sans', -apple-system, 'Segoe UI', Arial, sans-serif;
  --texte:'Nunito Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
}

*, *::before, *::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} }
body{
  margin:0; background:var(--fond); color:var(--text);
  font-family:var(--texte); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img{max-width:100%; height:auto;}
button, input, select, textarea{font:inherit; color:inherit;}
table{border-collapse:collapse; border-spacing:0;}
figure{margin:0;}

/* Lien d'évitement */
.ede-evitement{
  position:absolute; left:12px; top:-80px; z-index:200;
  padding:12px 18px; border-radius:4px; background:var(--marine-nuit); color:#fff;
  font-weight:600; text-decoration:none; transition:top .15s ease;
}
.ede-evitement:focus{top:12px;}

/* Boutons communs (blog, commande, formulaire, page 404) */
.ede-bouton{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:48px; padding:12px 24px; border-radius:4px; border:2px solid var(--bleu);
  background:var(--bleu); color:#fff; font-family:var(--texte); font-size:16px; font-weight:600;
  line-height:1.25; text-decoration:none; text-align:center; cursor:pointer;
  transition:background .15s ease, border-color .15s ease, color .15s ease;
}
.ede-bouton:hover{background:var(--ambre-hover); border-color:var(--ambre-hover); color:#fff;}
.ede-bouton:focus-visible{outline:3px solid var(--bleu-clair); outline-offset:3px;}
.ede-bouton-ligne{background:transparent; border-color:var(--marine); color:var(--marine);}
.ede-bouton-ligne:hover{background:var(--marine); border-color:var(--marine); color:#fff;}
.ede-bouton-clair{background:transparent; border-color:rgba(255,255,255,.7); color:#fff;}
.ede-bouton-clair:hover{background:#fff; border-color:#fff; color:var(--bleu);}
.ede-bouton-blanc{background:#fff; border-color:#fff; color:var(--bleu);}
.ede-bouton-blanc:hover{background:#EFF6FF; border-color:#EFF6FF; color:var(--ambre-hover);}

/* ------------------------------------------------------------------
   EN-TÊTE
   ------------------------------------------------------------------ */
.edem{background:#fff !important; border-bottom:1px solid #E5E7EB;}
500;600;700&display=swap');
.edem, .edem *, .edem *::before, .edem *::after{box-sizing:border-box !important;}
.edem{
  position:relative; z-index:95; width:100%;
  background:transparent !important;
  font-family:'Nunito Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif !important;
  -webkit-font-smoothing:antialiased;
}
.edem .edem-in{
  max-width:1180px; margin:0 auto !important;
  padding:10px clamp(16px, 4vw, 28px) !important;
  display:flex !important; align-items:center; gap:clamp(14px, 2.4vw, 30px);
  min-height:88px;
}
.edem a{text-decoration:none !important; -webkit-tap-highlight-color:rgba(37,99,235,.18);}
.edem ul, .edem li{list-style:none !important; margin:0 !important; padding:0 !important;}
.edem li::before, .edem li::marker{content:none !important; display:none !important;}
.edem .edem-logo{display:inline-flex !important; align-items:center; flex:0 0 auto; line-height:0 !important;}
.edem .edem-logo img{
  display:block !important; height:72px !important; width:auto !important;
  max-width:none !important; margin:0 !important; object-fit:contain;
}
.edem .edem-nav{display:flex !important; align-items:center; gap:clamp(4px, 1vw, 10px); flex:1 1 auto; min-width:0;}
.edem .edem-lien, .edem .edem-deroule{
  position:relative; display:inline-flex !important; align-items:center; gap:6px;
  min-height:44px; padding:0 12px !important; border:0 !important; background:transparent !important;
  font-family:'Nunito Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif !important; font-size:15px !important; font-weight:500 !important;
  line-height:1.3 !important; color:#1F2937 !important; cursor:pointer;
  border-radius:10px !important; text-transform:none !important; letter-spacing:normal !important;
  transition:background .15s ease;
}
.edem .edem-lien[aria-current="page"]::after, .edem .edem-deroule.en-cours::after{
  content:""; position:absolute; left:12px; right:12px; bottom:4px;
  height:3px; border-radius:3px; background:#2563EB;
}
.edem .edem-chevron{
  width:7px; height:7px; margin-top:-3px;
  border-right:2px solid #2563EB; border-bottom:2px solid #2563EB;
  transform:rotate(45deg); transition:transform .18s ease;
}
.edem .edem-deroule[aria-expanded="true"] .edem-chevron{transform:rotate(225deg); margin-top:3px;}
@media (hover:hover) and (pointer:fine){
  .edem .edem-lien:hover, .edem .edem-deroule:hover{background:rgba(37,99,235,.10) !important;}
}
.edem :focus-visible{outline:3px solid #2563EB !important; outline-offset:2px;}
.edem .edem-groupe{position:relative;}
.edem .edem-sous{
  display:none; position:absolute; top:calc(100% + 6px); left:0; min-width:250px;
  background:#FFFFFF !important; border:1px solid #E5E7EB; border-radius:14px;
  box-shadow:0 14px 34px rgba(17,24,39,.12); padding:8px !important; z-index:100;
}
.edem .edem-groupe.ouvert .edem-sous{display:block;}
@media (hover:hover) and (pointer:fine){
  .edem .edem-groupe:hover .edem-sous{display:block;}
  .edem .edem-groupe:hover .edem-chevron{transform:rotate(225deg); margin-top:3px;}
}
.edem .edem-sous a{
  display:flex !important; align-items:center; min-height:44px;
  padding:10px 12px !important; border-radius:10px;
  font-family:'Nunito Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif !important; font-size:15px !important; font-weight:500 !important;
  line-height:1.35 !important; color:#1F2937 !important;
}
.edem .edem-sous a[aria-current="page"]{background:#F1F5F9 !important; color:#2563EB !important;}
@media (hover:hover) and (pointer:fine){ .edem .edem-sous a:hover{background:#F1F5F9 !important;} }
.edem .edem-actions{display:flex !important; align-items:center; gap:clamp(8px, 1.4vw, 16px); flex:0 0 auto; margin-left:auto;}
.edem .edem-espace{
  display:inline-flex !important; align-items:center; gap:7px; min-height:44px; padding:0 10px !important;
  font-family:'Nunito Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif !important; font-size:15px !important; font-weight:600 !important;
  line-height:1.3 !important; color:#2563EB !important; border-radius:10px;
}
.edem .edem-espace[aria-current="page"]{text-decoration:underline !important; text-underline-offset:5px;}
.edem .edem-perso{
  width:16px; height:16px; border-radius:50%; border:2px solid #2563EB;
  position:relative; flex:0 0 auto; margin-top:-6px;
}
.edem .edem-perso::after{
  content:""; position:absolute; left:-5px; right:-5px; top:13px; height:9px;
  border:2px solid #2563EB; border-bottom:0; border-radius:12px 12px 0 0;
}
@media (hover:hover) and (pointer:fine){ .edem .edem-espace:hover{background:rgba(37,99,235,.10) !important;} }
.edem .edem-burger{
  display:none; width:46px; height:46px; flex:0 0 auto;
  align-items:center; justify-content:center; flex-direction:column; gap:5px;
  border:1px solid #D1D5DB !important; border-radius:12px !important;
  background:#FFFFFF !important; cursor:pointer; padding:0 !important;
}
.edem .edem-burger span{display:block; width:20px; height:2px; border-radius:2px; background:#1F2937; transition:transform .2s ease, opacity .2s ease;}
.edem .edem-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.edem .edem-burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.edem .edem-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.edem .edem-panneau{
  display:none; position:absolute; left:0; right:0; top:100%;
  background:#FFFFFF !important; border-top:1px solid #E5E7EB;
  box-shadow:0 18px 30px rgba(17,24,39,.12);
  padding:10px clamp(16px, 4vw, 28px) 18px !important;
  max-height:calc(100vh - 90px); overflow-y:auto;
}
.edem.panneau-ouvert .edem-panneau{display:block;}
.edem .edem-panneau .edem-titre{
  margin:10px 0 2px !important; padding:0 4px !important;
  font-family:'Nunito Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif !important; font-size:12px !important; font-weight:700 !important;
  letter-spacing:1.3px !important; text-transform:uppercase !important; color:#2563EB !important;
}
.edem .edem-panneau a.edem-p{
  display:flex !important; align-items:center; min-height:48px; padding:0 4px !important;
  border-bottom:1px solid #F1F5F9;
  font-family:'Nunito Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif !important; font-size:16px !important; font-weight:500 !important;
  color:#1F2937 !important; line-height:1.3 !important;
}
.edem .edem-panneau a.edem-p[aria-current="page"]{color:#2563EB !important; font-weight:600 !important;}
.edem .edem-panneau a.edem-p.retrait{padding-left:16px !important;}
.edem .edem-panneau .edem-espace{margin-top:10px; padding:0 4px !important;}
@media (max-width:899px){
  .edem .edem-in{min-height:70px; gap:10px;}
  .edem .edem-logo img{height:56px !important;}
  .edem .edem-nav, .edem .edem-actions .edem-espace{display:none !important;}
  .edem .edem-burger{display:inline-flex !important;}
}
@media (min-width:900px){ .edem .edem-panneau{display:none !important;} }
@media (prefers-reduced-motion:reduce){ .edem *{transition:none !important;} }
/* Deux menus déroulants côte à côte : le second s'aligne à droite s'il manque de place. */
.edem .edem-groupe + .edem-groupe .edem-sous{min-width:260px;}
.edem .edem-logo img{height:64px !important;}
@media (max-width:899px){ .edem .edem-logo img{height:50px !important;} }
@media (min-width:900px) and (max-width:1040px){
  .edem .edem-lien, .edem .edem-deroule{padding:0 8px !important; font-size:14.5px !important;}
}

/* Neve : en-tête. Liens alignés à droite, « Mon espace » en bouton plein. */
.edem .edem-in{min-height:76px;}
.edem .edem-nav{justify-content:flex-end; gap:2px;}
.edem .edem-lien, .edem .edem-deroule{font-size:14.5px !important; font-weight:500 !important; border-radius:4px !important;}
.edem .edem-sous{border-radius:8px; box-shadow:0 10px 30px rgba(17,24,39,.10);}
.edem .edem-sous a{border-radius:4px;}
.edem .edem-actions{margin-left:8px;}
.edem .edem-actions .edem-espace, .edem .edem-panneau .edem-espace{
  min-height:44px; padding:0 20px !important; border-radius:4px; background:#2563EB;
  color:#fff !important; font-weight:600 !important;
}
.edem .edem-panneau .edem-espace{margin-top:14px; justify-content:center; width:100%;}
.edem .edem-espace .edem-perso, .edem .edem-espace .edem-perso::after{border-color:#fff;}
@media (hover:hover) and (pointer:fine){
  .edem .edem-actions .edem-espace:hover{background:#1D4ED8 !important;}
}
.edem .edem-burger{border-radius:4px !important;}

/* ------------------------------------------------------------------
   PIED DE PAGE
   ------------------------------------------------------------------ */
.edef{
  background:var(--marine-nuit); color:#E5E7EB; font-family:var(--texte);
  font-size:15px; line-height:1.6; padding:clamp(40px, 5vw, 64px) 0 clamp(22px, 3vw, 30px);
}
.edef-in{max-width:var(--large); margin:0 auto; padding:0 clamp(16px, 4vw, 28px);}
.edef a{color:#E5E7EB; text-decoration:none; border-radius:6px;}
.edef a:hover{color:#fff; text-decoration:underline; text-underline-offset:4px;}
.edef a:focus-visible{outline:3px solid var(--bleu-clair); outline-offset:3px;}
.edef-haut{
  display:grid; gap:clamp(26px, 4vw, 48px);
  grid-template-columns:minmax(0, 1.5fr) repeat(3, minmax(0, 1fr));
  padding-bottom:clamp(26px, 3.4vw, 40px); border-bottom:1px solid rgba(255,255,255,.14);
}
.edef-logo{display:block; height:56px; width:auto; margin:0 0 12px;}
.edef-devise{margin:0 0 10px; font-family:var(--titre); font-weight:600; font-size:19px; color:#fff;}
.edef-texte{margin:0 0 16px; max-width:34ch; color:#B9C5D6;}
.edef-labels{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px;}
.edef-labels li{
  display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:999px;
  border:1px solid rgba(255,255,255,.18); font-size:13px; font-weight:500; color:#E5E7EB;
}
.edef-labels span{color:var(--bleu-clair); font-weight:700;}
.edef-col h2{
  margin:4px 0 12px; font-family:var(--texte); font-size:12.5px; font-weight:700;
  letter-spacing:1.4px; text-transform:uppercase; color:var(--bleu-clair);
}
.edef-col ul{list-style:none; margin:0; padding:0;}
.edef-col li{margin:0;}
.edef-col a{display:inline-flex; align-items:center; min-height:36px; overflow-wrap:anywhere;}
.edef-legal-nav{display:flex; flex-wrap:wrap; gap:6px 22px; padding:18px 0 10px;}
.edef-legal-nav a{font-weight:600; min-height:36px; display:inline-flex; align-items:center;}
.edef-legal{margin:0 0 8px; font-size:13px; line-height:1.7; color:#9CA3AF;}
.edef-legal strong{color:#E5E7EB; font-weight:600;}
.edef-legal .num{white-space:nowrap;}
@media (max-width:899px){
  .edef-haut{grid-template-columns:repeat(2, minmax(0, 1fr));}
  .edef-marque{grid-column:1 / -1;}
}
@media (max-width:519px){
  .edef-haut{grid-template-columns:1fr;}
}

/* ------------------------------------------------------------------
   BLOC D'INSCRIPTION (page de commande)
   ------------------------------------------------------------------ */
.ede-commande{padding:clamp(28px, 4vw, 48px) clamp(16px, 4vw, 28px) clamp(40px, 6vw, 72px);}
.ede-commande-in{
  max-width:760px; margin:0 auto; padding:clamp(22px, 4vw, 40px); text-align:center;
  background:#fff; border:1px solid var(--border); border-radius:var(--radius-l); box-shadow:var(--ombre);
}
.ede-commande h2{margin:0 0 .5em; font-family:var(--titre); font-size:clamp(22px, 3vw, 30px); line-height:1.2; color:var(--marine);}
.ede-commande p{margin:0 0 1em; color:var(--text);}
.ede-commande-actions{display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin:1.4em 0 1em !important;}
.ede-commande-note{font-size:14px; color:var(--text-muted) !important;}
.ede-commande-note a{color:var(--bleu-access);}
.ede-commande-admin{
  margin:1.4em 0 0 !important; padding:12px 16px; border-radius:8px; text-align:left;
  background:var(--ambre-pale); border:1px dashed var(--ambre); font-size:14px;
}

/* ------------------------------------------------------------------
   FORMULAIRE DE CONTACT
   ------------------------------------------------------------------ */
.ede-form-bloc{
  margin:clamp(20px, 3vw, 32px) 0; padding:clamp(20px, 3.4vw, 36px);
  background:#fff; border:1px solid var(--border); border-radius:var(--radius-l); box-shadow:var(--ombre);
  font-family:var(--texte); font-size:16px; line-height:1.5; color:var(--text); text-align:left;
}
.ede-form p{margin:0 0 16px;}
.ede-form-ligne{display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap:0 18px;}
.ede-form label{display:block; margin:0 0 6px; font-size:14.5px; font-weight:600; color:var(--marine); line-height:1.4;}
.ede-form input[type="text"], .ede-form input[type="email"], .ede-form select, .ede-form textarea{
  display:block; width:100%; min-height:50px; padding:12px 14px; font-size:16px; line-height:1.4;
  color:var(--text); background:#fff; border:1px solid #D1D5DB; border-radius:4px;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.ede-form textarea{min-height:150px; resize:vertical;}
.ede-form input:focus, .ede-form select:focus, .ede-form textarea:focus{
  outline:0; border-color:var(--bleu-access); box-shadow:0 0 0 3px rgba(37,99,235,.22);
}
.ede-form-accord{display:flex; gap:10px; align-items:flex-start;}
.ede-form-accord input{flex:0 0 auto; width:20px; height:20px; margin:2px 0 0; accent-color:var(--bleu-access);}
.ede-form-accord label{margin:0; font-size:14px; font-weight:400; color:var(--text-muted);}
.ede-form-accord a{color:var(--bleu-access) !important; text-decoration:underline !important;}
.ede-form-envoi{margin:0 !important;}
.ede-form-piege{position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden;}
.ede-form-etat{margin:0 0 18px !important; padding:14px 18px; border-radius:8px; font-size:15.5px;}
.ede-form-etat.ok{background:#E9F6F0; border:1px solid #BFE3D2; color:#14573C;}
.ede-form-etat.erreur{background:#FDF1EE; border:1px solid #F3CFC6; color:#8A2A16;}
.ede-form-etat a{color:inherit !important; text-decoration:underline !important;}
