/*
Theme Name: Astra Child
Theme URI: https://wpastra.com/
Template: astra
Author: Brainstorm Force
Author URI: https://wpastra.com/about/?utm_source=theme_preview&utm_medium=author_link&utm_campaign=astra_theme
Description: The Astra WordPress theme is lightning-fast and highly customizable. It has over 1 million downloads and the only theme in the world with 6,000+ five-star reviews! It’s ideal for professional web designers, solopreneurs, small businesses, eCommerce, membership sites and any type of website. It offers special features and templates so it works perfectly with all page builders like Spectra, Elementor, Beaver Builder, etc. Fast performance, clean code, mobile-first design and schema markup are all built-in, making the theme exceptionally SEO-friendly. It’s fully compatible with WooCommerce, SureCart and other eCommerce plugins and comes with lots of store-friendly features and templates. Astra also provides expert support for free users. A dedicated team of fully trained WordPress experts are on hand to help with every aspect of the theme. Try the live demo of Astra: https://zipwp.org/themes/astra/
Tags: custom-menu,custom-logo,entertainment,one-column,two-columns,left-sidebar,e-commerce,right-sidebar,custom-colors,editor-style,featured-images,full-width-template,microformats,post-formats,rtl-language-support,theme-options,threaded-comments,translation-ready,blog
Version: 4.13.6.1785222259
Updated: 2026-07-28 09:04:19

*/

/* Pour les signatures sur les pages a propos */
@import url('https://fonts.cdnfonts.com/css/family-signature');
/* GLOBAL */
/* ==========================================================================
   RESET CSS
   A coller tout en haut de ton style.css, avant toutes tes autres regles
   ========================================================================== */

/* Box-sizing coherent partout */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Suppression des marges par defaut du navigateur */
* {
  margin: 0;
}

/* Hauteur de ligne minimale coherente pour la lisibilite */
html {
  -webkit-text-size-adjust: 100%;
}

body {
  min-height: 100vh;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* Probleme barre de defilement mobile */
html,
body {
  overflow-x: hidden;
  max-width: 100%;
}

/* Reponsive */
@media (max-width: 767px) {
  .hide-on-mobile {
    display: none !important;
  }
}

/* Cache l'element sur desktop (garde-le uniquement sur mobile/tablette) */
@media (min-width: 768px) {
  .hide-on-pc {
    display: none !important;
  }
}

/* Optionnel : variante tablette uniquement, si besoin d'un 3e cas de figure */
@media (min-width: 768px) and (max-width: 1024px) {
  .hide-on-tablet {
    display: none !important;
  }
}

/*  */
/* HOME */
/* On modifie le menu */
.ast-theme-transparent-header .main-header-bar,
.ast-theme-transparent-header.ast-header-break-point .main-header-bar {
  position: fixed;
  top: 1rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10001;
  width: min(94%, 1200px);
  background: white;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 100px;
  transition: all 0.5s ease;
}

/* On modifie le menu mobile */
.ast-mobile-header-content {
  position: fixed !important;
  padding-top: 120px !important;
}

/* Style commun a tous les boutons (reflet au survol) */
.ast-button,
.wp-block-button__link,
.main-header-menu>li:last-child>.menu-link {
  position: relative;
  overflow: hidden;
}

.ast-button::before,
.wp-block-button__link::before,
.main-header-menu>li:last-child>.menu-link::before {
  content: "";
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(120deg,
      rgba(255, 255, 255, 0) 0%,
      rgba(255, 255, 255, 0.35) 50%,
      rgba(255, 255, 255, 0) 100%);
  transform: skewX(-20deg);
  transition: left 0.6s ease;
  pointer-events: none;
}

.ast-button:hover::before,
.wp-block-button__link:hover::before,
.main-header-menu>li:last-child>.menu-link:hover::before {
  left: 125%;
}

/* Style specifique au bouton "Reserver" sur mobile, le menu empile les liens en pleine largeur par defaut :
   on force le bouton "Reserver" a rester compact et centre */
@media (max-width: 921px) {

  .ast-mobile-header-content .main-header-menu>li:last-child,
  .main-header-menu>li:last-child {
    text-align: center !important;
    padding: 16px 20px !important;
  }

  .ast-mobile-header-content .main-header-menu>li:last-child>.menu-link,
  .main-header-menu>li:last-child>.menu-link {
    display: inline-block !important;
    width: auto !important;
    min-width: 160px !important;
    max-width: 100px !important;
    padding: 0 !important;
  }

  /* Logo menu espacement */
  #ast-mobile-header>div.ast-main-header-wrap.main-header-bar-wrap>div>div>div.site-header-primary-section-left.site-header-section.ast-flex.site-header-section-left>div>div>span>a>img {
    margin-left: 10px;
  }

  #whyus>div:nth-child(5)>div:nth-child(1)>p.gb-animate.gb-fade-right.gb-delay-2.has-white-color.has-text-color.has-link-color.wp-elements-c957089a84e779bbc61b0a17ace8d0c3.wp-block-paragraph.gb-in,
  #whyus>div:nth-child(5)>div:nth-child(1)>p.has-text-align-center.gb-animate.gb-fade-bottom.gb-delay-1.has-white-color.has-text-color.has-link-color.has-cardo-font-family.has-large-font-size.wp-elements-6f370b6c99a280cf678517b4093f501a.wp-block-paragraph.gb-in,
  #whyus>div:nth-child(5)>div.wp-block-column.is-layout-flow.wp-container-core-column-is-layout-4c43efd1.wp-block-column-is-layout-flow>p.has-text-align-center.gb-animate.gb-fade-bottom.gb-delay-1.has-white-color.has-text-color.has-link-color.has-cardo-font-family.has-large-font-size.wp-elements-9d11be5e55c273578438a14374784046.wp-block-paragraph.gb-in {
    margin-bottom: 15px !important;
  }
}

/* Style specifique au bouton "Reserver" (pas un bouton Astra/Gutenberg standard,
   donc il a besoin de ses propres regles de fond/forme) */
.main-header-menu>li:last-child>.menu-link {
  display: inline-block;
  background-color: #2F5C42;
  color: #fff !important;
  border-radius: 100px;
  padding: 10px 24px;
  font-weight: 600;
  transition: background-color 0.25s ease;
}

.main-header-menu>li:last-child>.menu-link:hover {
  background-color: #1F3D2C;
}

/* BOOKING SYSTEM */
#golf-booking-form {
  max-width: 480px;
  margin: 0 auto;
  padding: 32px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
}

.gb-field {
  margin-bottom: 20px;
}

.gb-field label {
  display: block;
  margin-bottom: 8px;
  font-weight: 600;
  color: #1F3D2C;
}

.gb-field input[type="date"],
.gb-field input[type="text"],
.gb-field input[type="email"],
.gb-field input[type="tel"] {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #E2E5DF;
  border-radius: 10px;
  font-size: 15px;
}

.gb-slots {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

/* Calendrier */
.gb-cal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.gb-cal-title {
  font-weight: 600;
  color: #1F3D2C;
}

.gb-cal-nav {
  background: none;
  border: 1px solid #E2E5DF;
  border-radius: 8px;
  width: 32px;
  height: 32px;
  cursor: pointer;
  font-size: 16px;
  color: #1F3D2C;
}

.gb-cal-nav:hover {
  background: #F5F2EA;
}

.gb-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  margin-bottom: 4px;
}

.gb-cal-label {
  text-align: center;
  font-size: 12px;
  color: #888780;
  padding: 4px 0;
}

.gb-cal-day {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  font-size: 14px;
}

.gb-cal-empty {
  visibility: hidden;
}

.gb-cal-available {
  background: #F5F2EA;
  color: #1F3D2C;
  cursor: pointer;
  transition: all 0.2s ease;
}

.gb-cal-available:hover {
  background: #E2E5DF;
}

.gb-cal-selected {
  background: #2F5C42 !important;
  color: #fff !important;
}

.gb-cal-disabled {
  color: #D3D1C7;
  cursor: not-allowed;
}

.gb-no-slots,
.gb-loading {
  color: #5F5E5A;
  font-size: 14px;
  margin: 0;
}

.gb-slot {
  padding: 10px 16px;
  border: 1px solid #E2E5DF;
  border-radius: 999px;
  background: #F5F2EA;
  color: #1F3D2C;
  cursor: pointer;
  font-weight: 500;
  transition: all 0.2s ease;
}

.gb-slot:hover {
  border-color: #2F5C42;
}

.gb-slot-active {
  background: #2F5C42;
  color: #fff;
  border-color: #2F5C42;
}

#gb-submit {
  width: 100%;
  padding: 14px;
  background: #2F5C42;
  color: #fff;
  border: none;
  border-radius: 999px;
  font-weight: 600;
  font-size: 16px;
  cursor: pointer;
  transition: background 0.2s ease;
}

#gb-submit:hover {
  background: #1F3D2C;
}

#gb-submit:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* ==========================================================================
   ANIMATIONS AU SCROLL
   Ajoute "gb-animate" + une variante sur n'importe quel bloc
   (Reglages du bloc > Avance > Classe(s) CSS supplementaire(s))
   ========================================================================== */

.gb-animate {
  opacity: 0;
  transition: opacity 0.7s ease, transform 0.7s ease;
  will-change: opacity, transform;
}

.gb-animate.gb-in {
  opacity: 1;
  transform: none !important;
}

/* Variantes de direction (a combiner avec gb-animate) */
.gb-fade-up {
  transform: translateY(30px);
}

.gb-fade-down {
  transform: translateY(-30px);
}

.gb-fade-left {
  transform: translateX(40px);
}

.gb-fade-right {
  transform: translateX(-40px);
}

.gb-zoom-in {
  transform: scale(0.92);
}

.gb-fade-in {
  transform: none;
  /* juste un fondu, sans deplacement */
}

/* Delais pour faire apparaitre plusieurs blocs en cascade */
.gb-delay-1 {
  transition-delay: 0.1s;
}

.gb-delay-2 {
  transition-delay: 0.2s;
}

.gb-delay-3 {
  transition-delay: 0.3s;
}

.gb-delay-4 {
  transition-delay: 0.4s;
}

.gb-delay-5 {
  transition-delay: 0.5s;
}

.gb-delay-6 {
  transition-delay: 0.6s;
}

.gb-slot {
  padding: 10px 16px;
  border: 1px solid #E2E5DF;
  border-radius: 999px;
  background: #F5F2EA;
  color: #1F3D2C;
  cursor: pointer;
  font-weight: 500;
  transition: all 0.2s ease;
}

.gb-slot:hover {
  border-color: #2F5C42;
}

.gb-slot-active {
  background: #2F5C42;
  color: #fff;
  border-color: #2F5C42;
}

#gb-submit {
  width: 100%;
  padding: 14px;
  background: #2F5C42;
  color: #fff;
  border: none;
  border-radius: 999px;
  font-weight: 600;
  font-size: 16px;
  cursor: pointer;
  transition: background 0.2s ease;
}

#gb-submit:hover {
  background: #1F3D2C;
}

#gb-submit:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* ==========================================================================
   ANIMATION "NOTIFICATION" SUR LE BOUTON RESERVER
   ========================================================================== */

@keyframes gb-shake {

  0%,
  100% {
    transform: translateX(0) rotate(0);
  }

  15% {
    transform: translateX(-3px) rotate(-3deg);
  }

  30% {
    transform: translateX(3px) rotate(3deg);
  }

  45% {
    transform: translateX(-3px) rotate(-2deg);
  }

  60% {
    transform: translateX(3px) rotate(2deg);
  }

  75% {
    transform: translateX(-2px) rotate(-1deg);
  }
}

/* Version limitee (recommandee) : tremble 3 fois puis s'arrete.
     La classe .gb-shake-active est ajoutee/retiree par un petit JS ci-dessous. */
.main-header-menu>li:last-child>.menu-link.gb-shake-active {
  animation: gb-shake 0.6s ease-in-out 3;
}

/* Respecte les utilisateurs sensibles aux animations */
@media (prefers-reduced-motion: reduce) {
  .main-header-menu>li:last-child>.menu-link.gb-shake-active {
    animation: none;
  }
}

.gb-slot {
  padding: 10px 16px;
  border: 1px solid #E2E5DF;
  border-radius: 999px;
  background: #F5F2EA;
  color: #1F3D2C;
  cursor: pointer;
  font-weight: 500;
  transition: all 0.2s ease;
}

.gb-slot:hover {
  border-color: #2F5C42;
}

.gb-slot-active {
  background: #2F5C42;
  color: #fff;
  border-color: #2F5C42;
}

#gb-submit {
  width: 100%;
  padding: 14px;
  background: #2F5C42;
  color: #fff;
  border: none;
  border-radius: 999px;
  font-weight: 600;
  font-size: 16px;
  cursor: pointer;
  transition: background 0.2s ease;
}

#gb-submit:hover {
  background: #1F3D2C;
}

#gb-submit:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* Probleme Réserver sur la page réserver passe sous le menu */
#post-55 {
  margin-top: 110px;
  margin-bottom: 110px;
}

/* Pour la page d'accueil choix du golf */

.golf-choice-block {
  height: 100vh;
  min-height: 50vh !important;
  max-height: 100vh !important;
  overflow: hidden;
  /* coupe tout ce qui depasse du cadre */
}

/* Logo centrer mobile */
@media (max-width: 767px) {
  .golf-logo-center img {
    width: 100px !important;
    height: 100px !important;
  }

  .gb-half {
    height: 50vh !important;
    min-height: 50vh !important;
    max-height: 50vh !important;
    overflow: hidden;
  }
  
  .gb-half img,
  .gb-half .wp-block-cover__image-background {
    height: 100% !important;
    width: 100%;
    object-fit: cover;
  }
  .post-6 p {
    font-size: 32px!important;
  }
}
body.page-id-6 {
  overflow: hidden;
  height: 100vh;
  height: 100dvh; /* plus fiable sur mobile */
}

/* Masque le header */
body.page-id-6 #masthead {
  display: none;
}
body.page-id-55 #masthead {
  display: none;
}

/* Comme le header disparait, il faut aussi retirer le padding-top
   qu'on avait mis pour compenser le header flottant fixe */
body.page-id-6 .ast-container,
body.page-id-6 #content {
  padding-top: 0 !important;
}

/* masque le footer */
body.page-id-6 footer,
body.page-id-6 #colophon {
  display: none;
}

/* Logo pour page d'accueil choix golf */
.golf-logo-center img {
  background-color: white;
}

.golf-logo-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 20;
}

/* Page d'accueil Orange DISABLED */

.badge {
  display: inline-flex;
  align-items: center;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 100px;
  padding: 14px 32px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #E8D98A;
  /* jaune/dore, comme sur ta capture */
  font-weight: 700;
  font-size: 17px;
}

.wp-block-cover__inner-container>.hide-on-tablet.hide-on-mobile {
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
}

.wp-block-cover__inner-container>.hide-on-tablet.hide-on-mobile .wp-block-buttons {
  justify-content: center;
}

/* Image Page d'accueil Avignon et orange */
@media (max-width: 767px) {

  .wp-block-cover,
  .wp-block-cover-image {
    width: 90%;
    max-width: unset !important;
  }

  /* Pour le accueil-groupe-avignon */
  .accueil-groupe-avignon {
    justify-content: unset!important;
  }
}

/* Mode mobile probleme premier text page chevaucher par le menu */
@media (max-width: 767px) {
  :root {
    --wp--custom--ast-default-block-top-padding: 100px;
  }
}

/* ==========================================================================
   TABLEAUX DE TARIFS (wp-block-table)
   S'applique automatiquement a TOUS les tableaux du site
   N'impose AUCUNE police : herite des polices deja configurees dans le theme
   ========================================================================== */
  table {
    margin-bottom: 0;
    
  }

  .wp-block-table thead {
    border-bottom: none;
  }
   .wp-block-table {
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 20px 50px rgba(31, 61, 44, 0.08);
    margin: 0;
    border: 1px solid #1F3D2C;
    padding: 0!important;
  }
  
  .wp-block-table table {
    border-collapse: collapse!important;
    width: 100%!important;
    border-spacing: 0!important;
  }
  
  /* En-tete vert fonce */
  .wp-block-table thead tr {
    background: #1F3D2C;
  }
  
  .wp-block-table thead th {
    color: #fff !important;
    border: none !important;
  }
  
  .wp-block-table thead th:first-child {
    text-align: left;
    padding-left: 32px;
  }
  
  /* Corps du tableau */
  .wp-block-table tbody td {
    border-bottom: 1px solid rgba(31, 61, 44, 0.06) !important;
    border-left: none !important;
    border-right: none !important;
    background: #fff;
  }
  
  .wp-block-table tbody tr:last-child td {
    border-bottom: none !important;
  }
  
  .wp-block-table tbody tr:nth-child(even) td {
    background: #FAF8F2;
  }
  
  /* Premiere colonne (nom de la formule) : juste alignee a gauche + gras */
  .wp-block-table tbody td:first-child {
    text-align: left;
    padding-left: 32px;
    font-weight: 700;
  }
  
  /* Responsive */
  @media (max-width: 700px) {
  
    .wp-block-table thead th,
    .wp-block-table tbody td {
      padding: 12px 8px;
      font-size: 13px;
    }
  
    .wp-block-table thead th:first-child,
    .wp-block-table tbody td:first-child {
      padding-left: 4px;
    }
  }
/* FIN */

  /* Page prestation Accordeon title */
  .wp-block-accordion-heading__toggle{
    background-color: white;
    padding: 20px;
  }

  /* Trackman mobile, block coach */
  @media (max-width: 700px) {
    .mobile-no-padding {
      padding: 0!important;
    }
    .mobile-no-margin {
      margin: 0!important;
    }
    
    .mobile-no-gap {
      gap: 0!important;
    }
  }

.rotate-svg {
  transform: rotate(45deg);
}

/* Necessaire pour que le badge se positionne par rapport a CE bloc,
   pas par rapport a toute la page */
/*    .site-label-badge {
    display: table; 
    background: #fff;
    color: #1F3D2C !important;
    font-weight: 700;
    padding: 14px 32px;
    border-radius: 100px;
    margin: 0 auto !important;
    text-align: center;
  } */

  /* Page contact */
  /* Text area */
  .gb-field textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #E2E5DF;
    border-radius: 10px;
    font-size: 15px;
    font-family: inherit;
    resize: vertical;
  }


/* ==========================================================================
   ECRAN DE CONFIRMATION DU FORMULAIRE DE CONTACT
   ========================================================================== */
 
   #golf-contact-form {
    position: relative;
  }
   
  #gc-success-panel {
    text-align: center;
    padding: 60px 20px;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.5s ease, transform 0.5s ease;
  }
   
  #gc-success-panel.gc-success-visible {
    opacity: 1;
    transform: translateY(0);
  }
   
  .gc-success-icon {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: #2F5C42;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 24px;
    box-shadow: 0 12px 30px rgba(31, 61, 44, 0.25);
  }
   
  #gc-success-panel h3 {
    font-family: "Fraunces", Georgia, serif;
    color: #1F3D2C;
    font-size: 24px;
    margin-bottom: 10px;
  }
   
  #gc-success-panel p {
    color: #6B6F63;
    font-size: 15px;
    max-width: 360px;
    margin: 0 auto;
    line-height: 1.6;
  }

/* Tableau fais main page prestation Orange */
@media (max-width: 767px) {
  .price-row-grid {
    display: flex !important; /* remplace le grid par un flex scrollable */
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    gap: 8px;
  }

  .price-row-grid > * {
    flex: 0 0 100px !important; /* largeur fixe par colonne, ne s'ecrase plus */
    min-width: 20px;
  }
  /* Pour les text dans tableau fais main */
  .p-tab-main {
    padding: 0!important;
    padding-left: 0!important;
    padding-right: 0!important;
  }
  .wp-container-core-group-is-layout-1010e229 > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
    max-width: 100%!important ;
  }
}
/* On change la regle du site quand p a un background */
:root :where(p.has-background) {
  padding: .5em;
}

/* Tableau couleur différente prestation */
.bg-red-tab tr {
  background-color: #e34242!important;
}
.bg-blue-tab tr {
  background-color: #4e4eff!important;
}
.bg-violet-tab tr {
  background-color: #ab4dab!important;
}
.bg-yellow-tab tr {
  background-color: #bfb54d!important;
}

/* ==========================================================================
   CARTE PHOTO AVEC DEGRADE BLANC EN BAS (type "Cours collectifs")
   ========================================================================== */
 
   .white-fade-card {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
  }
   
  .white-fade-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
      180deg,
      rgba(245, 242, 234, 0) 0%,
      rgba(245, 242, 234, 0.65) 45%,
      rgba(245, 242, 234, 0.96) 75%,
      rgba(245, 242, 234, 1) 100%
    );
    z-index: 1;
    pointer-events: none; /* laisse les clics passer a travers (boutons, liens) */
  }
   
  /* Tout le contenu texte doit passer au-dessus du degrade */
  .white-fade-card > * {
    position: relative;
    z-index: 2;
  }
   
  /* Le badge rond avec icone, centre et remonte legerement sur la photo */
  .white-fade-card .card-icon-badge {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: #8B7355; /* brun/dore, ajuste a ta couleur exacte */
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
  }
   
  .white-fade-card .card-icon-badge svg {
    width: 28px;
    height: 28px;
    color: #fff;
  }
   
  .white-fade-card h3 {
    text-align: center;
    font-size: 24px;
    margin-bottom: 10px;
  }
   
  .white-fade-card p {
    text-align: center;
    color: #4a4d43;
    font-size: 14.5px;
    line-height: 1.6;
    max-width: 320px;
    margin: 0 auto;
  }
  .white-fade-card .wp-block-table {
    box-shadow: 0 20px 50px rgba(31, 61, 44, 0.1);
    border: none !important;
  }

  /* Resize icon prestation category */
  .icon-img-resize {
    width: 70px;
  }

  @media (max-width: 767px) {
    .icon-img-resize,
    .icon-img-resize img {
      width: 50px !important;
      height: 50px !important;
      max-width: unset !important;
    }
  }

/* On répare bordure tableau */
table, td, th {
  border: unset!important;
}


/* ==========================================================================
   VERSION SIMPLE : image en fond de carte + degrade, tableau normal par-dessus
   ========================================================================== */
 
   .prestation-bg-wrapper {
    position: relative;
    border-radius: 20px;
    overflow: hidden; /* arrondit aussi la photo de fond */
  }
   
  .prestation-bg-wrapper::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
      90deg,
      rgba(245, 242, 234, 1) 0%,
      rgba(245, 242, 234, 0.9) 50%,
      rgba(245, 242, 234, 0.4) 80%,
      rgba(245, 242, 234, 0) 100%
    );
    z-index: 1;
  }
   
  /* Tout le contenu (titre, tableau, bouton) passe au-dessus du degrade */
  .prestation-bg-wrapper > * {
    position: relative;
    z-index: 2;
  }

  /* Degrader page a propos coach img et citation */
  .coach-photo-wrapper {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
  }
  
  .coach-photo-wrapper::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
      90deg,
      rgba(245, 242, 234, 0) 55%,
      rgba(245, 242, 234, 0.35) 75%,
      rgba(245, 242, 234, 0.8) 90%,
      rgba(245, 242, 234, 1) 100%
    );
    z-index: 1;
    pointer-events: none;
  }
/* On gére les modals */
/* ==========================================================================
   SYSTEME DE POPUP / MODALE
   ========================================================================== */

   .gb-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9999;
    align-items: center;
    justify-content: center;
    padding: 24px;
  }
  
  .gb-modal.gb-modal-active {
    display: flex;
    max-width: 100%;
  }
  
  .gb-modal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(20, 30, 20, 0.65);
    backdrop-filter: blur(4px);
  }
  
  .gb-modal-box {
    position: relative;
    background: #fff;
    border-radius: 20px;
    max-width: 720px;
    width: 100%;
    max-height: 85vh;
    overflow-y: auto;
    padding: 44px 40px;
    box-shadow: 0 40px 90px rgba(15, 25, 15, 0.35);
    animation: gb-modal-in 0.25s ease;
  }
  
  @keyframes gb-modal-in {
    from { opacity: 0; transform: scale(0.96) translateY(10px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
  }
  
  .gb-modal-close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #F5F2EA;
    border: 1px solid rgba(31, 61, 44, 0.08);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    color: #1F3D2C;
    z-index: 2;
    transition: all 0.2s ease;
  }
  
  .gb-modal-close:hover {
    background: #1F3D2C;
    color: #fff;
  }
  
  /* Pour les modales contenant un PDF : plus large, plus haute, hierarchie soignee */
  .gb-modal-box.gb-modal-pdf {
    max-width: 960px;
    width: 92%;
    display: flex;
    flex-direction: column;
    padding: 36px 36px 28px;
  }
  
  .gb-modal-box.gb-modal-pdf h3 {
    font-size: 22px;
    color: #1F3D2C;
    margin-bottom: 6px;
  }
  
  .gb-modal-box.gb-modal-pdf p {
    color: #6B6F63;
    font-size: 14.5px;
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(31, 61, 44, 0.08);
  }
  
  .gb-modal-box.gb-modal-pdf iframe {
    width: 100%;
    height: 70vh;
    border: 1px solid rgba(31, 61, 44, 0.1);
    border-radius: 14px;
    flex-shrink: 0;
    background: #F5F2EA;
  }
  
  /* Empeche le scroll de la page derriere quand une modale est ouverte */
  body.gb-modal-open {
    overflow: hidden;
  }
  
  @media (max-width: 600px) {
    .gb-modal-box {
      padding: 28px 22px;
      max-height: 90vh;
    }
  }
.btn-modal {
  padding: 14px;
  background: #2F5C42;
  color: #fff!important;
  border: none;
  border-radius: 999px;
  font-weight: 600;
  font-size: 16px;
  cursor: pointer;
  transition: background 0.2s ease;
}
.btn-modal a {
  color: white;
}

/* Tableau dans une modal */
.gb-modal-table {
  flex-shrink: 0;
}

/* ==========================================================================
   SESSIONS DE COURS COLLECTIFS / INITIATIONS
   ========================================================================== */

   .gb-session-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 18px;
    border: 1px solid #E2E5DF;
    border-radius: 12px;
    margin-bottom: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
  }
  
  .gb-session-card:hover {
    border-color: #2F5C42;
  }
  
  .gb-session-selected {
    background: #2F5C42;
    border-color: #2F5C42;
    color: #fff;
  }
  
  .gb-session-main {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }
  
  .gb-session-main span {
    font-size: 13px;
    color: #6B6F63;
  }
  
  .gb-session-selected .gb-session-main span {
    color: rgba(255, 255, 255, 0.75);
  }
  
  .gb-session-remaining {
    font-size: 12.5px;
    font-weight: 600;
    color: #C9A44C;
    white-space: nowrap;
  }
  
  .gb-session-selected .gb-session-remaining {
    color: #E8D98A;
  }
  
  .gb-booking-success {
    background: #F5F2EA;
    border-radius: 12px;
    padding: 24px;
    text-align: center;
    color: #1F3D2C;
    font-weight: 600;
  }

.page-id-230,
.page-id-437 {
  background-color: #fff!important;
}

/* ==========================================================================
   CARTES TARIFAIRES POUR POPUPS (type "Stages")
   ========================================================================== */
 
   .stage-pricing-grid {
    display: flex;
    gap: 16px;
    margin: 24px 0;
    flex-wrap: wrap;
  }
   
  .stage-price-card {
    flex: 1;
    min-width: 140px;
    border: 1px solid #E2E5DF;
    border-radius: 16px;
    padding: 28px 16px 20px;
    text-align: center;
    position: relative;
    background: #FAF8F2;
  }
   
  .stage-price-card.is-recommended {
    border-color: #C9A44C;
    border-width: 2px;
    background: #FFFDF7;
    box-shadow: 0 14px 34px rgba(201, 164, 76, 0.18);
  }
   
  .stage-price-card .stage-badge {
    position: absolute;
    top: -13px;
    left: 50%;
    transform: translateX(-50%);
    background: #C9A44C;
    color: #fff;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 5px 14px;
    border-radius: 100px;
    white-space: nowrap;
  }
   
  .stage-price-card h5 {
    font-family: Georgia, serif;
    font-size: 14px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #1F3D2C;
    margin: 4px 0 4px;
  }
   
  .stage-price-card .stage-price {
    font-family: Georgia, serif;
    font-weight: 700;
    font-size: 30px;
    margin: 6px 0 18px;
  }
   
  .stage-price-card.c-green .stage-price { color: #2F5C42; }
  .stage-price-card.c-gold .stage-price  { color: #C9A44C; }
  .stage-price-card.c-blue .stage-price  { color: #3F6F93; }
   
  .stage-price-card a.stage-btn {
    display: inline-block;
    background: #C9A44C;
    color: #fff !important;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.03em;
    padding: 10px 16px;
    border-radius: 100px;
    text-decoration: none;
  }
   
  .stage-features-row {
    display: flex;
    justify-content: space-around;
    gap: 16px;
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid #E2E5DF;
    flex-wrap: wrap;
  }
   
  .stage-feature {
    display: flex;
    align-items: center;
    gap: 10px;
    text-align: left;
  }
   
  .stage-feature .stage-icon-circle {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #F5F2EA;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #C9A44C;
  }
   
  .stage-feature strong {
    display: block;
    font-size: 12.5px;
    color: #1F3D2C;
  }
   
  .stage-feature span {
    font-size: 11px;
    color: #6B6F63;
  }
.max-w-100 {
  max-width: 100%!important;
}
@media (max-width: 767px) {
  .p-0-mobile {
    padding: 0!important;
  }
}

/* Fleches du calendrier de reservation : centrees dans leur encart (17/10/2026) */
.gb-cal-header .gb-cal-nav {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    width: 72px !important;
    height: 40px !important;
    line-height: 1 !important;
    font-size: 18px !important;
}

/* Cours individuels : degrade plus leger pour laisser voir le Trackman (17/10/2026) */
.prestation-bg-wrapper[style*="Cours-individuel"]::before {
    background: linear-gradient(180deg, rgba(245, 242, 234, 0.88) 0%, rgba(245, 242, 234, 0.75) 24%, rgba(245, 242, 234, 0) 34%), linear-gradient(90deg, rgb(245, 242, 234) 0%, rgba(245, 242, 234, 0.9) 22%, rgba(245, 242, 234, 0.5) 38%, rgba(245, 242, 234, 0.12) 50%, rgba(245, 242, 234, 0) 60%);
}

/* Avis eleves : nom + avatar alignes en bas de chaque carte, quelle que soit la longueur du texte (19/10/2026) */
.is-layout-grid > .has-white-background-color:has(.wp-block-avatar) > :last-child:has(.wp-block-avatar) {
    margin-top: auto !important;
}

/* Avis provisoires : mention cachee uniquement pour les comptes connectes (apercu), visible pour le public (19/10/2026) */
body.logged-in .gb-avis-provisoire {
    display: none !important;
}

/* Logos partenaires locaux : meme taille visuelle, un peu plus petits (19/10/2026) */
figure:has(> img[src*="uploads/2026/07/1-1"]),
figure:has(> img[src*="uploads/2026/08/2-1024x1024"]),
figure:has(> img[src*="uploads/2026/07/4-1024x1024"]) {
    display: flex !important;
    align-items: center;
    justify-content: center;
    height: 210px;
    overflow: hidden;
    margin: 0 auto !important;
}
figure > img[src*="uploads/2026/07/1-1"] {
    width: 200px !important;
    height: 200px !important;
    max-width: none !important;
    object-fit: contain;
    aspect-ratio: auto !important;
}
figure > img[src*="uploads/2026/07/4-1024x1024"] {
    width: 235px !important;
    height: 235px !important;
    max-width: none !important;
    object-fit: contain;
    aspect-ratio: auto !important;
}
figure > img[src*="uploads/2026/08/2-1024x1024"] {
    width: 320px !important;
    height: 320px !important;
    max-width: none !important;
    object-fit: contain !important;
    aspect-ratio: auto !important;
}
@media (max-width: 767px) {
    figure:has(> img[src*="uploads/2026/07/1-1"]),
    figure:has(> img[src*="uploads/2026/08/2-1024x1024"]),
    figure:has(> img[src*="uploads/2026/07/4-1024x1024"]) { height: 150px; }
    figure > img[src*="uploads/2026/07/1-1"] { width: 140px !important; height: 140px !important; }
    figure > img[src*="uploads/2026/07/4-1024x1024"] { width: 165px !important; height: 165px !important; }
    figure > img[src*="uploads/2026/08/2-1024x1024"] { width: 230px !important; height: 230px !important; }
}

/* Avis eleves : prenom centre verticalement avec l'avatar (19/10/2026) */
.is-layout-grid > .has-white-background-color:has(.wp-block-avatar) > :last-child:has(.wp-block-avatar) {
    align-items: center !important;
}
.is-layout-grid > .has-white-background-color:has(.wp-block-avatar) > :last-child:has(.wp-block-avatar) > .wp-block-group {
    justify-content: center !important;
    align-self: center !important;
}
.is-layout-grid > .has-white-background-color:has(.wp-block-avatar) > :last-child:has(.wp-block-avatar) p {
    margin: 0 !important;
}
