/* Charte Coquelicours — contrastes vérifiés (WCAG AA). */
@font-face{font-family:"Playfair Display"; font-style:normal; font-weight:700; font-display:swap;
  src:url(fonts/playfair-display-700.woff2) format("woff2");}

:root{
  --encre:#214E34;       /* texte principal, titres */
  --vert:#507C63;        /* liens, aplats avec texte blanc */
  --creme:#E8EEEA;       /* fond clair */
  --blush:#DE9E91;       /* décor uniquement, jamais de texte dessus */
  --blush-clair:#F5E2DE; /* fond de section */
  --fuchsia:#F5295C;     /* surligneur sur grand texte gras uniquement */
  --gris:#426E55;        /* texte secondaire */
  --ligne:#DCE5DF;
  --blanc:#FFFFFF;
  --rouge:#A3352A;       /* erreurs */
  --r:18px; --r-s:12px;
  --max:1100px;
  --titre:"Playfair Display",Georgia,serif;
  --texte:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:84px;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{margin:0; background:var(--blanc); color:var(--encre); font-family:var(--texte);
  font-size:16.5px; line-height:1.65; -webkit-font-smoothing:antialiased;}
img{max-width:100%; height:auto; display:block;}
a{color:var(--vert);}

/* ---------- en-tête ---------- */
.top{position:sticky; top:0; z-index:50; background:var(--blanc); border-bottom:1px solid var(--ligne);}
.top-in{max-width:var(--max); margin:0 auto; padding:12px 22px; display:flex; align-items:center; gap:24px;}
.logo{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--encre);
  font-family:var(--titre); font-weight:700; font-size:19px; flex-shrink:0;}
.logo img{height:38px; width:auto;}
.logo .logo-txt{white-space:nowrap;}
@media(max-width:460px){.logo .logo-txt{display:none;}}
.top-nav{display:flex; gap:22px; margin-left:auto;}
.top-nav a{color:var(--gris); text-decoration:none; font-size:14.5px; font-weight:500;}
.top-nav a:hover{color:var(--encre);}
.top .btn{padding:10px 18px; font-size:14.5px; margin-left:auto;}
.top-nav + .btn{margin-left:0;}
@media(max-width:820px){.top-nav{display:none;} .top-nav + .btn{margin-left:auto;}}

/* ---------- ossature ---------- */
.wrap{max-width:var(--max); margin:0 auto; padding:0 22px;}
section{padding:76px 0;}
@media(max-width:600px){section{padding:52px 0;}}
.bg-creme{background:var(--creme);} .bg-blush{background:var(--blush-clair);}
.bg-vert{background:var(--vert); color:var(--blanc);}
.bg-vert h2, .bg-vert h3{color:var(--blanc);}
h1,h2,h3{font-family:var(--titre); letter-spacing:-.01em; line-height:1.16; margin:0 0 16px; color:var(--encre); font-weight:700;}
h1{font-size:clamp(32px,5vw,54px);}
h2{font-size:clamp(26px,3.4vw,36px);}
h3{font-size:19px; line-height:1.3; font-family:var(--texte);}
p{margin:0 0 15px; max-width:62ch;}
.lede{font-size:18px; color:var(--gris); max-width:54ch;}
.surtitre{font-family:var(--texte); font-size:13px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  line-height:1.4; color:var(--gris); margin:0 0 12px;}
.center{text-align:center;}
.surligne{background:linear-gradient(transparent 10%, var(--fuchsia) 10%, var(--fuchsia) 94%, transparent 94%);
  color:var(--blanc); padding:0 .14em; border-radius:6px; -webkit-box-decoration-break:clone; box-decoration-break:clone;}

/* ---------- boutons ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; font-family:var(--texte);
  font-weight:700; font-size:16.5px; text-decoration:none; border:none; cursor:pointer;
  padding:15px 28px; border-radius:99px; background:var(--encre); color:var(--blanc);}
.btn:hover{background:#183B27;}
.btn:focus-visible{outline:3px solid var(--vert); outline-offset:3px;}
.btn:disabled{opacity:.6; cursor:wait;}
.btn.clair{background:transparent; color:var(--encre); box-shadow:inset 0 0 0 2px var(--ligne);}

/* ---------- haut de page ---------- */
.hero{background:var(--creme); padding:64px 0 70px;}
.hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:54px; align-items:center;}
.hero .btns{margin-top:28px;}
.rassure{margin:16px 0 0; font-size:14.5px; color:var(--gris);}
.rassure b{color:var(--encre); font-weight:600;}
.hero-img{width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--r);}
@media(max-width:880px){.hero{padding:36px 0 44px;} .hero-grid{grid-template-columns:1fr; gap:28px;}}

/* ---------- écoles ---------- */
.ecoles{padding:46px 0 40px;}
.liste-ecoles{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; justify-content:center; gap:8px 28px;}
.liste-ecoles li{font-size:19px; font-weight:700; white-space:nowrap;}
.ecoles .note{margin:18px auto 0; font-size:14.5px; color:var(--gris); text-align:center;}
@media(max-width:600px){.liste-ecoles{gap:6px 20px;} .liste-ecoles li{font-size:16px;}}

/* ---------- engagements ---------- */
.engagements{padding:0;}
.engagements .grille{display:grid; grid-template-columns:repeat(3,1fr);}
.engagements .item{padding:30px 26px; border-right:1px solid rgba(255,255,255,.22);}
.engagements .item:last-child{border-right:none;}
.engagements .n{display:block; font-family:var(--titre); font-weight:700; font-size:32px; line-height:1.1;}
.engagements .l{display:block; margin-top:6px; font-size:15.5px; opacity:.9;}
@media(max-width:760px){.engagements .grille{grid-template-columns:1fr;} .engagements .item{border-right:none; border-bottom:1px solid rgba(255,255,255,.22); padding:22px;}}

/* ---------- blocs ---------- */
.deux{display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center;}
.deux.haut{align-items:start;}
@media(max-width:820px){.deux{grid-template-columns:1fr; gap:30px;}}
.photo-groupe{width:100%; aspect-ratio:4/3; object-fit:cover; object-position:center 35%; border-radius:var(--r);}
.cartes{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:30px;}
.cartes.quatre{grid-template-columns:repeat(2,1fr);}
@media(max-width:820px){.cartes, .cartes.quatre{grid-template-columns:1fr;}}
.cartes + p{margin-top:26px;}
.carte{background:var(--blanc); border-radius:var(--r); padding:26px; box-shadow:0 0 0 1px var(--ligne);}
.carte p{margin:0; font-size:15.5px; color:var(--gris);}
.pastille{display:inline-flex; width:38px; height:38px; border-radius:50%; background:var(--encre); color:var(--blanc);
  align-items:center; justify-content:center; font-family:var(--titre); font-weight:700; margin-bottom:14px;}

/* ---------- témoignages ---------- */
.temoignages{display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:30px;}
.temoignages .t:first-child{grid-column:1/-1;}
@media(max-width:820px){.temoignages{grid-template-columns:1fr;}}
.t{background:var(--blanc); border-radius:var(--r); padding:28px 30px; margin:0; position:relative;}
.t::before{content:"«"; position:absolute; top:10px; right:22px; font-family:var(--titre); font-weight:700;
  font-size:64px; line-height:1; color:var(--blush);}
.t .q{font-size:17px; line-height:1.6; margin:0 0 14px; padding-right:30px;}
.t .qui{font-size:14px; color:var(--gris);}
.t:first-child .q{font-size:19px;}

/* ---------- étapes ---------- */
.etapes{list-style:none; counter-reset:e; padding:0; margin:30px 0 0; display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
@media(max-width:900px){.etapes{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.etapes{grid-template-columns:1fr;}}
.etapes li{counter-increment:e; background:var(--creme); border-radius:var(--r); padding:24px 22px;}
.etapes li::before{content:counter(e); display:inline-flex; width:36px; height:36px; border-radius:50%;
  background:var(--encre); color:var(--blanc); align-items:center; justify-content:center;
  font-family:var(--titre); font-weight:700; margin-bottom:14px;}
.etapes h3{font-size:17.5px; margin-bottom:8px;}
.etapes p{margin:0; font-size:15px; color:var(--gris);}

/* ---------- questions ---------- */
.faq{max-width:780px; margin:30px auto 0;}
details{background:var(--blanc); border-radius:var(--r-s); padding:18px 22px; margin-bottom:10px; box-shadow:0 0 0 1px var(--ligne);}
summary{cursor:pointer; font-weight:600; list-style:none; padding-right:28px; position:relative;}
summary::-webkit-details-marker{display:none;}
summary::after{content:"+"; position:absolute; right:0; top:-2px; color:var(--vert); font-size:24px; font-weight:600;}
details[open] summary::after{content:"–";}
details p{margin:12px 0 0; font-size:15.5px; color:var(--gris); max-width:none;}

/* ---------- formulaire ---------- */
.contact .deux{align-items:start;}
.contact p{opacity:.92;}
.puces{list-style:none; padding:0; margin:22px 0 0;}
.puces li{padding-left:30px; position:relative; margin-bottom:10px;}
.puces li::before{content:""; position:absolute; left:0; top:8px; width:16px; height:9px;
  border-left:3px solid var(--fuchsia); border-bottom:3px solid var(--fuchsia); transform:rotate(-45deg);}
.form{background:var(--blanc); color:var(--encre); border-radius:var(--r); padding:30px 30px 26px;}
.form h3{margin-bottom:18px; color:var(--encre);}
.form label{display:block; font-size:14.5px; font-weight:600; margin:0 0 6px;}
.form label small{font-weight:400; color:var(--gris);}
.form input, .form textarea, .form select{width:100%; border:1.5px solid var(--ligne); border-radius:var(--r-s); padding:13px 14px;
  font:inherit; font-size:16px; background:var(--blanc); color:var(--encre); margin-bottom:16px;}
.form input:focus, .form textarea:focus, .form select:focus{outline:none; border-color:var(--vert); box-shadow:0 0 0 3px rgba(80,124,99,.18);}
.form textarea{min-height:104px; resize:vertical;}
.form [aria-invalid="true"]{border-color:var(--rouge); margin-bottom:4px;}
.form .err{color:var(--rouge); font-size:14px; margin:0 0 14px; opacity:1;}
.form .alerte{background:#FBEAE8; color:var(--rouge); border-radius:var(--r-s); padding:10px 14px; font-size:14.5px; opacity:1;}
.form .btn{width:100%; margin-top:4px;}
.form .legal{margin:12px 0 0; font-size:12.5px; color:var(--gris); max-width:none; opacity:1;}
@media(max-width:600px){.form{padding:24px 20px 20px;}}
.piege{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}

/* ---------- remerciement ---------- */
.merci-page{padding:80px 0 100px; text-align:center;}
.merci-page p{margin-left:auto; margin-right:auto;}
.merci-page .ok{display:inline-flex; width:58px; height:58px; border-radius:50%; background:var(--vert); color:var(--blanc);
  align-items:center; justify-content:center; font-size:28px; font-weight:700; margin-bottom:18px;}

/* ---------- pied de page ---------- */
footer{background:var(--encre); color:#CBDBD1; padding:44px 0 36px; font-size:14px;}
footer .logo{color:var(--blanc); margin-bottom:12px;}
footer p{max-width:none; margin:0 0 8px;}
footer a{color:var(--blanc);}
footer .liens{margin-top:16px; display:flex; gap:18px; flex-wrap:wrap;}

/* ---------- pages légales ---------- */
.legal-page{padding:56px 0 80px;}
.legal-page .wrap{max-width:780px;}
.legal-page h1{font-size:clamp(28px,4vw,38px);}
.legal-page h2{font-size:21px; margin-top:34px; font-family:var(--texte);}
.legal-page table{width:100%; border-collapse:collapse; font-size:15px; margin:10px 0;}
.legal-page th, .legal-page td{text-align:left; padding:10px 12px 10px 0; border-bottom:1px solid var(--ligne); vertical-align:top;}
.legal-page th{font-size:13px; text-transform:uppercase; letter-spacing:.05em; color:var(--gris);}

/* ---------- admin ---------- */
.admin{background:var(--creme);}
.admin main{padding-top:28px; padding-bottom:60px;}
.admin h1{font-size:30px;}
.admin .deconnexion{margin-left:auto;}
.admin .btn{padding:10px 18px; font-size:14.5px;}
.admin .info{background:var(--blanc); border-left:4px solid var(--vert); padding:10px 14px; border-radius:6px; max-width:none;}
.admin .connexion{max-width:380px; margin:40px auto;}
.admin .connexion .btn{width:100%;}
.filtres{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px;}
.filtres a{padding:6px 12px; border-radius:99px; background:var(--blanc); text-decoration:none; font-size:14px; color:var(--encre);}
.filtres a[aria-current]{background:var(--encre); color:var(--blanc);}
.demande{background:var(--blanc); border-radius:var(--r-s); padding:18px 20px; margin-bottom:12px; border-left:5px solid var(--ligne);}
.demande.statut-nouvelle{border-left-color:var(--fuchsia);}
.demande.statut-active{border-left-color:var(--vert);}
.demande.statut-perdue{opacity:.65;}
.demande .meta{font-size:13px; color:var(--gris); margin:0 0 4px;}
.demande h2{font-family:var(--texte); font-size:18px; margin:0 0 8px;}
.demande .message{font-size:15px; background:var(--creme); padding:10px 12px; border-radius:8px; max-width:none;}
.demande form{display:grid; grid-template-columns:200px 1fr auto; gap:10px; align-items:start;}
.demande select, .demande textarea{font:inherit; font-size:15px; padding:8px 10px; border:1.5px solid var(--ligne); border-radius:8px; width:100%;}
.demande textarea{resize:vertical; min-height:42px;}
@media(max-width:700px){.demande form{grid-template-columns:1fr;}}
