/* Affiches des concerts (accueil, /programmation/, /concerts-passes/) et modale du clip : Anton, mot vertical, palette du site (#91 #92 #93). */

/* Affiche : même cadrage 16:9 pour tous, bouton sans habillage quand un clip existe */
.btp-cp-poster { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; padding: 0; margin: 0; border: 0; border-radius: 0; background: var(--btp-dark, #000A33); color: inherit; font: inherit; text-align: left; cursor: pointer; }
.btp-cp-poster img { display: block; width: 100%; height: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.btp-cp-poster:focus-visible { outline: 2px solid var(--btp-red-light, #F5E6D3); outline-offset: -4px; }
body.page-id-1867 .btp-prog-card .btp-cp-poster { aspect-ratio: 16 / 9; line-height: normal; }
/* Pastille « Clip » : badge de catégorie du carnet */
.btp-cp-play { position: absolute; left: 12px; bottom: 12px; z-index: 2; display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border: 1px solid rgba(245,230,211,0.3); border-radius: 999px; background: rgba(33,47,89,0.82); color: var(--btp-red-light, #F5E6D3); font-family: 'Outfit', sans-serif; font-size: 10px; font-weight: 700; line-height: 1.4; letter-spacing: 0.08em; text-transform: uppercase; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transition: background 0.25s ease, color 0.25s ease; }
.btp-cp-poster:hover .btp-cp-play, .btp-cp-poster:focus-visible .btp-cp-play { background: var(--btp-red-light, #F5E6D3); color: var(--btp-primary, #212f59); }

/* Bloc date (#106) : jour vertical = particule du logo (docs/particules.md) ; hauteur du haut des capitales de la ligne 1 au pied de la ligne 2, écart = hauteur x --btp-part-gap jusqu'à l'encre des lignes. */
.btp-cp-when { --cp-d: 28px; --cp-t: 15px; --cp-g: 4px; display: flex; align-items: flex-end; gap: 12px; margin: 0 0 4px; font-family: 'Anton', 'Yapari', Impact, sans-serif; font-weight: 400; text-transform: uppercase; line-height: 1; }
.btp-cp-when time { display: flex; align-items: last baseline; min-width: 0; }
.btp-cp-dow {
    /* Ligne de base d'une ligne Anton (line-height 1) : 0,92358 em ; pied de ligne 2 moins haut des capitales de ligne 1. */
    --cp-h: calc(var(--cp-d) * (1 - 0.92358 + var(--btp-cap, 0.859375)) + var(--cp-g) + var(--cp-t) * 0.92358);
    --cp-w: calc(var(--cp-h) * var(--cp-r, 0.65));
    position: relative; display: block; flex: none; align-self: last baseline;
    height: var(--cp-h); width: var(--cp-w); margin: 0 calc(var(--cp-h) * var(--btp-part-gap, 0.1359)) 0 0;
    color: var(--btp-red-light, #F5E6D3); line-height: 0;
}
.btp-cp-dow.is-1l { --cp-h: calc(var(--btp-cap, 0.859375) * var(--cp-d)); }
.btp-cp-dow > svg { position: absolute; left: 100%; bottom: 0; display: block; width: var(--cp-h); height: var(--cp-w); fill: currentColor; overflow: visible; transform-origin: 0 100%; transform: rotate(-90deg); }
.btp-cp-dow.is-up > svg { left: 0; width: 100%; height: 100%; transform: none; }
/* #90 : hauteur et largeur entières ; ligne de base Anton = ascendante + demi-interligne arrondis comme le moteur de rendu. */
@supports (width: round(up, 1.5px, 1px)) {
    .btp-cp-dow {
        --cp-bd: calc(round(nearest, var(--cp-d) * 1.17627, 1px) + round(down, (var(--cp-d) - round(nearest, var(--cp-d) * 1.17627, 1px) - round(nearest, var(--cp-d) * 0.329102, 1px)) / 2, 1px));
        --cp-bt: calc(round(nearest, var(--cp-t) * 1.17627, 1px) + round(down, (var(--cp-t) - round(nearest, var(--cp-t) * 1.17627, 1px) - round(nearest, var(--cp-t) * 0.329102, 1px)) / 2, 1px));
        --cp-h: round(nearest, calc(var(--cp-d) - var(--cp-bd) + var(--btp-cap, 0.859375) * var(--cp-d) + var(--cp-g) + var(--cp-bt)), 1px);
        --cp-w: round(up, calc(var(--cp-h) * var(--cp-r, 0.65)), 1px);
    }
    .btp-cp-dow.is-1l { --cp-h: round(nearest, calc(var(--btp-cap, 0.859375) * var(--cp-d)), 1px); }
}
.btp-cp-dow > .btp-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.btp-cp-dow.is-text { width: auto; height: auto; margin-right: 8px; writing-mode: vertical-rl; transform: rotate(180deg); font-size: 13px; line-height: 1; letter-spacing: 1.5px; white-space: nowrap; align-self: flex-end; }
.btp-cp-date { display: flex; flex-direction: column; gap: var(--cp-g); min-width: 0; }
.btp-cp-day, .btp-cp-time { margin-left: calc(var(--btp-lsb, 0.031) * -1em); white-space: nowrap; }
.btp-cp-day { font-size: var(--cp-d); letter-spacing: 0.5px; color: var(--btp-white, #EDF0F7); }
.btp-cp-time { font-size: var(--cp-t); letter-spacing: 1px; color: var(--btp-red-light, #F5E6D3); }
.btp-cp-status { margin-left: auto; padding-bottom: 1px; font-size: 15px; letter-spacing: 1px; color: var(--btp-red-light, #F5E6D3); text-align: right; }
.btp-cp-status.is-soldout { color: var(--btp-white, #EDF0F7); }
.btp-home-event-title, body.page-id-1867 .btp-prog-card .btp-prog-title, .btp-cp-grid .btp-prog-title { font-family: 'Anton', 'Yapari', Impact, sans-serif; font-weight: 400; font-size: 19px; line-height: 1.25; letter-spacing: 0.3px; overflow-wrap: break-word; }

/* Page Concerts passés : grille du carnet */
.btp-cp-page .btp-cp-intro { margin: 0 0 32px; color: rgba(255,255,255,0.7); font-size: 15px; }
.btp-cp-page .btp-cp-intro a { color: var(--btp-red-light, #F5E6D3); white-space: nowrap; }
.btp-cp-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 1100px) { .btp-cp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .btp-cp-grid { grid-template-columns: minmax(0, 1fr); } }
.btp-cp-grid .btp-prog-card { display: flex; flex-direction: column; min-width: 0; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06); border-radius: 14px; overflow: hidden; transition: transform 0.25s ease, border-color 0.25s ease; }
.btp-cp-grid .btp-prog-card:hover { transform: translateY(-4px); border-color: var(--btp-red-light, #F5E6D3); }
.btp-cp-grid .btp-cp-poster img { transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1); }
.btp-cp-grid .btp-prog-card:hover .btp-cp-poster img { transform: scale(1.05); }
.btp-cp-grid .btp-prog-info { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px 16px; }
.btp-cp-grid .btp-prog-title { margin: 0; color: var(--btp-white, #EDF0F7); }
.btp-cp-grid .btp-prog-title a { color: inherit; text-decoration: none; }
.btp-cp-grid .btp-prog-links { margin-top: 4px; }
.btp-cp-grid .btp-prog-fiche { font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(255,255,255,0.85); text-decoration: none; }
.btp-cp-grid .btp-prog-fiche:hover { color: var(--btp-red-light, #F5E6D3); }
.btp-cp-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 16px; margin: 40px 0 0; }
.btp-cp-pagelink { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border: 1px solid rgba(245,230,211,0.25); border-radius: 999px; background: rgba(33,47,89,0.4); color: var(--btp-red-light, #F5E6D3); font-family: 'Outfit', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; text-decoration: none; transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease; }
.btp-cp-pagelink:hover { background: var(--btp-red-light, #F5E6D3); color: var(--btp-primary, #212f59); border-color: var(--btp-red-light, #F5E6D3); }
.btp-cp-pager-n { font-family: 'Anton', 'Yapari', Impact, sans-serif; font-size: 15px; letter-spacing: 1px; color: rgba(255,255,255,0.7); }

/* Modale du clip : habillage de la modale billetterie du carnet */
.btp-pm[hidden] { display: none; }
.btp-pm { position: fixed; inset: 0; z-index: 100001; display: flex; align-items: center; justify-content: center; padding: 12px; overscroll-behavior: contain; }
.btp-pm-backdrop { position: absolute; inset: 0; background: rgba(0,10,51,0.6); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.btp-pm-panel { position: relative; display: flex; flex-direction: column; width: min(420px, 100%); max-height: 100%; background: var(--btp-primary, #212f59); border-radius: 16px; overflow: hidden; box-shadow: 0 30px 80px rgba(0,0,0,0.5); }
.btp-pm-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 14px 12px 20px; background: var(--btp-dark, #000A33); border-bottom: 1px solid rgba(255,255,255,0.08); flex-shrink: 0; }
.btp-pm-title { margin: 0; min-width: 0; font-family: 'Anton', 'Yapari', Impact, sans-serif; font-weight: 400; font-size: 16px; line-height: 1.2; letter-spacing: 1px; text-transform: uppercase; color: var(--btp-white, #EDF0F7); overflow-wrap: break-word; }
.btp-pm-close { flex-shrink: 0; width: 36px; height: 36px; padding: 0; border-radius: 50%; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); color: var(--btp-white, #fff); font-size: 22px; line-height: 1; cursor: pointer; transition: background 0.25s ease, transform 0.25s ease; }
.btp-pm-close:hover, .btp-pm-close:focus-visible { background: var(--btp-red-light, #F5E6D3); color: var(--btp-primary, #212f59); transform: rotate(90deg); }
.btp-pm-media { flex: 0 1 auto; min-height: 0; aspect-ratio: 9 / 16; background: var(--btp-dark, #000A33); }
.btp-pm-media video { display: block; width: 100%; height: 100%; object-fit: contain; background: var(--btp-dark, #000A33); }
.btp-pm-foot { flex-shrink: 0; display: flex; flex-direction: column; gap: 10px; padding: 12px 20px 14px; }
.btp-pm-when { margin: 0; font-family: 'Anton', 'Yapari', Impact, sans-serif; font-size: 15px; line-height: 1.2; letter-spacing: 1px; text-transform: uppercase; color: var(--btp-red-light, #F5E6D3); }
.btp-pm-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.btp-pm-fiche { font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(255,255,255,0.85); text-decoration: none; }
.btp-pm-fiche:hover { color: var(--btp-red-light, #F5E6D3); }
.btp-pm-book { display: inline-flex; align-items: center; gap: 6px; padding: 9px 18px; border-radius: 999px; border: 1px solid var(--btp-red-light, #F5E6D3); background: var(--btp-red-light, #F5E6D3); color: var(--btp-primary, #212f59); font-family: 'Anton', 'Yapari', Impact, sans-serif; font-size: 13px; letter-spacing: 1.5px; text-transform: uppercase; text-decoration: none; transition: background 0.25s ease, color 0.25s ease; }
.btp-pm-book:hover { background: rgba(33,47,89,0.78); color: var(--btp-red-light, #F5E6D3); }
.btp-pm-book[hidden], .btp-pm-fiche[hidden] { display: none; }
html.btp-pm-lock, html.btp-pm-lock body { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .btp-pm-close, .btp-pm-close:hover { transition: none; transform: none; } }
