/* PROMACEO ACADEMY — site vitrine. Charte : ivoire, anthracite, or (décor), filet rouge.
   L'or #C9A227 ne sert jamais de couleur de texte sur fond clair : on utilise --or-encre (contraste ≥ 4,5:1). */
:root {
  --ivoire:#FDFBF4; --creme:#F6F0E1; --encre:#141412; --gris:#57534A; --trait:#E4DAC2; --blanc:#fff;
  --or:#C9A227; --or-vif:#E2BC4A; --or-clair:#F3DE9A; --or-encre:#7A5A0E; --rouge:#C8102E;
  --nuit:#0E0E0E; --anthracite:#1B1A17; --anthracite2:#24221E; --texte-sombre:#EDE6D6; --gris-sombre:#C9C0AC;
  --rayon:16px; --page:1200px;
  --ombre:0 24px 60px -24px rgba(20,16,4,.38), 0 2px 8px rgba(20,16,4,.08);
  --ombre-douce:0 10px 30px -14px rgba(20,16,4,.28);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:88px; -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--ivoire); color:var(--encre); font:17px/1.65 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  -webkit-font-smoothing:antialiased; overflow-x:hidden; }
img { max-width:100%; height:auto; display:block; }
picture { display:block; }
a { color:var(--or-encre); text-underline-offset:3px; }
a:hover { color:#5c430a; }
h1,h2,h3 { line-height:1.14; letter-spacing:-.022em; margin:0 0 .6em; text-wrap:balance; }
h1 { font-size:clamp(2.05rem,4.4vw,3.5rem); font-weight:850; }
h2 { font-size:clamp(1.6rem,3vw,2.45rem); font-weight:820; }
h3, .h3 { font-size:1.18rem; font-weight:750; }
p { margin:0 0 1em; }
:focus-visible { outline:3px solid var(--or-vif); outline-offset:3px; border-radius:6px; }
.evitement { position:absolute; left:-999px; top:8px; background:var(--encre); color:#fff; padding:.6rem 1rem; z-index:99; border-radius:8px; }
.evitement:focus { left:8px; color:#fff; }
.visuel-cache { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.dedans { width:min(var(--page), calc(100% - 32px)); margin-inline:auto; }
.etroit { width:min(860px, calc(100% - 32px)); margin-inline:auto; }
.centre { text-align:center; }

/* ---------- En-tête ---------- */
.bandeau { position:sticky; top:0; z-index:40; background:rgba(253,251,244,.94); backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid rgba(201,162,39,.35); }
.bandeau .dedans { display:flex; align-items:center; gap:1rem; min-height:72px; }
.marque { flex:none; }
.marque img { height:50px; width:auto; }
nav#menu { display:flex; align-items:center; gap:.2rem; margin-left:auto; }
nav#menu > a, .sous-menu summary { text-decoration:none; color:var(--encre); font-weight:650; font-size:.95rem; padding:.55rem .7rem; border-radius:10px;
  min-height:44px; display:inline-flex; align-items:center; cursor:pointer; }
nav#menu > a:hover, .sous-menu summary:hover { background:rgba(201,162,39,.14); color:var(--encre); }
nav#menu .seulement-menu { display:none; }
.sous-menu { position:relative; }
.sous-menu summary { list-style:none; }
.sous-menu summary::-webkit-details-marker { display:none; }
.sous-menu summary::after { content:""; width:.45em; height:.45em; border-right:2px solid currentColor; border-bottom:2px solid currentColor;
  transform:rotate(45deg); margin:-.2em 0 0 .5em; }
.sous-menu ul { position:absolute; top:calc(100% + 6px); left:0; list-style:none; margin:0; padding:.5rem; min-width:250px; background:#fff;
  border:1px solid var(--trait); border-radius:14px; box-shadow:var(--ombre); z-index:50; }
.sous-menu ul a { display:flex; align-items:center; min-height:44px; padding:.4rem .8rem; border-radius:10px; color:var(--encre); text-decoration:none; font-weight:600; }
.sous-menu ul a:hover { background:var(--creme); }
.acces-haut { display:flex; align-items:center; gap:.5rem; flex:none; }
.bouton.connexion { background:var(--nuit); color:var(--or-clair); border-color:var(--nuit); }
.bouton.connexion:hover { background:#2a2620; color:var(--or-clair); }
.bouton.connexion .court { display:none; }
.burger { display:none; background:none; border:1px solid #cfc4a8; border-radius:12px; font-size:1.3rem; min-width:46px; min-height:46px; cursor:pointer; color:var(--encre); }
@media (max-width:1180px) { nav#menu > a, .sous-menu summary { padding:.5rem .5rem; font-size:.92rem; } }
@media (max-width:1040px) {
  .burger { display:inline-flex; align-items:center; justify-content:center; }
  .acces-haut { margin-left:auto; }
  .acces-haut .essai-haut { display:none; }
  nav#menu { display:none; position:absolute; top:72px; left:0; right:0; background:var(--ivoire); flex-direction:column; align-items:stretch;
    padding:.8rem 16px 1.4rem; border-bottom:1px solid var(--trait); gap:.1rem; box-shadow:0 20px 30px -20px rgba(0,0,0,.25);
    max-height:calc(100vh - 72px); overflow-y:auto; }
  nav#menu.ouvert { display:flex; }
  nav#menu .seulement-menu { display:flex; }
  nav#menu .bouton.seulement-menu { margin-top:.5rem; justify-content:center; }
  .sous-menu ul { position:static; box-shadow:none; border:0; padding:0 0 0 .8rem; min-width:0; background:transparent; }
}
@media (max-width:440px) { .marque img { height:38px; } .bouton.connexion .long { display:none; } .bouton.connexion .court { display:inline; }
  .bouton.connexion { padding:.5rem .8rem; } }

/* ---------- Boutons ---------- */
.bouton { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; padding:.85rem 1.45rem; border-radius:999px; min-height:48px;
  font-weight:750; text-decoration:none; border:2px solid transparent; cursor:pointer; font-size:1rem; font-family:inherit; line-height:1.2;
  transition:transform .15s, box-shadow .15s, background .15s; }
.bouton:hover { transform:translateY(-1px); }
.bouton.or { background:linear-gradient(180deg,var(--or-vif),var(--or)); color:#1a1405; box-shadow:0 10px 24px -10px rgba(201,162,39,.9); }
.bouton.or:hover { color:#1a1405; box-shadow:0 14px 28px -10px rgba(201,162,39,1); }
.bouton.contour { border-color:var(--or); color:var(--or-encre); background:transparent; }
.bouton.contour.clair { color:var(--or-clair); border-color:rgba(243,222,154,.6); }
.bouton.contour.clair:hover { background:rgba(243,222,154,.1); color:#fff; }
.bouton.lien-bouton { background:transparent; color:var(--gris); border-color:transparent; text-decoration:underline; }
.bouton.petit { padding:.5rem 1rem; font-size:.92rem; min-height:44px; }
.bouton.plein { width:100%; }
.actions { display:flex; gap:.8rem; flex-wrap:wrap; margin:1.6rem 0 1rem; }
.centre-actions { justify-content:center; }
.lien-fort { font-weight:750; color:var(--or-encre); text-decoration:none; display:inline-flex; align-items:center; gap:.3rem; min-height:44px; }
.lien-fort:hover { text-decoration:underline; }
.section.sombre .lien-fort, .heros .lien-fort { color:var(--or-vif); }

/* ---------- Fil d'Ariane ---------- */
.ariane { font-size:.88rem; color:var(--gris); padding-top:1rem; }
.ariane ol { list-style:none; display:flex; flex-wrap:wrap; gap:.2rem; margin:0; padding:0; }
.ariane li { display:flex; align-items:center; }
.ariane li + li::before { content:"›"; margin:0 .45rem; color:#8a8274; }
.ariane a { color:var(--gris); }

/* ---------- Héros ---------- */
.heros { background:radial-gradient(1100px 620px at 88% -12%, rgba(201,162,39,.30), transparent 60%),
  radial-gradient(760px 480px at -12% 112%, rgba(200,16,46,.16), transparent 60%), var(--nuit);
  color:var(--texte-sombre); padding:clamp(3rem,7vw,6rem) 0 clamp(4rem,8vw,7rem); overflow:hidden; }
.heros-page { padding-bottom:clamp(3rem,6vw,5rem); }
.heros-grille { display:grid; grid-template-columns:1.02fr 1fr; gap:3.2rem; align-items:center; }
.heros h1 { color:#fff; }
.surtitre { text-transform:uppercase; letter-spacing:.14em; font-size:.78rem; font-weight:850; color:var(--or-encre); margin:0 0 .8rem;
  display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; }
.heros .surtitre, .section.sombre .surtitre, .carte-essai .surtitre, .appel-final .surtitre { color:var(--or-vif); }
.dore { background:linear-gradient(90deg,var(--or-clair),var(--or-vif) 55%,var(--or)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.chapo { font-size:1.16rem; max-width:40em; }
.heros .chapo { color:#E3DBC8; }
.rassurance { list-style:none; display:flex; flex-wrap:wrap; gap:.4rem 1.3rem; padding:0; margin:0; font-size:.92rem; color:#D5CCB8; }
.rassurance li::before { content:"✓ "; color:var(--or-vif); font-weight:900; }
.lien-demo { margin:1rem 0 0; }
.lien-demo a { color:var(--or-clair); font-weight:700; display:inline-flex; min-height:44px; align-items:center; }
.heros-visuel { position:relative; }
.navigateur { background:#fff; border-radius:14px; overflow:hidden; box-shadow:var(--ombre); border:1px solid rgba(0,0,0,.08); }
.navigateur .barre { display:flex; align-items:center; gap:6px; padding:9px 12px; background:#EFEAE0; border-bottom:1px solid #E1DAC9; }
.navigateur .barre i { width:10px; height:10px; border-radius:50%; background:#D8CFBD; flex:none; }
.navigateur .barre i:first-child { background:#E06C5C; } .navigateur .barre i:nth-child(2) { background:#E8C25A; } .navigateur .barre i:nth-child(3) { background:#7DBE6E; }
.navigateur .barre span { margin-left:10px; font-size:.75rem; color:#4f4a40; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.heros .navigateur.grand { transform:perspective(1800px) rotateY(-7deg) rotateX(2deg); }
.flottant { position:absolute; }
.navigateur.flottant.f1 { width:48%; right:-7%; bottom:-16%; transform:rotate(2.5deg); border:3px solid #fff; }
.telephone { background:#111; border-radius:30px; padding:9px; box-shadow:var(--ombre); max-width:300px; margin-inline:auto; }
.telephone picture, .telephone img { border-radius:22px; overflow:hidden; }
.telephone.flottant.f2 { width:24%; left:-6%; bottom:-22%; transform:rotate(-4deg); padding:6px; border-radius:22px; }
.telephone.flottant.f2 img { border-radius:17px; }
@media (max-width:900px) { .heros-grille { grid-template-columns:1fr; gap:2.2rem; } .flottant { display:none; } .heros .navigateur.grand { transform:none; } }

/* ---------- Bande chiffres ---------- */
.bande-chiffres { background:linear-gradient(90deg,#E9C75C,var(--or-vif) 50%,#E9C75C); color:#1a1405; }
.chiffres { display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; padding:1.4rem 0; text-align:center; }
.chiffres strong { display:block; font-size:1.65rem; font-weight:900; letter-spacing:-.02em; line-height:1.15; }
.chiffres span { font-size:.88rem; font-weight:650; }
@media (max-width:760px) { .chiffres { grid-template-columns:repeat(2,1fr); } .chiffres div:last-child { grid-column:1 / -1; } }

/* ---------- Sections ---------- */
.section { padding:clamp(3.5rem,7vw,6rem) 0; }
.section.serre { padding:clamp(2rem,4vw,3rem) 0; }
.section.creme { background:var(--creme); }
.section.sombre { background:var(--anthracite); color:var(--texte-sombre); }
.section.sombre h2, .section.sombre h3 { color:#fff; }
.section.sombre .intro, .section.sombre p { color:var(--gris-sombre); }
.section.sombre a:not(.bouton) { color:var(--or-vif); }
.entete-page { background:linear-gradient(180deg,var(--creme),var(--ivoire)); padding-top:clamp(1.5rem,3vw,2.5rem); }
.entete-sombre { padding-top:clamp(2rem,4vw,3rem); }
.entete-sombre h1 { color:#fff; }
.intro { font-size:1.1rem; color:var(--gris); max-width:46em; margin-bottom:2.2rem; }
.deux { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center; }
.deux.haut { align-items:start; }
.trois { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.quatre { display:grid; grid-template-columns:repeat(4,1fr); gap:1.1rem; }
@media (max-width:1000px) { .quatre { grid-template-columns:repeat(2,1fr); } }
@media (max-width:900px) { .deux, .trois { grid-template-columns:1fr; gap:2rem; } }
@media (max-width:600px) { .quatre { grid-template-columns:1fr; } }
.badge-nouveau { display:inline-block; background:var(--rouge); color:#fff; font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  padding:.18rem .55rem; border-radius:999px; vertical-align:middle; }
.badge-bientot { display:inline-block; background:#3A3833; color:#fff; font-size:.7rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  padding:.18rem .55rem; border-radius:999px; vertical-align:middle; white-space:nowrap; }
.carte .badge-bientot { align-self:flex-start; margin-bottom:.4rem; }
.encart-bientot { background:#F3EEE6; border:1px solid #D9CDB6; border-left:5px solid #3A3833; border-radius:12px; padding:.9rem 1.1rem; margin:1rem 0; }
.encart-bientot strong { display:block; }
.offre .preparation { list-style:none; padding:0; margin:.4rem 0 1rem; }
.offre .preparation li { position:relative; padding-left:1.9rem; margin:.4rem 0; color:#CFC6B2; font-size:.95rem; }
.offre .preparation li::before { content:"◔"; position:absolute; left:.2rem; top:0; color:var(--or-clair); }
.offre .titre-preparation { margin:1rem 0 0; font-weight:750; color:#fff; font-size:.95rem; }

/* ---------- Cartes ---------- */
.cartes { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1.1rem; }
.carte { display:flex; flex-direction:column; background:#fff; border:1px solid var(--trait); border-radius:var(--rayon); padding:1.4rem;
  text-decoration:none; color:var(--encre); transition:transform .18s, box-shadow .18s, border-color .18s; }
.carte:hover { transform:translateY(-3px); box-shadow:var(--ombre); border-color:var(--or); color:var(--encre); }
.carte .icone, .icone { width:44px; height:44px; display:inline-grid; place-items:center; border-radius:12px; font-size:1.25rem; flex:none;
  background:linear-gradient(135deg,var(--or-clair),var(--or)); color:#2a1f05; }
.carte .icone { margin-bottom:.9rem; }
.icone.grande { width:56px; height:56px; font-size:1.6rem; border-radius:16px; }
.carte h3 { margin-bottom:.4rem; }
.carte p { color:var(--gris); margin:0 0 1rem; font-size:.97rem; flex:1; }
.carte .lien { color:var(--or-encre); font-weight:750; font-size:.92rem; }
.public-carte { border-top:4px solid var(--or); }
.carte.avec-image { padding:0; overflow:hidden; }
.carte.avec-image .vignette img { aspect-ratio:16/10; object-fit:cover; object-position:top left; width:100%; border-bottom:1px solid var(--trait); }
.carte-corps { padding:1rem 1.2rem 1.2rem; display:flex; flex-direction:column; gap:.35rem; }
.titre-carte { font-weight:750; font-size:1.06rem; line-height:1.25; }
.texte-carte { color:var(--gris); font-size:.94rem; }
.carte.petite { padding:1rem 1.2rem; gap:.2rem; }
.carte.droite { text-align:right; }
.suite-outils { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:1.2rem; }
@media (max-width:600px) { .suite-outils { grid-template-columns:1fr; } .carte.droite { text-align:left; } }

/* ---------- Domaines (tout-en-un) ---------- */
.domaines { display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; }
.domaine { background:#fff; border:1px solid var(--trait); border-radius:var(--rayon); padding:1.3rem; display:flex; flex-direction:column; }
.domaine-tete { display:flex; align-items:center; gap:.7rem; margin-bottom:.7rem; }
.domaine-tete h3 { margin:0; font-size:1.08rem; }
.domaine p { color:var(--gris); font-size:.93rem; }
.domaine ul { list-style:none; padding:0; margin:0 0 .8rem; flex:1; }
.domaine li a { display:flex; align-items:center; min-height:36px; color:var(--encre); text-decoration:none; font-weight:600; font-size:.93rem; border-bottom:1px dashed var(--trait); }
.domaine li a:hover { color:var(--or-encre); }
.domaine .lien { font-weight:750; font-size:.9rem; text-decoration:none; min-height:44px; display:inline-flex; align-items:center; }
@media (max-width:1100px) { .domaines { grid-template-columns:repeat(3,1fr); } }
@media (max-width:760px) { .domaines { grid-template-columns:1fr 1fr; } }
@media (max-width:520px) { .domaines { grid-template-columns:1fr; } }
.domaine-entete { display:flex; gap:1rem; align-items:flex-start; margin-bottom:1.4rem; }
.domaine-entete h2 { margin-bottom:.2rem; }
.domaine-entete p { color:var(--gris); margin:0; }

/* ---------- Vedettes (captures réelles) ---------- */
.vedette { display:grid; grid-template-columns:1.25fr 1fr; gap:3rem; align-items:center; margin:0 0 4.5rem; }
.vedette.inverse .navigateur { order:2; }
.vedette h3 { font-size:clamp(1.4rem,2.4vw,1.85rem); }
.vedette .accroche { font-size:1.08rem; color:var(--gris); }
.vedette:last-child { margin-bottom:0; }
@media (max-width:900px) { .vedette { grid-template-columns:1fr; gap:1.5rem; margin-bottom:3.5rem; } .vedette.inverse .navigateur { order:0; } }

/* ---------- Visite (accueil) ---------- */
.choix-visite { list-style:none; padding:0; margin:1.2rem 0 1.6rem; display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
.choix-visite a { display:flex; align-items:center; gap:.8rem; padding:.8rem 1rem; border:1px solid rgba(243,222,154,.25); border-radius:14px;
  text-decoration:none; color:#fff; background:rgba(255,255,255,.03); min-height:64px; }
.choix-visite a:hover { border-color:var(--or-vif); background:rgba(226,188,74,.08); }
.choix-visite strong { display:block; color:#fff; }
.choix-visite small { color:var(--gris-sombre); }
@media (max-width:520px) { .choix-visite { grid-template-columns:1fr; } }

/* ---------- Comparatifs ---------- */
.tableau-defile { overflow-x:auto; border-radius:var(--rayon); box-shadow:var(--ombre-douce); background:#fff; }
.comparatif { width:100%; border-collapse:collapse; background:#fff; min-width:660px; font-size:.95rem; }
.comparatif th, .comparatif td { padding:.75rem 1rem; border-bottom:1px solid var(--trait); text-align:center; }
.comparatif th[scope="row"] { text-align:left; font-weight:600; }
.comparatif thead th { background:var(--nuit); color:#EDE5D2; font-size:.86rem; vertical-align:bottom; }
.comparatif thead th small { display:block; font-weight:500; color:#C9C0AC; font-size:.78rem; margin-top:.2rem; }
.comparatif thead th.nous { background:var(--or-vif); color:#1a1405; }
.comparatif td.nous { background:rgba(201,162,39,.1); font-weight:750; }
.comparatif.familles { min-width:900px; }
.v-oui { color:#256B29; } .v-non { color:#9A2E25; } .v-partiel { color:#7A5A0E; } .v-variable { color:#4C4A45; } .v-prepa { color:#4C4A45; font-style:italic; }
.familles-cartes { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
.famille { background:#fff; border:1px solid var(--trait); border-radius:var(--rayon); padding:1.5rem; }
.famille h3 small { display:block; font-weight:500; color:var(--gris); font-size:.9rem; margin-top:.3rem; }
.famille dt { font-weight:750; margin-top:.8rem; color:var(--or-encre); font-size:.9rem; text-transform:uppercase; letter-spacing:.06em; }
.famille dd { margin:.2rem 0 0; color:#2f2c26; }
@media (max-width:800px) { .familles-cartes { grid-template-columns:1fr; } }

/* ---------- Sécurité ---------- */
.mini-blocs { display:grid; grid-template-columns:1fr 1fr; gap:.9rem; margin:1.4rem 0; }
.mini-bloc { background:var(--creme); border-radius:14px; padding:1rem 1.1rem; }
.mini-bloc h3 { font-size:1rem; margin-bottom:.3rem; }
.mini-bloc p { font-size:.92rem; color:var(--gris); margin:0; }
@media (max-width:520px) { .mini-blocs { grid-template-columns:1fr; } }
.blocs-securite { display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; }
.bloc-securite { background:#fff; border:1px solid var(--trait); border-radius:var(--rayon); padding:1.4rem; }
.bloc-securite h3 { display:flex; align-items:center; gap:.7rem; }
@media (max-width:1000px) { .blocs-securite { grid-template-columns:1fr 1fr; } }
@media (max-width:640px) { .blocs-securite { grid-template-columns:1fr; } }
.liens-liste { list-style:none; padding:0; } .liens-liste li a { display:flex; min-height:44px; align-items:center; font-weight:650; }

/* ---------- Listes à coches, points ---------- */
.coches { list-style:none; padding:0; margin:1rem 0; }
.coches li { position:relative; padding-left:1.9rem; margin:.5rem 0; }
.coches li::before { content:"✓"; position:absolute; left:0; top:.18rem; width:1.3rem; height:1.3rem; border-radius:50%; display:grid; place-items:center;
  background:var(--or-vif); color:#1a1405; font-weight:900; font-size:.75rem; }
.coches.petites li { font-size:.95rem; margin:.35rem 0; }
.grille-points { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:.9rem; }
.grille-points li { background:#fff; border:1px solid var(--trait); border-radius:14px; padding:1rem 1.1rem 1rem 3.1rem; position:relative; }
.grille-points .coche { position:absolute; left:1rem; top:1rem; width:1.5rem; height:1.5rem; border-radius:50%; display:grid; place-items:center;
  background:var(--or-vif); color:#1a1405; font-weight:900; font-size:.8rem; }
.pour-qui-lien { margin-top:1.4rem; color:var(--gris); }

/* ---------- Pages publics ---------- */
.avant-apres { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
.avant-apres .colonne { border-radius:var(--rayon); padding:1.6rem; }
.avant-apres .avant { background:#F3EEE6; border:1px solid #E3D9C9; }
.avant-apres .apres { background:var(--anthracite); color:var(--texte-sombre); }
.avant-apres .apres h3 { color:var(--or-vif); }
.avant-apres .point { margin:1rem 0 0; }
.avant-apres .point strong { display:block; font-size:1.05rem; }
.avant-apres .point p { margin:.2rem 0 0; color:var(--gris); }
.avant-apres .apres .point p { color:var(--gris-sombre); }
.avant-apres .apres .point strong { color:#fff; }
@media (max-width:800px) { .avant-apres { grid-template-columns:1fr; } }
.galerie { display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; }
.galerie figure { margin:0; }
.galerie .fig-mobile { display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#2a2721,#141310); border-radius:var(--rayon); padding:1.4rem; }
.galerie .fig-mobile .telephone { max-width:220px; }
@media (max-width:700px) { .galerie { grid-template-columns:1fr; } }
.autres-publics { margin-top:1.5rem; color:var(--gris); }
.autres-publics a, .autres-parcours a { display:inline-flex; min-height:44px; align-items:center; }

/* ---------- Tarifs ---------- */
.offres { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.carte-essai { background:linear-gradient(160deg,#2a261e,#15130f); border:1px solid rgba(201,162,39,.45); border-radius:22px; padding:2rem; box-shadow:var(--ombre); color:var(--texte-sombre); }
.offre .prix { font-size:clamp(2rem,4vw,2.9rem); font-weight:900; color:#fff; letter-spacing:-.02em; line-height:1.1; margin:.2rem 0 .3rem; }
.offre .prix small { font-size:1rem; font-weight:650; color:var(--or-clair); }
.offre .petit-texte { color:#CFC6B2; opacity:1; }
.offre .coches li { color:#E9E1CE; }
.offre.ecole { background:linear-gradient(160deg,#1f1c17,#100f0c); border-color:rgba(243,222,154,.28); }
@media (max-width:900px) { .offres { grid-template-columns:1fr; } }
.etape-essai { background:#fff; border:1px solid var(--trait); border-radius:var(--rayon); padding:1.5rem; }
.etape-essai .num, .etape-num span { display:inline-grid; place-items:center; width:36px; height:36px; border-radius:50%; background:var(--nuit); color:var(--or-vif); font-weight:900; margin-bottom:.8rem; }
.petit-texte { font-size:.86rem; color:var(--gris); }

/* ---------- FAQ ---------- */
.question { background:#fff; border:1px solid var(--trait); border-radius:14px; margin:.6rem 0; padding:0 1.2rem; }
.question summary { cursor:pointer; font-weight:720; padding:1rem 2rem 1rem 0; list-style:none; position:relative; min-height:44px; }
.question summary::-webkit-details-marker { display:none; }
.question summary::after { content:"+"; position:absolute; right:0; top:.8rem; font-size:1.45rem; color:var(--or-encre); line-height:1; }
.question[open] summary::after { content:"–"; }
.question p { margin:0 0 1.1rem; color:#3f3b33; }
.question:target { border-color:var(--or); box-shadow:0 0 0 3px rgba(201,162,39,.25); }

/* ---------- Formulaire de contact ---------- */
.formulaire { background:#fff; border:1px solid var(--trait); border-radius:20px; padding:1.6rem; box-shadow:var(--ombre); display:grid; gap:.9rem; }
.formulaire label, .tchat-contact label { display:grid; gap:.3rem; font-weight:650; font-size:.92rem; }
.formulaire input, .formulaire select, .formulaire textarea, .tchat-contact input { font:inherit; font-weight:400; padding:.7rem .85rem; border:1px solid #CFC4AA;
  border-radius:10px; background:#FFFDF8; width:100%; min-height:46px; color:var(--encre); }
.formulaire input:focus, .formulaire select:focus, .formulaire textarea:focus { border-color:var(--or-encre); outline:3px solid rgba(201,162,39,.35); }
.formulaire .case, .tchat-contact .case { display:flex; gap:.6rem; align-items:flex-start; font-weight:400; }
.formulaire .case input, .tchat-contact .case input { width:22px; height:22px; min-height:0; margin-top:.15rem; flex:none; }
.ligne2 { display:grid; grid-template-columns:1fr 1fr; gap:.9rem; }
@media (max-width:600px) { .ligne2 { grid-template-columns:1fr; } }
.piege { position:absolute; left:-5000px; width:1px; height:1px; overflow:hidden; }
.section.creme .petit-texte, .formulaire .petit-texte { opacity:1; color:var(--gris); }

/* ---------- Pastilles ---------- */
.pastilles { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.2rem; }
.pastilles a { display:inline-flex; align-items:center; gap:.4rem; min-height:44px; padding:.4rem 1rem; border:1px solid var(--trait); border-radius:999px;
  background:#fff; text-decoration:none; color:var(--encre); font-weight:650; font-size:.92rem; }
.pastilles a:hover { border-color:var(--or); }
.pastilles .compte { background:var(--creme); border-radius:999px; padding:0 .45rem; font-size:.8rem; }

/* ---------- Visite guidée ---------- */
.visite { padding-bottom:4rem; }
.choix-profils { list-style:none; padding:0; margin:0 0 2rem; display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.choix-profil { display:flex; flex-direction:column; gap:.45rem; height:100%; padding:1.4rem; background:#fff; border:1px solid var(--trait); border-radius:var(--rayon);
  text-decoration:none; color:var(--encre); transition:transform .18s, box-shadow .18s, border-color .18s; }
.choix-profil:hover { transform:translateY(-3px); box-shadow:var(--ombre); border-color:var(--or); color:var(--encre); }
.choix-titre { font-weight:800; font-size:1.15rem; }
.choix-texte { color:var(--gris); font-size:.95rem; flex:1; }
.choix-compte { font-weight:750; color:var(--or-encre); }
@media (max-width:1000px) { .choix-profils { grid-template-columns:1fr 1fr; } }
@media (max-width:560px) { .choix-profils { grid-template-columns:1fr; } }
.parcours-visite { margin:0 0 3rem; }
.parcours-tete { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; flex-wrap:wrap; }
.parcours-tete h2 { font-size:clamp(1.3rem,2.4vw,1.8rem); margin:0; }
.visite-compteur { color:var(--gris); font-weight:650; margin:0; }
.visite-progression { height:6px; background:#EAE2CF; border-radius:6px; overflow:hidden; margin:.8rem 0 1.6rem; }
.visite-progression span { display:block; height:100%; width:0; background:linear-gradient(90deg,var(--or),var(--or-vif)); transition:width .35s ease; }
.visite-etapes { list-style:none; margin:0; padding:0; }
.etape-visite { display:grid; grid-template-columns:1.55fr 1fr; gap:2.4rem; align-items:center; margin-bottom:3rem; }
.etape-visite .telephone { max-width:280px; }
.etape-num { color:var(--gris); font-weight:650; display:flex; align-items:center; gap:.6rem; }
.etape-num span { margin:0; width:auto; height:auto; border-radius:999px; padding:.15rem .8rem; }
.etape-texte h3 { font-size:clamp(1.4rem,2.4vw,1.9rem); }
.etape-texte h3:focus { outline:none; }
.etape-fin { display:block; }
.fin-visite { background:var(--anthracite); color:var(--texte-sombre); border-radius:22px; padding:clamp(1.6rem,4vw,3rem); text-align:center; }
.fin-visite h3 { color:#fff; font-size:clamp(1.5rem,3vw,2.2rem); }
.fin-visite p { color:var(--gris-sombre); max-width:42em; margin-inline:auto; }
.fin-visite .bouton.contour { color:var(--or-clair); border-color:rgba(243,222,154,.6); }
.fin-visite a:not(.bouton) { color:var(--or-vif); margin:0 .4rem; }
.visite-commandes { display:none; }
.visite-aide { display:none; color:var(--gris); font-size:.9rem; text-align:center; }
@media (max-width:900px) { .etape-visite { grid-template-columns:1fr; gap:1.2rem; } }
/* Avec JavaScript : une étape à la fois */
.js .visite .parcours-visite { display:none; }
.js .visite.en-cours .visite-choix { display:none; }
.js .visite .parcours-visite.actif { display:block; }
.js .visite .etape-visite { display:none; margin:0; }
.js .visite .etape-visite.actif { display:grid; animation:entree .4s ease; }
.js .visite .etape-fin.actif { display:block; }
.js .visite .visite-commandes { display:flex; justify-content:space-between; align-items:center; gap:.6rem; margin-top:1.6rem; padding-top:1rem; border-top:1px solid var(--trait); }
.js .visite.en-cours .visite-aide { display:block; }
@keyframes entree { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@media (max-width:600px) {
  .js .visite .visite-commandes { position:sticky; bottom:0; background:rgba(253,251,244,.97); padding:.6rem 0 calc(.6rem + env(safe-area-inset-bottom)); margin-top:1rem; z-index:5; }
  .js .visite .visite-commandes .lien-bouton { padding:.4rem .4rem; font-size:.85rem; }
}

/* ---------- Appel final et pied ---------- */
.appel-final { background:radial-gradient(800px 400px at 90% 0%, rgba(201,162,39,.28), transparent 60%), var(--nuit); color:var(--texte-sombre); padding:3rem 0; }
.appel-final-grille { display:flex; justify-content:space-between; align-items:center; gap:2rem; flex-wrap:wrap; }
.appel-final h2 { color:#fff; font-size:clamp(1.4rem,2.6vw,2rem); margin-bottom:.3rem; }
.appel-final p { color:var(--gris-sombre); margin:0; }
.appel-final .actions { margin:0; }
.pied { background:#0a0a0a; color:#BDB4A1; padding:3.5rem 0 1.5rem; font-size:.93rem; border-top:1px solid #222; }
.pied a { color:#E9DFC6; text-decoration:none; display:inline-flex; min-height:32px; align-items:center; }
.pied a:hover { color:var(--or-vif); }
.grille-pied { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2rem; }
.pied h2 { font-size:.8rem; text-transform:uppercase; letter-spacing:.12em; color:var(--or-vif); margin:0 0 .7rem; }
.pied ul { list-style:none; padding:0; margin:0 0 1.4rem; } .pied li { margin:.15rem 0; }
.logo-pied { background:var(--ivoire); border-radius:10px; padding:8px 12px; margin-bottom:1rem; width:200px; }
.mention { border-top:1px solid #2a2722; margin-top:2rem; padding-top:1.2rem; font-size:.8rem; color:#A39B8A; }
@media (max-width:900px) { .grille-pied { grid-template-columns:1fr 1fr; } }
@media (max-width:560px) { .grille-pied { grid-template-columns:1fr; } .pied a { min-height:44px; } }
.conditions h2 { font-size:1.25rem; margin-top:1.8em; } .conditions p, .conditions li { color:#2b2822; }

/* ---------- Tchat prospect ---------- */
.tchat { position:fixed; right:18px; bottom:18px; z-index:60; font-size:.95rem; }
.tchat-bouton { display:inline-flex; align-items:center; gap:.6rem; background:var(--nuit); color:#fff; border:2px solid var(--or-vif); border-radius:999px;
  padding:.55rem 1.1rem .55rem .55rem; min-height:52px; font:inherit; font-weight:750; cursor:pointer; box-shadow:0 14px 32px -10px rgba(0,0,0,.55); }
.tchat-bouton:hover { background:#24211b; }
.tchat-pastille { width:34px; height:34px; border-radius:50%; background:var(--or-vif); color:#1a1405; display:grid; place-items:center; font-weight:900; }
.tchat-fenetre { position:absolute; right:0; bottom:66px; width:min(400px, calc(100vw - 24px)); max-height:min(640px, calc(100vh - 110px));
  background:#fff; border:1px solid var(--trait); border-radius:20px; box-shadow:0 30px 70px -20px rgba(0,0,0,.45); display:flex; flex-direction:column; overflow:hidden; }
.tchat-fenetre[hidden] { display:none; }
.tchat-tete { display:flex; justify-content:space-between; align-items:flex-start; gap:.6rem; padding:1rem 1rem .8rem 1.1rem; background:var(--nuit); color:#fff; }
.tchat-titre { font-weight:800; margin:0; color:#fff; }
.tchat-sous-titre { margin:0; font-size:.8rem; color:#CFC6B2; }
.tchat-fermer { background:transparent; color:#fff; border:1px solid rgba(255,255,255,.3); border-radius:10px; min-width:44px; min-height:44px; cursor:pointer; font-size:1rem; }
.tchat-fil { flex:1; overflow-y:auto; padding:1rem; display:flex; flex-direction:column; gap:.7rem; background:var(--ivoire); min-height:180px; }
.tchat-msg { max-width:92%; padding:.7rem .9rem; border-radius:14px; line-height:1.5; }
.tchat-msg p { margin:0 0 .5rem; } .tchat-msg p:last-child { margin:0; }
.tchat-msg ul { margin:.3rem 0 .5rem; padding-left:1.1rem; }
.tchat-bot { background:#fff; border:1px solid var(--trait); align-self:flex-start; }
.tchat-moi { background:var(--anthracite); color:#fff; align-self:flex-end; }
.tchat-sources { margin-top:.5rem; font-size:.84rem; border-top:1px dashed var(--trait); padding-top:.45rem; }
.tchat-sources a { font-weight:700; }
.tchat-actions-msg { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.6rem; }
.tchat-suggestions { display:flex; flex-wrap:wrap; gap:.4rem; }
.tchat-suggestions button, .tchat-actions-msg button, .tchat-actions-msg a { background:#fff; border:1px solid var(--or); color:var(--or-encre); border-radius:999px; padding:.35rem .8rem;
  min-height:40px; font:inherit; font-size:.86rem; font-weight:650; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; }
.tchat-suggestions button:hover, .tchat-actions-msg button:hover { background:var(--creme); }
.tchat-formulaire { display:flex; gap:.5rem; padding:.75rem; border-top:1px solid var(--trait); background:#fff; }
.tchat-formulaire input { flex:1; min-width:0; font:inherit; padding:.6rem .8rem; border:1px solid #CFC4AA; border-radius:12px; min-height:44px; }
.tchat-contact { padding:.9rem; border-top:1px solid var(--trait); display:grid; gap:.6rem; background:#fff; max-height:55vh; overflow-y:auto; }
.tchat-contact[hidden] { display:none; }
.tchat-contact-titre { margin:0; font-weight:800; }
.tchat-contact-actions { display:flex; gap:.5rem; }
.tchat-rgpd { margin:0; padding:.5rem .9rem .7rem; font-size:.74rem; color:var(--gris); background:#fff; border-top:1px solid #f0eadb; }
.tchat-attente { display:inline-flex; gap:4px; } .tchat-attente i { width:7px; height:7px; border-radius:50%; background:var(--or); animation:pulse 1s infinite alternate; }
.tchat-attente i:nth-child(2) { animation-delay:.2s; } .tchat-attente i:nth-child(3) { animation-delay:.4s; }
@keyframes pulse { from { opacity:.25; } to { opacity:1; } }
@media (max-width:520px) {
  .tchat { right:12px; bottom:12px; }
  .tchat-libelle { display:none; }
  .tchat-bouton { padding:.45rem; }
  .tchat-fenetre { position:fixed; left:8px; right:8px; bottom:76px; width:auto; max-height:calc(100vh - 96px); }
}

@media (prefers-reduced-motion:reduce) { *, *::before, *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
@media print { .bandeau, .tchat, .appel-final, .pied { display:none; } }
.section.sombre .offre .prix, .offre .prix { color:#fff; }
.section.sombre .offre .petit-texte { color:#CFC6B2; }
.section.sombre .offre .coches li { color:#E9E1CE; }
#contact .deux { align-items:start; }
@media (max-width:600px) { .visite-active .tchat { bottom:86px; } .visite-entete h1 { font-size:1.8rem; } }
