/* ====================================================================
   pages.css : les pages intérieures (formules, formation, règlement,
   questions, galerie, Citiz, contact, pages légales, 404).
   Un héros propre à chaque page, puis le contenu en cartes, appuyé
   d'icônes au trait sur tuile carrée. Aucune scène lourde de l'accueil ;
   seules montent les révélations `montee` et la bascule des boutons
   (animate.js), coupées en mouvement réduit.
   ==================================================================== */
li,dd,dt,td,th,figcaption,summary,label{text-wrap:pretty}
.etoffe{background:var(--papier)}
sup{font-size:.72em;line-height:0;vertical-align:.36em}
.sur{display:block;font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--rouge)}

/* -------------------------------------------------- briques : tuile d'icône et carte */
/* l'icône sur un carré arrondi, jamais dans un rond */
.tuile{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;border-radius:12px;background:color-mix(in srgb,var(--rouge) 9%,var(--papier));color:var(--rouge)}
.tuile svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.sombre .tuile,.h-sombre .tuile{background:rgba(255,255,255,.08);color:#ff5a52}
.h-rouge .tuile{background:rgba(255,255,255,.14);color:#fff}
.carte{position:relative;background:var(--papier);border:1px solid var(--filet);border-radius:18px;padding:clamp(22px,2.4vw,34px);transition:border-color .25s ease}
.carte:hover{border-color:color-mix(in srgb,var(--rouge) 45%,var(--filet))}
.carte.sombre{background:var(--nuit);color:var(--creme);border-color:var(--nuit)}
.carte.sombre:hover{border-color:color-mix(in srgb,var(--rouge) 60%,var(--nuit))}
.carte-tete{display:flex;align-items:center;gap:14px}
.carte h3{font-size:clamp(19px,1.5vw,23px);font-weight:500;letter-spacing:-.015em;line-height:1.25}
.carte p{font-size:16px;line-height:1.6;color:var(--texte-2)}
.carte.sombre p,.carte.sombre li{color:rgba(246,239,228,.78)}
.carte-tete+p,.carte-tete+div,.carte h3+p{margin-top:14px}

/* -------------------------------------------------- héros sobre (règlement, pages légales, 404) */
.entete{position:relative;overflow:hidden;background:var(--creme);padding:clamp(56px,8vw,128px) 0 clamp(48px,6vw,96px);border-bottom:1px solid var(--filet)}
.entete::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 1px 1px,rgba(120,80,40,.2) 1px,transparent 1.4px);background-size:16px 16px;
  -webkit-mask-image:linear-gradient(100deg,transparent 30%,#000 85%);mask-image:linear-gradient(100deg,transparent 30%,#000 85%)}
.entete-a{position:absolute;right:-4vw;bottom:-14%;width:min(46vw,620px);height:auto;aspect-ratio:1;pointer-events:none;overflow:visible}
.entete-a text{font-family:var(--sans);font-weight:700;font-size:100px;text-anchor:middle;fill:none;stroke:var(--filet-2);stroke-width:1.2;vector-effect:non-scaling-stroke}
.entete .c{position:relative}
.entete h1,.heros-p h1{font-family:var(--serif);font-size:clamp(44px,5.6vw,96px);line-height:.98;letter-spacing:-.03em;margin-top:20px;max-width:15ch}
.entete h1:first-child,.heros-p h1:first-child{margin-top:0}
.chapo{font-size:clamp(18px,1.45vw,22px);line-height:1.45;color:var(--texte-2);margin-top:clamp(20px,2.4vw,32px);max-width:50ch}

/* informations réglementaires : le héros sobre et le badge de l'agrément */
/* le titre tient sur une ligne (deux mots longs : coupé, il laisserait un mot seul), le badge passe dessous */
.entete-badge h1{max-width:none}
.badge{margin-top:clamp(24px,3vw,40px);display:inline-flex;align-items:center;gap:16px;padding:22px 26px;border-radius:18px;background:var(--papier);border:1px solid var(--filet);max-width:420px}
.badge b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(22px,1.9vw,28px);line-height:1.2;letter-spacing:-.01em;color:var(--encre)}

.heros-p{position:relative;overflow:hidden}
.heros-p .c{position:relative}

/* formules : graphite, la 208 détourée à droite, les prix en puces */
.h-sombre{background:var(--nuit);color:var(--creme);padding:clamp(56px,7vw,112px) 0 clamp(56px,6vw,96px)}
.h-sombre .c{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:32px clamp(32px,4vw,72px)}
.h-sombre h1{color:#fff}
.h-sombre .chapo{color:rgba(246,239,228,.78)}
.h-sombre-photo{position:relative}
.h-sombre-photo img{width:100%;height:auto;filter:drop-shadow(0 30px 30px rgba(0,0,0,.55))}
.h-sombre-photo::after{content:"";position:absolute;left:8%;right:8%;bottom:-2%;height:14%;border-radius:50%;background:radial-gradient(closest-side,rgba(226,6,19,.28),transparent);z-index:-1}
.prix-puces{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}
.prix-puces li{padding:10px 16px;border-radius:12px;border:1px solid rgba(246,239,228,.18);background:rgba(255,255,255,.04);font-size:15px;line-height:1.3;color:var(--creme);white-space:nowrap}
.prix-puces li:first-child{background:var(--rouge);border-color:var(--rouge);color:#fff}

/* formation : héros scindé, le simulateur à droite, la frise des étapes dessous */
.h-scinde{background:var(--creme);padding:clamp(48px,6vw,96px) 0 clamp(40px,5vw,72px);border-bottom:1px solid var(--filet)}
.h-scinde-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:32px clamp(32px,4vw,72px)}
.h-scinde-photo{border-radius:18px;overflow:hidden;aspect-ratio:16/10;background:var(--creme-2)}
.h-scinde-photo img{width:100%;height:100%;object-fit:cover;object-position:40% 50%}
.frise{list-style:none;position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:clamp(36px,4vw,56px)}
.frise::before{content:"";position:absolute;left:4%;right:4%;top:28px;height:1.5px;background:var(--filet-2)}
.frise a{position:relative;display:flex;align-items:center;gap:12px;padding:10px 14px 10px 10px;border-radius:14px;background:var(--papier);border:1px solid var(--filet);font-size:15px;line-height:1.25;transition:border-color .25s ease,color .25s ease}
.frise a:hover{border-color:var(--rouge);color:var(--rouge)}
.frise b{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:10px;background:var(--rouge);color:#fff;font-family:var(--serif);font-weight:400;font-size:19px}

/* questions : centré, typographique, le grand « ? » en filigrane */
.h-centre{background:var(--creme);padding:clamp(64px,8vw,128px) 0 clamp(48px,6vw,88px);border-bottom:1px solid var(--filet);text-align:center}
.h-centre .filigrane{position:absolute;left:50%;top:50%;translate:-50% -50%;font-family:var(--serif);font-size:clamp(240px,30vw,440px);line-height:.8;color:color-mix(in srgb,var(--rouge) 10%,var(--creme));pointer-events:none;user-select:none}
.h-centre h1{margin-inline:auto;max-width:14ch}
.h-centre-rangee{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);align-items:center;gap:20px 36px;max-width:920px;margin:clamp(28px,3vw,40px) auto 0;text-align:left}
.h-centre .chapo{margin-top:0}
.h-centre .appel-carte{display:flex;align-items:center;gap:14px;padding:18px 20px;border-radius:16px;background:var(--papier);border:1px solid var(--filet);font-size:16px;line-height:1.45;color:var(--texte-2)}
.appel-carte a{color:var(--encre);font-weight:500;text-decoration:underline;text-decoration-color:var(--rouge);text-underline-offset:3px;white-space:nowrap}

/* galerie : trois photos qui se chevauchent */
.h-mosaique{background:var(--creme);padding:clamp(48px,6vw,96px) 0;border-bottom:1px solid var(--filet)}
.h-mosaique .c{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:40px clamp(32px,4vw,72px)}
.mosaique{position:relative;height:clamp(300px,34vw,500px)}
.mosaique img{position:absolute;object-fit:cover;border-radius:16px;border:6px solid var(--papier);box-shadow:0 24px 48px -28px rgba(29,23,20,.45)}
.mosaique .m1{left:0;top:6%;width:44%;height:78%}
.mosaique .m2{left:34%;top:0;width:46%;height:56%;z-index:1}
.mosaique .m3{right:0;bottom:0;width:52%;height:52%;z-index:2}

/* Citiz : aplat rouge, le code en ticket */
.h-rouge{background:var(--rouge);color:#fff;padding:clamp(56px,7vw,112px) 0}
.h-rouge .c{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);align-items:center;gap:40px clamp(32px,4vw,72px)}
.h-rouge .sur{color:rgba(255,255,255,.75)}
.h-rouge .chapo{color:rgba(255,255,255,.88)}
.ticket{--encoche:14px;--y:44%;position:relative;display:grid;grid-template-columns:minmax(0,1fr);background:var(--papier);color:var(--encre);border-radius:18px;
  -webkit-mask:radial-gradient(circle var(--encoche) at 0 var(--y),transparent 98%,#000) 0 0/51% 100% no-repeat,radial-gradient(circle var(--encoche) at 100% var(--y),transparent 98%,#000) 100% 0/51% 100% no-repeat;
  mask:radial-gradient(circle var(--encoche) at 0 var(--y),transparent 98%,#000) 0 0/51% 100% no-repeat,radial-gradient(circle var(--encoche) at 100% var(--y),transparent 98%,#000) 100% 0/51% 100% no-repeat}
.ticket-code{padding:clamp(24px,2.6vw,36px) clamp(24px,2.6vw,36px) 22px;border-bottom:2px dashed var(--filet-2)}
.ticket-code strong{display:block;font-weight:600;font-size:clamp(30px,3.2vw,52px);line-height:1;letter-spacing:.02em;color:var(--rouge)}
.ticket ul{list-style:none;display:grid;gap:12px;padding:24px clamp(24px,2.6vw,36px) clamp(24px,2.6vw,36px)}
.ticket li{display:flex;align-items:center;gap:14px;font-size:17px;line-height:1.4}
.ticket .tuile{width:40px;height:40px;background:color-mix(in srgb,var(--rouge) 9%,var(--papier));color:var(--rouge)}

/* contact : la façade en grand, la carte horaires qui chevauche son bas */
.h-photo{position:relative;background:var(--creme)}
.h-photo+.bloc{padding-top:clamp(40px,4vw,64px)}
.h-photo-cadre{position:relative}
.h-photo figure{position:relative;height:clamp(380px,46vw,620px);overflow:hidden}
.h-photo figure img{width:100%;height:100%;object-fit:cover;object-position:50% 55%}
.h-photo figure::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(12,12,13,.78),rgba(12,12,13,.15) 55%,transparent)}
.h-photo-texte{position:absolute;left:0;right:0;bottom:clamp(40px,5vw,72px);z-index:1;color:#fff}
.h-photo-texte h1{color:#fff;max-width:12ch}
.h-photo-texte .chapo{color:rgba(255,255,255,.88);max-width:40ch}
.h-photo .c.chevauche{position:relative;z-index:2;display:flex;justify-content:flex-end;margin-top:clamp(-120px,-8vw,-64px)}
.carte-horaires{width:min(100%,420px);box-shadow:0 30px 60px -36px rgba(29,23,20,.5)}
.carte-horaires dl{display:grid;gap:8px;margin-top:16px;font-size:15px;line-height:1.45}
.carte-horaires dt{color:var(--cendre)}
.carte-horaires dd{color:var(--encre);margin-bottom:4px}
.carte-horaires .tels{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:18px;padding-top:16px;border-top:1px solid var(--filet);font-size:17px;font-weight:500}
.carte-horaires .tels a{font-variant-numeric:tabular-nums;white-space:nowrap;text-decoration:none}
.carte-horaires .tels a:hover{color:var(--rouge)}

/* -------------------------------------------------- blocs de contenu */
.bloc{position:relative;padding:clamp(64px,8vw,120px) 0;border-top:1px solid var(--filet)}
.entete+.bloc,.heros-p+.bloc{border-top:0}
.bloc-titre{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px 32px;margin-bottom:clamp(28px,3vw,44px)}
.bloc-titre h2,.titre-2{font-family:var(--serif);font-size:clamp(32px,3.2vw,52px);line-height:1.04;letter-spacing:-.02em}
.bloc-titre .sur+h2{margin-top:12px}
.bloc-titre p{font-size:17px;line-height:1.55;color:var(--texte-2);max-width:52ch}
.texte p,.texte li{font-size:17px;line-height:1.6;color:var(--texte-2)}
.texte p+p,.texte p+ul,.texte ul+p,.texte p+ol{margin-top:14px}
.texte a:not(.btn),.prose a,.lien,.carte a:not(.btn){color:inherit;text-decoration:underline;text-decoration-color:var(--rouge);text-decoration-thickness:1.5px;text-underline-offset:3px;transition:color .2s ease}
.texte a:not(.btn):hover,.prose a:hover,.lien:hover,.carte a:not(.btn):hover{color:var(--rouge)}
a:focus-visible{outline:2px solid var(--rouge);outline-offset:3px;border-radius:2px}
.puces{list-style:none;display:grid;gap:8px}
.puces li{position:relative;padding-left:22px}
.puces li::before{content:"";position:absolute;left:0;top:.74em;width:10px;height:2px;background:var(--rouge)}
.note{margin-top:28px;padding:18px 22px;border:1px solid var(--filet);border-radius:14px;background:var(--papier);font-size:16px;line-height:1.55;color:var(--texte-2)}

/* -------------------------------------------------- formules : les packs en cartes */
.packs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.packs .large{grid-column:1 / -1}
.packs-auto{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.packs-auto .haute{grid-row:span 2}
.pack{display:flex;flex-direction:column;gap:18px}
.pack-vedette{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px clamp(32px,4vw,64px)}
.pack-vedette .pack-col{display:flex;flex-direction:column;gap:18px}
.pack-vedette>h3{grid-column:1 / -1}
/* le forfait code : une carte à part, plus discrète que les packs */
.pack-code{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px clamp(32px,4vw,64px)}
.pack-code .prix strong{font-size:clamp(34px,2.8vw,44px)}
.pack-tag{display:inline-block;align-self:flex-start;padding:5px 10px;border-radius:8px;background:var(--rouge);color:#fff;font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase}
.pack p,.pack li{font-size:16px;line-height:1.55;color:var(--texte-2)}
.pack b{font-weight:500;color:var(--encre)}
.sombre .pack-col b,.pack.sombre b{color:#fff}
.pack .lab{display:block;margin-bottom:8px}
.sombre .lab{color:rgba(246,239,228,.55)}
.prix{font-variant-numeric:tabular-nums}
.prix strong{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(40px,3.4vw,58px);line-height:1;letter-spacing:-.02em;white-space:nowrap}
.prix strong small{font-family:var(--sans);font-size:15px;font-weight:500;letter-spacing:.02em;color:var(--cendre);margin-left:6px}
.sombre .prix strong small,.sombre .prix .tva{color:rgba(246,239,228,.6)}
.prix .tva{display:block;margin-top:8px;font-size:14px;color:var(--cendre)}
.prix .autre{display:block;margin-top:14px;padding:12px 14px;border-radius:12px;background:var(--creme);font-size:15px;line-height:1.5;color:var(--texte-2)}
.prix .autre b{white-space:nowrap}
.echeancier ol{list-style:none;position:relative;display:grid;gap:12px;margin-top:10px;padding-left:22px}
.echeancier ol::before{content:"";position:absolute;left:4px;top:9px;bottom:9px;width:1.5px;background:var(--filet-2)}
.sombre .echeancier ol::before{background:rgba(246,239,228,.2)}
.echeancier li{position:relative;font-size:15px;line-height:1.4}
.echeancier li::before{content:"";position:absolute;left:-22px;top:5px;width:10px;height:10px;border-radius:3px;background:var(--papier);border:1.5px solid var(--rouge)}
.sombre .echeancier li::before{background:var(--nuit)}
.echeancier li:first-child::before{background:var(--rouge)}
.echeancier li b{display:inline-block;min-width:4.6ch;font-variant-numeric:tabular-nums}
.echeancier p{margin-top:12px;font-size:14px;line-height:1.5;color:var(--cendre)}
.ligne{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 32px}
.ligne .prix strong{font-size:clamp(32px,2.6vw,44px)}
.ligne p{margin-top:6px}
.famille{margin-top:clamp(56px,6vw,88px)}
.carte-tableau{padding-top:8px;padding-bottom:8px}
.tarifs{width:100%;border-collapse:collapse;font-size:16px}
.tarifs th{text-align:left;font-weight:500;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--cendre);padding:18px 0 14px;border-bottom:1px solid var(--encre)}
.tarifs th:last-child{text-align:right}
.tarifs td{padding:16px 0;border-bottom:1px solid var(--filet);line-height:1.45;color:var(--texte-2);vertical-align:baseline}
.tarifs tr:last-child td{border-bottom:0}
.tarifs td:last-child{text-align:right;white-space:nowrap;padding-left:24px;font-family:var(--serif);font-size:22px;color:var(--encre);font-variant-numeric:tabular-nums}
/* aides : bento, la première en grand */
.aides{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px}
.aides .haute{grid-row:span 2;display:flex;flex-direction:column}
.aides .haute .tuile{width:52px;height:52px;border-radius:14px}
.aides .haute .tuile svg{width:26px;height:26px}
.aides .haute h3{font-family:var(--serif);font-weight:400;font-size:clamp(28px,2.4vw,38px);line-height:1.1;letter-spacing:-.02em;margin-top:auto;padding-top:clamp(32px,4vw,64px)}
.aides .haute p{margin-top:14px}
.duo-cartes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
/* pièces à fournir : des cases à cocher */
.pieces{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.piece{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 18px;border-radius:16px;background:var(--papier);border:1px solid var(--filet);cursor:pointer;font-size:16px;line-height:1.45;color:var(--texte-2);transition:border-color .25s ease,background-color .25s ease}
.etoffe .carte,.etoffe .piece,.etoffe .faq details{background:#fff}
.piece:hover{border-color:color-mix(in srgb,var(--rouge) 45%,var(--filet))}
.piece input{appearance:none;-webkit-appearance:none;width:24px;height:24px;margin:0;border-radius:7px;border:1.5px solid var(--filet-2);background:#fff;cursor:pointer;display:grid;place-items:center;transition:background-color .2s ease,border-color .2s ease}
.piece input::after{content:"";width:10px;height:6px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:translateY(-1px) rotate(-45deg);opacity:0}
.piece input:checked{background:var(--rouge);border-color:var(--rouge)}
.piece input:checked::after{opacity:1}
.piece input:focus-visible{outline:2px solid var(--rouge);outline-offset:3px}
.piece:has(input:checked){border-color:var(--rouge);background:color-mix(in srgb,var(--rouge) 4%,var(--papier))}
.piece:has(input:checked) span{color:var(--encre)}

/* -------------------------------------------------- appel de fin : aplat rouge */
.appel{position:relative;overflow:hidden;background:var(--rouge);color:#fff;padding:clamp(64px,8vw,112px) 0}
.appel .c{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:clamp(28px,3vw,40px)}
.appel p{font-family:var(--serif);font-size:clamp(30px,3.6vw,60px);line-height:1.05;letter-spacing:-.025em;max-width:20ch;text-wrap:balance}
.appel-a{position:absolute;right:-6vw;top:50%;width:min(60vh,520px);height:min(60vh,520px);translate:0 -50%;pointer-events:none;overflow:visible}
.appel-a text{font-family:var(--sans);font-weight:700;font-size:100px;text-anchor:middle;fill:none;stroke:rgba(255,255,255,.35);stroke-width:1.2;vector-effect:non-scaling-stroke}
.appel .btn:focus-visible,.appel a:focus-visible{outline-color:#fff}
.appel p a{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:.12em;text-decoration-color:rgba(255,255,255,.5);white-space:nowrap}
.appel p a:hover{text-decoration-color:#fff}
.appel-seul{padding:clamp(48px,5vw,72px) 0}

/* -------------------------------------------------- formation */
/* les cinq étapes : des cartes numérotées sur un fil */
.fil{list-style:none;position:relative;display:grid;gap:16px;padding-left:76px}
.fil::before{content:"";position:absolute;left:27px;top:28px;bottom:28px;width:2px;background:linear-gradient(var(--rouge),var(--filet-2))}
.fil>li{position:relative;scroll-margin-top:calc(var(--barre) + 24px)}
.fil-n{position:absolute;left:-76px;top:clamp(22px,2.4vw,34px);display:grid;place-items:center;width:56px;height:56px;border-radius:14px;background:var(--rouge);color:#fff;font-family:var(--serif);font-size:28px;line-height:1}
.fil .carte{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:16px clamp(24px,4vw,64px)}
.fil h2{font-family:var(--serif);font-size:clamp(26px,2.3vw,36px);line-height:1.08;letter-spacing:-.02em}
.fil .carte-tete{align-items:flex-start;flex-direction:column}
.enseignants{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:40px clamp(32px,5vw,96px)}
.enseignants p{font-size:clamp(20px,1.6vw,24px);line-height:1.4;color:var(--texte-2);margin-top:18px;max-width:30ch}
/* les parcours : une carte large, deux étroites */
.parcours{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px}
.parcours .haute{grid-row:span 2}
.parcours h2,.paire h2{font-family:var(--serif);font-size:clamp(26px,2.2vw,34px);line-height:1.1;letter-spacing:-.015em;font-weight:400}
.parcours .carte h2+p,.paire .carte h2+p{margin-top:14px}
.parcours .carte p+p,.parcours .carte p+ul,.parcours .carte ul+p{margin-top:12px}
.chiffres{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}
.chiffres li{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:14px;background:var(--creme);font-size:15px;line-height:1.4;color:var(--texte-2)}
.chiffres li strong{font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.2vw,34px);line-height:1;letter-spacing:-.02em;color:var(--encre)}
.chiffres .tuile{width:36px;height:36px;border-radius:10px}
.chiffres .tuile svg{width:19px;height:19px}
.chiffres small{display:block;font-size:13px;color:var(--cendre);margin-top:-6px}
.paire{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}

/* -------------------------------------------------- lecture : règlement, mentions */
.prose{max-width:68ch}
.prose>*+*{margin-top:18px}
.prose p,.prose li{font-size:17px;line-height:1.65;color:var(--texte-2)}
.prose h2{font-size:19px;font-weight:600;letter-spacing:-.005em;color:var(--encre);margin-top:44px}
.prose h2:first-child{margin-top:0}
.prose h2+p,.prose h2+ul{margin-top:10px}
.prose ul{list-style:none;display:grid;gap:10px}
.prose ul li{position:relative;padding-left:22px}
.prose ul li::before{content:"";position:absolute;left:0;top:.78em;width:10px;height:2px;background:var(--rouge)}
.prose strong{font-weight:600;color:var(--encre)}
.article{padding-top:28px;border-top:1px solid var(--filet)}
.article+.article{margin-top:28px}
.article>*+*{margin-top:12px}
.prose .cloture{margin-top:48px;font-family:var(--serif);font-size:24px;line-height:1.35;color:var(--encre)}

/* -------------------------------------------------- questions fréquentes : une carte par question */
.faq{display:grid;gap:12px;max-width:920px;margin-inline:auto}
.faq details{background:var(--papier);border:1px solid var(--filet);border-radius:16px;padding:0 clamp(18px,2vw,28px);transition:border-color .25s ease}
.faq details:hover,.faq details[open]{border-color:color-mix(in srgb,var(--rouge) 45%,var(--filet))}
.faq summary{list-style:none;display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:24px;align-items:center;padding:22px 0;cursor:pointer;font-family:var(--serif);font-size:clamp(20px,1.7vw,25px);line-height:1.25;letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary:focus-visible{outline:2px solid var(--rouge);outline-offset:4px;border-radius:4px}
.faq summary:hover{color:var(--rouge)}
.faq .plus{position:relative;width:36px;height:36px;border-radius:10px;background:var(--creme);transition:background-color .2s ease}
.faq .plus::before,.faq .plus::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:1.5px;margin:-.75px 0 0 -7px;background:var(--encre)}
.faq .plus::after{transform:rotate(90deg)}
.faq details[open] .plus{background:var(--rouge)}
.faq details[open] .plus::before,.faq details[open] .plus::after{background:#fff}
.faq .rep{padding:0 60px 24px 0}
.faq .rep p{font-size:17px;line-height:1.6;color:var(--texte-2);max-width:64ch}

/* -------------------------------------------------- galerie */
.galerie{columns:3 300px;column-gap:16px}
.galerie figure{break-inside:avoid;margin-bottom:16px}
.galerie button{position:relative;display:block;width:100%;padding:0;border:0;border-radius:12px;overflow:hidden;background:var(--creme-2);cursor:zoom-in}
.galerie img{width:100%;height:auto;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.galerie button:hover img,.galerie button:focus-visible img{transform:scale(1.03)}
.galerie button:focus-visible{outline:2px solid var(--rouge);outline-offset:3px}
.galerie figcaption{position:absolute;left:12px;bottom:12px;background:rgba(255,253,249,.94);color:var(--encre);border-radius:8px;padding:6px 10px;font-size:13px;text-align:left}
.visionneuse{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(12,12,13,.94);color:var(--creme)}
.visionneuse::backdrop{background:transparent}
.visionneuse[open]{display:grid;grid-template-rows:minmax(0,1fr) auto;align-items:center}
.visionneuse figure{display:grid;place-items:center;height:100%;padding:72px clamp(16px,7vw,120px) 12px;min-height:0}
.visionneuse img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:6px}
.visionneuse figcaption{padding:12px 16px 24px;text-align:center;font-size:15px;color:rgba(246,239,228,.85)}
.visionneuse figcaption span{color:rgba(246,239,228,.5);font-variant-numeric:tabular-nums;margin-left:10px}
.vis-btn{position:absolute;display:grid;place-items:center;width:52px;height:52px;border:1px solid rgba(246,239,228,.25);border-radius:14px;background:rgba(12,12,13,.6);color:#fff;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}
.vis-btn:hover{background:var(--rouge);border-color:var(--rouge)}
.vis-btn:focus-visible{outline:2px solid #fff;outline-offset:3px}
.vis-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.vis-fermer{top:16px;right:16px}
.vis-prec{left:16px;top:50%;margin-top:-26px}
.vis-suiv{right:16px;top:50%;margin-top:-26px}

/* -------------------------------------------------- Citiz */
.citiz{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:stretch}
.citiz .texte{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(8px,2vw,24px)}
.citiz .texte .btn{margin-top:28px}
.conditions{display:grid;gap:12px}
.conditions .carte{display:flex;align-items:center;gap:16px}

/* -------------------------------------------------- contact */
.contact-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,4vw,64px);align-items:start}
.coord{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.coord .large{grid-column:1 / -1}
.coord .carte{padding:20px 22px}
.coord h3{font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--cendre)}
.coord .carte-tete+*{margin-top:14px}
.coord p{color:var(--encre)}
.coord p+p{margin-top:8px;color:var(--texte-2);font-size:15px}
.coord .heures{display:grid;gap:4px;color:var(--encre);font-size:16px;line-height:1.5}
.reclamation{margin-top:12px;padding:20px 22px;border:1px solid var(--filet);border-radius:14px;background:var(--papier);font-size:16px;line-height:1.55;color:var(--texte-2)}
.reclamation a{text-decoration:underline;text-decoration-color:var(--rouge);text-underline-offset:3px}
.formulaire{padding:clamp(24px,3vw,44px);border-radius:18px;background:var(--papier);border:1px solid var(--filet)}
.formulaire h2{font-family:var(--serif);font-size:clamp(28px,2.6vw,40px);line-height:1.08;letter-spacing:-.02em}
.champs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px 20px;margin-top:28px}
.champ{display:grid;gap:8px}
.champ-large{grid-column:1 / -1}
.champ label{font-size:14px;font-weight:500;color:var(--texte-2)}
.champ input,.champ textarea{width:100%;font:inherit;font-size:16px;line-height:1.4;padding:13px 14px;border:1px solid var(--filet-2);border-radius:10px;background:var(--creme);color:var(--encre);transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}
.champ textarea{min-height:160px;resize:vertical}
.champ input:focus,.champ textarea:focus{outline:none;border-color:var(--rouge);box-shadow:0 0 0 1px var(--rouge);background:#fff}
.champ input:user-invalid,.champ textarea:user-invalid{border-color:var(--rouge-fonce)}
.miel{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.envoi{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:26px}
.envoi .btn{border:0;cursor:pointer;font:inherit}
.envoi .btn[disabled]{opacity:.6;cursor:progress}
.mention{margin-top:16px;font-size:14px;line-height:1.5;color:var(--cendre)}
.mention a{color:var(--texte-2);text-decoration:underline;text-underline-offset:3px}
.retour{display:none;margin-top:18px;padding:14px 16px;border-radius:10px;font-size:16px;line-height:1.5}
.retour:target,.retour.montre{display:block}
.retour.ok{background:color-mix(in srgb,var(--vert) 12%,var(--papier));color:#145c34}
.retour.ko{background:color-mix(in srgb,var(--rouge) 10%,var(--papier));color:var(--rouge-fonce)}
.plan{margin-top:clamp(48px,6vw,88px);height:clamp(320px,36vw,460px);border-radius:18px;overflow:hidden;border:1px solid var(--filet);background:var(--creme-2)}
.plan iframe{display:block;width:100%;height:100%;border:0}

/* -------------------------------------------------- informations réglementaires : treize cartes */
.regl{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.regl .carte{display:flex;flex-direction:column;gap:12px}
.regl .carte-tete{justify-content:space-between}
.regl .num{font-family:var(--serif);font-size:20px;color:var(--cendre);font-variant-numeric:tabular-nums}
.regl h2{font-size:18px;font-weight:600;line-height:1.35;letter-spacing:-.005em}
.regl p{font-size:16px;line-height:1.6;color:var(--texte-2)}
.regl p a,.coord a{overflow-wrap:anywhere}
.regl .suite{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:auto;padding-top:6px;font-size:15px}
.regl .label{display:flex;align-items:center;gap:16px}
.regl .label img{width:56px;height:auto;flex:none}

@media (max-width:1100px){
  .regl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pieces{grid-template-columns:repeat(2,minmax(0,1fr))}
  .frise{grid-template-columns:repeat(3,minmax(0,1fr))}
  .frise::before{display:none}
}
@media (max-width:900px){
  .h-sombre .c,.h-scinde-grille,.h-mosaique .c,.h-rouge .c,.enseignants,.contact-grille{grid-template-columns:minmax(0,1fr)}
  .h-centre-rangee{grid-template-columns:minmax(0,1fr)}
  .packs,.packs-auto,.aides,.parcours,.paire,.citiz,.pack-vedette,.pack-code{grid-template-columns:minmax(0,1fr)}
  .packs-auto .haute,.aides .haute,.parcours .haute{grid-row:auto}
  .pack-vedette>h3{order:-2}
  .pack-vedette .pack-prix{order:-1}
  .fil .carte{grid-template-columns:minmax(0,1fr)}
  .entete-a{width:62vw;right:-18vw;bottom:-6%}
  .appel-a{display:none}
  .h-photo .c.chevauche{justify-content:flex-start}
  .h-photo-texte{bottom:72px}
  .h-photo figure::after{background:linear-gradient(to top,rgba(12,12,13,.86),rgba(12,12,13,.45) 70%,rgba(12,12,13,.2))}
  .h-photo .c.chevauche{margin-top:-44px}
}
@media (max-width:700px){
  .entete-a{display:none}
}
@media (max-width:600px){
  .entete-badge h1{font-size:8vw}
  .duo-cartes,.chiffres,.champs,.pieces,.coord,.regl{grid-template-columns:minmax(0,1fr)}
  .frise{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fil{padding-left:0}
  .fil::before{display:none}
  .fil-n{left:auto;right:16px;top:16px;z-index:1;width:44px;height:44px;font-size:22px}
  .tarifs td:last-child{font-size:19px}
  .faq .rep{padding-right:0}
  .vis-prec,.vis-suiv{top:auto;bottom:72px;margin-top:0}
  .visionneuse figure{padding:72px 12px 12px}
  .prix-puces li{white-space:normal}
}
@media (prefers-reduced-motion:reduce){
  .galerie img,.galerie button:hover img{transition:none;transform:none}
}
