/*
Theme Name:  GlitterCrush Magazine
Theme URI:   https://glittercrush.fr
Description: Webzine burlesque international — GlitterCrush. Magazine style, bilingue FR/EN, compatible Gutenberg, WooCommerce, Leaflet.js. Zéro page builder.
Version:     2.0.0
Author:      Ivy Pink Rocket
Author URI:  https://glittercrush.fr
Text Domain: glittercrush
Domain Path: /languages
Requires at least: 6.0
Requires PHP: 8.0
License:     GNU General Public License v2 or later
Tags:        magazine, burlesque, custom-colors, custom-fonts, woocommerce, multilingual
*/

/* ============================================================
   GLITTERCRUSH MAGAZINE v2.0
   Phrase d'accroche : Burlesque vibes, worldwide
   ============================================================
   1. CSS Custom Properties (Design Tokens)
   2. Reset & Base
   3. Layout magazine
   4. Header & Navigation
   5. Hero / Carousel
   6. Cards d'articles
   7. Fiches artistes
   8. Fiches écoles
   9. Fiches collectifs
  10. Événements
  11. Burlythèque / Archives avec carte
  12. Blog — rubriques
  13. Ressources PDF
  14. Boutique (WooCommerce)
  15. Newsletter archive
  16. À propos
  17. Sidebar & Widgets
  18. Footer
  19. Publi-communiqué
  20. Formulaires
  21. Responsive
  22. Accessibilité
  23. Carte Leaflet
   ============================================================ */

/* ─────────────────────────────────────────────────────────────
   1. CSS CUSTOM PROPERTIES
   ───────────────────────────────────────────────────────────── */
:root {
  --gc-color-primary:        #c8102e;
  --gc-color-primary-dark:   #9a0c23;
  --gc-color-primary-light:  #f0d0d5;
  --gc-color-secondary:      #1a1a1a;
  --gc-color-accent:         #d4af37;
  --gc-color-accent-light:   #f5e6a3;
  --gc-bg-body:              #ffffff;
  --gc-bg-card:              #f8f8f5;
  --gc-bg-card-hover:        #f0f0ea;
  --gc-bg-header:            #ffffff;
  --gc-bg-footer:            #1a1a1a;
  --gc-text-primary:         #1a1a1a;
  --gc-text-secondary:       #444444;
  --gc-text-muted:           #888888;
  --gc-text-on-primary:      #ffffff;
  --gc-text-link:            #c8102e;
  --gc-text-link-hover:      #d4af37;
  --gc-border:               #e8e8e0;
  --gc-border-accent:        #c8102e;
  --gc-font-heading:         'Playfair Display', Georgia, serif;
  --gc-font-body:            'Open Sans', Arial, sans-serif;
  --gc-font-ui:              'Montserrat', Arial, sans-serif;
  --gc-font-size-base:       16px;
  --gc-font-size-sm:         0.875rem;
  --gc-font-size-lg:         1.125rem;
  --gc-font-size-xl:         1.5rem;
  --gc-font-size-2xl:        2rem;
  --gc-font-size-3xl:        2.5rem;
  --gc-line-height:          1.7;
  --gc-spacing-xs:           0.25rem;
  --gc-spacing-sm:           0.5rem;
  --gc-spacing-md:           1rem;
  --gc-spacing-lg:           1.5rem;
  --gc-spacing-xl:           2rem;
  --gc-spacing-2xl:          3rem;
  --gc-spacing-3xl:          4rem;
  --gc-container-width:      1280px;
  --gc-sidebar-width:        320px;
  --gc-border-radius:        4px;
  --gc-border-radius-lg:     8px;
  --gc-shadow-sm:            0 1px 3px rgba(0,0,0,0.08);
  --gc-shadow-md:            0 4px 12px rgba(0,0,0,0.1);
  --gc-shadow-lg:            0 8px 24px rgba(0,0,0,0.12);
  --gc-transition:           all 0.25s ease;
}

/* ─────────────────────────────────────────────────────────────
   2. RESET & BASE
   ───────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: var(--gc-font-size-base); scroll-behavior: smooth; }
body { font-family: var(--gc-font-body); line-height: var(--gc-line-height); color: var(--gc-text-primary); background: var(--gc-bg-body); overflow-x: hidden; }
img, video { max-width: 100%; height: auto; display: block; }
a { color: var(--gc-text-link); text-decoration: none; transition: var(--gc-transition); }
a:hover { color: var(--gc-text-link-hover); }
h1,h2,h3,h4,h5,h6 { font-family: var(--gc-font-heading); font-weight: 700; line-height: 1.25; color: var(--gc-text-primary); margin-bottom: var(--gc-spacing-md); }
h1 { font-size: var(--gc-font-size-3xl); }
h2 { font-size: var(--gc-font-size-2xl); }
h3 { font-size: var(--gc-font-size-xl); }
h4 { font-size: var(--gc-font-size-lg); }
p { margin-bottom: var(--gc-spacing-md); color: var(--gc-text-secondary); }
ul, ol { padding-left: var(--gc-spacing-lg); margin-bottom: var(--gc-spacing-md); }
blockquote { border-left: 4px solid var(--gc-color-accent); padding: var(--gc-spacing-md) var(--gc-spacing-lg); margin: var(--gc-spacing-xl) 0; background: var(--gc-bg-card); font-style: italic; font-size: var(--gc-font-size-lg); }
hr { border: none; border-top: 1px solid var(--gc-border); margin: var(--gc-spacing-xl) 0; }

/* ─────────────────────────────────────────────────────────────
   3. LAYOUT
   ───────────────────────────────────────────────────────────── */
.gc-container { max-width: var(--gc-container-width); margin: 0 auto; padding: 0 var(--gc-spacing-lg); }
.gc-container--narrow { max-width: 860px; margin: 0 auto; padding: 0 var(--gc-spacing-lg); }
#page { display: flex; flex-direction: column; min-height: 100vh; }
#primary { display: grid; grid-template-columns: 1fr var(--gc-sidebar-width); gap: var(--gc-spacing-2xl); padding: var(--gc-spacing-2xl) 0; }
#primary.no-sidebar { grid-template-columns: 1fr; }
.site-main { min-width: 0; }
.gc-section-label { display: flex; align-items: center; gap: var(--gc-spacing-md); font-family: var(--gc-font-ui); font-size: var(--gc-font-size-sm); font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--gc-text-primary); margin-bottom: var(--gc-spacing-lg); }
.gc-section-label::before { content: ''; display: block; width: 4px; height: 20px; background: var(--gc-color-primary); border-radius: 2px; }
.gc-section-label::after { content: ''; flex: 1; height: 1px; background: var(--gc-border); }
.gc-grid { display: grid; gap: var(--gc-spacing-lg); }
.gc-grid--2 { grid-template-columns: repeat(2, 1fr); }
.gc-grid--3 { grid-template-columns: repeat(3, 1fr); }
.gc-grid--4 { grid-template-columns: repeat(4, 1fr); }

/* ─────────────────────────────────────────────────────────────
   4. HEADER & NAVIGATION
   ───────────────────────────────────────────────────────────── */
.site-header { background: var(--gc-bg-header); border-bottom: 2px solid var(--gc-color-primary); position: sticky; top: 0; z-index: 1000; box-shadow: var(--gc-shadow-sm); }
.gc-topbar { background: var(--gc-color-primary); padding: var(--gc-spacing-xs) 0; font-size: var(--gc-font-size-sm); font-family: var(--gc-font-ui); }
.gc-topbar__inner { display: flex; justify-content: space-between; align-items: center; gap: var(--gc-spacing-md); }
.gc-topbar__date { color: rgba(255,255,255,0.85); font-size: 0.8rem; }
.gc-topbar__tagline { color: rgba(255,255,255,0.95); font-size: 0.8rem; font-style: italic; letter-spacing: 0.03em; }
.gc-topbar__social { display: flex; gap: var(--gc-spacing-md); }
.gc-topbar__social a { color: rgba(255,255,255,0.9); font-size: 0.9rem; }
.gc-topbar__social a:hover { color: #fff; }
.gc-header-main { padding: var(--gc-spacing-md) 0; display: flex; justify-content: space-between; align-items: center; gap: var(--gc-spacing-xl); }
.site-branding { flex-shrink: 0; }
.site-title { font-family: var(--gc-font-heading); font-size: var(--gc-font-size-3xl); font-weight: 900; letter-spacing: -0.02em; margin: 0; }
.site-title a { color: var(--gc-text-primary); }
.site-description { font-size: var(--gc-font-size-sm); color: var(--gc-text-muted); font-style: italic; margin: 0; }
.gc-header-search form { display: flex; align-items: center; background: var(--gc-bg-card); border: 1px solid var(--gc-border); border-radius: var(--gc-border-radius); overflow: hidden; }
.gc-header-search input { background: none; border: none; padding: var(--gc-spacing-sm) var(--gc-spacing-md); color: var(--gc-text-primary); font-size: var(--gc-font-size-sm); width: 200px; outline: none; }
.gc-header-search button { background: var(--gc-color-primary); border: none; padding: var(--gc-spacing-sm) var(--gc-spacing-md); color: white; cursor: pointer; }
.gc-nav { background: var(--gc-bg-header); border-top: 1px solid var(--gc-border); }
.gc-nav__inner { display: flex; align-items: center; }
.main-navigation ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; }
.main-navigation li { position: relative; }
.main-navigation a { display: block; padding: var(--gc-spacing-md) var(--gc-spacing-lg); font-family: var(--gc-font-ui); font-size: var(--gc-font-size-sm); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--gc-text-secondary); border-bottom: 3px solid transparent; transition: var(--gc-transition); }
.main-navigation a:hover, .main-navigation .current-menu-item > a, .main-navigation .current-menu-ancestor > a { color: var(--gc-color-primary); border-bottom-color: var(--gc-color-primary); }
.main-navigation .sub-menu { position: absolute; top: 100%; left: 0; background: #fff; border: 1px solid var(--gc-border); border-top: 2px solid var(--gc-color-primary); min-width: 220px; display: none; flex-direction: column; box-shadow: var(--gc-shadow-lg); z-index: 100; }
.main-navigation li:hover > .sub-menu { display: flex; }
.main-navigation .sub-menu a { padding: var(--gc-spacing-sm) var(--gc-spacing-lg); border-bottom: 1px solid var(--gc-border); font-size: var(--gc-font-size-sm); font-weight: 400; text-transform: none; color: var(--gc-text-secondary); }
.main-navigation .sub-menu a:hover { color: var(--gc-color-primary); background: var(--gc-bg-card); }
.menu-toggle { display: none; background: none; border: 1px solid var(--gc-border); color: var(--gc-text-primary); padding: var(--gc-spacing-sm) var(--gc-spacing-md); cursor: pointer; border-radius: var(--gc-border-radius); }
.gc-lang-switch { display: flex; gap: 4px; align-items: center; margin-left: auto; padding: 0 var(--gc-spacing-md); }
.gc-lang-switch a { font-size: 0.75rem; font-family: var(--gc-font-ui); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--gc-text-muted); padding: 2px 6px; border-radius: 3px; }
.gc-lang-switch a.active, .gc-lang-switch a:hover { color: var(--gc-color-primary); }

/* ─────────────────────────────────────────────────────────────
   5. HERO / CAROUSEL
   ───────────────────────────────────────────────────────────── */
.gc-hero { position: relative; overflow: hidden; background: var(--gc-bg-card); margin-bottom: var(--gc-spacing-2xl); }
.gc-hero__image { position: relative; width: 100%; aspect-ratio: 16/7; overflow: hidden; }
.gc-hero__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.gc-hero:hover .gc-hero__image img { transform: scale(1.03); }
.gc-hero__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.3) 50%, transparent 100%); }
.gc-hero__content { position: absolute; bottom: 0; left: 0; right: 0; padding: var(--gc-spacing-2xl) var(--gc-spacing-xl); }
.gc-hero__title { font-size: clamp(1.8rem, 4vw, 3rem); font-weight: 900; color: #fff; margin-bottom: var(--gc-spacing-md); max-width: 800px; }
.gc-hero__title a { color: inherit; }
.gc-hero__meta { display: flex; align-items: center; gap: var(--gc-spacing-lg); font-size: var(--gc-font-size-sm); color: rgba(255,255,255,0.8); font-family: var(--gc-font-ui); }
.gc-carousel-dots { display: flex; gap: 6px; margin-top: var(--gc-spacing-md); }
.gc-carousel-dot { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,0.4); cursor: pointer; transition: var(--gc-transition); }
.gc-carousel-dot.active { background: var(--gc-color-accent); width: 20px; border-radius: 4px; }

/* ─────────────────────────────────────────────────────────────
   6. CARDS D'ARTICLES
   ───────────────────────────────────────────────────────────── */
.gc-post-card { background: #fff; border: 1px solid var(--gc-border); border-radius: var(--gc-border-radius-lg); overflow: hidden; transition: var(--gc-transition); display: flex; flex-direction: column; }
.gc-post-card:hover { border-color: var(--gc-color-primary); box-shadow: var(--gc-shadow-md); transform: translateY(-3px); }
.gc-post-card__thumb { position: relative; overflow: hidden; aspect-ratio: 16/9; }
.gc-post-card__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.gc-post-card:hover .gc-post-card__thumb img { transform: scale(1.05); }
.gc-format-badge { position: absolute; top: var(--gc-spacing-sm); left: var(--gc-spacing-sm); background: var(--gc-color-primary); color: white; font-size: 0.7rem; font-weight: 700; font-family: var(--gc-font-ui); text-transform: uppercase; padding: 3px 8px; border-radius: var(--gc-border-radius); letter-spacing: 0.05em; }
.gc-format-badge--video { background: #e63946; }
.gc-format-badge--audio { background: #457b9d; }
.gc-format-badge--gallery { background: var(--gc-color-accent); color: #000; }
.gc-post-card__body { padding: var(--gc-spacing-lg); flex: 1; display: flex; flex-direction: column; }
.gc-cat-badge { font-family: var(--gc-font-ui); font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; padding: 3px 8px; border-radius: var(--gc-border-radius); background: var(--gc-color-primary); color: #fff; transition: var(--gc-transition); text-decoration: none; }
.gc-cat-badge:hover { background: var(--gc-color-accent); color: #000; }
.gc-cat-badge--accent { background: var(--gc-color-accent); color: #000; }
.gc-post-card__cats { display: flex; flex-wrap: wrap; gap: var(--gc-spacing-xs); margin-bottom: var(--gc-spacing-sm); }
.gc-post-card__title { font-size: 1.1rem; font-weight: 700; line-height: 1.3; margin-bottom: var(--gc-spacing-sm); flex: 1; }
.gc-post-card__title a { color: var(--gc-text-primary); }
.gc-post-card__title a:hover { color: var(--gc-color-primary); }
.gc-post-card__excerpt { font-size: var(--gc-font-size-sm); color: var(--gc-text-muted); line-height: 1.6; margin-bottom: var(--gc-spacing-md); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.gc-post-card__meta { display: flex; align-items: center; gap: var(--gc-spacing-md); font-size: var(--gc-font-size-sm); color: var(--gc-text-muted); font-family: var(--gc-font-ui); margin-top: auto; padding-top: var(--gc-spacing-md); border-top: 1px solid var(--gc-border); }
.gc-post-card__meta .author-avatar { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; border: 2px solid var(--gc-color-primary); }
.gc-post-card--horizontal { flex-direction: row; align-items: stretch; }
.gc-post-card--horizontal .gc-post-card__thumb { width: 140px; flex-shrink: 0; aspect-ratio: auto; }
.gc-post-card--mini { flex-direction: row; gap: var(--gc-spacing-sm); align-items: center; background: none; border: none; border-radius: 0; border-bottom: 1px solid var(--gc-border); padding: var(--gc-spacing-sm) 0; }
.gc-post-card--mini:hover { transform: none; box-shadow: none; }
.gc-post-card--mini .gc-post-card__thumb { width: 80px; height: 60px; flex-shrink: 0; border-radius: var(--gc-border-radius); aspect-ratio: auto; }
.gc-post-card--mini .gc-post-card__body { padding: 0; }
.gc-post-card--mini .gc-post-card__title { font-size: 0.875rem; }
.gc-post-card--mini .gc-post-card__meta { border-top: none; padding-top: 0; font-size: 0.75rem; }

/* ─────────────────────────────────────────────────────────────
   7. FICHES ARTISTES
   ───────────────────────────────────────────────────────────── */
.gc-artist-card { background: #fff; border: 1px solid var(--gc-border); border-radius: var(--gc-border-radius-lg); overflow: hidden; transition: var(--gc-transition); position: relative; }
.gc-artist-card:hover { border-color: var(--gc-color-accent); box-shadow: var(--gc-shadow-md); transform: translateY(-4px); }
.gc-artist-card__photo { position: relative; aspect-ratio: 3/4; overflow: hidden; }
.gc-artist-card__photo img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform 0.5s ease; }
.gc-artist-card:hover .gc-artist-card__photo img { transform: scale(1.06); }
.gc-artist-card__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, transparent 55%); }
.gc-artist-card__info { position: absolute; bottom: 0; left: 0; right: 0; padding: var(--gc-spacing-lg); }
.gc-artist-card__name { font-family: var(--gc-font-heading); font-size: 1.2rem; font-weight: 700; color: #fff; margin-bottom: var(--gc-spacing-xs); }
.gc-artist-card__tags { display: flex; flex-wrap: wrap; gap: var(--gc-spacing-xs); margin-top: var(--gc-spacing-sm); }
.gc-artist-profile { display: grid; grid-template-columns: 380px 1fr; gap: var(--gc-spacing-2xl); align-items: start; }
.gc-artist-profile__photo-wrap { position: sticky; top: 100px; }
.gc-photo-credit { font-size: 0.75rem; color: var(--gc-text-muted); font-style: italic; padding: 4px 0; border-top: 1px solid var(--gc-border); margin-top: 4px; }

/* ─────────────────────────────────────────────────────────────
   8. FICHES ÉCOLES
   ───────────────────────────────────────────────────────────── */
.gc-school-profile { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gc-spacing-2xl); }
.gc-checks-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 12px; }
.gc-check-item { display: flex; align-items: flex-start; gap: 6px; padding: 4px 0; }
.gc-check-item.yes .gc-check-icon { color: #2d7a4f; flex-shrink: 0; }
.gc-check-item.no .gc-check-icon { color: var(--gc-text-muted); flex-shrink: 0; }
.gc-check-item.yes .gc-check-label { color: var(--gc-text-primary); font-size: 0.875rem; }
.gc-check-item.no .gc-check-label { color: var(--gc-text-muted); font-size: 0.875rem; }
.gc-pmr-badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: 4px; font-size: 0.75rem; font-weight: 500; background: #e8f4fd; border: 0.5px solid #90c8e8; color: #1a6a9a; }

/* ─────────────────────────────────────────────────────────────
   9. FICHES COLLECTIFS
   ───────────────────────────────────────────────────────────── */
.gc-collectif-profile { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gc-spacing-2xl); }
.gc-membres-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--gc-spacing-md); }
.gc-membre-card { border: 1px solid var(--gc-border); border-radius: var(--gc-border-radius-lg); overflow: hidden; text-align: center; cursor: pointer; transition: var(--gc-transition); }
.gc-membre-card:hover { border-color: var(--gc-color-accent); }
.gc-membre-card__photo { height: 80px; background: var(--gc-bg-card); display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; }
.gc-membre-card__photo img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.gc-membre-card__role { position: absolute; bottom: 0; left: 0; right: 0; background: rgba(0,0,0,0.65); color: #fff; font-size: 0.65rem; padding: 2px 4px; text-align: center; }
.gc-membre-card__name { font-size: 0.75rem; font-weight: 500; color: var(--gc-text-primary); padding: 5px 4px 2px; }
.gc-membre-card__insta { font-size: 0.65rem; color: var(--gc-color-primary); padding-bottom: 4px; display: flex; align-items: center; justify-content: center; gap: 2px; text-decoration: none; }
.gc-membre-card__link { font-size: 0.65rem; color: var(--gc-color-accent); padding-bottom: 4px; display: flex; align-items: center; justify-content: center; gap: 2px; text-decoration: none; font-weight: 600; }
.gc-timeline { position: relative; padding-left: 24px; }
.gc-timeline::before { content: ''; position: absolute; left: 6px; top: 4px; bottom: 4px; width: 1px; background: var(--gc-border); }
.gc-timeline-item { position: relative; padding: 0 0 16px 16px; }
.gc-timeline-dot { position: absolute; left: -18px; top: 4px; width: 10px; height: 10px; border-radius: 50%; background: var(--gc-color-accent); border: 2px solid #fff; box-shadow: 0 0 0 2px var(--gc-border); }
.gc-timeline-year { font-size: 0.75rem; font-weight: 700; color: var(--gc-color-accent); font-family: var(--gc-font-ui); margin-bottom: 2px; }
.gc-timeline-text { font-size: 0.875rem; color: var(--gc-text-secondary); line-height: 1.5; }
.gc-creation-row { display: flex; gap: var(--gc-spacing-md); padding: var(--gc-spacing-md); background: var(--gc-bg-card); border-radius: var(--gc-border-radius-lg); border: 1px solid var(--gc-border); align-items: flex-start; margin-bottom: var(--gc-spacing-sm); }
.gc-creation-year { font-family: var(--gc-font-heading); font-size: 1.4rem; font-weight: 500; color: var(--gc-text-muted); min-width: 48px; flex-shrink: 0; line-height: 1; }
.gc-creation-title { font-size: 0.875rem; font-weight: 600; color: var(--gc-text-primary); margin-bottom: 3px; }
.gc-creation-desc { font-size: 0.8rem; color: var(--gc-text-muted); line-height: 1.5; }

/* ─────────────────────────────────────────────────────────────
  10. ÉVÉNEMENTS
   ───────────────────────────────────────────────────────────── */
.gc-event-card { display: flex; gap: var(--gc-spacing-lg); padding: var(--gc-spacing-lg); background: #fff; border: 1px solid var(--gc-border); border-radius: var(--gc-border-radius-lg); transition: var(--gc-transition); }
.gc-event-card:hover { border-color: var(--gc-color-primary); box-shadow: var(--gc-shadow-md); }
.gc-event-card__date { display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--gc-color-primary); color: white; border-radius: var(--gc-border-radius); min-width: 64px; padding: var(--gc-spacing-sm); text-align: center; flex-shrink: 0; }
.gc-event-card__day { font-size: 2rem; font-weight: 900; line-height: 1; }
.gc-event-card__month { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.1em; font-family: var(--gc-font-ui); }
.gc-event-card__body { flex: 1; min-width: 0; }
.gc-event-card__title { font-size: 1rem; font-weight: 700; margin-bottom: var(--gc-spacing-xs); }
.gc-event-card__title a { color: var(--gc-text-primary); }
.gc-event-card__title a:hover { color: var(--gc-color-primary); }
.gc-event-card__meta { display: flex; flex-wrap: wrap; gap: var(--gc-spacing-md); font-size: var(--gc-font-size-sm); color: var(--gc-text-muted); font-family: var(--gc-font-ui); }
.gc-event-recurrent-badge { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; background: var(--gc-bg-card); border: 1px solid var(--gc-border); border-radius: 20px; font-size: 0.7rem; font-family: var(--gc-font-ui); color: var(--gc-text-muted); }

/* ─────────────────────────────────────────────────────────────
  11. ARCHIVES AVEC CARTE (BURLYTHÈQUE, BURLY SCHOOL, COLLECTIFS)
   ───────────────────────────────────────────────────────────── */
.gc-map-section { position: relative; border-bottom: 1px solid var(--gc-border); }
.gc-map-switch-bar { padding: var(--gc-spacing-sm) var(--gc-spacing-md); background: var(--gc-bg-card); border-bottom: 1px solid var(--gc-border); display: flex; align-items: center; justify-content: space-between; gap: var(--gc-spacing-md); flex-wrap: wrap; }
.gc-map-switch { display: flex; background: #fff; border: 1px solid var(--gc-border); border-radius: var(--gc-border-radius-lg); overflow: hidden; }
.gc-map-switch__btn { padding: 6px 16px; font-size: 0.8rem; font-weight: 600; font-family: var(--gc-font-ui); color: var(--gc-text-muted); cursor: pointer; background: none; border: none; transition: var(--gc-transition); }
.gc-map-switch__btn.active { background: var(--gc-text-primary); color: #fff; }
.gc-map-hint { font-size: 0.75rem; color: var(--gc-text-muted); font-style: italic; }
#gc-map-monde, #gc-map-france { height: 340px; width: 100%; }
.gc-map-legend { display: flex; align-items: center; gap: var(--gc-spacing-md); font-size: 0.75rem; color: var(--gc-text-muted); padding: var(--gc-spacing-sm) var(--gc-spacing-md); background: var(--gc-bg-card); border-top: 1px solid var(--gc-border); }
.gc-map-legend-item { display: flex; align-items: center; gap: 4px; }
.gc-map-pin-sample { width: 10px; height: 10px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.2); }

/* ─────────────────────────────────────────────────────────────
  12. BLOG — RUBRIQUES
   ───────────────────────────────────────────────────────────── */
.gc-rubrique-hero { padding: var(--gc-spacing-xl) 0; border-bottom: 1px solid var(--gc-border); margin-bottom: var(--gc-spacing-xl); display: flex; align-items: flex-start; gap: var(--gc-spacing-lg); }
.gc-rubrique-icon { font-size: 2.5rem; flex-shrink: 0; }
.gc-rubrique-title { font-family: var(--gc-font-heading); font-size: var(--gc-font-size-2xl); font-weight: 700; color: var(--gc-text-primary); margin-bottom: 4px; }
.gc-rubrique-desc { font-size: 1rem; color: var(--gc-text-secondary); line-height: 1.65; max-width: 600px; }
.gc-blog-list-item { display: flex; gap: var(--gc-spacing-lg); padding: var(--gc-spacing-lg); border: 1px solid var(--gc-border); border-radius: var(--gc-border-radius-lg); background: #fff; margin-bottom: var(--gc-spacing-md); transition: var(--gc-transition); }
.gc-blog-list-item:hover { border-color: var(--gc-color-primary); box-shadow: var(--gc-shadow-sm); }
.gc-blog-list-item__thumb { width: 100px; height: 70px; border-radius: var(--gc-border-radius); overflow: hidden; flex-shrink: 0; }
.gc-blog-list-item__thumb img { width: 100%; height: 100%; object-fit: cover; }
.gc-podcast-duration { display: inline-flex; align-items: center; gap: 3px; background: var(--gc-bg-card); padding: 2px 8px; border-radius: 20px; font-size: 0.75rem; font-family: var(--gc-font-ui); border: 1px solid var(--gc-border); }

/* ─────────────────────────────────────────────────────────────
  13. RESSOURCES PDF
   ───────────────────────────────────────────────────────────── */
.gc-resource-card { border: 1px solid var(--gc-border); border-radius: var(--gc-border-radius-lg); overflow: hidden; background: #fff; display: flex; flex-direction: column; transition: var(--gc-transition); }
.gc-resource-card:hover { border-color: var(--gc-color-primary); box-shadow: var(--gc-shadow-md); }
.gc-resource-card__cover { height: 120px; background: var(--gc-bg-card); display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 6px; position: relative; }
.gc-access-badge { position: absolute; top: 8px; right: 8px; display: inline-flex; align-items: center; gap: 3px; padding: 3px 8px; border-radius: 3px; font-size: 0.7rem; font-weight: 600; font-family: var(--gc-font-ui); text-transform: uppercase; }
.gc-access-badge--free { background: #f0faf4; border: 1px solid #2d7a4f; color: #2d7a4f; }
.gc-access-badge--paid { background: #faf3e0; border: 1px solid var(--gc-color-accent); color: #7a5c00; }
.gc-access-badge--newsletter { background: #e8f4fd; border: 1px solid #1a6a9a; color: #1a6a9a; }
.gc-resource-card__body { padding: var(--gc-spacing-md); flex: 1; display: flex; flex-direction: column; }
.gc-resource-card__footer { padding: var(--gc-spacing-sm) var(--gc-spacing-md); border-top: 1px solid var(--gc-border); display: flex; align-items: center; justify-content: space-between; }

/* ─────────────────────────────────────────────────────────────
  14. WOOCOMMERCE
   ───────────────────────────────────────────────────────────── */
.woocommerce .gc-container { max-width: var(--gc-container-width); margin: 0 auto; padding: 0 var(--gc-spacing-lg); }
.woocommerce ul.products li.product { background: #fff; border: 1px solid var(--gc-border); border-radius: var(--gc-border-radius-lg); overflow: hidden; transition: var(--gc-transition); }
.woocommerce ul.products li.product:hover { border-color: var(--gc-color-primary); box-shadow: var(--gc-shadow-md); transform: translateY(-3px); }
.woocommerce ul.products li.product .price { color: var(--gc-color-primary); font-family: var(--gc-font-ui); font-weight: 700; }
.woocommerce .button, .woocommerce button.button { background: var(--gc-color-primary); color: #fff; font-family: var(--gc-font-ui); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; border-radius: var(--gc-border-radius); padding: 0.65rem 1.5rem; border: none; cursor: pointer; transition: var(--gc-transition); }
.woocommerce .button:hover, .woocommerce button.button:hover { background: var(--gc-color-primary-dark); color: #fff; }
.woocommerce .wc-block-components-checkout-order-summary { background: var(--gc-bg-card); border-radius: var(--gc-border-radius-lg); }

/* ─────────────────────────────────────────────────────────────
  15. NEWSLETTER ARCHIVE
   ───────────────────────────────────────────────────────────── */
.gc-newsletter-card { display: flex; gap: 0; border: 1px solid var(--gc-border); border-radius: var(--gc-border-radius-lg); overflow: hidden; background: #fff; transition: var(--gc-transition); margin-bottom: var(--gc-spacing-md); cursor: pointer; }
.gc-newsletter-card:hover { border-color: var(--gc-color-primary); box-shadow: var(--gc-shadow-sm); }
.gc-newsletter-card__date { background: var(--gc-bg-card); border-right: 1px solid var(--gc-border); padding: var(--gc-spacing-md) var(--gc-spacing-sm); display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 64px; flex-shrink: 0; }
.gc-newsletter-card__day { font-family: var(--gc-font-heading); font-size: 1.5rem; font-weight: 500; line-height: 1; color: var(--gc-text-primary); }
.gc-newsletter-card__month { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--gc-text-muted); }
.gc-newsletter-card__year { font-size: 0.7rem; color: var(--gc-text-muted); }
.gc-newsletter-card__body { padding: var(--gc-spacing-md); flex: 1; }
.gc-newsletter-card__num { font-size: 0.75rem; font-weight: 700; font-family: var(--gc-font-ui); color: var(--gc-color-primary); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 3px; }
.gc-newsletter-card__title { font-family: var(--gc-font-heading); font-size: 1rem; font-weight: 600; color: var(--gc-text-primary); line-height: 1.3; margin-bottom: 4px; }
.gc-newsletter-card__excerpt { font-size: 0.8rem; color: var(--gc-text-muted); line-height: 1.5; }

/* ─────────────────────────────────────────────────────────────
  16. À PROPOS
   ───────────────────────────────────────────────────────────── */
.gc-about-grid { display: grid; grid-template-columns: 200px 1fr; gap: var(--gc-spacing-2xl); align-items: start; }
.gc-about-photo { border-radius: var(--gc-border-radius-lg); overflow: hidden; }
.gc-valeurs-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gc-spacing-lg); }
.gc-valeur-card { padding: var(--gc-spacing-lg); background: var(--gc-bg-card); border-radius: var(--gc-border-radius-lg); border: 1px solid var(--gc-border); text-align: center; }
.gc-valeur-icon { font-size: 2rem; margin-bottom: var(--gc-spacing-sm); }
.gc-chiffres-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--gc-border); border-bottom: 1px solid var(--gc-border); }
.gc-chiffre { padding: var(--gc-spacing-xl); text-align: center; border-right: 1px solid var(--gc-border); }
.gc-chiffre:last-child { border-right: none; }
.gc-chiffre__num { font-family: var(--gc-font-heading); font-size: 2.5rem; font-weight: 500; color: var(--gc-text-primary); line-height: 1; }
.gc-chiffre__label { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--gc-text-muted); margin-top: 4px; font-family: var(--gc-font-ui); }

/* ─────────────────────────────────────────────────────────────
  17. SIDEBAR & WIDGETS
   ───────────────────────────────────────────────────────────── */
.gc-sidebar { min-width: 0; }
.gc-widget { background: #fff; border: 1px solid var(--gc-border); border-radius: var(--gc-border-radius-lg); padding: var(--gc-spacing-lg); margin-bottom: var(--gc-spacing-xl); }
.gc-widget__title { font-family: var(--gc-font-ui); font-size: var(--gc-font-size-sm); font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--gc-text-primary); padding-bottom: var(--gc-spacing-md); margin-bottom: var(--gc-spacing-md); border-bottom: 2px solid var(--gc-color-primary); }
.gc-tags-cloud { display: flex; flex-wrap: wrap; gap: var(--gc-spacing-xs); }
.gc-tags-cloud a { font-size: var(--gc-font-size-sm); padding: 4px 10px; border: 1px solid var(--gc-border); border-radius: var(--gc-border-radius); color: var(--gc-text-secondary); transition: var(--gc-transition); }
.gc-tags-cloud a:hover { background: var(--gc-color-primary); border-color: var(--gc-color-primary); color: white; }

/* ─────────────────────────────────────────────────────────────
  18. FOOTER
   ───────────────────────────────────────────────────────────── */
.site-footer { background: var(--gc-bg-footer); border-top: 2px solid var(--gc-color-primary); margin-top: auto; }
.gc-footer-main { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: var(--gc-spacing-2xl); padding: var(--gc-spacing-3xl) 0; }
.gc-footer-brand .site-title { font-size: var(--gc-font-size-2xl); }
.gc-footer-brand .site-title a { color: #fff; }
.gc-footer-brand p { font-size: var(--gc-font-size-sm); color: rgba(255,255,255,0.5); margin-top: var(--gc-spacing-md); }
.gc-footer-col__title { font-family: var(--gc-font-ui); font-size: var(--gc-font-size-sm); font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: #fff; margin-bottom: var(--gc-spacing-lg); padding-bottom: var(--gc-spacing-sm); border-bottom: 2px solid var(--gc-color-primary); }
.gc-footer-col ul { list-style: none; padding: 0; }
.gc-footer-col ul li { padding: var(--gc-spacing-xs) 0; }
.gc-footer-col ul a { font-size: var(--gc-font-size-sm); color: rgba(255,255,255,0.5); }
.gc-footer-col ul a:hover { color: var(--gc-color-accent); }
.gc-footer-socials { display: flex; gap: var(--gc-spacing-sm); margin-top: var(--gc-spacing-lg); }
.gc-footer-social-btn { width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.15); display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.5); font-size: 1rem; transition: var(--gc-transition); }
.gc-footer-social-btn:hover { background: var(--gc-color-primary); border-color: var(--gc-color-primary); color: white; }
.gc-footer-bottom { border-top: 1px solid rgba(255,255,255,0.1); padding: var(--gc-spacing-lg) 0; display: flex; justify-content: space-between; align-items: center; font-size: var(--gc-font-size-sm); color: rgba(255,255,255,0.3); font-family: var(--gc-font-ui); flex-wrap: wrap; gap: var(--gc-spacing-md); }
.gc-footer-bottom a { color: rgba(255,255,255,0.3); }
.gc-footer-bottom a:hover { color: var(--gc-color-accent); }

/* ─────────────────────────────────────────────────────────────
  19. PUBLI-COMMUNIQUÉ
   ───────────────────────────────────────────────────────────── */
.gc-publi-bar { padding: 7px var(--gc-spacing-md); background: #faf7f0; border-bottom: 1px solid #e0d5b8; display: flex; align-items: center; justify-content: space-between; gap: var(--gc-spacing-md); }
.gc-publi-badge { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; background: #fff; border: 1px solid #c8a84b; border-radius: var(--gc-border-radius); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: #7a5c00; white-space: nowrap; flex-shrink: 0; font-family: var(--gc-font-ui); }
.gc-publi-text { font-size: 0.75rem; color: #8a7a50; font-style: italic; line-height: 1.4; }

/* ─────────────────────────────────────────────────────────────
  20. FORMULAIRES
   ───────────────────────────────────────────────────────────── */
.gc-form-field { margin-bottom: var(--gc-spacing-lg); }
.gc-form-field label { display: block; font-size: var(--gc-font-size-sm); font-weight: 600; color: var(--gc-text-secondary); margin-bottom: var(--gc-spacing-xs); font-family: var(--gc-font-ui); }
.gc-form-field input, .gc-form-field textarea, .gc-form-field select { width: 100%; background: #fff; border: 1px solid var(--gc-border); border-radius: var(--gc-border-radius); padding: var(--gc-spacing-sm) var(--gc-spacing-md); color: var(--gc-text-primary); font-size: 1rem; font-family: var(--gc-font-body); transition: var(--gc-transition); outline: none; }
.gc-form-field input:focus, .gc-form-field textarea:focus, .gc-form-field select:focus { border-color: var(--gc-color-primary); box-shadow: 0 0 0 3px rgba(200,16,46,0.1); }
.gc-newsletter-bar { background: var(--gc-color-primary); padding: var(--gc-spacing-xl) 0; text-align: center; }
.gc-newsletter-bar__title { color: white; font-size: var(--gc-font-size-2xl); margin-bottom: var(--gc-spacing-xs); }
.gc-newsletter-bar form { display: flex; max-width: 500px; margin: 0 auto; gap: var(--gc-spacing-sm); }
.gc-newsletter-bar input { flex: 1; padding: var(--gc-spacing-sm) var(--gc-spacing-lg); border: none; border-radius: var(--gc-border-radius); background: rgba(255,255,255,0.2); color: white; }
.gc-newsletter-bar input::placeholder { color: rgba(255,255,255,0.7); }

/* ─────────────────────────────────────────────────────────────
  21. BOUTONS
   ───────────────────────────────────────────────────────────── */
.gc-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--gc-spacing-sm); padding: 0.65rem 1.5rem; font-family: var(--gc-font-ui); font-size: var(--gc-font-size-sm); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; border: none; border-radius: var(--gc-border-radius); cursor: pointer; transition: var(--gc-transition); text-decoration: none; line-height: 1; }
.gc-btn--primary { background: var(--gc-color-primary); color: white; }
.gc-btn--primary:hover { background: var(--gc-color-primary-dark); color: white; transform: translateY(-1px); box-shadow: var(--gc-shadow-md); }
.gc-btn--outline { background: transparent; color: var(--gc-text-primary); border: 1px solid var(--gc-border); }
.gc-btn--outline:hover { border-color: var(--gc-color-primary); color: var(--gc-color-primary); }
.gc-btn--gold { background: var(--gc-color-accent); color: #000; }
.gc-btn--gold:hover { opacity: 0.9; color: #000; transform: translateY(-1px); }
.gc-social-link { display: inline-flex; align-items: center; gap: var(--gc-spacing-xs); padding: var(--gc-spacing-xs) var(--gc-spacing-md); background: var(--gc-bg-card); border: 1px solid var(--gc-border); border-radius: var(--gc-border-radius); font-size: var(--gc-font-size-sm); font-family: var(--gc-font-ui); color: var(--gc-text-secondary); transition: var(--gc-transition); text-decoration: none; }
.gc-social-link:hover { background: var(--gc-color-primary); border-color: var(--gc-color-primary); color: white; }
.gc-social-link.booking { background: var(--gc-text-primary); color: #fff; border-color: var(--gc-text-primary); }
.gc-pagination { display: flex; justify-content: center; gap: var(--gc-spacing-xs); margin-top: var(--gc-spacing-2xl); }
.gc-pagination a, .gc-pagination span { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: #fff; border: 1px solid var(--gc-border); border-radius: var(--gc-border-radius); font-family: var(--gc-font-ui); font-size: var(--gc-font-size-sm); font-weight: 600; color: var(--gc-text-secondary); transition: var(--gc-transition); }
.gc-pagination a:hover, .gc-pagination .current { background: var(--gc-color-primary); border-color: var(--gc-color-primary); color: white; }

/* ─────────────────────────────────────────────────────────────
  22. RESPONSIVE
   ───────────────────────────────────────────────────────────── */
@media (max-width: 1200px) {
  :root { --gc-container-width: 1024px; }
  .gc-footer-main { grid-template-columns: 1fr 1fr; }
  .gc-artist-profile { grid-template-columns: 280px 1fr; }
}
@media (max-width: 960px) {
  .gc-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .gc-membres-grid { grid-template-columns: repeat(3, 1fr); }
  .gc-chiffres-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  :root { --gc-font-size-base: 15px; --gc-spacing-2xl: 2rem; --gc-spacing-3xl: 2.5rem; }
  #primary { grid-template-columns: 1fr; padding: var(--gc-spacing-lg) 0; }
  .gc-sidebar { order: 2; }
  .gc-grid--2, .gc-grid--3, .gc-grid--4 { grid-template-columns: 1fr; }
  .gc-footer-main { grid-template-columns: 1fr 1fr; gap: var(--gc-spacing-xl); }
  .main-navigation { display: none; }
  .main-navigation.toggled { display: block; }
  .main-navigation ul { flex-direction: column; }
  .main-navigation .sub-menu { position: static; display: none; box-shadow: none; border: none; padding-left: var(--gc-spacing-lg); }
  .menu-toggle { display: block; }
  .gc-hero__title { font-size: 1.6rem; }
  .gc-artist-profile { grid-template-columns: 1fr; }
  .gc-school-profile, .gc-collectif-profile { grid-template-columns: 1fr; }
  .gc-about-grid { grid-template-columns: 1fr; }
  .gc-valeurs-grid { grid-template-columns: 1fr; }
  .gc-chiffres-grid { grid-template-columns: repeat(2, 1fr); }
  .gc-membres-grid { grid-template-columns: repeat(2, 1fr); }
  .gc-newsletter-bar form { flex-direction: column; }
}
@media (max-width: 480px) {
  .gc-footer-main { grid-template-columns: 1fr; }
  .gc-footer-bottom { flex-direction: column; text-align: center; }
  .gc-chiffres-grid { grid-template-columns: 1fr; }
}

/* ─────────────────────────────────────────────────────────────
  23. ACCESSIBILITÉ
   ───────────────────────────────────────────────────────────── */
.skip-link { position: absolute; top: -100px; left: var(--gc-spacing-md); background: var(--gc-color-primary); color: white; padding: var(--gc-spacing-sm) var(--gc-spacing-lg); border-radius: var(--gc-border-radius); font-weight: 700; z-index: 9999; transition: top 0.3s; }
.skip-link:focus { top: var(--gc-spacing-md); }
:focus-visible { outline: 2px solid var(--gc-color-accent); outline-offset: 3px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.alignfull { margin-left: calc(-1 * var(--gc-spacing-lg)); margin-right: calc(-1 * var(--gc-spacing-lg)); }
.alignwide { margin-left: -2rem; margin-right: -2rem; }
.aligncenter { text-align: center; margin-left: auto; margin-right: auto; }
.alignleft { float: left; margin-right: var(--gc-spacing-lg); margin-bottom: var(--gc-spacing-md); }
.alignright { float: right; margin-left: var(--gc-spacing-lg); margin-bottom: var(--gc-spacing-md); }
.admin-bar .site-header { top: 32px; }
@media screen and (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
img[loading="lazy"] { opacity: 0; transition: opacity 0.4s ease; }
img[loading="lazy"].loaded { opacity: 1; }
