/* Geek Life — blog V4 (archive + article). Source : vault Geek Life, design/blog-v4/blog.css
   Ne contient que ce que les éléments V4 ne savent pas faire : équilibrage des titres, troncature des résumés,
   liste déroulante des villes, état actif des filtres, mise en forme du texte des articles (écrit dans WordPress),
   sommaire et barre de progression, bascule de mise en page à 1200 px (maquette). */

.e-heading-base { text-wrap: balance; }
.gl-blog-carte-extrait { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.gl-blog-carte .gl-blog-carte-img, picture.gl-blog-carte-img > img { transition: transform .35s ease; }
.gl-blog-carte:hover .gl-blog-carte-titre { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
picture[class*="gl-blog-carte-img"] > img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gl-cache { display: none !important; }

/* Filtres */
#gl-blog-filtres { scrollbar-width: none; }
#gl-blog-filtres::-webkit-scrollbar { display: none; }
#gl-blog-filtres .gl-blog-filtre.gl-actif { background-color: #1E1E1C !important; border-color: #1E1E1C !important; color: #FFFFFF !important; }

/* Bloc « Ta ville » : liste déroulante posée par le script */
.gl-js-ville-select select.gl-ville-select {
  width: 100%; height: 52px; box-sizing: border-box; margin: 0; padding: 0 44px 0 14px;
  border: 0 !important; border-radius: 12px; background: #FFFFFF !important; box-shadow: none;
  font: 600 16px/1 Inter, sans-serif; color: #1D2424; text-transform: none; letter-spacing: normal;
  appearance: none; -webkit-appearance: none; cursor: pointer;
}
.gl-js-ville-select select.gl-ville-select:focus-visible { outline: 2px solid #3BA6DE; outline-offset: 2px; }
.gl-js-ville-select .gl-ville-chevron { position: absolute; right: 16px; top: 50%; margin-top: -5px; line-height: 0; pointer-events: none; }

/* Texte de l'article (écrit dans l'éditeur WordPress) */
#gl-corps { font-family: Inter, sans-serif; font-size: 18px; line-height: 1.75; color: #1D2424; }
#gl-corps .elementor-widget-container > :first-child { margin-top: 0; }
#gl-corps p { margin: 0 0 22px; }
#gl-corps h1, #gl-corps h2, #gl-corps h3, #gl-corps h4, #gl-corps h5, #gl-corps h6,
#gl-corps h2 *, #gl-corps h3 *, #gl-corps h4 * { font-family: Inter, sans-serif !important; }
#gl-corps h2 { margin: 48px 0 20px; font-size: clamp(26px, 2.6vw, 34px); line-height: 1.15; font-weight: 800; letter-spacing: -0.025em; color: #1D2424; scroll-margin-top: 110px; }
#gl-corps h3 { margin: 32px 0 14px; font-size: 21px; line-height: 1.3; font-weight: 800; color: #1D2424; scroll-margin-top: 110px; }
#gl-corps h4 { margin: 26px 0 12px; font-size: 18px; line-height: 1.35; font-weight: 800; color: #1D2424; }
#gl-corps ul, #gl-corps ol { margin: 0 0 22px; padding-left: 22px; }
#gl-corps li { margin: 0 0 8px; }
#gl-corps li > ul, #gl-corps li > ol { margin: 8px 0 0; }
#gl-corps strong, #gl-corps b { font-weight: 700; }
#gl-corps a { color: #1D2424; text-decoration: underline; text-decoration-color: #DC3347; text-decoration-thickness: 2px; text-underline-offset: 3px; }
#gl-corps a:hover { color: #DC3347; }
#gl-corps blockquote { margin: 32px 0; padding: 4px 0 4px 22px; border-left: 4px solid #DC3347; font-size: clamp(21px, 2vw, 26px); line-height: 1.4; font-weight: 700; letter-spacing: -0.01em; font-style: normal; }
#gl-corps blockquote p:last-child { margin-bottom: 0; }
#gl-corps img { max-width: 100%; height: auto; border-radius: 14px; }
#gl-corps figure { margin: 32px 0; }
#gl-corps figcaption { margin-top: 8px; font-size: 14px; color: #3E4749; }
#gl-corps iframe { max-width: 100%; border-radius: 14px; }
#gl-corps table { width: 100%; margin: 0 0 22px; border-collapse: collapse; font-size: 16px; }
#gl-corps th, #gl-corps td { padding: 10px 12px; border-bottom: 1px solid #E3E7E8; text-align: left; vertical-align: top; }
@media (max-width: 767px) { #gl-corps { font-size: 17px; } }

/* Étiquettes */
.gl-blog-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.gl-blog-tag { height: 32px; display: inline-flex; align-items: center; padding: 0 12px; border-radius: 999px; background: #F3F5F6; font: 600 13px/1 Inter, sans-serif; color: #1D2424; }
.elementor-widget-shortcode:has(> .elementor-widget-container:empty) { display: none; }

/* Sommaire */
#gl-sommaire-liste a { display: block; padding: 8px 0 8px 14px; border-left: 2px solid #E3E7E8; font: 500 14px/1.4 Inter, sans-serif; color: #3E4749; text-decoration: none; }
#gl-sommaire-liste a:hover { color: #1D2424; }
#gl-sommaire-liste a.gl-actif { border-left-color: #DC3347; font-weight: 700; color: #1D2424; }
#gl-sommaire-mobile-liste a { display: block; padding: 10px 0; border-top: 1px solid #E3E7E8; font: 500 15px/1.4 Inter, sans-serif; color: #1D2424; text-decoration: none; }
#gl-sommaire-mobile-btn { cursor: pointer; }

/* Barre de progression de lecture */
#gl-progression { position: fixed; top: 0; left: 0; right: 0; height: 3px; background: #DC3347; transform: scaleX(0); transform-origin: 0 50%; z-index: 100000; pointer-events: none; }

/* Mise en page de l'article : 3 colonnes à partir de 1200 px (maquette), 1 colonne en dessous */
@media (max-width: 1199px) {
  #gl-article-grille { grid-template-columns: minmax(0, 1fr) !important; }
  #gl-sommaire, #gl-cta-cote { display: none !important; }
}
@media (min-width: 1200px) {
  #gl-sommaire-mobile, #gl-cta-bas { display: none !important; }
}
