/* Tartilab : composants de la charte (préfixe tl-) + réglages du site.
   Les valeurs viennent de tokens.json de la charte. */
:root {
	--jaune-oeuf: var(--wp--preset--color--jaune-oeuf, #FFC21A);
	--jaune-clair: var(--wp--preset--color--jaune-clair, #FFE8A3);
	--encre: var(--wp--preset--color--encre, #121212);
	--gris-texte: var(--wp--preset--color--gris-texte, #5A5A55);
	--papier: var(--wp--preset--color--papier, #F7F7F2);
	--blanc: var(--wp--preset--color--blanc, #FFFFFF);
	--inox: var(--wp--preset--color--inox, #C9CCD1);
	--filet: var(--wp--preset--color--filet, #DCDCD5);
	--cerise: var(--wp--preset--color--cerise, #DC2F47);
	--cerise-fonce: var(--wp--preset--color--cerise-fonce, #C21F38);
	--rose: var(--wp--preset--color--rose, #F7B5BD);
	--font-sans: var(--wp--preset--font-family--sans, "Space Grotesk", system-ui, sans-serif);
	--font-mono: var(--wp--preset--font-family--mono, "IBM Plex Mono", ui-monospace, monospace);
	--espace-1: 4px; --espace-2: 8px; --espace-3: 12px; --espace-4: 16px;
	--espace-6: 24px; --espace-8: 32px; --espace-12: 48px; --espace-16: 64px;
	--rayon-0: 0px; --rayon-2: 2px; --rayon-4: 4px; --rayon-10: 10px;
	--trait-fin: 1.5px; --trait-tuile: 2.5px; --trait-fort: 4px;
}

body { -webkit-font-smoothing: antialiased; }
::selection { background: var(--jaune-oeuf); color: var(--encre); }
:where(a, button, input, summary):focus-visible { outline: var(--trait-fort) solid var(--encre); outline-offset: 3px; }
.has-encre-background-color :where(a, button, summary):focus-visible { outline-color: var(--jaune-oeuf); }

/* ---------- Boutons (variantes de la charte) ---------- */
.wp-block-button .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; box-sizing: border-box; }
.wp-block-button.is-style-jaune .wp-block-button__link { background: var(--jaune-oeuf); color: var(--encre); }
.wp-block-button.is-style-jaune .wp-block-button__link:hover { background: var(--encre); color: var(--jaune-oeuf); }
.wp-block-button.is-style-contour .wp-block-button__link { background: transparent; color: var(--encre); }
.wp-block-button.is-style-contour .wp-block-button__link:hover { background: var(--encre); color: var(--jaune-oeuf); }
.has-encre-background-color .wp-block-button .wp-block-button__link { border-color: var(--jaune-oeuf); background: var(--jaune-oeuf); color: var(--encre); }
.has-encre-background-color .wp-block-button .wp-block-button__link:hover { background: var(--encre); color: var(--jaune-oeuf); }
.has-encre-background-color .wp-block-button.is-style-contour .wp-block-button__link { background: transparent; color: var(--jaune-oeuf); }
.has-encre-background-color .wp-block-button.is-style-contour .wp-block-button__link:hover { background: var(--jaune-oeuf); color: var(--encre); }
.has-jaune-oeuf-background-color .wp-block-button.is-style-contour .wp-block-button__link:hover { background: var(--encre); color: var(--jaune-oeuf); }

/* ---------- Étiquette (surtitre mono en capitales) ---------- */
.is-style-etiquette, .tl-surtitre { font-family: var(--font-mono); font-size: 12px; font-weight: 600; letter-spacing: 0.12em; line-height: 1.3; text-transform: uppercase; }
.tl-numero { font-family: var(--font-mono); font-size: 13px; font-weight: 500; line-height: 1.4; }
.tl-en { font-size: 14px; line-height: 1.5; color: var(--gris-texte); }
.has-encre-background-color .tl-en { color: var(--inox); }
.tl-chapeau { font-size: var(--wp--preset--font-size--texte-l); line-height: 1.5; max-width: 34em; }

/* ---------- Pastille ---------- */
.tl-pastille { box-sizing: border-box; display: inline-flex; align-items: center; min-height: 24px; padding: 0 var(--espace-2); border: var(--trait-fin) solid var(--encre); border-radius: var(--rayon-2); background: transparent; color: var(--encre); font-family: var(--font-mono); font-size: 12px; font-weight: 600; letter-spacing: 0.1em; line-height: 1; text-transform: uppercase; white-space: nowrap; }
.tl-pastille--jaune { background: var(--jaune-oeuf); }
.tl-pastille--encre { background: var(--encre); color: var(--jaune-oeuf); }
.tl-pastille--cerise { border-color: var(--cerise); background: var(--cerise); color: var(--blanc); }
p.tl-pastille { width: fit-content; margin-block: 0; }

/* ---------- Tuile ---------- */
.tl-tuile { --tl-taille: 96px; box-sizing: border-box; flex: none; width: var(--tl-taille); height: var(--tl-taille); font-size: var(--tl-taille); display: grid; grid-template-rows: auto 1fr auto; gap: 0 !important; padding: 0.06em 0.085em; border: var(--trait-tuile) solid var(--encre); border-radius: var(--rayon-0); background: var(--jaune-oeuf); color: var(--encre); }
.tl-tuile > * { margin: 0 !important; }
.tl-tuile__num { font-family: var(--font-mono); font-size: 0.115em; font-weight: 600; line-height: 1.2; }
.tl-tuile__sym { align-self: center; font-family: var(--font-sans); font-size: 0.44em; font-weight: 700; letter-spacing: -0.03em; line-height: 1; }
.tl-tuile__nom { font-family: var(--font-mono); font-size: 0.1em; font-weight: 600; letter-spacing: 0.04em; line-height: 1.2; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tl-tuile--sale { background: var(--inox); }
.tl-tuile--base { background: var(--blanc); }
.tl-tuile--farce { background: var(--jaune-clair); }
.tl-tuile--garniture { background: var(--rose); }
.tl-tuile--speciale { background: var(--encre); color: var(--jaune-oeuf); }
.tl-tuile--grande { --tl-taille: 128px; }
.tl-tuile--mini { --tl-taille: 48px; grid-template-rows: 1fr; place-items: center; padding: 0; }
.tl-tuile--mini .tl-tuile__num, .tl-tuile--mini .tl-tuile__nom { display: none; }
.tl-tuile--mini .tl-tuile__sym { font-size: 0.5em; }
.has-encre-background-color .tl-tuile { border-color: var(--encre); }
.has-encre-background-color .tl-tuile--speciale { border-color: var(--jaune-oeuf); }

.tl-tableau { display: grid !important; grid-template-columns: repeat(auto-fill, 96px); gap: var(--espace-2) !important; }
.tl-tableau > * { margin: 0 !important; }
.tl-tableau--accueil { grid-template-columns: repeat(4, 96px); justify-content: end; }
.tl-tableau__vide { width: 96px; height: 96px; border: var(--trait-fin) dashed var(--inox); box-sizing: border-box; }
@media (max-width: 781px) {
	.tl-tableau--accueil { grid-template-columns: repeat(auto-fill, 72px); justify-content: start; }
	.tl-tableau--accueil .tl-tuile { --tl-taille: 72px; }
	.tl-tableau--accueil .tl-tableau__vide { display: none; }
}

/* Formule du comptoir : tuile + tuile + tuile = tarte */
.tl-formule { display: flex !important; flex-wrap: wrap; align-items: center; gap: var(--espace-3) !important; }
.tl-formule > * { margin: 0 !important; }
.tl-formule__signe { font-size: var(--wp--preset--font-size--titre-m); font-weight: 700; line-height: 1; }

/* ---------- Carte (groupe « carte ») et carte d'atelier ---------- */
.is-style-carte, .tl-atelier { box-sizing: border-box; padding: var(--espace-6); border: var(--trait-tuile) solid var(--encre); border-radius: var(--rayon-4); background: var(--blanc); color: var(--encre); }
.tl-atelier { display: flex !important; flex-direction: column; gap: var(--espace-3) !important; height: 100%; }
.tl-atelier > * { margin: 0 !important; }
.tl-atelier__haut { display: flex !important; align-items: center; justify-content: space-between; gap: var(--espace-2); }
.tl-atelier__titre { margin: 0; font-size: 22px; font-weight: 700; letter-spacing: -0.01em; line-height: 1.2; }
.tl-atelier__infos { display: grid; gap: var(--espace-1); margin: 0; padding: 0; list-style: none; font-family: var(--font-mono); font-size: 13px; font-weight: 500; line-height: 1.4; }
.tl-atelier__bas { margin-top: auto !important; display: flex !important; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--espace-3); padding-top: var(--espace-3); border-top: var(--trait-fin) solid var(--filet); }
.tl-atelier__bas > * { margin: 0 !important; }
.tl-atelier__prix { font-size: 30px; font-weight: 700; letter-spacing: -0.02em; line-height: 1; }
.tl-atelier__prix small { font-family: var(--font-mono); font-size: 12px; font-weight: 500; letter-spacing: 0; color: var(--gris-texte); }
.wp-block-columns.tl-cartes { gap: var(--espace-6); }
.wp-block-columns.tl-cartes > .wp-block-column { display: flex; }
.wp-block-columns.tl-cartes > .wp-block-column > * { flex: 1; }

/* ---------- Étiquette du comptoir ---------- */
.tl-etiquette { box-sizing: border-box; display: grid !important; grid-template-columns: auto 1fr; gap: var(--espace-4) !important; align-items: center; padding: var(--espace-4); border: var(--trait-tuile) solid var(--encre); border-radius: var(--rayon-0); background: var(--blanc); color: var(--encre); }
.tl-etiquette > * { margin: 0 !important; }
.tl-etiquette__corps { display: grid !important; gap: var(--espace-1) !important; min-width: 0; }
.tl-etiquette__corps > * { margin: 0 !important; }
.tl-etiquette__famille { font-family: var(--font-mono); font-size: 12px; font-weight: 600; letter-spacing: 0.12em; line-height: 1.3; text-transform: uppercase; }
.tl-etiquette__nom { margin: 0; font-size: 22px; font-weight: 700; letter-spacing: -0.01em; line-height: 1.15; }
.tl-etiquette__en { font-size: 14px; line-height: 1.4; color: var(--gris-texte); }
.tl-etiquette__infos { font-family: var(--font-mono); font-size: 13px; font-weight: 500; line-height: 1.4; }
.tl-etiquettes { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: var(--espace-4) !important; }
.tl-etiquettes > * { margin: 0 !important; }

/* ---------- Panneau ---------- */
.tl-panneau { box-sizing: border-box; padding: var(--espace-4) var(--espace-6); border: var(--trait-fort) solid var(--encre); border-radius: var(--rayon-4); background: var(--jaune-oeuf); color: var(--encre); }
.tl-panneau > * { margin-block: 0; }
.tl-panneau--alerte { background: var(--cerise); color: var(--blanc); }

/* ---------- Protocole (étapes numérotées) ---------- */
.tl-etape { border-top: var(--trait-tuile) solid var(--encre); padding-top: var(--espace-4); }
.tl-etape > * { margin-block: 0; }
.tl-etape > * + * { margin-top: var(--espace-2); }
.tl-etape__num { font-family: var(--font-mono); font-size: 13px; font-weight: 600; letter-spacing: 0.08em; }

/* ---------- En-tête ---------- */
.tl-entete { border-bottom: var(--trait-tuile) solid var(--encre); }
.tl-entete .tl-logo img, .tl-logo img { display: block; height: 44px; width: auto; }
.tl-pied .tl-logo img { height: 64px; }
.tl-entete .wp-block-navigation a { text-decoration: none; }
.tl-entete .wp-block-navigation a:hover, .tl-entete .wp-block-navigation .current-menu-item > a { text-decoration: underline; text-decoration-thickness: 2.5px; text-underline-offset: 6px; text-decoration-color: var(--jaune-oeuf); }
.tl-entete .wp-block-navigation__responsive-container.is-menu-open { background: var(--papier); padding: var(--espace-6); }
.tl-entete .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-size: 22px; font-weight: 700; }
.tl-bandeau-annonce a { color: inherit; }
@media (max-width: 599px) { .tl-entete .tl-logo img { height: 36px; } .tl-entete .tl-cta-entete { display: none; } }

/* ---------- Pied ---------- */
.tl-pied a { color: var(--blanc); text-decoration: none; }
.tl-pied a:hover { text-decoration: underline; text-decoration-color: var(--jaune-oeuf); text-decoration-thickness: 2px; }
.tl-pied .tl-liens { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--espace-2); }
.tl-pied .tl-surtitre { color: var(--jaune-oeuf); }

/* ---------- Sections ---------- */
.tl-cartouche { background: var(--jaune-oeuf); padding: 0 0.15em; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.has-encre-background-color .tl-cartouche { color: var(--encre); }
.tl-quadrille { background-color: var(--papier); background-image: linear-gradient(var(--filet) 1px, transparent 1px), linear-gradient(90deg, var(--filet) 1px, transparent 1px); background-size: 32px 32px; background-position: -1px -1px; }
.tl-filet-haut { border-top: var(--trait-tuile) solid var(--encre); }
.tl-mesure { max-width: 65ch; }

/* FAQ */
.wp-block-details summary { cursor: pointer; font-weight: 700; font-size: var(--wp--preset--font-size--titre-s); letter-spacing: -0.01em; list-style: none; display: flex; justify-content: space-between; gap: var(--espace-4); }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; font-family: var(--font-mono); font-weight: 600; }
.wp-block-details[open] summary::after { content: "−"; }
.wp-block-details > :not(summary) { max-width: 65ch; }
.wp-block-details:last-child { border-bottom: var(--trait-fin) solid var(--filet); }

/* Liste à puces carrées */
.tl-liste { list-style: none; padding-left: 0; }
.tl-liste li { position: relative; padding-left: 1.4em; }
.tl-liste li + li { margin-top: var(--espace-2); }
.tl-liste li::before { content: ""; position: absolute; left: 0; top: 0.5em; width: 0.6em; height: 0.6em; background: var(--jaune-oeuf); border: var(--trait-fin) solid var(--encre); }

/* ---------- Correctifs de mise en page ---------- */
/* Titres lisibles sur les bandeaux encre */
.has-encre-background-color :where(h1, h2, h3, h4, h5, h6) { color: inherit; }
.tl-atelier__haut { flex-wrap: wrap; }
.wp-block-button__link { white-space: nowrap; }

/* Tuiles de l'accueil : taille selon la largeur de colonne */
@media (min-width: 782px) and (max-width: 1240px) {
	.tl-tableau--accueil { grid-template-columns: repeat(4, 84px); }
	.tl-tableau--accueil .tl-tuile, .tl-tableau--accueil .tl-tableau__vide { --tl-taille: 84px; width: 84px; height: 84px; }
}
@media (min-width: 782px) and (max-width: 960px) {
	.tl-tableau--accueil { grid-template-columns: repeat(4, 68px); }
	.tl-tableau--accueil .tl-tuile, .tl-tableau--accueil .tl-tableau__vide { --tl-taille: 68px; width: 68px; height: 68px; }
}

/* Menu replié en dessous de 1100px (6 liens + bouton) */
@media (min-width: 600px) and (max-width: 1099px) {
	.tl-entete .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.tl-entete .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.tl-entete .wp-block-navigation__responsive-container-close:not(.always-shown) { display: flex; }
}
.tl-entete .wp-block-navigation__responsive-container-open svg, .tl-entete .wp-block-navigation__responsive-container-close svg { width: 32px; height: 32px; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.wp-block-post-content > .alignfull + .alignfull { margin-block-start: 0; }
.has-jaune-oeuf-background-color .tl-en { color: var(--encre); }
.tl-chapeau, .tl-mesure { box-sizing: border-box; }
.is-layout-constrained > .tl-chapeau, .is-layout-constrained > .tl-mesure, .is-layout-constrained > .tl-en { max-width: var(--wp--style--global--wide-size) !important; }
.is-layout-constrained > .tl-chapeau { padding-right: max(0px, calc(100% - 38em)); }
.is-layout-constrained > .tl-mesure { padding-right: max(0px, calc(100% - 65ch)); }
.wp-block-post-content > .tl-intro:first-child { margin-top: 0; padding-top: var(--wp--preset--spacing--4) !important; }

/* Sélecteur de langue */
.tl-langue { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; box-sizing: border-box; font-family: var(--font-mono); font-size: 13px; font-weight: 600; letter-spacing: 0.08em; color: var(--encre); text-decoration: none; border: var(--trait-fin) solid var(--encre); border-radius: var(--rayon-2); }
.tl-langue:hover { background: var(--encre); color: var(--jaune-oeuf); }
.tl-atelier__prix--texte { font-size: 22px; letter-spacing: -0.01em; }

/* ---------- Formulaire de soumission ---------- */
.tl-form { display: grid; gap: var(--espace-8); max-width: 760px; }
.tl-form fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: var(--espace-4); min-width: 0; }
.tl-form legend { padding: 0; margin-bottom: var(--espace-4); }
.tl-form__grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--espace-4) var(--espace-6); }
.tl-form p { margin: 0; display: grid; gap: 6px; }
.tl-form label { font-weight: 500; }
.tl-form input[type=text], .tl-form input[type=email], .tl-form input[type=tel], .tl-form input[type=number], .tl-form select, .tl-form textarea { width: 100%; box-sizing: border-box; min-height: 48px; padding: 10px 12px; font: inherit; color: var(--encre); background: var(--blanc); border: var(--trait-tuile) solid var(--encre); border-radius: var(--rayon-4); }
.tl-form textarea { resize: vertical; }
.tl-form :is(input, select, textarea):focus-visible { outline: var(--trait-fort) solid var(--jaune-oeuf); outline-offset: 0; }
.tl-form__consent { grid-template-columns: auto 1fr; align-items: start; gap: var(--espace-3) !important; }
.tl-form__consent input { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--encre); }
.tl-form__consent label { font-weight: 400; }
.tl-req { color: var(--cerise-fonce); }
.tl-form__piege { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tl-form-zone { display: grid; gap: var(--espace-6); scroll-margin-top: 24px; }
.tl-form-zone .tl-panneau > * + * { margin-top: var(--espace-2); }

/* ---------- Illustrations de tartes ---------- */
.tl-illu { margin: 0 !important; }
.tl-illu img { display: block; width: 100%; height: auto; }
.tl-illu--hero { max-width: 620px; margin-left: auto !important; }
.tl-atelier .tl-illu { width: 112px; flex: none; }
.tl-galerie { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--espace-6) !important; }
.tl-galerie > * { margin: 0 !important; }
.tl-galerie__item { display: grid !important; gap: var(--espace-2) !important; align-content: start; }
.tl-galerie__item > * { margin: 0 !important; }
.tl-galerie__item .tl-illu { margin-bottom: var(--espace-2) !important; }
@media (max-width: 900px) { .tl-galerie { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .tl-galerie { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--espace-4) !important; } .tl-illu--hero { margin: 0 auto !important; } }
.tl-illu--formule { width: 128px; }
/* tartes en perspective (format 680x400) */
.tl-atelier .tl-illu { width: 150px; }
.tl-illu--formule { width: 170px; }
.tl-illu--hero { max-width: 640px; }
/* image d'atelier de l'accueil (fond transparent) */
.tl-illu--atelier { margin: 0 !important; }
.tl-illu--atelier img { display: block; width: 100%; height: auto; }

/* ---------- Séances et réservation ---------- */
.tl-seances { display: grid; gap: var(--espace-8); }
.tl-jour { display: grid; gap: var(--espace-3); }
.tl-jour__titre { margin: 0; font-size: var(--wp--preset--font-size--titre-s); }
.tl-jour__liste { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--espace-2); }
.tl-seance { display: grid; grid-template-columns: 72px 1fr auto auto; gap: var(--espace-4); align-items: center; padding: var(--espace-3) var(--espace-4); background: var(--blanc); border: var(--trait-tuile) solid var(--encre); border-radius: var(--rayon-4); }
.tl-seance__heure { font-size: var(--wp--preset--font-size--titre-m); font-weight: 700; letter-spacing: -0.02em; line-height: 1; }
.tl-seance__infos { color: var(--gris-texte); }
.tl-seance__action .wp-block-button__link { min-height: 44px; padding: 0 var(--espace-6); }
.tl-btn-off { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--espace-6); background: var(--filet); color: var(--gris-texte); border-radius: var(--rayon-2); font-weight: 700; }
@media (max-width: 600px) {
	.tl-seance { grid-template-columns: auto 1fr; row-gap: var(--espace-2); }
	.tl-seance__infos { grid-column: 2; }
	.tl-seance .tl-pastille { grid-column: 1 / -1; justify-self: start; }
	.tl-seance__action { grid-column: 1 / -1; }
	.tl-seance__action .wp-block-button__link, .tl-btn-off { width: 100%; justify-content: center; }
}
.tl-dialog { width: min(640px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); padding: 0; border: var(--trait-fort) solid var(--encre); border-radius: var(--rayon-4); background: var(--papier); color: var(--encre); }
.tl-dialog::backdrop { background: rgba(18, 18, 18, .6); }
.tl-dialog__form { padding: var(--espace-6); gap: var(--espace-6) !important; }
.tl-dialog__tete { display: flex; justify-content: space-between; gap: var(--espace-4); align-items: start; padding-bottom: var(--espace-4); border-bottom: var(--trait-tuile) solid var(--encre); }
.tl-dialog__tete p { margin: 0; }
.tl-dialog__titre { margin: 6px 0 8px; font-size: var(--wp--preset--font-size--titre-m); }
.tl-dialog__fermer { flex: none; width: 44px; height: 44px; font-size: 28px; line-height: 1; border: var(--trait-tuile) solid var(--encre); background: var(--blanc); border-radius: var(--rayon-2); cursor: pointer; }
.tl-dialog__fermer:hover { background: var(--encre); color: var(--jaune-oeuf); }
.tl-paiement { display: grid; gap: var(--espace-3); }
.tl-choix { display: grid; grid-template-columns: auto 1fr; gap: var(--espace-3); align-items: start; padding: var(--espace-4); background: var(--blanc); border: var(--trait-tuile) solid var(--encre); border-radius: var(--rayon-4); cursor: pointer; font-weight: 400 !important; }
.tl-choix input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--encre); }
.tl-choix > span { display: grid; gap: 4px; }
.tl-choix:has(input:checked) { background: var(--jaune-clair); }
.tl-choix--off { border-color: var(--filet); color: var(--gris-texte); cursor: not-allowed; }
.tl-choix--off .tl-pastille { justify-self: start; }
.tl-resa-ok > * + * { margin-top: var(--espace-2); }

/* Séances : tarte, bouton +, détail */
.tl-seance { grid-template-columns: 72px minmax(0, 1fr) auto auto auto; }
.tl-seance__infos { display: grid; gap: 2px; color: var(--encre); min-width: 0; }
.tl-seance__tarte { font-size: 17px; line-height: 1.25; }
.tl-seance__infos .tl-numero { color: var(--gris-texte); }
.tl-seance--soir { background: var(--encre); color: var(--blanc); }
.tl-seance--soir .tl-seance__infos { color: var(--blanc); }
.tl-seance--soir .tl-seance__infos .tl-numero { color: var(--jaune-oeuf); }
.tl-seance--soir .tl-pastille { border-color: var(--jaune-oeuf); color: var(--jaune-oeuf); }
.tl-seance--soir .tl-pastille--jaune { color: var(--encre); }
.tl-seance--soir .tl-seance__action .wp-block-button__link { background: var(--jaune-oeuf); color: var(--encre); border-color: var(--jaune-oeuf); }
.tl-seance--soir .tl-seance__detail { background: var(--papier); color: var(--encre); }
.tl-plus { width: 44px; height: 44px; flex: none; display: grid; place-items: center; font: 700 26px/1 var(--font-sans); color: var(--encre); background: var(--jaune-oeuf); border: var(--trait-tuile) solid var(--encre); border-radius: var(--rayon-2); cursor: pointer; }
.tl-plus:hover { background: var(--encre); color: var(--jaune-oeuf); }
.tl-seance--soir .tl-plus { border-color: var(--jaune-oeuf); }
.tl-seance__detail { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(160px, 260px) 1fr; gap: var(--espace-6); align-items: center; margin-top: var(--espace-2); padding: var(--espace-4); background: var(--jaune-clair); border-radius: var(--rayon-4); }
.tl-seance__detail[hidden] { display: none; }
.tl-seance__detail img { width: 100%; height: auto; display: block; }
.tl-seance__texte > * { margin: 0; }
.tl-seance__texte > * + * { margin-top: var(--espace-2); }
.tl-seance__texte h4 { font-size: var(--wp--preset--font-size--titre-s); }
.tl-zero { padding-left: var(--espace-3); border-left: var(--trait-fort) solid var(--encre); }
.tl-dialog__tarte { font-weight: 700; font-size: 18px; margin: 0 0 4px !important; }
@media (max-width: 600px) {
	.tl-seance { grid-template-columns: auto minmax(0, 1fr) auto; }
	.tl-seance__infos { grid-column: auto; }
	.tl-seance .tl-pastille { grid-column: 1 / -1; }
	.tl-seance__detail { grid-template-columns: 1fr; }
}

/* ---------- Tuiles d'horaire 10 h / 15 h / 18 h ---------- */
.tl-horaires { display: flex; flex-wrap: wrap; gap: var(--espace-4); margin: 0; }
.tl-horaire { display: grid; gap: var(--espace-2); justify-items: start; text-decoration: none !important; color: var(--encre); }
.tl-tuile--heure { --tl-taille: 128px; transition: transform .15s ease; }
.tl-tuile--heure .tl-tuile__sym { font-size: 0.36em; }
.tl-horaire:hover .tl-tuile--heure, .tl-horaire:focus-visible .tl-tuile--heure { transform: translateY(-4px); }
.tl-tuile--heure.is-actif { outline: var(--trait-fort) solid var(--encre); outline-offset: 4px; }
.tl-horaire__quoi { font-family: var(--font-mono); font-size: 12px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; }
.has-encre-background-color .tl-horaire { color: var(--blanc); }
.tl-seances > .tl-horaires { margin-bottom: var(--espace-4); }
@media (prefers-reduced-motion: reduce) { .tl-tuile--heure { transition: none; } }
@media (max-width: 480px) { .tl-tuile--heure { --tl-taille: 96px; } .tl-horaires { gap: var(--espace-3); } }
/* tuiles d'horaire dans le haut de l'accueil */
.tl-horaires--compact { gap: var(--espace-3); margin-block: var(--espace-2) var(--espace-4) !important; }
.tl-horaires--compact .tl-tuile--heure { --tl-taille: 96px; }
.tl-horaires--compact .tl-horaire__quoi { font-size: 11px; }
.tl-horaires--compact { display: grid !important; grid-template-columns: repeat(3, 96px); }
.tl-horaires--compact .tl-horaire__quoi { max-width: 96px; line-height: 1.3; }

/* Tuiles d'horaire croquées comme la tuile du logo (exception voulue à la charte, 2026-11-11) */
.tl-tuile--heure { border: 0; background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-1.6 -1.6 123.2 123.2' preserveAspectRatio='none'><path d='M0 0L93.36 0A7.5 7.5 0 0 0 98.31 11.78A7.5 7.5 0 0 0 108.22 21.69A7.5 7.5 0 0 0 120 26.64L120 120L0 120Z' fill='%23FFC21A' stroke='%23121212' stroke-width='3.2' stroke-linejoin='round'/></svg>") center / 100% 100% no-repeat; padding: calc(0.06em + 2.5px) calc(0.085em + 2.5px); }
.tl-tuile--heure.tl-tuile--speciale { background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-1.6 -1.6 123.2 123.2' preserveAspectRatio='none'><path d='M0 0L93.36 0A7.5 7.5 0 0 0 98.31 11.78A7.5 7.5 0 0 0 108.22 21.69A7.5 7.5 0 0 0 120 26.64L120 120L0 120Z' fill='%23121212' stroke='%23121212' stroke-width='3.2' stroke-linejoin='round'/></svg>"); }
.tl-tuile--heure.tl-tuile--base { background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-1.6 -1.6 123.2 123.2' preserveAspectRatio='none'><path d='M0 0L93.36 0A7.5 7.5 0 0 0 98.31 11.78A7.5 7.5 0 0 0 108.22 21.69A7.5 7.5 0 0 0 120 26.64L120 120L0 120Z' fill='%23FFFFFF' stroke='%23121212' stroke-width='3.2' stroke-linejoin='round'/></svg>"); }
.tl-tuile--heure.is-actif { outline: 0; filter: drop-shadow(0 6px 0 #121212); }
/* prix des séances */
.tl-seance__prix { font-weight: 700; font-size: 15px; }
.tl-seance__prix small { font-family: var(--font-mono); font-size: 11px; font-weight: 500; }
.tl-seance--soir .tl-seance__prix { color: var(--blanc); }
.tl-total { margin: 0; padding: var(--espace-3) var(--espace-4); background: var(--blanc); border: var(--trait-tuile) solid var(--encre); border-radius: var(--rayon-4); font-size: 18px; }
.tl-total strong { font-size: 22px; }
.tl-form p.tl-total { display: block; }
.tl-form p.tl-enfants { display: grid; gap: 6px; padding: var(--espace-3) var(--espace-4); background: var(--jaune-clair); border-radius: var(--rayon-4); }
.tl-form p.tl-enfants[hidden] { display: none; }
.tl-form p.tl-enfants input { max-width: 120px; }
.tl-total__detail { display: block; margin-top: 4px; }

/* ---------- Tuiles d'information : prix, zéro cuisson, enfant, −20 % ---------- */
.tl-avantages { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 128px); gap: var(--espace-4) var(--espace-6); }
.tl-av { display: grid; gap: var(--espace-2); align-content: start; }
.tl-tuile--av { --tl-taille: 128px; }
.tl-tuile--av .tl-tuile__sym { display: grid; place-items: center; font-size: 0.3em; letter-spacing: -0.02em; }
.tl-tuile--av .tl-icone { width: 54px; height: 54px; }
.tl-av__prix { font-size: 30px; line-height: 1; text-align: center; white-space: nowrap; }
.tl-av__pct { font-size: 44px; line-height: 1; }
.tl-tuile--promo { background: var(--cerise); color: var(--blanc); }
.tl-av__quoi { font-size: 13px; line-height: 1.35; max-width: 128px; }
.tl-avantages--compact { grid-template-columns: repeat(4, 104px); gap: var(--espace-3) var(--espace-4); }
.tl-avantages--compact .tl-tuile--av { --tl-taille: 104px; }
.tl-avantages--compact .tl-av__prix { font-size: 24px; }
.tl-avantages--compact .tl-av__pct { font-size: 36px; }
.tl-avantages--compact .tl-icone { width: 44px; height: 44px; }
.tl-avantages--compact .tl-av__quoi { max-width: 104px; font-size: 12px; }
@media (max-width: 600px) {
	.tl-avantages, .tl-avantages--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tl-av__quoi { max-width: none; }
}
.tl-seances > .tl-avantages { margin-bottom: var(--espace-4); }

/* Petites icônes sur chaque séance */
.tl-mini-icones { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 4px; }
.tl-mini { display: inline-flex; align-items: center; gap: 4px; font-family: var(--font-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.04em; color: var(--encre); }
.tl-mini .tl-icone { width: 18px; height: 18px; stroke-width: 4; }
.tl-mini--promo { color: var(--cerise-fonce); font-weight: 700; }
.tl-mini--promo span { color: var(--encre); font-weight: 600; margin-left: 2px; }
.tl-seance--soir .tl-mini, .tl-seance--soir .tl-mini--promo span { color: var(--blanc); }
.tl-seance--soir .tl-mini--promo { color: var(--jaune-oeuf); }
.tl-tuile--av .tl-tuile__nom { font-size: 0.082em; letter-spacing: 0.02em; text-overflow: clip; }
.tl-av__prix { font-size: 25px; }
.tl-avantages--compact .tl-av__prix { font-size: 20px; }
.tl-avantages--compact .tl-av__pct { font-size: 30px; } .tl-av__pct { font-size: 38px; }
/* Ateliers express (10 h et 15 h) */
.tl-express { display: inline-block; padding: 1px 6px; margin-right: 2px; background: var(--jaune-oeuf); color: var(--encre); border: var(--trait-fin) solid var(--encre); border-radius: var(--rayon-2); font-family: var(--font-mono); font-size: 10px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; vertical-align: 1px; }

/* ---------- Jauge de remplissage des séances ---------- */
.tl-jauge { --tl-jauge: #1E7F45; display: grid; gap: 4px; width: 150px; }
.tl-jauge--orange { --tl-jauge: #E07B00; }
.tl-jauge--rouge { --tl-jauge: var(--cerise); }
.tl-jauge__max { font-family: var(--font-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.tl-jauge__barre { display: block; height: 10px; border: var(--trait-fin) solid var(--encre); border-radius: 999px; background: var(--blanc); overflow: hidden; }
.tl-jauge__barre > span { display: block; height: 100%; background: var(--tl-jauge); border-radius: 999px; }
.tl-jauge__etat { font-size: 13px; font-weight: 700; color: var(--tl-jauge); }
.tl-jauge--vert .tl-jauge__etat { color: #1E7F45; }
.tl-seance--soir .tl-jauge__barre { border-color: var(--blanc); }
.tl-seance--soir .tl-jauge--vert .tl-jauge__etat { color: #5FD08E; }
.tl-seance--soir .tl-jauge--orange .tl-jauge__etat { color: #FFB04D; }
.tl-seance--soir .tl-jauge--rouge .tl-jauge__etat { color: #FF7A8C; }
@media (max-width: 600px) { .tl-seance .tl-jauge { grid-column: 1 / -1; width: 100%; max-width: 260px; } }
.tl-jauge--orange .tl-jauge__etat { color: #A85700; } .tl-jauge--rouge .tl-jauge__etat { color: var(--cerise-fonce); }

/* Titres avec icône et mention MAPAQ (page Déroulement) */
.tl-titre-avec-icone { display: flex; align-items: center; gap: var(--espace-3); }
.tl-titre-icone { flex: none; width: 32px; height: 32px; }
.tl-mapaq { display: flex !important; align-items: center; gap: var(--espace-3); max-width: 65ch; padding: var(--espace-3) var(--espace-4); background: var(--jaune-clair); border: var(--trait-tuile) solid var(--encre); border-radius: var(--rayon-4); margin-left: 0 !important; }
.tl-mapaq .tl-titre-icone { width: 28px; height: 28px; }
/* Menu replié jusqu'à 1239px (libellé « Déroulement et restrictions alimentaires ») */
@media (min-width: 600px) and (max-width: 1239px) {
	.tl-entete .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.tl-entete .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.tl-entete .wp-block-navigation__responsive-container-close:not(.always-shown) { display: flex; }
}
