/* Site public (accueil, notre histoire, demande d'entretien, pages légales).
   Même identité que les espaces : papier chaud, encre sombre, Atkinson Hyperlegible, mode sombre automatique. */
:root{
  --p-bg:#F6F1E7;
  --p-bg-2:#EFE8DA;
  --p-card:#FFFDF8;
  --p-ink:#1F2A33;
  --p-soft:#3E4A54;
  --p-muted:#6B7078;
  --p-line:#E3DBCB;
  --p-dark:#1F2A33;
  --p-dark-ink:#F6F1E7;
  --p-accent:#2A6CB0;
  --p-accent-ink:#1F5A96;
  --p-warm:#C27A2C;
  --p-warm-bg:#F7E7D2;
  --p-ok:#1E5B3A;
  --p-ok-bg:#E1EFE5;
  --p-shadow:0 18px 50px rgba(31,42,51,.10);
  --p-btn:#1F2A33;
  --p-btn-ink:#F6F1E7;
  --p-font:'Atkinson Hyperlegible',system-ui,-apple-system,'Segoe UI',sans-serif;
}
@media screen and (prefers-color-scheme:dark){
  :root{
    --p-bg:#171B1F;
    --p-bg-2:#1D2227;
    --p-card:#22282E;
    --p-ink:#EDE7DB;
    --p-soft:#C9C2B5;
    --p-muted:#9A958C;
    --p-line:#343B42;
    --p-dark:#0F1215;
    --p-dark-ink:#EDE7DB;
    --p-accent:#6EA3DB;
    --p-accent-ink:#8DB8E6;
    --p-warm:#D9995A;
    --p-warm-bg:#3A2D1F;
    --p-ok:#7CC49A;
    --p-ok-bg:#1F3328;
    --p-shadow:0 18px 50px rgba(0,0,0,.35);
    --p-btn:#EDE7DB;
    --p-btn-ink:#171B1F;
  }
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
.public-body{margin:0;background:var(--p-bg);color:var(--p-ink);font-family:var(--p-font);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
.public-body a{color:inherit;text-decoration:none}
.public-body img{max-width:100%}
.public-container{width:min(1140px,calc(100% - 32px));margin:0 auto}
.public-kicker{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--p-warm)}
/* logo en pastille (le logo est noir) */
.mx-logo{display:inline-flex;align-items:center;justify-content:center;background:#fff;border-radius:10px;line-height:0;flex:none;box-shadow:0 1px 2px rgba(0,0,0,.12)}
.mx-logo img{display:block;width:auto;height:100%}
.mx-logo-bar{height:58px;padding:4px 12px}
.mx-logo-lg{height:84px;padding:8px 16px}
/* en-tête */
.public-header{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--p-bg) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--p-line)}
.public-nav{display:flex;align-items:center;gap:18px;min-height:78px}
.public-brand{display:flex;align-items:center}
.public-brand>img{height:44px;width:auto;background:#fff;border-radius:10px;padding:4px 10px}
.public-nav nav{display:flex;align-items:center;gap:4px;margin-left:auto;flex-wrap:wrap}
.public-nav nav a{padding:8px 12px;border-radius:10px;font-weight:700;font-size:15px;color:var(--p-soft)}
.public-nav nav a:hover{background:var(--p-bg-2);color:var(--p-ink)}
.public-nav .public-nav-cta{background:var(--p-btn);color:var(--p-btn-ink)!important}
.public-nav .public-nav-cta:hover{background:var(--p-btn);opacity:.9}
.public-nav .p-nav-login{border:1px solid var(--p-line)}
/* boutons */
.p-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 20px;border-radius:12px;font-weight:700;font-size:16px;border:1px solid var(--p-line);background:var(--p-card);color:var(--p-ink)!important;cursor:pointer;font-family:inherit}
.p-btn:hover{border-color:var(--p-soft)}
.p-btn-primary{background:var(--p-btn);border-color:var(--p-btn);color:var(--p-btn-ink)!important}
.p-btn-primary:hover{opacity:.92;border-color:var(--p-btn)}
.p-btn-wa{background:#1E7A4C;border-color:#1E7A4C;color:#fff!important}
.p-btn svg{flex:none}
.p-actions{display:flex;gap:10px;flex-wrap:wrap}
/* héros */
.p-hero{padding:56px 0 40px}
.p-hero-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:36px;align-items:center}
.p-hero h1{font-size:clamp(34px,5vw,56px);line-height:1.08;letter-spacing:-.02em;margin:12px 0 18px}
.p-hero h1 em{font-style:normal;color:var(--p-accent)}
.p-lead{font-size:19px;color:var(--p-soft);margin:0 0 24px;max-width:36em}
.p-choice{padding:26px;border-radius:20px;background:var(--p-card);border:1px solid var(--p-line);box-shadow:var(--p-shadow)}
.p-choice-q{font-weight:700;font-size:15px;color:var(--p-muted);margin:0 0 14px}
.p-choice-a{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:14px;margin-bottom:10px;font-size:18px;line-height:1.4}
.p-choice-a.is-no{background:var(--p-bg-2);color:var(--p-muted)}
.p-choice-a.is-no span{text-decoration:line-through;text-decoration-thickness:2px}
.p-choice-a.is-yes{background:var(--p-ok-bg);color:var(--p-ok);font-weight:700}
.p-choice-a b{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:15px}
.p-choice-a.is-no b{background:var(--p-line);color:var(--p-muted)}
.p-choice-a.is-yes b{background:var(--p-ok);color:var(--p-card)}
.p-choice-foot{margin:14px 0 0;font-size:15px;color:var(--p-soft)}
/* chiffres */
.p-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:34px}
.p-facts div{padding:18px;border-radius:16px;background:var(--p-card);border:1px solid var(--p-line)}
.p-facts b{display:block;font-size:26px;line-height:1.15;letter-spacing:-.01em}
.p-facts span{font-size:14.5px;color:var(--p-muted)}
/* sections */
.p-section{padding:64px 0}
.p-section-alt{background:var(--p-bg-2)}
.p-section-head{max-width:760px;margin-bottom:28px}
.p-section h2{font-size:clamp(28px,3.4vw,38px);line-height:1.15;letter-spacing:-.015em;margin:8px 0 12px}
.p-section-head p{color:var(--p-soft);margin:0;font-size:18px}
.p-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.p-cards-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.p-card{padding:24px;border-radius:18px;background:var(--p-card);border:1px solid var(--p-line)}
.p-card h3{font-size:20px;margin:0 0 8px}
.p-card p{margin:0;color:var(--p-soft)}
.p-card ul{margin:8px 0 0;padding-left:20px;color:var(--p-soft)}
.p-card li{margin:3px 0}
.p-card-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--p-warm-bg);color:var(--p-warm);margin-bottom:14px}
.p-tag{display:inline-block;font-size:13px;font-weight:700;padding:3px 10px;border-radius:999px;background:var(--p-bg-2);color:var(--p-soft);margin-bottom:10px}
/* tarifs */
.p-prices{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px;align-items:start}
.p-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--p-card);border:1px solid var(--p-line);border-radius:18px;overflow:hidden}
.p-table th,.p-table td{padding:14px 18px;text-align:left;border-top:1px solid var(--p-line)}
.p-table thead th{border-top:0;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--p-muted);background:var(--p-bg-2)}
.p-table td b{font-size:20px}
.p-table td small{display:block;color:var(--p-muted);font-size:13.5px}
.p-table tr.is-best td{background:var(--p-ok-bg)}
.p-price-hero{padding:26px;border-radius:18px;background:var(--p-dark);color:var(--p-dark-ink)}
.p-price-hero b{display:block;font-size:54px;line-height:1;letter-spacing:-.02em}
.p-price-hero p{margin:10px 0 0;opacity:.85}
.p-note{margin-top:14px;font-size:15px;color:var(--p-muted)}
/* étapes */
.p-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;counter-reset:s}
.p-step{position:relative;padding:24px 20px 20px;border-radius:18px;background:var(--p-card);border:1px solid var(--p-line)}
.p-step::before{counter-increment:s;content:counter(s);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--p-btn);color:var(--p-btn-ink);font-weight:700;margin-bottom:12px}
.p-step h3{font-size:18px;margin:0 0 6px}
.p-step p{margin:0;color:var(--p-soft);font-size:16px}
/* fête */
.p-party{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:center}
.p-quote{margin:0;padding:24px 26px;border-left:4px solid var(--p-warm);background:var(--p-card);border-radius:0 18px 18px 0;font-size:21px;line-height:1.45}
.p-quote cite{display:block;margin-top:10px;font-size:14px;font-style:normal;color:var(--p-muted)}
/* Hugo */
.p-about{display:grid;grid-template-columns:300px minmax(0,1fr);gap:36px;align-items:center}
.p-about img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:20px;box-shadow:var(--p-shadow)}
.p-about p{color:var(--p-soft);margin:0 0 14px}
/* contact */
.p-contact{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;padding:34px;border-radius:24px;background:var(--p-dark);color:var(--p-dark-ink)}
.p-contact h2{color:var(--p-dark-ink);margin-top:0}
.p-contact p{opacity:.85;margin:0 0 18px}
.p-contact .p-btn{border-color:rgba(255,255,255,.25);background:transparent;color:var(--p-dark-ink)!important}
.p-contact .p-btn-light{background:var(--p-dark-ink);color:var(--p-dark)!important;border-color:var(--p-dark-ink)}
.p-contact .p-btn-wa{background:#1E7A4C;border-color:#1E7A4C;color:#fff!important}
.p-contact-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;align-self:center}
.p-contact-list li{display:flex;gap:10px;align-items:center}
.p-contact-list a{text-decoration:underline;text-underline-offset:3px}
/* formulaire d'entretien */
.p-form-wrap{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start;padding:40px 0 64px}
.p-form{padding:28px;border-radius:20px;background:var(--p-card);border:1px solid var(--p-line);box-shadow:var(--p-shadow)}
.p-form h1{font-size:34px;line-height:1.15;margin:6px 0 10px}
.p-form .p-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.p-field{display:flex;flex-direction:column;gap:6px;margin:0 0 14px}
.p-field.full{grid-column:1/-1}
.p-field label{font-weight:700;font-size:15px}
.p-field small{color:var(--p-muted);font-size:13.5px}
.p-input{width:100%;min-height:50px;padding:10px 14px;border-radius:12px;border:1px solid var(--p-line);background:var(--p-bg);color:var(--p-ink);font:inherit;font-size:16px}
textarea.p-input{min-height:120px;resize:vertical}
.p-input:focus{outline:2px solid var(--p-accent);outline-offset:1px}
.p-check{display:flex;gap:10px;align-items:flex-start;font-size:15px;color:var(--p-soft);margin:6px 0 18px}
.p-check input{width:20px;height:20px;margin-top:2px;flex:none}
.p-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.p-alert{padding:14px 16px;border-radius:12px;margin:0 0 16px;font-weight:700}
.p-alert-ok{background:var(--p-ok-bg);color:var(--p-ok)}
.p-alert-err{background:#F6DEDA;color:#8E2A22}
@media screen and (prefers-color-scheme:dark){
  .p-alert-err{background:#3A2220;color:#F0A69C}
}
.p-aside{display:flex;flex-direction:column;gap:14px}
/* pages de texte (histoire, légal) */
.public-legal,.p-story{padding:48px 0 70px}
.public-legal-wrap,.p-story-wrap{max-width:760px}
.public-legal h1,.p-story h1{font-size:clamp(30px,4vw,44px);line-height:1.12;margin:8px 0 16px}
.public-legal h2{font-size:21px;margin:28px 0 8px}
.public-legal p,.p-story p{color:var(--p-soft)}
.public-legal a,.p-story a{color:var(--p-accent-ink);text-decoration:underline}
.public-legal-intro{font-size:18px}
.public-legal-updated{font-size:14px;color:var(--p-muted)}
.p-story p{font-size:18.5px;line-height:1.75;margin:0 0 20px}
.p-story p:first-of-type::first-letter{font-size:3.2em;float:left;line-height:.9;margin:6px 10px 0 0;font-weight:700;color:var(--p-warm)}
.p-story-end{margin-top:34px;padding-top:24px;border-top:1px solid var(--p-line)}
/* pied de page */
.public-footer{background:var(--p-dark);color:var(--p-dark-ink);padding:40px 0 24px;margin-top:0}
.public-footer-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:start}
.public-footer-grid>div>img{height:56px;width:auto;background:#fff;border-radius:10px;padding:5px 10px}
.public-footer p{opacity:.8;margin:10px 0 0;font-size:15px}
.public-footer-links{display:flex;flex-direction:column;gap:8px;font-size:15px}
.public-footer-links a{opacity:.85}
.public-footer-links a:hover{opacity:1;text-decoration:underline}
.public-footer-bottom{margin-top:26px;padding-top:16px;border-top:1px solid rgba(255,255,255,.12);font-size:13.5px;opacity:.7}
/* barre d'action fixe sur téléphone */
.p-mobile-cta{display:none}
@media(max-width:960px){
  .p-hero-grid,.p-prices,.p-party,.p-contact,.p-form-wrap{grid-template-columns:1fr}
  .p-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .p-cards{grid-template-columns:1fr 1fr}
  .p-steps{grid-template-columns:1fr 1fr}
  .p-about{grid-template-columns:200px minmax(0,1fr)}
}
@media(max-width:700px){
  .public-body{font-size:16.5px}
  .public-nav{min-height:62px}
  .public-nav nav a:not(.p-nav-login){display:none}
  .public-nav nav{flex-wrap:nowrap}
  .public-brand>img,.mx-logo-bar{height:46px}
  .p-hero{padding:30px 0 26px}
  .p-lead{font-size:17.5px}
  .p-section{padding:44px 0}
  .p-cards,.p-cards-2,.p-steps{grid-template-columns:1fr}
  .p-facts b{font-size:21px}
  .p-about{grid-template-columns:1fr}
  .p-about img{max-width:240px}
  .p-contact{padding:24px}
  .p-form{padding:20px}
  .p-form .p-grid{grid-template-columns:1fr}
  .p-table th,.p-table td{padding:12px}
  .p-actions .p-btn{flex:1 1 auto}
  .public-footer-grid{grid-template-columns:1fr}
  .public-footer{padding-bottom:96px}
  .p-mobile-cta{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--p-card);border-top:1px solid var(--p-line);box-shadow:0 -6px 20px rgba(0,0,0,.08)}
  .p-mobile-cta .p-btn{min-height:46px;padding:0 8px;font-size:14.5px}
}
/* Lien d'évitement, bandeau vers le pupitre (page du centre), barre mobile à 2 boutons */
.p-skip{position:absolute;left:-9999px;top:8px;z-index:50;padding:10px 14px;border-radius:10px;background:var(--p-btn);color:var(--p-btn-ink)!important;font-weight:700}
.p-skip:focus{left:12px}
.p-crosslink{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;padding:28px 30px;border-radius:22px;background:var(--p-card);border:1px solid var(--p-line)}
.p-crosslink h2{margin:6px 0 8px}
.p-crosslink p{margin:0;color:var(--p-soft);max-width:44em}
@media(max-width:700px){
  .p-crosslink{grid-template-columns:1fr;padding:22px}
  .p-mobile-cta.p-mobile-cta-2{grid-template-columns:1fr 1.4fr}
}
/* Pages légales : sommaire, tableaux, encadré élèves, formulaire */
.public-legal ul{color:var(--p-soft);padding-left:22px}
.public-legal li{margin:4px 0}
.cgv-toc{margin:22px 0 8px;padding:14px 18px;border:1px solid var(--p-line);border-radius:14px;background:var(--p-card)}
.cgv-toc ol{margin:0;padding-left:20px;columns:2;column-gap:28px;font-size:15px}
.cgv-toc li{break-inside:avoid;margin:3px 0}
.cgv-table-wrap{overflow-x:auto;margin:10px 0}
.cgv-table{width:100%;border-collapse:collapse;font-size:15px;color:var(--p-soft)}
.cgv-table th,.cgv-table td{padding:9px 10px;border-top:1px solid var(--p-line);text-align:left;vertical-align:top}
.cgv-table th{color:var(--p-ink);font-size:14px;border-top:0}
.cgv-kids{margin-top:22px;padding:16px 20px;border-radius:16px;background:var(--p-warm-bg)}
.cgv-kids h2{margin-top:0}
.cgv-form{padding:14px 18px;border:1px dashed var(--p-line);border-radius:12px;background:var(--p-card)}
section[id]{scroll-margin-top:90px}
@media(max-width:640px){
  .cgv-toc ol{columns:1}
}
/* Centre : « où ? » (sur place à La Réunion) vs pupitre (en ligne, partout) */
.p-where{padding:8px 0 36px}
.p-where-title{font-size:clamp(22px,2.6vw,28px);line-height:1.2;margin:0 0 16px}
.p-where-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.p-where-card{padding:22px 24px;border-radius:18px;background:var(--p-card);border:1px solid var(--p-line)}
.p-where-card.is-here{border:2px solid var(--p-ink)}
.p-where-card h3{margin:8px 0 6px;font-size:20px}
.p-where-card p{margin:0 0 8px;color:var(--p-soft)}
.p-where-tag{display:inline-flex;align-items:center;gap:6px;padding:3px 12px;border-radius:999px;background:var(--p-warm-bg);color:var(--p-ink);font-size:13.5px;font-weight:700}
.p-where-card:not(.is-here) .p-where-tag{background:var(--p-bg-2)}
.p-where-who{font-weight:700;color:var(--p-ink)!important}
.p-where-who a{color:var(--p-accent-ink);text-decoration:underline}
.p-where-note{margin:14px 0 0;color:var(--p-muted);font-size:15px}
@media(max-width:760px){
  .p-where-grid{grid-template-columns:1fr}
}
/* Menu sur une ligne jusqu'aux écrans moyens */
@media (min-width:1001px) and (max-width:1340px){
  .public-nav nav a{padding:8px 9px;font-size:14.5px}
}
/* Lien de paiement envoyé par SMS (payer.php) */
.p-pay-wrap{max-width:560px}
.p-pay-card{margin:8px 0 18px}
.p-pay a.p-btn{text-decoration:none}
.public-legal .p-pay-label{margin:0;font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--p-muted)}
.public-legal .p-pay-total{margin:2px 0 14px;font-size:clamp(34px,8vw,44px);font-weight:700;line-height:1.15;color:var(--p-ink);font-variant-numeric:tabular-nums}
.public-legal .p-pay-list{list-style:none;margin:0 0 18px;padding:0;border-top:1px solid var(--p-line);color:var(--p-ink)}
.public-legal .p-pay-list li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0;padding:10px 0;border-bottom:1px solid var(--p-line)}
.p-pay-list span{min-width:0;overflow-wrap:anywhere}
.p-pay-list small{display:block;font-size:14px;color:var(--p-muted)}
.p-pay-list b{white-space:nowrap;font-variant-numeric:tabular-nums}
.p-pay-form .p-btn{width:100%}
.public-legal .p-pay-note,.public-legal .p-pay-foot{font-size:15px;color:var(--p-muted)}
.public-legal .p-pay-done{margin:0;font-size:19px;font-weight:700;color:var(--p-ok)}
.p-alert-info{background:var(--p-warm-bg);color:var(--p-ink)}
/* Aiguillage des trois offres (au-dessus du menu) : Familles, Profs, Centre */
.p-aud{background:var(--p-dark);color:var(--p-dark-ink)}
.p-aud-in{display:flex;flex-wrap:wrap;gap:4px;padding:6px 0}
.p-aud a{display:inline-flex;align-items:baseline;gap:8px;padding:5px 14px;border-radius:999px;color:var(--p-dark-ink);font-size:14.5px;line-height:1.5}
.p-aud a b{font-weight:700}
.p-aud a span{font-size:13.5px;opacity:.78}
.p-aud a:hover{background:rgba(255,255,255,.1)}
.p-aud a[aria-current]{background:var(--p-dark-ink);color:var(--p-dark)}
.p-aud a[aria-current] span{opacity:.75}
.p-aud a:focus-visible{outline:2px solid #E9B35F;outline-offset:2px}
@media(max-width:700px){
  .p-aud-in{flex-wrap:nowrap;gap:2px;padding:5px 0}
  .p-aud a{flex:1 1 0;justify-content:center;padding:7px 4px;font-size:15px}
  .p-aud a span{display:none}
}
@media(max-width:960px){.p-where-grid{grid-template-columns:1fr}}
