/* ============================================================================
   COCO KIDS 974 — mise en page « affiche » (fidèle à la maquette de référence)
   Fichier généré par tools/build_css.py — ne pas éditer à la main.
   ========================================================================== */
:root{
  --ivoire:#FEFDF8; --creme:#FBF5E6; --blanc:#FFFEFA;
  --petrol:#074A64; --petrol-2:#0E5B78; --texte:#2E659A; --texte-2:#3A729A;
  --teal:#01686E; --teal-fonce:#015460; --teal-clair:#68A4A6;
  --or:#BD8433; --or-2:#B98336; --or-clair:#D9A441; --or-pale:#F3E7CE;
  --rose:#FD7586; --vert:#0C4D39;
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;
  --script:"Dancing Script","Brush Script MT",cursive;
  --manu:"Caveat","Segoe Print","Bradley Hand",cursive;
  --ombre:0 18px 40px -22px rgba(7,74,100,.45);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--ivoire);color:var(--texte);font-family:var(--serif);font-size:16px;line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--serif);color:var(--petrol);margin:0;font-weight:700;line-height:1.12;letter-spacing:-.01em}
p{margin:0}
img{max-width:100%;display:block}
a{color:var(--teal)}
.script{font-family:var(--script);font-weight:700;color:var(--or);line-height:1.15}
.manu{font-family:var(--manu);font-weight:700}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
:focus-visible{outline:3px solid var(--or-clair);outline-offset:3px;border-radius:6px}
.a-confirmer{display:inline-block;font-size:.72em;font-weight:700;letter-spacing:.03em;background:var(--or-pale);color:#6B4B00;border-radius:5px;padding:1px 7px;vertical-align:middle;font-family:system-ui,sans-serif}

/* --- boutons ---------------------------------------------------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--serif);font-weight:600;
  font-size:15px;text-decoration:none;cursor:pointer;border:0;border-radius:100px;padding:12px 26px;min-height:46px;
  transition:transform .15s,box-shadow .15s,filter .15s;white-space:nowrap}
.btn:hover{transform:translateY(-1px);filter:brightness(1.05)}
.btn svg{width:19px;height:19px;flex:none}
.btn-teal{background:var(--teal);color:#fff;box-shadow:0 8px 20px -10px rgba(1,104,110,.8)}
.btn-or{background:linear-gradient(180deg,#CD9640,var(--or-2));color:#fff;box-shadow:0 8px 18px -10px rgba(185,131,54,.9)}
.btn-ghost{background:var(--blanc);color:var(--teal);border:2px solid var(--teal)}

/* --- cadre général ------------------------------------------------------ */
.affiche{container-type:inline-size;position:relative;max-width:1400px;margin:0 auto;background:var(--ivoire);overflow:hidden}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px;position:relative;z-index:2}

/* --- en-tête ------------------------------------------------------------ */
.entete{position:relative;z-index:5}
.entete .barre{display:flex;align-items:center;gap:16px;padding:14px 18px 0}
.logo{display:block;flex:none;text-decoration:none}
.logo img{width:150px;height:auto}
.nav-principale{margin-left:auto}
.nav-principale ul{display:flex;gap:22px;list-style:none;margin:0;padding:0}
.nav-principale a{position:relative;text-decoration:none;color:var(--petrol-2);font-weight:400;font-size:15px;padding:12px 2px;display:block;white-space:nowrap}
.nav-principale a::after{content:"";position:absolute;left:0;right:0;bottom:8px;height:1.5px;background:var(--or-clair);transform:scaleX(0);transition:transform .18s;transform-origin:left}
.nav-principale a:hover::after,.nav-principale a[aria-current="page"]::after{transform:scaleX(1)}
.entete .btn{padding:10px 20px;font-size:14.5px;min-height:44px}
.burger{display:none;margin-left:auto;background:none;border:0;padding:10px;cursor:pointer;width:48px;height:48px;align-items:center;justify-content:center;border-radius:12px}
.burger span{display:block;position:relative;width:24px;height:2.5px;background:var(--petrol);border-radius:2px;transition:transform .2s}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:24px;height:2.5px;background:var(--petrol);border-radius:2px;transition:transform .2s}
.burger span::before{top:-8px}.burger span::after{top:8px}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{transform:translateY(8px) rotate(45deg)}
.burger[aria-expanded="true"] span::after{transform:translateY(-8px) rotate(-45deg)}
.menu-mobile{display:none;position:fixed;inset:0;z-index:70;background:rgba(7,74,100,.45)}
.menu-mobile[hidden]{display:none!important}
.menu-mobile.ouvert{display:block}
.menu-mobile .panneau{position:absolute;top:0;right:0;bottom:0;width:min(88vw,340px);background:var(--ivoire);box-shadow:-10px 0 40px rgba(7,74,100,.3);padding:18px 20px 28px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}
.menu-mobile .fermer{align-self:flex-end;background:none;border:0;font-size:30px;line-height:1;color:var(--petrol);cursor:pointer;width:48px;height:48px;border-radius:12px}
.menu-mobile a{display:block;padding:14px 12px;text-decoration:none;color:var(--petrol);font-weight:600;font-size:17px;border-radius:12px;min-height:48px}
.menu-mobile a:hover,.menu-mobile a[aria-current="page"]{background:var(--or-pale)}
.menu-mobile .btn{margin-top:14px}

/* --- décor : coins (mobile / tablette) ---------------------------------- */
.coin{position:absolute;z-index:1;pointer-events:none;background-repeat:no-repeat;background-size:100% auto}
.coin-tl{top:0;left:0;width:170px;aspect-ratio:498/510;background-image:url("../assets/img/coin_tl.png")}
.coin-tr{top:0;right:0;width:180px;aspect-ratio:547/517;background-image:url("../assets/img/coin_tr.png")}
.coin-bl{bottom:0;left:0;width:70px;aspect-ratio:142/375;background-image:url("../assets/img/coin_bl.png")}
.coin-br{bottom:0;right:0;width:150px;aspect-ratio:345/366;background-image:url("../assets/img/coin_br.png")}
.hibiscus{position:absolute;z-index:4;pointer-events:none;width:96px;aspect-ratio:216/173;background:url("../assets/img/hibiscus.png") center/contain no-repeat;filter:drop-shadow(0 6px 10px rgba(7,74,100,.25))}

/* --- hero --------------------------------------------------------------- */
.hero{position:relative;padding:26px 22px 0}
.hero .colonne{text-align:center;max-width:460px;margin:0 auto 22px}
.hero h1{font-size:clamp(30px,8.2vw,40px);text-wrap:balance}
.hero h1 .script{display:block;font-size:1.32em;margin-top:.08em}
.hero .coeur{display:block;width:30px;height:30px;margin:12px auto 0;color:var(--or)}
.hero .coeur svg{width:100%;height:100%}
.photo-hero{position:relative;max-width:640px;margin:0 auto;border-radius:90px 46px 130px 50px;overflow:visible}
.photo-hero .cadre-photo{position:relative;border-radius:inherit;overflow:hidden;aspect-ratio:600/430;
  box-shadow:0 0 0 1.5px rgba(217,164,65,.85),var(--ombre)}
.photo-hero img{width:100%;height:100%;object-fit:cover;object-position:55% 40%}
.cartouche{position:absolute;right:-8px;bottom:-14px;z-index:5;transform:rotate(-7deg);background:#FFFEFA;
  padding:9px 16px;border-radius:5px;box-shadow:0 10px 22px -12px rgba(7,74,100,.6),0 0 0 1px rgba(7,74,100,.06);
  font-family:var(--manu);font-weight:700;font-size:19px;line-height:1.15;color:var(--petrol-2);width:max-content;max-width:210px;text-align:center}
.cartouche em{font-style:normal;color:var(--rose)}
.hero .hibiscus{left:-22px;bottom:-30px}

/* --- bandeau de réassurance --------------------------------------------- */
.reassurance{position:relative;z-index:3;margin:26px auto 0;max-width:1000px;padding:0 22px}
.reassurance ul{list-style:none;margin:0;padding:8px 10px;display:grid;grid-template-columns:1fr;background:var(--blanc);
  border-radius:30px;box-shadow:0 16px 36px -22px rgba(7,74,100,.5),0 0 0 1px rgba(7,74,100,.05)}
.reassurance li{display:flex;align-items:center;gap:12px;padding:10px 14px;font-size:13.5px;line-height:1.35;color:var(--texte-2)}
.reassurance li svg{width:30px;height:30px;flex:none;color:var(--or)}
.reassurance li:nth-child(3) svg{color:var(--teal)}
.reassurance li b{display:block;font-weight:600;color:var(--texte-2)}

/* --- titres de section -------------------------------------------------- */
.titre-section{text-align:center;margin:0 auto 22px;max-width:760px;position:relative;z-index:2}
.titre-section h2{font-size:clamp(28px,7vw,44px);line-height:1.1}
.titre-section h2 .script{font-size:1.08em}
.titre-section h2.orne{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.titre-section h2 .fioriture{display:inline-block;width:46px;height:18px;color:var(--or-clair);vertical-align:middle;margin:0 8px;flex:none}
.titre-section h2 .fioriture svg{display:block;width:100%;height:100%}
.titre-section h2 .coeur-rose{display:inline-block;width:20px;height:20px;color:var(--rose);vertical-align:middle;margin-left:6px;flex:none}
.titre-section h2 .coeur-rose svg{display:block;width:100%;height:100%}
.titre-section p{margin-top:6px;font-size:16px;color:var(--texte)}
.sur-titre{display:block;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal-clair);font-weight:600;margin-bottom:8px;font-family:system-ui,sans-serif}

/* --- encarts (univers) -------------------------------------------------- */
.section{position:relative;padding:34px 0}
.univers{display:grid;grid-template-columns:1fr;gap:22px;position:relative;z-index:2}
.encart{position:relative;background:var(--blanc);border-radius:26px;box-shadow:0 18px 40px -24px rgba(7,74,100,.5),0 0 0 1px rgba(7,74,100,.05);
  display:flex;flex-direction:column;text-align:center;padding:0 0 22px;font:inherit;color:inherit;cursor:pointer;border:0;transition:transform .18s,box-shadow .18s}
.encart:hover{transform:translateY(-3px);box-shadow:0 26px 46px -24px rgba(7,74,100,.55),0 0 0 1px rgba(7,74,100,.06)}
.encart .visuel{aspect-ratio:290/215;overflow:hidden;border-radius:26px 26px 22px 22px;background:var(--creme);position:relative}
.encart .visuel img{width:100%;height:100%;object-fit:cover}
.encart .corps{padding:44px 18px 0;display:flex;flex-direction:column;align-items:center;gap:8px;flex:1;position:relative}
.encart .medaillon{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);width:62px;height:62px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#E4C07A,var(--or-clair) 45%,var(--or-2));
  border:4px solid var(--blanc);box-shadow:0 10px 22px -12px rgba(185,131,54,.95);color:#fff}
.encart .medaillon svg{width:30px;height:30px}
.encart h3{font-size:21px;font-weight:600}
.encart .accroche{display:none}
.encart p.resume{font-size:14px;color:var(--texte-2);flex:1;max-width:32ch}
.encart .ouvrir{display:inline-flex;align-items:center;justify-content:center;gap:9px;margin-top:8px;background:linear-gradient(180deg,#CD9640,var(--or-2));color:#fff;
  font-weight:600;font-size:15px;padding:9px 26px;border-radius:100px;min-height:40px;box-shadow:0 8px 18px -10px rgba(185,131,54,.9)}
.encart .ouvrir svg{width:16px;height:16px;transition:transform .18s}
.encart:hover .ouvrir svg{transform:translateX(3px)}
.badge-temp,.badge-droit{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.03em;border-radius:5px;padding:2px 8px;margin-top:8px;font-family:system-ui,sans-serif}
.badge-temp{background:var(--or-pale);color:#6B4B00}
.badge-droit{background:#FBE4DE;color:#8E2C18}

/* panneau de détail d'un univers */
.detail{border-radius:26px;background:var(--blanc);margin-top:22px;overflow:hidden;box-shadow:0 18px 40px -24px rgba(7,74,100,.5),0 0 0 1px rgba(7,74,100,.06);position:relative;z-index:2}
.detail[hidden]{display:none}
.detail .tete{display:flex;align-items:center;gap:14px;padding:18px 22px;flex-wrap:wrap;background:linear-gradient(180deg,var(--creme),#F7EEDA);border-bottom:1px solid rgba(185,127,47,.28)}
.detail .tete h3{font-size:22px;flex:1;min-width:200px}
.detail .fermer{background:none;border:2px solid var(--teal);color:var(--teal);border-radius:100px;padding:9px 18px;font:inherit;font-weight:600;font-size:14px;cursor:pointer;min-height:44px}
.detail .liste{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;padding:22px}
.detail article{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start}
.detail article img{width:100%;height:190px;object-fit:cover;border-radius:16px;box-shadow:0 8px 20px -14px rgba(7,74,100,.6)}
.detail article h4{font-size:17px;margin-bottom:5px}
.detail article p{font-size:14px;color:var(--texte-2)}

/* --- bloc événement ----------------------------------------------------- */
.bloc-evt{display:grid;grid-template-columns:1fr;gap:24px;align-items:center;position:relative;z-index:2}
.bloc-evt .visuel{position:relative;border-radius:100px 60px 34px 110px;overflow:visible}
.bloc-evt .cadre-photo{border-radius:inherit;overflow:hidden;aspect-ratio:500/210;box-shadow:0 0 0 1.5px rgba(217,164,65,.85),var(--ombre)}
.bloc-evt .visuel img{width:100%;height:100%;object-fit:cover;object-position:center 45%}
.bloc-evt .manuscrit{position:absolute;left:22px;top:18px;z-index:3;transform:rotate(-14deg);color:#FFFDF6;font-family:var(--manu);font-weight:700;
  font-size:20px;line-height:1.1;width:150px;text-shadow:0 2px 10px rgba(0,0,0,.55),0 1px 2px rgba(0,0,0,.6)}
.bloc-evt .manuscrit i{display:block;font-style:normal;margin-top:6px;font-size:22px}
.bloc-evt h2{font-size:clamp(24px,6vw,30px)}
.bloc-evt .liste{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;margin:16px 0 0;padding:0;list-style:none}
.bloc-evt .liste li{display:flex;gap:9px;align-items:flex-start;font-size:14.5px;color:var(--texte-2)}
.bloc-evt .liste svg{width:18px;height:18px;color:var(--or);flex:none;margin-top:2px}
.bloc-evt .signature{font-family:var(--manu);font-weight:700;font-size:23px;line-height:1.05;color:var(--or);margin-top:16px;transform:rotate(-8deg);display:inline-block;transform-origin:left}

/* --- fonctionnement ----------------------------------------------------- */
.etapes{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;position:relative;z-index:2}
.etapes .ligne{display:none}
.etape{display:grid;grid-template-columns:52px minmax(0,1fr);gap:4px 14px;text-align:left;align-items:start}
.etape .num{width:52px;height:52px;margin:0;grid-column:1;grid-row:1/span 2;border-radius:50%;background:var(--blanc);border:2px solid var(--or-clair);display:grid;place-items:center;color:var(--petrol);font-weight:700;font-size:21px}
.etape h3{grid-column:2;grid-row:1;align-self:center;font-size:16px;font-weight:600}
.etape p{grid-column:2;grid-row:2;font-size:14px;color:var(--texte-2)}

/* --- cartes, galerie, formulaire (sous-pages) --------------------------- */
.cartes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;position:relative;z-index:2}
.carte{background:var(--blanc);border-radius:22px;padding:22px;box-shadow:0 18px 40px -24px rgba(7,74,100,.45),0 0 0 1px rgba(7,74,100,.05)}
.carte h3{font-size:19px;margin-bottom:8px;font-weight:600}
.carte p{font-size:15px;color:var(--texte-2)}
.galerie{display:grid;grid-template-columns:1fr;gap:18px;position:relative;z-index:2}
.galerie figure{margin:0;background:var(--blanc);border-radius:22px;overflow:hidden;box-shadow:0 18px 40px -24px rgba(7,74,100,.45),0 0 0 1px rgba(7,74,100,.05)}
.galerie img{width:100%;height:240px;object-fit:cover}
.galerie video{width:100%;height:340px;object-fit:cover;display:block;background:#074A64}
.galerie figcaption{padding:12px 16px 14px;font-size:14px;color:var(--texte-2)}
.evenements{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;position:relative;z-index:2}
.evenements article{background:var(--blanc);border-radius:22px;padding:20px 22px;box-shadow:0 18px 40px -24px rgba(7,74,100,.45),0 0 0 1px rgba(7,74,100,.05)}
.evenements h3{font-size:18px;font-weight:600;margin-bottom:6px}
.evenements p{font-size:14.5px;color:var(--texte-2)}

.formulaire{background:var(--blanc);border-radius:26px;padding:26px;box-shadow:0 18px 40px -24px rgba(7,74,100,.45),0 0 0 1px rgba(7,74,100,.05);max-width:820px;margin:0 auto;position:relative;z-index:2}
.formulaire,.formulaire input,.formulaire select,.formulaire textarea,.formulaire button{font-family:var(--serif)}
.bandeau-demo{background:var(--or-pale);border:1px solid rgba(185,127,47,.35);color:#5A3F0A;border-radius:12px;padding:12px 16px;font-size:14px;margin-bottom:18px}
.bandeau-demo[hidden]{display:none}
.resume-erreurs{background:#FBE4DE;border:1px solid #E8B8AD;color:#8E2C18;border-radius:12px;padding:14px 18px;margin-bottom:18px}
.resume-erreurs[hidden]{display:none}
.resume-erreurs h3{font-size:16px;color:#8E2C18;margin-bottom:6px}
.resume-erreurs ul{margin:0;padding-left:18px;font-size:14px}
.resume-erreurs a{color:#8E2C18}
.confirmation{background:#E6F2EE;border:1px solid #BFDCD0;color:#0C4D39;border-radius:12px;padding:16px 18px;margin-bottom:18px}
.confirmation[hidden]{display:none}
.confirmation h3{color:#0C4D39;font-size:18px;margin-bottom:6px}
.confirmation p{font-size:14.5px}
.recap{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:12px 0 0;font-size:13.5px}
.recap dt{font-weight:600}.recap dd{margin:0}
.champs{display:grid;gap:22px}
.bloc-champ{border:0;padding:0;margin:0;min-width:0}
.bloc-champ legend{font-family:var(--serif);font-weight:600;font-size:18px;color:var(--petrol);margin-bottom:8px;padding:0}
.aide,.intitule{font-size:13.5px;color:var(--texte-2);margin-bottom:8px}
.intitule{font-weight:600;margin-top:12px}
.rangee{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:12px}
.champ{display:grid;gap:5px;min-width:0}
.champ label{font-size:13.5px;font-weight:600;color:var(--petrol)}
.champ input,.champ select,.champ textarea{width:100%;font-size:15px;padding:11px 13px;border:1.5px solid rgba(7,74,100,.18);border-radius:12px;background:#FFFEFA;color:var(--petrol);min-height:46px}
.champ textarea{min-height:110px;resize:vertical}
.champ input:focus,.champ select:focus,.champ textarea:focus{outline:3px solid var(--or-clair);outline-offset:1px;border-color:var(--or)}
.champ input[aria-invalid="true"],.champ select[aria-invalid="true"]{border-color:#C0392B;background:#FFF6F4}
.req{color:#C0392B}
.erreur{display:block;font-size:13px;color:#8E2C18;min-height:0}
.erreur:empty{display:none}
.choix{display:grid;grid-template-columns:1fr;gap:10px}
.choix label{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1.5px solid rgba(7,74,100,.16);border-radius:12px;background:#FFFEFA;cursor:pointer;font-size:14.5px;min-height:46px;color:var(--petrol)}
.choix label:hover{border-color:var(--or-clair)}
.choix input{width:18px;height:18px;margin:0;accent-color:var(--teal);flex:none}
.choix label:has(input:checked){border-color:var(--teal);background:#EEF5F4}
.consentement{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:#F4F8F7;min-height:48px}
.consentement input{width:20px;height:20px;margin:0;accent-color:var(--teal);flex:none}
.consentement label{font-size:14.5px;color:var(--petrol);min-height:44px;display:flex;align-items:center}
.envoi{text-align:center;margin-top:6px}
.envoi .mention{font-size:12.5px;color:var(--texte-2);margin-top:12px;max-width:52ch;margin-left:auto;margin-right:auto}

/* --- pied de page ------------------------------------------------------- */
.pied{position:relative;background:var(--teal-fonce);color:#EAF3F1;padding:38px 0 30px;overflow:hidden}
.pied .vague{position:absolute;top:-1px;left:0;right:0;height:30px;line-height:0}
.pied .vague svg{width:100%;height:30px;display:block}
.pied .feuilles{position:absolute;inset:0;background:url("../assets/img/calque_pied.png") top center/100% auto no-repeat;pointer-events:none;z-index:1}
.pied .grille{display:grid;grid-template-columns:1fr;gap:18px;align-items:center;text-align:center;justify-items:center}
.pied .liens{display:flex;gap:6px 14px;flex-wrap:wrap;justify-content:center;margin-bottom:6px}
.pied .liens a{color:#fff;font-weight:600;font-size:14px;text-decoration:none;display:inline-block;padding:7px 4px}
.pied .liens a:hover{text-decoration:underline}
.pied small{display:block;font-size:12.5px;opacity:.95;line-height:1.7}
.pied .tags{font-size:13px;letter-spacing:.01em}
.pied .signature{font-family:var(--manu);font-weight:700;font-size:24px;color:var(--or-clair);transform:rotate(-8deg);display:inline-block;line-height:1.05;text-align:center}
.pied .reseaux{display:flex;gap:10px;justify-content:center;margin-top:8px}
.pied .reseaux span{width:36px;height:36px;border-radius:50%;border:1.5px solid rgba(255,255,255,.7);display:grid;place-items:center;color:#fff}
.pied .reseaux svg{width:17px;height:17px}


/* ======================================================================
   PAGE D'ACCUEIL = L'ILLUSTRATION DE RÉFÉRENCE, À 100 %.
   Le fond est l'image d'origine (retouchée uniquement là où le PowerPoint
   le demande). Par-dessus : les vrais liens, les 3 encarts et le titre
   du bloc événement, positionnés en unités de la maquette (1065 de large).
   ====================================================================== */
.affiche100{container-type:inline-size;position:relative;width:100%;max-width:1600px;margin:0 auto;
  aspect-ratio:1065/1476;background:url("../assets/img/accueil_fond.jpg") 0 0/100% 100% no-repeat;overflow:hidden}
.affiche100 .zone{position:absolute;display:block;border-radius:2.817cqw;text-decoration:none;color:transparent;font-size:0;
  z-index:5;outline-offset:-0.188cqw}
.affiche100 .zone:hover{box-shadow:inset 0 0 0 0.188cqw rgba(217,164,65,.55)}
.affiche100 .zone:focus-visible{outline:3px solid var(--or-clair);box-shadow:inset 0 0 0 0.188cqw rgba(217,164,65,.7)}
.affiche100 .zone[aria-current="page"]{box-shadow:none}

/* les trois encarts, dans le bandeau des cartes de la maquette */
.cartes-affiche{position:absolute;left:2.817cqw;top:69.296cqw;width:94.836cqw;height:35.681cqw;display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));gap:3.005cqw;z-index:4}
.carte-a{position:relative;background:#FFFEFA;border-radius:2.066cqw;box-shadow:0 1.315cqw 3.192cqw -1.878cqw rgba(7,74,100,.55),0 0 0 1px rgba(7,74,100,.06);
  display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 1.315cqw 1.502cqw;border:0;font:inherit;color:inherit;cursor:pointer;
  transition:transform .18s,box-shadow .18s}
.carte-a:hover{transform:translateY(-0.282cqw);box-shadow:0 2.066cqw 3.756cqw -1.878cqw rgba(7,74,100,.6),0 0 0 1px rgba(7,74,100,.07)}
.carte-a .photo{width:calc(100% + 2.629cqw);margin:0 -1.315cqw;height:19.343cqw;border-radius:2.066cqw 2.066cqw 1.878cqw 1.878cqw;overflow:hidden;background:var(--creme)}
.carte-a .photo img{width:100%;height:100%;object-fit:cover;display:block}
.carte-a .med{position:absolute;top:16.526cqw;left:50%;transform:translateX(-50%);width:5.634cqw;height:5.634cqw;border-radius:50%;
  box-shadow:0 0.563cqw 1.315cqw -0.751cqw rgba(7,74,100,.5);background:#fff}
.carte-a .med img{width:100%;height:100%;display:block;border-radius:50%}
.carte-a h3{margin-top:3.944cqw;font-size:1.972cqw;font-weight:600;color:var(--petrol);line-height:1.15}
.carte-a p{margin-top:0.563cqw;font-size:1.315cqw;line-height:1.35;color:var(--texte);max-width:25.352cqw;flex:1}
.carte-a .ouvrir{display:inline-flex;align-items:center;justify-content:center;gap:0.751cqw;margin-top:0.939cqw;
  background:linear-gradient(180deg,#C8923D,#B47C2E);color:#fff;font-size:1.455cqw;padding:0.563cqw 2.254cqw;border-radius:100px;
  min-height:3.192cqw;box-shadow:0 0.563cqw 1.315cqw -0.751cqw rgba(185,131,54,.9);white-space:nowrap}
.carte-a .ouvrir svg{width:1.408cqw;height:1.408cqw}
.carte-a .badge-temp{position:absolute;top:0.751cqw;right:0.751cqw;margin:0;font-size:0.939cqw;opacity:.92}

/* titre du bloc événement (texte du PowerPoint) */
.titre-evt{position:absolute;left:55.962cqw;top:107.418cqw;width:33.052cqw;z-index:4;font-size:1.972cqw;line-height:1.1;font-weight:600;
  color:var(--petrol);letter-spacing:-.01em;text-wrap:balance}

/* sous-menu d'un encart : panneau modal */
.voile{position:fixed;inset:0;z-index:80;background:rgba(7,74,100,.5);display:flex;align-items:center;justify-content:center;padding:18px}
.voile[hidden]{display:none}
.voile .detail{margin:0;width:min(960px,100%);max-height:90vh;overflow:auto}
.affiche100 .burger{position:absolute;right:8px;top:8px;z-index:6;background:rgba(255,254,250,.9)}
@media (min-width:700px){.affiche100 .burger{display:none}}
@media (max-width:699px){
  .affiche100 .burger{display:flex}
  .affiche100 .zone{display:none}
  .carte-a h3{font-size:2.254cqw}.carte-a p{font-size:1.502cqw}.carte-a .ouvrir{font-size:1.596cqw}
}

/* ======================================================================
   MISE EN PAGE « AFFICHE » — à partir de 900 px, tout est proportionnel
   à la largeur du conteneur (cqw), aux mesures exactes de la maquette.
   ====================================================================== */
@media (min-width:900px){
  .accueil .affiche{background-image:url("../assets/img/calque_accueil.png");background-repeat:no-repeat;background-size:100% auto;background-position:top center}
  .sous-page .affiche{background-image:url("../assets/img/calque_haut.png"),url("../assets/img/calque_bas.png"),url("../assets/img/calque_milieu.png");
    background-repeat:no-repeat,no-repeat,repeat-y;background-size:100% auto,100% auto,100% auto;background-position:top center,bottom center,center 30.986cqw}
  .coin{display:none}
  .wrap{max-width:none;padding:0 6.103cqw}

  /* en-tête : le logo est posé en absolu, comme sur la maquette */
  .entete .barre{padding:2.066cqw 7.981cqw 0 10.798cqw;align-items:flex-start}
  .logo{position:absolute;top:2.066cqw;left:10.798cqw;z-index:6}
  .logo img{width:15.493cqw}
  .nav-principale{margin-left:auto;margin-top:0.845cqw}
  .nav-principale ul{gap:1.878cqw}
  .nav-principale a{font-size:1.362cqw;padding:0.751cqw 0.188cqw}
  .entete .btn{font-size:1.362cqw;padding:0.751cqw 1.878cqw;min-height:max(44px,4.225cqw);margin-top:0.282cqw}
  .entete .btn svg{width:1.690cqw;height:1.690cqw}

  /* hero */
  .hero{display:grid;grid-template-columns:35.493cqw 55.399cqw;column-gap:0.000cqw;padding:0 5.164cqw 0 3.944cqw;margin-top:-0.751cqw;align-items:start}
  .hero .colonne{padding-top:19.249cqw;max-width:none;margin:0}
  .hero h1{font-size:3.568cqw;line-height:1.1}
  .hero h1 .script{font-size:4.413cqw;margin-top:0.188cqw;white-space:nowrap}
  .hero .coeur{width:2.629cqw;height:2.629cqw;margin-top:0.751cqw}
  .photo-hero{max-width:none;margin:0;border-radius:10.329cqw 5.164cqw 14.085cqw 5.634cqw}
  .photo-hero .cadre-photo{aspect-ratio:600/430;box-shadow:0 0 0 0.150cqw rgba(217,164,65,.9),0 2.254cqw 4.695cqw -2.254cqw rgba(7,74,100,.5)}
  .cartouche{right:-4.507cqw;bottom:-1.690cqw;font-size:1.831cqw;padding:0.845cqw 1.502cqw;width:18.310cqw;max-width:none;border-radius:0.469cqw}
  .hero .hibiscus{left:auto;right:9.390cqw;bottom:-6.573cqw;width:9.859cqw}

  /* réassurance */
  .reassurance{margin:5.446cqw auto 0;max-width:none;padding:0 6.103cqw}
  .reassurance ul{grid-template-columns:repeat(4,minmax(0,1fr));padding:0.563cqw 0.751cqw;border-radius:2.817cqw;gap:0}
  .reassurance li{padding:0.751cqw 1.315cqw;font-size:1.174cqw;gap:1.127cqw;border-right:1px solid rgba(7,74,100,.15)}
  .reassurance li:last-child{border-right:0}
  .reassurance li svg{width:2.817cqw;height:2.817cqw}

  /* univers */
  .section{padding:3.192cqw 0 2.817cqw}
  .accueil .section-univers{padding:1.878cqw 0 2.254cqw}
  .titre-section{margin-bottom:1.315cqw;max-width:none}
  .titre-section h2{font-size:4.131cqw;white-space:nowrap;text-wrap:nowrap}
  .titre-section h2.orne{display:flex;align-items:center;justify-content:center;gap:0.751cqw}
  .titre-section h2 .script{font-size:4.319cqw}
  .titre-section h2 .fioriture{width:4.319cqw;height:1.690cqw;margin:0 0.939cqw}
  .titre-section h2 .coeur-rose{width:1.878cqw;height:1.878cqw}
  .titre-section p{font-size:1.455cqw;margin-top:0.188cqw}
  .sur-titre{font-size:1.033cqw}
  .univers{grid-template-columns:repeat(3,minmax(0,1fr));gap:2.817cqw;padding:0 0.188cqw}
  .encart{border-radius:2.441cqw;padding-bottom:1.878cqw}
  .encart .visuel{aspect-ratio:290/215;border-radius:2.441cqw 2.441cqw 2.066cqw 2.066cqw}
  .encart .corps{padding:3.756cqw 1.502cqw 0;gap:0.563cqw}
  .encart .medaillon{width:5.634cqw;height:5.634cqw;border-width:0.376cqw}
  .encart .medaillon svg{width:2.629cqw;height:2.629cqw}
  .encart h3{font-size:1.972cqw}
  .encart p.resume{font-size:1.268cqw;max-width:none;line-height:1.45}
  .encart .ouvrir{font-size:1.408cqw;padding:0.657cqw 2.441cqw;min-height:max(36px,3.192cqw);margin-top:0.563cqw}
  .encart .ouvrir svg{width:1.408cqw;height:1.408cqw}
  .badge-temp,.badge-droit{font-size:0.986cqw;margin-top:0.563cqw}
  .detail{margin-top:2.066cqw;border-radius:2.441cqw}
  .detail .liste{grid-template-columns:repeat(2,minmax(0,1fr))}
  .detail article{grid-template-columns:14.085cqw minmax(0,1fr)}
  .detail article img{width:14.085cqw;height:12.207cqw}

  /* bloc événement */
  .accueil .section-evt{padding:1.690cqw 0 2.817cqw;background:url("../assets/img/calque_bas.png") bottom center/100% auto no-repeat}
  .bloc-evt{grid-template-columns:46.948cqw minmax(0,1fr);gap:3.192cqw;align-items:center}
  .bloc-evt .visuel{border-radius:10.329cqw 5.634cqw 3.192cqw 11.268cqw}
  .bloc-evt .cadre-photo{aspect-ratio:500/210;box-shadow:0 0 0 0.150cqw rgba(217,164,65,.9),0 2.254cqw 4.695cqw -2.254cqw rgba(7,74,100,.5)}
  .bloc-evt .manuscrit{left:2.441cqw;top:2.066cqw;font-size:1.784cqw;width:14.085cqw}
  .bloc-evt .manuscrit i{font-size:2.066cqw}
  .bloc-evt h2{font-size:2.441cqw}
  .bloc-evt .liste{gap:0.751cqw 1.502cqw;margin-top:0.939cqw}
  .bloc-evt .liste li{font-size:1.315cqw}
  .bloc-evt .liste svg{width:1.690cqw;height:1.690cqw}
  .bloc-evt .btn{margin-top:1.127cqw}
  .bloc-evt .signature{font-size:2.066cqw;margin:0.939cqw 0 0 14.085cqw;white-space:nowrap}
  .btn{font-size:1.408cqw;padding:0.939cqw 2.441cqw;min-height:max(44px,4.225cqw);gap:0.939cqw}
  .btn svg{width:1.690cqw;height:1.690cqw}

  /* pied de page */
  .pied{padding:5.446cqw 0 2.629cqw}
  .pied .vague{height:3.005cqw}.pied .vague svg{height:3.005cqw}
  .pied .grille{grid-template-columns:minmax(0,1fr) auto auto;gap:3.756cqw;text-align:left;justify-items:start;padding-left:11.268cqw}
  .pied .liens{justify-content:flex-start;gap:0.376cqw 1.315cqw}
  .pied .liens a{font-size:1.174cqw;padding:0.282cqw 0.188cqw}
  .pied .tags{white-space:nowrap}
  .pied small{font-size:1.127cqw}
  .pied .tags{font-size:1.174cqw}
  .pied .signature{font-size:2.254cqw;margin-right:2.817cqw}
  .pied .reseaux span{width:3.380cqw;height:3.380cqw}
  .pied .reseaux svg{width:1.596cqw;height:1.596cqw}

  /* sous-pages */
  .sous-page .bandeau-page{padding:20.188cqw 11.268cqw 2.817cqw;text-align:center}
  .sous-page .bandeau-page h1{font-size:3.756cqw}
  .sous-page .bandeau-page h1 .script{font-size:4.695cqw}
  .sous-page .bandeau-page p{font-size:1.502cqw;max-width:64ch;margin:0.939cqw auto 0}
  .etapes{grid-template-columns:repeat(5,minmax(0,1fr));gap:1.502cqw}
  .etapes .ligne{display:block;position:absolute;left:9%;right:9%;top:2.441cqw;height:2px;z-index:0;background:repeating-linear-gradient(90deg,var(--or-clair) 0 7px,transparent 7px 14px)}
  .etape{display:block;text-align:center}
  .etape .num{margin:0 auto 0.939cqw;width:4.883cqw;height:4.883cqw;font-size:1.972cqw}
  .etape h3{font-size:1.455cqw}.etape p{font-size:1.268cqw}
  .carte h3{font-size:1.784cqw}.carte p{font-size:1.408cqw}
  .evenements h3{font-size:1.690cqw}.evenements p{font-size:1.362cqw}
  .galerie figcaption{font-size:1.315cqw}
  .galerie{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rangee{grid-template-columns:1fr 1fr}
  .choix{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:899px){
  .nav-principale,.entete>.barre>.btn{display:none}
  .burger{display:flex}
  .sous-page .bandeau-page{padding:70px 22px 20px;text-align:center}
  .sous-page .bandeau-page h1{font-size:clamp(28px,7.5vw,36px)}
  .sous-page .bandeau-page h1 .script{display:block;font-size:1.3em}
  .sous-page .bandeau-page p{margin-top:10px}
  .hero{padding-top:12px}
  .hero .colonne{padding-top:0}
  .bloc-evt .signature{margin-top:26px;transform:rotate(-4deg)}
}
@media (min-width:600px) and (max-width:899px){
  .univers{grid-template-columns:1fr 1fr}
  .galerie{grid-template-columns:1fr 1fr}
  .reassurance ul{grid-template-columns:1fr 1fr}
  .rangee{grid-template-columns:1fr 1fr}
  .choix{grid-template-columns:1fr 1fr}
  .detail .liste{grid-template-columns:1fr 1fr}
  .bloc-evt{grid-template-columns:1fr 1fr}
  .etapes{grid-template-columns:1fr 1fr}
}
@media (max-width:599px){
  .coin-tl{width:130px}.coin-tr{width:140px}.coin-br{width:110px}.coin-bl{width:50px}
  .photo-hero{border-radius:60px 30px 90px 34px}
  .cartouche{font-size:16px;padding:7px 12px;max-width:170px;right:0;bottom:-10px}
  .hero .hibiscus{width:76px;left:-14px;bottom:-24px}
  .bloc-evt .visuel{border-radius:60px 36px 24px 70px}
  .bloc-evt .cadre-photo{aspect-ratio:4/3}
  .bloc-evt .liste{grid-template-columns:1fr}
  .formulaire{padding:18px}
}

/* ---- prévisualisation en une page : routeur ---- */
.page{display:none}
.page.active{display:block}
.bandeau-preview{background:#0E526E;color:#fff;font-size:13.5px;padding:9px 18px;text-align:center;
  font-weight:700;line-height:1.4}
.bandeau-preview span{opacity:.85;font-weight:400}
body.accueil .entete,body.accueil .pied,body.accueil .coin{display:none}
body.accueil .affiche{background:none;max-width:1600px}

/* ======================================================================
   V4 — site public (ajouts, l'accueil d'origine n'est pas modifié)
   ====================================================================== */
.bandeau-preview{display:none}
.lien-evitement{position:absolute;left:12px;top:-60px;z-index:100;background:var(--teal);color:#fff;padding:10px 16px;border-radius:10px;font-weight:600;text-decoration:none}
.lien-evitement:focus{top:12px}
/* coordonnées */
.carte-lien{display:block;text-decoration:none;color:inherit;text-align:center;transition:transform .15s,box-shadow .15s}
.carte-lien:hover{transform:translateY(-2px);box-shadow:0 22px 44px -24px rgba(7,74,100,.55),0 0 0 1px rgba(7,74,100,.08)}
.carte-lien p{font-weight:600;color:var(--teal);word-break:break-word}
.pastille{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 10px;border-radius:50%;background:linear-gradient(160deg,#E4C07A,var(--or-clair) 45%,var(--or-2));color:#fff;box-shadow:0 10px 22px -12px rgba(185,131,54,.95)}
.pastille svg{width:26px;height:26px}
.contact-cartes .carte{text-align:center}
.pied .reseaux a{width:40px;height:40px;border-radius:50%;border:1.5px solid rgba(255,255,255,.75);display:grid;place-items:center;color:#fff;transition:background .15s}
.pied .reseaux a:hover{background:rgba(255,255,255,.15)}
.pied .reseaux svg{width:18px;height:18px}
.pied small a{color:#fff}
/* formulaire : envoi */
.envoi-choix{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
.envoi-choix[hidden]{display:none}
.envoi-choix .btn{flex:1 1 220px;font-size:16px;min-height:52px}
#envoi-whatsapp{background:#128C4B;box-shadow:0 8px 20px -10px rgba(18,140,75,.8)}
.aide-envoi{font-size:13.5px;margin-top:14px;color:#0C4D39}
.btn-copier,.lien-modifier{font:inherit;font-size:14px;font-weight:600;cursor:pointer;min-height:40px}
.btn-copier{margin-left:6px;background:#fff;border:1.5px solid #0C4D39;color:#0C4D39;border-radius:100px;padding:6px 14px}
.lien-modifier{background:none;border:0;color:var(--teal);text-decoration:underline;padding:8px 0;margin-top:6px}
.mention a{color:var(--teal)}
.confirmation:focus,.resume-erreurs:focus{outline:3px solid var(--or-clair);outline-offset:3px}
/* univers : élément sans photo */
.detail article.sans-photo{grid-template-columns:minmax(0,1fr)!important}
/* pages légales */
.texte-legal{max-width:760px!important;margin:0 auto;background:var(--blanc);border-radius:22px;padding:26px 26px 30px!important;box-shadow:0 18px 40px -24px rgba(7,74,100,.45),0 0 0 1px rgba(7,74,100,.05)}
.texte-legal h2{font-size:21px;margin:22px 0 8px}
.texte-legal h2:first-child{margin-top:0}
.texte-legal p{font-size:15.5px;color:var(--texte-2);margin-bottom:10px;font-family:var(--serif)}
.texte-legal a{word-break:break-word}
@media (min-width:900px){.texte-legal h2{font-size:1.9cqw}.texte-legal p{font-size:1.3cqw}}
[tabindex="-1"]:focus:not(:focus-visible){outline:none}
h1[tabindex="-1"]:focus,h2[tabindex="-1"]:focus,main[tabindex="-1"]:focus{outline:none}
.pied .tags{white-space:normal!important}
.pied .grille > div:nth-child(2){text-align:center;justify-self:center}
.pied .grille > div:nth-child(2) small{white-space:nowrap}
.contact-cartes{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))!important;max-width:760px!important}
@media (min-width:900px){.contact-cartes{max-width:62cqw!important}}
.texte-legal p[hidden]{display:none}
.contact-cartes{grid-template-columns:1fr!important}
@media (min-width:600px){.contact-cartes{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:680px!important}}
@media (min-width:900px){.contact-cartes{max-width:50cqw!important}}
.carte-lien p{word-break:normal;overflow-wrap:anywhere}
