/* Geek Life V4 — page Invités : ce que les éléments atomiques ne savent pas faire seuls.
   Mécanique d'affichage (fiche en surimpression, badge, filtres) + rendu des codes courts
   [gl_planning] et [gl_invites_stand], dont le contenu vient des fiches et des créneaux WordPress.
   Les sélecteurs portent tous une classe de la page : le thème stylise button/img globalement. */

/* --- Fiche invité en surimpression : cachée hors éditeur, ouverte par le script --- */
body:not(.elementor-editor-active) .gl-js-fiche{display:none!important}
body:not(.elementor-editor-active) .gl-js-fiche.est-ouverte{display:flex!important}
/* « body » devant : le conteneur Elementor (.e-con) impose position:relative à la même spécificité. */
body .gl-js-fiche{position:fixed;top:0;right:0;bottom:0;left:0;width:auto;z-index:99990;margin:0}
body .gl-js-fiche-voile{position:absolute;top:0;right:0;bottom:0;left:0;width:auto;height:auto;cursor:pointer}
body .gl-js-fiche-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-fiche{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-fiche-voile{display:none}
/* Têtes d'affiche en quinconce (maquette : 2ᵉ colonne décalée de 28 px, sauf sur mobile). */
@media (min-width:768px){*:nth-child(2n)>[id^="tete-"]{margin-top:28px}}
html.gl-fiche-ouverte,html.gl-fiche-ouverte body{overflow:hidden}
.gl-js-fiche-photo,.gl-js-fiche-photo img{display:block}
picture.gl-js-fiche-photo>img,picture[class*="e-image-base"]>img{display:block;width:100%;height:100%;object-fit:inherit;object-position:inherit;border-radius:inherit}
.gl-js-fiche-bio p{margin:0;font-size:15px;line-height:1.6;color:#3E4749;text-wrap:pretty}
.gl-js-fiche-bio p+p{margin-top:10px}
.gl-js-fiche-bio strong,.gl-js-fiche-bio b{color:#1D2424}
.gl-js-fiche-jours:empty{display:none!important}
.gl-fj-pill{height:28px;display:inline-flex;align-items:center;padding:0 10px;border-radius:999px;background:#DC3347;color:#FFFFFF;font:700 12px/1 'Inter',sans-serif}
.gl-fh-jour{display:flex;flex-direction:column;gap:6px}
.gl-fh-jour+.gl-fh-jour{margin-top:12px}
.gl-fh-titre{font:700 13px/1.3 'Inter',sans-serif;color:#5E686B}
.gl-fh-ligne{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;background:#F3F5F6}
.gl-fh-h{min-width:96px;font:700 14px/1.3 'Inter',sans-serif;font-variant-numeric:tabular-nums;color:#1D2424}
.gl-fh-l{flex:1;min-width:0;font:400 14px/1.4 'Inter',sans-serif;color:#1D2424}

/* --- Pastilles communes (planning, fiche, légende) --- */
.gl-pill{align-self:flex-start;min-height:22px;display:inline-flex;align-items:center;padding:3px 8px;border-radius:11px;box-sizing:border-box;font:700 11px/1.25 'Inter',sans-serif;white-space:nowrap}
.gl-pill-ded{background:#1E1E1C;color:#FFFFFF}
.gl-pill-vip{background:#FFCF33;color:#1D2424}
.gl-pill-scene{background:#E3E7E8;color:#1D2424}
.gl-pill-bientot{background:#F3F5F6;color:#3E4749;border:1px solid #D8DDDF}
.gl-pill-absent{background:#F3F5F6;color:#5E686B}
.gl-fh-ligne .gl-pill{height:24px;padding:0 9px;border-radius:999px}

/* --- Badge « Samedi uniquement » sur les cartes --- */
body:not(.elementor-editor-active) .gl-js-badge-jour{display:none!important}
body:not(.elementor-editor-active) .gl-js-badge-jour.est-visible{display:flex!important}

/* --- Cartes et filtres --- */
[data-gl-carte]{cursor:pointer}
[data-gl-carte]:focus-visible{outline:3px solid #DC3347;outline-offset:4px}
.gl-masque{display:none!important}
.gl-js-filtres{scrollbar-width:none}
.gl-js-filtres::-webkit-scrollbar{display:none}
.gl-js-filtres .gl-filtre[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-js-filtres .gl-filtre[type=button]:hover{background:#F3F5F6;color:#1D2424}
.gl-js-filtres .gl-filtre[type=button][aria-pressed=true]{background:#1E1E1C;border-color:#1E1E1C;color:#FFFFFF}
.gl-js-filtres .gl-filtre span{font-weight:500;opacity:.75}

/* --- Planning [gl_planning] --- */
.gl-pl{display:flex;flex-direction:column;gap:20px;font-family:'Inter',sans-serif;color:#1D2424}
.gl-pl-onglets{display:flex;gap:4px;padding:4px;border-radius:12px;background:#FFFFFF;align-self:flex-start}
.gl-pl-onglets .gl-pl-onglet[type=button]{height:48px;margin:0;padding:0 20px;border:0;border-radius:8px;background:transparent;color:#1D2424;font:700 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-pl-onglets .gl-pl-onglet[type=button]:hover{background:#F3F5F6;color:#1D2424}
.gl-pl-onglets .gl-pl-onglet[type=button][aria-selected=true]{background:#1E1E1C;color:#FFFFFF}
.gl-pl-onglet span+span{font-size:12px;font-weight:500;opacity:.8}
.gl-pl-legende{display:flex;flex-wrap:wrap;gap:8px 16px}
.gl-pl-legende .gl-pill{height:24px;padding:0 9px;border-radius:999px;font-size:12px}
.gl-pl-legende .gl-pill-scene{background:#FFFFFF;border:1.5px solid #1E1E1C}
.gl-pl-jour{display:flex;flex-direction:column;border-radius:20px;background:#FFFFFF;overflow:hidden}
.gl-pl-jour[hidden]{display:none}
.gl-pl-ligne{display:grid;grid-template-columns:240px minmax(0,1fr);gap:14px 24px;align-items:center;padding:18px clamp(16px,2vw,28px)}
.gl-pl-ligne+.gl-pl-ligne{border-top:1px solid #EEF0F1}
.gl-pl .gl-pl-invite[type=button]{margin:0;padding:0;border:0;background:transparent;display:flex;align-items:center;gap:14px;font:inherit;color:#1D2424;text-align:left;text-transform:none;letter-spacing:normal;white-space:normal;box-shadow:none;cursor:pointer}
.gl-pl .gl-pl-invite[type=button]:hover{background:transparent;color:#1D2424}
.gl-pl .gl-pl-invite[type=button]:hover strong{text-decoration:underline;text-underline-offset:3px}
/* Préfixe doublé : le kit Elementor (.elementor-kit-5 img{border-radius:0}) a la même spécificité et passe après. */
.gl-pl .gl-pl-invite img{width:56px;height:56px;flex:none;border-radius:50%;object-fit:cover;display:block;background:#E3E7E8}
.gl-pl-invite>span{display:flex;flex-direction:column;gap:2px;line-height:1.3}
.gl-pl-invite strong{font-size:17px;font-weight:700}
.gl-pl-invite strong+span{font-size:13px;color:#3E4749}
.gl-pl-creneaux{display:flex;flex-wrap:nowrap;gap:8px;min-width:0;overflow-x:auto;scrollbar-width:none}
.gl-pl-creneaux::-webkit-scrollbar{display:none}
.gl-pl-cell{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:12px;background:#F3F5F6;flex:1 1 0;min-width:92px;box-sizing:border-box}
.gl-pl-cell-vip{background:color-mix(in oklch,#FFCF33 22%,#FFFFFF)}
.gl-pl-cell strong{font-size:15px;font-variant-numeric:tabular-nums}
.gl-pl-vide{margin:0;padding:24px;border-radius:20px;background:#FFFFFF;font-size:16px;line-height:1.55;color:#3E4749}
@media (max-width:1099px){.gl-pl-ligne{grid-template-columns:190px minmax(0,1fr)}}
@media (max-width:759px){.gl-pl-ligne{grid-template-columns:1fr}.gl-pl-cell{min-width:112px}}

/* --- Pastilles des stands [gl_invites_stand] --- */
.gl-stand-pills{display:flex;flex-wrap:wrap;gap:8px}
.gl-stand-pills .gl-stand-pill[type=button]{min-height:44px;box-sizing:border-box;display:flex;align-items:center;gap:8px;margin:0;padding:4px 12px 4px 4px;border-radius:999px;border:1px solid #D8DDDF;background:#FFFFFF;color:#1D2424;font:600 13px/1.2 'Inter',sans-serif;text-transform:none;letter-spacing:normal;white-space:nowrap;box-shadow:none;cursor:pointer}
.gl-stand-pills .gl-stand-pill[type=button]:hover{background:#F3F5F6;color:#1D2424}
.gl-stand-pills .gl-stand-pill img{width:34px;height:34px;border-radius:50%;object-fit:cover;display:block;background:#E3E7E8}

/* Le SVG d'un e-svg est rendu en ligne : sans ceci il descend sous le texte voisin. */
.e-svg-base{line-height:0}.e-svg-base>svg{display:block}

/* États datés de la section « Fin des tarifs réduits » (copie des règles de la landing Blois ;
   la classe gl-etat-* est posée sur <html> par le script commun des en-têtes V4). */
html:not([class*="gl-etat-"]) .gl-js-etat-weekend:not(.gl-js-etat-prevente),html:not([class*="gl-etat-"]) .gl-js-etat-apres:not(.gl-js-etat-prevente){display:none}
html.gl-etat-prevente [class*="gl-js-etat-"]:not(.gl-js-etat-prevente),html.gl-etat-weekend [class*="gl-js-etat-"]:not(.gl-js-etat-weekend),html.gl-etat-apres [class*="gl-js-etat-"]:not(.gl-js-etat-apres){display:none!important}
/* FAQ : « + » fermée, « − » ouverte (mêmes règles que la landing). */
.gl-faq-item .e-accordion-item-icon,.gl-faq-item summary [class*="icon"]{transform:none!important;transition:none!important}
.gl-faq-item[open] .gl-faq-plus,.gl-faq-item:not([open]) .gl-faq-moins{display:none!important}
.gl-faq-item summary{list-style:none}
.gl-faq-item summary::-webkit-details-marker{display:none}
/* Le thème trace un contour sur tout bouton qui a le focus : le script place le focus sur la croix à l'ouverture.
   On le garde pour le clavier (:focus-visible), on le retire au doigt et à la souris. */
.gl-js-fiche .gl-js-fiche-fermer:focus:not(:focus-visible){outline:none}
.gl-js-fiche .gl-js-fiche-fermer:focus-visible{outline:3px solid #DC3347;outline-offset:2px}
