/* Site public — Fédération des Théâtres Alsaciens. Tokens issus du design system FTA. */
/* Mise en page : affiche imprimée — papier crème, rideau rouge en bordure du héros, cartes-tickets à angles droits et ombre tampon. Tokens = design system FTA. */
:root{
  --paper:#ffffff;--paper-raised:#ffffff;--paper-sunken:#f6f4f0;
  --ink:#151312;--ink-muted:#5c554d;--ardoise:#333c4a;
  --line:#e6e1d8;--line-strong:#151312;
  --rouge:#d60c19;--rouge-deep:#8e0b20;--on-rouge:#ffffff;--rouge-text:#be1622;--rouge-tint:#f7d9d6;
  --moutarde:#e9a81c;--on-moutarde:#151312;--moutarde-tint:#f8e7be;
  --kelsch:#2e55b0;--on-kelsch:#ffffff;--kelsch-tint:#dce3f3;
  --sapin:#2c6e4f;--on-sapin:#ffffff;--sapin-tint:#d5e6db;
  --focus:#2e55b0;
  --shadow-affiche:3px 3px 0 #151312;--shadow-affiche-lg:6px 6px 0 #151312;
  --font-display:Fraunces,"Iowan Old Style",Georgia,serif;
  --font-sans:"Instrument Sans","Helvetica Neue",Arial,sans-serif;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--space-24:96px;
  --radius-sm:3px;--radius-md:8px;--radius-pill:999px;
  --wrap:1180px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#121110;--paper-raised:#1e1c1a;--paper-sunken:#0a0a09;
  --ink:#f4eee3;--ink-muted:#b5aca0;--ardoise:#d5dae2;
  --line:#34302c;--line-strong:#f4eee3;
  --rouge-text:#ff6b7d;--rouge-tint:#3a1418;--moutarde-tint:#3a2e10;--kelsch-tint:#18223a;--sapin-tint:#13281e;
  --focus:#8fb0ff;--shadow-affiche:3px 3px 0 #d60c19;--shadow-affiche-lg:6px 6px 0 #d60c19;color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#121110;--paper-raised:#1e1c1a;--paper-sunken:#0a0a09;
  --ink:#f4eee3;--ink-muted:#b5aca0;--ardoise:#d5dae2;
  --line:#34302c;--line-strong:#f4eee3;
  --rouge-text:#ff6b7d;--rouge-tint:#3a1418;--moutarde-tint:#3a2e10;--kelsch-tint:#18223a;--sapin-tint:#13281e;
  --focus:#8fb0ff;--shadow-affiche:3px 3px 0 #d60c19;--shadow-affiche-lg:6px 6px 0 #d60c19;color-scheme:dark}

*{box-sizing:border-box}
[hidden]{display:none!important}
body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:26px;margin:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
h1,h2,h3{font-family:var(--font-display);margin:0;text-wrap:balance}
p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--space-4)}
@media(min-width:760px){.wrap{padding-inline:var(--space-8)}}
.surtitre{font-size:12px;line-height:16px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--rouge-text)}
.surtitre.muted{color:var(--ink-muted)}
.affiche{font-size:clamp(44px,8vw,72px);line-height:1;font-weight:800;letter-spacing:-.02em;font-variation-settings:'opsz' 144}
.t1{font-size:clamp(34px,5.5vw,48px);line-height:1.08;font-weight:700;letter-spacing:-.015em;font-variation-settings:'opsz' 96}
.t2{font-size:clamp(26px,3.6vw,32px);line-height:1.18;font-weight:650;letter-spacing:-.01em;font-variation-settings:'opsz' 48}
.t3{font-size:24px;line-height:30px;font-weight:600;font-variation-settings:'opsz' 24}
.chapo{font-size:20px;line-height:30px;max-width:62ch}
.small{font-size:14px;line-height:20px}
.muted{color:var(--ink-muted)}
.citation{font-family:var(--font-display);font-style:italic;font-size:22px;line-height:32px;font-variation-settings:'opsz' 24}
.u-moutarde{text-decoration:underline;text-decoration-color:var(--moutarde);text-decoration-thickness:5px;text-underline-offset:6px;text-decoration-skip-ink:none}
.section{padding-block:var(--space-16)}
.section-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:var(--space-4);margin-bottom:var(--space-8)}
.stack{display:flex;flex-direction:column;gap:var(--space-2)}

/* Bandeau maquette */
.demo-bar{background:var(--ink);color:var(--paper);font-size:13px;line-height:18px}
.demo-bar .wrap{display:flex;gap:var(--space-2);align-items:center;padding-block:var(--space-2)}
.demo-bar b{color:var(--moutarde);letter-spacing:.12em;text-transform:uppercase;font-size:11px}

/* En-tête */
.site-head{background:var(--paper);border-bottom:1px solid var(--line-strong);position:sticky;top:env(safe-area-inset-top,0px);z-index:20}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:76px;flex-wrap:wrap}
.wordmark{display:flex;flex-direction:column;text-decoration:none;line-height:1;padding-block:var(--space-3)}
.wordmark span:first-child{font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--ardoise)}
.wordmark span:last-child{font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:-.01em;margin-top:4px}
.wordmark i{font-style:normal;color:var(--rouge-text)}
.nav{display:flex;gap:var(--space-1);overflow-x:auto;scrollbar-width:none;max-width:100%}
.nav a{font-size:15px;font-weight:600;text-decoration:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);white-space:nowrap}
.nav a:hover{background:var(--paper-sunken)}
.nav a[aria-current="page"]{text-decoration:underline;text-decoration-color:var(--rouge);text-decoration-thickness:2px;text-underline-offset:8px}
.menu-btn{display:none;align-items:center;gap:10px;font:inherit;font-size:15px;font-weight:600;background:none;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:8px 12px;color:var(--ink);cursor:pointer}
.mb-lines{display:flex;flex-direction:column;gap:4px;width:18px}
.mb-lines i{display:block;height:2px;background:currentColor;transition:transform .3s,opacity .3s}
.menu-btn[aria-expanded="true"] .mb-lines i:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-btn[aria-expanded="true"] .mb-lines i:nth-child(2){opacity:0}
.menu-btn[aria-expanded="true"] .mb-lines i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media(max-width:899px){
  .site-head .wrap{min-height:64px;flex-wrap:wrap}
  .menu-btn{display:inline-flex}
  .nav{display:none;width:100%;flex-direction:column;gap:0;padding-bottom:var(--space-3);overflow:visible}
  .nav.open{display:flex;animation:fta-page .4s cubic-bezier(.16,1,.3,1) both}
  .nav a{padding:var(--space-3) 0;border-top:1px solid var(--line);border-radius:0;font-size:17px}
  .nav a:hover{background:none}
  .nav a[aria-current="page"]{color:var(--rouge-text);text-decoration:none}
}

/* Logo */
.logo{display:flex;align-items:center;padding-block:var(--space-3)}
.logo img{height:58px;width:auto;display:block}
.logo .logo-d{display:none}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .logo .logo-l{display:none}:root:not([data-theme="light"]) .logo .logo-d{display:block}}
:root[data-theme="dark"] .logo .logo-l{display:none}:root[data-theme="dark"] .logo .logo-d{display:block}
@media(max-width:899px){.logo img{height:44px}}
.logo-foot{display:inline-flex;margin-bottom:var(--space-3)}
.logo-foot img{height:44px;width:auto;display:block;max-width:100%}

/* Boutons */
.btn{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-size:15px;line-height:20px;font-weight:600;letter-spacing:.01em;padding:var(--space-3) var(--space-6);border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:transform 150ms ease-out,box-shadow 150ms ease-out,background-color 150ms ease-out;white-space:nowrap}
.btn-primary{background:var(--rouge);color:var(--on-rouge);border-color:var(--rouge)}
.btn-primary:hover{background:var(--rouge-deep);border-color:var(--rouge-deep);transform:translate(-2px,-2px);box-shadow:var(--shadow-affiche)}
.btn-secondary{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn-secondary:hover{background:var(--ink);color:var(--paper)}
.btn-ghost{background:none;border:0;padding:0;color:var(--rouge-text);text-decoration:underline;text-decoration-color:var(--moutarde);text-decoration-thickness:3px;text-underline-offset:5px;cursor:pointer;font:inherit;font-weight:600}
.btn-ghost:hover{text-decoration-color:var(--rouge-text)}
.btn-sm{padding:var(--space-2) var(--space-4);font-size:14px}
.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;background:transparent;color:var(--ink);border-color:var(--line-strong)}

/* Pastilles de statut */
.badge{display:inline-flex;align-items:center;font-size:12px;line-height:16px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);white-space:nowrap}
.b-rouge{background:var(--rouge);color:var(--on-rouge)}.b-moutarde{background:var(--moutarde);color:var(--on-moutarde)}
.b-kelsch{background:var(--kelsch);color:var(--on-kelsch)}.b-sapin{background:var(--sapin);color:var(--on-sapin)}.b-ink{background:var(--ink);color:var(--paper)}

/* Étiquettes cliquables */
.tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.tag{display:inline-flex;align-items:baseline;gap:6px;font:inherit;font-size:14px;line-height:20px;font-weight:600;padding:6px var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--paper-raised);color:var(--ink);cursor:pointer;text-decoration:none;transition:background-color 120ms,color 120ms}
.tag small{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.tag:hover{background:var(--ink);color:var(--paper)}.tag:hover small{color:var(--paper)}
.tag.t-saison{border-color:var(--rouge);}.tag.t-saison small{color:var(--rouge-text)}
.tag.t-saison:hover{background:var(--rouge);color:var(--on-rouge)}.tag.t-saison:hover small{color:var(--on-rouge)}

/* Kelsch */
.kelsch{position:relative;width:100%;overflow:hidden;background:var(--kelsch-tint);height:24px}
.kelsch::before,.kelsch::after{content:"";position:absolute;inset:0;opacity:.55}
.kelsch::before{background-image:linear-gradient(90deg,var(--kelsch) 50%,transparent 50%);background-size:16px 100%}
.kelsch::after{background-image:linear-gradient(0deg,var(--kelsch) 50%,transparent 50%);background-size:100% 16px}
.kelsch.rouge{background:var(--rouge-tint)}
.kelsch.rouge::before{background-image:linear-gradient(90deg,var(--rouge) 50%,transparent 50%)}
.kelsch.rouge::after{background-image:linear-gradient(0deg,var(--rouge) 50%,transparent 50%)}
.kelsch.thin{height:16px}

/* Héros rideau */
.hero{position:relative;border-bottom:1px solid var(--line-strong);overflow:hidden}
.hero::before,.hero::after{content:"";position:absolute;top:0;bottom:0;width:clamp(18px,7vw,110px);background:repeating-linear-gradient(90deg,var(--rouge) 0 22px,var(--rouge-deep) 22px 26px,var(--rouge) 26px 40px)}
.hero::before{left:0;border-right:1px solid var(--line-strong)}.hero::after{right:0;border-left:1px solid var(--line-strong)}
.hero-in{position:relative;max-width:var(--wrap);margin:0 auto;padding:var(--space-16) calc(clamp(18px,7vw,110px) + var(--space-6));display:grid;gap:var(--space-8);grid-template-columns:1fr}
@media(min-width:960px){.hero-in{grid-template-columns:1.2fr .8fr;align-items:center;padding-block:var(--space-24)}}
.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-6)}
.hero-feature{min-width:0}

/* Affiche générée */
.poster{position:relative;aspect-ratio:148/210;justify-content:flex-end !important;background:repeating-linear-gradient(90deg,var(--rouge) 0 26px,#c50b17 26px 30px,var(--rouge) 30px 46px);color:var(--on-rouge);display:flex;flex-direction:column;justify-content:space-between;padding:var(--space-6);overflow:hidden;max-width:100%}
.poster::after{content:"";position:absolute;left:0;right:0;top:0;height:18%;background:linear-gradient(180deg,var(--rouge-deep),transparent);opacity:.8}
.poster>*{position:relative;z-index:1}
.poster .p-th{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.poster .p-title{font-family:var(--font-display);font-weight:800;font-size:clamp(28px,4vw,42px);line-height:1.02;letter-spacing:-.015em;font-variation-settings:'opsz' 144;text-wrap:balance;overflow-wrap:anywhere}
.poster .p-foot{display:flex;justify-content:space-between;align-items:end;gap:var(--space-2);font-size:12px;font-weight:600;letter-spacing:.06em}
.poster .p-band{position:absolute;left:0;right:0;bottom:0;height:10px;background-image:linear-gradient(90deg,rgba(255,255,255,.55) 50%,transparent 50%),linear-gradient(0deg,rgba(255,255,255,.35) 50%,transparent 50%);background-size:10px 100%,100% 10px;z-index:1}
.poster.v1{background:repeating-linear-gradient(90deg,var(--rouge-deep) 0 26px,#7a0a1c 26px 30px,var(--rouge-deep) 30px 46px)}
.poster.v2 .p-band{top:0;bottom:auto}
.frame{border:1px solid var(--line-strong);box-shadow:var(--shadow-affiche-lg)}

/* Cartes spectacle (affiche-ticket) */
.grid-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-8) var(--space-6);padding-right:8px}
@media(max-width:1099px){.grid-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:819px){.grid-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6) var(--space-4)}}
@media(max-width:479px){.grid-cards{grid-template-columns:minmax(0,1fr)}}
.card{position:relative;display:flex;flex-direction:column;background:var(--paper-raised);border:1px solid var(--line-strong);box-shadow:var(--shadow-affiche);transition:transform 280ms cubic-bezier(.16,1,.3,1),box-shadow 280ms cubic-bezier(.16,1,.3,1);min-width:0}
.card:hover{transform:translate(-4px,-4px);box-shadow:var(--shadow-affiche-lg)}
.card .poster{border-bottom:1px solid var(--line-strong);padding:var(--space-4);transition:background-position 1.2s cubic-bezier(.16,1,.3,1)}
.card:hover .poster{background-position:22px 0}
.card .poster .p-title{font-size:clamp(22px,2.1vw,27px)}
.card .poster .p-th{font-size:10px;letter-spacing:.14em}
.card .poster .p-foot{font-size:11px}
.card-body{padding:var(--space-4) var(--space-4) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);flex:1}
.card-th{font-size:12px;line-height:16px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--rouge-text);text-decoration:none}
.card-th:hover{text-decoration:underline}
.card-title{font-family:var(--font-display);font-size:21px;line-height:26px;font-weight:600;font-variation-settings:'opsz' 24;text-decoration:none;color:var(--ink)}
.card-title::after{content:"";position:absolute;inset:0}
.card-th,.card-badges,.card-stub .btn{position:relative;z-index:2}
.card-sub{font-size:14px;line-height:20px;color:var(--ink-muted)}
.card-body .card-sub:last-child{margin-bottom:var(--space-2)}
.card-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:var(--space-2)}
.card-stub{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-4);border-top:1px dashed var(--line-strong)}
.card-stub::before,.card-stub::after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:var(--paper);border:1px solid var(--line-strong);top:-8.5px}
.card-stub::before{left:-10px;clip-path:inset(0 0 0 50%)}.card-stub::after{right:-10px;clip-path:inset(0 50% 0 0)}
.card-dates{font-size:13px;line-height:18px;font-weight:600;font-variant-numeric:tabular-nums}

/* Pastilles plus petites dans les cartes */
.card .badge{font-size:10px;letter-spacing:.1em;padding:3px 8px}
.card .btn-sm{padding:6px 12px;font-size:13px}

/* Filtres */
.filters{background:var(--paper-raised);border:1px solid var(--line-strong);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-6)}
.f-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-3)}
.f-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.f-field label{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
select,input,textarea{font:inherit;font-size:15px;color:var(--ink);background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:9px 10px;width:100%;min-width:0}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:30px}
.f-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-3);border-top:1px solid var(--line);padding-top:var(--space-3)}
.f-bar .left{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}
.f-count{margin:0;font-size:14px;color:var(--ink-muted)}.f-count b{color:var(--ink)}
/* Page d'une pièce : bouton « Réserver » sous le titre, et bandeau épinglé sous l'en-tête pendant le défilement */
.book-hero{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-6)}
.book-hero .book-btn{font-size:16px;padding:11px 24px}
.book-hero p{margin:0;line-height:1.45}
.book-bar{position:fixed;left:0;right:0;top:var(--head-h,72px);z-index:19;background:#fff;border-bottom:1px solid var(--line-strong);box-shadow:0 6px 18px rgba(0,0,0,.08);transform:translateY(-110%);opacity:0;visibility:hidden;transition:transform .25s ease-out,opacity .2s,visibility 0s .25s}
.book-bar.show{transform:none;opacity:1;visibility:visible;transition:transform .25s ease-out,opacity .2s}
.book-bar-in{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-block:10px}
.bb-txt{margin:0;display:flex;flex-direction:column;min-width:0;line-height:1.3}
.bb-txt b{font-family:var(--font-display);font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bb-txt span{font-size:13.5px;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:520px){.bb-txt b{font-size:15px}.bb-txt span{font-size:12.5px}.book-bar .btn{padding:10px 16px}}
@media(prefers-reduced-motion:reduce){.book-bar,.book-bar.show{transition:none}}
/* Page d'un théâtre : le nombre de résultats est dans le panneau, et les filtres actifs s'y voient déjà : pas d'étiquettes au-dessus des cartes */
.side-filters #results>.chips{display:none}
/* Page d'un théâtre, sur ordinateur : filtre vertical à gauche (il reste visible au défilement), pièces à droite */
@media(min-width:1100px){
  .side-filters{display:grid;grid-template-columns:250px minmax(0,1fr);gap:var(--space-8);align-items:start}
  .side-filters .filters{position:sticky;top:96px;margin-bottom:0}
  .side-filters .f-row{grid-template-columns:1fr}
  .side-filters .f-bar{flex-direction:column;align-items:stretch}
  .side-filters .f-bar .sort{flex-direction:column;align-items:stretch;gap:4px;text-align:left;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
  .side-filters .f-bar .sort select{width:100%;font-size:15px;letter-spacing:normal;text-transform:none;color:var(--ink);font-weight:400}
  .side-filters .grid-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:var(--radius-sm);overflow:hidden}
.seg button{font:inherit;font-size:14px;font-weight:600;border:0;background:transparent;color:var(--ink);padding:7px 14px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.check{display:inline-flex;gap:var(--space-2);align-items:center;font-size:14px;font-weight:600;cursor:pointer}
.check input{width:18px;height:18px;accent-color:var(--rouge);padding:0}
.sort{display:flex;align-items:center;gap:var(--space-2);font-size:14px;font-weight:600}
.sort select{width:auto}
.chips{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;min-height:36px;margin-bottom:var(--space-6)}
.chip{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:14px;font-weight:600;background:var(--ink);color:var(--paper);border:0;border-radius:var(--radius-pill);padding:6px 8px 6px 14px;cursor:pointer}
.chip span{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--paper);color:var(--ink);font-size:14px;line-height:1}
.count{font-size:14px;font-weight:600;color:var(--ink-muted);margin-right:var(--space-2);font-variant-numeric:tabular-nums}
.empty{border:1px dashed var(--line-strong);padding:var(--space-12) var(--space-6);text-align:center}

/* Liste de dates */
.month{margin-bottom:var(--space-8)}
.month h3{font-family:var(--font-sans);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--rouge-text);border-bottom:1px solid var(--line-strong);padding-bottom:var(--space-2);margin-bottom:var(--space-2)}
.drow{display:grid;grid-template-columns:72px 1fr auto 44px;gap:var(--space-4);align-items:center;padding-block:var(--space-4);border-bottom:1px solid var(--line)}
/* Déroulant d'une ligne d'agenda : flèche ronde, aperçu de la pièce sous la date */
/* Marge intérieure : le fond coloré au survol et à l'ouverture ne touche ni la date ni la flèche */
.drow[data-drow]{cursor:pointer;transition:background .15s;padding-inline:var(--space-4);border-radius:6px}
.drow[data-drow]:hover{background:var(--paper-raised)}
.drow.open{background:var(--paper-raised)}
.dtoggle{width:40px;height:40px;border-radius:50%;border:2px solid var(--rouge);background:#fff;color:var(--rouge);display:grid;place-items:center;cursor:pointer;padding:0;transition:background .15s,color .15s,transform .2s}
.dtoggle span{width:10px;height:10px;border-right:2.5px solid currentColor;border-bottom:2.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .25s}
.dtoggle:hover,.dtoggle:focus-visible{background:var(--rouge);color:#fff}
.dtoggle[aria-expanded="true"]{background:var(--rouge);color:#fff}
.dtoggle[aria-expanded="true"] span{transform:translateY(2px) rotate(-135deg)}
/* Effet « Cascade » : la hauteur s'ouvre (site.js), puis affiche, étiquettes, résumé, infos et bouton arrivent un par un depuis la gauche */
.ddetail{grid-column:1/-1;overflow:hidden;cursor:auto}
.dd-grid{display:grid;grid-template-columns:110px minmax(0,1fr);gap:var(--space-6);padding:var(--space-4) 0 var(--space-2) calc(72px + var(--space-4))}
.ddetail .dd-poster,.ddetail .dd-body>*{opacity:0;transform:translateX(-24px);transition:opacity .35s ease,transform .4s cubic-bezier(.2,.8,.3,1)}
.drow.open .ddetail .dd-poster,.drow.open .ddetail .dd-body>*{opacity:1;transform:none}
.drow.open .ddetail .dd-poster{transition-delay:.2s}
.drow.open .ddetail .dd-body>:nth-child(1){transition-delay:.32s}
.drow.open .ddetail .dd-body>:nth-child(2){transition-delay:.44s}
.drow.open .ddetail .dd-body>:nth-child(3){transition-delay:.56s}
.drow.open .ddetail .dd-body>:nth-child(4){transition-delay:.68s}
.ddetail[hidden]{display:none}
.dd-grid:not(:has(.dd-poster)){grid-template-columns:minmax(0,1fr)}
.dd-poster img{display:block;width:110px;height:auto;border:1px solid var(--line-strong);box-shadow:3px 3px 0 var(--ink)}
.dd-body{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}
.dd-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.dd-tags .tag{font-size:13px;padding:3px 10px}
.dd-sum{margin:0;font-size:15.5px;line-height:25px;max-width:70ch}
.dd-facts{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-8);margin:0}
.dd-facts dt{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.dd-facts dd{margin:2px 0 0;font-size:14.5px;font-weight:600}
@media(prefers-reduced-motion:reduce){.ddetail .dd-poster,.ddetail .dd-body>*{opacity:1;transform:none;transition:none}.dtoggle span{transition:none}}
.dday{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--line-strong);background:var(--paper-raised);padding-block:6px;line-height:1}
.dday b{font-family:var(--font-display);font-size:30px;font-weight:700;font-variant-numeric:tabular-nums}
.dday small{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-top:4px}
.dinfo{min-width:0;display:flex;flex-direction:column;gap:2px}
.dinfo a.dt{font-family:var(--font-display);font-size:21px;line-height:26px;font-weight:600;text-decoration:none}
.dinfo a.dt:hover{text-decoration:underline;text-decoration-color:var(--moutarde);text-decoration-thickness:3px}
.dmeta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:14px;color:var(--ink-muted)}
.dmeta a{color:var(--rouge-text);font-weight:600;text-decoration:none}
.dmeta a:hover{text-decoration:underline}
.dact{display:flex;flex-direction:column;align-items:end;gap:var(--space-2)}
.drow.past{opacity:.6}
@media(max-width:620px){.drow[data-drow]{padding-inline:var(--space-3)}.drow{grid-template-columns:60px 1fr 40px}.dtoggle{grid-column:3;grid-row:1;width:36px;height:36px}.dact{grid-column:2/-1;align-items:start;flex-direction:row;flex-wrap:wrap}.dd-grid{grid-template-columns:80px minmax(0,1fr);gap:var(--space-4);padding-left:0}.dd-poster img{width:80px}.dd-sum{display:-webkit-box;-webkit-line-clamp:5;line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;font-size:15px;line-height:23px}}

/* Fil d'Ariane */
.crumbs{display:flex;flex-wrap:wrap;gap:6px;font-size:14px;color:var(--ink-muted);padding-block:var(--space-6) 0}
.crumbs a{color:var(--ink-muted)}
.crumbs span[aria-hidden]{color:var(--line)}

/* Page pièce */
.piece-top{display:grid;gap:var(--space-12);grid-template-columns:1fr;padding-block:var(--space-8) var(--space-16)}
@media(min-width:900px){.piece-top{grid-template-columns:minmax(260px,380px) 1fr}}
.piece-top .poster .p-title{font-size:clamp(34px,4vw,48px)}
.facts{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-12);border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line);padding-block:var(--space-4);margin:0}
.facts dt{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.facts dd{margin:2px 0 0;font-weight:600}
.prose{max-width:65ch}
.ticket-list{border:1px solid var(--line-strong);background:var(--paper-raised)}
.tk{display:grid;grid-template-columns:1fr auto;gap:var(--space-4);align-items:center;padding:var(--space-4) var(--space-6);border-bottom:1px dashed var(--line-strong)}
.tk:last-child{border-bottom:0}
.tk .when{font-weight:700;font-variant-numeric:tabular-nums}
.tk .acts{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;justify-content:end}
.tk.past{opacity:.55}
.vc-1{--vc:color-mix(in srgb,var(--kelsch-tint) 45%,var(--paper-raised))}
.vc-2{--vc:color-mix(in srgb,var(--sapin-tint) 45%,var(--paper-raised))}
.vc-3{--vc:color-mix(in srgb,var(--moutarde-tint) 45%,var(--paper-raised))}
.vc-4{--vc:color-mix(in srgb,var(--rouge-tint) 45%,var(--paper-raised))}
.venue[class*="vc-"],.tk[class*="vc-"]{background:var(--vc)}
@media(max-width:560px){.tk{grid-template-columns:1fr}.tk .acts{justify-content:start}}
.encart{border-radius:var(--radius-md);padding:var(--space-6);background:var(--moutarde-tint)}
.encart.kelsch-e{background:var(--kelsch-tint)}

/* Page théâtre */
.th-head{padding-block:var(--space-8) var(--space-12);display:grid;gap:var(--space-8);grid-template-columns:1fr}
@media(min-width:900px){.th-head{grid-template-columns:1.3fr .7fr;align-items:start}}
.president{position:relative;background:var(--rouge-tint);border-radius:var(--radius-md);padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-4)}
.president .sig{display:flex;flex-direction:column;font-size:14px;line-height:20px;color:var(--ardoise)}
.president .sig b{color:var(--ink);font-size:15px}
.info-box{border:1px solid var(--line-strong);background:var(--paper-raised)}
.info-box>div{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--line)}
.info-box>div:last-child{border-bottom:0}
.info-box dt{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.info-box dd{margin:2px 0 0;overflow-wrap:anywhere}
.todo{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--ink-muted);border:1px dashed var(--ink-muted);padding:0 6px;border-radius:var(--radius-sm)}

/* Photo du président */
.pres-wrap{display:grid;grid-template-columns:132px 1fr;gap:var(--space-6);align-items:start}
@media(max-width:520px){.pres-wrap{grid-template-columns:96px 1fr;gap:var(--space-4)}}
.photo-slot{position:relative;aspect-ratio:4/5;width:100%;background:var(--paper-raised);border:1px solid var(--line-strong);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;overflow:hidden;color:var(--ink-muted);text-align:center}
.photo-slot svg{width:44%;height:auto;opacity:.5}
.photo-slot span{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;line-height:1.3;padding-inline:6px}
.pres-text{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}
.pres-wrap.no-word{align-items:center}
/* Sans mot : le nom en grand, la fonction dessous */
.pres-wrap.no-word .pres-text{gap:var(--space-2)}
.pres-wrap.no-word .sig{gap:2px}
.pres-wrap.no-word .sig b{font-family:var(--font-display);font-size:24px;line-height:30px;font-weight:600}
/* Sans mot : « Willkumme ! », photo façon tirage scotché, cercle décoratif */
.pres-hello{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--space-8) 48px;padding:var(--space-8) 48px;overflow:hidden}
.pres-hello::after{content:"";position:absolute;right:-70px;bottom:-90px;width:320px;height:320px;border-radius:50%;border:2px solid color-mix(in srgb,var(--rouge) 18%,transparent);box-shadow:0 0 0 22px color-mix(in srgb,var(--rouge) 5%,transparent);pointer-events:none}
.pres-hello .polar{position:relative;z-index:1;margin:8px 0 0;background:var(--paper-raised);padding:12px 12px 44px;border:1px solid var(--line-strong);box-shadow:var(--shadow-affiche-lg);transform:rotate(-3deg);width:240px}
.pres-hello .polar::before{content:"";position:absolute;top:-12px;left:50%;width:96px;height:26px;transform:translateX(-50%) rotate(2deg);background:color-mix(in srgb,var(--moutarde) 75%,transparent)}
.pres-hello .polar .photo-slot{border-color:var(--line-strong)}
.pres-hello .polar figcaption{position:absolute;left:0;right:0;bottom:12px;text-align:center;font-family:var(--font-display);font-style:italic;font-size:16px;color:var(--ardoise)}
.pres-hello .hello-txt{position:relative;z-index:1;min-width:0}
.pres-hello .hello{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:clamp(40px,4.6vw,56px);line-height:1;color:var(--rouge);margin:0 0 10px;white-space:nowrap}
.pres-hello .hello-lead{font-family:var(--font-display);font-size:22px;line-height:1.3;margin:0 0 26px;max-width:24ch}
.pres-hello .sig{border-left:3px solid var(--rouge);padding-left:14px;gap:2px}
.pres-hello .sig b{font-family:var(--font-display);font-size:24px;line-height:30px;font-weight:600}
/* Pas encore de président indiqué : la bienvenue seule, centrée */
.pres-hello.no-photo{grid-template-columns:1fr;justify-items:center;text-align:center}
.pres-hello.no-photo .hello-lead{margin-inline:auto}
.pres-hello.no-photo .hello{font-size:clamp(48px,6vw,76px)}
.pres-hello.no-photo .hello-lead{font-size:clamp(22px,2.2vw,28px)}
@media(max-width:700px){.pres-hello{grid-template-columns:1fr;justify-items:center;padding:40px 24px}.pres-hello .polar{width:200px}}
@media(min-width:1100px){.th-duo.has-both .pres-hello{height:100%;align-content:center}}

/* Lieu */
.venue{border:1px solid var(--line-strong);background:var(--paper-raised);display:grid;grid-template-columns:1fr}
@media(min-width:620px){.venue:has(.venue-photo){grid-template-columns:180px 1fr}}
.venue-photo{aspect-ratio:4/3;background:var(--paper-sunken);display:grid;place-items:center;border-bottom:1px solid var(--line-strong);overflow:hidden}
@media(min-width:620px){.venue-photo{aspect-ratio:auto;min-height:120px;border-bottom:0;border-right:1px solid var(--line-strong)}}
.venue-photo span{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.venue-photo img{width:100%;height:100%;object-fit:cover;display:block}
.venue-body{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-6)}
.venue-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.venue-name{font-family:var(--font-display);font-size:20px;line-height:26px;font-weight:600}
.goto{position:relative}
.goto-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;display:flex;flex-direction:column;min-width:190px;background:var(--paper-raised);border:1px solid var(--line-strong);box-shadow:var(--shadow-affiche);animation:fta-pop .3s cubic-bezier(.2,.7,.2,1) both}
.goto-menu a{padding:var(--space-3) var(--space-4);font-weight:600;text-decoration:none;border-bottom:1px solid var(--line)}
.goto-menu a:last-child{border-bottom:0}
.goto-menu a:hover{background:var(--paper-sunken)}
@media(max-width:619px){.goto-menu{right:auto;left:0}}

/* Distribution */
.cast{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-6) var(--space-4)}
@media(max-width:479px){.cast{grid-template-columns:repeat(2,minmax(0,1fr))}}
.actor{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}
.actor-photo{aspect-ratio:3/4;width:100%;border:1px solid var(--line-strong);background:var(--paper-sunken);display:grid;place-items:center;overflow:hidden;position:relative}
.actor-photo b{font-family:var(--font-display);font-size:44px;font-weight:700;color:var(--ink-muted);opacity:.55}
.actor-photo::after{content:"Photo";position:absolute;left:8px;bottom:6px;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.actor img{width:100%;height:100%;object-fit:cover;display:block}
.actor .a-name{font-weight:700;line-height:20px}
.actor .a-role{font-size:14px;line-height:18px;color:var(--ink-muted)}

/* Fédération */
.fed-top{display:grid;gap:var(--space-12);grid-template-columns:1fr;padding-block:24px 64px}
@media(min-width:900px){.fed-top{grid-template-columns:1.25fr .75fr;align-items:start}}
.fed-photo{padding:var(--space-6)}
.fed-photo .photo-slot svg{width:34%}
.fed-photo .photo-slot span{font-size:12px}
.sig-fed{display:flex;flex-direction:column;gap:2px;font-size:14px;line-height:20px;color:var(--ardoise);padding-left:var(--space-4);border-left:3px solid var(--rouge)}
.sig-fed b{color:var(--ink);font-size:16px}
.sig-fed .todo{align-self:start;margin-top:6px}

/* Mot du président (accueil) */
.home-pres{display:grid;gap:var(--space-8);grid-template-columns:1fr;align-items:center}
@media(min-width:760px){.home-pres{grid-template-columns:minmax(200px,300px) 1fr;gap:var(--space-16)}}
.home-pres .photo-slot span{font-size:12px}
.home-pres .photo-slot svg{width:36%}

/* Pages légales */
.legal{max-width:72ch;padding-block:24px 64px}
.legal h2{font-size:24px;line-height:30px;font-weight:600;margin:var(--space-12) 0 var(--space-3)}
.legal h3{font-family:var(--font-sans);font-size:16px;font-weight:700;margin:var(--space-6) 0 var(--space-2)}
.legal p,.legal li{margin:0 0 var(--space-3)}
.legal ul{padding-left:1.2em;margin:0 0 var(--space-3)}
.legal .note{background:var(--moutarde-tint);border-radius:var(--radius-md);padding:var(--space-4) var(--space-6);margin:var(--space-6) 0}
.tbl-wrap{overflow-x:auto;margin:var(--space-4) 0}
.tbl{border-collapse:collapse;width:100%;min-width:520px;font-size:15px}
.tbl th,.tbl td{text-align:left;vertical-align:top;padding:var(--space-3);border-bottom:1px solid var(--line)}
.tbl th{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);border-bottom:1px solid var(--line-strong)}

/* Bandeau cookies */
.cookie{position:fixed;left:0;right:0;bottom:0;z-index:50;padding:0 var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom,0px));pointer-events:none}
.cookie-box{pointer-events:auto;max-width:860px;margin:0 auto;background:var(--paper-raised);border:1px solid var(--line-strong);box-shadow:6px 6px 0 var(--rouge-deep);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);animation:fta-page .6s cubic-bezier(.16,1,.3,1) both}
.cookie-box p{font-size:15px;line-height:23px}
.cookie-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}
.cookie-actions .btn{flex:1 1 150px;justify-content:center}
.cookie-prefs{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.pref{display:grid;grid-template-columns:1fr auto;gap:var(--space-4);align-items:center;padding-block:var(--space-3);border-bottom:1px solid var(--line)}
.pref b{display:block}
.pref span{font-size:14px;line-height:20px;color:var(--ink-muted)}
.switch{position:relative;width:46px;height:26px;flex:none}
.switch input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.switch i{position:absolute;inset:0;border-radius:var(--radius-pill);background:var(--line);border:1px solid var(--line-strong);transition:background-color .2s}
.switch i::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--paper-raised);border:1px solid var(--line-strong);transition:transform .2s}
.switch input:checked+i{background:var(--sapin)}
.switch input:checked+i::after{transform:translateX(20px)}
.switch input:disabled{cursor:not-allowed}.switch input:disabled+i{opacity:.6}
.switch input:focus-visible+i{outline:2px solid var(--focus);outline-offset:2px}
.foot-bottom button{background:none;border:0;padding:0;color:var(--on-rouge);font:inherit;cursor:pointer}
.foot-bottom a:hover,.foot-bottom button:hover{text-decoration:underline}

/* Zone contact d'un théâtre */
.contact-zone{display:grid;gap:var(--space-8);grid-template-columns:1fr;padding:var(--space-12) 0 var(--space-8);border-top:1px solid var(--line-strong);margin-top:var(--space-8);scroll-margin-top:110px}
@media(min-width:900px){.contact-zone{grid-template-columns:.9fr 1.1fr;gap:var(--space-16)}}
.contact-zone .form{background:var(--paper-sunken);padding:var(--space-6)}

/* Liste des théâtres */
.th-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--space-6);padding-right:8px}
.th-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--line-strong);background:var(--paper-raised);text-decoration:none;transition:transform 280ms cubic-bezier(.16,1,.3,1),box-shadow 280ms cubic-bezier(.16,1,.3,1);min-width:0;overflow:hidden}
.th-card:hover{transform:translate(-4px,-4px);box-shadow:6px 6px 0 var(--rouge-deep)}
.th-top{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;min-height:150px;padding:var(--space-6);color:var(--on-rouge);background:repeating-linear-gradient(90deg,var(--rouge) 0 26px,#c50b17 26px 30px,var(--rouge) 30px 46px);border-bottom:1px solid var(--line-strong);transition:background-position 1.2s cubic-bezier(.16,1,.3,1)}
.th-top::before{content:"";position:absolute;inset:0 0 auto 0;height:45%;background:linear-gradient(180deg,var(--rouge-deep),transparent);opacity:.75}
.th-top>*{position:relative}
.th-card.ht .th-top{background:repeating-linear-gradient(90deg,var(--rouge-deep) 0 26px,#7a0a1c 26px 30px,var(--rouge-deep) 30px 46px)}
.th-card:hover .th-top{background-position:22px 0}
.th-top .dpt{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;opacity:.9}
.th-card .city{font-family:var(--font-display);font-size:32px;line-height:36px;font-weight:700;letter-spacing:-.01em}
.th-bottom{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4) var(--space-6) var(--space-6);flex:1}
.th-bottom .nm{font-size:14px;line-height:20px;font-weight:600}
.th-card .next{margin-top:auto;padding:var(--space-3) var(--space-4);background:var(--moutarde-tint);border-radius:var(--radius-md);font-size:14px;line-height:20px}
.th-card .next b{display:block;font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--rouge-text)}
.dept-band{margin:-12px 0 var(--space-6)}
.dept{display:flex;align-items:baseline;gap:var(--space-4);margin:var(--space-12) 0 var(--space-6)}
.dept:first-of-type{margin-top:0}
.dept .rule{flex:1;height:1px;background:var(--line-strong)}

/* Saisons */
.season-tabs{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-6)}
.season-tabs a{font-weight:700;text-decoration:none;padding:var(--space-2) var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-sm)}
.season-tabs a[aria-current="page"]{background:var(--rouge);border-color:var(--rouge);color:var(--on-rouge)}
.season-tabs a:not([aria-current]):hover{background:var(--ink);color:var(--paper)}
.stats{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6);margin-top:var(--space-4);font-weight:600}
.stats span b{font-family:var(--font-display);font-size:22px;color:var(--rouge-text);font-variant-numeric:tabular-nums}

/* Contact */
.two{display:grid;gap:var(--space-12);grid-template-columns:1fr}
@media(min-width:900px){.two{grid-template-columns:1.1fr .9fr}}
.form{display:flex;flex-direction:column;gap:var(--space-4)}
.form .f-field label{font-size:13px;letter-spacing:.06em}
.form-ok{background:var(--sapin-tint);border-radius:var(--radius-md);padding:var(--space-4) var(--space-6);font-weight:600}
.copyline{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}
.copyline code{font-family:var(--font-sans);font-weight:700;background:var(--paper-sunken);padding:4px 8px;border-radius:var(--radius-sm);user-select:all;overflow-wrap:anywhere}
.th-contact{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--line);font-size:15px;text-decoration:none;transition:background-color 150ms}
.th-contact:hover{background:var(--paper-sunken)}

/* Pied de page */
.foot{background:var(--rouge-deep);color:var(--on-rouge);margin-top:var(--space-16)}
.foot .wrap{padding-block:var(--space-12);display:grid;gap:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.foot a{color:var(--on-rouge);text-decoration:none}
.foot a:hover{text-decoration:underline}
.foot h4{margin:0 0 var(--space-3);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.foot ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;font-size:15px}
.foot .wordmark span{color:var(--on-rouge)!important}
.foot .wordmark i{color:var(--on-rouge)}
/* Partenaires : bande blanche au-dessus du pied de page, et bloc de la page La Fédération */
.partners{background:#fff;border-top:1px solid var(--line-strong)}
.partners-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-4) var(--space-8);padding-block:var(--space-6)}
.partners-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-8)}
.partners-list img{display:block;height:84px;width:auto;max-width:240px;object-fit:contain}
.partners-list a{display:block;transition:transform .2s}.partners-list a:hover{transform:scale(1.05)}
.fed-partners{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--space-8);align-items:center;margin-top:var(--space-12);padding:var(--space-8);background:#fff;border:1px solid var(--line-strong)}
.fed-partners-logos{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-6);justify-content:center}
.fed-partners-logos img{display:block;width:100%;max-width:280px;height:auto}
@media(max-width:819px){.fed-partners{grid-template-columns:1fr;padding:var(--space-6)}.fed-partners-logos img{max-width:220px}.partners-list img{height:68px}}
.foot-bottom{border-top:1px solid rgba(255,255,255,.3);font-size:13px}
.foot-bottom .wrap{padding-block:var(--space-4);display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2)}


/* Effets dynamiques */
@keyframes fta-up{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@keyframes fta-rise{from{opacity:0;transform:translateY(64px) scale(.95)}to{opacity:1;transform:none}}
@keyframes fta-page{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes fta-poster{from{opacity:0;transform:translateY(34px) rotate(-3deg)}to{opacity:1;transform:none}}
@keyframes fta-curtL{from{width:50%}}
@keyframes fta-pop{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.08)}100%{transform:none}}
@keyframes fta-band{from{transform:scaleX(0)}to{transform:none}}
.hero::before,.hero::after{z-index:2;animation:fta-curtL 1.6s cubic-bezier(.75,0,.2,1) .2s both}
.hero-in>div:first-child>*{animation:fta-up 1.1s cubic-bezier(.16,1,.3,1) both}
.hero-in>div:first-child>*:nth-child(1){animation-delay:1.2s}
.hero-in>div:first-child>*:nth-child(2){animation-delay:1.38s}
.hero-in>div:first-child>*:nth-child(3){animation-delay:1.56s}
.hero-in>div:first-child>*:nth-child(4){animation-delay:1.74s}
.hero-feature{animation:fta-poster 1.4s cubic-bezier(.16,1,.3,1) 1.5s both}
.hero+.kelsch{transform-origin:left;animation:fta-band 1.3s cubic-bezier(.7,0,.2,1) 1.7s both}
.pre{opacity:0;transform:translateY(64px) scale(.95)}
.in{animation:fta-rise 1.15s cubic-bezier(.16,1,.3,1) var(--d,0s) both}
.page-in{animation:fta-page .7s cubic-bezier(.16,1,.3,1) both}
.chip{animation:fta-pop .5s cubic-bezier(.2,.7,.2,1) both}
.site-head{transition:box-shadow .2s ease-out}
.site-head.scrolled{box-shadow:0 6px 18px -12px rgba(21,19,18,.35)}
@media(prefers-reduced-motion:reduce){.hero::before,.hero::after,.hero-in>div:first-child>*,.hero-feature,.hero+.kelsch,.in,.chip,.page-in{animation:none}.pre{opacity:1;transform:none}.card .poster{transition:none}}
@media(prefers-reduced-motion:reduce){.btn,.card,.th-card{transition:none}.btn-primary:hover,.card:hover,.th-card:hover{transform:none}}

/* ---- Compléments de la version en ligne ---- */
.poster.has-img{padding:0;background:var(--paper-sunken)}
.poster.has-img::after{display:none}
.poster.has-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.photo-slot.has-img{background:var(--paper-sunken)}
.photo-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.form-err{background:var(--rouge-tint);border-radius:var(--radius-md);padding:var(--space-4) var(--space-6);font-weight:600}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.seg a{font-size:14px;font-weight:600;color:var(--ink);padding:7px 14px;text-decoration:none;display:inline-block}
.seg a[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
a.chip{text-decoration:none}
.president .citation p{margin:0}
.president .citation{display:flex;flex-direction:column;gap:var(--space-3,12px)}
/* Mot long (une vraie lettre) : texte courant, plus lisible que la grande citation en italique */
.president .citation.long{font-family:inherit;font-style:normal;font-size:16.5px;line-height:27px;max-width:68ch}
/* Mot long replié : hauteur fixe, bas du texte estompé ; « Lire tout le mot » le déplie */
.president .citation.long.clamped:not(.open){max-height:270px;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,#000 62%,transparent);mask-image:linear-gradient(to bottom,#000 62%,transparent)}
.president .mot-more{align-self:flex-start;font-size:15px}
/* Téléphone : la photo passe au-dessus du mot, qui prend toute la largeur */
@media(max-width:640px){.president{padding:var(--space-6,24px) var(--space-5,20px)}.pres-wrap:not(.no-word){grid-template-columns:1fr}.pres-wrap:not(.no-word) .photo-slot{width:120px}.president .citation.long{font-size:16px;line-height:26px}}
.chapo p+p,.prose p+p{margin-top:12px}
.results-loading{opacity:.45;transition:opacity .2s}
.actor-photo:has(img)::after{display:none}

/* ---- Agenda : bouton et menu ---- */
.goto-menu a small{display:block;font-size:12px;font-weight:400;color:var(--ink-muted);margin-top:2px}
.tk .acts .goto,.dact .goto{display:inline-block}
.dact{flex-direction:row;flex-wrap:wrap;justify-content:flex-end;align-items:center}
@media(max-width:620px){.dact{justify-content:flex-start}}
.goto.cal .goto-menu{min-width:240px}

/* ---- Infos pratiques des salles ---- */
.venue-info{list-style:none;padding:0;margin:var(--space-2) 0 0;display:flex;flex-direction:column;gap:2px;font-size:14px;line-height:20px}

/* ---- Vidéos ---- */
.video-block{margin-top:var(--space-12);display:flex;flex-direction:column;gap:var(--space-3)}
/* Ordinateur : le mot long défile dans sa fenêtre (barre de défilement), sans bouton.
   Page d'un théâtre avec vidéo : vidéo à gauche, mot à droite, sur une même hauteur fixe ;
   la vidéo garde son format (verticale = colonne étroite, horizontale = 560 px au plus). */
@media(min-width:1100px){
  .president .citation.long{max-height:330px;overflow-y:auto;overscroll-behavior:contain;padding-right:14px;scrollbar-width:thin;scrollbar-color:var(--rouge) transparent}
  .th-duo.has-both{--duo-h:470px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-8);height:var(--duo-h);margin-top:var(--space-12)}
  .th-duo.has-both .video-block{order:-1;margin-top:0;height:100%;min-height:0;max-width:560px}
  .th-duo.has-both .video-frame{flex:none;width:fit-content;max-width:560px}
  /* Hauteur donnée en pixels : la largeur suit alors le format réel de la vidéo (pas de bandes noires) */
  .th-duo.has-both .video-frame video{height:calc(var(--duo-h) - 42px);width:auto;max-width:560px;max-height:none;object-fit:contain}
  .th-duo.has-both .video-facade{width:560px;height:calc(var(--duo-h) - 42px);aspect-ratio:auto}
  .th-duo.has-both .video-facade.is-vertical{width:calc((var(--duo-h) - 42px) * 9 / 16)}
  .th-duo.has-both .video-frame iframe{width:100%;height:calc(var(--duo-h) - 42px);aspect-ratio:auto}
  .th-duo.has-both .president{height:100%;min-height:0;overflow:hidden}
  .th-duo.has-both .pres-wrap,.th-duo.has-both .pres-text{height:100%;min-height:0}
  .th-duo.has-both .citation{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:14px}
  .th-duo.has-both .president .citation.long{max-height:none;max-width:none}
}
.video-frame{position:relative;background:var(--ink);border:1px solid var(--line-strong);box-shadow:var(--shadow-affiche);max-width:900px;width:100%}
.video-frame video{display:block;width:100%;max-height:80vh;background:#000}
/* Vidéo verticale sur tablette : le cadre suit la vidéo, sans grandes bandes noires */
@media(min-width:641px){.video-frame:has(video){width:fit-content;max-width:100%}.video-frame video{width:auto;max-width:100%;max-height:70vh}}
.video-frame iframe{display:block;width:100%;aspect-ratio:16/9;border:0}
.video-facade{aspect-ratio:16/9}
.video-facade.is-vertical{aspect-ratio:9/16;max-width:380px}
.video-facade.is-vertical iframe{aspect-ratio:9/16}
.video-play{position:absolute;inset:0;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);border:0;cursor:pointer;color:#fff;font:inherit;background:repeating-linear-gradient(90deg,var(--rouge-deep) 0 26px,#7a0a1c 26px 30px,var(--rouge-deep) 30px 46px)}
.vp-icon{width:72px;height:72px;border-radius:50%;background:#fff;position:relative;transition:transform .2s}
.vp-icon::after{content:"";position:absolute;left:29px;top:22px;border-left:22px solid var(--rouge);border-top:14px solid transparent;border-bottom:14px solid transparent}
.video-play:hover .vp-icon{transform:scale(1.08)}
.vp-text{font-weight:700;font-size:18px}
.vp-note{font-size:12px;opacity:.85;max-width:34ch;text-align:center}

/* ---- Carte des théâtres ---- */
.map-wrap{margin-bottom:var(--space-12)}
.theatre-map{height:clamp(320px,52vh,520px);border:1px solid var(--line-strong);box-shadow:var(--shadow-affiche);background:var(--paper-sunken);z-index:0}
.map-credit{margin-top:var(--space-3)}
.map-pin{background:var(--rouge);border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 1px var(--ink),2px 2px 0 var(--ink)}
.map-pin.ht{background:var(--rouge-deep)}
.leaflet-popup-content{font-family:var(--font-sans);font-size:14px;line-height:1.45}
.leaflet-popup-content a{color:var(--rouge-text);font-weight:700}

/* ---- Lettre d'information ---- */
.newsletter{background:var(--paper-sunken);border-top:1px solid var(--line);margin-top:var(--space-16);scroll-margin-top:90px}
.newsletter+.foot{margin-top:0}
.nl-in{display:grid;grid-template-columns:1fr;gap:var(--space-6);padding-block:var(--space-12)}
@media(min-width:900px){.nl-in{grid-template-columns:1fr 1fr;align-items:center}}
.nl-form{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}
.nl-label{font-size:13px;font-weight:700}
.nl-row{display:flex;gap:var(--space-2);flex-wrap:wrap}
.nl-row input{flex:1 1 220px;width:auto;background:var(--paper-raised)}
.theatre-map .leaflet-tile-pane{filter:grayscale(1) contrast(.92) brightness(1.06)}
/* Un menu ouvert passe au-dessus des lignes suivantes */
.tk,.drow{position:relative}
.tk:has(.goto-menu:not([hidden])),.drow:has(.goto-menu:not([hidden])),.venue:has(.goto-menu:not([hidden])){z-index:30}
/* S'abonner à l'agenda */
.head-actions{margin-top:20px;display:flex;flex-wrap:wrap;gap:12px}
.goto.sub{display:inline-block}
.goto.sub .goto-menu{left:0;right:auto;min-width:280px}
.goto-menu button{all:unset;box-sizing:border-box;cursor:pointer;padding:var(--space-3) var(--space-4);font-weight:600;color:var(--ink)}
.goto-menu button:hover{background:var(--paper-sunken)}
.goto-menu button small{display:block;font-size:12px;font-weight:400;color:var(--ink-muted);margin-top:2px}
.goto-menu button:focus-visible{outline:2px solid var(--rouge);outline-offset:-2px}
.goto-menu a:last-of-type{border-bottom:1px solid var(--line)}
.goto-menu a:last-child{border-bottom:0}
.geo-msg{flex-basis:100%;margin:6px 0 0;font-size:14px;color:var(--rouge-text)}
.km{color:var(--rouge-text);font-weight:600}
.map-locate{font:700 14px "Instrument Sans",Arial,sans-serif;background:var(--paper-raised);color:var(--ink);border:1px solid var(--line-strong);border-radius:6px;padding:8px 12px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.map-locate:hover{background:var(--ink);color:var(--paper)}
/* Logos des théâtres */
.th-hero.has-logo{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--space-8);align-items:start}
.th-hero.has-logo>*{grid-column:1}
.th-hero .th-logo{grid-column:2;grid-row:1 / span 4;align-self:start;width:clamp(140px,18vw,240px);margin-top:8px}
.th-logo img{display:block;width:100%;height:auto;max-height:200px;object-fit:contain}
@media(max-width:700px){
  .th-hero.has-logo{display:flex}
  .th-hero .th-logo{width:auto;margin:0}
  .th-logo img{max-width:180px;max-height:96px;width:auto}
}
.th-mini{position:absolute!important;z-index:2;top:16px;right:16px;width:84px;height:84px;background:#fff;border-radius:50%;padding:11px;box-shadow:0 0 0 1px var(--ink),3px 3px 0 var(--ink);transition:transform 280ms cubic-bezier(.16,1,.3,1)}
.th-card:hover .th-mini{transform:rotate(-6deg) scale(1.05)}
.th-mini img{width:100%;height:100%;object-fit:contain;display:block}
.th-card:has(.th-mini) .th-top{min-height:170px}
/* Logos sur la carte. Le marqueur (.map-logo) est placé par la carte avec « transform » : l'animation se fait
   sur le cercle intérieur (.ml-in). Le logo tient dans le carré inscrit du cercle (70 %) : il ne dépasse jamais. */
.map-logo{background:none;border:0}
.ml-in{width:100%;height:100%;box-sizing:border-box;background:#fff;border:2px solid var(--rouge);border-radius:50%;box-shadow:2px 2px 0 var(--ink);display:grid;place-items:center;overflow:hidden;transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s}
.map-logo.ht .ml-in{border-color:var(--rouge-deep)}
.leaflet-container .map-logo img{width:70%!important;height:70%!important;max-width:none!important;object-fit:contain;display:block}
.map-logo:hover .ml-in,.map-logo:focus-visible .ml-in{transform:scale(1.4);box-shadow:3px 3px 0 var(--ink),0 0 0 5px rgba(212,24,36,.18)}
@media(prefers-reduced-motion:reduce){.ml-in{transition:none}}
.map-pop{display:flex;gap:10px;align-items:center}
.leaflet-container .map-pop img{width:52px!important;height:52px!important;object-fit:contain;flex:none}
/* « Prévenez-moi » */
.notify{position:relative;display:inline-block}
.notify>summary{list-style:none;cursor:pointer;white-space:nowrap}
.notify>summary::-webkit-details-marker{display:none}
.notify[open]>summary{background:var(--ink);color:var(--paper)}
.notify-box{position:absolute;z-index:40;right:0;top:calc(100% + 8px);width:min(320px,calc(100vw - 32px));background:var(--paper-raised);border:1px solid var(--line-strong);box-shadow:var(--shadow-affiche);padding:var(--space-4);display:flex;flex-direction:column;gap:10px;text-align:left;animation:fta-pop .3s cubic-bezier(.2,.7,.2,1) both}
.notify-box .nb-t{margin:0;font-size:14px;line-height:1.45}
.notify-box input[type=email]{width:100%}
.notify-box .nb-c{display:flex;gap:8px;align-items:center;font-size:13px}
.notify-box .nb-s{margin:0;font-size:12px}
.notify-box .nb-msg{margin:0;font-weight:600;font-size:14px;color:var(--ink)}
.notify-box .nb-msg.err{color:var(--rouge-text)}
.dact .opens,.acts .opens{display:block;margin-bottom:6px}
.dact,.acts{text-align:right}
.opens-banner{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between;background:var(--moutarde-tint);border-radius:var(--radius-md);padding:var(--space-4) var(--space-6);margin-bottom:var(--space-6)}
.opens-banner p{margin:0}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:619px){.dact,.acts{text-align:left}}
.notify-box .nb-c input{width:auto;flex:none;margin:0}
.drow:has(details.notify[open]),.card:has(details.notify[open]),.tk:has(details.notify[open]),.opens-banner:has(details.notify[open]){position:relative;z-index:60}
@media(max-width:619px){
  .notify{position:static}
  .notify-box,.notify.compact .notify-box{left:0;right:0;width:auto;top:auto;margin-top:8px}
}
/* Raccourcis « Ce week-end »… */
.quick{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:16px}
.quick-l{font-weight:700;font-size:14px;margin-right:4px}
.quick-a{display:inline-flex;gap:6px;align-items:center;padding:8px 14px;border:1px solid var(--line-strong);border-radius:99px;font-weight:600;font-size:14px;text-decoration:none;color:var(--ink);background:var(--paper-raised)}
.quick-a b{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:99px;background:var(--rouge);color:var(--on-rouge);font-size:12px}
.quick-a:hover,.quick-a[aria-current]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.quick-a.off{border-style:dashed}
/* Outils de l'en-tête : recherche, confort de lecture */
.nav{margin-left:auto}
.tools{display:flex;gap:6px;align-items:center}
.tool{display:inline-grid;place-items:center;width:42px;height:42px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:none;color:var(--ink);cursor:pointer;font:inherit;font-size:17px;text-decoration:none}
.tool small{font-size:11px}
.tool:hover,.tool[aria-expanded="true"]{background:var(--ink);color:var(--paper)}
.tool-wrap{position:relative}
.lecture-pop{position:absolute;right:0;top:calc(100% + 8px);z-index:50;width:250px;background:var(--paper-raised);border:1px solid var(--line-strong);box-shadow:var(--shadow-affiche);padding:var(--space-4);display:flex;flex-direction:column;gap:10px}
.lecture-pop[hidden]{display:none}
.lp-t{margin:0;font-weight:700;font-size:14px}
.lp-seg{display:flex;border:1px solid var(--line-strong);border-radius:var(--radius-sm);overflow:hidden}
.lp-seg button{flex:1;padding:8px 0;font:inherit;font-weight:700;background:none;border:0;border-left:1px solid var(--line-strong);cursor:pointer;color:var(--ink)}
.lp-seg button:first-child{border-left:0;font-size:14px}.lp-seg button:nth-child(2){font-size:17px}.lp-seg button:nth-child(3){font-size:20px}
.lp-seg button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.lp-c{display:flex;gap:8px;align-items:center;font-weight:600;font-size:14px}
.lp-c input{width:auto;margin:0}
.search-bar{border-top:1px solid var(--line);background:var(--paper-raised)}
.search-bar[hidden]{display:none}
.search-bar .wrap{display:flex;gap:10px;align-items:center;padding-block:12px}
.search-bar input{flex:1;min-width:0}
.search-form{display:flex;gap:10px;margin-top:16px;max-width:640px}
.search-form input{flex:1;min-width:0}
@media(max-width:899px){
  .tools{margin-left:auto;order:1}
  .menu-btn{order:2}
  .nav{order:3;margin-left:0}
  .tool{width:40px;height:40px}
}
/* Taille du texte (le zoom garde les proportions de toute la page) */
html.fs-1 body{zoom:1.12}
html.fs-2 body{zoom:1.25}
/* Contraste renforcé */
html.hc{--ink-muted:#1f1b18;--line:#6d655c;--line-strong:#151312;--rouge-text:#9e0013;--paper-sunken:#efeae2}
html.hc .muted,html.hc .small.muted,html.hc .card-sub{color:#1f1b18!important}
html.hc a:not(.btn):not(.tag):not(.quick-a):not(.tool):not(.th-card):not(.card-title){text-decoration:underline}
html.hc .btn-secondary{border-width:2px}
html.hc .reveal,html.hc [data-reveal]{opacity:1!important;transform:none!important}
/* Comédiens */
.actor-link{text-decoration:none;color:inherit}
.actor-link:hover .actor-photo{box-shadow:4px 4px 0 var(--rouge-deep);transform:translate(-2px,-2px)}
.actor-link .actor-photo{transition:transform .25s,box-shadow .25s}
.actor-link:hover .a-name{text-decoration:underline}
.actor-hero{display:grid;grid-template-columns:minmax(150px,240px) minmax(0,1fr);gap:var(--space-8);align-items:end;padding-block:24px 32px}
.actor-photo.big{box-shadow:var(--shadow-affiche-lg,6px 6px 0 #151312)}
@media(max-width:619px){.actor-hero{grid-template-columns:120px minmax(0,1fr);gap:var(--space-4)}}
.role-wrap{display:flex;flex-direction:column;gap:8px}
.role-l{margin:0;font-size:14px}
.past-roles{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-strong)}
.past-roles li{display:flex;flex-wrap:wrap;gap:4px 16px;padding:12px 0;border-bottom:1px solid var(--line)}
.past-roles a{color:var(--ink)}
/* Première fois / groupes */
.first-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--space-12);padding:24px 0 64px;align-items:start}
@media(max-width:899px){.first-grid{grid-template-columns:1fr;gap:var(--space-6)}}
.first-aside{position:sticky;top:100px}
.first-card{display:flex;flex-direction:column;gap:10px;background:var(--moutarde-tint);border-radius:var(--radius-md);padding:var(--space-6)}
.first-card p{margin:0}
.first-card .btn{justify-content:center}
.first-text h2{margin-top:var(--space-8)}
.f-row2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
@media(max-width:619px){.f-row2{grid-template-columns:1fr}}
.first-link{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;border:1px dashed var(--line-strong);border-radius:var(--radius-md);padding:var(--space-4) var(--space-6);margin:var(--space-6) 0}
.first-link p{margin:0}
.piece-help{margin:-8px 0 var(--space-6);color:var(--ink-muted)}
/* Partager */
.share{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.share-l{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin-right:4px}
.share-b{display:inline-flex;gap:6px;align-items:center;padding:7px 12px;border:1px solid var(--line-strong);border-radius:99px;font:inherit;font-weight:600;font-size:14px;color:var(--ink);background:var(--paper-raised);text-decoration:none;cursor:pointer}
.share-b:hover{background:var(--ink);color:var(--paper)}
.share-b.wa svg{color:#1fa855}.share-b.fb svg{color:#1877f2}
.share-b:hover svg{color:currentColor}
.share-b[hidden]{display:none}
@media(max-width:619px){.share-b span{display:none}.share-b{padding:9px}.share-b.native span{display:inline}}
/* Galerie */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.g-item{display:block;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line-strong);background:var(--paper-sunken)}
.g-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.g-item:hover img{transform:scale(1.05)}
@media(max-width:619px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}
.lightbox{position:fixed;inset:0;z-index:300;background:rgba(10,9,8,.94);display:grid;grid-template-columns:56px minmax(0,1fr) 56px;align-items:center}
.lightbox[hidden]{display:none}
.lightbox figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:10px;max-height:100vh;padding:24px 0}
.lightbox img{max-width:100%;max-height:calc(100vh - 110px);object-fit:contain}
.lightbox figcaption{color:#f4eee3;font-size:14px;text-align:center;white-space:pre-wrap}
.lightbox button{background:none;border:0;color:#fff;font-size:44px;cursor:pointer;height:100%;line-height:1}
.lightbox .lb-x{position:absolute;top:12px;right:16px;font-size:28px;height:auto}
/* Mots du public */
.notes-grid{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:var(--space-8);align-items:start}
@media(max-width:899px){.notes-grid{grid-template-columns:1fr}}
.notes-grid:not(:has(.note-form)){grid-template-columns:1fr}
.notes-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-4)}
.note-q{margin:0;background:var(--paper-raised);border:1px solid var(--line-strong);box-shadow:var(--shadow-affiche);padding:var(--space-4) var(--space-6);display:flex;flex-direction:column;gap:8px}
.note-q p{margin:0;font-family:var(--font-display);font-size:18px;line-height:1.4}
.note-q cite{font-style:normal;font-weight:700;font-size:14px;color:var(--rouge-text)}
.note-form .nb-msg{font-weight:600;margin:0}
.note-form .nb-msg.err{color:var(--rouge-text)}
@media(max-width:619px){.site-head > .wrap{gap:8px}.site-head .tools{gap:4px}.mb-lines{margin-right:-2px}}
.maint-bar{background:var(--rouge-deep,#9e0013)}
.maint-bar b{color:#fff}.maint-bar a{color:#fff}
/* Page de maintenance */
.mt-body{min-height:100vh;display:flex;flex-direction:column;background:var(--paper)}
.mt-main{flex:1;display:grid;place-items:center;padding:48px 16px}
.mt-box{max-width:640px;width:100%;display:flex;flex-direction:column;gap:22px}
.mt-logo img{height:64px;width:auto;display:block}
.mt-box .affiche{font-size:clamp(38px,6vw,64px);line-height:1.02}
.mt-box .chapo p{margin:0 0 12px}
.mt-form{display:flex;flex-direction:column;gap:8px;max-width:520px}
.mt-row{display:flex;gap:8px}
.mt-row input{flex:1;min-width:0}
@media(max-width:519px){.mt-row{flex-direction:column}}
.mt-foot{padding:18px 16px;text-align:center;font-size:13px;color:var(--ink-muted)}
.mt-foot a{color:inherit}
.mt-note{background:var(--moutarde-tint,#f8edc8);padding:10px 14px;border-radius:var(--radius-md,6px);font-size:14px}
