/* Geek Life V4 — page Programme : ce que les éléments atomiques ne savent pas faire seuls
   (onglets, filtres, état des lignes, fiche en surimpression). Sélecteurs préfixés : le thème stylise button globalement. */

.gl-masque{display:none!important}
html.gl-fiche-ouverte,html.gl-fiche-ouverte body{overflow:hidden}
.e-svg-base{line-height:0}.e-svg-base>svg{display:block}

/* --- En-tête et temps forts : premières lignes sans filet, défilement des puces sans barre --- */
#temps-forts .gl-pg-tf-ligne:first-child{border-top:0}
#temps-forts .gl-pg-tf-ligne{text-decoration:none}
#temps-forts picture.gl-pg-tf-img>img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
[id] > .e-con-inner{min-width:0}

/* --- Onglets Samedi / Dimanche et puces de filtre --- */
.gl-pg-onglets{display:flex;gap:4px;padding:4px;border-radius:12px;background:#F3F5F6}
.gl-pg-onglets .gl-pg-onglet[type=button]{height:48px;margin:0;padding:0 20px;border:0;border-radius:8px;background:transparent;color:#1D2424;font:600 15px/1.2 'Inter',sans-serif;text-transform:none;letter-spacing:normal;white-space:nowrap;box-shadow:none;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.gl-pg-onglets .gl-pg-onglet[type=button]:hover{background:#E3E7E8;color:#1D2424}
.gl-pg-onglets .gl-pg-onglet[type=button][aria-selected=true]{background:#1E1E1C;color:#FFFFFF}
.gl-pg-onglet span+span{font-size:12px;font-weight:500;opacity:.8}
.gl-pg-chips{display:flex;flex-wrap:wrap;gap:8px}
@media (max-width:767px){.gl-pg-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * clamp(20px,5vw,72px));padding:0 clamp(20px,5vw,72px)}.gl-pg-chips::-webkit-scrollbar{display:none}}
.gl-pg-chips .gl-pg-chip[type=button]{flex:none;height:44px;box-sizing:border-box;display:flex;align-items:center;gap:6px;margin:0;padding:0 16px;border-radius:999px;border:1px solid #D8DDDF;background:#FFFFFF;color:#1D2424;font:600 14px/1 'Inter',sans-serif;text-transform:none;letter-spacing:normal;white-space:nowrap;box-shadow:none;cursor:pointer}
.gl-pg-chips .gl-pg-chip[type=button]:hover{background:#F3F5F6;color:#1D2424}
.gl-pg-chips .gl-pg-chip[type=button][aria-pressed=true]{background:#1E1E1C;border-color:#1E1E1C;color:#FFFFFF}
.gl-pg-chip span{font-weight:500;opacity:.75}
.gl-pg-onglet:focus-visible,.gl-pg-chip:focus-visible,[data-gl-anim]:focus-visible{outline:3px solid #DC3347;outline-offset:2px}
.gl-pg-onglet:focus:not(:focus-visible),.gl-pg-chip:focus:not(:focus-visible){outline:none}

/* --- Lignes d'horaires --- */
.gl-pg-ligne.gl-pg-premiere{border-top-width:0}
.gl-pg-ligne[data-gl-anim]{cursor:pointer}
.gl-pg-ligne[data-gl-anim]:hover{background:#F3F5F6}
.gl-pg-sans-lien .gl-pg-fleche{visibility:hidden}
.gl-pg-h,.gl-pg-fin{font-variant-numeric:tabular-nums}
.gl-pg-vide{margin:0;padding:16px 24px;font:400 14px/1.5 'Inter',sans-serif;color:#5E686B}
.gl-pg-vide[hidden]{display:none}

/* --- Cartes d'animation --- */
[id^="anim-"][data-gl-anim]{cursor:pointer}
body:not(.elementor-editor-active) .gl-js-pf-quand{display:none!important}
body:not(.elementor-editor-active) .gl-js-pf-quand.est-visible{display:flex!important}
/* accroche : 3e enfant du bloc texte de la carte (repère structurel, la boucle ne porte pas de classe) */
[id^="anim-"]>:nth-child(2)>:nth-child(3){display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
[id^="anim-"] picture[class*="e-image-base"]>img{width:100%;height:100%;object-fit:cover;display:block}

/* --- Fiche en surimpression : cachée hors éditeur, ouverte par le script --- */
body:not(.elementor-editor-active) .gl-js-pf{display:none!important}
body:not(.elementor-editor-active) .gl-js-pf.est-ouverte{display:flex!important}
body .gl-js-pf{position:fixed;top:0;right:0;bottom:0;left:0;width:auto;z-index:99990;margin:0}
body .gl-js-pf-voile{position:absolute;top:0;right:0;bottom:0;left:0;width:auto;height:auto;cursor:pointer}
body .gl-js-pf-panneau{position:relative;overscroll-behavior:contain}
/* Dans l'éditeur : fiche posée dans le flux de la page, pour ne pas recouvrir le canevas. */
body.elementor-editor-active .gl-js-pf{position:relative;top:auto;right:auto;bottom:auto;left:auto;z-index:1;height:auto;min-height:0;margin:40px 0}
body.elementor-editor-active .gl-js-pf-voile{display:none}
.gl-js-pf-photo,.gl-js-pf-photo img{display:block}
picture.gl-js-pf-photo>img{display:block;width:100%;height:100%;object-fit:inherit;object-position:inherit;border-radius:inherit}
.gl-js-pf-texte p{margin:0;font:400 15px/1.6 'Inter',sans-serif;color:#3E4749;text-wrap:pretty}
.gl-js-pf-texte p+p{margin-top:10px}
.gl-js-pf-texte strong,.gl-js-pf-texte b{color:#1D2424;font-weight:600}
.gl-pf-ligne{display:grid;grid-template-columns:150px minmax(0,1fr);gap:2px 12px;padding:10px 12px;border-radius:10px;background:#F3F5F6;font-family:'Inter',sans-serif}
.gl-pf-ligne+.gl-pf-ligne{margin-top:6px}
.gl-pf-d{font:700 14px/1.3 'Inter',sans-serif;font-variant-numeric:tabular-nums;color:#1D2424}
.gl-pf-l{font:400 14px/1.4 'Inter',sans-serif;color:#1D2424}
.gl-pf-sc{grid-column:2;font:400 12px/1.3 'Inter',sans-serif;color:#5E686B}
.gl-pf-libre{margin:0;padding:10px 12px;border-radius:10px;background:#F3F5F6;font:400 14px/1.5 'Inter',sans-serif;color:#1D2424}
@media (max-width:480px){.gl-pf-ligne{grid-template-columns:1fr}.gl-pf-sc{grid-column:1}}
.gl-js-pf .gl-js-pf-fermer:focus:not(:focus-visible){outline:none}
.gl-js-pf .gl-js-pf-fermer:focus-visible{outline:3px solid #DC3347;outline-offset:2px}

/* --- Barre d'achat collante (mobile seulement, après 700 px de défilement, masquée en bas de page et fiche ouverte) --- */
body #pg-barre{position:fixed}
body:not(.elementor-editor-active) #pg-barre{display:none!important}
@media (max-width:767px){body:not(.elementor-editor-active) #pg-barre.est-visible{display:flex!important}}

/* --- Temps forts cliquables, « Afficher plus » --- */
.gl-pg-tf-clic{cursor:pointer}
#temps-forts h3{pointer-events:none}

/* Cadrage des photos verticales dans les cartes 4:3 (le visage est en haut de l'image). Même valeur dans POS de programme.js pour la fiche. */
#anim-concert-disney-avec-yuno-owo img{object-position:50% 18%}
