/* ============================================================================
   GRYON - FEUILLE DE STYLES PERSONNALISÉE
   ============================================================================ */

   @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap');

   /* --- Variables --- */
   :root {
     --gryon-red:           #e14f43;
     --gryon-red-dark:      #c13535;
    --gryon-gold:          #c9974a;
    --gryon-gold-dark:     #a67c32;
    --gryon-cream:         #f5f0e8;
     --gryon-text:          #2a2118;
     --gryon-muted:         #7a6e62;
     --gryon-footer-bg:     #1f1a14;
     --gryon-footer-border: rgba(255,255,255,0.1);
     --gryon-transition:    0.3s ease;
     /* Newsletter footer : même hauteur champ email / bouton */
     --gryon-newsletter-control-height: 44px;
     /* Cadre .inf-main / .gryon-inf-webform-root (Infomaniak) */
     --gryon-newsletter-inf-main-padding: 28px;
     /* Largeur max commune (contenu principal, header ACCG, footer, CCG) */
     --gryon-site-max-width: 1320px;
   }

   /* ============================================================================
      Gabarit — largeur max site (toutes les pages)
      ============================================================================ */

   .ovatheme_container_boxed {
     max-width: min(var(--gryon-site-max-width), 100%) !important;
     box-sizing: border-box !important;
   }

   /* Bootstrap 3 (parent) : .container passait à 1170px ≥1200px */
   @media (min-width: 1200px) {
     body .container {
       width: 100% !important;
       max-width: min(var(--gryon-site-max-width), 100%) !important;
     }
   }

   .ccg-container {
     max-width: min(var(--gryon-site-max-width), 100%) !important;
   }
   
   /* Webform newsletter (Infomaniak / statslive) : conteneur = .inf-main_f8d1fd344c855b7d20e10071befd4ae1 (si le hash change, remplacer ce sélecteur) */
   
   /* ============================================================================
      Grille CCG sous la barre ACCG (espacement commun)
      ============================================================================ */
   
   body.page-saisons .post-content .ccg-saisons-container {
     margin-top: 0.25rem;
   }

   /* Page liste des saisons : h3 grille (shortcode) */
   body.page-saisons h3,
   body.post-type-archive-saison h3 {
     font-weight: 600 !important;
   }

   .ccg-saisons-container h3 {
     font-weight: 600 !important;
   }

   /* Sidebar : bat default_theme .ovaem_general_sidebar .widget h3.title { font-weight: 500 } */
   .ovaem_general_sidebar .widget.ccg_search_concerts h3.title,
   .ovaem_general_sidebar .widget.ccg_search_posts h3.title,
   .ovaem_general_sidebar .widget.ccg_concerts_recents h3.title,
   #sidebar.sidebar .widget.ccg_search_concerts h3.title,
   #sidebar.sidebar .widget.ccg_search_posts h3.title,
   #sidebar.sidebar .widget.ccg_concerts_recents h3.title {
     font-weight: 600 !important;
   }

   /* Titres CCG : le thème parent met tous les span en position:absolute (pastilles) ;
      le span wp-exclude-emoji doit rester dans le flux au-dessus des pastilles. */
   .ovaem_general_sidebar .widget.ccg_search_concerts h3.title span.wp-exclude-emoji,
   .ovaem_general_sidebar .widget.ccg_search_posts h3.title span.wp-exclude-emoji,
   #sidebar.sidebar .widget.ccg_search_concerts h3.title span.wp-exclude-emoji,
   #sidebar.sidebar .widget.ccg_search_posts h3.title span.wp-exclude-emoji {
     position: static !important;
     display: inline !important;
     left: auto !important;
     right: auto !important;
     top: auto !important;
     bottom: auto !important;
     width: auto !important;
     height: auto !important;
     margin: 0 !important;
     padding: 0 !important;
     background: none !important;
     background-color: transparent !important;
     vertical-align: baseline !important;
   }

   .ovaem_general_sidebar .widget h3.title {
     font-size: 20px !important;
   }

   /* Fond blanc recherche concert — sans dépendre de body.page-saisons ; bat le crème du .bg_white */
   .ovaem_general_sidebar .widget.ccg_search_concerts,
   .ovaem_general_sidebar .widget.ccg_search_posts,
   .sidebar div.widget.ccg_search_concerts,
   .sidebar div.widget.ccg_search_posts,
   #sidebar .widget.ccg_search_concerts,
   #sidebar .widget.ccg_search_posts {
     background-color: #fff !important;
     background: #fff !important;
   }

   /* Sans emoji Twemoji dans le titre (pages en cache ou caractère 🔍 retiré côté PHP) */
   #sidebar .widget.ccg_search_posts h3.title img.emoji,
   #sidebar .widget.ccg_search_concerts h3.title img.emoji {
     display: none !important;
   }

   /* Page Saisons : titre « Rechercher un concert » peut passer à la ligne dans le widget */
   body.page-saisons #sidebar .widget.ccg_search_concerts h3.title,
   body.page-id-16285 #sidebar .widget.ccg_search_concerts h3.title,
   body.page-id-17094 #sidebar .widget.ccg_search_concerts h3.title,
   body.post-type-archive-saison #sidebar .widget.ccg_search_concerts h3.title {
     white-space: normal !important;
     overflow-wrap: break-word !important;
     max-width: 100% !important;
     box-sizing: border-box !important;
   }

   @media (max-width: 992px) {
     .ovaem_general_sidebar {
       padding-left: 30px;
       padding-right: 30px;
     }
   }

   /* Widget « Concerts récents » : même typo / grille que .ccg-concert-date-box (single-saison.css) */
   .ccg-widget-date-box {
     display: grid !important;
     grid-template-columns: auto auto !important;
     justify-content: center !important;
     justify-items: center !important;
     align-content: start !important;
     column-gap: 0.35em !important;
     row-gap: 10px !important;
     box-sizing: border-box !important;
     width: auto !important;
     min-width: 84px !important;
     max-width: 100px !important;
     min-height: 0 !important;
     padding: 5px 8px 12px !important;
     background: var(--gryon-cream) !important;
     background-color: var(--gryon-cream) !important;
     border-radius: 8px !important;
     box-shadow: 0 2px 4px rgba(42, 33, 24, 0.06) !important;
     font-family: Inter, system-ui, -apple-system, sans-serif !important;
   }

   .ccg-widget-dates-wrapper .ccg-widget-date-day {
     grid-column: 1 / -1 !important;
     justify-self: center !important;
     width: 100% !important;
     text-align: center !important;
     font-family: 'Playfair Display', Georgia, serif !important;
     font-size: 26px !important;
     font-weight: 600 !important;
     color: var(--gryon-text) !important;
     line-height: 0.95 !important;
     letter-spacing: -0.02em !important;
     margin: 0 !important;
   }

   .ccg-widget-date-month,
   .ccg-widget-date-year {
     font-family: Inter, system-ui, -apple-system, sans-serif !important;
     font-size: 11px !important;
     font-weight: 500 !important;
     color: var(--gryon-muted) !important;
     text-transform: uppercase !important;
     line-height: 1.2 !important;
     margin: 0 !important;
   }

   .ccg-widget-date-month {
     letter-spacing: 0.14em !important;
     justify-self: end !important;
   }

   .ccg-widget-date-year {
     letter-spacing: 0.1em !important;
     justify-self: start !important;
   }

   .ccg-widget-date-box--multi {
     max-width: min(132px, 100%) !important;
     min-width: 88px !important;
   }

   .ccg-widget-dates-wrapper .ccg-widget-date-box--multi .ccg-widget-date-day {
     font-size: clamp(17px, 3vw, 26px) !important;
     letter-spacing: 0.02em !important;
   }

   @media (max-width: 768px) {
     .ccg-widget-date-box {
       max-width: 84px !important;
       padding: 12px 6px !important;
     }

     .ccg-widget-date-box--multi {
       max-width: min(112px, 100%) !important;
     }

     .ccg-widget-dates-wrapper .ccg-widget-date-box--multi .ccg-widget-date-day {
       font-size: clamp(15px, 5vw, 26px) !important;
     }

     .ccg-widget-dates-wrapper .ccg-widget-date-day {
       font-size: 26px !important;
     }

     .ccg-widget-date-month,
     .ccg-widget-date-year {
       font-size: 10px !important;
       letter-spacing: 0.1em !important;
     }
   }

   /* Plugin CCG : retire le padding haut (frontend.css : padding 40px 20px) */
   .ccg-saisons-container {
     padding-top: 0 !important;
   }

   .ccg-saison-count {
     padding-bottom: 0 !important;
     margin-bottom: 0 !important;
   }
   
   /* ============================================================================
      BOUTONS ROUGES — style par défaut (type ccg-btn-saison), sauf hero .accg-hero-btn
      ============================================================================ */
   
   .wp-block-search__button.wp-element-button,
   .wp-block-button:not(.is-style-outline) .wp-block-button__link,
   .wp-block-file .wp-block-file__button,
   .error404 .search-form input.search-submit,
   .search-no-results .search-form input.search-submit,
   .wpcf7-form input[type="submit"],
   .wpcf7-submit,
   input.wpcf7-form-control.wpcf7-submit.has-spinner,
   .footer-newsletter-form button,
   .footer-newsletter-form input[type="submit"],
   .footer-newsletter-form .btn-subscribe,
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-submit input[type="submit"],
   .gryon-footer-newsletter input[type="submit"],
   .gryon-footer-newsletter button[type="submit"],
   .btn-programmes,
   .concert-countdown-content .btn-concert,
   .ovaem_blog_grid_page .post-wrap .content .btn,
   body.post-type-archive-presse .post-readmore .btn,
   body .post-readmore a.btn.btn-theme.btn-theme-transparent,
   #commentform #submit.submit,
   .ova-btn.ova-btn-main-color,
   .ova-btn.ova-btn-second-color,
   body .ccg-saisons-container a.ccg-btn-saison,
   body a.ccg-btn-saison,
   .ccg-saisons-container .ccg-btn-saison,
   a.ccg-btn-saison,
   .ccg-btn-saison,
   a.ccg-btn-back,
   .ccg-btn-back,
   a.ccg-btn-small,
   .ccg-btn-small,
   a.ccg-btn-pdf,
   .ccg-btn-pdf {
     display: inline-block !important;
     font-family: Inter, system-ui, sans-serif !important;
     font-size: 12px !important;
     font-weight: 500 !important;
     letter-spacing: 0.2em !important;
     text-transform: uppercase !important;
     text-decoration: none !important;
     padding: 14px 32px !important;
     background: var(--gryon-red) !important;
     background-color: var(--gryon-red) !important;
     color: #fff !important;
     border: 1px solid var(--gryon-red) !important;
     border-radius: 0 !important;
     cursor: pointer !important;
     box-sizing: border-box !important;
     text-align: center !important;
     transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease !important;
   }

   .ccg-search-submit {
     background: var(--gryon-red) !important;
     background-color: var(--gryon-red) !important;
     color: transparent !important;
     border: 1px solid var(--gryon-red) !important;
     transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease !important;
   }
   .ccg-search-submit:hover,
   .ccg-search-submit:focus {
     background: var(--gryon-red-dark) !important;
     background-color: var(--gryon-red-dark) !important;
     border-color: var(--gryon-red-dark) !important;
   }

   /* Loupe Font Awesome 5 (or Gryon sur fond rouge) */
   .ccg-search-submit::before {
     content: '\f002' !important; /* fa-search */
     font-family: 'Font Awesome 5 Free' !important;
     font-weight: 900 !important;
     font-style: normal !important;
     font-variant: normal !important;
     text-rendering: auto !important;
     -webkit-font-smoothing: antialiased !important;
     display: block !important;
     line-height: 1 !important;
     font-size: 1.05em !important;
     color: var(--gryon-gold) !important;
   }

   .ccg-search-submit:hover::before,
   .ccg-search-submit:focus::before {
     color: var(--gryon-gold-dark) !important;
   }
   
   .wp-block-search__button.wp-element-button:hover,
   .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
   .wp-block-file .wp-block-file__button:hover,
   .error404 .search-form input.search-submit:hover,
   .search-no-results .search-form input.search-submit:hover,
   .wpcf7-form input[type="submit"]:hover,
   .wpcf7-submit:hover,
   input.wpcf7-form-control.wpcf7-submit.has-spinner:hover,
   .footer-newsletter-form button:hover,
   .footer-newsletter-form input[type="submit"]:hover,
   .footer-newsletter-form .btn-subscribe:hover,
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-submit input[type="submit"]:hover,
   .footer-newsletter-form [class*="inf-main"] .inf-submit input[type="submit"]:hover,
   .gryon-footer-newsletter [class*="inf-main"] .inf-submit input[type="submit"]:hover,
   .gryon-footer-newsletter input[type="submit"]:hover,
   .gryon-footer-newsletter button[type="submit"]:hover,
   .btn-programmes:hover,
   .concert-countdown-content .btn-concert:hover,
   .ovaem_blog_grid_page .post-wrap .content .btn:hover,
   body.post-type-archive-presse .post-readmore .btn:hover,
   body .post-readmore a.btn.btn-theme.btn-theme-transparent:hover,
   #commentform #submit.submit:hover,
   .ova-btn.ova-btn-main-color:hover,
   .ova-btn.ova-btn-second-color:hover,
   body .ccg-saisons-container a.ccg-btn-saison:hover,
   body a.ccg-btn-saison:hover,
   .ccg-saisons-container .ccg-btn-saison:hover,
   a.ccg-btn-saison:hover,
   .ccg-btn-saison:hover,
   a.ccg-btn-back:hover,
   .ccg-btn-back:hover,
   a.ccg-btn-small:hover,
   .ccg-btn-small:hover,
   a.ccg-btn-pdf:hover,
   .ccg-btn-pdf:hover {
     background: var(--gryon-red-dark) !important;
     background-color: var(--gryon-red-dark) !important;
     border-color: var(--gryon-red-dark) !important;
     color: #fff !important;
   }

   a.ccg-btn-small,
   .ccg-btn-small {
     width: 100% !important;
     max-width: 200px !important;
     margin-left: auto !important;
     margin-right: auto !important;
     text-align: center !important;
   }

   /* Grille page Saisons (shortcode) : bouton blanc, texte rouge, survol comme liens .accg-nav (menu-item-17105 / Accueil) */
   .ccg-saisons-container .ccg-saison-card a.ccg-btn-saison {
     background: #fff !important;
     background-color: #fff !important;
     color: var(--gryon-red) !important;
     border: none !important;
     position: relative !important;
     transition: color 0.3s ease, background 0.3s ease !important;
   }

   .ccg-saisons-container .ccg-saison-card a.ccg-btn-saison::after {
     content: '' !important;
     position: absolute !important;
     bottom: 10px !important;
     left: 32px !important;
     right: 32px !important;
     height: 1px !important;
     background: var(--gryon-red) !important;
     transform: scaleX(0) !important;
     transform-origin: left !important;
     transition: transform 0.25s ease !important;
     pointer-events: none !important;
   }

   .ccg-saisons-container .ccg-saison-card a.ccg-btn-saison:hover,
   .ccg-saisons-container .ccg-saison-card a.ccg-btn-saison:focus {
     background: #fff !important;
     background-color: #fff !important;
     color: var(--gryon-red-dark) !important;
     border: none !important;
   }

   .ccg-saisons-container .ccg-saison-card a.ccg-btn-saison:hover::after,
   .ccg-saisons-container .ccg-saison-card a.ccg-btn-saison:focus-visible::after {
     transform: scaleX(1) !important;
   }
   
   /* Retour haut : au repos contour rouge / icône rouge ; au survol fond plein (comme les autres CTA) */
   #scrollUp {
     display: flex !important;
     align-items: center !important;
     justify-content: center !important;
     padding: 0 !important;
     min-width: 44px !important;
     width: 44px !important;
     height: 44px !important;
     font-size: 0 !important;
     letter-spacing: 0 !important;
     text-transform: none !important;
     line-height: 0 !important;
     border-radius: 0 !important;
     background: transparent !important;
     background-color: transparent !important;
     border: 1px solid var(--gryon-red) !important;
     color: var(--gryon-red) !important;
     box-shadow: none !important;
     transition:
       border-color var(--gryon-transition),
       color var(--gryon-transition),
       background-color var(--gryon-transition) !important;
   }
   #scrollUp:hover {
     background: var(--gryon-red-dark) !important;
     background-color: var(--gryon-red-dark) !important;
     border-color: var(--gryon-red-dark) !important;
     color: #fff !important;
   }
   #scrollUp i {
     display: block !important;
     font-size: 18px !important;
     line-height: 1 !important;
     margin: 0 !important;
     padding: 0 !important;
     color: inherit !important;
   }
   #scrollUp i.arrow_carrot-up::before {
     margin-left: -3px !important;
     color: inherit !important;
   }
   
   /* Recherche événements / bannière (thème parent) — même coins carrés que le hero */
   .ovaem_search_event form input.ovame_submit,
   .ova_search_v1.ovaem_search_event .ovaem_submit input,
   .ovaem_search_event .ovaem_submit input,
   .ovaem_search_banner form .ovaem_submit input,
   .events_sidebar .event_widget.widget_ovaem_search_event_widget input.ovame_submit {
     border-radius: 0 !important;
   }
   
   /* ============================================================================
      1. TYPOGRAPHIE GLOBALE
      ============================================================================ */
   
   body {
     font-family: Inter, system-ui, sans-serif !important;
     color: var(--gryon-text) !important;
   }
   
   h1, h2, h3, h4, h5, h6,
   .ova_title,
   .post-title,
   .entry-title,
   .page-title,
   .ova_service .title,
   .ova-bg-heading h1,
   .ova-bg-heading h2 {
     font-family: 'Playfair Display', serif !important;
     color: var(--gryon-text) !important;
   }
   
   .ovatheme_nosidebar { text-align: justify; }
   
   /* ============================================================================
      2. ESPACEMENTS GLOBAUX
      ============================================================================ */
   
   .site-header,
   .ova-bg-heading { margin-bottom: 0 !important; }
   .ova-bg-heading { margin-top: 0 !important; }
   
   /* Zone de page principale (thème Em4u) : crème léger ; marge du parent → padding */
   .ova-page-section {
     background-color: color-mix(in srgb, var(--gryon-cream) 40%, transparent);
     margin-top: 0 !important;
     padding-top: 55px !important;
   }

   /* Conteneur principal du thème (header.php : bg_white par défaut, bg_grey selon méta page) :
      même fond crème que .ova-page-section sur tout le site. */
   .bg_white,
   .bg_grey {
     background-color: color-mix(in srgb, var(--gryon-cream) 40%, transparent) !important;
   }

   /* Détail concert : single-concert.php impose un dégradé gris sur .ccg-main (<style> inline) → on laisse voir .bg_white */
   body.single-concert .ccg-main {
     background: none !important;
     background-color: transparent !important;
     background-image: none !important;
   }

   /* Plugin CCG (frontend.css) : retirer la ligne sous « Retour à… » — toutes les pages */
   .ccg-back-to-saisons {
     border-bottom: none !important;
     padding-bottom: 0 !important;
   }
   
   .page .ova-bg-heading,
   .single .ova-bg-heading,
   .archive .ova-bg-heading,
   .search .ova-bg-heading,
   .error404 .ova-bg-heading {
     margin-top: -15px !important;
     padding-top: 270px !important;
   }
   
   /* ============================================================================
      2.5. PRESSE — icône calendrier & grille CPT
      ============================================================================ */
   
   .ovaem_blog_grid_page .post-wrap .content .post-meta .post-meta-content .post-date i,
   .ovaem_blog_grid_page .post-wrap .content .post-meta .post-meta-content .post-date .left i.icon_calendar,
   .ovaem_blog_page .post-wrap .post-meta .left_side .post-date i,
   .ovaem_blog_page .post-wrap .post-meta .left_side .post-date .left i.icon_calendar,
   .ovaem_detail_post .post-meta .post-meta-content .post-date .left i,
   .ovaem_detail_post .post-meta .post-meta-content .post-date .left i.icon_calendar {
     color: var(--gryon-red-dark) !important;
     padding-right: 15px;
   }
   
   .ovaem_detail_post article.post-wrap { text-align: justify; }
   
   /* Grille CPT : hauteurs égales */
   .ovaem_blog_grid_page .row {
     display: flex !important;
     flex-wrap: wrap;
     align-items: stretch;
   }
   
   .ovaem_blog_grid_page .row .col-md-4,
   .ovaem_blog_grid_page .row .col-sm-6 {
     float: none !important;
     display: flex !important;
     flex-direction: column;
   }
   
   .ovaem_blog_grid_page .col-md-4 .post-wrap,
   .ovaem_blog_grid_page .col-sm-6 .post-wrap {
     float: none !important;
     display: flex;
     flex-direction: column;
     flex: 1 1 auto;
     min-height: 0;
     height: 100%;
     width: 100%;
   }
   
   .ovaem_blog_grid_page .post-wrap .post-media { width: 100%; flex-shrink: 0; }
   
   .ovaem_blog_grid_page .post-wrap .content {
     float: none !important;
     display: flex !important;
     flex-direction: column;
     flex: 1 1 auto;
     min-height: 0;
     width: 100% !important;
     box-sizing: border-box;
   }
   
   .ovaem_blog_grid_page .post-wrap .content .post-meta,
   .ovaem_blog_grid_page .post-wrap .content .post-title,
   .ovaem_blog_grid_page .post-wrap .content .read_more { flex-shrink: 0; }
   .ovaem_blog_grid_page .post-wrap .content .post-body { flex: 1 1 auto; min-height: 0; }
   .ovaem_blog_grid_page .post-wrap .content .post-meta-content { margin: 0; }
   
   .ovaem_blog_grid_page .post-wrap .content .post-title,
   .ovaem_blog_grid_page .post-wrap .content .post-title h2 {
     margin-bottom: 10px !important;
     margin-top: 10px !important;
   }
   
   .ovaem_blog_grid_page .post-wrap .content .btn { margin-bottom: 20px; }
   .ovaem_blog_grid_page .post-wrap .content .read_more a { margin-bottom: 30px; }
   
   body.post-type-archive-presse .post-readmore .btn { margin-bottom: 0; }
   body.post-type-archive-presse .ovaem_blog_grid_page .post-wrap .content .read_more a { margin-top: 0 !important; }
   
   @media (max-width: 480px) {
     body.post-type-archive-presse .ovaem_blog_grid_page .row .col-md-4,
     body.post-type-archive-presse .ovaem_blog_grid_page .row .col-sm-6 { padding-right: 15px !important; }
     body.post-type-archive-presse .ovaem_blog_grid_page .row { margin-left: 0 !important; margin-right: 0 !important; }
     body.post-type-archive-presse .ovaem_blog_grid_page .container { padding-left: 0 !important; padding-right: 0 !important; }
   }
   
   /* ============================================================================
      3. HEADER / NAVIGATION
      ============================================================================ */
   
   /* Fond transparent / sombre au scroll */
   .ova_header.ovatheme_header_v2,
   .ova_header.ovatheme_header_v2.fixed,
   .ova_header.ovatheme_header_v2.has_logo_scroll,
   .ova_header.scroll_down .navbar,
   .ova_header.ovatheme_header_v2 .navbar,
   .ova_header.ovatheme_header_v2 .scroll_fixed,
   .ova_header.ovatheme_header_v2.fixed .scroll_fixed,
   .ova_header.ovatheme_header_v2:not(.shrink) .scroll_fixed {
     background-color: transparent !important;
     background-image: none !important;
     box-shadow: none !important;
   }
   
   .ova_header.ovatheme_header_v2 .scroll_fixed,
   .ova_header.ovatheme_header_v2.fixed .scroll_fixed,
   .ova_header.ovatheme_header_v2:not(.shrink) .scroll_fixed {
     transition: background-color 0.35s ease, box-shadow 0.35s ease !important;
   }
   
   .ova_header.ovatheme_header_v2.shrink .scroll_fixed,
   .ova_header.ovatheme_header_v2.fixed.shrink .scroll_fixed {
     background-color: rgba(0,0,0,0.85) !important;
     background-image: none !important;
     box-shadow: none !important;
     transition: background-color 0.35s ease, box-shadow 0.35s ease !important;
   }
   
   /* Navbar v2 */
   .ova_header.ovatheme_header_v2 .navbar {
     padding: 18px 0 !important;
     min-height: auto;
     border: none !important;
   }
   
   /* Marges nulles logo v2 */
   .ova_header.ovatheme_header_v2,
   .ova_header.ovatheme_header_v2 .container,
   .ova_header.ovatheme_header_v2 .container-fluid,
   .ova_header.ovatheme_header_v2 .navbar-header,
   .ova_header.ovatheme_header_v2 .navbar-brand,
   .ova_header.ovatheme_header_v2 .ova-menu {
     margin-top: 0 !important;
     padding-top: 0 !important;
   }
   
   .ova_header .logo_scroll { display: none !important; }
   .ova_header .logo { display: block !important; }
   
   .ova_header .navbar-brand {
     padding: 10px 0 !important;
     margin: 0 !important;
     height: auto;
   }
   
   .ova_header .navbar-brand img,
   .ova_header.ovatheme_header_v2 .navbar-brand img {
     max-height: 400px !important;
     max-width: 800px !important;
     width: auto !important;
     height: auto !important;
     object-fit: contain;
   }
   
   @media (min-width: 992px) {
     .ova_header .navbar-brand img,
     .ova_header.ovatheme_header_v2 .navbar-brand img {
       width: 400px !important;
       max-width: 400px !important;
       max-height: none !important;
     }
   }
   
   /* Liens navigation */
   .ova-menu ul.navbar-nav > li > a { font-size: 16px !important; font-weight: 600 !important; }
   .ova-menu ul.navbar-nav > li .dropdown-menu > li > a { font-size: 15px !important; }
   .ova-menu nav.navbar li ul.dropdown-menu li > a { padding: 0 !important; }
   
   /* Sous-menus niveau 2 */
   .ova-menu ul.dropdown-menu ul.dropdown-menu,
   .ova-menu .dropdown-menu .dropdown-menu,
   .ovatheme_header_v2 #menu-primary-menu ul.dropdown-menu ul.dropdown-menu,
   #ovatheme_header_v2 #menu-primary-menu ul.dropdown-menu ul.dropdown-menu {
     text-align: right !important;
     background: none !important;
   }
   
   .ova-menu ul.dropdown-menu ul.dropdown-menu li a,
   .ova-menu .dropdown-menu .dropdown-menu li a,
   .ovatheme_header_v2 #menu-primary-menu ul.dropdown-menu ul.dropdown-menu li a,
   #ovatheme_header_v2 #menu-primary-menu ul.dropdown-menu ul.dropdown-menu li a {
     color: #fff !important;
     -webkit-text-fill-color: #fff !important;
     background: none !important;
     transition: color var(--gryon-transition), -webkit-text-fill-color var(--gryon-transition) !important;
   }
   
   .ova-menu ul.dropdown-menu ul.dropdown-menu li a:hover,
   .ova-menu .dropdown-menu .dropdown-menu li a:hover,
   .ovatheme_header_v2 #menu-primary-menu ul.dropdown-menu ul.dropdown-menu li a:hover,
   #ovatheme_header_v2 #menu-primary-menu ul.dropdown-menu ul.dropdown-menu li a:hover {
     color: var(--gryon-red) !important;
     -webkit-text-fill-color: var(--gryon-red) !important;
     background: none !important;
   }
   
   /* Blogname — style commun toutes pages */
   .ova_header .navbar-brand span.blogname,
   .ova_header .navbar-brand .blogname,
   .ovatheme_header_default a.navbar-brand span.blogname,
   .page .ova_header .navbar-brand span.blogname,
   .single .ova_header .navbar-brand span.blogname,
   .archive .ova_header .navbar-brand span.blogname {
     font-family: 'Playfair Display', serif !important;
     font-size: 13px !important;
     font-weight: 400 !important;
     letter-spacing: 0.03em !important;
     line-height: 1.4 !important;
     text-transform: none !important;
     color: rgba(255,255,255,0.92) !important;
     max-width: 200px !important;
     display: inline-block !important;
     white-space: normal !important;
   }
   
   /* Compacité barre */
   .ova_header .navbar-header { padding: 3px 0 !important; margin: 0 !important; min-height: auto !important; }
   
   .ova_header .navbar-nav > li > a {
     padding: 8px 14px !important;
     font-size: 13px !important;
     font-weight: 500 !important;
     letter-spacing: 0.08em !important;
     text-transform: uppercase !important;
     line-height: 1.2 !important;
     height: auto !important;
     margin: 0 !important;
     position: relative;
     transition: color 0.25s ease !important;
   }
   
   .ova_header.ovatheme_header_v2 .navbar-nav > li > a {
     padding-left: 14px !important;
     padding-right: 14px !important;
     font-size: 13px !important;
   }
   
   .ova_header.ovatheme_header_v2 .ova-logo.navbar-header { flex: 0 0 auto !important; max-width: none; }
   .ova_header.ovatheme_header_v2 #ovatheme_header_v2 { flex: 1 1 auto !important; min-width: 0 !important; }
   .ova_header.ovatheme_header_v2 .ova-menu ul.navbar-nav { flex-wrap: nowrap !important; }

   /* Desktop : titre + menu regroupés au centre (titre proche du menu) */
   @media (min-width: 993px) {
     .ova_header.ovatheme_header_v2 .ova-menu nav.navbar > .container-fluid {
       justify-content: center !important;
       gap: clamp(16px, 2.5vw, 40px) !important;
       flex-wrap: nowrap !important;
     }
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 {
       flex: 0 1 auto !important;
       width: auto !important;
       max-width: none !important;
     }
     .ova_header.ovatheme_header_v2 .ova-logo .navbar-brand.logo {
       text-align: center !important;
     }
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 ul.nav.navbar-nav.navbar-right {
       float: none !important;
       display: flex !important;
       flex-wrap: nowrap !important;
       align-items: center !important;
       margin: 0 !important;
     }
   }
   .ova_header .navbar-nav > li,
   .ova_header .ova-account { padding: 0 !important; margin: 0 !important; }
   .ova_header .ova-account a { padding: 3px 6px !important; font-size: 12px !important; margin: 0 !important; }
   
   .ova_header .container-fluid { padding: 3px 15px !important; }
   .ova_header.ovatheme_header_v2 .container-fluid { padding-left: 32px !important; padding-right: 32px !important; }
   .ova_header .container { padding: 0 15px !important; }
   .ova_header .row { margin: 0 !important; padding: 0 !important; }
   .ova_header .navbar-toggle { padding: 5px 8px !important; margin: 5px 0 !important; }
   .ova_header .icon-bar { height: 2px !important; margin: 3px 0 !important; }
   
   /* ============================================================================
      4. PAGE HEADING
      ============================================================================ */
   
   .ova-bg-heading {
     padding: 20px 0 !important;
     min-height: auto !important;
     background-attachment: scroll !important;
   }
   .ova-breadcrumbs { padding: 15px 0 !important; }
   
   .ova-breadcrumbs h1.ova_title,
   .ova-breadcrumbs .ova_title,
   .ova_title,
   .ova-bg-heading .ova_title,
   .ova-bg-heading h1.ova_title,
   .ova-bg-heading h2.ova_title {
     font-size: 30px !important;
     font-weight: 500 !important;
     text-transform: uppercase !important;
     margin: 5px 0 !important;
     padding: 0 !important;
     line-height: 1.2 !important;
   }
   
   .ova-breadcrumbs h1.ova_title,
   .ova-breadcrumbs .ova_title { color: #fff !important; }
   
   .ova-breadcrumbs .breadcrumbs { font-size: 11px !important; margin: 5px 0 0 0 !important; }
   .ova-bg-heading .bg_cover { opacity: 0.3 !important; }
   
   /* ============================================================================
      4.5. SECTIONS SERVICES
      ============================================================================ */
   
   .ova_service_link_wrapper {
     cursor: pointer;
     text-decoration: none !important;
     display: block;
     color: inherit;
   }
   .ova_service_link_wrapper:hover { text-decoration: none !important; }
   .ova_service_link_wrapper .ova_service { cursor: pointer; }
   
   .ova_service { padding: 10px 0; }
   .ova_service .title { padding-bottom: 0; }
   .ova_service .desc { padding: 0 5% !important; }
   .ova_service .read_more { padding-top: 10px; }
   
   .ova_service .icon i,
   .ova_service .icon i:before {
     color: var(--gryon-red) !important;
     -webkit-text-fill-color: var(--gryon-red) !important;
   }
   
   .ova_service:hover {
     background-color: var(--gryon-red) !important;
     color: #fff !important;
     transition: all var(--gryon-transition) !important;
   }
   .ova_service:hover .title,
   .ova_service:hover .desc { color: #fff !important; }
   .ova_service:hover .title { padding-bottom: 0; }
   .ova_service:hover .read_more { padding-top: 10px; }
   .ova_service:hover .icon { border-color: #fff !important; }
   .ova_service:hover .icon i,
   .ova_service:hover .icon i:before {
     color: var(--gryon-red) !important;
     -webkit-text-fill-color: var(--gryon-red) !important;
   }
   .ova_service:hover .icon i { background: #fff !important; }
   .ova_service:hover .read_more a { color: #fff !important; }
   
   .ova_service.ova-trans.style1,
   .ova_service.ova-trans.style1:hover { padding-top: 3px; padding-bottom: 20px; }
   
   @media (max-width: 992px) {
     .ova_service .title { margin-top: 10px !important; }
     .wrap_service > .wpb_column:nth-child(3),
     .wrap_service > .wpb_column:nth-child(4),
     .wrap_service > [class*="vc_col"]:nth-child(3),
     .wrap_service > [class*="vc_col"]:nth-child(4) { border-top: 1px solid #fff; }
   }
   
   @media (max-width: 480px) {
     .vc_row.wrap_service .ova_service .read_more,
     .wrap_service .ova_service .read_more,
     .vc_row.wrap_service .ova_service:hover .read_more,
     .wrap_service .ova_service:hover .read_more { padding-top: 2px !important; }
   
     .wrap_service .vc_column-inner.vc_custom_1504854319866 { border-bottom: 1px solid #fff; margin-bottom: 0; }
   
     .ova_service.ova-trans.style1,
     .ova_service.ova-trans.style1:hover { padding-bottom: 10px; }
   
     .ova_service.ova-trans.style1 .icon {
       width: 120px; height: 120px; border-radius: 100%; margin-left: auto; margin-right: auto;
     }
     .ova_service.ova-trans.style1 .icon i {
       border-radius: 100%; width: 100px; height: 100px; padding: 18px;
       position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
       display: flex; align-items: center; justify-content: center; box-sizing: border-box;
     }
     .ova_service.ova-trans.style1:hover .icon i { border-radius: 100%; background: #fff !important; }
   
     h2 { margin-top: 0 !important; }
     .ova-page-section { padding-top: 55px !important; }
     .ovaem_blog_grid_page { padding-top: 50px !important; }
     .ccg-location-map { margin-bottom: 0 !important; }
   }
   
   /* Sidebar */
   .ovaem_general_sidebar .widget ul li a:hover,
   .ovaem_general_sidebar .widget.widget_categories ul li a:hover,
   .ovaem_general_sidebar .widget a:hover,
   body .ovaem_general_sidebar .widget ul li a.wp-block-latest-posts__post-title:hover,
   body .ovaem_general_sidebar .widget a.wp-block-latest-posts__post-title:hover {
     color: var(--gryon-red) !important;
   }

   /* Pastilles sous les titres widgets OVA (h3.title span, .one … .five) + titre sections widget CCG */
   .ovaem_general_sidebar .widget h3.title span,
   .ovaem_general_sidebar .widget h3.title span.one,
   .ovaem_general_sidebar .widget h3.title span.two,
   .ovaem_general_sidebar .widget h3.title span.three,
   .ovaem_general_sidebar .widget h3.title span.four,
   .ovaem_general_sidebar .widget h3.title span.five {
     background-color: var(--gryon-gold) !important;
   }
   .ovaem_general_sidebar .ccg-widget-section-title {
     border-bottom: 2px solid var(--gryon-gold) !important;
   }
   
   /* Bouton recherche */
   .wp-block-search__button.wp-element-button { border-color: var(--gryon-red) !important; }
   .wp-block-search__button.wp-element-button:hover { border-color: var(--gryon-red-dark) !important; }
   
   /* Page Saisons : loupe — fond transparent, bordure or */
   body.page-id-17094 .ccg-search-submit,
   body.page-saisons .ccg-search-submit,
   body.page-id-16285 .ccg-search-submit,
   body.post-type-archive-saison .ccg-search-submit,
   body.search .ccg-search-submit,
   body.page-id-17094 #sidebar .widget.ccg_search_concerts .ccg-search-submit,
   body.page-saisons #sidebar .widget.ccg_search_concerts .ccg-search-submit,
   body.page-id-16285 #sidebar .widget.ccg_search_concerts .ccg-search-submit,
   body.post-type-archive-saison #sidebar .widget.ccg_search_concerts .ccg-search-submit,
   body.search #sidebar .widget.ccg_search_posts .ccg-search-submit {
     background: transparent !important;
     background-color: transparent !important;
     color: var(--gryon-gold) !important;
     border: 2px solid var(--gryon-gold) !important;
   }
   body.page-id-17094 .ccg-search-submit:hover,
   body.page-id-17094 .ccg-search-submit:focus,
   body.page-saisons .ccg-search-submit:hover,
   body.page-saisons .ccg-search-submit:focus,
   body.page-id-16285 .ccg-search-submit:hover,
   body.page-id-16285 .ccg-search-submit:focus,
   body.post-type-archive-saison .ccg-search-submit:hover,
   body.post-type-archive-saison .ccg-search-submit:focus,
   body.search .ccg-search-submit:hover,
   body.search .ccg-search-submit:focus,
   body.page-id-17094 #sidebar .widget.ccg_search_concerts .ccg-search-submit:hover,
   body.page-id-17094 #sidebar .widget.ccg_search_concerts .ccg-search-submit:focus,
   body.page-saisons #sidebar .widget.ccg_search_concerts .ccg-search-submit:hover,
   body.page-saisons #sidebar .widget.ccg_search_concerts .ccg-search-submit:focus,
   body.page-id-16285 #sidebar .widget.ccg_search_concerts .ccg-search-submit:hover,
   body.page-id-16285 #sidebar .widget.ccg_search_concerts .ccg-search-submit:focus,
   body.post-type-archive-saison #sidebar .widget.ccg_search_concerts .ccg-search-submit:hover,
   body.post-type-archive-saison #sidebar .widget.ccg_search_concerts .ccg-search-submit:focus,
   body.search #sidebar .widget.ccg_search_posts .ccg-search-submit:hover,
   body.search #sidebar .widget.ccg_search_posts .ccg-search-submit:focus {
     background: rgba(201, 151, 74, 0.14) !important;
     background-color: rgba(201, 151, 74, 0.14) !important;
     border-color: var(--gryon-gold-dark) !important;
     color: var(--gryon-gold-dark) !important;
   }
   body.page-id-17094 .ccg-search-submit::before,
   body.page-saisons .ccg-search-submit::before,
   body.page-id-16285 .ccg-search-submit::before,
   body.post-type-archive-saison .ccg-search-submit::before,
   body.search .ccg-search-submit::before,
   body.page-id-17094 #sidebar .widget.ccg_search_concerts .ccg-search-submit::before,
   body.page-saisons #sidebar .widget.ccg_search_concerts .ccg-search-submit::before,
   body.page-id-16285 #sidebar .widget.ccg_search_concerts .ccg-search-submit::before,
   body.post-type-archive-saison #sidebar .widget.ccg_search_concerts .ccg-search-submit::before,
   body.search #sidebar .widget.ccg_search_posts .ccg-search-submit::before {
     color: var(--gryon-gold) !important;
     font-size: 1.12em !important;
   }

   body.page-id-17094 .ccg-search-submit:hover::before,
   body.page-id-17094 .ccg-search-submit:focus::before,
   body.page-saisons .ccg-search-submit:hover::before,
   body.page-saisons .ccg-search-submit:focus::before,
   body.page-id-16285 .ccg-search-submit:hover::before,
   body.page-id-16285 .ccg-search-submit:focus::before,
   body.post-type-archive-saison .ccg-search-submit:hover::before,
   body.post-type-archive-saison .ccg-search-submit:focus::before,
   body.search .ccg-search-submit:hover::before,
   body.search .ccg-search-submit:focus::before,
   body.page-id-17094 #sidebar .widget.ccg_search_concerts .ccg-search-submit:hover::before,
   body.page-id-17094 #sidebar .widget.ccg_search_concerts .ccg-search-submit:focus::before,
   body.page-saisons #sidebar .widget.ccg_search_concerts .ccg-search-submit:hover::before,
   body.page-saisons #sidebar .widget.ccg_search_concerts .ccg-search-submit:focus::before,
   body.page-id-16285 #sidebar .widget.ccg_search_concerts .ccg-search-submit:hover::before,
   body.page-id-16285 #sidebar .widget.ccg_search_concerts .ccg-search-submit:focus::before,
   body.post-type-archive-saison #sidebar .widget.ccg_search_concerts .ccg-search-submit:hover::before,
   body.post-type-archive-saison #sidebar .widget.ccg_search_concerts .ccg-search-submit:focus::before,
   body.search #sidebar .widget.ccg_search_posts .ccg-search-submit:hover::before,
   body.search #sidebar .widget.ccg_search_posts .ccg-search-submit:focus::before {
     color: var(--gryon-gold-dark) !important;
   }

   /* Recherche inline */
   .ccg-search-results-form { margin-bottom: 30px; }
   .ccg-search-form-inline .ccg-search-field { display: flex; gap: 10px; align-items: center; max-width: 600px; }
   .ccg-search-form-inline .ccg-search-input {
     flex: 1; min-width: 0; padding: 12px 15px;
     border: 2px solid #e2e2e2; border-radius: 4px; font-size: 16px;
   }
   .ccg-search-form-inline .ccg-search-submit { flex-shrink: 0; padding: 12px 20px; white-space: nowrap; }

   /* Focus champ recherche CCG : même accent or que la sidebar */
   .ccg-search-input:focus {
     border-color: var(--gryon-gold) !important;
     box-shadow: 0 0 0 3px rgba(201, 151, 74, 0.15) !important;
     outline: none !important;
   }
   
   /* Champ recherche 404 / aucun résultat : même hauteur que le bouton (padding 14px + stretch flex) */
   .error404 .search-form,
   .search-no-results .search-form {
     display: flex !important;
     align-items: stretch !important;
     flex-wrap: nowrap;
     gap: 0;
     max-width: min(100%, 520px) !important;
   }

   .error404 .search-form > label,
   .search-no-results .search-form > label {
     flex: 0 1 360px;
     width: 100%;
     max-width: min(100%, 360px);
     min-width: 0;
     display: flex !important;
     align-items: stretch !important;
     margin: 0 !important;
   }

   .error404 .search-form input.search-field,
   .search-no-results .search-form input.search-field {
     flex: 1 1 auto !important;
     width: 100% !important;
     max-width: 100% !important;
     min-width: 0 !important;
     padding: 14px 45px 14px 15px !important;
     height: auto !important;
     min-height: 0 !important;
     border: 2px solid #e2e2e2;
     border-radius: 4px;
     color: #333;
     background: #fff;
     transition: all var(--gryon-transition);
     outline: none;
     box-sizing: border-box !important;
     line-height: normal !important;
   }

   .error404 .search-form > input.search-field,
   .search-no-results .search-form > input.search-field {
     flex: 0 1 360px !important;
     max-width: min(100%, 360px) !important;
   }

   /* Thème parent em4u : height: 40px sur les submit recherche — incompatible avec le padding Gryon */
   form.search-form input.search-submit,
   .widget.widget_search input.search-submit {
     height: auto !important;
     line-height: normal !important;
   }

   /* Submit recherche WP : inline-block + letter-spacing décale le texte — flex centre le libellé */
   .error404 .search-form input.search-submit,
   .search-no-results .search-form input.search-submit {
     display: inline-flex !important;
     align-items: center !important;
     justify-content: center !important;
     text-align: center !important;
   }
   
   body.error404 .ovatheme_container_wide,
   body.error404 .ovatheme_container_boxed,
   body.search .ovatheme_container_wide,
   body.search .ovatheme_container_boxed,
   body.error404 .ova_header,
   body.search .ova_header,
   body.error404 .ova_header .scroll_fixed,
   body.search .ova_header .scroll_fixed { overflow: visible !important; }

   /* Recherche : air sous « Résultats de recherche pour : » avant la liste */
   body.search h2.page-title {
     margin-bottom: 3rem !important;
   }

   /* Recherche : titre concert + extrait Information — moins d’espace vertical */
   body.search .result_search .post-title {
     margin-bottom: 0 !important;
   }
   body.search .result_search .post-title h2.post-title {
     margin-top: 0 !important;
     margin-bottom: 0.1rem !important;
   }

   /* Recherche : survol des titres — même effet que .accg-nav .accg-nav-list li a (hero.css) */
   body.search .result_search h2.post-title a {
     position: relative !important;
     display: inline-block !important;
     text-decoration: none !important;
     transition: color 0.3s ease !important;
   }
   body.search .result_search h2.post-title a::after {
     content: '' !important;
     position: absolute !important;
     bottom: -3px !important;
     left: 0 !important;
     right: 0 !important;
     height: 1px !important;
     background: var(--gryon-red) !important;
     transform: scaleX(0) !important;
     transform-origin: left !important;
     transition: transform 0.25s ease !important;
     pointer-events: none !important;
   }
   body.search .result_search h2.post-title a:hover,
   body.search .result_search h2.post-title a:focus-visible {
     color: var(--gryon-red) !important;
   }
   body.search .result_search h2.post-title a:hover::after,
   body.search .result_search h2.post-title a:focus-visible::after {
     transform: scaleX(1) !important;
   }

   body.search .result_search .post-body {
     margin-top: 0 !important;
     padding-top: 0 !important;
   }
   /* Recherche : extraits concerts — retours à la ligne (texte Information), interligne resserré */
   body.search .result_search .post-excerpt {
     white-space: pre-line;
     line-height: 1.35;
     margin-top: 0 !important;
     padding-top: 0 !important;
   }
   
   body.error404 .ova-page-section { margin-bottom: 30px; }
   
   .ova-btn { display: block; width: fit-content; margin-left: auto; margin-right: auto; }
   
   /* Input recherche WP block */
   #wp-block-search__input-1,
   #sidebar #wp-block-search__input-1,
   .wp-block-search__input {
     padding: 12px 45px 12px 15px !important;
     border: 2px solid #e2e2e2 !important;
     border-radius: 4px !important;
     color: #333 !important;
     background: #fff !important;
     transition: all var(--gryon-transition) !important;
     outline: none !important;
   }
   
   /* Widgets */
   .widget.widget_block,
   #sidebar .widget.widget_block,
   .ovaem_general_sidebar .widget.widget_block,
   .ovaem_blog_page .widget.widget_block,
   #recent-posts-widget-with-thumbnails-1,
   #sidebar #recent-posts-widget-with-thumbnails-1,
   .ovaem_general_sidebar #recent-posts-widget-with-thumbnails-1 {
     border-radius: 4px !important;
     overflow: hidden !important;
   }
   
   body.page-contact .ova-page-section,
   body.page-informations-pratiques .ova-page-section,
   body.page-id-16169 .ova-page-section { padding-top: 55px !important; }
   
   @media (max-width: 480px) {
     body.page-contact .ova-page-section,
     body.page-informations-pratiques .ova-page-section,
     body.page-id-16169 .ova-page-section { padding-top: 55px !important; }
   }

   /* Pages Contact & Presse : marge bas avant le footer */
   body.page-contact .ova-page-section,
   body.gryon-contact-page .ova-page-section,
   body.page-presse .ova-page-section,
   body.gryon-presse-page .ova-page-section {
     padding-bottom: 3.5rem !important;
   }

   /* Contact : tablette + mobile — gouttière horizontale (contenu collé aux bords) */
   @media (max-width: 992px) {
     body.page-contact .ova-page-section,
     body.gryon-contact-page .ova-page-section {
       padding-left: 24px !important;
       padding-right: 24px !important;
       box-sizing: border-box !important;
     }
   }

   /* Page Contact : max-width du .container (fils direct de .ova-page-section, thème Em4u) */
   body.page-contact .ova-page-section > .container {
     max-width: min(1200px, 100%) !important;
     width: 100% !important;
     margin-left: auto !important;
     margin-right: auto !important;
     box-sizing: border-box !important;
   }

   /* Page Contact : espace entre les deux colonnes WPBakery (ligne avec carte Google) */
   body.page-contact .ova-page-section .vc_row.wpb_row.vc_row-fluid:has(.wpb_gmaps_widget) > .wpb_column.vc_col-sm-6:first-of-type,
   body.gryon-contact-page .ova-page-section .vc_row.wpb_row.vc_row-fluid:has(.wpb_gmaps_widget) > .wpb_column.vc_col-sm-6:first-of-type {
     padding-right: 1.5rem !important;
     box-sizing: border-box !important;
   }

   body.page-contact .ova-page-section .vc_row.wpb_row.vc_row-fluid:has(.wpb_gmaps_widget) > .wpb_column.vc_col-sm-6:last-of-type,
   body.gryon-contact-page .ova-page-section .vc_row.wpb_row.vc_row-fluid:has(.wpb_gmaps_widget) > .wpb_column.vc_col-sm-6:last-of-type {
     padding-left: 1.5rem !important;
     box-sizing: border-box !important;
   }

   /* Mobile : colonnes carte + formulaire empilées — même padding horizontal = même largeur utile */
   @media (max-width: 767px) {
     body.page-contact .ova-page-section .vc_row.wpb_row.vc_row-fluid:has(.wpb_gmaps_widget) > .wpb_column.vc_col-sm-6:first-of-type,
     body.gryon-contact-page .ova-page-section .vc_row.wpb_row.vc_row-fluid:has(.wpb_gmaps_widget) > .wpb_column.vc_col-sm-6:first-of-type,
     body.page-contact .ova-page-section .vc_row.wpb_row.vc_row-fluid:has(.wpb_gmaps_widget) > .wpb_column.vc_col-sm-6:last-of-type,
     body.gryon-contact-page .ova-page-section .vc_row.wpb_row.vc_row-fluid:has(.wpb_gmaps_widget) > .wpb_column.vc_col-sm-6:last-of-type {
       padding-left: 0 !important;
       padding-right: 0 !important;
       box-sizing: border-box !important;
     }

     body.page-contact .ova-page-section .vc_row.wpb_row.vc_row-fluid:has(.wpb_gmaps_widget) > .wpb_column.vc_col-sm-6:first-of-type .vc_column-inner,
     body.gryon-contact-page .ova-page-section .vc_row.wpb_row.vc_row-fluid:has(.wpb_gmaps_widget) > .wpb_column.vc_col-sm-6:first-of-type .vc_column-inner,
     body.page-contact .ova-page-section .vc_row.wpb_row.vc_row-fluid:has(.wpb_gmaps_widget) > .wpb_column.vc_col-sm-6:last-of-type .vc_column-inner,
     body.gryon-contact-page .ova-page-section .vc_row.wpb_row.vc_row-fluid:has(.wpb_gmaps_widget) > .wpb_column.vc_col-sm-6:last-of-type .vc_column-inner {
       padding-left: 0 !important;
       padding-right: 0 !important;
       box-sizing: border-box !important;
     }

     body.page-contact .ova-page-section .vc_row.wpb_row.vc_row-fluid:has(.wpb_gmaps_widget) > .wpb_column.vc_col-sm-6:first-of-type,
     body.gryon-contact-page .ova-page-section .vc_row.wpb_row.vc_row-fluid:has(.wpb_gmaps_widget) > .wpb_column.vc_col-sm-6:first-of-type {
       padding-bottom: 1.5rem !important;
     }

     /* Texte pleine largeur au-dessus de la carte (ex. « Devenir membre ») : même largeur utile que la ligne carte + formulaire */
     body.page-contact .ova-page-section .wpb-content-wrapper > .vc_row.wpb_row.vc_row-fluid:first-child > .wpb_column.vc_col-sm-12,
     body.gryon-contact-page .ova-page-section .wpb-content-wrapper > .vc_row.wpb_row.vc_row-fluid:first-child > .wpb_column.vc_col-sm-12 {
       padding-left: 0 !important;
       padding-right: 0 !important;
       box-sizing: border-box !important;
     }

     body.page-contact .ova-page-section .wpb-content-wrapper > .vc_row.wpb_row.vc_row-fluid:first-child > .wpb_column.vc_col-sm-12 > .vc_column-inner,
     body.gryon-contact-page .ova-page-section .wpb-content-wrapper > .vc_row.wpb_row.vc_row-fluid:first-child > .wpb_column.vc_col-sm-12 > .vc_column-inner {
       padding-left: 0 !important;
       padding-right: 0 !important;
       box-sizing: border-box !important;
     }
   }

   body.page-contact h1 {
     margin-top: 0 !important;
   }

   body.page-contact .ova-page-section h2,
   body.gryon-contact-page .ova-page-section h2 {
     font-size: 26px !important;
   }

   /* Titres injectés (functions.php) au-dessus carte Google + CF7 */
   body.gryon-contact-page .gryon-contact-section-title {
     font-family: 'Playfair Display', Georgia, serif !important;
     font-weight: 500 !important;
     color: var(--gryon-text) !important;
     margin: 0 0 1rem !important;
     line-height: 1.25 !important;
   }

   @media (max-width: 767px) {
     body.gryon-contact-page .gryon-contact-section-title--form {
       margin-top: 2rem !important;
     }
   }

   /* reCAPTCHA v3 (CF7) : mentions légales près du formulaire contact */
   body.page-contact .ova-page-section .gryon-cf7-recaptcha-notice,
   body.gryon-contact-page .ova-page-section .gryon-cf7-recaptcha-notice {
     font-size: 12px !important;
     line-height: 1.5 !important;
     color: var(--gryon-muted) !important;
     margin: 0.75rem 0 1rem !important;
     max-width: 50rem;
     text-align: left !important;
   }

   body.page-contact .ova-page-section .gryon-cf7-recaptcha-notice p,
   body.gryon-contact-page .ova-page-section .gryon-cf7-recaptcha-notice p {
     margin: 0 0 0.35em !important;
     font-size: inherit !important;
     color: inherit !important;
   }

   body.page-contact .ova-page-section .gryon-cf7-recaptcha-notice a,
   body.gryon-contact-page .ova-page-section .gryon-cf7-recaptcha-notice a {
     color: var(--gryon-muted) !important;
     text-decoration: underline !important;
   }

   /* Badge reCAPTCHA : masqué partout (Google exige les mentions + liens sur les pages qui utilisent reCAPTCHA) */
   .grecaptcha-badge {
     visibility: hidden !important;
   }

   /* Carte Google (WPBakery) + bloc CF7 : espace au-dessus (id CF7 typique si l’unité change) */
   body.page-contact .ova-page-section .wpb_gmaps_widget.wpb_content_element,
   body.gryon-contact-page .ova-page-section .wpb_gmaps_widget.wpb_content_element,
   body.page-contact .ova-page-section div.wpcf7,
   body.gryon-contact-page .ova-page-section div.wpcf7,
   body.page-contact .ova-page-section #wpcf7-f16852-p17104-o1,
   body.gryon-contact-page .ova-page-section #wpcf7-f16852-p17104-o1 {
     padding-top: 1rem !important;
   }

   body.page-contact .ova-page-section p {
     font-size: 15px !important;
     color: var(--gryon-muted) !important;
   }

   body.page-contact .ova-page-section .wpcf7-form label,
   body.gryon-contact-page .ova-page-section .wpcf7-form label,
   body.page-contact .ova-page-section .event_contact label,
   body.gryon-contact-page .ova-page-section .event_contact label,
   body.page-contact .ova-page-section .wpcf7-form .wpcf7-list-item-label,
   body.gryon-contact-page .ova-page-section .wpcf7-form .wpcf7-list-item-label {
     color: var(--gryon-text) !important;
   }

   body.page-contact .ova-page-section .wpcf7-form label,
   body.gryon-contact-page .ova-page-section .wpcf7-form label,
   body.page-contact .ova-page-section .event_contact label,
   body.gryon-contact-page .ova-page-section .event_contact label {
     width: 100% !important;
     box-sizing: border-box !important;
     display: block !important;
   }

   body.page-contact .ova-page-section .wpcf7-form input[type="text"],
   body.page-contact .ova-page-section .wpcf7-form input[type="email"],
   body.page-contact .ova-page-section .wpcf7-form input[type="tel"],
   body.page-contact .ova-page-section .wpcf7-form input[type="url"],
   body.page-contact .ova-page-section .wpcf7-form input[type="number"],
   body.page-contact .ova-page-section .wpcf7-form textarea,
   body.page-contact .ova-page-section .wpcf7-form select,
   body.page-contact .ova-page-section .event_contact input[type="text"],
   body.page-contact .ova-page-section .event_contact input[type="email"],
   body.page-contact .ova-page-section .event_contact input[type="tel"],
   body.page-contact .ova-page-section .event_contact textarea,
   body.gryon-contact-page .ova-page-section .wpcf7-form input[type="text"],
   body.gryon-contact-page .ova-page-section .wpcf7-form input[type="email"],
   body.gryon-contact-page .ova-page-section .wpcf7-form input[type="tel"],
   body.gryon-contact-page .ova-page-section .wpcf7-form input[type="url"],
   body.gryon-contact-page .ova-page-section .wpcf7-form input[type="number"],
   body.gryon-contact-page .ova-page-section .wpcf7-form textarea,
   body.gryon-contact-page .ova-page-section .wpcf7-form select,
   body.gryon-contact-page .ova-page-section .event_contact input[type="text"],
   body.gryon-contact-page .ova-page-section .event_contact input[type="email"],
   body.gryon-contact-page .ova-page-section .event_contact input[type="tel"],
   body.gryon-contact-page .ova-page-section .event_contact textarea {
     font-weight: normal !important;
   }

   /* Page Contact : zone message plus basse ; focus identique aux autres champs CF7 */
   body.page-contact .ova-page-section .wpcf7-form textarea,
   body.page-contact .ova-page-section .wpcf7-form textarea.wpcf7-textarea,
   body.page-contact .ova-page-section .event_contact textarea,
   body.gryon-contact-page .ova-page-section .wpcf7-form textarea,
   body.gryon-contact-page .ova-page-section .wpcf7-form textarea.wpcf7-textarea,
   body.gryon-contact-page .ova-page-section .event_contact textarea {
     width: 100% !important;
     max-width: 100% !important;
     min-width: 0 !important;
     min-height: 6rem !important;
     height: 15rem !important;
     max-height: 24rem !important;
     resize: vertical !important;
     box-sizing: border-box !important;
   }

   body.page-contact .ova-page-section .wpcf7-form input.wpcf7-form-control:focus:not([type="submit"]),
   body.page-contact .ova-page-section .wpcf7-form input.wpcf7-form-control:focus-visible:not([type="submit"]),
   body.page-contact .ova-page-section .wpcf7-form textarea.wpcf7-form-control:focus,
   body.page-contact .ova-page-section .wpcf7-form textarea.wpcf7-form-control:focus-visible,
   body.gryon-contact-page .ova-page-section .wpcf7-form input.wpcf7-form-control:focus:not([type="submit"]),
   body.gryon-contact-page .ova-page-section .wpcf7-form input.wpcf7-form-control:focus-visible:not([type="submit"]),
   body.gryon-contact-page .ova-page-section .wpcf7-form textarea.wpcf7-form-control:focus,
   body.gryon-contact-page .ova-page-section .wpcf7-form textarea.wpcf7-form-control:focus-visible {
     border-color: var(--gryon-text) !important;
     outline: none !important;
   }

   /* Page Contact : Envoyer — aligné sur .ccg-btn-saison (bloc rouge custom.css § boutons) */
   body.page-contact .ova-page-section .wpcf7-form input[type="submit"],
   body.page-contact .ova-page-section input.wpcf7-form-control.wpcf7-submit.has-spinner,
   body.page-contact .ova-page-section .event_contact .submit input.wpcf7-submit,
   body.page-contact .ova-page-section .event_contact .submit .wpcf7-submit {
     display: inline-block !important;
     width: auto !important;
     max-width: none !important;
     font-family: Inter, system-ui, sans-serif !important;
     font-size: 12px !important;
     font-weight: 500 !important;
     letter-spacing: 0.2em !important;
     text-transform: uppercase !important;
     text-decoration: none !important;
     padding: 14px 32px !important;
     background: var(--gryon-red) !important;
     background-color: var(--gryon-red) !important;
     color: #fff !important;
     border: 1px solid var(--gryon-red) !important;
     border-radius: 0 !important;
     cursor: pointer !important;
     box-sizing: border-box !important;
     transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease !important;
     -webkit-appearance: none !important;
     appearance: none !important;
   }

   body.page-contact .ova-page-section .wpcf7-form input[type="submit"]:hover,
   body.page-contact .ova-page-section .wpcf7-form input[type="submit"]:focus,
   body.page-contact .ova-page-section input.wpcf7-form-control.wpcf7-submit.has-spinner:hover,
   body.page-contact .ova-page-section input.wpcf7-form-control.wpcf7-submit.has-spinner:focus,
   body.page-contact .ova-page-section .event_contact .submit input.wpcf7-submit:hover,
   body.page-contact .ova-page-section .event_contact .submit input.wpcf7-submit:focus,
   body.page-contact .ova-page-section .event_contact .submit .wpcf7-submit:hover,
   body.page-contact .ova-page-section .event_contact .submit .wpcf7-submit:focus {
     background: var(--gryon-red-dark) !important;
     background-color: var(--gryon-red-dark) !important;
     border-color: var(--gryon-red-dark) !important;
     color: #fff !important;
   }

   @media (max-width: 992px) {
     body.page-contact .ova-page-section .wpcf7-form input[type="submit"],
     body.page-contact .ova-page-section input.wpcf7-form-control.wpcf7-submit.has-spinner,
     body.page-contact .ova-page-section .event_contact .submit input.wpcf7-submit,
     body.page-contact .ova-page-section .event_contact .submit .wpcf7-submit {
       width: 100% !important;
       max-width: 100% !important;
       display: block !important;
     }
   }

   /* Page Contact — erreurs CF7 visibles (champ + bandeau) */
   body.page-contact .ova-page-section .wpcf7-form-control-wrap,
   body.gryon-contact-page .ova-page-section .wpcf7-form-control-wrap {
     overflow: visible !important;
   }

   body.page-contact .ova-page-section .wpcf7.use-floating-validation-tip .wpcf7-not-valid-tip,
   body.gryon-contact-page .ova-page-section .wpcf7.use-floating-validation-tip .wpcf7-not-valid-tip {
     position: static !important;
     top: auto !important;
     left: auto !important;
     z-index: auto !important;
     width: auto !important;
     max-width: 100% !important;
   }

   body.page-contact .ova-page-section .wpcf7-form .wpcf7-not-valid-tip,
   body.gryon-contact-page .ova-page-section .wpcf7-form .wpcf7-not-valid-tip {
     display: block !important;
     visibility: visible !important;
     opacity: 1 !important;
     margin-top: 0.4rem !important;
     margin-bottom: 0.35rem !important;
     font-family: Inter, system-ui, sans-serif !important;
     font-size: 13px !important;
     font-weight: 500 !important;
     line-height: 1.35 !important;
     color: #c92626 !important;
   }

   body.page-contact .ova-page-section .wpcf7-form .wpcf7-not-valid,
   body.gryon-contact-page .ova-page-section .wpcf7-form .wpcf7-not-valid {
     border-color: #c92626 !important;
   }

   body.page-contact .ova-page-section .wpcf7 form .wpcf7-response-output,
   body.gryon-contact-page .ova-page-section .wpcf7 form .wpcf7-response-output {
     margin: 1rem 0 0 !important;
     padding: 0.65rem 1rem !important;
     border-width: 2px !important;
     border-style: solid !important;
     font-family: Inter, system-ui, sans-serif !important;
     font-size: 14px !important;
     line-height: 1.45 !important;
     clear: both !important;
   }

   body.page-contact .ova-page-section .wpcf7 form.invalid .wpcf7-response-output,
   body.page-contact .ova-page-section .wpcf7 form.unaccepted .wpcf7-response-output,
   body.page-contact .ova-page-section .wpcf7 form.payment-required .wpcf7-response-output,
   body.gryon-contact-page .ova-page-section .wpcf7 form.invalid .wpcf7-response-output,
   body.gryon-contact-page .ova-page-section .wpcf7 form.unaccepted .wpcf7-response-output,
   body.gryon-contact-page .ova-page-section .wpcf7 form.payment-required .wpcf7-response-output {
     border-color: #d4a017 !important;
     background: rgba(255, 185, 0, 0.1) !important;
     color: var(--gryon-text) !important;
   }

   body.page-contact .ova-page-section .wpcf7 form.failed .wpcf7-response-output,
   body.page-contact .ova-page-section .wpcf7 form.aborted .wpcf7-response-output,
   body.gryon-contact-page .ova-page-section .wpcf7 form.failed .wpcf7-response-output,
   body.gryon-contact-page .ova-page-section .wpcf7 form.aborted .wpcf7-response-output {
     border-color: #dc3232 !important;
     background: rgba(220, 50, 50, 0.07) !important;
     color: var(--gryon-text) !important;
   }

   body.page-contact .ova-page-section .wpcf7 form.sent .wpcf7-response-output,
   body.gryon-contact-page .ova-page-section .wpcf7 form.sent .wpcf7-response-output {
     border-color: #2f8f3a !important;
     background: rgba(70, 180, 80, 0.1) !important;
     color: var(--gryon-text) !important;
   }
   
   /* ============================================================================
      4.7. FOOTER LEGACY
      ============================================================================ */
   
   .footer-hero {
     position: relative !important;
     z-index: 200 !important;
     margin: 0 !important;
     clear: both !important;
     display: none !important;
   }
   
   body.home .concert-countdown-wrapper { overflow: hidden !important; }
   .concert-countdown-content .btn-concert { margin-right: 20px; }
   body.home { padding-bottom: 0 !important; overflow-x: hidden; }
   body.home .main-content-wrapper { position: relative; z-index: 1; }
   
   /* ============================================================================
      5. NEWSLETTER (formulaire Infomaniak)
      ============================================================================ */
   
   .footer-newsletter-form { margin-top: 15px; width: 100%; }
   
   .footer-newsletter-form form,
   .footer-newsletter-form > div,
   .footer-newsletter-form [class*="inf-main"],
   .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1,
   .footer-newsletter-form form > *,
   .footer-newsletter-form > div > *,
   .footer-newsletter-form [class*="inf-main"] > *:not(.inf-success),
   .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 > *:not(.inf-success) {
     display: flex !important;
     flex-direction: row !important;
     align-items: center !important;
     flex-wrap: nowrap !important;
     gap: 10px !important;
     justify-content: center !important;
   }
   
   /* Éviter le gap 10px sur la racine .inf-main (lignes 705–717) : il sépare h3 / span / .inf-content
      et crée un vide à gauche du champ. L’espacement champ|bouton reste sur .inf-content. */
   .gryon-footer-newsletter .footer-newsletter-form [class*="inf-main"] {
     gap: 0 !important;
     justify-content: flex-start !important;
     align-items: center !important;
   }
   
   /* 705–719 : form > * a justify-content:center → le champ est centré dans .inf-input ; on force la gauche */
   .gryon-footer-newsletter .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 form > *,
   .gryon-footer-newsletter .footer-newsletter-form .gryon-inf-webform-root form > * {
     justify-content: flex-start !important;
   }
   
   .footer-newsletter-form .inf-success,
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-success {
     display: none;
     width: 100% !important;
     flex: 0 0 100% !important;
     flex-basis: 100% !important;
     min-width: 0 !important;
     max-width: 100% !important;
     margin-top: 0.75em;
     padding: 0;
     order: 2;
     box-sizing: border-box !important;
   }
   
   .footer-newsletter-form .inf-success[style*="display: block"],
   .footer-newsletter-form .inf-success[style*="display:block"],
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-success[style*="display: block"],
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-success[style*="display:block"] {
     display: block !important;
   }
   
   .footer-newsletter-form div:has(> .inf-success),
   .footer-newsletter-form form:has(> .inf-success),
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 form:has(.inf-success),
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 div:has(> .inf-success) {
     flex-wrap: wrap !important;
   }
   
   .footer-newsletter-form input[type="email"][style*="display: none"],
   .footer-newsletter-form input[type="email"][style*="display:none"],
   .footer-newsletter-form input[name="email"][style*="display: none"],
   .footer-newsletter-form input[name="email"][style*="display:none"] {
     display: none !important;
     position: absolute !important;
     width: 0 !important;
     height: 0 !important;
     min-width: 0 !important;
     max-width: 0 !important;
     margin: 0 !important;
     padding: 0 !important;
     border: none !important;
     overflow: hidden !important;
     clip: rect(0,0,0,0) !important;
     flex: 0 0 0 !important;
   }
   
   .footer-newsletter-form input[type="email"]:not([style*="display: none"]):not([style*="display:none"]),
   .footer-newsletter-form input[type="text"] {
     flex: 1 !important;
     min-width: 286px !important;
     max-width: min(100%, 420px) !important;
     padding: 0 15px !important;
     min-height: var(--gryon-newsletter-control-height) !important;
     height: var(--gryon-newsletter-control-height) !important;
     box-sizing: border-box !important;
     line-height: 1.3 !important;
     border: 1px solid rgba(255,255,255,0.3) !important;
     border-radius: 0 !important;
     background: rgba(255,255,255,0.1) !important;
     color: #fff !important;
   }
   .footer-newsletter-form input[type="email"]:not([style*="display: none"]):not([style*="display:none"]) {
     font-size: 15px !important;
   }
   .footer-newsletter-form input[type="text"] {
     font-size: 14px !important;
   }
   
   .footer-newsletter-form input[type="email"]::placeholder,
   .footer-newsletter-form input[type="text"]::placeholder { color: rgba(255,255,255,0.7) !important; }
   
   /* S'abonner : même rendu que .ccg-btn-saison (§ BOUTONS ROUGES) */
   .footer-newsletter-form button,
   .footer-newsletter-form input[type="submit"],
   .footer-newsletter-form .btn-subscribe {
     display: inline-block !important;
     font-family: Inter, system-ui, sans-serif !important;
     font-size: 12px !important;
     font-weight: 500 !important;
     letter-spacing: 0.2em !important;
     text-transform: uppercase !important;
     text-decoration: none !important;
     text-align: center !important;
     padding-top: 14px !important;
     padding-right: 32px !important;
     padding-bottom: 14px !important;
     padding-left: 32px !important;
     padding-block: 14px !important;
     padding-inline: 32px !important;
     min-height: 0 !important;
     height: auto !important;
     box-sizing: border-box !important;
     line-height: 1.2 !important;
     white-space: nowrap !important;
     flex-shrink: 0 !important;
     cursor: pointer !important;
     background: var(--gryon-red) !important;
     background-color: var(--gryon-red) !important;
     color: #fff !important;
     border: 1px solid var(--gryon-red) !important;
     border-radius: 0 !important;
     transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease !important;
     -webkit-appearance: none !important;
     appearance: none !important;
   }
   
   /* Conteneur webform Infomaniak (classe fixe de l’embed statslive, voir commentaire en tête de fichier) */
   .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1,
   .gryon-footer-newsletter .inf-main_f8d1fd344c855b7d20e10071befd4ae1,
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 {
     background: rgba(0,0,0,0.3) !important;
     color: #fff !important;
     border-radius: 8px;
     padding: var(--gryon-newsletter-inf-main-padding) !important;
     max-width: 500px;
     margin: 0 auto !important;
     justify-content: center !important;
     align-items: center !important;
     align-content: center !important;
   }
   
   .gryon-footer-newsletter .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1,
   .gryon-footer-newsletter .footer-newsletter-form .gryon-inf-webform-root {
     margin-left: 0 !important;
     margin-right: 0 !important;
     justify-content: flex-start !important;
     align-items: center !important;
     align-content: center !important;
   }
   
   .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-content,
   .gryon-footer-newsletter .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-content {
     background: transparent !important;
   }
   
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-content,
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-content form,
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 form {
     display: flex !important;
     margin: 0 !important;
     padding: 0 !important;
   }
   
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-content {
     justify-content: center !important;
     align-items: center !important;
     flex-wrap: wrap !important;
     gap: 10px !important;
   }
   
   .gryon-footer-newsletter .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-content,
   .gryon-footer-newsletter .gryon-inf-webform-root .inf-content {
     justify-content: flex-start !important;
     align-items: center !important;
   }
   
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1.gryon-inf-webform-root .inf-content,
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1.gryon-inf-webform-root form > * {
     justify-content: flex-start !important;
   }
   
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1.gryon-inf-webform-root [class*="inf-input"] {
     justify-content: flex-start !important;
   }
   
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 h4,
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 span {
     color: #fff !important;
     font-family: Inter, system-ui, sans-serif !important;
   }
   
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 > *:not(.inf-success) {
     flex: 0 0 auto !important;
     max-width: 100% !important;
     order: 1 !important;
   }
   
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 input[type="email"],
   .gryon-footer-newsletter .inf-main_f8d1fd344c855b7d20e10071befd4ae1 input[type="email"],
   .gryon-footer-newsletter .gryon-inf-webform-root input[type="email"],
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1.gryon-inf-webform-root input[type="email"] {
     background: #fff !important;
     color: #000 !important;
     border-radius: 0 !important;
     padding: 0 14px !important;
     min-height: var(--gryon-newsletter-control-height) !important;
     height: var(--gryon-newsletter-control-height) !important;
     box-sizing: border-box !important;
     line-height: 1.2 !important;
     border: none !important;
     flex: 1 1 auto !important;
     min-width: 200px !important;
     max-width: min(100%, 440px) !important;
     width: auto !important;
     font-size: 15px !important;
     text-align: left !important;
   }
   
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 input[type="email"]::placeholder { color: #999 !important; }
   
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-submit,
   .footer-newsletter-form [class*="inf-main"] .inf-submit,
   .gryon-footer-newsletter [class*="inf-main"] .inf-submit {
     flex-shrink: 0 !important;
     margin: 0 !important;
     padding: 0 !important;
     overflow: visible !important;
   }
   
   /* Wrappers Infomaniak : padding/marge par défaut = faux décalage à gauche du champ */
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 [class*="inf-input"],
   .gryon-footer-newsletter .inf-main_f8d1fd344c855b7d20e10071befd4ae1 [class*="inf-input"] {
     margin: 0 !important;
     padding: 0 !important;
     border: none !important;
     border-radius: 0 !important;
     min-width: 0 !important;
     box-sizing: border-box !important;
   }
   
   /* Infomaniak : .inf-rgpd vide (ou seulement scripts) entre le champ et le bouton — avec
      flex + gap sur .inf-content, ce bloc compte comme une ligne et double l’espace. */
   .footer-newsletter-form [class*="inf-main"] .inf-rgpd:empty,
   .gryon-footer-newsletter [class*="inf-main"] .inf-rgpd:empty,
   .gryon-footer-newsletter .gryon-inf-webform-root .inf-rgpd:empty,
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-rgpd:empty {
     display: none !important;
   }
   
   /* Uniquement scripts (embed Infomaniak) : pas de contenu RGPD à afficher */
   .footer-newsletter-form [class*="inf-main"] .inf-rgpd:has(> script):not(:has(> *:not(script):not(style))),
   .gryon-footer-newsletter [class*="inf-main"] .inf-rgpd:has(> script):not(:has(> *:not(script):not(style))),
   .gryon-footer-newsletter .gryon-inf-webform-root .inf-rgpd:has(> script):not(:has(> *:not(script):not(style))),
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-rgpd:has(> script):not(:has(> *:not(script):not(style))) {
     display: none !important;
   }
   
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-submit input[type="submit"],
   .gryon-footer-newsletter .inf-main_f8d1fd344c855b7d20e10071befd4ae1 input[type="submit"],
   .gryon-footer-newsletter .gryon-inf-webform-root input[type="submit"],
   .footer-newsletter-form [class*="inf-main"] .inf-submit input[type="submit"],
   .gryon-footer-newsletter [class*="inf-main"] .inf-submit input[type="submit"] {
     display: inline-block !important;
     font-family: Inter, system-ui, sans-serif !important;
     font-size: 12px !important;
     font-weight: 500 !important;
     letter-spacing: 0.2em !important;
     text-transform: uppercase !important;
     text-decoration: none !important;
     text-align: center !important;
     padding-top: 14px !important;
     padding-right: 32px !important;
     padding-bottom: 14px !important;
     padding-left: 32px !important;
     padding-block: 14px !important;
     padding-inline: 32px !important;
     min-height: 0 !important;
     height: auto !important;
     box-sizing: border-box !important;
     line-height: 1.2 !important;
     margin: 0 !important;
     white-space: nowrap !important;
     cursor: pointer !important;
     background: var(--gryon-red) !important;
     background-color: var(--gryon-red) !important;
     color: #fff !important;
     border: 1px solid var(--gryon-red) !important;
     border-radius: 0 !important;
     transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease !important;
     /* Sans ceci, Chrome / Safari gardent le « bouton natif » : le padding compte mais le rendu ne suit pas .ccg-btn-saison */
     -webkit-appearance: none !important;
     appearance: none !important;
     outline: none !important;
   }

   .footer-newsletter-form [class*="inf-main"] .inf-submit input[type="submit"]::-moz-focus-inner,
   .gryon-footer-newsletter [class*="inf-main"] .inf-submit input[type="submit"]::-moz-focus-inner,
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-submit input[type="submit"]::-moz-focus-inner {
     border: 0 !important;
     padding: 0 !important;
   }
   
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-success {
     margin-top: 0.75em !important;
     order: 2 !important;
   }
   
   .footer-newsletter-form .inf-btn,
   .footer-newsletter-form .inf-success .inf-btn,
   .footer-newsletter-form .inf-success a.inf-btn,
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-btn,
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-success .inf-btn,
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-success a.inf-btn {
     display: none !important;
     visibility: hidden !important;
   }
   
   .footer-newsletter-form .inf-success h4,
   .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-success h4 {
     font-size: 16px !important;
     margin: 0 !important;
     overflow-wrap: break-word !important;
     word-wrap: break-word !important;
   }
   
   .footer-newsletter-form .altcha-main .altcha-label,
   .altcha-main .altcha-label,
   [class*="altcha-main"] .altcha-label { color: #333 !important; margin-bottom: 0 !important; }
   
   .footer-newsletter-form .altcha-main .altcha-spinner,
   .altcha-main .altcha-spinner,
   [class*="altcha-main"] .altcha-spinner { color: #333 !important; border-color: #333 !important; }
   
   .inf-form style,
   .footer-newsletter-form style { display: none !important; visibility: hidden !important; }
   
   @media (min-width: 769px) {
     .inf-main_f8d1fd344c855b7d20e10071befd4ae1,
     .inf-main_f8d1fd344c855b7d20e10071befd4ae1 form,
     .inf-main_f8d1fd344c855b7d20e10071befd4ae1 > div:not(.inf-success),
     .inf-main_f8d1fd344c855b7d20e10071befd4ae1 div:has(.inf-submit),
     .inf-main_f8d1fd344c855b7d20e10071befd4ae1 div:has(input[type="submit"]) {
       display: flex !important;
       flex-direction: row !important;
       align-items: center !important;
       gap: 10px !important;
       flex-wrap: wrap !important;
     }
   
     .inf-main_f8d1fd344c855b7d20e10071befd4ae1 div:has(.inf-submit),
     .inf-main_f8d1fd344c855b7d20e10071befd4ae1 div:has(input[type="submit"]) {
       flex-wrap: nowrap !important;
     }
   }
   
   /* (ancienne règle max-height:10px sur 993–1074px supprimée : elle écrasait le bloc) */
   
   @media (max-width: 992px) {
     .inf-main_f8d1fd344c855b7d20e10071befd4ae1 {
       padding: var(--gryon-newsletter-inf-main-padding) !important;
       min-height: 0 !important;
       max-height: none !important;
       flex: 0 0 auto !important;
     }
   }
   
   /* Tablette + mobile : pile email / bouton ; même largeur (stretch + bouton 100 %) */
   @media (max-width: 991px) {
     .footer-newsletter-form form,
     .footer-newsletter-form > div,
     .footer-newsletter-form [class*="inf-main"] > *:not(.inf-success),
     .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 > *:not(.inf-success) {
       flex-direction: column !important;
       align-items: stretch !important;
       gap: 2px !important;
     }
   
     .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1,
     .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 form,
     .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 form > div,
     .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 > div:not(.inf-success),
     .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-content,
     .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 div:has(.inf-submit),
     .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 div:has(input[type="submit"]) {
       display: flex !important;
       flex-direction: column !important;
       align-items: stretch !important;
       justify-content: center !important;
       gap: 2px !important;
       text-align: center !important;
     }
   
     .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-content {
       width: 100% !important;
       max-width: min(100%, 440px) !important;
       align-self: center !important;
       align-items: stretch !important;
       box-sizing: border-box !important;
     }
   
     .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 [class*="inf-input"] {
       width: 100% !important;
       align-self: stretch !important;
       box-sizing: border-box !important;
     }
   
     .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 input[type="email"],
     .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 input[type="text"],
     .footer-newsletter-form input[type="email"],
     .footer-newsletter-form input[type="text"] {
       width: 100% !important;
       max-width: 100% !important;
       min-width: 0 !important;
       margin-left: auto !important;
       margin-right: auto !important;
       box-sizing: border-box !important;
     }
   
     .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-submit {
       width: 100% !important;
       max-width: 100% !important;
       align-self: stretch !important;
       box-sizing: border-box !important;
     }
   
     .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 input[type="submit"],
     .footer-newsletter-form button,
     .footer-newsletter-form input[type="submit"],
     .footer-newsletter-form .btn-subscribe {
       width: 100% !important;
       max-width: 100% !important;
       display: flex !important;
       align-items: center !important;
       justify-content: center !important;
       margin-left: auto !important;
       margin-right: auto !important;
       box-sizing: border-box !important;
     }
   
     /* Gryon footer : même pile ; alignement du texte à gauche, largeurs identiques email / bouton */
     .gryon-footer-newsletter .footer-newsletter-form form,
     .gryon-footer-newsletter .footer-newsletter-form > div,
     .gryon-footer-newsletter .footer-newsletter-form [class*="inf-main"] > *:not(.inf-success),
     .gryon-footer-newsletter .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 > *:not(.inf-success) {
       align-items: stretch !important;
     }
   
     .gryon-footer-newsletter .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1,
     .gryon-footer-newsletter .footer-newsletter-form .gryon-inf-webform-root,
     .gryon-footer-newsletter .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 form,
     .gryon-footer-newsletter .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 form > div,
     .gryon-footer-newsletter .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 > div:not(.inf-success),
     .gryon-footer-newsletter .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-content,
     .gryon-footer-newsletter .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 div:has(.inf-submit),
     .gryon-footer-newsletter .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 div:has(input[type="submit"]) {
       align-items: stretch !important;
       justify-content: flex-start !important;
       gap: 2px !important;
       text-align: left !important;
     }
   
     .gryon-footer-newsletter .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-content,
     .gryon-footer-newsletter .footer-newsletter-form .gryon-inf-webform-root .inf-content {
       align-self: flex-start !important;
       width: 100% !important;
       max-width: min(100%, 440px) !important;
       align-items: stretch !important;
       box-sizing: border-box !important;
     }
   
     .gryon-footer-newsletter .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 [class*="inf-input"],
     .gryon-footer-newsletter .footer-newsletter-form .gryon-inf-webform-root [class*="inf-input"] {
       width: 100% !important;
       align-self: stretch !important;
       box-sizing: border-box !important;
     }
   
     .gryon-footer-newsletter .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 input[type="email"],
     .gryon-footer-newsletter .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 input[type="text"],
     .gryon-footer-newsletter .footer-newsletter-form input[type="email"],
     .gryon-footer-newsletter .footer-newsletter-form input[type="text"] {
       width: 100% !important;
       max-width: 100% !important;
       min-width: 0 !important;
       margin-left: 0 !important;
       margin-right: 0 !important;
       box-sizing: border-box !important;
     }
   
     .gryon-footer-newsletter .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-submit,
     .gryon-footer-newsletter .footer-newsletter-form .gryon-inf-webform-root .inf-submit {
       width: 100% !important;
       max-width: 100% !important;
       align-self: stretch !important;
       box-sizing: border-box !important;
     }
   
     .gryon-footer-newsletter .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1 input[type="submit"],
     .gryon-footer-newsletter .footer-newsletter-form .gryon-inf-webform-root input[type="submit"],
     .gryon-footer-newsletter .footer-newsletter-form button,
     .gryon-footer-newsletter .footer-newsletter-form input[type="submit"],
     .gryon-footer-newsletter .footer-newsletter-form .btn-subscribe {
       width: 100% !important;
       max-width: 100% !important;
       display: flex !important;
       align-items: center !important;
       justify-content: center !important;
       margin-left: 0 !important;
       margin-right: 0 !important;
       box-sizing: border-box !important;
     }
   
     .inf-main_f8d1fd344c855b7d20e10071befd4ae1 { max-height: none !important; }
   }
   
   /* .inf-main_f8d1fd… : padding uniforme ; aligné à gauche sous le titre / le texte */
   .gryon-footer-newsletter .inf-main_f8d1fd344c855b7d20e10071befd4ae1,
   .gryon-footer-newsletter .gryon-inf-webform-root {
     display: flex !important;
     flex-direction: column !important;
     align-items: flex-start !important;
     justify-content: flex-start !important;
     gap: 0 !important;
     /* fit-content + margin-right:auto créait ~200–300px de marge « fantôme » en colonne footer flex */
     width: 100% !important;
     max-width: min(100%, 520px) !important;
     box-sizing: border-box !important;
     margin: 0 !important;
     margin-right: 0 !important;
     padding: var(--gryon-newsletter-inf-main-padding) !important;
     background: rgba(0, 0, 0, 0.28) !important;
     border-radius: 0 !important;
     color: #fff !important;
   }
   
   .gryon-footer-newsletter .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-content,
   .gryon-footer-newsletter .inf-main_f8d1fd344c855b7d20e10071befd4ae1 > div:not(.inf-success) {
     background: transparent !important;
   }
   
   .gryon-footer-newsletter .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-content,
   .gryon-footer-newsletter .inf-main_f8d1fd344c855b7d20e10071befd4ae1 .inf-content form,
   .gryon-footer-newsletter .gryon-inf-webform-root .inf-content,
   .gryon-footer-newsletter .gryon-inf-webform-root .inf-content form {
     margin: 0 !important;
     padding: 0 !important;
     width: auto !important;
     max-width: 100% !important;
     box-sizing: border-box !important;
     flex: 0 1 auto !important;
     align-self: flex-start !important;
   }
   
   /* ============================================================================
      6. CARTES HISTORIQUES
      ============================================================================ */
   
   .historical-card {
     background: #fff;
     border-radius: 4px;
     overflow: hidden;
     box-shadow: 0 2px 8px rgba(0,0,0,0.08);
     transition: all var(--gryon-transition);
     width: 100%;
     max-width: 100%;
   }
   .historical-card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.12); }
   
   .date-header {
     display: flex;
     align-items: center;
     gap: 12px;
     padding: 20px;
     background: #f8f9fa;
     border-bottom: 1px solid #e0e0e0;
     flex-wrap: wrap;
   }
   .date-icon { font-size: 20px; flex-shrink: 0; }
   .date-header h3 { margin: 0; color: #333; font-size: 16px; font-weight: 600; flex: 1; min-width: 200px; }
   
   .event-content { padding: 25px; display: flex; flex-direction: column; gap: 15px; }
   .event-title { display: flex; align-items: center; gap: 10px; font-size: 20px; font-weight: 600; color: #333; margin: 0; flex-wrap: wrap; }
   .music-icon { font-size: 24px; flex-shrink: 0; }
   .event-info { margin: 0; }
   
   .location { display: flex; align-items: center; gap: 8px; color: #666; font-size: 14px; margin: 0; flex-wrap: wrap; }
   .location-icon { font-size: 16px; flex-shrink: 0; }
   
   .event-description { color: #555; font-size: 15px; line-height: 1.6; margin: 0; word-wrap: break-word; overflow-wrap: break-word; }
   .event-description strong { color: #333; font-weight: 600; }
   
   .event-story {
     background: #f2f2f2;
     padding: 15px;
     border-left: 3px solid var(--gryon-red);
     border-radius: 3px;
     margin: 0;
   }
   .event-story p { margin: 0; color: #333; font-size: 14px; line-height: 1.7; word-wrap: break-word; overflow-wrap: break-word; }
   .event-story strong { color: var(--gryon-red); font-weight: 600; }
   
   .event-action { margin-top: 10px; padding-top: 20px; border-top: 1px solid #e0e0e0; }
   .action-text { color: #666; font-size: 14px; margin: 0 0 12px 0; word-wrap: break-word; overflow-wrap: break-word; }
   
   .btn-programmes { white-space: nowrap; }
   
   /* ============================================================================
      7. RESPONSIVE — desktop → tablette (navbar)
      ============================================================================ */
   
   @media (max-width: 992px) {
     .ova_header.ovatheme_header_v2 .navbar,
     .ova_header .navbar { padding-top: 8px !important; padding-bottom: 8px !important; min-height: auto !important; }
     .ova_header .scroll_fixed { padding-top: 8px !important; padding-bottom: 8px !important; }
   
     .ova_header .navbar-brand img,
     .ova_header.ovatheme_header_v2 .navbar-brand img {
       max-height: 180px !important;
       max-width: 380px !important;
       width: auto !important;
       height: auto !important;
       object-fit: contain !important;
     }
   
     .ova_header .navbar-brand,
     .ova_header.ovatheme_header_v2 .navbar-brand { padding: 6px 16px !important; }
   
     .ova_header .ova-logo .navbar-toggle,
     .ova_header.ovatheme_header_v2 .ova-logo .navbar-toggle { margin-top: 0 !important; margin-bottom: 0 !important; }
   
     .ova_header .navbar-toggle .icon-bar,
     .ova_header .navbar-toggle:hover .icon-bar,
     .ova_header .navbar-toggle:focus .icon-bar { background-color: #fff !important; }
   
     .ova_header .navbar-toggle { border-color: rgba(255,255,255,0.6) !important; }
     .ova_header .navbar-toggle:hover,
     .ova_header .navbar-toggle:focus { border-color: #fff !important; }
   
     .ova_header .scroll_fixed .container,
     .ova_header.ovatheme_header_v2 .scroll_fixed .container,
     .ova_header .navbar .container-fluid,
     .ova_header.ovatheme_header_v2 .navbar .container-fluid {
       padding-left: 16px !important;
       padding-right: 16px !important;
     }
   
     .ova_header .scroll_fixed .container .row,
     .ova_header.ovatheme_header_v2 .scroll_fixed .container .row { margin-left: 0 !important; margin-right: 0 !important; }
   
     .ova_header .ova-logo.navbar-header,
     .ova_header.ovatheme_header_v2 .ova-logo.navbar-header {
       display: flex !important;
       align-items: center !important;
       width: 100% !important;
       justify-content: space-between !important;
       flex-direction: row-reverse !important;
     }
   
     .ova_header .navbar-collapse.collapse.in,
     .ova_header.ovatheme_header_v2 .navbar-collapse.collapse.in,
     .ova_header #ovatheme_header_v2.in,
     .ova_header .navbar-collapse.collapse.in ul.nav,
     .ova_header.ovatheme_header_v2 .navbar-collapse.collapse.in ul.nav,
     .ova_header #ovatheme_header_v2.in ul.nav { text-align: right !important; }
   
     .ova_header .navbar-collapse.collapse.in ul.nav,
     .ova_header #ovatheme_header_v2.in ul.nav { align-items: flex-end !important; }
   
     .ova_header #ovatheme_header_v2.in .container-fluid { justify-content: flex-end !important; }
   
   
     .navbar-collapse.collapse.in,
     .ova_header .navbar-collapse.collapse.in,
     .ova_header #ovatheme_header_v2.in { background: transparent !important; }
   
     .navbar-collapse.collapse.in, .navbar-collapse.collapse.in a,
     .ova_header .navbar-collapse.collapse.in, .ova_header .navbar-collapse.collapse.in a,
     .ova_header #ovatheme_header_v2.in, .ova_header #ovatheme_header_v2.in a {
       color: #fff !important;
       -webkit-text-fill-color: #fff !important;
     }
   
     .ova_header .navbar-header { padding: 0; }
   
     .ova_header .navbar-collapse.collapse.in ul.nav.navbar-nav li.dropdown,
     .ova_header #ovatheme_header_v2.in ul.nav.navbar-nav li.dropdown {
       display: flex !important;
       flex-wrap: wrap;
       align-items: center;
       justify-content: flex-end;
     }
   
     .ova_header .navbar-collapse.collapse.in ul.nav.navbar-nav li.dropdown > a,
     .ova_header #ovatheme_header_v2.in ul.nav.navbar-nav li.dropdown > a {
       flex: 0 1 auto;
       min-width: 0;
       text-align: right;
       order: 1;
     }
   
     .ova_header .navbar-collapse.collapse.in ul.nav.navbar-nav li.dropdown button.dropdown-toggle,
     .ova_header #ovatheme_header_v2.in ul.nav.navbar-nav li.dropdown button.dropdown-toggle {
       position: static !important;
       flex-shrink: 0;
       order: -1;
       margin-right: 0.5em;
       background: transparent !important;
       border: none !important;
       box-shadow: none !important;
       padding: 0 0.35em !important;
       margin-top: 3px;
       min-width: 0;
     }
   
     .ova_header .navbar-collapse.collapse.in ul.nav.navbar-nav li.dropdown button.dropdown-toggle i,
     .ova_header #ovatheme_header_v2.in ul.nav.navbar-nav li.dropdown button.dropdown-toggle i { display: none; }
   
     .ova_header .navbar-collapse.collapse.in ul.nav.navbar-nav li.dropdown button.dropdown-toggle::before,
     .ova_header #ovatheme_header_v2.in ul.nav.navbar-nav li.dropdown button.dropdown-toggle::before {
       content: "\f0d7";
       font-family: "Font Awesome 5 Free";
       font-weight: 900;
       display: inline-block;
       color: inherit;
     }
   
     .ova_header .navbar-collapse.collapse.in ul.nav.navbar-nav li.dropdown button.dropdown-toggle:hover,
     .ova_header #ovatheme_header_v2.in ul.nav.navbar-nav li.dropdown button.dropdown-toggle:hover {
       background: transparent !important;
       border: none !important;
     }
   
     .ova_header .navbar-collapse.collapse.in ul.nav.navbar-nav li.dropdown > ul.dropdown-menu,
     .ova_header #ovatheme_header_v2.in ul.nav.navbar-nav li.dropdown > ul.dropdown-menu {
       order: 2;
       width: 100%;
       flex-basis: 100%;
     }
   
     .ova-menu nav ul.nav.navbar-nav,
     .ova_header .navbar-collapse.in ul.nav.navbar-nav,
     .ova_header #ovatheme_header_v2.in ul.nav.navbar-nav { margin-top: 0 !important; margin-bottom: 0 !important; height: auto !important; }
   }
   
   @media (max-width: 480px) {
     .pagination-wrapper .pagination > li a { margin: 5px; }
     #menu-primary-menu { padding-right: 12px !important; }
   }
   
   /* ============================================================================
      8. RESPONSIVE — tablette/mobile navbar
      ============================================================================ */
   
   @media (max-width: 768px) {
     .ova_header { margin-top: 0 !important; padding-top: 0 !important; }
   
     .ova_header .scroll_fixed {
       top: 0 !important; left: 0 !important; right: 0 !important;
       margin-top: 0 !important;
       background-color: rgba(0,0,0,0.85) !important;
       background-image: none !important;
       box-shadow: none !important;
       padding: 10px 0 !important;
       min-height: auto !important;
     }
   
     .ova_header.ovatheme_header_v2 .navbar { padding-top: 6px !important; padding-bottom: 6px !important; min-height: auto !important; }
     .ova_header.ovatheme_header_v2 { min-height: auto !important; }
   
     .ova_header .navbar-header {
       min-height: auto !important;
       display: flex !important;
       flex-direction: row-reverse !important;
       justify-content: space-between !important;
       align-items: center !important;
       flex-wrap: nowrap !important;
       width: 100% !important;
       padding: 0 !important;
     }
   
     .ova_header .navbar-brand.logo_mobile,
     .ova_header.ovatheme_header_v2 .navbar-brand.logo_mobile {
       display: block !important;
       color: rgba(255,255,255,0.85) !important;
       margin-left: 0 !important;
       padding-left: 12px !important;
       padding-right: 8px !important;
       font-size: 18px !important;
       line-height: 1.25 !important;
       max-width: calc(100vw - 120px) !important;
       overflow: hidden !important;
       text-overflow: ellipsis !important;
     }
   
     .ova_header .navbar-brand.logo_mobile img,
     .ova_header.ovatheme_header_v2 .navbar-brand.logo_mobile img {
       max-width: 100% !important;
       width: auto !important;
       height: auto !important;
       object-fit: contain !important;
       display: block !important;
     }
   
     .ova_header .navbar-brand.logo_mobile .blogname,
     .ova_header .navbar-brand.logo_mobile span.blogname,
     .ova_header.ovatheme_header_v2 .navbar-brand.logo_mobile .blogname,
     .ova_header.ovatheme_header_v2 .navbar-brand.logo_mobile span.blogname,
     .ova_header.ovatheme_header_v2 .ova-logo .navbar-brand.logo_mobile span.blogname {
       color: rgba(255,255,255,0.9) !important;
       font-size: 18px !important;
       font-weight: 600 !important;
       line-height: 1.25 !important;
     }
   
     .navbar-brand.logo,
     .navbar-brand.logo_scroll { display: none !important; }
   
     .ova_header .navbar-toggle {
       margin-top: 0 !important;
       margin-bottom: 0 !important;
       padding: 6px 8px !important;
       border-color: rgba(255,255,255,0.5) !important;
     }
   
     .ova_header .navbar-toggle .icon-bar { background-color: #fff !important; }
     .ova_header .navbar-toggle:hover,
     .ova_header .navbar-toggle:focus { background-color: transparent !important; border-color: #fff !important; }
     .ova_header .navbar-toggle:hover .icon-bar,
     .ova_header .navbar-toggle:focus .icon-bar { background-color: #fff !important; }
   
     .ova_header.ovatheme_header_v2 .navbar-collapse,
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 {
       transition: max-height 0.4s cubic-bezier(0.4,0,0.2,1), opacity 0.35s ease, padding 0.35s ease !important;
     }
   
     .ova_header.ovatheme_header_v2 .navbar-collapse.collapse:not(.in),
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2.collapse:not(.in) {
       max-height: 0 !important;
       opacity: 0 !important;
       overflow: hidden !important;
       padding: 0 !important;
       margin-top: 0 !important;
     }
   
     .ova_header.ovatheme_header_v2 .navbar-collapse.in,
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2.in {
       max-height: 80vh !important;
       opacity: 1 !important;
       overflow-y: auto !important;
       overflow-x: hidden !important;
       text-align: right !important;
       padding: 0 !important;
     }
   
     .ova_header.ovatheme_header_v2 .navbar-collapse,
     .ova_header.ovatheme_header_v2 .navbar-collapse.collapse,
     .ova_header.ovatheme_header_v2 .navbar-collapse.in,
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2,
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2.in {
       background: transparent !important;
       border-top: 1px solid rgba(255,255,255,0.15) !important;
       margin-left: -15px !important;
       margin-right: -15px !important;
     }
   
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 nav.navbar,
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 .container-fluid,
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 ul.nav.navbar-nav,
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 .dropdown-menu { background: transparent !important; }
   
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2.in .container-fluid {
       display: flex !important;
       justify-content: flex-end !important;
     }
   
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2.in ul.nav.navbar-nav {
       flex-direction: column !important;
       align-items: flex-end !important;
       width: 100%;
     }
   
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 ul.nav.navbar-nav li a,
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 ul.nav.navbar-nav > li > a,
     .ova_header.ovatheme_header_v2 .ova-menu ul.navbar-nav li a,
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 .dropdown-menu li a,
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 ul.dropdown-menu li a {
       color: rgba(255,255,255,0.9) !important;
       -webkit-text-fill-color: rgba(255,255,255,0.9) !important;
       opacity: 1 !important;
     }
   
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 ul.nav.navbar-nav li a:hover,
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 ul.nav.navbar-nav li a:focus,
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 .dropdown-menu li a:hover,
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 ul.dropdown-menu li a:hover {
       color: var(--gryon-red) !important;
       -webkit-text-fill-color: var(--gryon-red) !important;
       background-color: rgba(255,255,255,0.08) !important;
       opacity: 1 !important;
     }
   
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 .dropdown-menu {
       border: 1px solid rgba(255,255,255,0.1) !important;
       border-left: none !important;
       border-right: none !important;
     }
   
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 ul.nav.navbar-nav li button.dropdown-toggle { color: rgba(255,255,255,0.9) !important; }
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 ul.nav.navbar-nav li button.dropdown-toggle:hover { color: var(--gryon-red) !important; }
   
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 ul.nav.navbar-nav,
     .ova_header.ovatheme_header_v2 .navbar-collapse.in,
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2.in {
       -ms-overflow-style: none !important;
       scrollbar-width: none !important;
     }
   
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2.in { overflow-x: hidden !important; }
   
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2::-webkit-scrollbar,
     .ova_header.ovatheme_header_v2 #ovatheme_header_v2 ul.nav.navbar-nav::-webkit-scrollbar {
       display: none !important;
       width: 0 !important;
       height: 0 !important;
     }
   
     body .ova_header.ovatheme_header_v2:not(.shrink) .navbar-collapse,
     body .ova_header.ovatheme_header_v2:not(.shrink) .navbar-collapse.in,
     body .ova_header.ovatheme_header_v2:not(.shrink) #ovatheme_header_v2,
     body .ova_header.ovatheme_header_v2:not(.shrink) #ovatheme_header_v2.in {
       background: transparent !important;
       border-top-color: rgba(255,255,255,0.2) !important;
     }
   
     body .ova_header.ovatheme_header_v2:not(.shrink) #ovatheme_header_v2 ul.nav.navbar-nav li a,
     body .ova_header.ovatheme_header_v2:not(.shrink) #ovatheme_header_v2 ul.nav.navbar-nav > li > a,
     body .ova_header.ovatheme_header_v2:not(.shrink) .ova-menu ul.navbar-nav li a,
     body .ova_header.ovatheme_header_v2:not(.shrink) #ovatheme_header_v2 .dropdown-menu li a,
     body .ova_header.ovatheme_header_v2:not(.shrink) #ovatheme_header_v2 ul.dropdown-menu li a {
       color: #fff !important;
       -webkit-text-fill-color: #fff !important;
     }
   
     body .ova_header.ovatheme_header_v2:not(.shrink) #ovatheme_header_v2 ul.nav.navbar-nav li a:hover,
     body .ova_header.ovatheme_header_v2:not(.shrink) #ovatheme_header_v2 ul.nav.navbar-nav li a:focus,
     body .ova_header.ovatheme_header_v2:not(.shrink) #ovatheme_header_v2 .dropdown-menu li a:hover,
     body .ova_header.ovatheme_header_v2:not(.shrink) #ovatheme_header_v2 ul.dropdown-menu li a:hover {
       color: var(--gryon-red) !important;
       -webkit-text-fill-color: var(--gryon-red) !important;
       background-color: rgba(255,255,255,0.1) !important;
     }
   
     body .ova_header.ovatheme_header_v2:not(.shrink) #ovatheme_header_v2 ul.nav.navbar-nav li button.dropdown-toggle { color: #fff !important; }
     body .ova_header.ovatheme_header_v2:not(.shrink) #ovatheme_header_v2 ul.nav.navbar-nav li button.dropdown-toggle:hover { color: var(--gryon-red) !important; }
   
     body .ova_header.ovatheme_header_v2 .navbar-collapse.in,
     body .ova_header.ovatheme_header_v2 #ovatheme_header_v2.in { padding: 0 !important; }
   
     /* Cartes historiques mobile */
     .event-content { padding: 20px; }
     .event-title { font-size: 18px; }
     .date-header { flex-direction: column; align-items: flex-start; }
     .date-header h3 { min-width: auto; }
   
     /* Formulaire contact mobile */
     .ccg-location-map, .wpb_gmaps_widget, .wpb_map_wraper,
     .event-google-map-wrap, .ovaem_map { margin-bottom: 2.5rem !important; }
   
     div.wpcf7 { margin-top: 0 !important; padding-top: 0 !important; }
   
     .wpcf7-form,
     .event_contact form { width: 100%; padding-left: 0; padding-right: 0; margin-top: 0 !important; }
   
     .wpcf7-form input[type="text"],
     .wpcf7-form input[type="email"],
     .wpcf7-form input[type="tel"],
     .wpcf7-form input[type="url"],
     .wpcf7-form textarea,
     .event_contact input,
     .event_contact textarea { width: 100% !important; max-width: 100% !important; min-width: 0 !important; }
   
     .wpcf7-form input[type="submit"],
     .wpcf7-submit,
     .event_contact .submit .wpcf7-submit { width: 100% !important; max-width: 100% !important; display: block !important; margin-left: 0 !important; margin-right: 0 !important; }
   }
   
   @media (max-width: 480px) {
     .event-content { padding: 15px; }
     .event-title { font-size: 16px; }
     .event-description { font-size: 14px; }
   }
   
   /* ============================================================================
      HOVER NAVBAR — surcharge finale
      ============================================================================ */
   
   .ovatheme_header_v4 .ova-menu #ovatheme_header_v4 ul.nav > li .dropdown-menu li a:hover,
   .ova_header ul.nav > li > a:hover,
   .ovatheme_header_v1 .ova-menu ul.navbar-nav li .dropdown-menu li a:hover,
   .ovatheme_header_v2 .ova-menu ul.navbar-nav li .dropdown-menu li a:hover,
   .ovatheme_header_v3 .ova-menu ul.navbar-nav li .dropdown-menu li a:hover,
   .ova_header li.ova-megamenu ul.ova-mega-menu li a:hover { color: var(--gryon-red-dark) !important; }
   
   @media (max-width: 992px) {
     .ova-menu nav ul.nav.navbar-nav li a:hover { color: var(--gryon-red-dark) !important; }
   }
   
   /* ============================================================================
      PAGE CONTACT
      ============================================================================ */
   
   .email-link a,
   .adhesion-col a[href^="mailto:"] {
     color: var(--gryon-red) !important;
     text-decoration: none !important;
     transition: color 0.3s ease !important;
     position: relative !important;
     display: inline-block !important;
   }
   .email-link a::after,
   .adhesion-col a[href^="mailto:"]::after {
     content: '' !important;
     position: absolute !important;
     bottom: -3px !important;
     left: 0 !important;
     right: 0 !important;
     height: 1px !important;
     background: var(--gryon-red) !important;
     transform: scaleX(0) !important;
     transform-origin: left !important;
     transition: transform 0.25s ease !important;
     pointer-events: none !important;
   }
   .email-link a:hover,
   .adhesion-col a[href^="mailto:"]:hover {
     color: var(--gryon-red-dark) !important;
     text-decoration: none !important;
   }
   .email-link a:hover::after,
   .adhesion-col a[href^="mailto:"]:hover::after {
     transform: scaleX(1) !important;
   }
   
   .phone-number { display: inline-block; margin: 0 10px 0 0; }
   .phone-number a { color: inherit; text-decoration: none; }
   .email-link { display: inline-block; margin: 0; }

   /* Liens : rouge au repos, rouge foncé au survol + trait animé (comme .accg-nav .accg-nav-list li a::after, hero.css) */
   body.page-contact .ova-page-section .entry-content a,
   body.page-contact .ova-page-section .post-content a,
   body.page-contact .ova-page-section .wpb_text_column a,
   body.page-contact .ova-page-section .vc_column-inner a,
   body.page-contact .ova-page-section .wpb_content_element a,
   body.page-contact .ova-page-section .white_text a,
   body.page-contact .ova-page-section .white_color a,
   body.gryon-contact-page .ova-page-section .entry-content a,
   body.gryon-contact-page .ova-page-section .post-content a,
   body.gryon-contact-page .ova-page-section .wpb_text_column a,
   body.gryon-contact-page .ova-page-section .vc_column-inner a,
   body.gryon-contact-page .ova-page-section .wpb_content_element a,
   body.gryon-contact-page .ova-page-section .white_text a,
   body.gryon-contact-page .ova-page-section .white_color a,
   .page-contact .entry-content a,
   .page-contact .post-content a,
   .page-contact .wpb_text_column a,
   .page-contact .vc_column-inner a,
   .page-contact .wpb_content_element a,
   .page-contact .white_text a,
   .page-contact .white_color a {
     color: var(--gryon-red) !important;
     text-decoration: none !important;
     transition: color 0.3s ease !important;
     position: relative !important;
     display: inline-block !important;
   }

   body.page-contact .ova-page-section .entry-content a::after,
   body.page-contact .ova-page-section .post-content a::after,
   body.page-contact .ova-page-section .wpb_text_column a::after,
   body.page-contact .ova-page-section .vc_column-inner a::after,
   body.page-contact .ova-page-section .wpb_content_element a::after,
   body.page-contact .ova-page-section .white_text a::after,
   body.page-contact .ova-page-section .white_color a::after,
   body.gryon-contact-page .ova-page-section .entry-content a::after,
   body.gryon-contact-page .ova-page-section .post-content a::after,
   body.gryon-contact-page .ova-page-section .wpb_text_column a::after,
   body.gryon-contact-page .ova-page-section .vc_column-inner a::after,
   body.gryon-contact-page .ova-page-section .wpb_content_element a::after,
   body.gryon-contact-page .ova-page-section .white_text a::after,
   body.gryon-contact-page .ova-page-section .white_color a::after,
   .page-contact .entry-content a::after,
   .page-contact .post-content a::after,
   .page-contact .wpb_text_column a::after,
   .page-contact .vc_column-inner a::after,
   .page-contact .wpb_content_element a::after,
   .page-contact .white_text a::after,
   .page-contact .white_color a::after {
     content: '' !important;
     position: absolute !important;
     bottom: -3px !important;
     left: 0 !important;
     right: 0 !important;
     height: 1px !important;
     background: var(--gryon-red) !important;
     transform: scaleX(0) !important;
     transform-origin: left !important;
     transition: transform 0.25s ease !important;
     pointer-events: none !important;
   }

   body.page-contact .ova-page-section .entry-content a:hover,
   body.page-contact .ova-page-section .post-content a:hover,
   body.page-contact .ova-page-section .wpb_text_column a:hover,
   body.page-contact .ova-page-section .vc_column-inner a:hover,
   body.page-contact .ova-page-section .wpb_content_element a:hover,
   body.page-contact .ova-page-section .white_text a:hover,
   body.page-contact .ova-page-section .white_color a:hover,
   body.gryon-contact-page .ova-page-section .entry-content a:hover,
   body.gryon-contact-page .ova-page-section .post-content a:hover,
   body.gryon-contact-page .ova-page-section .wpb_text_column a:hover,
   body.gryon-contact-page .ova-page-section .vc_column-inner a:hover,
   body.gryon-contact-page .ova-page-section .wpb_content_element a:hover,
   body.gryon-contact-page .ova-page-section .white_text a:hover,
   body.gryon-contact-page .ova-page-section .white_color a:hover,
   .page-contact .entry-content a:hover,
   .page-contact .post-content a:hover,
   .page-contact .wpb_text_column a:hover,
   .page-contact .vc_column-inner a:hover,
   .page-contact .wpb_content_element a:hover,
   .page-contact .white_text a:hover,
   .page-contact .white_color a:hover {
     color: var(--gryon-red-dark) !important;
     text-decoration: none !important;
   }

   body.page-contact .ova-page-section .entry-content a:hover::after,
   body.page-contact .ova-page-section .post-content a:hover::after,
   body.page-contact .ova-page-section .wpb_text_column a:hover::after,
   body.page-contact .ova-page-section .vc_column-inner a:hover::after,
   body.page-contact .ova-page-section .wpb_content_element a:hover::after,
   body.page-contact .ova-page-section .white_text a:hover::after,
   body.page-contact .ova-page-section .white_color a:hover::after,
   body.gryon-contact-page .ova-page-section .entry-content a:hover::after,
   body.gryon-contact-page .ova-page-section .post-content a:hover::after,
   body.gryon-contact-page .ova-page-section .wpb_text_column a:hover::after,
   body.gryon-contact-page .ova-page-section .vc_column-inner a:hover::after,
   body.gryon-contact-page .ova-page-section .wpb_content_element a:hover::after,
   body.gryon-contact-page .ova-page-section .white_text a:hover::after,
   body.gryon-contact-page .ova-page-section .white_color a:hover::after,
   .page-contact .entry-content a:hover::after,
   .page-contact .post-content a:hover::after,
   .page-contact .wpb_text_column a:hover::after,
   .page-contact .vc_column-inner a:hover::after,
   .page-contact .wpb_content_element a:hover::after,
   .page-contact .white_text a:hover::after,
   .page-contact .white_color a:hover::after {
     transform: scaleX(1) !important;
   }
   
   .wpcf7-form,
   .event_contact form { max-width: 100%; box-sizing: border-box; }
   
   .wpcf7-form .wpcf7-form-control-wrap,
   .wpcf7-form p,
   .event_contact .group-form { max-width: 100%; box-sizing: border-box; }
   
   .wpcf7-form input[type="text"],
   .wpcf7-form input[type="email"],
   .wpcf7-form input[type="tel"],
   .wpcf7-form input[type="url"],
   .wpcf7-form textarea,
   .event_contact input,
   .event_contact textarea { max-width: 100% !important; box-sizing: border-box !important; width: 100% !important; }
   
   .wpcf7-response-output { margin: 0 !important; border-color: red !important; }
   .ccg-location-section { padding: 30px 20px; }
   
   /* ============================================================================
      FOOTER GRYON (fond sombre)
      ============================================================================ */
   
   .gryon-footer {
     background-color: var(--gryon-footer-bg);
     padding: 60px 40px 30px;
     color: rgba(255,255,255,0.75);
     font-family: Inter, system-ui, sans-serif;
   }
   
   .gryon-footer-inner {
     max-width: min(var(--gryon-site-max-width), 100%);
     margin: 0 auto;
     display: flex;
     gap: 60px;
     flex-wrap: wrap;
     justify-content: space-between;
     padding-bottom: 40px;
   }
   
   .gryon-footer-left { flex: 1 1 280px; }
   
   .gryon-footer-logo { font-family: 'Playfair Display', serif; font-size: 28px; font-weight: 700; color: #fff; letter-spacing: 0.05em; margin-bottom: 8px; }
   .gryon-footer-tagline { font-size: 15px; color: rgba(255,255,255,0.5); line-height: 1.5; margin: 0 0 20px 0; }

   /* Logo + baseline : lien vers l’accueil, sans changement visuel au survol / focus / clic */
   a.gryon-footer-home-link {
     display: block;
     text-decoration: none !important;
     cursor: pointer;
     -webkit-tap-highlight-color: transparent;
   }
   a.gryon-footer-logo.gryon-footer-home-link,
   a.gryon-footer-logo.gryon-footer-home-link:any-link,
   a.gryon-footer-logo.gryon-footer-home-link:hover,
   a.gryon-footer-logo.gryon-footer-home-link:focus,
   a.gryon-footer-logo.gryon-footer-home-link:focus-visible,
   a.gryon-footer-logo.gryon-footer-home-link:active,
   a.gryon-footer-logo.gryon-footer-home-link:visited {
     color: #fff !important;
     text-decoration: none !important;
     outline: none !important;
     box-shadow: none !important;
     background: transparent !important;
     opacity: 1 !important;
   }
   a.gryon-footer-tagline.gryon-footer-home-link,
   a.gryon-footer-tagline.gryon-footer-home-link:any-link,
   a.gryon-footer-tagline.gryon-footer-home-link:hover,
   a.gryon-footer-tagline.gryon-footer-home-link:focus,
   a.gryon-footer-tagline.gryon-footer-home-link:focus-visible,
   a.gryon-footer-tagline.gryon-footer-home-link:active,
   a.gryon-footer-tagline.gryon-footer-home-link:visited {
     color: rgba(255, 255, 255, 0.5) !important;
     text-decoration: none !important;
     outline: none !important;
     box-shadow: none !important;
     background: transparent !important;
     opacity: 1 !important;
   }
   
   .gryon-footer-newsletter { flex: 2 1 280px; }
   /* Titre = même style que .gryon-footer-logo (Playfair, 28px) */
   .gryon-footer-newsletter .gryon-footer-heading {
     font-family: 'Playfair Display', serif !important;
     font-size: 28px !important;
     font-weight: 700 !important;
     color: #fff !important;
     letter-spacing: 0.05em !important;
     text-transform: none !important;
     margin: 0 0 8px 0 !important;
     line-height: 1.2 !important;
   }
   .gryon-footer-newsletter-desc { font-size: 15px; color: rgba(255,255,255,0.5); margin: 0 0 25px 0; line-height: 1.5; }
   .gryon-footer-newsletter .footer-newsletter-form {
     margin: 0 !important;
     padding: 0 !important;
     text-align: left !important;
   }
   .gryon-footer-newsletter .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1,
   .gryon-footer-newsletter .footer-newsletter-form .gryon-inf-webform-root {
     width: 100% !important;
     margin: 0 !important;
     margin-right: 0 !important;
     max-width: min(100%, 520px) !important;
     box-shadow: none !important;
     justify-content: flex-start !important;
     align-items: center !important;
     align-content: center !important;
   }

   /* Pile email / bouton (≤991) : largeur max du bloc Infomaniak — après la règle 520px pour l’emporter */
   @media (max-width: 991px) {
     .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1,
     .gryon-footer-newsletter .footer-newsletter-form .inf-main_f8d1fd344c855b7d20e10071befd4ae1,
     .gryon-footer-newsletter .footer-newsletter-form .gryon-inf-webform-root {
       max-width: 345px !important;
     }
   }
   
   .gryon-footer-newsletter input[type="email"],
   .gryon-footer-newsletter input[type="text"] {
     background: rgba(255,255,255,0.1) !important;
     border: 1px solid rgba(255,255,255,0.25) !important;
     color: #fff !important;
     border-radius: 0 !important;
     padding: 0 15px !important;
     min-height: var(--gryon-newsletter-control-height) !important;
     height: var(--gryon-newsletter-control-height) !important;
     box-sizing: border-box !important;
     line-height: 1.2 !important;
     min-width: 240px !important;
     max-width: min(100%, 480px) !important;
   }
   .gryon-footer-newsletter input[type="email"] {
     font-size: 15px !important;
   }
   .gryon-footer-newsletter input[type="text"] {
     font-size: 14px !important;
   }
   
   .gryon-footer-newsletter input[type="email"]::placeholder,
   .gryon-footer-newsletter input[type="text"]::placeholder { color: rgba(255,255,255,0.4) !important; }
   
   .gryon-footer-newsletter input[type="submit"],
   .gryon-footer-newsletter button[type="submit"] {
     display: inline-block !important;
     font-family: Inter, system-ui, sans-serif !important;
     font-size: 12px !important;
     font-weight: 500 !important;
     letter-spacing: 0.2em !important;
     text-transform: uppercase !important;
     text-decoration: none !important;
     text-align: center !important;
     padding-top: 14px !important;
     padding-right: 32px !important;
     padding-bottom: 14px !important;
     padding-left: 32px !important;
     padding-block: 14px !important;
     padding-inline: 32px !important;
     min-height: 0 !important;
     height: auto !important;
     box-sizing: border-box !important;
     line-height: 1.2 !important;
     white-space: nowrap !important;
     cursor: pointer !important;
     background: var(--gryon-red) !important;
     background-color: var(--gryon-red) !important;
     color: #fff !important;
     border: 1px solid var(--gryon-red) !important;
     border-radius: 0 !important;
     transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease !important;
     -webkit-appearance: none !important;
     appearance: none !important;
   }
   
   .gryon-footer-newsletter .footer-newsletter-form form,
   .gryon-footer-newsletter .inf-main_f8d1fd344c855b7d20e10071befd4ae1 form {
     align-items: center !important;
   }
   .gryon-footer-newsletter .footer-newsletter-form input[type="email"],
   .gryon-footer-newsletter .inf-main_f8d1fd344c855b7d20e10071befd4ae1 input[type="email"] {
     line-height: 1.2 !important;
     font-size: 15px !important;
   }
   
   
   .gryon-footer-list { list-style: none !important; padding: 0 !important; margin: 0 !important; }
   .gryon-footer-list li { margin-bottom: 10px; font-size: 15px; color: rgba(255,255,255,0.6); display: flex; align-items: flex-start; gap: 8px; }
   .gryon-footer-icon { color: var(--gryon-red); font-size: 6px; margin-top: 6px; flex-shrink: 0; }
   
   /* Hover aligné sur .accg-nav .accg-nav-list li a (hero.css) */
   .gryon-footer-list li a {
     position: relative;
     text-decoration: none !important;
     color: rgba(255,255,255,0.6) !important;
     transition: color 0.3s ease;
   }
   .gryon-footer-list li a::after {
     content: '';
     position: absolute;
     bottom: -3px;
     left: 0;
     right: 0;
     height: 1px;
     background: var(--gryon-red);
     transform: scaleX(0);
     transform-origin: left;
     transition: transform 0.25s ease;
   }
   .gryon-footer-list li a:hover::after {
     transform: scaleX(1);
   }
   .gryon-footer-list li a:hover {
     color: var(--gryon-red) !important;
   }
   
   .gryon-footer-separator { max-width: min(var(--gryon-site-max-width), 100%); margin: 0 auto 24px; border-top: 1px solid var(--gryon-footer-border); }
   
   .gryon-footer-copyright {
     text-align: center;
     font-size: 13px;
     color: rgba(255,255,255,0.35);
     width: 100%;
     max-width: 100%;
     margin: 32px auto 0;
     flex: 1 1 100%;
     box-sizing: border-box;
   }
   
   /* Trait = pleine largeur ; 0.5px = plus fin qu’1px sans passer par scaleY (souvent invisible). */
   .gryon-footer-copyright::before {
     content: "";
     display: block;
     width: 100%;
     margin: 0 0 2.5em;
     border: 0;
     border-top: 0.5px solid currentColor;
     opacity: 0.3;
   }
   
   /* Colonne unique : newsletter sous la colonne gauche — retirer flex 1 1 280px sur .gryon-footer-left */
   @media (max-width: 991px) {
     .gryon-footer-inner {
       flex-direction: column;
       align-items: stretch;
       gap: 40px;
       padding-bottom: 24px;
     }
     .gryon-footer-left {
       flex: initial;
     }
     .gryon-footer-list li:last-child {
       margin-bottom: 0 !important;
     }
   }
   
   @media (max-width: 768px) {
     .gryon-footer { padding: 40px 24px 24px; }
   }
   
   /* ============================================================================
      BOUTONS CCG
      ============================================================================ */
   
   a.ccg-btn-small:link, a.ccg-btn-small:visited,
   a.ccg-btn-small:active, a.ccg-btn-small:focus { color: #fff !important; }
   
   /* Survol détaillé sur single-saison : single-saison.css (effet type ccg-btn-saison carte) */
   .ccg-concert-title-link:hover {
     color: var(--gryon-red-dark) !important;
   }
   
   a.ccg-btn-back:link, a.ccg-btn-back:visited,
   a.ccg-btn-back:active, a.ccg-btn-back:focus { color: #fff !important; }
   
   a.ccg-btn-back,
   .ccg-btn-back {
     transition: all 0.3s ease-in-out !important;
   }
   
   a.ccg-btn-back:hover,
   body a.ccg-btn-back:hover {
     background-color: var(--gryon-red-dark) !important;
     background: var(--gryon-red-dark) !important;
     border-color: var(--gryon-red-dark) !important;
     color: #fff !important;
   }
   
   a.ccg-map-directions:link, a.ccg-map-directions:visited,
   a.ccg-map-directions:active, a.ccg-map-directions:focus,
   a.ccg-map-directions:hover { color: #fff !important; }
   
   .ccg-btn-pdf,
   .ccg-btn-pdf:hover { color: #fff !important; }
   
   /* Footer copyright */
   .footer-copyright {
     width: 100% !important;
     max-width: 100% !important;
     margin-top: 10px;
     padding: 0 !important;
     border-top: none !important;
     text-align: center;
     color: rgba(255,255,255,0.8);
     font-size: 13px;
     line-height: 1.6;
     flex: 1 1 100% !important;
     flex-basis: 100% !important;
     min-width: 100% !important;
     box-sizing: border-box !important;
   }
   
   .footer-copyright a { color: var(--gryon-red); text-decoration: none; transition: color var(--gryon-transition); }
   .footer-copyright a:hover { color: var(--gryon-red-dark); text-decoration: underline; }
   
   /* ============================================================================
      SECTION PROCHAINS CONCERTS — [ccg_prochains_concerts]
      Cartes type liste (date | détails | icône), couleurs = variables Gryon
      ============================================================================ */
   
   body.home .ccg-prochains-concerts {
     max-width: min(100%, var(--gryon-site-max-width, 1320px));
     margin-left: auto !important;
     margin-right: auto !important;
     padding: 0 10px 10px;
     box-sizing: border-box;
     width: 100%;
     border-radius: 8px;
     margin-bottom: 60px;
   }
   
   body.home .entry-content,
   body.home .post-content { max-width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; }
   body.home .col-md-8 { width: 100% !important; flex: 0 0 100% !important; max-width: 100% !important; }
   body.home .ovaem_general_sidebar.col-md-4 { display: none !important; }
   
   .ccg-prochains-concerts .ccg-pc-header {
     display: flex;
     flex-direction: column;
     align-items: center;
     text-align: center;
     padding: 8px 0 24px;
     border-bottom: none;
     gap: 0;
   }
   
   /* align-items:center rétrécit le bloc au contenu : le trait (::before) en % disparaît ou se tord ; on étire le heading */
   .ccg-pc-heading {
     align-self: stretch;
     width: 100%;
     max-width: 100%;
     margin: 0 auto;
     min-width: 0;
     box-sizing: border-box;
   }
   
   .ccg-pc-titre {
     font-family: 'Playfair Display', Georgia, 'Times New Roman', serif !important;
     font-size: clamp(28px, 4.2vw, 44px) !important;
     font-weight: 700 !important;
     color: var(--gryon-text) !important;
     margin: 0 auto !important;
     letter-spacing: -0.02em;
     line-height: 1.2 !important;
     text-align: center;
     width: 100%;
     max-width: 100%;
     box-sizing: border-box;
   }
   
   /* Ligne décorative au-dessus du titre (largeur stable, pas de % sur pseudo pour éviter largeur 0 en flex) */
   .ccg-pc-titre::before {
     content: '';
     display: block;
     width: min(72px, 100%);
     max-width: 100%;
     height: 1px;
     min-height: 1px;
     margin: 0 auto 1.15rem;
     background: var(--gryon-red);
     border-radius: 1px;
   }
   
   .ccg-pc-soustitre {
     font-family: Inter, system-ui, -apple-system, sans-serif;
     font-size: 15px;
     font-weight: 400;
     color: var(--gryon-muted);
     line-height: 1.55;
     margin: 0.65rem 0 0;
     padding: 0 8px;
     white-space: nowrap;
     max-width: 100%;
   }
   
   .ccg-pc-grid {
     display: flex;
     flex-direction: column;
     gap: 14px;
     max-width: min(100%, 900px);
     margin-left: auto;
     margin-right: auto;
   }
   
   body.home .ccg-prochains-concerts .ccg-pc-card {
     overflow: hidden;
     background: #fff;
     border: 1px solid rgba(42, 33, 24, 0.1);
     box-shadow: 0 1px 3px rgba(42, 33, 24, 0.06);
     transition: box-shadow var(--gryon-transition), border-color var(--gryon-transition);
   }
   
   body.home .ccg-prochains-concerts .ccg-pc-card:hover {
     box-shadow: 0 4px 16px rgba(42, 33, 24, 0.1);
     border-color: rgba(42, 33, 24, 0.14);
     background-color: var(--gryon-cream);
   }
   
   body.home .ccg-prochains-concerts .ccg-pc-card-link {
     display: flex;
     align-items: center;
     gap: 0;
     padding: 26px 18px 26px 18px;
     text-decoration: none !important;
     color: inherit;
     border-bottom: none;
     min-height: 112px;
     box-sizing: border-box;
   }
   
   body.home .ccg-prochains-concerts .ccg-pc-cal {
     display: flex;
     flex-wrap: wrap;
     flex-direction: row;
     justify-content: center;
     align-items: baseline;
     align-content: center;
     row-gap: 8px;
     column-gap: 6px;
     min-width: 150px;
     width: auto;
     flex-shrink: 0;
     padding: 10px 20px 10px 0;
     margin: 0;
     box-sizing: border-box;
     border-radius: 0;
     border-right: 1px solid rgba(42, 33, 24, 0.14);
     align-self: stretch;
   }
   
   body.home .ccg-prochains-concerts .ccg-pc-cal-jour {
     flex: 1 0 100%;
     width: 100%;
     text-align: center;
     font-family: 'Playfair Display', Georgia, serif;
     font-size: 30px;
     font-weight: 600;
     color: var(--gryon-red);
     line-height: 1.2;
     letter-spacing: -0.02em;
     margin: 0;
   }
   
   body.home .ccg-prochains-concerts .ccg-pc-cal-mois {
     font-family: Inter, system-ui, -apple-system, sans-serif;
     font-size: 13px;
     font-weight: 500;
     color: var(--gryon-muted);
     text-transform: uppercase;
     letter-spacing: 0.14em;
     line-height: 1.2;
     margin: 0;
   }
   
   body.home .ccg-prochains-concerts .ccg-pc-cal-annee {
     font-family: Inter, system-ui, -apple-system, sans-serif;
     font-size: 13px;
     font-weight: 500;
     color: var(--gryon-muted);
     text-transform: uppercase;
     letter-spacing: 0.1em;
     line-height: 1.2;
     margin: 0;
   }
   
   body.home .ccg-prochains-concerts .ccg-pc-cal-bientot {
     flex: 1 0 100%;
     width: 100%;
     text-align: center;
     font-family: Inter, system-ui, -apple-system, sans-serif;
     font-size: 11px;
     font-weight: 600;
     color: var(--gryon-muted);
     text-transform: uppercase;
     letter-spacing: 0.1em;
     line-height: 1.35;
     margin: 0;
   }

   body.home .ccg-prochains-concerts .ccg-pc-cal.ccg-pc-cal--multi {
     max-width: 100px;
     width: auto;
     margin: 0;
     padding: 10px 20px 10px 0;
   }

   body.home .ccg-prochains-concerts .ccg-pc-cal--multi .ccg-pc-cal-jour {
     font-size: 30px;
     letter-spacing: 0.02em;
   }

   body.home .ccg-prochains-concerts .ccg-pc-cals {
     display: flex;
     flex-direction: column;
     gap: 10px;
     flex-shrink: 0;
     align-self: stretch;
     min-width: 200px;
     width: auto;
     margin: 0;
     padding: 0 40px 0 0;
     box-sizing: border-box;
     border-right: 1px solid rgba(42, 33, 24, 0.14);
   }

   body.home .ccg-prochains-concerts .ccg-pc-cals > .ccg-pc-cal {
     min-width: 0;
     width: 100%;
     margin: 0;
     padding: 4px 0 10px;
     border-right: none;
     border-radius: 0;
   }

   body.home .ccg-prochains-concerts .ccg-pc-cals > .ccg-pc-cal:not(:last-child) {
     border-bottom: 1px solid rgba(42, 33, 24, 0.1);
   }

   body.home .ccg-prochains-concerts .ccg-pc-cals > .ccg-pc-cal:last-child {
     padding-bottom: 0;
   }
   
   /* Titre au-dessus de la ligne méta (ordre DOM inversé visuellement) */
   body.home .ccg-prochains-concerts .ccg-pc-infos {
     flex: 1 1 auto;
     min-width: 0;
     display: flex;
     flex-direction: column;
     justify-content: center;
     gap: 10px;
     padding-right: 12px;
     padding-left: 40px;
   }
   
   body.home .ccg-prochains-concerts .ccg-pc-nom {
     order: 1;
     font-family: 'Playfair Display', Georgia, serif !important;
     font-size: clamp(18px, 2.2vw, 22px) !important;
     font-weight: 600 !important;
     color: var(--gryon-text) !important;
     margin: 0 !important;
     line-height: 1.35 !important;
     white-space: normal;
     overflow: visible;
     text-overflow: unset;
     transition: color 0.2s ease;
   }
   
   body.home .ccg-prochains-concerts .ccg-pc-meta-ligne {
     order: 2;
     display: flex;
     align-items: center;
     flex-wrap: wrap;
     gap: 7px 24px;
   }
   
   body.home .ccg-prochains-concerts .ccg-pc-jour-semaine {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     font-family: Inter, system-ui, sans-serif;
     font-size: 15px;
     font-weight: 500;
     color: var(--gryon-muted);
     text-transform: none;
     letter-spacing: 0.02em;
   }
   
   body.home .ccg-prochains-concerts .ccg-pc-jour-semaine::before {
     content: '';
     display: inline-block;
     width: 14px;
     height: 14px;
     flex-shrink: 0;
     background: var(--gryon-muted);
     opacity: 0.85;
     mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zM9 8H7v2h2V8zm4 0h-2v2h2V8zm4 0h-2v2h2V8z'/%3E%3C/svg%3E") center / contain no-repeat;
     -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zM9 8H7v2h2V8zm4 0h-2v2h2V8zm4 0h-2v2h2V8z'/%3E%3C/svg%3E") center / contain no-repeat;
   }
   
   body.home .ccg-prochains-concerts .ccg-pc-heure {
     display: inline-flex;
     align-items: center;
     gap: 6px;
     font-family: Inter, system-ui, sans-serif;
     font-size: 15px;
     color: var(--gryon-muted);
   }
   
   body.home .ccg-prochains-concerts .ccg-pc-heure::before {
     content: '';
     display: inline-block;
     width: 14px;
     height: 14px;
     flex-shrink: 0;
     background: var(--gryon-muted);
     opacity: 0.85;
     mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm0 18c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8zm.5-13H11v8l5.25 3.15.75-1.23-4-2.37V7z'/%3E%3C/svg%3E") center / contain no-repeat;
     -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm0 18c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8zm.5-13H11v8l5.25 3.15.75-1.23-4-2.37V7z'/%3E%3C/svg%3E") center / contain no-repeat;
   }
   
   body.home .ccg-prochains-concerts .ccg-pc-lieu {
     display: inline-flex;
     align-items: flex-start;
     gap: 6px;
     font-family: Inter, system-ui, sans-serif;
     font-size: 15px;
     font-weight: 500;
     color: var(--gryon-muted);
     text-transform: none;
     letter-spacing: 0.02em;
   }
   
   body.home .ccg-prochains-concerts .ccg-pc-lieu::before {
     content: '';
     display: inline-block;
     width: 14px;
     height: 14px;
     flex-shrink: 0;
     margin-top: 0.3em;
     background: var(--gryon-muted);
     opacity: 0.85;
     mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E") center / contain no-repeat;
     -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E") center / contain no-repeat;
   }
   
   body.home .ccg-prochains-concerts .ccg-pc-card:hover .ccg-pc-nom {
     color: var(--gryon-red) !important;
   }
   
   /* Colonne droite réservée au markup ; pas d’icône affichée */
   body.home .ccg-prochains-concerts .ccg-pc-arrow {
     display: none !important;
   }
   
   .ccg-pc-vide { padding: 30px; text-align: center; color: var(--gryon-muted); font-size: 15px; }
   .ccg-pc-vide a { color: var(--gryon-red) !important; text-decoration: none; font-weight: 600; }
   .ccg-pc-vide a:hover { color: var(--gryon-red-dark) !important; text-decoration: underline; }
   
   .ccg-pc-footer { text-align: center; margin-top: 36px; }
   
   @media (max-width: 600px) {
     .ccg-prochains-concerts { padding: 40px 12px; }
     body.home .ccg-prochains-concerts { padding-top: 0 !important; }
     .ccg-pc-titre { font-size: clamp(24px, 7vw, 32px) !important; }
     .ccg-pc-soustitre { font-size: 14px; white-space: normal; }
     body.home .ccg-prochains-concerts .ccg-pc-card-link {
       padding: 20px 12px 20px 12px;
       min-height: 0;
       align-items: flex-start;
     }
     body.home .ccg-prochains-concerts .ccg-pc-cal {
       min-width: min(88px, 100%);
       width: auto;
       padding: 0;
       margin: 0;
       row-gap: 6px;
       column-gap: 4px;
     }
     body.home .ccg-prochains-concerts .ccg-pc-cal.ccg-pc-cal--multi {
       max-width: min(100px, 100%);
       width: auto;
       margin: 0;
       padding: 0;
     }
     body.home .ccg-prochains-concerts .ccg-pc-cal--multi .ccg-pc-cal-jour {
       font-size: 30px;
     }
     body.home .ccg-prochains-concerts .ccg-pc-cals {
       min-width: min(200px, 100%);
       width: auto;
       margin: 0;
       padding: 0 24px 0 0;
     }
     body.home .ccg-prochains-concerts .ccg-pc-cal-jour { font-size: 30px; }
     body.home .ccg-prochains-concerts .ccg-pc-cal-mois,
     body.home .ccg-prochains-concerts .ccg-pc-cal-annee { font-size: 13px; letter-spacing: 0.1em; }
     body.home .ccg-prochains-concerts .ccg-pc-infos {
       padding-right: 8px;
       padding-left: 20px;
     }
     body.home .ccg-prochains-concerts .ccg-pc-nom { font-size: 17px !important; }
   }

/* ============================================================================
   PAGE À PROPOS
   Pictos = Font Awesome 5 (thème parent).
   ============================================================================ */

   .ova-page-section:has(.gryon-a-propos),
   body.page-a-propos .ova-page-section,
   body.gryon-a-propos-page .ova-page-section {
     position: relative !important;
     z-index: 0 !important;
     /* Transparent : le fond vient du conteneur parent (.bg_white / .bg_grey), évite double color-mix section + wrapper */
     background-color: transparent !important;
     background: transparent !important;
     max-width: min(1200px, 100%) !important;
     margin-left: auto !important;
     margin-right: auto !important;
     padding-top: 55px !important;
     padding-bottom: 3.5rem !important;
     padding-left: clamp(16px, 4vw, 40px) !important;
     padding-right: clamp(16px, 4vw, 40px) !important;
     box-sizing: border-box !important;
   }

   .gryon-a-propos {
     box-sizing: border-box !important;
     text-align: justify !important;
   }

   .gryon-a-propos__header {
     text-align: center !important;
     margin-bottom: 2.5rem !important;
   }

   /* Ligne décorative (terracotta) — bloc séparateur */
   .gryon-a-propos .gryon-a-propos__rule.wp-block-separator {
     border: none !important;
     color: var(--gryon-red) !important;
     background: var(--gryon-red) !important;
     width: 56px !important;
     max-width: 56px !important;
     height: 2px !important;
     margin: 0 auto 1.25rem !important;
     opacity: 1 !important;
   }

   body.page-a-propos .ova-page-section .gryon-a-propos__title,
   body.gryon-a-propos-page .ova-page-section .gryon-a-propos__title,
   .ova-page-section:has(.gryon-a-propos) .gryon-a-propos__title {
     font-family: 'Playfair Display', Georgia, serif !important;
     font-weight: 500 !important;
     font-size: clamp(2rem, 4.5vw, 2.75rem) !important;
     color: var(--gryon-text) !important;
     letter-spacing: 0.02em !important;
     margin: 0 !important;
     text-align: center !important;
   }

   .gryon-a-propos .gryon-a-propos__intro,
   .gryon-a-propos .gryon-a-propos__intro .wp-block-column {
     text-align: justify !important;
   }

   /* Intro : même largeur max que .ova-page-section À propos (1200px) ; classes wp-container-* ignorées (dynamiques) */
   body.page-a-propos .ova-page-section .gryon-a-propos__intro.wp-block-columns,
   body.gryon-a-propos-page .ova-page-section .gryon-a-propos__intro.wp-block-columns,
   .ova-page-section:has(.gryon-a-propos) .gryon-a-propos__intro.wp-block-columns,
   .gryon-a-propos .gryon-a-propos__intro.wp-block-columns,
   body.page-a-propos .ova-page-section .gryon-a-propos__intro.is-layout-flex,
   body.gryon-a-propos-page .ova-page-section .gryon-a-propos__intro.is-layout-flex,
   .ova-page-section:has(.gryon-a-propos) .gryon-a-propos__intro.is-layout-flex,
   .gryon-a-propos .gryon-a-propos__intro.is-layout-flex {
     max-width: min(1200px, 100%) !important;
     width: 100% !important;
     margin-left: auto !important;
     margin-right: auto !important;
     box-sizing: border-box !important;
     --wp--style--block-gap: clamp(3rem, 7vw, 5.5rem) !important;
     column-gap: clamp(3rem, 7vw, 5.5rem) !important;
     row-gap: 2rem !important;
   }

   /* Colonnes flex : annule margin-bottom du core (:where .wp-block-columns) — tout le contenu de la section À propos, y compris colonnes hors du groupe .gryon-a-propos (listes musiciens). Les __features gardent leur marge via la règle suivante (plus spécifique). */
   body.page-a-propos .ova-page-section .wp-block-columns.is-layout-flex,
   body.gryon-a-propos-page .ova-page-section .wp-block-columns.is-layout-flex,
   .ova-page-section:has(.gryon-a-propos) .wp-block-columns.is-layout-flex,
   body.page-a-propos .ova-page-section .gryon-a-propos .wp-block-columns.is-layout-flex,
   body.gryon-a-propos-page .ova-page-section .gryon-a-propos .wp-block-columns.is-layout-flex,
   .ova-page-section:has(.gryon-a-propos) .gryon-a-propos .wp-block-columns.is-layout-flex,
   .gryon-a-propos .wp-block-columns.is-layout-flex {
     margin-bottom: 0 !important;
     margin-block-end: 0 !important;
   }

   /* Colonnes « features » : marge bas (plus spécifique que la règle ci-dessus ; wp-container-* ignoré) */
   body.page-a-propos .ova-page-section .gryon-a-propos .gryon-a-propos__features.wp-block-columns.is-layout-flex,
   body.gryon-a-propos-page .ova-page-section .gryon-a-propos .gryon-a-propos__features.wp-block-columns.is-layout-flex,
   .ova-page-section:has(.gryon-a-propos) .gryon-a-propos .gryon-a-propos__features.wp-block-columns.is-layout-flex,
   .gryon-a-propos .gryon-a-propos__features.wp-block-columns.is-layout-flex.is-not-stacked-on-mobile,
   .gryon-a-propos .gryon-a-propos__features.wp-block-columns.is-layout-flex {
     margin-bottom: 2.5rem !important;
     margin-block-end: 3.5rem !important;
   }

   /* Paragraphes : toute la section À propos (blocs ajoutés hors du groupe motif) */
   body.page-a-propos .ova-page-section p,
   body.gryon-a-propos-page .ova-page-section p,
   .ova-page-section:has(.gryon-a-propos) p {
     font-family: Inter, system-ui, sans-serif !important;
     font-size: 15px !important;
     line-height: 1.65 !important;
     color: var(--gryon-muted) !important;
     margin-bottom: 1.1em !important;
     text-align: justify !important;
   }

   body.page-a-propos .ova-page-section .gryon-a-propos__lead,
   body.gryon-a-propos-page .ova-page-section .gryon-a-propos__lead,
   .ova-page-section:has(.gryon-a-propos) .gryon-a-propos__lead {
     color: var(--gryon-muted) !important;
   }

   body.page-a-propos .ova-page-section ul,
   body.page-a-propos .ova-page-section ol,
   body.gryon-a-propos-page .ova-page-section ul,
   body.gryon-a-propos-page .ova-page-section ol,
   .ova-page-section:has(.gryon-a-propos) ul,
   .ova-page-section:has(.gryon-a-propos) ol {
     font-family: Inter, system-ui, sans-serif !important;
     font-size: 15px !important;
     line-height: 1.65 !important;
     color: var(--gryon-muted) !important;
     text-align: justify !important;
     list-style-position: inside !important;
     padding-left: 0 !important;
     max-width: 48rem !important;
     margin-right: 20px;
   }

   body.page-a-propos .ova-page-section ul.wp-block-list,
   body.page-a-propos .ova-page-section ol.wp-block-list,
   body.gryon-a-propos-page .ova-page-section ul.wp-block-list,
   body.gryon-a-propos-page .ova-page-section ol.wp-block-list,
   .ova-page-section:has(.gryon-a-propos) ul.wp-block-list,
   .ova-page-section:has(.gryon-a-propos) ol.wp-block-list {
     max-width: none !important;
     margin-bottom: 15px !important;
   }

   /* Listes musiciens (rangée deux colonnes) : pas de margin-right hérité de la règle ul/ol section */
   body.page-a-propos .ova-page-section .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) ul,
   body.page-a-propos .ova-page-section .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) ol,
   body.gryon-a-propos-page .ova-page-section .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) ul,
   body.gryon-a-propos-page .ova-page-section .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) ol,
   .ova-page-section:has(.gryon-a-propos) .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) ul,
   .ova-page-section:has(.gryon-a-propos) .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) ol {
     margin-right: 0 !important;
   }

   /* Listes musiciens : plus d’air entre les deux colonnes quand elles sont côte à côte (>782px) */
   @media (min-width: 783px) {
     body.page-a-propos .ova-page-section .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list),
     body.gryon-a-propos-page .ova-page-section .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list),
     .ova-page-section:has(.gryon-a-propos) .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) {
       column-gap: 60px !important;
       gap: 0 60px !important;
       --wp--style--block-gap: 60px !important;
     }
   }

   .gryon-a-propos .gryon-a-propos__features {
     margin-top: 2.5rem !important;
   }

   /* Colonnes « features » : centrer le texte (le justify section ne doit pas s’y appliquer) */
   .gryon-a-propos .gryon-a-propos__features.wp-block-columns,
   .gryon-a-propos .gryon-a-propos__features.is-layout-flex {
     text-align: center !important;
     align-items: stretch !important;
   }

   /* Colonne = flex pour que la carte .gryon-a-propos-feature prenne toute la hauteur de la ligne */
   .gryon-a-propos .gryon-a-propos__features .wp-block-column {
     text-align: center !important;
     display: flex !important;
     flex-direction: column !important;
     align-self: stretch !important;
   }

   body.page-a-propos .ova-page-section .gryon-a-propos__features p,
   body.gryon-a-propos-page .ova-page-section .gryon-a-propos__features p,
   .ova-page-section:has(.gryon-a-propos) .gryon-a-propos__features p,
   body.page-a-propos .ova-page-section .gryon-a-propos__features ul,
   body.page-a-propos .ova-page-section .gryon-a-propos__features ol,
   body.gryon-a-propos-page .ova-page-section .gryon-a-propos__features ul,
   body.gryon-a-propos-page .ova-page-section .gryon-a-propos__features ol,
   .ova-page-section:has(.gryon-a-propos) .gryon-a-propos__features ul,
   .ova-page-section:has(.gryon-a-propos) .gryon-a-propos__features ol {
     text-align: center !important;
   }

   .gryon-a-propos .gryon-a-propos-feature {
     text-align: center !important;
     padding: 1.5rem 1.5rem 0 1.5rem !important;
     display: flex !important;
     flex-direction: column !important;
     align-items: center !important;
     justify-content: center !important;
     flex: 1 1 auto !important;
     width: 100% !important;
     min-height: 0 !important;
     box-sizing: border-box !important;
     background-color: white;
     border: 1px solid rgba(42, 33, 24, 0.1);
     box-shadow: 0 1px 3px rgba(42, 33, 24, 0.06);
   }

   .gryon-a-propos .gryon-a-propos__features .wp-block-column > .gryon-a-propos-feature {
     flex: 1 1 auto !important;
   }

   /* flex-grow: 0 — sinon le bloc s’étire sous le ::before et le picto reste « en haut » du texte centré */
   .gryon-a-propos .gryon-a-propos-feature .wp-block-group__inner-container {
     display: flex !important;
     flex-direction: column !important;
     align-items: center !important;
     justify-content: flex-start !important;
     flex: 0 1 auto !important;
     flex-grow: 0 !important;
     min-height: 0 !important;
     width: 100% !important;
     text-align: center !important;
   }

   body.page-a-propos .ova-page-section h3,
   body.gryon-a-propos-page .ova-page-section h3,
   .ova-page-section:has(.gryon-a-propos) h3,
   body.page-a-propos .ova-page-section .gryon-a-propos-feature__title,
   body.gryon-a-propos-page .ova-page-section .gryon-a-propos-feature__title,
   .ova-page-section:has(.gryon-a-propos) .gryon-a-propos-feature__title {
     font-family: 'Playfair Display', Georgia, serif !important;
     font-weight: 600 !important;
     font-size: 22px !important;
     color: var(--gryon-text) !important;
     margin: 0 0 0.5rem !important;
     text-align: center !important;
     width: 100% !important;
   }

   /* Sous-titres des 3 colonnes : même p que le reste ; largeur utile en flex */
   .gryon-a-propos .gryon-a-propos-feature__desc {
     width: fit-content !important;
     max-width: 100% !important;
     margin-left: auto !important;
     margin-right: auto !important;
     margin-bottom: 0 !important;
     text-align: center !important;
     align-self: center !important;
   }

   /* Titres : largeur au contenu pour centrage horizontal dans la carte */
   body.page-a-propos .gryon-a-propos .gryon-a-propos-feature .gryon-a-propos-feature__title,
   body.gryon-a-propos-page .gryon-a-propos .gryon-a-propos-feature .gryon-a-propos-feature__title,
   .ova-page-section:has(.gryon-a-propos) .gryon-a-propos .gryon-a-propos-feature .gryon-a-propos-feature__title,
   .gryon-a-propos .gryon-a-propos-feature .gryon-a-propos-feature__title {
     width: fit-content !important;
     max-width: 100% !important;
     align-self: center !important;
   }

   /* Pictogrammes : Font Awesome 5 (déjà chargé par le thème parent, all.min.css) */
   .gryon-a-propos .gryon-a-propos-feature--temple::before,
   .gryon-a-propos .gryon-a-propos-feature--years::before,
   .gryon-a-propos .gryon-a-propos-feature--concerts::before {
     display: block !important;
     margin: 0 auto 1.1rem !important;
     flex-shrink: 0 !important;
     font-family: 'Font Awesome 5 Free' !important;
     font-weight: 900 !important;
     font-style: normal !important;
     font-variant: normal !important;
     text-rendering: auto !important;
     -webkit-font-smoothing: antialiased !important;
     line-height: 1 !important;
     font-size: 2.75rem !important;
     color: var(--gryon-red) !important;
   }

   .gryon-a-propos .gryon-a-propos-feature--temple::before {
     content: '\f51d' !important; /* fa-church */
   }

   .gryon-a-propos .gryon-a-propos-feature--years::before {
     content: '\f001' !important; /* fa-music */
   }

   .gryon-a-propos .gryon-a-propos-feature--concerts::before {
     content: '\f073' !important; /* fa-calendar-alt */
   }

   /* Deuxième colonne = 2e liste de musiciens : marge bas comme les paragraphes (plus spécifique que le reset mobile sur ul) */
   body.page-a-propos .ova-page-section .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) > .wp-block-column:nth-child(2) ul.wp-block-list,
   body.gryon-a-propos-page .ova-page-section .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) > .wp-block-column:nth-child(2) ul.wp-block-list,
   .ova-page-section:has(.gryon-a-propos) .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) > .wp-block-column:nth-child(2) ul.wp-block-list,
   body.page-a-propos .ova-page-section .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) > .wp-block-column:nth-child(2) .ccg-musiciens-list,
   body.gryon-a-propos-page .ova-page-section .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) > .wp-block-column:nth-child(2) .ccg-musiciens-list,
   .ova-page-section:has(.gryon-a-propos) .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) > .wp-block-column:nth-child(2) .ccg-musiciens-list {
     margin-bottom: 1.1em !important;
     margin-block-end: 1.1em !important;
   }

   @media (max-width: 782px) {
     /* Bloc titre + bloc intro : moins d’air entre les deux en pile */
     .gryon-a-propos .gryon-a-propos__header {
       margin-bottom: 1.5rem !important;
     }

     /* Intro : deux colonnes texte — row-gap moindre quand elles s’empilent */
     body.page-a-propos .ova-page-section .gryon-a-propos__intro.wp-block-columns,
     body.gryon-a-propos-page .ova-page-section .gryon-a-propos__intro.wp-block-columns,
     .ova-page-section:has(.gryon-a-propos) .gryon-a-propos__intro.wp-block-columns,
     .gryon-a-propos .gryon-a-propos__intro.wp-block-columns,
     body.page-a-propos .ova-page-section .gryon-a-propos__intro.is-layout-flex,
     body.gryon-a-propos-page .ova-page-section .gryon-a-propos__intro.is-layout-flex,
     .ova-page-section:has(.gryon-a-propos) .gryon-a-propos__intro.is-layout-flex,
     .gryon-a-propos .gryon-a-propos__intro.is-layout-flex {
       row-gap: 1.1rem !important;
       --wp--style--block-gap: 1.1rem clamp(2rem, 5vw, 3.5rem) !important;
     }

     /* Core : .is-not-stacked-on-mobile garde les colonnes en ligne — empiler les 3 blocs « features » */
     .gryon-a-propos .gryon-a-propos__features.wp-block-columns.is-not-stacked-on-mobile,
     .gryon-a-propos .gryon-a-propos__features.wp-block-columns {
       flex-direction: column !important;
       flex-wrap: nowrap !important;
       align-items: stretch !important;
       gap: 2rem 0 !important;
     }

     .gryon-a-propos .gryon-a-propos__features.wp-block-columns > .wp-block-column {
       flex-basis: 100% !important;
       width: 100% !important;
       max-width: 100% !important;
     }

     /* Deux listes musiciens (ul.wp-block-list ou .ccg-musiciens-list) : en pile, le core laisse column-gap / row-gap — sans :has(.ccg-…) ça ne matchait pas le markup réel */
     body.page-a-propos .ova-page-section .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list),
     body.gryon-a-propos-page .ova-page-section .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list),
     .ova-page-section:has(.gryon-a-propos) .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) {
       row-gap: 0 !important;
       column-gap: 0 !important;
       gap: 0 !important;
       --wp--style--block-gap: 0 !important;
     }

     body.page-a-propos .ova-page-section .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) > .wp-block-column,
     body.gryon-a-propos-page .ova-page-section .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) > .wp-block-column,
     .ova-page-section:has(.gryon-a-propos) .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) > .wp-block-column {
       margin-top: 0 !important;
       margin-bottom: 0 !important;
       margin-block-start: 0 !important;
       margin-block-end: 0 !important;
     }

     body.page-a-propos .ova-page-section .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) ul.wp-block-list,
     body.gryon-a-propos-page .ova-page-section .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) ul.wp-block-list,
     .ova-page-section:has(.gryon-a-propos) .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) ul.wp-block-list,
     body.page-a-propos .ova-page-section .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) .ccg-musiciens-list,
     body.gryon-a-propos-page .ova-page-section .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) .ccg-musiciens-list,
     .ova-page-section:has(.gryon-a-propos) .wp-block-columns.is-layout-flex:not(.gryon-a-propos__intro):not(.gryon-a-propos__features):has(ul.wp-block-list, .ccg-musiciens-list) .ccg-musiciens-list {
       margin-top: 0 !important;
       margin-bottom: 0 !important;
       margin-block-start: 0 !important;
       margin-block-end: 0 !important;
     }
   }

/* Page Bibliothèque : styles inline dans extend/add_js_css.php (body.page-bibliotheque + body.page-id-{ID}) */
