/* Polices auto-hébergées (fichiers variables woff2, sous-ensembles latin et latin étendu). */
@font-face{font-family:"Funnel Display";font-style:normal;font-weight:300 800;font-display:swap;src:url("../fonts/funnel-display-normal-latin-ext-LEnZHll.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Funnel Display";font-style:normal;font-weight:300 800;font-display:swap;src:url("../fonts/funnel-display-normal-latin-NiBcbyC.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:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url("../fonts/source-sans-3-normal-latin-ext-Rg6Tzay.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url("../fonts/source-sans-3-normal-latin-QwUv0lg.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:"Source Sans 3";font-style:italic;font-weight:200 900;font-display:swap;src:url("../fonts/source-sans-3-italic-latin-ext-FY0aUQQ.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Source Sans 3";font-style:italic;font-weight:200 900;font-display:swap;src:url("../fonts/source-sans-3-italic-latin-kwMlFBh.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}

/* ==== Feuille de style du concept, reprise telle quelle ==== */
:root{
  --turq:#14A89E;
  --turq-deep:#0E7F78;
  --turq-pale:#E4F5F3;
  --ink:#14232B;
  --ink-soft:#4A5B64;
  --amber:#F0A227;
  --paper:#FFFFFF;
  --grey:#F3F6F6;
  --line:#D9E3E2;
  --cut:14px;
  --cut-lg:28px;
}
*{box-sizing:border-box;margin:0;padding:0}
.hero-grid>*,.hero-visual,.cards>*,.espace-grid>*,.quotes>*,.ana-grid>*,.parents-grid>*,.prices>*,.contact-grid>*,.steps>*{min-width:0}
h1,h2,h3{letter-spacing:-.01em}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body,.page{font-family:"Source Sans 3",system-ui,sans-serif;color:var(--ink);background:var(--paper);line-height:1.55;font-size:17px;color-scheme:light}
.page{padding-bottom:84px;min-height:100vh}
@media(min-width:900px){.page{padding-bottom:0}}
main,section{background:var(--paper);color:var(--ink)}
h1,h2,h3{font-family:"Funnel Display",sans-serif;line-height:1.08;letter-spacing:-.015em}
h1{font-weight:800;font-size:clamp(2rem,8.5vw,4rem);hyphens:auto;overflow-wrap:anywhere}
h2{font-weight:700;font-size:clamp(1.6rem,4.5vw,2.5rem);margin-bottom:.6em}
h3{font-weight:700;font-size:1.25rem}
p{max-width:62ch}
a{color:inherit}
img{display:block;max-width:100%}
.wrap{width:min(1120px,100% - 2.5rem);margin-inline:auto}
section{padding:4rem 0}
@media(min-width:900px){section{padding:6rem 0}}
.lead{font-size:1.15rem;color:var(--ink-soft)}

/* angular motif: chamfered corners taken from the logo */
.cut{clip-path:polygon(var(--cut) 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%,0 var(--cut))}
.cut-lg{clip-path:polygon(var(--cut-lg) 0,100% 0,100% calc(100% - var(--cut-lg)),calc(100% - var(--cut-lg)) 100%,0 100%,0 var(--cut-lg))}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:600;font-size:1.02rem;padding:.9rem 1.5rem;text-decoration:none;border:0;cursor:pointer;
     clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}
.btn-amber{background:var(--amber);color:var(--ink)}
.btn-ink{background:var(--ink);color:#fff}
.btn-turq{background:var(--turq);color:#fff}
.btn-ghost{background:var(--ink);color:var(--ink);position:relative;isolation:isolate}
.btn-ghost::before{content:"";position:absolute;inset:2px;background:var(--paper);z-index:-1;
   clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px)}
.btn:focus-visible{outline:3px solid var(--amber);outline-offset:3px}

/* header */
header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px}
.logo{display:flex;align-items:center;gap:.6rem;text-decoration:none}
.logo img{height:38px;width:auto}
.logo img+.logo-text{display:none}
.logo-text{font-family:"Funnel Display",sans-serif;font-weight:800;font-size:1.4rem;color:var(--turq-deep)}
.nav ul{display:none;list-style:none;gap:1.6rem;font-weight:600;align-items:center;height:100%}
.nav ul a{text-decoration:none}
.nav ul a:hover{color:var(--turq-deep)}
@media(min-width:900px){.nav ul{display:flex}}

/* hero */
.hero{padding:2.5rem 0 0;background:var(--paper);overflow:hidden}
.hero-grid{display:grid;gap:2rem}
@media(min-width:900px){.hero-grid{grid-template-columns:1.1fr .9fr;align-items:center;gap:4rem}.hero{padding-top:4rem}}
.hero h1 span{display:block}
.hero h1 .turq{color:var(--turq)}
.hero .lead{margin:1.4rem 0 2rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem}
.hero-visual{position:relative;width:min(520px,100%);aspect-ratio:5/4;justify-self:center;background:var(--turq);overflow:hidden;
   clip-path:polygon(var(--cut-lg) 0,100% 0,100% calc(100% - var(--cut-lg)),calc(100% - var(--cut-lg)) 100%,0 100%,0 var(--cut-lg))}
.hero-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 55%}
.hero-visual img~.hero-illu{display:none}
.hero-illu{position:absolute;inset:0;width:100%;height:100%}
.hero-tag{position:absolute;left:0;bottom:24px;background:var(--ink);color:#fff;padding:.7rem 1rem;font-family:"Funnel Display",sans-serif;font-weight:700;font-size:.95rem;
   clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%)}
.portrait{position:relative;width:min(440px,100%);justify-self:center;
   clip-path:polygon(var(--cut-lg) 0,100% 0,100% calc(100% - var(--cut-lg)),calc(100% - var(--cut-lg)) 100%,0 100%,0 var(--cut-lg))}
.portrait::before{content:"";position:absolute;left:0;right:0;top:16%;bottom:0;background:var(--turq)}
.portrait img{position:relative;width:100%;display:block;filter:drop-shadow(0 14px 22px rgba(20,35,43,.28))}
.portrait figcaption{position:absolute;left:0;bottom:24px;background:var(--ink);color:#fff;padding:.7rem 1rem;font-family:"Funnel Display",sans-serif;font-weight:700;font-size:.95rem;
   clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%)}
.ana .portrait{width:min(340px,100%)}
.ana .portrait::before{background:var(--turq-pale)}
.hero-band{margin-top:3.5rem;background:var(--ink);color:#fff;clip-path:polygon(0 18%,100% 0,100% 100%,0 100%)}
.hero-band .wrap{display:flex;flex-wrap:wrap;gap:1rem 2.5rem;padding:3rem 0 1.6rem;font-weight:600}
.hero-band span::before{content:"";display:inline-block;width:10px;height:10px;background:var(--amber);margin-right:.6rem;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}

/* parcours */
.cards{display:grid;gap:1.2rem}
@media(min-width:900px){.cards{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--grey);padding:1.8rem;display:flex;flex-direction:column;gap:.8rem;text-decoration:none;position:relative}
.card h3{padding-right:2rem}
.card .who{color:var(--turq-deep);font-weight:600}
.card p{color:var(--ink-soft)}
.card .more{margin-top:auto;font-weight:600;color:var(--ink)}
.card::after{content:"";position:absolute;top:1.6rem;right:1.6rem;width:16px;height:16px;background:var(--turq);clip-path:polygon(0 0,100% 0,100% 100%)}
.card:hover{background:var(--turq-pale)}

/* déroulement */
.steps-section{background:var(--turq-pale)}
.steps{list-style:none;display:grid;gap:1.6rem;counter-reset:step}
@media(min-width:900px){.steps{grid-template-columns:repeat(4,1fr);gap:1.2rem}}
.steps li{counter-increment:step;position:relative;padding-top:3.2rem}
.steps li::before{content:counter(step);position:absolute;top:0;left:0;width:2.5rem;height:2.5rem;display:grid;place-items:center;background:var(--turq);color:#fff;font-family:"Funnel Display",sans-serif;font-weight:800;
   clip-path:polygon(25% 0,100% 0,100% 75%,75% 100%,0 100%,0 25%)}
@media(min-width:900px){.steps li:not(:last-child)::after{content:"";position:absolute;top:1.2rem;left:3.2rem;right:-.6rem;height:2px;background:var(--turq)}}
.steps h3{margin-bottom:.3rem}
.steps p{color:var(--ink-soft)}

/* espace élève */
.espace-grid{display:grid;gap:2.5rem}
@media(min-width:900px){.espace-grid{grid-template-columns:1fr 1fr;align-items:center;gap:4rem}}
.panel{background:var(--ink);color:#fff;padding:1.6rem}
.panel-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid rgba(255,255,255,.18);padding-bottom:.9rem;margin-bottom:.9rem}
.panel-head strong{font-family:"Funnel Display",sans-serif}
.panel-head small{color:#B9D3D0}
.panel ul{list-style:none;display:grid;gap:.7rem}
.panel li{display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;align-items:center;padding:.75rem .9rem;background:rgba(255,255,255,.07);
   clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
.panel li i{width:10px;height:10px;background:var(--turq);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.panel li em{font-style:normal;color:#B9D3D0;font-size:.9rem}
.panel .bar{height:8px;background:rgba(255,255,255,.12);margin-top:1.2rem;clip-path:polygon(4px 0,100% 0,100% 100%,0 100%,0 4px)}
.panel .bar b{display:block;height:100%;width:64%;background:var(--amber)}
.panel .bar-label{display:flex;justify-content:space-between;font-size:.9rem;color:#B9D3D0;margin-top:.4rem}
.powered{color:var(--ink-soft);font-size:.95rem;margin-top:1.4rem}
.powered a{color:var(--turq-deep)}
.check{list-style:none;display:grid;gap:.8rem;margin-top:1.2rem}
.check li{padding-left:1.6rem;position:relative}
.check li::before{content:"";position:absolute;left:0;top:.5em;width:.75rem;height:.75rem;background:var(--turq);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}

/* témoignages : carrousel horizontal */
.carousel-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem}
.carousel-nav{display:none;gap:.5rem}
@media(min-width:900px){.carousel-nav{display:flex}}
.cbtn{width:2.6rem;height:2.6rem;border:0;background:var(--ink);color:#fff;font-size:1.2rem;cursor:pointer;
   clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
.cbtn:hover{background:var(--turq-deep)}
.carousel{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;margin-top:1.4rem;padding:.4rem 0 1rem}
.carousel::-webkit-scrollbar{display:none}
.carousel:focus-visible{outline:3px solid var(--amber)}
.track{display:flex;gap:1rem;padding-inline:max(1.25rem,calc((100vw - 1120px)/2));width:max-content}
.carousel .quote{flex:0 0 min(78vw,360px);scroll-snap-align:start;margin:0}
.quote{background:var(--grey);padding:1.8rem;display:flex;flex-direction:column;gap:1rem}
.quote p{font-size:1.02rem}
.quote footer{font-weight:600;color:var(--turq-deep);margin-top:auto}
.quote footer small{display:block;font-weight:400;color:var(--ink-soft)}
.quote.google{text-decoration:none;justify-content:center;text-align:center;background:var(--turq-pale)}
.quote.google p{font-weight:600;color:var(--turq-deep)}
.since{margin-top:1.4rem;font-family:"Funnel Display",sans-serif;font-weight:700;font-size:1.2rem;color:var(--turq-deep)}
/* ana */
.ana{background:var(--ink);color:#fff}
.ana .lead{color:#C6D6D4}
.ana-grid{display:grid;gap:2rem}
@media(min-width:900px){.ana-grid{grid-template-columns:.8fr 1.2fr;gap:4rem;align-items:center}}
.ana .facts{list-style:none;display:grid;gap:.6rem;margin-top:1.4rem;color:#C6D6D4}
.ana .facts li{padding-left:1.4rem;position:relative}
.ana .facts li::before{content:"";position:absolute;left:0;top:.6em;width:.6rem;height:.6rem;background:var(--amber);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}

/* parents */
.parents-grid{display:grid;gap:1.2rem;margin-top:1.4rem}
@media(min-width:900px){.parents-grid{grid-template-columns:repeat(3,1fr)}}
.parents-grid div{padding:1.5rem;background:var(--turq-pale)}
.parents-grid h3{font-size:1.1rem;margin-bottom:.4rem}
.parents-grid p{color:var(--ink-soft)}

/* tarifs */
.tarifs{background:var(--grey)}
.prices{display:grid;gap:1.2rem;margin-top:1.4rem}
@media(min-width:900px){.prices{grid-template-columns:repeat(3,1fr)}}
.price{background:#fff;padding:1.8rem;display:flex;flex-direction:column;gap:.6rem}
.price.featured{background:var(--turq);color:#fff}
.price.featured .sub,.price.featured .note{color:#DDF2F0}
.price .sub{color:var(--ink-soft)}
.price .amount{font-family:"Funnel Display",sans-serif;font-weight:800;font-size:2.2rem;line-height:1;margin:.6rem 0 .2rem}
.price .amount small{font-family:"Source Sans 3",sans-serif;font-weight:400;font-size:1rem}
.price ul{list-style:none;display:grid;gap:.4rem;margin:.6rem 0 1rem}
.price li::before{content:"";display:inline-block;width:.5rem;height:.5rem;background:var(--amber);margin-right:.6rem;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.price .note{font-size:.92rem;color:var(--ink-soft);margin-top:auto}
.extras{display:grid;gap:1.2rem;margin-top:1.2rem}
@media(min-width:900px){.extras{grid-template-columns:1fr 1fr}}
.tm{background:#fff;padding:1.8rem;display:grid;gap:1rem;align-content:space-between}
.tm p{color:var(--ink-soft);margin-top:.4rem}
.tm .amount{font-family:"Funnel Display",sans-serif;font-weight:800;font-size:2.2rem;line-height:1;color:var(--ink);margin:0}
.tm .amount small{font-family:"Source Sans 3",sans-serif;font-weight:400;font-size:1rem}
.surmesure{margin-top:1.6rem;background:var(--ink);color:#fff;padding:2rem;display:grid;gap:1.2rem}
@media(min-width:900px){.surmesure{grid-template-columns:1fr auto;align-items:center;gap:3rem}}
.surmesure p{color:#C6D6D4;margin-top:.5rem}
.tarifs .foot{margin-top:1.6rem;color:var(--ink-soft)}

.faq{display:grid;gap:.8rem;margin-top:1.4rem;max-width:760px}
.faq details{background:#fff;padding:1rem 1.3rem}
.faq summary{cursor:pointer;font-weight:600;font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";width:.7rem;height:.7rem;background:var(--turq);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);flex:none;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg);background:var(--amber)}
.faq p{margin-top:.7rem;color:var(--ink-soft)}
/* contact */
.contact-grid{display:grid;gap:2.5rem}
@media(min-width:900px){.contact-grid{grid-template-columns:1fr 1fr;gap:4rem}}
.contact address{font-style:normal;display:grid;gap:.5rem;margin-top:1.2rem;font-size:1.08rem}
.contact address a{text-decoration:none;font-weight:600}
form{display:grid;gap:.9rem}
label{display:grid;gap:.35rem;font-weight:600;font-size:.95rem}
input,select,textarea{font:inherit;padding:.8rem .9rem;border:2px solid var(--line);background:#fff;color:var(--ink);width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--turq)}
textarea{min-height:120px;resize:vertical}

footer.site{background:var(--ink);color:#B9D3D0;padding:2.5rem 0 3rem;font-size:.95rem}
footer.site .wrap{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;align-items:center}
footer.site a{color:#fff;text-decoration:none;margin-right:1.2rem}
footer.site .sig{font-family:"Funnel Display",sans-serif;font-weight:700;color:#fff}

/* mobile bottom bar */
.bar-mobile{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:1fr 1fr;background:var(--ink);padding:.6rem .8rem calc(.6rem + env(safe-area-inset-bottom));gap:.6rem}
.bar-mobile a{text-align:center;text-decoration:none;font-weight:700;padding:.85rem;font-size:1rem}
@media(min-width:900px){.bar-mobile{display:none}}

.todo-tag{display:inline-block;background:var(--amber);color:var(--ink);font-size:.75rem;font-weight:700;padding:.15rem .5rem;vertical-align:middle;margin-left:.4rem}

/* ==== Styles inline du concept, déplacés ici à l'identique ==== */
.nav ul .btn{padding:.6rem 1.1rem}
#parcours .cards{margin-top:2rem}
#methode .steps{margin-top:2.2rem}
#parents .lead+.lead{margin-top:.8rem}
#faq{background:var(--grey)}

/* Les images portent des attributs width/height : la hauteur suit la largeur fluide. */
.portrait img{height:auto}

/* ==== Formulaire de contact : erreurs, confirmation, pot de miel ==== */
.field-error{font-weight:400;font-size:.92rem;color:#B3261E}
.form-error{font-weight:600;color:#B3261E;padding:.9rem 1rem;background:#FBECEA;
   clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:#B3261E}
.flash{display:flex;gap:.8rem;align-items:flex-start;background:var(--turq-pale);color:var(--turq-deep);font-weight:600;padding:1rem 1.2rem;margin-top:1.4rem;
   clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}
.flash::before{content:"";flex:none;width:.75rem;height:.75rem;margin-top:.45em;background:var(--amber);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.hp-field{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}

/* ==== Pages légales et page d'erreur ==== */
.legal{max-width:760px}
.legal h1{font-size:clamp(1.9rem,6vw,3rem);margin-bottom:.6em}
.legal h2{font-size:1.35rem;margin:2rem 0 .5rem}
.legal h2:first-of-type{margin-top:1.4rem}
.legal p{margin-top:.7rem;max-width:none}
.legal ul,.legal ol{margin:.7rem 0 0 1.4rem;display:grid;gap:.4rem}
.legal address{font-style:normal;margin-top:.7rem}
.legal .meta{color:var(--ink-soft);font-size:.95rem}
.legal a{color:var(--turq-deep)}
.error-page{text-align:center;padding:5rem 0}
.error-page .code{font-family:"Funnel Display",sans-serif;font-weight:800;font-size:clamp(4rem,18vw,8rem);line-height:1;color:var(--turq)}
.error-page p{margin:1rem auto 2rem}
