/* ==========================================================================
   Base du site : variables, reset, mise en page, sections de la home, pages
   Golf des Flandres, version optimisée (v2)
   Sources fusionnées : main.css, pages-clean.css
   Dimensions en rem (échelle desktop via html, voir « ECHELLE DU SITE SUR DESKTOP » dans main.css).
   ========================================================================== */

/* ---------- main.css ---------- */
/*.nav-links li:has(a[href="#login"]), .nav-links li:has(a#linkToProfile), .gdf-login-required button  {
    display: none;
}*/
.um-members-edit-btn {
    position: absolute;
    top: 0;
    left: 0.125rem;
    transform: scale(0.85);
    transform-origin: top left;
}

input.um-do-search.um-button{
    background: var(--gdf-color-secondary);
    color: var(--gdf-color-white);
    border: 0.125rem solid var(--gdf-color-secondary);
}
.um .um-members-pagi span.current{
	    background: var(--gdf-color-secondary)!important;
    color: var(--gdf-color-white)!important;
}
/* ===== VARIABLES ===== */
:root {
    --gdf-s: 1; /* echelle desktop pour vw / vh, voir plus bas "ECHELLE DU SITE SUR DESKTOP" */
    --gdf-color-primary: #00563f;
    --gdf-color-secondary: #b8935f;
    --gdf-color-accent: #c1a875;
    --gdf-color-strong:#896e48;
    --gdf-color-red: #c1272d;
    --gdf-color-dark: #000000;
    --gdf-color-light: #f5f5f5;
    --gdf-color-white: #ffffff;
    --gdf-color-green-light: #9dc183;
    --gdf-font-display: 'Playfair Display', Georgia, serif;
    --gdf-font-body: 'Roboto', system-ui, sans-serif;

    /* Echelle typographique unique (rem, 1rem = 16px, suit l'échelle du site sur desktop).
       A utiliser pour tout nouveau font-size : font-size: var(--fs-md); */
    --fs-2xs: 0.6875rem;  /* 11px  mentions, étiquettes */
    --fs-xs: 0.75rem;     /* 12px  légendes, métadonnées */
    --fs-sm: 0.875rem;    /* 14px  texte secondaire, menus, boutons */
    --fs-base: 1rem;      /* 16px  texte courant */
    --fs-md: 1.125rem;    /* 18px  texte d'introduction, petits titres */
    --fs-lg: 1.25rem;     /* 20px  titres h4 */
    --fs-xl: 1.5rem;      /* 24px  titres h3 */
    --fs-2xl: 2rem;       /* 32px  titres h2 */
    --fs-3xl: 2.5rem;     /* 40px  grands titres */
    --fs-4xl: 3rem;       /* 48px  titres de section hero */
    --fs-5xl: 4rem;       /* 64px  titres de page */
}
h1.strong, h2.strong, h3.strong{
	color: var(--gdf-color-strong)!important;
}
.wpcf7-checkbox .wpcf7-list-item-label {
    margin: 0.3125rem 0 0px 0.8125rem;
    font-size: var(--fs-sm);
    transform: translateY(0.5rem);
    display: inline-flex;
}


select.wpcf7-form-control.wpcf7-select {
    background-color: rgba(184, 147, 95, 0.1) !important;
}
textarea.wpcf7-form-control.wpcf7-textarea {
    background-color: rgba(184, 147, 95, 0.1) !important;
    color: #694e29;
}
.field-with-label {
    position: relative;
    display: flex;
    align-items: stretch;
    margin-bottom: 0.9375rem;
}

.field-with-label p {
    display: contents;
}

.field-with-label br {
    display: none;
}

.field-label {
    background: linear-gradient(135deg, #a67c52 0%, #c9a66b 100%);
    color: white;
    font-size: var(--fs-sm);
    padding: 0 0.9375rem;
    display: flex;
    align-items: center;
    border-radius: 0.25rem 0 0 0.25rem;
    white-space: nowrap;
    min-width: 10rem;
    justify-content: center;
    align-self: stretch; /* Prend toute la hauteur */
    margin: 0;
    line-height: 1;
}

.field-with-label .wpcf7-form-control-wrap {
    flex: 1;
    display: flex;
}

.field-with-label input,
.field-with-label select {
    border-radius: 0 0.25rem 0.25rem 0 !important;
    border-left: none !important;
    width: 100%;
    min-height: 2.8125rem;
    box-sizing: border-box;
    margin: 0;
}

form input:not([type="checkbox"]):not([type="submit"]), form select, form textarea {
	margin-bottom:0!important;
}
.cmplz-placeholder-parent {
    height: 100%!important;
}
.partenaires-footer img:hover{
	filter: none!important;
}

/* ===== RESET ===== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Stabilité mobile : "clip" ne crée pas de contexte de scroll (contrairement à "hidden"),
   ce qui évite le glissement latéral sur iOS. "hidden" reste en repli pour les anciens navigateurs. */
html {
    width: 100%;
    overflow-x: hidden;
    overflow-x: clip;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    overscroll-behavior-x: none;
}

body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    overflow-x: clip;
    /* supprime le zoom au double tap, garde le zoom au pincement (accessibilité) */
    touch-action: manipulation;
}

body {
    font-family: var(--gdf-font-body);
    color: var(--gdf-color-dark);
    line-height: 1.6;
}

img {
    max-width: 100%;
    display: block;
}
.page-title-hero {
  font-family: var(--gdf-font-display);
  font-size: clamp(var(--fs-2xl), (4.6vw * var(--gdf-s)), var(--fs-5xl));
  font-weight: 600;
  color: #fff;
  margin: 1.75rem 0 0;
  text-align: center;
  line-height: 1.08;
  letter-spacing: -.01em;
  text-transform: none;
  text-shadow: 0 0.125rem 1.5rem rgba(0,0,0,.35);
}

.baseline {
  font-family: var(--gdf-font-body);
  font-size: var(--fs-sm);
  font-weight: 500;
  letter-spacing: .22em;
  color: #f0d9b0;
  text-align: center;
  line-height: 1.4;
  margin-top: 1.25rem;
  opacity: 1;
  text-transform: uppercase;
  text-shadow: 0 0 0.375rem rgba(0,0,0,.6), 0 0.125rem 1.125rem rgba(0,0,0,.75), 0 0 2.5rem rgba(0,0,0,.65), 0 0 4.375rem rgba(0,0,0,.5);
}
.page-title-hero .baseline::before {
  content: "";
  display: block;
  width: 3.5rem;
  height: 0.125rem;
  border-radius: 0.125rem;
  background: #B8935F;
  margin: 0 auto 1rem;
}
.baseline .light{

	    color: #d3b387;

}
h1.wp-block-heading {
    font-family: var(--gdf-font-display);
    color: var(--gdf-color-primary);
    padding: 0 0 1.4375rem 0;
    font-size: var(--fs-3xl);
}

section.homemsg{
	padding:1.25rem 0;
}

/* ===== UTILITIES ===== */
.container {
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 0 2rem;
}

.section-header {
    text-align: center;
    margin-bottom: 4rem;
}

.section-header.light .section-tag {
    color: var(--gdf-color-accent);
}

.section-header.light h2 {
    color: var(--gdf-color-white);
}

.section-tag {
    display: inline-block;
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--gdf-color-secondary);
    letter-spacing: 0.15em;
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.section-header h2 {
    font-family: var(--gdf-font-display);
    font-size: clamp(var(--fs-2xl), (5vw * var(--gdf-s)), var(--fs-5xl));
    font-weight: 700;
    color: var(--gdf-color-primary);
    line-height: 1.2;
}

.btn {
    display: inline-block;
    padding: 1rem 2.5rem;
    font-size: var(--fs-base);
    font-weight: 600;
    text-decoration: none;
    border-radius: 0.25rem;
    transition: all 0.3s ease;
    cursor: pointer;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    border: 0.125rem solid transparent;
}

.btn-primary {
    background: var(--gdf-color-secondary);
    color: var(--gdf-color-white);
    border-color: var(--gdf-color-secondary);
	max-width:43.75rem;
}

.btn-primary:hover {
    background: var(--gdf-color-accent);
    border-color: var(--gdf-color-accent);
    transform: translateY(-0.125rem);
    box-shadow: 0 0.5rem 1.25rem rgba(184, 153, 104, 0.3);
}

.btn-secondary {
    background: transparent;
    color: var(--gdf-color-white);
    border-color: var(--gdf-color-white);
}

.btn-secondary:hover {
    background: var(--gdf-color-white);
    color: var(--gdf-color-primary);
}

.btn.full-width {
    width: 100%;
}

/* ===== NAVIGATION ===== */
nav {
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 1000;
    padding: 0.5rem 0;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(0.625rem);
    border-bottom: 1px solid rgba(0, 86, 63, 0.1);
    transition: all 0.3s ease;
}

nav.scrolled {
    padding: 0.4rem 0;
    box-shadow: 0 0.25rem 1.25rem rgba(0, 0, 0, 0.08);
}

nav .container {
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 0 2rem;
}

.nav-content {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    width: 100%;
}

.logo {
    display: flex;
    align-items: center;
    justify-content: center;
    grid-column: 2;
}

.logo-img {
    height: 6.25rem;
    width: auto;
    transition: height 0.3s ease;
}

nav.scrolled .logo-img {
    height: 4.375rem;
}

.nav-links {
    display: flex;
    gap: 1.5rem;
    list-style: none;
    align-items: center;
    justify-content: flex-end;
    grid-column: 3;
}

.nav-links a {
    text-decoration: none;
    transition: all 0.3s ease;
}

.nav-link {
    color: var(--gdf-color-dark);
    font-weight: 500;
    font-size: var(--fs-base);
    position: relative;
    padding: 0.5rem 0;
}

.nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 0.125rem;
    background: var(--gdf-color-secondary);
    transition: width 0.3s ease;
}

.nav-link:hover {
    color: var(--gdf-color-secondary);
}

.nav-link:hover::after {
    width: 100%;
}

.btn-nav {
    padding: 0.7rem 1.8rem !important;
    border-radius: 0.25rem;
    font-weight: 600;
    text-transform: uppercase;
    font-size: var(--fs-sm);
    letter-spacing: 0.05em;
    white-space: nowrap;
}

.btn-nav.btn-primary {
    background: var(--gdf-color-secondary);
    color: var(--gdf-color-white);
    border: 0.125rem solid var(--gdf-color-secondary);
}

.btn-nav.btn-primary:hover {
    background: var(--gdf-color-accent);
    border-color: var(--gdf-color-accent);
}

.btn-nav.btn-primary::after {
    display: none;
}

/* Bouton « Réserver un parcours » du header : même style que celui du bloc LeClub (bouton doré, majuscules, sans flèche) */
@media (min-width: 969px) {
    #btn-reservation.btn-nav.btn-primary {
        display: inline-flex;
        align-items: center;
        gap: 0.625rem;
        padding: 0.6875rem 1.375rem !important;
        border: 0;
        border-radius: 0.25rem;
        background: var(--gdf-color-secondary);
        color: #fff;
        font-size: var(--fs-xs);
        font-weight: 700;
        letter-spacing: 0.06em;
        line-height: 1;
        text-transform: uppercase;
    }
    #btn-reservation.btn-nav.btn-primary:hover {
        background: #c9a86a;
        transform: translateY(-0.0625rem);
        box-shadow: none;
    }
    #btn-reservation.btn-nav.btn-primary::after {
        display: none;
    }
    /* « Se connecter » : même forme et mêmes proportions (la couleur rouge reste gérée plus bas) */
    a#btn_connect.btn-nav.btn-primary {
        display: inline-flex;
        align-items: center;
        padding: 0.6875rem 1.375rem !important;
        border: 0;
        border-radius: 0.25rem;
        font-size: var(--fs-xs);
        font-weight: 700;
        letter-spacing: 0.06em;
        line-height: 1;
    }
}

/* ===== HERO ===== */
.hero {
    height: calc(70vh * var(--gdf-s));
    height: calc(70svh * var(--gdf-s));
    min-height: 37.5rem;
    max-height: 50rem;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    background: var(--gdf-color-primary);
    margin-top: 6.875rem;
    overflow: hidden;
}

.hero-content {
	  width: 100%;
}

/* Status bar inline (dans Hero en position absolute) */

/* Style au scroll (via JS qui ajoute la classe) */
.status-bar-inline.scrolled {
    padding: 0.6rem 0;
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.15);
    background: rgba(0, 0, 0, 0.6);
}

/* Réduire les icônes en mode scrolled */
.status-bar-inline.scrolled .status-icon {
    width: 3.125rem;
    height: 3.125rem;
    min-width: 3.125rem;
}

.status-bar-inline.scrolled .status-label {
    font-size: var(--fs-xs);
}

.status-bar-inline.scrolled .status-value {
    font-size: var(--fs-base);
}

/* ===== STATUS BAR STICKY (copie qui apparait au scroll) ===== */
.status-bar-sticky {
    position: fixed;
    top: 5.25rem;
    left: 0;
    right: 0;
    z-index: 998;
    opacity: 0;
    transform: translateY(-1.25rem);
    transition: opacity 0.3s ease, transform 0.3s ease;
    pointer-events: none;
    overflow: hidden;
    backdrop-filter: blur(0.625rem);
/*border-bottom:3px var(--gdf-color-accent) solid;*/
}

.status-bar-sticky.visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.15);
}

/* Fond 3D derrière */
.status-bar-sticky-bg {
    position: absolute;
    inset: 0;
    background-image: url('../images/Photos/terrain3D_v1.webp');
    background-size: cover;
    background-position: center;
    opacity: 0.45;
opacity: 0;
        z-index: 3;
}

/* Overlay vert */

/* Pattern losanges */
.status-bar-sticky::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        repeating-linear-gradient(45deg, transparent, transparent 3.0625rem, rgba(255, 255, 255, 0.06) 3.0625rem, rgba(255, 255, 255, 0.06) 3.125rem),
        repeating-linear-gradient(-45deg, transparent, transparent 3.0625rem, rgba(255, 255, 255, 0.06) 3.0625rem, rgba(255, 255, 255, 0.06) 3.125rem);
    z-index: 2;
opacity: 0;
    pointer-events: none;
}
.status-bar-sticky-overlay {
    background: radial-gradient(circle at 20% 30%, rgba(0, 86, 63, 1) 0%, transparent 50%), radial-gradient(circle at 80% 70%, rgba(0, 70, 50, 1) 0%, transparent 50%), linear-gradient(135deg, rgb(0, 50, 35) 0%, rgb(0, 40, 30) 100%);
opacity: 0.85;
opacity: 0;
inset: 0;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}
/* Contenu par dessus */
.status-bar-sticky .container {
    position: relative;
    z-index: 4;
             background-color: rgba(255, 255, 255, 0.7);
}

/* Style réduit */
.status-bar-sticky .status-grid {
    padding: 0.6rem 0;
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
}

.status-bar-sticky .status-icon {
    width: 2.8125rem;
    height: 2.8125rem;
    min-width: 2.8125rem;
}

.status-bar-sticky .status-label {
    font-size: var(--fs-2xs);
}

.status-bar-sticky .status-value {
    font-size: var(--fs-sm);
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 20% 30%, rgb(8 117 83) 0%, transparent 50%), radial-gradient(circle at 80% 70%, rgb(2 51 37) 0%, transparent 50%), linear-gradient(135deg, rgb(2 22 15) 0%, rgb(0, 40, 30) 100%);
    opacity: 0.85;
    z-index: 0;
}

.hero-image-3d {
    position: absolute;
    inset: 0;
    background-image: url(../images/Photos/terrain3D_v1.webp);
    background-size: 62.5rem;
    background-position: right calc(50% - 28.25rem) top -0.625rem;
    background-repeat: no-repeat;
    opacity: 0.45;
    z-index: 1;
    transform: scale(1.1);
    will-change: transform;
}

.hero-pattern {
    position: absolute;
    inset: 0;
    background-image:
        repeating-linear-gradient(45deg, transparent, transparent 3.0625rem, rgba(255, 255, 255, 0.06) 3.0625rem, rgba(255, 255, 255, 0.06) 3.125rem),
        repeating-linear-gradient(-45deg, transparent, transparent 3.0625rem, rgba(255, 255, 255, 0.06) 3.0625rem, rgba(255, 255, 255, 0.06) 3.125rem);
    z-index: 2;
    pointer-events: none;
}

.hero-content {
  position: relative;
  z-index: 3;
  text-align: center;
  color: white;
  max-width: 50rem;
  padding: 0 2rem 4rem;
}
.hero h1 {
  font-family: var(--gdf-font-display);
  font-size: clamp(var(--fs-3xl), (6.5vw * var(--gdf-s)), var(--fs-5xl));
  font-weight: 600;
  color: var(--gdf-color-white);
  line-height: 1.08;
  margin-bottom: 0;
  letter-spacing: -0.01em;
  text-shadow: 0 0.125rem 1.5rem rgba(0,0,0,.35);
}
.hero h1::after {
  content: "";
  display: block;
  width: 3.5rem;
  height: 0.125rem;
  border-radius: 0.125rem;
  background: #B8935F;
  margin: 1.375rem auto 1.125rem;
}
.hero p {
  font-family: var(--gdf-font-body);
  font-size: var(--fs-sm);
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: #f0d9b0;
  margin-bottom: 4.25rem;
  text-shadow: 0 0 0.375rem rgba(0,0,0,.6), 0 0.125rem 1.125rem rgba(0,0,0,.75), 0 0 2.5rem rgba(0,0,0,.65), 0 0 4.375rem rgba(0,0,0,.5);
}

.cta-buttons {
    display: flex;
	align-items: center;
    gap: 1.5rem;
    justify-content: center;
    flex-wrap: wrap;
}


a.wp-block-button__link.wp-element-button {
	background: var(--gdf-color-secondary);
    color: var(--gdf-color-white);
    border: 0.125rem solid var(--gdf-color-secondary);
    font-size:var(--fs-xs);
    font-family:var(--gdf-font-body);
    font-weight:37.5rem;
    text-decoration:none;
    text-transform:uppercase;
    border-radius:0.25rem;
    transition: all 0.3s ease;
}
a.wp-block-button__link.wp-element-button:hover {
	background: var(--gdf-color-accent);
    border-color: var(--gdf-color-accent);
    transform: translateY(-0.125rem);
    box-shadow: 0 0.5rem 1.25rem rgba(184, 153, 104, 0.3);
    color: var(--gdf-color-white);
}

/* ===== STATUS BAR INLINE (dans Hero) ===== */
.status-bar-inline {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(0, 0, 0, 0.4);
    padding: 1.4rem 0;
    z-index: 10;
}

/* Réduire le padding en mode sticky */
.hero.sticky .status-bar-inline {
    padding: 0.6rem 0;
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.15);
}

/* Réduire aussi les icônes et textes en mode sticky */
.hero.sticky .status-icon {
    width: 3.125rem;
    height: 3.125rem;
    min-width: 3.125rem;
}

.hero.sticky .status-label {
    font-size: var(--fs-xs);
}

.hero.sticky .status-value {
    font-size: var(--fs-base);
}

.status-bar-inline .container {
    position: relative;
		user-select: none;
}

.status-bar-inline .status-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0;
    max-width: 87.5rem;
    margin: 0 auto;
    border-left: 1px solid rgba(255, 255, 255, 0.2);
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}

.status-bar-inline .status-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 0.8rem;
    padding: 0 1rem;
    background: transparent;
    border-radius: 0;
    transition: all 0.3s ease;
    border: none;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: none;
}

.status-bar-inline .status-item:last-child {
    border-right: none;
}

.status-bar-inline .status-item:hover {
    transform: none;
    box-shadow: none;
}

.status-bar-inline .status-icon {
    width: 2.75rem;
    height: 2.75rem;
    min-width: 2.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    flex-shrink: 0;
    filter: none;
}

.status-bar-inline .status-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

.status-bar-inline .status-info {
    text-align: left!important;
    flex: 1;
}

.status-bar-inline .status-label {
    font-size: var(--fs-sm);
    color: rgba(255, 255, 255, 0.9);
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing: 0.05em;
    margin-bottom: 0.3rem;

}

.status-bar-inline .status-value {
    font-size: var(--fs-md);
    font-weight: 700;
    color: var(--gdf-color-white);
}

.status-bar-inline .status-value.open {
    color: var(--gdf-color-white);
}

.status-bar-inline .status-value.closed {
    color: rgba(255, 255, 255, 0.8);
}

/* Message disclaimer - bulle unique qui suit la souris */
.status-disclaimer {
    position: absolute;
    bottom: calc(100% + 2.2rem);
    left: 50%;
    text-align: center;
    font-size: var(--fs-xs) !important;
    color: rgba(255, 255, 255, 0.95) !important;
    font-style: italic;
    padding: 0.8rem 1rem;
    line-height: 1.4;
    margin: 0 !important;
    background: rgba(0, 0, 0, 0.3);
    backdrop-filter: blur(0.625rem);
    border-radius: 0.75rem;
    box-shadow: 0 0.25rem 1.25rem rgba(0, 0, 0, 0.4);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    white-space: normal;
    z-index: 100;
    max-width: 21.875rem;
    min-width: 17.5rem;
    transform: translateX(-50%);
    will-change: left;
    text-transform: initial !important;
    font-size: 0.6em !important;
}

/* Flèche de la bulle */
.status-disclaimer::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 0.5rem solid transparent;
    border-right: 0.5rem solid transparent;
    border-top: 0.5rem solid rgba(0, 0, 0, 0.3);
    filter: blur(0.0625rem);
}

/* ===== STATUS BAR (ancienne, à supprimer si non utilisée ailleurs) ===== */
.status-bar {
    background: rgba(0, 50, 35, 0.85);
    padding: 2rem 0;
    border-bottom: 0.125rem solid rgba(0, 86, 63, 0.8);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
    position: relative;
}

.status-bar::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
}

.status-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    max-width: 75rem;
    margin: 0 auto;
}

.status-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    padding: 0 2rem;
    background: transparent;
    border-radius: 0;
    transition: all 0.3s ease;
    border: none;
    border-right: 1px solid rgba(0, 0, 0, 0.2);
    box-shadow: none;
}

.status-item:last-child {
    border-right: none;
}

.status-item:hover {
    transform: none;
    box-shadow: none;
}

.status-icon {
    width: 3.75rem;
    height: 3.75rem;
    min-width: 3.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    flex-shrink: 0;
    filter: none;
}

.status-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: invert(1);
}

.status-info {
    text-align: left;
    flex: 1;
}

.status-label {
    font-size: var(--fs-sm);
    color: rgba(0, 0, 0, 0.8);
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing: 0.05em;
    margin-bottom: 0.3rem;
}

.status-value {
    font-size: var(--fs-md);
    font-weight: 700;
    color: rgba(0, 0, 0, 0.6);
}

.status-value.open {
    color: var(--gdf-color-white);
}

.status-value.closed {
    color: rgba(255, 255, 255, 0.8);
}

/* ===== INFO SECTION (Calendrier + Météo) ===== */
.info-section {
    padding: 5rem 0;
    background: var(--gdf-color-light);
    position: relative;
}

.info-section::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0.04;
    background-image:
        linear-gradient(45deg, var(--gdf-color-green-light) 0.0625rem, transparent 0.0625rem),
        linear-gradient(-45deg, var(--gdf-color-green-light) 0.0625rem, transparent 0.0625rem);
    background-size: 3.125rem 3.125rem;
    pointer-events: none;
}

.info-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 2.5rem;
    position: relative;
}

.info-card {
    background: var(--gdf-color-white);
    border-radius: 0.75rem;
    padding: 2.5rem;
    box-shadow: 0 0.25rem 1.25rem rgba(0, 0, 0, 0.06);
}

.card-header {
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 0.1875rem solid var(--gdf-color-secondary);
    text-align: center;
}

.card-header h3 {
    font-family: var(--gdf-font-display);
    font-size: var(--fs-2xl);
    color: var(--gdf-color-primary);
    font-weight: 700;
}

.calendar-header {
    padding-bottom: 0;
    border-bottom: none;
}

.calendar-header h3 {
    margin: 0;
    letter-spacing: -0.02em;
}

.calendar-nav {
    background: var(--gdf-color-light);
    border: none;
    color: var(--gdf-color-primary);
    cursor: pointer;
    padding: 0.75rem;
    border-radius: 0.75rem;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
}

.calendar-nav:hover {
    background: var(--gdf-color-primary);
    color: var(--gdf-color-white);
    transform: scale(1.05);
}

.calendar-filters {
    display: flex;
    gap: 0.75rem;
    margin-bottom: 2rem;
    flex-wrap: wrap;
    padding: 1rem;
    background: var(--gdf-color-light);
    border-radius: 0.75rem;
}

.filter-btn {
    padding: 0.65rem 1.5rem;
    border: none;
    background: var(--gdf-color-white);
    color: var(--gdf-color-primary);
    font-size: var(--fs-sm);
    font-weight: 600;
    border-radius: 1.5625rem;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.05);
}

.filter-btn:hover {
    transform: translateY(-0.125rem);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
}

.filter-btn.active {
    background: linear-gradient(135deg, var(--gdf-color-secondary) 0%, var(--gdf-color-accent) 100%);
    color: var(--gdf-color-white);
    box-shadow: 0 0.25rem 1rem rgba(184, 147, 95, 0.4);
}

.calendar-grid {
    margin-bottom: 2rem;
    padding: 1.5rem;
    background: linear-gradient(135deg, rgba(245, 245, 245, 0.5) 0%, rgba(255, 255, 255, 0.8) 100%);
    border-radius: 1rem;
}

.calendar-day {
    background: var(--gdf-color-white);
}

.calendar-day:hover {
    transform: scale(1.08);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
    z-index: 1;
}

.calendar-day.other-month {
    color: rgba(0, 0, 0, 0.2);
    background: transparent;
}

.calendar-day.other-month:hover {
    transform: none;
    box-shadow: none;
}

.calendar-day.today {
    box-shadow: 0 0.25rem 1rem rgba(0, 86, 63, 0.3);
}

.calendar-day.today:hover {
    transform: scale(1.08);
    box-shadow: 0 0.375rem 1.25rem rgba(0, 86, 63, 0.4);
}

.calendar-day.selected {
    box-shadow: 0 0.375rem 1.25rem rgba(184, 147, 95, 0.4);
    transform: scale(1.1);
}

/* Supprimer les petits dots, remplacés par la couleur de fond */
.calendar-day.has-event::after {
    display: none;
}

.calendar-events {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 0.125rem solid var(--gdf-color-light);
}

.calendar-events h4 {
    font-family: var(--gdf-font-display);
    font-size: var(--fs-xl);
    color: var(--gdf-color-primary);
    margin-bottom: 1.5rem;
    font-weight: 700;
}

.events-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-height: 31.25rem;
    overflow-y: auto;
    padding-right: 0.5rem;
}

.events-list::-webkit-scrollbar {
    width: 0.375rem;
}

.events-list::-webkit-scrollbar-track {
    background: var(--gdf-color-light);
    border-radius: 0.625rem;
}

.events-list::-webkit-scrollbar-thumb {
    background: var(--gdf-color-secondary);
    border-radius: 0.625rem;
}

.event {
    padding: 1.5rem;
    border-radius: 0.75rem;
    border-left: 0.3125rem solid;
    background: var(--gdf-color-white);
    transition: all 0.3s ease;
    cursor: pointer;
    box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.05);
}

.event:hover {
    transform: translateX(0.5rem);
    box-shadow: 0 0.375rem 1.25rem rgba(0, 0, 0, 0.12);
}

.event.ligue {
    border-left-color: var(--gdf-color-secondary);
    background: linear-gradient(135deg, rgba(184, 147, 95, 0.03) 0%, rgba(255, 255, 255, 1) 100%);
}

.event.competition {
    border-left-color: var(--gdf-color-red);
    background: linear-gradient(135deg, rgba(193, 39, 45, 0.03) 0%, rgba(255, 255, 255, 1) 100%);
}

.event.course {
    border-left-color: #666;
    background: linear-gradient(135deg, rgba(102, 102, 102, 0.03) 0%, rgba(255, 255, 255, 1) 100%);
}

.event-date {
    font-size: var(--fs-xs);
    color: rgba(0, 0, 0, 0.5);
    font-weight: 700;
    margin-bottom: 0.5rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.event-title {
    font-size: var(--fs-md);
    font-weight: 700;
    color: var(--gdf-color-primary);
    margin-bottom: 0.4rem;
    line-height: 1.3;
}

.event-subtitle {
    font-size: var(--fs-base);
    color: var(--gdf-color-secondary);
    font-style: italic;
    margin-bottom: 0.4rem;
    font-weight: 500;
}

.event-time {
    font-size: var(--fs-sm);
    color: rgba(0, 0, 0, 0.6);
    font-weight: 500;
}

/* Météo */

/* Club Info */
.club-info {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}


/* Section principale */
.homemsg {
    padding: 2.5rem 0;
    background: #f8f9fa;
}

.homemsg .container {
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 0 0.9375rem;
    display: grid;
    gap: 1.25rem;
}

/* Mobile et Tablette : toujours 1 colonne */
@media (max-width: 1023px) {
    .homemsg .container {
        grid-template-columns: 1fr;
    }
}

/* Desktop : par défaut 3 colonnes, s'adapte automatiquement */
@media (min-width: 1024px) {
    .homemsg .container {
        grid-template-columns: repeat(auto-fit, minmax(18.75rem, 1fr));
    }
}

/* Style des blocs */
.home_msg {
    width: 100%;
    display: flex;
    flex-direction: column;
}
.home_msg > * { flex: 1; }
/* Egalisation hauteur grille homemsg */
.homemsg .container { align-items: stretch; }
.homemsg .container > .home_msg { display: flex; flex-direction: column; }
.golf-message-banner {
  flex: 1 1 0%;
  box-sizing: border-box;
  margin-bottom: 0 !important;
  --gm-accent: #00563f;
  --gm-bg: #eef5f0;
  --gm-line: rgba(0,86,63,.2);
  --gm-text: #24463a;
  display: grid;
  grid-template-columns: 2.25rem minmax(0, 1fr);
  column-gap: 1rem;
  align-items: start;
  background: var(--gm-bg);
  border: 1px solid var(--gm-line);
  border-radius: 1rem;
  padding: 1.125rem 1.375rem;
  box-shadow: 0 1.125rem 2.5rem -1.75rem rgba(60,45,20,.35);
}
.golf-message-banner::before {
  content: "i";
  grid-row: 1 / span 6;
  display: flex; align-items: center; justify-content: center;
  width: 2.25rem; height: 2.25rem; border-radius: 50%;
  background: var(--gm-accent); color: #fff;
  font-family: var(--gdf-font-display); font-size: var(--fs-lg); font-weight: 600; line-height: 1;
}
.golf-message-banner > * { grid-column: 2; margin: 0 0 0.25rem; font-size: var(--fs-sm); line-height: 1.6; color: var(--gm-text); text-align: center; } /* centré par défaut : l'alignement choisi dans l'éditeur (style en ligne) est prioritaire */
.golf-message-banner > *:last-child { margin-bottom: 0; }
.golf-message-banner strong { font-family: var(--gdf-font-display); font-size: var(--fs-md); font-weight: 600; color: var(--gm-text); }

.golf-message--yellow { --gm-accent: #d97706; --gm-bg: #fdf6e7; --gm-line: rgba(217,119,6,.3); --gm-text: #78350f; }
.golf-message--red    { --gm-accent: #dc2626; --gm-bg: #fdeeee; --gm-line: rgba(220,38,38,.28); --gm-text: #991b1b; }
.golf-message--yellow::before, .golf-message--red::before { content: "!"; }

@media (max-width: 720px) { .golf-message-banner { padding: 1rem 1.125rem; column-gap: 0.75rem; } }
.club-section {
    background: white;
    border-radius: 0.5rem;
    padding: 1.5625rem;
    box-shadow: 0 0.125rem 0.5rem rgba(0,0,0,0.1);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.club-section h4 {
    margin: 0 0 0.9375rem 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.club-section h4 img.emoji {
    width: 1.25rem;
    height: 1.25rem;
}

.club-section h3 {
    margin: 0 0 0.625rem 0;
    font-size: var(--fs-lg);
    font-weight: 700;
    color: #1a1a1a;
}

.badge-info {
    flex: 1;
}

.badge-info p {
    margin: 0 0 0.625rem 0;
    line-height: 1.6;
}


@media (max-width: 767px) {
    .club-section {
        padding: 1.25rem;
    }

    .club-section h3 {
        font-size: var(--fs-md);
    }

    .club-section h4 {
        font-size: var(--fs-sm);
    }
}

.club-section.accent {
    background: linear-gradient(135deg, rgba(193, 39, 45, 0.05) 0%, rgba(193, 39, 45, 0.02) 100%);
    border-left-color: var(--gdf-color-red);
}
/* ===== Message « Accès au terrain » (fermeture exceptionnelle) =====
   Même langage que les cartes du calendrier : cartouche rond, titre Playfair, filet blanc, texte.
   Fond rouge vers orangé, panneau « attention » géant en filigrane. */
/* ===== Message « Accès au terrain » (fermeture exceptionnelle) =====
   Même langage que les cartes du calendrier : cartouche rond, titre Playfair, filet blanc, texte.
   Fond rouge vers orangé, panneau « attention » géant en filigrane.
   Deux sources partagent ce rendu :
     .club-section.eventClose            carte automatique (template-parts/fermeture-card.php)
     .golf-message-banner.golf-message--close   message saisi dans l'admin avec le suffixe « close » */
.club-section.eventClose,
.golf-message-banner.golf-message--close {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    padding: 2.125rem 1.75rem;
    border: 0;
    border-radius: 1rem;
    color: #ffffff;
    background:
        linear-gradient(120deg, #9e1626 0%, #b31f2a 45%, #c42a2b 75%, #d8452a 100%);
    box-shadow: 0 1.125rem 2.5rem -1.625rem rgba(177, 30, 43, 0.7);
}
/* Panneau attention en grand, blanc très discret */
.club-section.eventClose::before,
.golf-message-banner.golf-message--close::before {
    content: "";
    position: absolute;
    z-index: -1;
    right: 2.125rem;
    top: 50%;
    width: 13.125rem;
    height: 13.125rem;
    transform: translateY(-50%) rotate(-8deg);
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='11' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M100 24 L184 168 H16 Z'/%3E%3Cpath d='M100 74 V123'/%3E%3C/g%3E%3Ccircle cx='100' cy='148' r='7.5' fill='%23ffffff'/%3E%3C/svg%3E") center / contain no-repeat;
    opacity: 0.12;
    pointer-events: none;
}
/* Cartouche rond façon « École de golf » */
.club-section.eventClose h4,
.golf-message-banner.golf-message--close h4 {
    color: #FFF;
    display: inline-block;
    padding: 0.3125rem 0.8125rem;
    border: 1px solid #FFF;
    border-radius: 62.4375rem;
    background: rgba(255, 255, 255, .16);
    -webkit-backdrop-filter: blur(0.375rem);
    backdrop-filter: blur(0.375rem);
    font-family: var(--gdf-font-body);
    font-size: var(--fs-2xs);
    font-weight: 700;
    letter-spacing: .24em;
    text-transform: uppercase;
    text-shadow: none;
    margin-bottom: 0.75rem;
}
.club-section.eventClose .badge-info,
.golf-message-banner.golf-message--close .badge-info {
    position: relative;
    padding: 0;
    font-size: inherit;
    line-height: inherit;
}
/* Titre façon « Passage de drapeau » + petit trait blanc */
.club-section.eventClose h3,
.golf-message-banner.golf-message--close h3 {
    margin: 0;
    font-family: var(--gdf-font-display);
    font-size: var(--fs-xl);
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -0.01em;
    color: #ffffff !important;
    text-shadow: 0 0.0625rem 0.625rem rgba(90, 10, 5, 0.25);
}
.club-section.eventClose h3::after,
.golf-message-banner.golf-message--close h3::after {
    content: "";
    display: block;
    width: 3rem;
    height: 0.1875rem;
    margin: 0.75rem 0 0.875rem;
    border-radius: 0.125rem;
    background: #ffffff;
    opacity: 0.9;
}
.club-section.eventClose .gdf-closure-date,
.golf-message-banner.golf-message--close .gdf-closure-date {
    margin: 0 0 0.375rem;
    font-family: var(--gdf-font-display);
    font-size: var(--fs-xl);
    font-weight: 600;
    line-height: 1.2;
    color: #ffffff;
}
.club-section.eventClose .badge-info p,
.golf-message-banner.golf-message--close .badge-info p {
    margin: 0;
    max-width: 60ch;
    font-size: var(--fs-sm);
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.94) !important;
}
.club-section.eventClose strong,
.golf-message-banner.golf-message--close strong {
    font-weight: 700;
    color: #ffffff !important;
}
.club-section.eventClose .text-danger,
.golf-message-banner.golf-message--close .text-danger {
    color: #ffffff !important;
    font-weight: 700;
}

/* Spécifique au bandeau .golf-message-banner : on neutralise sa mise en page de base
   (grille avec pastille « i », texte centré, strong en Playfair) pour retomber sur celle de la carte. */
.golf-message-banner.golf-message--close {
    display: flex;
    flex-direction: column;
    text-align: left;
}
.golf-message-banner.golf-message--close::before {
    border-radius: 0;
    grid-row: auto;
}
.golf-message-banner.golf-message--close > * {
    grid-column: auto;
    margin: 0;
    text-align: left;
    color: #ffffff;
}
/* Même rendu que la carte automatique : cartouche identique (h4 inline-block, même marge), pictogramme sur la même ligne, texte courant en graisse normale. */
.golf-message-banner.golf-message--close > h4 {
    margin: 0 0 0.75rem;
    display: inline-block;
    align-self: flex-start;
}
.golf-message-banner.golf-message--close h4 br {
    display: none;
}
.club-section.eventClose h4 { align-self: flex-start; width: fit-content; }
.club-section.eventClose h4 img.emoji,
.golf-message-banner.golf-message--close h4 img.emoji {
    display: inline-block !important;
    width: 1em !important;
    height: 1em !important;
    margin: 0 0.4em 0 0 !important;
    vertical-align: -0.1em !important;
}
.golf-message-banner.golf-message--close .badge-info,
.golf-message-banner.golf-message--close .badge-info p {
    font-family: inherit;
    font-weight: 400;
    text-align: left;
}
.golf-message-banner.golf-message--close .badge-info strong { font-weight: 700; }
.golf-message-banner.golf-message--close strong {
    font-family: inherit;
    font-size: inherit;
}
.golf-message-banner.golf-message--close .badge-info p:empty {
    display: none;
}

@media (max-width: 767px) {
    .club-section.eventClose,
    .golf-message-banner.golf-message--close { padding: 1.375rem 1.25rem; }
    .club-section.eventClose h3,
    .golf-message-banner.golf-message--close h3 { font-size: var(--fs-xl); padding-right: 4.375rem; }
    .club-section.eventClose .gdf-closure-date,
    .golf-message-banner.golf-message--close .gdf-closure-date { font-size: var(--fs-lg); }
    .club-section.eventClose .badge-info p,
    .golf-message-banner.golf-message--close .badge-info p { padding-right: 2.5rem; }
    .club-section.eventClose::before,
    .golf-message-banner.golf-message--close::before { width: 9.375rem; height: 9.375rem; right: 0.625rem; }
}

.club-section h4 {
    font-family: var(--gdf-font-display);
    font-size: var(--fs-md);
    color: var(--gdf-color-primary);
    margin-bottom: 0.8rem;
    font-weight: 600;
}

.club-section.accent h4 {
    color: var(--gdf-color-red);
}

.info-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.info-list li {
    padding: 0.5rem 0;
    color: rgba(0, 0, 0, 0.8);
    font-size: var(--fs-base);
    line-height: 1.6;
}

.info-list li strong {
    color: var(--gdf-color-primary);
    font-weight: 600;
}

.badge-info {
    padding: 1rem;
    border-radius: 0.375rem;
    font-size: var(--fs-sm);
    line-height: 1.7;
background: none;
}

.badge-info p {
    margin-bottom: 0.8rem;
    color: rgba(0, 0, 0, 0.8);
}

.badge-info p:last-child {
    margin-bottom: 0;
}

.badge-info strong {
    color: var(--gdf-color-primary);
    font-weight: 600;
}

/* ===== ABOUT SECTION ===== */
.about-section {
    padding: 6rem 0;
    background: var(--gdf-color-white);
    position: relative;
}

.about-section::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0.04;
    background-image:
        linear-gradient(45deg, var(--gdf-color-green-light) 0.0625rem, transparent 0.0625rem),
        linear-gradient(-45deg, var(--gdf-color-green-light) 0.0625rem, transparent 0.0625rem);
    background-size: 3.125rem 3.125rem;
    pointer-events: none;
}

.about-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
    align-items: center;
    position: relative;
}

.about-text p {
    font-size: var(--fs-md);
    line-height: 1.8;
    color: rgba(0, 0, 0, 0.8);
    margin-bottom: 1.5rem;
}

.stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-top: 3rem;
}

.stat {
    text-align: center;
    padding: 2rem;
    background: var(--gdf-color-light);
    border-radius: 0.5rem;
    transition: transform 0.3s ease;
}

.stat:hover {
    transform: translateY(-0.3125rem);
}

.stat-number {
    font-family: var(--gdf-font-display);
    font-size: var(--fs-4xl);
    font-weight: 700;
    color: var(--gdf-color-secondary);
    margin-bottom: 0.5rem;
}

.stat-label {
    font-size: var(--fs-base);
    color: var(--gdf-color-dark);
    font-weight: 500;
}

.about-image {
    height: 37.5rem;
    border-radius: 0.75rem;
    overflow: hidden;
    box-shadow: 0 1.25rem 3.75rem rgba(0, 0, 0, 0.15);
}

.about-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ===== ABOUT : trou signature (n°4, par 5) en superposition de l'image ===== */
.about-section .about-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:stretch}
.about-section .about-text{display:flex;flex-direction:column;justify-content:center}
.about-section .about-text p:first-child{font-size:var(--fs-lg);line-height:1.7;color:var(--gdf-color-primary);font-weight:500}
.about-section .about-image{position:relative;height:auto;min-height:32.5rem;isolation:isolate}
.about-section .about-image img{position:absolute;inset:0;transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.about-section .about-image:hover img{transform:scale(1.04)}
.about-section .gdf-a-over{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;padding:2rem;
  background:linear-gradient(180deg,rgba(0,24,14,.25) 0%,rgba(0,24,14,0) 30%,rgba(0,24,14,.55) 62%,rgba(0,24,14,.92) 100%)}
.about-section .gdf-a-hole{position:absolute;left:1.5rem;top:1.5rem;box-sizing:content-box;width:6rem;padding:0.5rem;border-radius:0.5rem;background:rgba(0,24,14,.55);border:1px solid rgba(228,207,152,.4);backdrop-filter:blur(0.25rem);-webkit-backdrop-filter:blur(0.25rem);height:auto;filter:drop-shadow(0 0.125rem 0.375rem rgba(0,0,0,.5))}
.about-section .gdf-a-hole .rough{fill:#1f6b3d;stroke:#1f6b3d;stroke-width:150;stroke-linejoin:round}
.about-section .gdf-a-hole .fwy{fill:#4fb36f;stroke:#7fd197;stroke-width:5;stroke-linejoin:round}
.about-section .gdf-a-hole .bnk{fill:#efdfae;stroke:#c9b57a;stroke-width:4}
.about-section .gdf-a-hole .grn{fill:#86e0a0;stroke:#e4cf98;stroke-width:9;stroke-linejoin:round}
.about-section .gdf-a-hole .play{fill:none;stroke:#fff;stroke-width:7;stroke-dasharray:22 20;stroke-linecap:round}
.about-section .gdf-a-hole .tee{fill:#fff;stroke:#fff;stroke-width:4;stroke-linejoin:round}
.about-section .gdf-a-hole .tree{fill:#0f4a28;stroke:#2b8a52;stroke-width:5}
.about-section .gdf-a-hole .fl{fill:none;stroke:#fff;stroke-width:9;stroke-linecap:round}
.about-section .gdf-a-hole .cl{fill:#e4cf98}
.about-section .gdf-a-meta{display:flex;flex-wrap:wrap;gap:0.5rem;margin:0 0 1rem}
.about-section .gdf-a-meta span{padding:0.375rem 0.6875rem;border-radius:0.25rem;font-size:var(--fs-2xs);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(228,207,152,.5);backdrop-filter:blur(0.25rem);-webkit-backdrop-filter:blur(0.25rem)}
.about-section .gdf-a-meta span:first-child{background:var(--gdf-color-secondary);border-color:var(--gdf-color-secondary)}
.about-section .gdf-a-title{margin:0;max-width:92%;font-family:var(--gdf-font-body);font-weight:700;text-transform:uppercase;font-size:clamp(var(--fs-2xl), (3.1vw * var(--gdf-s)), var(--fs-4xl));line-height:.96;letter-spacing:-.03em;color:#fff;text-shadow:0 0.25rem 1.5rem rgba(0,0,0,.35)}
.about-section .gdf-a-title .gdf-a-gold{display:block;background:linear-gradient(135deg,#e4cf98,var(--gdf-color-secondary));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none}
@media (max-width:968px){
  .about-section .about-grid{grid-template-columns:1fr}
  .about-section .about-image{order:-1;min-height:25rem}
  .about-section .gdf-a-over{padding:1.375rem}
  .about-section .gdf-a-hole{left:1.125rem;top:1.125rem;width:4.5rem}
  .about-section .gdf-a-title{font-size:clamp(var(--fs-xl), (8vw * var(--gdf-s)), var(--fs-3xl));max-width:100%}
}

/* ===== INSTALLATIONS ===== */
.installations-section {
    padding: 6rem 0;
    background: var(--gdf-color-light);
    position: relative;
}

.installations-section::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0.04;
    background-image:
        linear-gradient(45deg, var(--gdf-color-green-light) 0.0625rem, transparent 0.0625rem),
        linear-gradient(-45deg, var(--gdf-color-green-light) 0.0625rem, transparent 0.0625rem);
    background-size: 3.125rem 3.125rem;
    pointer-events: none;
}

.installations-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(21.875rem, 1fr));
    gap: 2.5rem;
    position: relative;
}

.installation-card {
    background: var(--gdf-color-white);
    border-radius: 0.75rem;
    overflow: hidden;
    box-shadow: 0 0.25rem 1.25rem rgba(0, 0, 0, 0.06);
    transition: all 0.3s ease;
}

.installation-card:hover {
    transform: translateY(-0.5rem);
    box-shadow: 0 0.75rem 2.5rem rgba(0, 0, 0, 0.12);
}

.installation-image {
    height: 15.625rem;
    overflow: hidden;
}

.installation-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.installation-card:hover .installation-image img {
    transform: scale(1.1);
}

.installation-content {
    padding: 2rem;
}

.installation-content h3 {
    font-family: var(--gdf-font-display);
    font-size: var(--fs-xl);
    color: var(--gdf-color-primary);
    margin-bottom: 1rem;
    font-weight: 600;
}

.installation-content p {
    color: rgba(0, 0, 0, 0.75);
    line-height: 1.7;
}

/* Cartes équipements : titre sur l'image, numéro en contour, description dessous */
.installations-grid {
    counter-reset: inst;
}
.installations-grid .installation-card {
    counter-increment: inst;
    position: relative;
    display: grid;
    grid-template-rows: auto 1fr;
}
.installations-grid .installation-card .installation-content { display: contents; }
.installations-grid .installation-card .installation-image {
    grid-area: 1 / 1;
    position: relative;
    height: 16.875rem;
}
.installations-grid .installation-card .installation-image::before {
    content: counter(inst, decimal-leading-zero);
    position: absolute;
    top: 0.375rem;
    right: 1.125rem;
    z-index: 2;
    font-family: var(--gdf-font-body);
    font-weight:700;
    font-size: var(--fs-5xl);
    line-height: 1;
    letter-spacing: -0.04em;
    color: transparent;
    -webkit-text-stroke: 0.0938rem rgba(255, 255, 255, 0.85);
    pointer-events: none;
}
.installations-grid .installation-card .installation-image::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 28, 19, 0.85) 0%, rgba(0, 28, 19, 0.3) 42%, rgba(0, 28, 19, 0) 68%);
    pointer-events: none;
}
.installations-grid .installation-card .installation-content h3 {
    grid-area: 1 / 1;
    align-self: end;
    position: relative;
    z-index: 2;
    margin: 0;
    padding: 0 1.6rem 1.3rem;
    color: #fff;
    font-family: var(--gdf-font-body);
    font-weight:700;
    text-transform: uppercase;
    font-size: var(--fs-xl);
    line-height: 1;
    letter-spacing: -0.02em;
    text-shadow: 0 0.125rem 0.625rem rgba(0, 0, 0, 0.35);
}
.installations-grid .installation-card .installation-content h3 .gdf-gold {
    display: block;
    background: linear-gradient(135deg, #e4cf98, var(--gdf-color-secondary));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    text-shadow: none;
}
.installations-grid .installation-card .installation-content h3::after {
    content: '';
    display: block;
    width: 2.125rem;
    height: 0.125rem;
    margin-top: 0.6rem;
    background: var(--gdf-color-secondary);
}
.installations-grid .installation-card .installation-content p {
    grid-area: 2 / 1;
    margin: 0;
    padding: 1.4rem 1.6rem 1.9rem;
}
/* Trait doré qui se déploie au survol */
.installations-grid .installation-card::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    height: 0.1875rem;
    width: 0;
    background: var(--gdf-color-secondary);
    transition: width 0.45s ease;
}
.installations-grid .installation-card:hover::after { width: 100%; }

@media (max-width: 968px) {
    body .installations-grid .installation-card .installation-image { height: 11.875rem; }
    body .installations-grid .installation-card .installation-image::before {
        font-size: var(--fs-3xl);
        top: 0.25rem;
        right: 0.625rem;
        -webkit-text-stroke-width: 0.0625rem;
    }
    body .installations-grid .installation-card .installation-content h3 {
        padding: 0 0.9rem 0.8rem;
        font-size: var(--fs-base);
    }
    body .installations-grid .installation-card .installation-content h3::after {
        width: 1.5rem;
        margin-top: 0.4rem;
    }
    body .installations-grid .installation-card .installation-content p {
        padding: 0.9rem 0.9rem 1.2rem;
        font-size: var(--fs-sm);
        line-height: 1.55;
    }
    body .installations-section { padding: 3.5rem 0; }
}

/* ===== TITRES DE SECTION (style "trou signature") ===== */
body .section-header h2,
body .instagram-section .section-header h2 {
    font-family: var(--gdf-font-display);
    font-size: clamp(var(--fs-2xl), (5vw * var(--gdf-s)), var(--fs-3xl));
    font-weight: 700;
    color: var(--gdf-color-primary);
    line-height: 1.2;
}
body .section-header.light h2 { color: #fff; }
body .section-header h2 .gdf-gold {
    display: block;
    background: linear-gradient(135deg, #d9bf86, var(--gdf-color-secondary));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}
body .section-header.light h2 .gdf-gold {
    background: linear-gradient(135deg, #e4cf98, var(--gdf-color-secondary));
    -webkit-background-clip: text;
    background-clip: text;
}
@media (max-width: 968px) {
    body .section-header h2,
    body .instagram-section .section-header h2 { font-size: clamp(var(--fs-xl), (8vw * var(--gdf-s)), var(--fs-3xl)); }
}

/* Texte d'introduction sous les titres de section */

/* ===== TARIFS ===== */
.tarifs-section {
    padding: 6rem 0;
    background: var(--gdf-color-white);
    position: relative;
}

.tarifs-section::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0.04;
    background-image:
        linear-gradient(45deg, var(--gdf-color-green-light) 0.0625rem, transparent 0.0625rem),
        linear-gradient(-45deg, var(--gdf-color-green-light) 0.0625rem, transparent 0.0625rem);
    background-size: 3.125rem 3.125rem;
    pointer-events: none;
}

.tarifs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(17.5rem, 1fr));
    gap: 2.5rem;
    position: relative;
}

.tarif-card {
    background: var(--gdf-color-light);
    border-radius: 0.75rem;
    padding: 3rem 2rem;
    text-align: center;
    position: relative;
    transition: all 0.3s ease;
    border: 0.125rem solid transparent;
}

.tarif-card:hover {
    transform: translateY(-0.5rem);
    border-color: var(--gdf-color-secondary);
}

.tarif-card.featured {
    background: linear-gradient(135deg, var(--gdf-color-secondary) 0%, var(--gdf-color-accent) 100%);
    color: var(--gdf-color-white);
}

.tarif-card.premium {
    background: var(--gdf-color-primary);
    color: var(--gdf-color-white);
    position: relative;
    overflow: hidden;
}

.tarif-card.premium::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        repeating-linear-gradient(45deg, transparent, transparent 3.0625rem, rgba(255, 255, 255, 0.06) 3.0625rem, rgba(255, 255, 255, 0.06) 3.125rem),
        repeating-linear-gradient(-45deg, transparent, transparent 3.0625rem, rgba(255, 255, 255, 0.06) 3.0625rem, rgba(255, 255, 255, 0.06) 3.125rem);
    z-index: 0;
    pointer-events: none;
}

.tarif-card.premium > * {
    position: relative;
    z-index: 1;
}

.tarif-card .badge {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: var(--gdf-color-red);
    color: var(--gdf-color-white);
    padding: 0.4rem 1rem;
    border-radius: 1.25rem;
    font-size: var(--fs-xs);
    font-weight: 700;
    text-transform: uppercase;
}

.tarif-card.featured .btn,
.tarif-card.premium .btn {
    background: var(--gdf-color-white);
    color: var(--gdf-color-primary);
    border-color: var(--gdf-color-white);
}

.tarif-card .btn-secondary {
    background: var(--gdf-color-primary);
    color: var(--gdf-color-white);
    border-color: var(--gdf-color-primary);
}

.tarif-card .btn-secondary:hover {
    background: var(--gdf-color-dark);
    border-color: var(--gdf-color-dark);
}

/* ===== INSTAGRAM ===== */
.instagram-section {
    padding: 3rem 0;
    background: linear-gradient(135deg, #f9f9f9 0%, #ffffff 100%);
    position: relative;
    overflow: hidden;
}

.instagram-section::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0.03;
    background-image:
        linear-gradient(45deg, var(--gdf-color-green-light) 0.0625rem, transparent 0.0625rem),
        linear-gradient(-45deg, var(--gdf-color-green-light) 0.0625rem, transparent 0.0625rem);
    background-size: 3.125rem 3.125rem;
    pointer-events: none;
}

.instagram-section .section-header {
    margin-bottom: 2rem;
}

.instagram-section .section-header h2 {
    color: var(--gdf-color-primary);
    font-family: var(--gdf-font-display);
    font-size: clamp(var(--fs-2xl), (5vw * var(--gdf-s)), var(--fs-5xl));
    font-weight: 700;
    line-height: 1.2;
}

.instagram-feed {
    position: relative;
    max-width: 75rem;
    margin: 0 auto;
}

.instagram-cta {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
    padding: 1.5rem 0 0.5rem;
    flex-wrap: wrap;
}

.instagram-cta .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    padding: 1rem 2.5rem;
    font-size: var(--fs-base);
    transition: all 0.3s ease;
    min-width: 15rem;
    color: var(--gdf-color-white);
    text-decoration: none;
}

.btn-instagram {
    background: linear-gradient(135deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
    box-shadow: 0 0.375rem 1.25rem rgba(225, 48, 108, 0.3);
}

.btn-instagram:hover {
    transform: translateY(-0.1875rem);
    box-shadow: 0 0.625rem 1.875rem rgba(225, 48, 108, 0.4);
    color: var(--gdf-color-white);
}

.btn-facebook {
    background: linear-gradient(135deg, #1877f2 0%, #0d65d9 50%, #0a58ca 100%);
    box-shadow: 0 0.375rem 1.25rem rgba(24, 119, 242, 0.3);
}

.btn-facebook:hover {
    transform: translateY(-0.1875rem);
    box-shadow: 0 0.625rem 1.875rem rgba(24, 119, 242, 0.4);
    background: linear-gradient(135deg, #0d65d9 0%, #0a58ca 50%, #084298 100%);
    color: var(--gdf-color-white);
}

.instagram-cta .btn svg {
    flex-shrink: 0;
}

/* ===== CONTACT ===== */
.contact-section {
    padding: 6rem 0;
    background: radial-gradient(circle at 20% 30%, rgb(8 117 83) 0%, transparent 50%), radial-gradient(circle at 80% 70%, rgb(2 51 37) 0%, transparent 50%), linear-gradient(135deg, rgb(2 22 15) 0%, rgb(0, 40, 30) 100%);
    color: var(--gdf-color-white);
    position: relative;
    overflow: hidden;
}

.contact-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        repeating-linear-gradient(45deg, transparent, transparent 3.0625rem, rgba(255, 255, 255, 0.06) 3.0625rem, rgba(255, 255, 255, 0.06) 3.125rem),
        repeating-linear-gradient(-45deg, transparent, transparent 3.0625rem, rgba(255, 255, 255, 0.06) 3.0625rem, rgba(255, 255, 255, 0.06) 3.125rem);
    z-index: 0;
    pointer-events: none;
}

/* ===== CONTACT : trois colonnes (coordonnées, plan, formulaire) ===== */
.contact-section{--gdf-gold-2:#e4cf98;--gdf-deep:#0a2a1f;--gdf-ease:cubic-bezier(.2,.8,.2,1)}
.contact-section .gdf-c-inner{position:relative;z-index:1}

/* ---------- entrée en cascade ---------- */
@keyframes gdf-up{from{opacity:0;transform:translateY(1.125rem)}to{opacity:1;transform:none}}
@keyframes gdf-fade{from{opacity:0}to{opacity:1}}
.contact-section .gdf-rv{opacity:0;animation:gdf-up .9s var(--gdf-ease) forwards;animation-delay:calc(var(--d,0)*1ms)}

/* ---------- hero ---------- */
.contact-section .gdf-c-hero{position:relative;margin-bottom:3.5rem}
.contact-section .gdf-c-tag{display:block;font-family:var(--gdf-font-body);font-size:var(--fs-2xs);font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--gdf-color-accent)}
.contact-section .gdf-c-tag::after{content:"";display:block;width:3.5rem;height:0.125rem;margin-top:1.125rem;border-radius:0.125rem;background:linear-gradient(90deg,var(--gdf-gold-2),var(--gdf-color-secondary))}
.contact-section .gdf-c-title{position:relative;z-index:1;margin:1.25rem 0 0;font-family:var(--gdf-font-body);font-weight:700;text-transform:uppercase;font-size:clamp(var(--fs-3xl), (5.2vw * var(--gdf-s)), var(--fs-5xl));line-height:.94;letter-spacing:-.03em;color:#fff}
.contact-section .gdf-c-title .gdf-l2{display:block}
.contact-section .gdf-c-title .gdf-outline{display:inline-block;color:#fff;letter-spacing:.012em;filter:url(#gdf-outline)}
.contact-section .gdf-c-title .gdf-gold{font-weight:700;background:linear-gradient(135deg,var(--gdf-gold-2),var(--gdf-color-secondary));-webkit-background-clip:text;background-clip:text;color:transparent}

.contact-section .gdf-c-trace{position:absolute;right:-0.625rem;top:-2.875rem;width:min(56%,38.75rem);height:auto;pointer-events:none;z-index:0}
.contact-section .gdf-c-trace .ground{fill:none;stroke:rgba(228,207,152,.28);stroke-width:1}
.contact-section .gdf-c-trace .arc{fill:none;stroke:url(#gdf-tg);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:5 9}
.contact-section .gdf-c-trace .arcwrap{animation:gdf-fade 1.2s .5s both}
.contact-section .gdf-c-trace .flag{fill:none;stroke:var(--gdf-gold-2);stroke-width:1.4;stroke-linecap:round}
.contact-section .gdf-c-trace .cloth{fill:var(--gdf-color-accent);stroke:none}
.contact-section .gdf-c-trace .ball{fill:#fff;filter:drop-shadow(0 0 0.4375rem rgba(255,255,255,.9))}

/* ---------- corps ---------- */
.contact-section .gdf-c-cols{display:grid;grid-template-columns:minmax(16.25rem,.85fr) minmax(0,1.25fr) minmax(21.25rem,1fr);gap:2rem;align-items:stretch}

/* lignes de contact */
.contact-section .gdf-c-rows{display:flex;flex-direction:column;justify-content:flex-end}  /* alignées en bas, face au bas du plan */
.contact-section .gdf-c-row:first-child{border-top:1px solid rgba(255,255,255,.16)}
.contact-section .gdf-c-row{position:relative;display:grid;grid-template-columns:1fr 1.75rem;align-items:center;gap:0.75rem;padding:0.6875rem 0;border-bottom:1px solid rgba(255,255,255,.16);color:#fff;text-decoration:none;transition:padding .45s var(--gdf-ease)}
.contact-section .gdf-c-row::after{content:"";position:absolute;left:0;bottom:-0.0625rem;height:0.0625rem;width:0;background:linear-gradient(90deg,var(--gdf-gold-2),var(--gdf-color-secondary));transition:width .6s var(--gdf-ease)}
.contact-section .gdf-c-row:hover{padding-left:0.625rem;color:#fff}
.contact-section .gdf-c-row:hover::after{width:100%}
.contact-section .gdf-c-row .lbl{display:block;font-family:var(--gdf-font-body);font-size:var(--fs-xs);font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gdf-gold-2);margin-bottom:0.25rem}
.contact-section .gdf-c-row .v{display:block;font-family:var(--gdf-font-body);font-weight:500;font-size:clamp(var(--fs-base), (1.55vw * var(--gdf-s)), var(--fs-lg));line-height:1.25;overflow-wrap:anywhere}
.contact-section .gdf-c-row .go{width:1.75rem;height:1.75rem;border-radius:50%;border:1px solid rgba(193,168,117,.55);color:var(--gdf-color-accent);display:grid;place-items:center;transition:.4s var(--gdf-ease)}
.contact-section .gdf-c-row:hover .go{background:var(--gdf-color-accent);color:var(--gdf-deep);border-color:var(--gdf-color-accent);transform:rotate(-45deg)}
.contact-section .gdf-c-row svg{width:1rem;height:1rem;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* carte (le bloc Complianz existant est conservé tel quel à l'intérieur) */
.contact-section .gdf-c-map{position:relative;min-height:27.5rem;border-radius:0.75rem;overflow:hidden;background:#cfe5cf;box-shadow:0 0 0 0.0625rem rgba(255,255,255,.18),0 0.875rem 1.75rem -0.875rem rgba(0,0,0,.7)}
.contact-section .gdf-c-map .cmplz-placeholder-parent,
.contact-section .gdf-c-map .cmplz-placeholder-element,
.contact-section .gdf-c-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;margin:0;border-radius:0}
.contact-section .gdf-c-route{position:absolute;right:0.75rem;top:0.75rem;z-index:3;display:inline-flex;align-items:center;gap:0.625rem;height:2.375rem;padding:0 0.375rem 0 1rem;border-radius:62.4375rem;background:var(--gdf-deep);color:#fff;font-family:var(--gdf-font-body);font-size:var(--fs-sm);font-weight:700;text-decoration:none;box-shadow:inset 0 0 0 0.0625rem rgba(193,168,117,.55),0 0.5rem 1.125rem -0.5rem rgba(0,0,0,.6);transition:background .3s var(--gdf-ease)}
.contact-section .gdf-c-route:hover{background:#0f3828;color:#fff}
.contact-section .gdf-c-route i{width:1.625rem;height:1.625rem;border-radius:50%;background:var(--gdf-color-accent);color:var(--gdf-deep);display:grid;place-items:center}
.contact-section .gdf-c-route svg{width:0.8125rem;height:0.8125rem;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ---------- formulaire (Contact Form 7) ---------- */
.contact-section .gdf-c-card{position:relative;padding:1.625rem 1.5rem 1.5rem;border-radius:0.75rem;background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(0.625rem);box-shadow:0 1.875rem 3.75rem -2.125rem rgba(0,0,0,.8)}
.contact-section .gdf-c-card::before{content:"";position:absolute;left:1.5rem;right:1.5rem;top:-0.0625rem;height:0.0625rem;background:linear-gradient(90deg,transparent,var(--gdf-gold-2),transparent)}
.contact-section .gdf-c-card h3{margin:0 0 0.125rem;font-family:var(--gdf-font-display);font-weight:400;font-size:var(--fs-xl);line-height:1.2;color:#fff}
.contact-section .gdf-c-card h3 em{color:var(--gdf-color-accent);font-style:italic}
.contact-section .gdf-c-card .sub{margin:0 0 1rem;font-family:var(--gdf-font-body);font-size:var(--fs-xs);color:rgba(255,255,255,.55)}

/* neutralise l'habillage automatique de CF7 (p, br, wrappers) */
.contact-section .gdf-c-card form p{margin:0}
.contact-section .gdf-c-card form br{display:none}
.contact-section .gdf-c-card .wpcf7-form-control-wrap{display:block}
.contact-section .gdf-c-card form{display:grid;gap:0.5625rem;margin:0}
.contact-section .gdf-c-card .hidden-fields-container{display:none}
/* enveloppe du widget WordPress (zone « contact ») : pas de marge ni de paragraphe vide */
.contact-section .gdf-c-card .widget_block{margin:0}
.contact-section .gdf-c-card .widget_block > p:empty{display:none}
/* CF7 (autop) insère un <p> dans .gdf-ff et .gdf-send-wrap : on le neutralise */
.contact-section .gdf-c-card .gdf-ff > p,
.contact-section .gdf-c-card .gdf-send-wrap > p{margin:0;display:contents}
.contact-section .gdf-c-card .gdf-ff > p > br,
.contact-section .gdf-c-card .gdf-send-wrap > p > br{display:none}

.contact-section .gdf-ff{position:relative}
.contact-section .gdf-ff label{position:absolute;left:0.9375rem;top:0.9375rem;z-index:1;margin:0;font-family:var(--gdf-font-body);font-size:var(--fs-sm);font-weight:400;color:rgba(255,255,255,.55);pointer-events:none;transform-origin:left top;transition:.2s var(--gdf-ease)}
.contact-section .gdf-ff input.wpcf7-form-control,
.contact-section .gdf-ff textarea.wpcf7-form-control{display:block;width:100%;max-width:none;height:3rem;margin:0;padding:1.25rem 0.875rem 0.375rem;border:1px solid rgba(255,255,255,.12) !important;border-radius:0.375rem;background:rgba(0,0,0,.2) !important;color:#fff;font-family:var(--gdf-font-body);font-size:var(--fs-sm);line-height:1.3;box-shadow:none;outline:none;transition:.25s}
.contact-section .gdf-ff textarea.wpcf7-form-control{height:5.75rem;padding-top:1.375rem;resize:none}
.contact-section .gdf-ff input.wpcf7-form-control:focus,
.contact-section .gdf-ff textarea.wpcf7-form-control:focus{border-color:var(--gdf-color-accent) !important;background:rgba(0,0,0,.28) !important;box-shadow:0 0 0 0.1875rem rgba(193,168,117,.14)}
.contact-section .gdf-ff:focus-within label,
.contact-section .gdf-ff.is-filled label{transform:translateY(-0.5625rem) scale(.78);color:var(--gdf-color-accent)}
/* états de validation */
.contact-section .gdf-ff .wpcf7-not-valid{border-color:#ff9d8c !important}
.contact-section .gdf-c-card .wpcf7-not-valid-tip{display:block;margin-top:0.25rem;font-size:var(--fs-2xs);color:#ffb4a8}
.contact-section .gdf-c-card .wpcf7-response-output{margin:0.375rem 0 0;padding:0.5625rem 0.75rem;border:1px solid rgba(255,255,255,.25);border-radius:0.375rem;font-size:var(--fs-xs);color:#fff}
.contact-section .gdf-c-card form.sent .wpcf7-response-output{border-color:var(--gdf-color-accent)}

/* bouton d'envoi : un <input type="submit"> (CF7), icône en image de fond */
.contact-section .gdf-send-wrap{position:relative;display:flex;justify-content:flex-end;margin-top:0.25rem}
.contact-section .gdf-send-wrap .wpcf7-spinner{position:absolute;left:0;top:50%;margin:-0.75rem 0 0}
.contact-section input.gdf-send[type="submit"]{
  width:auto;height:3.125rem;margin:0;padding:0 3.5rem 0 1.625rem;border:0;border-radius:62.4375rem;cursor:pointer;
  font-family:var(--gdf-font-body);font-size:var(--fs-base);font-weight:700;letter-spacing:0;text-transform:none;color:#fff;
  background:#b8935f url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='34' height='34' viewBox='0 0 34 34'><circle cx='17' cy='17' r='17' fill='%23ffffff'/><path d='M10 17h14M18 11l6 6-6 6' fill='none' stroke='%23b8935f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 0.5rem center;
  text-shadow:0 0.0625rem 0.125rem rgba(80,55,15,.35);
  box-shadow:0 0.5rem 1.25rem -0.625rem rgba(0,0,0,.7);
  transition:background-color .3s var(--gdf-ease),background-position .4s var(--gdf-ease),transform .3s var(--gdf-ease),box-shadow .3s}
.contact-section input.gdf-send[type="submit"]:hover{background-color:#c9a86a;background-position:right 0.3125rem center;transform:translateY(-0.0625rem);box-shadow:0 0.75rem 1.5rem -0.625rem rgba(0,0,0,.7)}

/* ---------- tablette : coordonnées en haut, puis plan et formulaire ---------- */
@media (max-width:1100px){
  .contact-section .gdf-c-cols{grid-template-columns:1fr 1fr}
  .contact-section .gdf-c-rows{grid-column:1 / -1}
}

/* ---------- mobile ---------- */
@media (max-width:968px){
  .contact-section{padding:3.75rem 0}
  .contact-section .gdf-c-cols{grid-template-columns:1fr;gap:1.75rem}
  .contact-section .gdf-c-map{min-height:15rem}
  .contact-section .gdf-c-trace .ground{display:none}  /* pas de ligne de sol sur mobile */
  .contact-section .gdf-c-trace{opacity:.45;width:75%;top:2.25rem;right:-0.875rem}
  .contact-section .gdf-c-title .gdf-outline{filter:url(#gdf-outline-s)}  /* contour plus fin sur petit écran */
  .contact-section .gdf-send-wrap{justify-content:stretch}
  .contact-section input.gdf-send[type="submit"]{width:100%;text-align:left}
}
@media (prefers-reduced-motion:reduce){
  .contact-section .gdf-rv{animation:none;opacity:1}
  .contact-section .gdf-c-trace .ball{display:none}
}

.form-group {
    margin-bottom: 1.5rem;
}

.form-group input,
.form-group textarea {
    width: 100%;
    padding: 1rem;
    border: 0.125rem solid rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.1);
    border-radius: 0.375rem;
    font-family: var(--gdf-font-body);
    font-size: var(--fs-base);
    color: var(--gdf-color-white);
    transition: all 0.3s ease;
}

.form-group input::placeholder,
.form-group textarea::placeholder {
    color: rgba(255, 255, 255, 0.5);
}

.form-group input:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--gdf-color-accent);
    background: rgba(255, 255, 255, 0.15);
}

/* ===== FOOTER ===== */
.footer {
    background: var(--gdf-color-dark);
    color: rgba(255, 255, 255, 0.7);
    padding: 3rem 0 2rem;
}

.partners-section {
    padding: 2rem 0 3rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    margin-bottom: 2rem;
}

.partners-section h4 {
    text-align: center;
    color: var(--gdf-color-accent);
    font-size: var(--fs-sm);
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 2rem;
}

.partners-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr));
    gap: 2rem;
    align-items: center;
    justify-items: center;
    max-width: 62.5rem;
    margin: 0 auto;
}

.partners-grid img {
height: 4.75rem !important;
    width: auto !important;
    max-width: unset !important;
    /* object-fit: contain; */
    /* filter: brightness(0) invert(1); */
    /* opacity: 0.7; */
    transition: opacity 0.3s ease;
}

.partners-grid img:hover {
    opacity: 1;
}

.footer-content {
    display: flex;
    /*justify-content: space-between;*/
    align-items: center;
    margin-bottom: 2rem;
    flex-wrap: wrap;
    gap: 2rem;
}

.footer-logo {
    display: flex;
    align-items: center;
}

.footer-logo-img {
    height: 3.125rem;
    width: auto;
    filter: brightness(0) invert(1);
}

.footer-links {
    display: flex;
    gap: 2rem;
    list-style: none;
}

.footer-links a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: color 0.3s ease;
    font-size: var(--fs-sm);
}

.footer-links a:hover {
    color: var(--gdf-color-accent);
}

.footer-bottom {
    text-align: center;
    padding-top: 2rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    font-size: var(--fs-sm);
}

/* ===== PAGES LEGALES ===== */

/* ===== RESPONSIVE ===== */
@media (max-width: 968px) {
    html, body {
        overflow-x: clip;
        width: 100%;
        margin: 0;
        padding: 0;
    }

    .container {
        padding: 0 1rem 0.1rem;
        max-width: 100%;
    }

    .hero {
        margin-top: 5.625rem;
        height: calc(80vh * var(--gdf-s));
        height: calc(80svh * var(--gdf-s));
        min-height: 40.625rem;
        max-height: none;
    }

    .hero-content {
        margin-bottom: 11.25rem;
    }

    .status-bar-inline {
        padding: 1.5rem 0;
    }

    .status-bar-inline .status-grid {
        gap: 0;
    }

    .status-bar-inline .status-item {
        gap: 1rem;
        padding: 1rem;
        border-right: 1px solid rgba(255, 255, 255, 0.2);
        border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    }

    /* Club House : pleine largeur sur mobile */
    .status-bar-inline .status-item:nth-child(1) {
        grid-column: 1 / -1;
        border-left: none;
        border-right: none;
        justify-content: flex-start;
        padding: 1rem 1.5rem;
    }

    /* Ligne 1 : Parcours | Practice */
    .status-bar-inline .status-item:nth-child(2) {
        border-left: none;
    }

    .status-bar-inline .status-item:nth-child(3) {
        border-right: none;
    }

    /* Ligne 2 : Green | Chariots */
    .status-bar-inline .status-item:nth-child(4) {
        border-left: none;
        border-bottom: none;
    }

    .status-bar-inline .status-item:nth-child(5) {
        border-right: none;
        border-bottom: none;
    }

    .status-bar-inline .status-label {
        font-size: var(--fs-2xs);
    }

.nav-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 0.5rem;
}
.burger-menu { grid-column: 1; justify-self: start; }
.logo        { grid-column: 2; justify-content: center; }
.nav-links   { grid-column: 3; justify-self: end; justify-content: flex-end; gap: 0.5rem; display: flex !important; }

    #btn-reservation {
        display: none !important;
    }

    #linkToProfile {
        display: flex !important;
    }

    .btn-nav {
        padding: 0.6rem 1.2rem !important;
        font-size: var(--fs-xs);
    }

    .logo-img {
        height: 4.375rem !important;
    }

    nav {
        padding: 0.5rem 0;
    }

    nav.scrolled {
        padding: 0.5rem 0;
    }

    .hero-content {
        padding: 1rem;
    }

    .cta-buttons {
        flex-direction: column;
        width: 100%;
        gap: 1rem;
    }

    .cta-buttons .btn {
        width: 100%;
        max-width: 18.75rem;
    }

    .info-grid,
    .about-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .stats {
        grid-template-columns: 1fr;
    }

    .installations-grid,
    .tarifs-grid {
        grid-template-columns: 1fr;
    }

    .status-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem 1rem;
    }

    .status-item {
        gap: 1rem;
    }

    .status-icon {
        width: 3.125rem;
        height: 3.125rem;
        min-width: 3.125rem;
    }

    .status-label {
        font-size: var(--fs-xs);
    }

    .status-value {
        font-size: var(--fs-base);
    }

    .logo-img {
        height: 2.8125rem;
    }

    .footer-content {
        flex-direction: column;
        text-align: center;
    }

    .footer-links {
        flex-direction: column;
        gap: 1rem;
        align-items: center;
    }

    .section-header {
        margin-bottom: 2rem;
    }

    .info-card {
        padding: 1.5rem;
    }

    .event {
        padding: 1rem 1.2rem;
    }

    .partners-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 1.5rem;
    }

    .partners-grid img {
        height: 2.5rem;
        max-width: 6.25rem;
    }

    .hero-image-3d {
        background-size: 180%;
        background-position: -5% 0%;
        opacity: 0.45;
    }
}
#linkToProfile img{
	width:2.5rem!important;
	height:unset!important;
border-radius:1.25rem;
}
.um-own-profile .page-header-white,.um-own-profile .page-hero-mini{
display:none;
}
.gvm_volunteer-default{
max-width: unset!important;
}
input::placeholder, textarea::placeholder {
  color: #777!important;
}
form input:not([type="checkbox"]):not([type="submit"]),
form select,
form textarea
{
    width: 100%;
    max-width: 43.75rem;
    padding: 1rem;
    margin-bottom: 1.5625rem;
    background: rgba(184, 147, 95, 0.1) !important;
    border: none;
    /* background: rgba(255, 255, 255, 0.1); */
    border-radius: 0.375rem;
    font-family: var(--gdf-font-body);
    font-size: var(--fs-base);
    color: #694e29;
    transition: all 0.3s ease;
}
form select,
form textarea
{
	background: rgba(255, 255, 255, 0.1)!important;
}


 #map {
        width: calc(100vw * var(--gdf-s));
        max-width: calc(100vw * var(--gdf-s));
        margin-left: calc(50% - (50vw * var(--gdf-s)));
        margin-right: calc(50% - (50vw * var(--gdf-s)));
        height: 43.75rem;
    }
    .legend {
        position: absolute;
        top: 0.625rem;
        right: 0.625rem;
        background: rgba(30, 30, 30, 0.5);
        color: white;
        padding: 0.9375rem;
        border-radius: 0.5rem;
        font-size: var(--fs-xs);
        max-width: 10rem;
        box-shadow: 0 0.125rem 0.625rem rgba(0,0,0,0.3);
        z-index: 1;
 -moz-user-select: none; /* Firefox */
 -webkit-user-select: none; /* Chrome, Safari, Opéra depuis la version 15 */
 -ms-user-select: none; /* Internet explorer depuis la version 10 et Edge */
 user-select: none; /* Propriété standard */
    }
    .legend h3 {
        margin: 0 0 0.625rem 0;
        color: #4CAF50;
        font-size: var(--fs-sm);
    }
    .controls {
        position: absolute;
        top: 0.625rem;
        left: 0.625rem;
        background: rgba(30, 30, 30, 0.9);
        color: white;
        padding: 0.75rem;
        border-radius: 0.5rem;
        font-size: var(--fs-xs);
        z-index: 1;
    }
    .controls h2 {
        margin: 0 0 0.5rem 0;
        font-size: var(--fs-sm);
    }
    .controls label {
        display: flex;
        align-items: center;
        gap: 0.375rem;
        margin-bottom: 0.25rem;
        cursor: pointer;
    }
    .mapboxgl-popup-content {
        padding: 0.625rem 0.75rem;
        font-size: var(--fs-xs);
        border-radius: 0.375rem;
    }
    .mapboxgl-popup-content h4 {
        margin: 0 0 0.25rem 0;
        color: #2E7D32;
    }
    .mapboxgl-popup-content p {
        margin: 0.125rem 0;
    }
/* Ajouter au CSS existant */

/* Curseur crosshair quand capture active */


.info-item {
    display: flex;
    justify-content: space-between;
    padding: 0.5rem 0;
    border-bottom: 1px solid #eee;
z-index:2;
}

.info-item:last-child {
    border-bottom: none;
}

/* Modale de réservation */
.reservation-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
    z-index: 10000;
    align-items: center;
    justify-content: center;
}

.reservation-modal.active {
    display: flex;
}

.modal-content {
    position: relative;
    width: 90%;
    max-width: 75rem;
    height: calc(85vh * var(--gdf-s));
    height: calc(85svh * var(--gdf-s));
    background: white;
    border-radius: 0.75rem;
    overflow: hidden;
    box-shadow: 0 0.625rem 2.5rem rgba(0, 0, 0, 0.3);
}

.close-modal {
    position: absolute;
    top: 0.9375rem;
    right: 0.9375rem;
    background: rgba(0, 0, 0, 0.7);
    color: white;
    border: none;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    font-size: var(--fs-xl);
    cursor: pointer;
    z-index: 10001;
    transition: all 0.3s ease;
}

.close-modal:hover {
    background: rgba(0, 0, 0, 0.9);
    transform: rotate(90deg);
}

#reservation-iframe {
    width: 100%;
    height: 100%;
    border: none;
}

/* Animation d'ouverture */
@keyframes modalFadeIn {
    from {
        opacity: 0;
        transform: scale(0.9);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.reservation-modal.active .modal-content {
    animation: modalFadeIn 0.3s ease;
}

*:focus {
    outline: none !important;
}

/* Responsive */
@media (max-width: 768px) {
    .modal-content {
        width: 95%;
        height: calc(90vh * var(--gdf-s));
        height: calc(90svh * var(--gdf-s));
    }
}

/* ============================================
   ACCORDEON PDF
   ============================================ */

.pdf-accordion {
    margin: 1.5rem 0;
    border-radius: 0.75rem;
    overflow: hidden;

}

.pdf-accordion-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 1.5rem;
    background: linear-gradient(135deg, var(--gdf-color-primary, #00563f) 0%, #004530 100%);
    cursor: pointer;
    transition: all 0.3s ease;
    user-select: none;
}

.pdf-accordion-header:hover {
    background: linear-gradient(135deg, #004530 0%, #003525 100%);
}

.pdf-accordion-title {
    display: flex;
    align-items: center;
    gap: 1rem;
    color: #ffffff;
    font-family: var(--gdf-font-display);
    font-size: var(--fs-md);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin: 0;
}

.pdf-accordion-title svg {
    flex-shrink: 0;
    opacity: 0.8;
}

.pdf-accordion-arrow {
    width: 1.5rem;
    height: 1.5rem;
    color: #ffffff;
    transition: transform 0.3s ease;
    flex-shrink: 0;
}

.pdf-accordion.open .pdf-accordion-arrow {
    transform: rotate(90deg);
}

.pdf-accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.6s ease-in-out;
    background: #f9f9f9;
}

.pdf-accordion.open .pdf-accordion-content {
    max-height: 125rem; /* Assez grand pour toutes les hauteurs */
    transition: max-height 0.8s ease-in-out;
}

.pdf-accordion-content iframe {
    display: block;
    width: 100%;
    height: 62.5rem; /* Hauteur par défaut, surchargée par le JS */
    border: none;
}

/* Variante claire */
.pdf-accordion.light .pdf-accordion-header {
    background: #f5f5f5;
    border-bottom: 0.125rem solid var(--gdf-color-primary, #00563f);
}

.pdf-accordion.light .pdf-accordion-title {
    color: var(--gdf-color-primary, #00563f);
}

.pdf-accordion.light .pdf-accordion-arrow {
    color: var(--gdf-color-primary, #00563f);
}

.pdf-accordion.light .pdf-accordion-header:hover {
    background: #eeeeee;
}

/* Variante accent (doré) */
.pdf-accordion.accent .pdf-accordion-header {
    background: linear-gradient(131deg, rgba(184, 147, 95, 0.15) 0%, rgba(184, 147, 95, 0.3) 100%);
    position: relative;
    overflow: hidden;
}

/* Overlay pour transition smooth du hover */
.pdf-accordion.accent .pdf-accordion-header::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(131deg, rgba(184, 147, 95, 0.3) 0%, rgba(184, 147, 95, 0.45) 100%);
    opacity: 0;
    transition: opacity 0.4s ease;
}

.pdf-accordion.accent .pdf-accordion-header:hover::before {
    opacity: 1;
}

.pdf-accordion.accent .pdf-accordion-header h3,
.pdf-accordion.accent .pdf-accordion-header svg {
    position: relative;
    z-index: 1;
}

.pdf-accordion.accent .pdf-accordion-header h3 {
    font-family: var(--gdf-font-body);
    font-size: var(--fs-xs);
    color: var(--gdf-color-secondary);
    margin-top: 0rem;
    margin-bottom: 0rem;
    font-weight: 600;
}

.pdf-accordion.accent .pdf-accordion-arrow {
    color: var(--gdf-color-secondary);
}

/* Responsive */
@media (max-width: 768px) {
    .pdf-accordion-header {
        padding: 1rem 1.25rem;
    }

    .pdf-accordion-title {
        font-size: var(--fs-base);
        letter-spacing: 0.05em;
    }

    .pdf-accordion-content iframe {
        height: 37.5rem;
    }

    .pdf-accordion.open .pdf-accordion-content {
        max-height: 43.75rem;
    }
}
.footer-right-group {
    display: flex;
    gap: 2rem;
    margin-left: auto;
}

@media (max-width: 968px) {
    .footer-right-group {
        flex-direction: column;
        align-items: center;
        gap: 1rem;
        margin-left: 0;
    }
}
/* Sticky bar : masquée partout par défaut */
#statusBarSticky {
    display: none !important;
}
/* Sticky bar : visible sur desktop uniquement */
@media (min-width: 969px) {
    body.home #statusBarSticky {
        display: block !important;
    }
}

/* Status bar inline : masquée sur mobile/tablette hors accueil */
@media (max-width: 968px) {
    body:not(.home) .status-bar-inline {
        display: none !important;
    }
	nav .container { padding: 0 1rem; }
}
.status-label:after {
    display: inline-block;
    content: " ";
    width: 0.625rem;
    height: 0.625rem;
    background-color: red;
    border-radius: 0.625rem;
    margin-left: 0.4375rem;
}
.parcours_ferme .status-label:after {
    background-color: var(--gdf-color-accent) !important;
}
.status-icon {
    border: 0px solid green;
    border-radius: 100%;

}
.status_ouvert .status-label:after, .status_ete .status-label:after, .status_autorises .status-label:after {
    background-color: green;
}
.status_hivers .status-label:after, .status_tolerate .status-label:after{
    background-color: orange;
}

/* ---- Espace Membres homepage ---- */

/* Cartes zoom au survol */
.gvm-hp-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    will-change: transform;
    cursor: pointer;
}
.gvm-hp-card:hover {
    transform: scale(1.04);
    box-shadow: 0 0.75rem 2.5rem rgba(0,0,0,0.22);
}
.mm-widget__wrap.mm-widget__color-dark.mm-widget__bg-light.mm-widget__vertical, .mm-widget__bg-dark, .mm-widget__vertical {
    color: #FFF;
    border-radius: 0.625rem !important;
    width: 100% !important;
    background: linear-gradient(135deg, var(--gdf-color-secondary) 0%, var(--gdf-color-accent) 100%);
}
.mm-widget__temp-vertical-wrap,.mm-widget__horizontal-inner-wrap {
border-color: #FFF!important;
}
.mm-widget__copyright {
    text-align: center;
    font-size: var(--fs-2xs);
    line-height: 0.75rem;
    --tw-text-opacity: 1;
    color: rgb(209 223 219 / var(--tw-text-opacity));
}
.mm-widget__copyright, .mm-widget__copyright a  {

    color: rgba(255,255,255,0.7)!important;
}
.mm-widget__wrap .ml-4 {
    display: none;
}


/* ==========================================================
   Liste des inscrits : affichage mobile (accordéon)
   À mettre À LA PLACE de l'ancien bloc @media (max-width: 768px)
   qui cible .gdf-liste-full / .gdf-liste-table
   ========================================================== */

@media (max-width: 768px) {

  /* Conteneur */
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table-wrap {
    border: 1px solid #e5e5e5;
    border-radius: 0.625rem;
    overflow: hidden;
    padding: 0;
    margin: 0;
  }
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table {
    display: block;
    width: 100% !important;
    table-layout: auto;
    border: 0;
    margin: 0;
  }
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table thead,
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table colgroup {
    display: none;
  }
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody {
    display: block;
    width: 100%;
  }

  /* Ligne fermée : avatar | prénom + nom | chevron */
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody tr {
    display: grid;
    grid-template-columns: 2.75rem minmax(0, 1fr) 1rem;
    grid-template-areas: "avatar nom chev";
    align-items: center;
    column-gap: 0.75rem;
    row-gap: 0;
    padding: 0.625rem 0.875rem;
    margin: 0;
    border: 0;
    border-bottom: 1px solid #eee;
    background: #fff;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody tr:last-child {
    border-bottom: 0;
  }
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody tr.is-open {
    background: #f8faf9;
  }

  /* Reset de toutes les cellules (écrase les styles desktop) */
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody tr td {
    display: none;
    padding: 0;
    margin: 0;
    border: 0;
    width: auto;
    height: auto;
    overflow: visible;
    text-align: left;
    line-height: 1.35;
    vertical-align: middle;
  }

  /* Avatar */
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody tr td.gdf-col-avatar {
    display: block;
    grid-area: avatar;
    width: 2.75rem;
    height: 2.75rem;
  }
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody tr td.gdf-col-avatar img {
    display: block;
    width: 2.75rem;
    height: 2.75rem;
    margin: 0;
    border-radius: 50%;
    object-fit: cover;
  }

  /* Prénom (au dessus) + Nom (en dessous), dans la même zone */
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody tr td.gdf-col-prenom,
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody tr td.gdf-col-nom {
    display: block;
    grid-area: nom;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: var(--fs-base);
  }
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody tr td.gdf-col-prenom {
    align-self: start;
    margin-top: 0.125rem;
    color: #555;
    font-size: var(--fs-sm);
  }
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody tr td.gdf-col-nom {
    align-self: end;
    margin-bottom: 0.125rem;
  }

  /* Chevron */
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody tr::after {
    content: "";
    grid-area: chev;
    justify-self: center;
    width: 0.5rem;
    height: 0.5rem;
    margin-top: -0.25rem;
    border-right: 0.125rem solid #999;
    border-bottom: 0.125rem solid #999;
    transform: rotate(45deg);
    transition: transform .2s;
  }
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody tr.is-open::after {
    transform: rotate(-135deg);
    margin-top: 0.25rem;
  }

  /* Détails quand la ligne est ouverte : libellé à gauche, valeur à droite */
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody tr.is-open td:is(.gdf-col-index, .gdf-col-parcours, .gdf-col-preference, .gdf-col-partenaires, .gdf-col-repas) {
    display: flex;
    grid-column: 1 / -1;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.125rem 0.75rem;
    min-width: 0;
    margin: 0 0 0 3.5rem;          /* aligné sous le nom */
    padding: 0.5rem 0;
    font-size: var(--fs-sm);
    white-space: normal;
    border-top: 1px solid #ececec;
  }
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody tr.is-open td.gdf-col-index {
    margin-top: 0.625rem;
  }
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody tr.is-open td.gdf-col-repas {
    padding-bottom: 0.125rem;
  }
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody tr.is-open td::before {
    font-weight: 600;
    color: #666;
    flex-shrink: 0;
  }
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody tr.is-open td > * {
    margin-left: auto;
    text-align: right;
  }

  /* Libellés (conservés de l'existant) */
  .gdf-liste-full td.gdf-col-index::before       { content: "Index"; }
  .gdf-liste-full td.gdf-col-parcours::before    { content: "Parcours"; }
  .gdf-liste-full td.gdf-col-preference::before  { content: "Préférence"; }
  .gdf-liste-full td.gdf-col-partenaires::before { content: "Partenaires"; }
  .gdf-liste-full td.gdf-col-repas::before       { content: "Repas"; }
}

/* Petits écrans */
@media (max-width: 380px) {
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody tr {
    padding: 0.625rem;
    column-gap: 0.625rem;
  }
  .gdf-liste-wrap.gdf-liste-full .gdf-liste-table tbody tr.is-open td:is(.gdf-col-index, .gdf-col-parcours, .gdf-col-preference, .gdf-col-partenaires, .gdf-col-repas) {
    margin-left: 0;
  }
}
.gdf-liste-table tbody tr:hover td {
    background: transparent!important;
    }

.ti-widget nav.ti-nav-loadmore {
  position: static !important;
  top: auto !important;
  width: auto !important;
  z-index: auto !important;
  padding: 0 !important;
  background: none !important;
  backdrop-filter: none !important;
  border-bottom: 0 !important;
}
.ti-widget .ti-nav-loadmore .ti-btn {
    font-family: var(--gdf-font-body) !important;
    font-size: var(--fs-sm) !important;
    letter-spacing: .05em !important;
    text-transform: none !important;
    white-space: nowrap;
    background: transparent!important;
    border: 0.0938rem solid var(--gdf-color-primary)!important;
    border-radius: 1.5625rem!important;
    color: var(--gdf-color-primary)!important;
	font-weight: 600!important;
    padding: .4rem 1.8rem !important;
    transition: all .3s ease !important;
    cursor: pointer;
	transition: all 0.3s ease;
}
.ti-widget .ti-nav-loadmore .ti-btn:hover {
    background: var(--gdf-color-primary)!important;
    color: #fff!important;
}
.filr-container thead {
    display: none;
}
.filr.dataTable {
    margin: 2.5rem 0 1.875rem 0;
    display: inline-table;
}

a#btn_connect, .gdf-inscription-wrap button.btn-nav.btn-primary{
    background: var(--gdf-color-red);
    border-color: var(--gdf-color-red);
	cursor:pointer!important;
}
a#btn_connect:hover,  .gdf-inscription-wrap button.btn-nav.btn-primary:hover {
    color:#FFF!important;
	transform: translateY(0)!important;
}
@media (max-width: 420px) {
  nav .container { padding: 0 0.6rem; }

  #btn_connect {
    font-size: var(--fs-2xs);
    padding: 0.5rem 0.7rem !important;
    letter-spacing: 0;
  }
}
@media (max-width: 968px) {
  input,
  select,
  textarea {
    font-size: var(--fs-base) !important;
  }
}
/* ===== Le Club : photo en background + carte qui vole ===== */
.gdf-club__img{
  position:relative;overflow:hidden;flex:1 1 46%;min-width:0;
  background:url("/wp-content/uploads/2026/10/golf_lille.webp") center/cover no-repeat;
  --rx:0deg;--ry:0deg;--dx:0px;--dy:1rem;
}

/* grille 3x3 invisible qui capte la position de la souris */
.gdf-club__zones{
  position:absolute;inset:0;z-index:2;
  display:grid;grid-template:repeat(3,1fr)/repeat(3,1fr);
}
.gdf-club__zones i{display:block}

/* conteneur qui flotte (lévitation) */
.gdf-club__fly{
  position:absolute;z-index:1;left:50%;top:10%;width:min(52%,15.625rem);
  transform:translateX(-50%);pointer-events:none;
  animation:gdfFloat 6s ease-in-out infinite;
}

/* la carte (inclinaison douce + ombre qui suit la forme) */
.gdf-club__card{
  display:block;width:100%;height:auto;
  transform:perspective(56.25rem) rotate(-4deg) rotateX(var(--rx)) rotateY(var(--ry));
  transition:transform .5s ease-out,filter .5s ease-out;
  filter:drop-shadow(var(--dx) var(--dy) 0.875rem rgba(0,0,0,.3));
}

@keyframes gdfFloat{
  0%,100%{transform:translateX(-50%) translateY(0)}
  50%{transform:translateX(-50%) translateY(-0.75rem)}
}

/* inclinaison selon la zone survolée (desktop uniquement) */
@media (hover:hover){
  .gdf-club__img:has(i:nth-child(1):hover){--rx:6deg;--ry:-8deg;--dx:0.5rem;--dy:1.25rem}
  .gdf-club__img:has(i:nth-child(2):hover){--rx:6deg;--ry:0deg;--dx:0px;--dy:1.25rem}
  .gdf-club__img:has(i:nth-child(3):hover){--rx:6deg;--ry:8deg;--dx:-0.5rem;--dy:1.25rem}
  .gdf-club__img:has(i:nth-child(4):hover){--rx:0deg;--ry:-8deg;--dx:0.5rem;--dy:1rem}
  .gdf-club__img:has(i:nth-child(5):hover){--rx:0deg;--ry:0deg;--dx:0px;--dy:1rem}
  .gdf-club__img:has(i:nth-child(6):hover){--rx:0deg;--ry:8deg;--dx:-0.5rem;--dy:1rem}
  .gdf-club__img:has(i:nth-child(7):hover){--rx:-6deg;--ry:-8deg;--dx:0.5rem;--dy:0.75rem}
  .gdf-club__img:has(i:nth-child(8):hover){--rx:-6deg;--ry:0deg;--dx:0px;--dy:0.75rem}
  .gdf-club__img:has(i:nth-child(9):hover){--rx:-6deg;--ry:8deg;--dx:-0.5rem;--dy:0.75rem}
}

/* mobile */
@media (max-width:768px){
  .gdf-club__img{flex:1 1 100%;min-height:21.25rem}
}

/* accessibilité */
@media (prefers-reduced-motion:reduce){
  .gdf-club__fly{animation:none}
  .gdf-club__card{transition:none}
}
.gdf-club{display:flex;flex-wrap:wrap;width:100%;max-width:78.375rem;margin:5rem auto 5rem;overflow:hidden;background:#fff;font-family:inherit}

  .gdf-club__content{
    flex:1 1 54%;min-width:0;box-sizing:border-box;
    padding:2.5rem 3.75rem 3.125rem 5.625rem;
    background-color:#fff;
    background-image:url('/wp-content/uploads/2026/09/pattern.webp');
    background-repeat:repeat-y;
    background-position:right top;
    background-size:auto 100%;
    display:flex;flex-direction:column;align-items:center;justify-content:center
  }
  .gdf-club__logo{display:block;width:4.375rem;height:auto;margin:0 auto 2.5rem}
  .gdf-club__list{list-style:none;margin:0;padding:0;width:100%;max-width:29.375rem}
  .gdf-club__list li{
    position:relative;padding-left:1.625rem;margin:0 0 1.125rem;
    color:#1f3d2b;font-size:var(--fs-md);line-height:1.75;font-weight:500
  }
  .gdf-club__list li:last-child{margin-bottom:0}
  .gdf-club__list li::before{
    content:"";position:absolute;left:0;top:.55em;
    border-style:solid;border-width:0.375rem 0 0.375rem 0.625rem;
    border-color:transparent transparent transparent #d6312b
  }
	a.gdf-club__link {
    text-decoration: none;
}
  /* Bouton "En savoir plus" (transparent, liseret rouge) */
  .gdf-club__btn{
    display:inline-flex;align-items:center;justify-content:center;
    margin-top:2rem;padding:0.6875rem 1.625rem;
    background:transparent;border:0.0938rem solid #d6312b;border-radius:62.4375rem;
    color:#d6312b;font-size:var(--fs-xs);font-weight:600;line-height:1;
    letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;
    transition:background-color .25s ease,color .25s ease
  }
  a.gdf-club__link:hover .gdf-club__btn,
  a.gdf-club__link:focus-visible .gdf-club__btn{background:#d6312b;color:#fff}
  @media (max-width:768px){
    .gdf-club{flex-direction:column}
    .gdf-club__content{padding:2rem 1.25rem 2.5rem;background-size:auto}
    .gdf-club__logo{margin-bottom:1.75rem}
    .gdf-club__list li{font-size:var(--fs-base)}
  }


.gdf-help-btn{--gdf-red:var(--gdf-color-red,#C8102E);box-sizing:border-box;display:flex!important;width:100%;max-width: 31.25rem;margin: 1.5rem auto !important;align-items:center;gap:0.75rem;padding:0.4375rem 1.375rem 0.4375rem 0.4375rem!important;background:#fff!important;border:0.0938rem solid #e3d6c1!important;border-radius:62.4375rem!important;color:#1f1f1f!important;text-decoration:none!important;line-height:1.2;font-size:var(--fs-base);transition:background-color .25s ease,border-color .25s ease,color .25s ease,transform .25s ease,box-shadow .25s ease}
.info-card a.gdf-help-btn {
    margin: 0px auto !important;
}
.gdf-help-btn__icon{flex:0 0 2.25rem;width:2.25rem;height:2.25rem;border-radius:50%;display:grid;place-items:center;background:var(--gdf-red);color:#fff;font-family:var(--gdf-font-display);font-size:var(--fs-lg);font-weight:700;transition:background-color .25s ease,color .25s ease}
.gdf-help-btn__text{flex:1;display:flex;flex-direction:column;text-align:left}
.gdf-help-btn__text strong{font-weight:600;font-size:var(--fs-base)}
.gdf-help-btn__text small{font-size:var(--fs-xs);opacity:.7;margin-top:0.125rem}
.gdf-help-btn:hover,.gdf-help-btn:focus-visible{background:var(--gdf-red)!important;border-color:var(--gdf-red)!important;color:#fff!important;transform:translateY(-0.125rem);box-shadow:0 0.875rem 1.75rem -0.875rem var(--gdf-red);outline:none}
.gdf-help-btn:hover .gdf-help-btn__icon,.gdf-help-btn:focus-visible .gdf-help-btn__icon{background:#fff;color:var(--gdf-red)}
/* variante pleine : ajouter la classe gdf-help-btn--solid */
@media (prefers-reduced-motion:reduce){.gdf-help-btn,.gdf-help-btn__icon{transition:none}.gdf-help-btn:hover{transform:none}}

@media (max-width: 968px) {
  .calendar-card .calendar-layout > .calendar-grid-side { display: contents; }

  /* 1. Header */
  .calendar-card .calendar-layout .calendar-header {
    order: 1;
    padding: 1.5rem 1.5rem 0;
    margin-bottom: 1rem;
    background: #fff;
  }

  /* 2. Filtres */
  .calendar-card .calendar-layout .calendar-filters {
    order: 2;
    margin: 0 1.5rem 1.5rem;
  }

  /* 3. Photo + liste des événements */
  .calendar-card .calendar-layout > .calendar-photo-side { order: 3; }

  /* 4. Indications puis 5. Abonnement, sous le bloc photo */
  .calendar-card .calendar-layout .calendar-grid-info {
    order: 4;
    margin: 1.5rem 1.5rem 0;
  }
  .calendar-card .calendar-layout .calendar-subscribe-bar {
    order: 5;
    margin: 1.5rem;
  }

  /* On ne retire que la grille et le bouton de réinitialisation */
  .calendar-card .calendar-layout .calendar-grid,
  .calendar-card .calendar-layout .reset-selection-btn { display: none !important; }
	  .info-section {
    padding-top: 2rem;
		  padding-bottom: 0;
  }
	 body .stats {
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
    margin-top: 2rem;
    text-align: center;
  }
  body .stats .stat { padding: 1rem 0.4rem; }
  body .stat-number {
    font-size: var(--fs-xl);
    white-space: nowrap;
    margin-bottom: 0.25rem;
  }
  body .stat-label {
    font-size: var(--fs-xs);
    line-height: 1.25;
  }
	body .installations-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
}
@media (max-width: 480px) {
  body .installation-card h3 { font-size: var(--fs-md); }
  body .installation-card p { font-size: var(--fs-sm); }
}

@media (max-width: 968px) {

  /* Hero : réserve la place de la barre de statut sous le contenu */

  /* Barre de statut : une seule colonne */

  /* Une ligne par statut (même padding pour toutes, y compris la première) */

	    .status-bar-inline .status-icon {

		display:none;
    }

  /* Bloc texte : libellé à gauche, valeur et horaire à droite */

  /* Libellé avec pastille à gauche */

  /* Valeur à droite */

  /* Horaire sous la valeur */
}


/* ==========================================================
   MOBILE ET TABLETTE (jusqu'à 968px)
   ========================================================== */
@media (max-width: 968px) {

  /* ---------- HERO ---------- */
  /* réserve la place de la barre de statut sous le contenu */
  .hero {
    padding-bottom: 9.375rem !important;
    box-sizing: border-box;
  }

  /* ---------- BARRE DE STATUT (liste verticale) ---------- */
  .status-bar-inline .status-grid {
    grid-template-columns: 1fr;
    max-width: 100%;
    padding: 0 1.25rem !important;
    border-left: 0;
    border-right: 0;
  }

  .status-bar-inline .status-grid .status-item,
  .status-bar-inline .status-grid .status-item:first-child {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-height: 3.25rem;
    padding: 0.75rem 0 !important;
    margin: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
  }
  .status-bar-inline .status-grid .status-item:first-child {
    border-top: 0 !important;
  }

  .status-bar-inline .status-icon {
    width: 2rem;
    height: 2rem;
    min-width: 2rem;
  }

  .status-bar-inline .status-info {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "label value"
      "label horaires";
    align-items: center;
    column-gap: 0.75rem;
    row-gap: 0.125rem;
  }

  /* libellé avec pastille à gauche */
  .status-bar-inline .status-label {
    grid-area: label;
    align-self: center;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    line-height: 1.2;
    margin: 0;
  }
  .status-bar-inline .status-label::after {
    order: -1;
    margin: 0;
    align-self: center;
    flex: 0 0 auto;
  }

  .status-bar-inline .status-value {
    grid-area: value;
    align-self: center;
    text-align: right;
    font-size: var(--fs-base);
    line-height: 1.2;
    margin: 0;
  }

  .status-bar-inline .status-horaires {
    grid-area: horaires;
    align-self: start;
    text-align: right;
    font-size: var(--fs-2xs);
    line-height: 1.2;
    margin: 0;
    color: rgba(255, 255, 255, 0.7);
  }

   /* ---------- MENU PLEIN ÉCRAN ---------- */
  /* Panneau : fond blanc opaque. AUCUN padding ici (le menu s'anime en max-height et padding) */
  #fullscreenMenu {
    background: #fff !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    /* stabilité : jamais plus large que l'écran */
    width: 100%;
    max-width: 100%;
    left: 0;
    right: 0;
    box-sizing: border-box;
  }

  /* Les marges sont sur le contenu interne : haut sous l'en-tête, bas au dessus de la barre du navigateur et du badge reCAPTCHA */
  #fullscreenMenu .fullscreen-menu-content {
    padding: 1.75rem 1.5rem calc(6rem + env(safe-area-inset-bottom, 0px)) !important;
  }
  #fullscreenMenu .menu-columns {
    gap: 0.5rem;
  }
  #fullscreenMenu .menu-column {
    padding-top: 1rem;
  }

  #fullscreenMenu .menu-column h3 {
    font-size: var(--fs-lg);
    margin: 0 0 0.25rem;
  }

  /* listes : une ligne par lien */
  #fullscreenMenu .menu-column ul {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 0;
    line-height: 0;
  }
  #fullscreenMenu .menu-column li {
    position: relative;
    display: block !important;
    font-size: var(--fs-md);
    line-height: 1.3;
    margin: 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  }
  #fullscreenMenu .menu-column li:last-child {
    border-bottom: 0;
  }

  /* chevron à droite de chaque ligne (remplace aussi le " / " entre Départs et Résultats) */
 #fullscreenMenu .menu-column li::after {
    content: "" !important;
    position: absolute;
    right: 0.25rem;
    top: 50%;
    width: 0.5rem;
    height: 0.5rem;
    margin: 0 !important;   /* annule la marge héritée du séparateur " / " */
    padding: 0 !important;
    border-top: 0.125rem solid #b8935a;
    border-right: 0.125rem solid #b8935a;
    transform: translateY(-50%) rotate(45deg);
    pointer-events: none;
  }

  /* liens : zone tactile de 48px, place laissée au chevron */
  #fullscreenMenu .menu-column a {
    display: block !important;
    box-sizing: border-box;
    width: 100%;
    min-height: 3rem;
    padding: 0.8125rem 1.75rem 0.8125rem 0 !important;
    font-size: var(--fs-md);
    line-height: 1.3;
  }
  #fullscreenMenu .menu-column a:active {
    background: rgba(184, 147, 90, 0.14);
  }
  #fullscreenMenu .menu-column a:focus-visible {
    outline: 0.125rem solid #b8935a;
    outline-offset: 0.125rem;
    border-radius: 0.25rem;
  }
}

/* ==========================================================
   TABLETTE (600px à 968px) : menu centré sur 2 colonnes
   ========================================================== */
@media (min-width: 600px) and (max-width: 968px) {

  #fullscreenMenu .fullscreen-menu-content {
    max-width: 47.5rem;
    margin: 0 auto;
    padding: 1rem 2.5rem 0;
  }

  #fullscreenMenu .menu-columns {
    grid-template-columns: 1fr 1fr;
    column-gap: 3.5rem;
    row-gap: 1rem;
    align-items: start;
  }

  #fullscreenMenu .menu-column {
    padding-top: 1.5rem;
  }

  #fullscreenMenu .menu-column h3 {
    font-size: var(--fs-xl);
    margin-bottom: 0.5rem;
  }
}


/* =================================================================
   CONTENU EN DIRECT (js/status-live.js)
   Les barres de statut et les messages ne sont pas dans le HTML des pages : ils sont
   injectés après la réponse de /wp-json/golf/v1/status. Tant que ce n'est pas fait,
   rien n'est affiché (la place de la barre est conservée : pas de saut de mise en page).
   ================================================================= */

/* Section des messages : visible seulement si elle contient quelque chose */
[data-gdf-live="messages"] > .golf-message-banner {
    animation: gdfLiveFadeIn 0.3s ease both;
}

/* =================================================================
   MODULE HORAIRES (Club House + practice)
   Règles d'origine, déplacées ici depuis le \3c style> du template : js/status-live.js
   remplace le bloc en direct, une balise \3c style> y serait supprimée (perte de la mise en forme).
   ================================================================= */
.gch-item {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.75rem;
    padding: 0.1875rem 0!important;
    line-height: 1.25;
}
.gch-item:last-child { border-bottom: none; }
.gch-day {
    font-weight: 600;
    color: var(--gdf-color-primary);
    white-space: nowrap;
    flex-shrink: 0;
}
.gch-hours {
    color: #50575e;
    text-align: right;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0;
}
.gch-slot {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
    line-height: 1.25;
}
.gch-item.gch-today .gch-day,
.gch-item.gch-today .gch-slot { font-weight: 700; }
.gch-item.gch-today .gch-hours { color: var(--gdf-color-primary); }
.club-info .club-section h4 { margin-bottom: 0.375rem; }

/* Exceptions */

/* En-tête du bloc calendrier */
.calendar-photo-side .calendar-photo-header {
  margin-bottom: 0;
}

.calendar-photo-side .calendar-photo-header h3 {
  font-family: var(--gdf-font-display);
  font-weight: 600;
  font-size: clamp(var(--fs-2xl), (3vw * var(--gdf-s)), var(--fs-3xl));
  letter-spacing: -0.01em;
  line-height: 1.08;
  text-shadow: 0 0.125rem 1.5rem rgba(0, 0, 0, 0.35);
  margin-bottom: 0;
}

/* Filet doré sous le titre */
.calendar-photo-side .calendar-photo-header h3::after {
  content: "";
  display: block;
  width: 3.5rem;
  height: 0.125rem;
  border-radius: 0.125rem;
  background: var(--gdf-color-secondary);
  margin: 1rem 0 0;
}

.calendar-photo-side .calendar-photo-subtitle {
  font-size: var(--fs-xs);
  font-weight: 500;
  opacity: 1;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--gdf-color-accent);
  margin-top: 0.9rem;
}
/* ==========================================================
   RESEAUX SOCIAUX : mosaïque du flux (Trustindex)
   Les liens .rs-ig et .rs-fb (HTML inchangé) sont déplacés par le JS dans la grille du flux.
   Grille de 5 colonnes : le 1er post occupe 2x2, les liens réseaux prennent les 2 dernières cases.
   Le décalage de 10px par case vient du padding natif des items Trustindex : il garde les marges du site.
   ========================================================== */
.rs-social { display: none; }

.RS-section .ti-widget-layout { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); transform: none !important; }
.RS-section .ti-layout-item { width: auto !important; max-width: none !important; margin: 0 !important; aspect-ratio: 1 / 1; box-sizing: border-box; display: flex; }
.RS-section .ti-layout-item:first-child { grid-column: span 2; grid-row: span 2; }
.RS-section .ti-layout-item > * { flex: 1; min-width: 0; height: 100% !important; border-radius: 0.75rem; overflow: hidden; }

.RS-section .ti-widget .ti-widget-layout > a.rs-ig,
.RS-section .ti-widget .ti-widget-layout > a.rs-fb {
  position: relative; margin: 0.625rem; padding: 1.25rem; border-radius: 0.75rem; overflow: hidden;
  display: flex; flex-direction: column; justify-content: flex-end; color: #fff;
  font: 700 1.625rem/1.05 var(--gdf-font-display); font-family: var(--gdf-font-display) !important;
  text-decoration: none; transition: transform .3s ease, box-shadow .3s ease;
}
.RS-section .ti-widget .ti-widget-layout > a.rs-ig { background: linear-gradient(45deg, #f58529 0%, #dd2a7b 45%, #8134af 78%, #515bd4 100%); }
.RS-section .ti-widget .ti-widget-layout > a.rs-fb { background: #1877f2; }
.RS-section .ti-widget .ti-widget-layout > a.rs-ig *,
.RS-section .ti-widget .ti-widget-layout > a.rs-fb *,
.RS-section .ti-widget .ti-widget-layout > a::before { font-family: var(--gdf-font-body) !important; }
.RS-section .ti-widget .ti-widget-layout > a.rs-ig:hover,
.RS-section .ti-widget .ti-widget-layout > a.rs-fb:hover { transform: translateY(-0.25rem); box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, .2); }
.RS-section .ti-widget .ti-widget-layout > a.rs-ig:focus-visible,
.RS-section .ti-widget .ti-widget-layout > a.rs-fb:focus-visible { outline: 0.125rem solid var(--gdf-color-secondary) !important; outline-offset: 0.1875rem; }
.RS-section .ti-widget .ti-widget-layout > a small { display: block; margin: 0.375rem 0 0; padding: 0; font-size: var(--fs-sm); font-weight: 500; line-height: 1.3; color: rgba(255, 255, 255, .9); }
.RS-section .ti-widget .ti-widget-layout > a .rs-ico { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; margin: 0 0 auto; padding: 0; border-radius: 50%; color: #fff; background: rgba(255, 255, 255, .2); }
.RS-section .ti-widget .ti-widget-layout > a .rs-ico svg { width: 1.75rem; height: 1.75rem; display: block; }
/* flèche en haut à droite et anneaux en filigrane */
.RS-section .ti-widget .ti-widget-layout > a::before { content: "\2197"; position: absolute; top: 1.125rem; right: 1.125rem; width: 2.5rem; height: 2.5rem; border-radius: 50%; display: grid; place-items: center; font-size: var(--fs-lg); background: rgba(255, 255, 255, .22); transition: transform .3s ease; }
.RS-section .ti-widget .ti-widget-layout > a:hover::before { transform: translate(0.1875rem, -0.1875rem); }
.RS-section .ti-widget .ti-widget-layout > a::after { content: ""; position: absolute; right: -1.625rem; bottom: -1.625rem; width: 6.875rem; height: 6.875rem; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .25); box-shadow: 0 0 0 1rem rgba(255, 255, 255, .07), 0 0 0 2.125rem rgba(255, 255, 255, .05); pointer-events: none; }

/* Mobile : 2 colonnes, grand post pleine largeur, puis les 2 liens réseaux, puis les autres posts */
@media (max-width: 968px) {
  .RS-section .ti-widget-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .RS-section .ti-layout-item:first-child { grid-column: auto; grid-row: auto; }
  .RS-section .ti-layout-item { order: 3; }
  .RS-section .ti-layout-item:nth-child(-n+2) { order: 1; }
  .RS-section .ti-layout-item:nth-child(5) { display: none; }
  .RS-section .ti-widget .ti-widget-layout > a.rs-ig,
  .RS-section .ti-widget .ti-widget-layout > a.rs-fb { order: 2; margin: 0.625rem; padding: 0.875rem; font-size: var(--fs-lg); }
  .RS-section .ti-widget .ti-widget-layout > a .rs-ico { width: 2.625rem; height: 2.625rem; }
  .RS-section .ti-widget .ti-widget-layout > a .rs-ico svg { width: 1.3125rem; height: 1.3125rem; }
  .RS-section .ti-widget .ti-widget-layout > a::before { top: 0.75rem; right: 0.75rem; width: 2rem; height: 2rem; font-size: var(--fs-base); }
  .RS-section .ti-widget .ti-widget-layout > a small { font-size: var(--fs-xs); }
}
@media (prefers-reduced-motion: reduce) {
  .RS-section .ti-widget .ti-widget-layout > a.rs-ig,
  .RS-section .ti-widget .ti-widget-layout > a.rs-fb,
  .RS-section .ti-widget .ti-widget-layout > a::before { transition: none; }
  .RS-section .ti-widget .ti-widget-layout > a.rs-ig:hover,
  .RS-section .ti-widget .ti-widget-layout > a.rs-fb:hover { transform: none; }
}

/* ==========================================================
   MENU MOBILE : position identique au scroll 0 et en bas de page
   Sur mobile la barre de navigation ne change pas de hauteur au scroll (87px),
   alors que le menu changeait de position (80px puis 60px) : d'où la grosse marge
   en haut de page et le décalage en bas de page.
   ========================================================== */
@media (max-width: 968px) {
  #fullscreenMenu,
  nav.scrolled ~ #fullscreenMenu {
    top: 5.4375rem !important;
  }
}
@media (max-width: 968px) {
  /* Tablette et mobile : le menu prend toute la hauteur disponible sous la barre et défile si le contenu est plus long
     (avant, 500px fixes en tablette : les liens du bas étaient coupés) */
  #fullscreenMenu.active,
  nav.scrolled ~ #fullscreenMenu.active {
    max-height: calc((100vh * var(--gdf-s)) - 5.4375rem) !important;
    max-height: calc((100svh * var(--gdf-s)) - 5.4375rem) !important;
    overflow-y: auto !important;
  }
}

/* ==========================================================
   MENU DESKTOP : collé sous la barre de navigation, marge identique
   au scroll 0 et en bas de page.
   La barre fait 92px en haut de page et 81px une fois "scrolled".
   Le menu restait à 90px avec 120px / 95px de marge interne : grosse marge
   en haut de page, et bande vide visible sous la barre une fois scrollé.
   ========================================================== */
@media (min-width: 969px) {
  #fullscreenMenu {
    top: 5.75rem;
    transition: max-height 0.4s, padding 0.4s, top 0.3s ease;
  }
  nav.scrolled ~ #fullscreenMenu {
    top: 5.0625rem;
  }
  #fullscreenMenu.active,
  nav.scrolled ~ #fullscreenMenu.active {
    padding-top: 2.5rem !important;
    padding-bottom: 2.1875rem;
    /* fenêtre basse : le menu ne dépasse pas l'écran et défile au lieu d'être coupé */
    max-height: min(26.875rem, calc((100svh * var(--gdf-s)) - 5.75rem));
    /* Pendant l'ouverture (max-height de 0 vers sa valeur), le contenu dépasse : un ascenseur apparaissait puis disparaissait.
       On ne laisse donc défiler qu'une fois le menu ouvert (classe is-settled posée par js/main.js). */
    overflow-y: hidden;
  }
  #fullscreenMenu.active.is-settled,
  nav.scrolled ~ #fullscreenMenu.active.is-settled {
    overflow-y: auto;
  }
  nav.scrolled ~ #fullscreenMenu.active {
    max-height: min(26.875rem, calc((100svh * var(--gdf-s)) - 5.0625rem));
  }
}

/* ==========================================================
   ECHELLE DU SITE SUR DESKTOP (rendu equivalent a un zoom Chrome a 90%)
   Il n'y a plus de propriete zoom : a partir de 969px la taille de base de la page
   (html) passe a 90%, et toutes les dimensions du theme sont en rem, donc elles suivent.
   --gdf-s est le meme facteur pour les unites vw / vh (elles ne suivent pas le rem) :
   exemple  width: calc(50vw * var(--gdf-s)).
   Pour changer l'echelle : modifier ensemble "font-size: 90%" et "--gdf-s: 0.9" ci-dessous.
   La page de la carte (#map, Mapbox) reste a 100%.
   ========================================================== */
@media (min-width: 969px) {
  :root {
    --gdf-s: 0.9;
  }
  html {
    font-size: 90%;
  }
  html:has(#map) {
    --gdf-s: 1;
    font-size: 100%;
  }

  /* Le menu est en 100vw dans desktop.css (section burger) : on garde 100% de la largeur */
  #fullscreenMenu {
    width: 100%;
  }

  .hero {
    height: 70vh;
    height: 70svh;
  }
  .modal-content {
    height: 85vh;
    height: 85svh;
  }
}


/* ============================================================
   Message « Horaires du jour » : variante .golf-message--horaires
   Variante claire : fond blanc avec léger dégradé gris bleu, accents verts et dorés
   du club. Mêmes codes que ecole et president (pastille, titre Playfair, filet doré).
   À ajouter au CSS des messages, après .golf-message--president.
   ============================================================ */
.golf-message-banner.golf-message--horaires {
    --gm-accent: #b8935f;
    --gm-bg: #f4f7fa;
    --gm-line: rgba(70,96,120,.16);
    --gm-text: #24463a;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: block;
    padding: 2.125rem 2.25rem 1.875rem;
    border: 1px solid rgba(70,96,120,.16);
    border-radius: 0.875rem;
    background: linear-gradient(135deg, #ffffff 0%, #f5f8fb 52%, #e5ecf3 100%) !important;
    box-shadow: 0 0.875rem 1.875rem -1.25rem rgba(40,64,92,.45), inset 0 0.0625rem 0 #fff;
}
.golf-message-banner.golf-message--horaires:before {display:none!important;}
.golf-message--horaires {
  position: relative;
  overflow: hidden;
 
  /* ===== RÉGLAGES (à modifier ici) ===== */
 
  /* Position du relief, en pixels depuis le bord droit / bas de la carte.
     shift-x : positif = vers la gauche (ex. 120px), négatif = vers la droite.
     shift-y : positif = vers le haut, négatif = vers le bas. */
  --golf-iso-shift-x: 0px;
  --golf-iso-shift-y: 0px;
 
  /* Largeur de la zone où le motif est visible (fondu progressif vers la gauche) */
  --golf-iso-width: 20.625rem;
 
  /* Opacité des lignes : 1 = comme l'aperçu, 0.6 = plus discret */
  --golf-iso-opacity: 0.7;
}
 
.golf-message--horaires .golf-iso {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: var(--golf-iso-opacity);
  /* Le fondu suit la position du relief pour garder le texte lisible */
  -webkit-mask-image: radial-gradient(ellipse min(72%, var(--golf-iso-width)) 88% at calc(100% - var(--golf-iso-shift-x)) calc(94% - var(--golf-iso-shift-y)), #000 28%, rgba(0, 0, 0, .5) 62%, rgba(0, 0, 0, 0) 100%);
          mask-image: radial-gradient(ellipse min(72%, var(--golf-iso-width)) 88% at calc(100% - var(--golf-iso-shift-x)) calc(94% - var(--golf-iso-shift-y)), #000 28%, rgba(0, 0, 0, .5) 62%, rgba(0, 0, 0, 0) 100%);
}
 
/* Le contenu reste au-dessus du canvas */
.golf-message--horaires > *:not(.golf-iso) {
  position: relative;
  z-index: 1;
}
 
 
 
.golf-message--horaires * {
    position: relative;
    z-index: 1;
    max-width: none;
    margin: 0 0 0.5rem;
    text-align: left;
    color: #24463a;
}
.golf-message--horaires :last-child { margin-bottom: 0; }
 
.golf-message--horaires .tv-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.3125rem 0.8125rem;
    border: 1px solid rgba(0,86,63,.22);
    border-radius: 62.4375rem;
    background: rgba(0,86,63,.03);
    color: #00563f;
    font-size: var(--fs-2xs);
    font-weight: 700;
    letter-spacing: .24em;
    text-transform: uppercase;
    margin-bottom: 0.875rem;
}
.golf-message--horaires .tv-kicker::before {
    content: "";
    width: 0.4375rem;
    height: 0.4375rem;
    border-radius: 50%;
    background: #b8935f;
    animation: gdfHorairesPulse 2s ease-out infinite;
}
@keyframes gdfHorairesPulse {
    0%   { box-shadow: 0 0 0 0 rgba(184,147,95,.6); }
    70%  { box-shadow: 0 0 0 0.4375rem rgba(184,147,95,0); }
    100% { box-shadow: 0 0 0 0 rgba(184,147,95,0); }
}
 
.golf-message--horaires .tv-title {
    font-family: var(--gdf-font-display);
    font-size: var(--fs-xl);
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -.005em;
    color: #00563f;
}
.golf-message--horaires .tv-title::after {
    content: "";
    display: block;
    width: 2.25rem;
    height: 0.0625rem;
    margin-top: 0.75rem;
    background: #b8935f;
}
 
.golf-message--horaires .tv-info { margin-top: 0.875rem; }
 
.golf-message--horaires .tv-info .tv-date {
    font-family: var(--gdf-font-display);
    font-size: clamp(var(--fs-md), (1.9vw * var(--gdf-s)), var(--fs-lg));
    font-weight: 500;
    line-height: 1.2;
    margin-bottom: 0.875rem;
    color: #24463a;
}
 
/* Créneaux d'ouverture */
.golf-message--horaires .tv-info .tv-slots {
    display: flex;
    flex-wrap: wrap;
    gap: 0.625rem;
    margin: 0 0 1rem;
    padding: 0;
    list-style: none;
}
.golf-message--horaires .tv-slots .tv-slot {
    margin: 0;
    padding: 0.5rem 1.125rem;
    border: 1px solid rgba(184,147,95,.6);
    border-radius: 62.4375rem;
    background: #fff;
    box-shadow: 0 0.375rem 0.875rem -0.625rem rgba(40,64,92,.45);
    color: #00563f;
    font-family: var(--gdf-font-display);
    font-size: var(--fs-base);
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
}
 
/* Information complémentaire (terrain fermé, compétition...) */
.golf-message--horaires .tv-info .tv-note {
    max-width: 33.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(70,96,120,.2);
    font-size: var(--fs-sm);
    line-height: 1.55;
    color: #3b5663;
}
.golf-message--horaires .tv-info .tv-note strong {
    display: inline-block;
    margin-right: 0.375rem;
    font-family: inherit;
    font-size: var(--fs-2xs);
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #a07840;
}
 
@media (max-width: 720px) {
    .golf-message-banner.golf-message--horaires { padding: 1.75rem 1.25rem 1.5rem; }
    .golf-message-banner.golf-message--horaires::after { width: 15rem; height: 15rem; right: -3.75rem; bottom: -4.375rem; }
    .golf-message--horaires .tv-slots .tv-slot { font-size: var(--fs-base); padding: 0.4375rem 0.9375rem; }
}
@media (prefers-reduced-motion: reduce) {
    .golf-message--horaires .tv-kicker::before { animation: none; }
}

/* Carte « horaires du jour » : état des créneaux (passé, en cours) calculé par le serveur à chaque rafraîchissement */
.golf-message--horaires .tv-slots .tv-slot.is-past {
    opacity: .5;
    background: transparent;
    box-shadow: none;
    border-color: rgba(70,96,120,.22);
    color: #5c7280;
}
.golf-message--horaires .tv-slots .tv-slot.is-now {
    border-color: #00563f;
    box-shadow: 0 0.5rem 1.125rem -0.625rem rgba(0,86,63,.55);
}
.golf-message--horaires .tv-slots .tv-slot.is-now::before {
    content: "";
    display: inline-block;
    width: 0.4375rem;
    height: 0.4375rem;
    margin-right: 0.5625rem;
    border-radius: 50%;
    background: #00a36c;
    vertical-align: middle;
}
/* ==========================================================================
   Pages d'état : 404 et connexion requise
   À coller à la fin de main.css (pas de nouveau fichier CSS)
   Adapter les variables ci-dessous à celles déjà présentes dans le thème.
   ========================================================================== */

.gdf-status {
	--gdf-status-green: var(--gdf-green, #1b4d33);
	--gdf-status-gold: var(--gdf-gold, #b8924a);
	--gdf-status-red: var(--gdf-red, #b3261e);
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: calc(70vh * var(--gdf-s));
	color: var(--gdf-status-green);
	background:
		radial-gradient(60% 50% at 50% 0%, rgba(184, 146, 74, 0.10), transparent 70%),
		linear-gradient(180deg, #f6f7f4 0%, #ffffff 100%);
	text-align: center;
	padding: 7.5rem 1.25rem 4rem; /* haut : barre fixe + respiration */
}

.gdf-status--inline {
	min-height: 0;
	padding: 3rem 1.25rem;
	border-radius: 0.75rem;
}

.gdf-status__inner {
	max-width: 40rem;
	margin: 0 auto;
}

.gdf-status__visual {
	margin-bottom: 1.5rem;
	color: var(--gdf-status-green);
}

.gdf-status__visual svg {
	max-width: 100%;
	height: auto;
}

.gdf-status__kicker {
	margin: 0 0 .75rem;
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--gdf-status-gold);
}

.gdf-status__title {
	margin: 0 0 1rem;
	font-family: var(--gdf-font-display);
	font-size: clamp(var(--fs-2xl), (4.5vw * var(--gdf-s)), var(--fs-4xl));
	line-height: 1.15;
	color: var(--gdf-status-green);
}

.gdf-status__text {
	margin: 0 auto 2rem;
	max-width: 48ch;
	font-size: var(--fs-base);
	line-height: 1.6;
	color: #4a5750;
}

.gdf-status__actions {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	justify-content: center;
}

/* Boutons : 4px, majuscules, sans flèche (comme le reste du site) */
.gdf-status__btn {
	display: inline-block;
	padding: .85rem 1.6rem;
	border: 1px solid transparent;
	border-radius: 0.25rem;
	font-size: var(--fs-sm);
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.gdf-status--login .gdf-status__btn--primary {
	background: var(--gdf-status-red);
	color: #fff;
}

.gdf-status--login .gdf-status__btn--primary:hover {
	background: #8f1e18;
}

.gdf-status--404 .gdf-status__btn--primary {
	background: var(--gdf-status-gold);
	color: #fff;
}

.gdf-status--404 .gdf-status__btn--primary:hover {
	background: #9c7a3a;
}

.gdf-status__btn--ghost {
	border-color: rgba(27, 77, 51, .35);
	color: var(--gdf-status-green);
	background: transparent;
}

.gdf-status__btn--ghost:hover {
	border-color: var(--gdf-status-green);
	background: rgba(27, 77, 51, .06);
}

/* Recherche (404) */
.gdf-status__search {
	margin: 2.25rem auto 0;
	max-width: 26.25rem;
}

.gdf-status__search form {
	display: flex;
	gap: .5rem;
}

.gdf-status__search label {
	flex: 1;
}

.gdf-status__search .screen-reader-text {
	position: absolute;
	width: 0.0625rem;
	height: 0.0625rem;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.gdf-status__search input[type="search"] {
	width: 100%;
	padding: .75rem 1rem;
	border: 1px solid #cfd6d1;
	border-radius: 0.375rem;
	font-size: var(--fs-base);
}

.gdf-status__search input[type="submit"],
.gdf-status__search button {
	padding: .75rem 1.1rem;
	border: 0;
	border-radius: 0.25rem;
	background: var(--gdf-status-green);
	color: #fff;
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}

@media (max-width: 600px) {
	.gdf-status { padding: 7rem 1rem 3rem; min-height: calc(60vh * var(--gdf-s)); }
	.gdf-status__actions { flex-direction: column; }
	.gdf-status__btn { width: 100%; text-align: center; }
	.gdf-status__search form { flex-direction: column; }
}

/* ---------- pages-clean.css ---------- */
/* ==========================================================================
   PAGES - STYLE COMME LA HOME (SECTIONS FULL-WIDTH)
   ========================================================================== */

/* Hero mini TRÈS RÉDUIT - margin-top réduit */
.page-hero-mini {
    height: auto;
    min-height: 20.625rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    position: relative;
    background: var(--gdf-color-primary, #00563f);
    margin-top: 5rem;
    overflow: hidden;
    margin-bottom: 0;
    padding: 1rem 0 0 0;
}


.page-hero-mini .hero-image-3d {
    position: absolute;
    inset: 0;
    background-image: url(../images/Photos/terrain3D_v1.webp);
    background-size: 46.1875rem;
    background-position: right calc(50% - 24.9375rem) top -1.0625rem;
    background-repeat: no-repeat;
    opacity: 0.45;
    z-index: 1;
    transform: scale(1.1);
    will-change: transform;
}

.page-hero-mini .hero-pattern {
    position: absolute;
    inset: 0;
    background-image:
        repeating-linear-gradient(45deg, transparent, transparent 3.0625rem, rgba(255, 255, 255, 0.06) 3.0625rem, rgba(255, 255, 255, 0.06) 3.125rem),
        repeating-linear-gradient(-45deg, transparent, transparent 3.0625rem, rgba(255, 255, 255, 0.06) 3.0625rem, rgba(255, 255, 255, 0.06) 3.125rem);
    z-index: 2;
    pointer-events: none;
}


@media screen and (max-width: 782px) {
    body.admin-bar .page-hero-mini {
        margin-top: calc(6.875rem + 2.875rem);
    }
}

/* ==========================================================================
   CONTENU DU HERO - TITRE + STATUS + INFOS
   ========================================================================== */

/* Hero content - 3 modules floutés ENCORE PLUS REMONTÉS + MARGE REDUITE */
.page-hero-content {
    position: relative;
    z-index: 3;
    width: 100%;
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 1rem 2rem 0 2rem;
}

/* Infos rapides dans le hero (Horaires, Événements, Social) */
.page-hero-info {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    max-width: 87.5rem;
    margin: 0 auto 1.5rem auto;
}

.page-info-card {
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(0.9375rem);
    -webkit-backdrop-filter: blur(0.9375rem);
    border-radius: 1rem;
    padding: 1.5rem;
    transition: all 0.3s ease;
}

.page-info-card:hover {
    background: rgba(255, 255, 255, 0.15);
    transform: translateY(-0.125rem);
}

.page-info-title {
    font-family: var(--gdf-font-display);
    font-size: var(--fs-lg);
    font-weight: 700;
    color: #ffffff;
    margin: 0 0 1rem 0;
    text-align: center;
}

.page-info-content {
    color: rgba(255, 255, 255, 0.95);
    font-size: var(--fs-sm);
    line-height: 1.6;
}

.page-info-item {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    margin-bottom: 0.8rem;
}

.page-info-item:last-child {
    margin-bottom: 0;
}

.page-info-item svg {
    width: 1.125rem;
    height: 1.125rem;
    fill: rgba(255, 255, 255, 0.9);
    flex-shrink: 0;
}

.page-info-item a {
    color: rgba(255, 255, 255, 0.95);
    text-decoration: none;
    transition: color 0.3s ease;
}

.page-info-item a:hover {
    color: #ffffff;
}

/* ==========================================================================
   PAGE WRAPPER - COMME LA HOME
   ========================================================================== */

.page-wrapper {
    padding-top: 0;
    background: #ffffff;
    min-height: calc((100vh * var(--gdf-s)) - 5rem);
}

/* PAS de container global, chaque section gère son propre container */
.page-container {
    display: block;
	margin: 2.5rem 1rem;
}

/* Cacher la sidebar */
.page-sidebar {
    display: none;
}

/* ==========================================================================
   SECTION CONTENU - FULL WIDTH AVEC FOND BLANC
   ========================================================================== */

.page-content-section {
    width: 100%;
    padding: 6rem 0;
    background: #ffffff;
}

/* Container centré pour le contenu */
.page-content {
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 0 2rem;
}

/* TITRE DE LA PAGE - Fond blanc, noir, aligné gauche, grand */
.page-header-white {
    background: #ffffff;
    padding: 4rem 0 3rem 0;
    margin: 0 0 3rem 0;
}

.page-title-black {
    font-family: var(--gdf-font-display);
    font-size: clamp(var(--fs-3xl), (5vw * var(--gdf-s)), var(--fs-5xl));
    font-weight: 700;
    color: #1a1a1a;
    margin: 0;
    text-align: left;
    line-height: 1.2;
}

/* Titre de la page */
.page-header {
    text-align: center;
    margin-bottom: 4rem;
}

.page-title {
    font-family: var(--gdf-font-display);
    font-size: clamp(var(--fs-3xl), (5vw * var(--gdf-s)), var(--fs-5xl));
    font-weight: 700;
    color: var(--gdf-color-primary, #00563f);
    margin: 0 0 1.5rem 0;
    line-height: 1.2;
}

.page-excerpt {
    font-size: var(--fs-lg);
    color: #666;
    line-height: 1.8;
    max-width: 50rem;
    margin: 0 auto;
}

/* Contenu de la page */
.entry-content {
    font-size: var(--fs-md);
    line-height: 1.8;
    color: #333;
}

/* ==========================================================================
   WP BLOCKS GROUP - SECTIONS PLEINE LARGEUR (sur demande)
   Un bloc Groupe reste dans la colonne de texte. Pour l'étirer sur toute la largeur de l'écran
   (alternance blanc / gris), lui ajouter la classe « gdf-full » (Avancé > Classes CSS additionnelles).
   Les pages créées avant cette règle (liste dans inc/legacy-groups.php) gardent l'ancien comportement
   grâce à la classe de body « gdf-groups-legacy » : ajouter gdf-full à leurs groupes puis les retirer de la liste.
   :where() garde la spécificité de l'ancien code, donc le CSS de ces pages n'est pas touché.
   ========================================================================== */

:where(body.gdf-groups-legacy) .entry-content .wp-block-group,
.entry-content .wp-block-group.gdf-full {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
  padding: 4rem 0;
}
/* Container centré dans les groupes */
:where(body.gdf-groups-legacy) .entry-content .wp-block-group > .wp-block-group__inner-container,
.entry-content .wp-block-group.gdf-full > .wp-block-group__inner-container {
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 0 2rem;
}
/* Sans bloc intérieur (WordPress récent), le contenu est centré par le groupe lui-même */
.entry-content .wp-block-group.gdf-full:not(:has(> .wp-block-group__inner-container)) {
    padding-left: max(2rem, calc(50vw - 43.75rem));
    padding-right: max(2rem, calc(50vw - 43.75rem));
    box-sizing: border-box;
}

/* Premier groupe : fond blanc */
:where(body.gdf-groups-legacy) .entry-content .wp-block-group:nth-of-type(odd),
.entry-content .wp-block-group.gdf-full:nth-of-type(odd) {
    background: #ffffff;
}

/* Deuxième groupe : fond gris */
:where(body.gdf-groups-legacy) .entry-content .wp-block-group:nth-of-type(even),
.entry-content .wp-block-group.gdf-full:nth-of-type(even) {
    background: #f5f5f5;
}

.entry-content p {
    margin-bottom: 1.5rem;
}

.entry-content p:last-child {
    margin-bottom: 0;
}

.entry-content h2 {
    font-family: var(--gdf-font-display);
    font-size: var(--fs-3xl);
    color: var(--gdf-color-primary, #00563f);
    margin-top: 4rem;
    margin-bottom: 1.5rem;
    font-weight: 700;
}

.entry-content h2:first-child {
    margin-top: 0;
}

.entry-content h3 {
    font-family: var(--gdf-font-display);
    font-size: var(--fs-2xl);
    color: var(--gdf-color-primary, #00563f);
    margin-top: 3rem;
    margin-bottom: 1rem;
    font-weight: 600;
}

.entry-content h4 {
    font-size: var(--fs-lg);
    color: var(--gdf-color-primary, #00563f);
    margin-top: 2rem;
    margin-bottom: 0.8rem;
    font-weight: 600;
}

.entry-content ul,
.entry-content ol {
    margin: 1.5rem 0 1.5rem 2rem;
}

.entry-content li {
    margin-bottom: 0.8rem;
    line-height: 1.8;
}

.entry-content a {
    color: var(--gdf-color-secondary, #b8935f);
    text-decoration: underline;
    transition: color 0.3s ease;
}

.entry-content a:hover {
    color: var(--gdf-color-primary, #00563f);
}

.entry-content img {
    max-width: 100%;
    height: auto;
    border-radius: 0.75rem;
    margin: 2.5rem 0;
}

.entry-content blockquote {
    margin: 2rem 0;
    padding: 1.5rem 2rem;
    background: #f8f9fa;
    border-left: 0.25rem solid var(--gdf-color-secondary, #b8935f);
    border-radius: 0 0.5rem 0.5rem 0;
    font-style: italic;
}

/* ==========================================================================
   SECTION ALTERNÉE - FOND GRIS CLAIR
   ========================================================================== */

.page-section-alt {
    width: 100%;
    padding: 6rem 0;
    background: #f5f5f5;
    position: relative;
}

.page-section-alt::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0.04;
    background-image: 
        linear-gradient(45deg, var(--gdf-color-green-light, #9dc183) 0.0625rem, transparent 0.0625rem),
        linear-gradient(-45deg, var(--gdf-color-green-light, #9dc183) 0.0625rem, transparent 0.0625rem);
    background-size: 3.125rem 3.125rem;
    pointer-events: none;
}

.page-section-alt .container {
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 0 2rem;
    position: relative;
}

/* ==========================================================================
   SECTION AVEC FOND VERT - STYLE HERO
   ========================================================================== */

.page-section-green {
    width: 100%;
    padding: 6rem 0;
    background: var(--gdf-color-primary, #00563f);
    color: white;
    position: relative;
    overflow: hidden;
}

.page-section-green::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        repeating-linear-gradient(45deg, transparent, transparent 3.0625rem, rgba(255, 255, 255, 0.06) 3.0625rem, rgba(255, 255, 255, 0.06) 3.125rem),
        repeating-linear-gradient(-45deg, transparent, transparent 3.0625rem, rgba(255, 255, 255, 0.06) 3.0625rem, rgba(255, 255, 255, 0.06) 3.125rem);
    z-index: 0;
    pointer-events: none;
}

.page-section-green .container {
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 0 2rem;
    position: relative;
    z-index: 1;
}

.page-section-green h2 {
    color: white;
}

.page-section-green p {
    color: rgba(255, 255, 255, 0.95);
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

@media (max-width: 1024px) {
    .page-content-section,
    .page-section-alt,
    .page-section-green {
        padding: 4rem 0;
    }
    
    .page-content,
    .page-section-alt .container,
    .page-section-green .container {
        padding: 0 1.5rem;
    }
}

@media (max-width: 768px) {
    .page-hero-mini {
        height: auto;
        min-height: auto;
        padding: 2rem 0;
    }
    
    .page-hero-title {
        font-size: var(--fs-2xl);
        margin-bottom: 2rem;
    }
    
    .page-status-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .page-status-item {
        padding: 1rem;
        flex-direction: column;
        text-align: center;
    }
    
    .page-status-icon {
        margin-bottom: 0.5rem;
    }
    
    .page-status-info {
        text-align: center;
    }
    
    .page-hero-info {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    
    .page-info-card {
        padding: 1.2rem;
    }
}




/* ==========================================================================
   PARTIE 2 : menu burger et réglages desktop (ancien css/desktop.css)
   ========================================================================== */

/* ==========================================================================
   Menu burger et réglages desktop
   Golf des Flandres, version optimisée (v2)
   Sources fusionnées : burger-menu.css, desktop-compact.css
   Dimensions en rem (échelle desktop via html, voir « ECHELLE DU SITE SUR DESKTOP » dans main.css).
   ========================================================================== */

/* ---------- burger-menu.css ---------- */
/* ===== BURGER MENU & DROPDOWN MENU ===== */

/* Bouton Burger */
.burger-menu {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 1.875rem;
    height: 1.5rem;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 1001;
    transition: all 0.3s ease;
    position: relative;
    grid-column: 1;
    justify-self: start;
}

.burger-line {
    width: 100%;
    height: 0.1875rem;
    background: var(--gdf-color-primary);
    border-radius: 0.1875rem;
    transition: all 0.3s ease;
}

/* Animation burger quand menu ouvert */
.burger-menu.active .burger-line:nth-child(1) {
    transform: translateY(0.6563rem) rotate(45deg);
}

.burger-menu.active .burger-line:nth-child(2) {
    opacity: 0;
}

.burger-menu.active .burger-line:nth-child(3) {
    transform: translateY(-0.6562rem) rotate(-45deg);
}

/* Menu Dropdown - Bandeau largeur complète */
.fullscreen-menu {
    position: fixed;
    /*top: 90px; /* Hauteur de la nav */
    
    left: 0;
    width: calc(100vw * var(--gdf-s));
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(0.625rem);
    -webkit-backdrop-filter: blur(0.625rem);
    box-shadow: 0 0.625rem 2.5rem rgba(0, 0, 0, 0.1);
    z-index: 999;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, padding 0.4s ease;
    padding: 0;
}

.fullscreen-menu.active {
    max-height: 26.875rem;
    padding: 1.5625rem 0;
    padding-top: 7.5rem !important;
}
nav.scrolled ~ .fullscreen-menu.active {
padding-top: 5.9375rem !important;
}
.fullscreen-menu-content {
    max-width: 87.5rem;
    width: 100%;
    margin: 0 auto;
    padding: 0 2rem;
}

/* Colonnes du menu */
.menu-columns {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 4rem;
}

.menu-column h3 {
    font-family: var(--gdf-font-display);
    font-size: var(--fs-xl);
    font-weight: 700;
    color: var(--gdf-color-secondary);
    margin-bottom: 1.5rem;
    padding-bottom: 0;
    border-bottom: none;
}

.menu-column ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.menu-column li {
    margin-bottom: 0.8rem;
}

.menu-column a {
    color: var(--gdf-color-dark);
    text-decoration: none;
    font-size: var(--fs-base);
    font-weight: 400;
    transition: all 0.3s ease;
    display: inline-block;
    position: relative;
}

.menu-column a::after {
    content: '';
    position: absolute;
    bottom: -0.1875rem;
    left: 0;
    width: 0;
    height: 0.125rem;
    background: var(--gdf-color-secondary);
    transition: width 0.3s ease;
}

.menu-column a:hover {
    color: var(--gdf-color-secondary);
    transform: translateX(0.1875rem);
}

.menu-column a:hover::after {
    width: 100%;
}

/* Navigation avec scroll */

/* Responsive Tablet */
@media (max-width: 968px) {
    .fullscreen-menu {
        top: 6.25rem;
    }
    
    nav.scrolled ~ .fullscreen-menu {
        top: 4.0625rem;
    }
    
    .fullscreen-menu.active {
        max-height: 31.25rem;
        padding: 2.5rem 0;
    }
    
    .menu-columns {
        grid-template-columns: repeat(2, 1fr);
        gap: 3rem 2rem;
    }
    
    .menu-column h3 {
        font-size: var(--fs-xl);
        margin-bottom: 1.2rem;
    }
    
    .menu-column a {
        font-size: var(--fs-sm);
    }
}
/* gestion depart / resultats*/
/* Menu : « Départs » et « Résultats » sur une seule ligne, séparés par « / » (éléments de menu 659 et 660 du menu WordPress, donc invisibles dans le code du thème). Sur mobile, le menu plein écran reprend la main (!important plus bas). */
#menu-item-659,
#menu-item-660,
#menu-item-2576,
#menu-item-2577{
    display: inline-block;
    white-space: nowrap;
}
#menu-item-659::after, #menu-item-2576::after {
    content: " / ";
    margin: 0 0.3125rem;
}

/* Cadenas sur les menus réservés aux connectés (visiteur déconnecté uniquement) */
body:not(.logged-in) .MainMenu-links a[href$="/departs/"],
body:not(.logged-in) .MainMenu-links a[href$="/resultats/"] {
  padding-right: .95em;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%231b4d33' fill-opacity='0.6'%3E%3Cpath d='M12 1a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V11a2 2 0 0 0-2-2h-1V6a5 5 0 0 0-5-5zm-3 8V6a3 3 0 1 1 6 0v3H9z'/%3E%3C/svg%3E") right top .3em / .62em .62em no-repeat;
}

/* Mobile : cadenas dans un cartouche rond, à gauche de la flèche */
@media (max-width: 968px) {
  body:not(.logged-in) .MainMenu-links a[href$="/departs/"],
  body:not(.logged-in) .MainMenu-links a[href$="/resultats/"] {
    padding-right: 28px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='16' fill='%231b4d33' fill-opacity='.1'/%3E%3Cg transform='translate(9.5 9) scale(.5)' fill='%231b4d33' fill-opacity='.7'%3E%3Cpath d='M12 1a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V11a2 2 0 0 0-2-2h-1V6a5 5 0 0 0-5-5zm-3 8V6a3 3 0 1 1 6 0v3H9z'/%3E%3C/g%3E%3C/svg%3E") right 26px center / 1.4em 1.4em no-repeat;
  }
}
/* Responsive Mobile */
@media (max-width: 640px) {
    /* Burger centré verticalement dans la nav */
    .burger-menu {
        align-self: center;
        margin-left: 0;
    }
    
    .fullscreen-menu {
        top: 5rem;
        max-height: 0 !important;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    
    nav.scrolled ~ .fullscreen-menu {
        top: 3.75rem;
    }
    
    .fullscreen-menu.active {
        max-height: calc((100vh * var(--gdf-s)) - 5rem) !important;
        padding: 1rem 0 2rem 0;
    }
    
    nav.scrolled ~ .fullscreen-menu.active {
        max-height: calc((100vh * var(--gdf-s)) - 3.75rem) !important;
    }
    
    .menu-columns {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .fullscreen-menu-content {
        padding: 0 1.5rem;
    }
    
    .menu-column h3 {
        font-size: var(--fs-lg);
        margin-bottom: 1rem;
    }
    
    .menu-column li {
        margin-bottom: 0.7rem;
    }
    
    .menu-column a {
        font-size: var(--fs-base);
    }
}


/* ---------- desktop-compact.css ---------- */
/* ==========================================================================
   DESKTOP COMPACT - Réduction ~80% pour écrans desktop
   Fichier à inclure APRÈS main.css et pages.css
   ========================================================================== */

/* Appliquer uniquement sur desktop (>1024px) */
@media (min-width: 1025px) {
    
    /* ===== VARIABLES AJUSTÉES ===== */
    :root {
        --scale-factor: 0.82; /* Facteur de réduction global */
    }

    /* ===== TYPOGRAPHIE GLOBALE ===== */
    body {
        font-size: var(--fs-base); /* 1rem, comme sur mobile (avant : --fs-sm) */
        line-height: 1.55;
    }

    /* Texte courant à 1rem (body). Ne suivent pas : statuts, calendrier, widgets (restent à la taille d'avant). */
    .widget_block,
    .widget_text,
    .status-grid,
    .status-horaires,
    .status-bar-inline,
    .status-disclaimer,
    .calendar-card,
    .calendar-widget {
        font-size: var(--fs-sm);
    }

    /* ===== NAVIGATION ===== */
    nav {
        padding: 0.35rem 0;
    }

    nav.scrolled {
        padding: 0.3rem 0;
    }

    .logo-img {
        height: 5rem; /* Réduit de 100px */
    }

    nav.scrolled .logo-img {
        height: 4.375rem; /* Réduit de 70px */
    }

    .nav-link {
        font-size: var(--fs-sm); /* Réduit de 0.95rem */
    }

    .nav-links {
        gap: 1.2rem; /* Réduit de 1.5rem */
    }

    .btn-nav {
        padding: 0.55rem 1.4rem !important; /* Réduit de 0.7rem 1.8rem */
        font-size: var(--fs-xs); /* Réduit de 0.85rem */
    }

    /* ===== HERO ===== */
    .hero {
        height: calc(60vh * var(--gdf-s)); /* Réduit de 70vh */
        min-height: 30rem; /* Réduit de 600px */
        max-height: 40.625rem; /* Réduit de 800px */
        margin-top: 5.625rem; /* Réduit de 110px */
    }

.hero h1 { font-size: clamp(var(--fs-3xl), (5vw * var(--gdf-s)), var(--fs-5xl)); margin-bottom: 0; }
.hero p  { font-size: var(--fs-sm); margin-bottom: 4.25rem; }
.hero-content { max-width: 46.875rem; padding: 1.6rem 1.6rem 6rem; }

    /* ===== BOUTONS ===== */
    .btn {
        padding: 0.8rem 2rem; /* Réduit de 1rem 2.5rem */
        font-size: var(--fs-sm); /* Réduit de 0.95rem */
    }

    .cta-buttons {
        gap: 1.2rem; /* Réduit de 1.5rem */
    }

    /* ===== STATUS BAR ===== */
    .status-bar-inline {
        padding: 1.1rem 0; /* Réduit de 1.4rem */
    }

    .status-bar-inline .status-icon {
        width: 3rem; /* Réduit de 60px */
        height: 3rem;
        min-width: 3rem;
    }

    .status-bar-inline .status-item {
        gap: 1.2rem; /* Réduit de 1.5rem */
        padding: 0 1.6rem; /* Réduit de 2rem */
    }

    .status-bar-inline .status-label {
        font-size: var(--fs-xs); /* Réduit de 0.85rem */
    }

    .status-bar-inline .status-value {
        font-size: var(--fs-base); /* Réduit de 1.1rem */
    }

    /* Status bar sticky */
    .status-bar-sticky {
        top: 4.0625rem; /* Ajusté pour la nav plus petite */
    }

    .status-bar-sticky .status-icon {
        width: 2.25rem; /* Réduit de 45px */
        height: 2.25rem;
        min-width: 2.25rem;
    }

    .status-bar-sticky .status-label {
        font-size: var(--fs-2xs); /* Réduit de 0.7rem */
    }

    .status-bar-sticky .status-value {
        font-size: var(--fs-xs); /* Réduit de 0.9rem */
    }

    /* ===== SECTIONS ===== */
    .section-header {
        margin-bottom: 3.2rem; /* Réduit de 4rem */
    }

    .section-tag {
        font-size: var(--fs-xs); /* Réduit de 0.85rem */
        margin-bottom: 0.8rem;
    }

    .section-header h2 {
        font-size: clamp(var(--fs-xl), (4vw * var(--gdf-s)), var(--fs-4xl)); /* Réduit de clamp(2rem, 5vw, 3.5rem) */
    }

    /* ===== CONTAINER ===== */
    .container {
        padding: 0 1.6rem; /* Réduit de 2rem */
    }

    /* ===== INFO SECTION ===== */
    .info-section {
        padding: 4rem 0; /* Réduit de 5rem */
    }

    .info-grid {
        gap: 2rem; /* Réduit de 2.5rem */
    }

    .info-card {
        padding: 2rem; /* Réduit de 2.5rem */
    }

    .card-header {
        margin-bottom: 1.6rem; /* Réduit de 2rem */
        padding-bottom: 1.2rem; /* Réduit de 1.5rem */
    }

    .card-header h3 {
        font-size: var(--fs-xl); /* Réduit de 1.8rem */
    }

    /* ===== CALENDRIER : règles desktop déplacées à la fin de calendar.css (chargé seulement avec le calendrier) ===== */
    /* ===== ABOUT SECTION ===== */
    .about-section {
        padding: 4.8rem 0; /* Réduit de 6rem */
    }

    .about-grid {
        gap: 4rem; /* Réduit de 5rem */
    }

    .about-text p {
        font-size: var(--fs-base); /* Réduit de 1.1rem */
        margin-bottom: 1.2rem;
    }

    .stats {
        gap: 1.6rem; /* Réduit de 2rem */
        margin-top: 2.4rem; /* Réduit de 3rem */
    }

    .stat {
        padding: 1.6rem; /* Réduit de 2rem */
    }

    .stat-number {
        font-size: var(--fs-2xl); /* évite le retour à la ligne dans les cartes chiffres clés */
    }

    .stat-label {
        font-size: var(--fs-sm); /* Réduit de 0.95rem */
    }

    .about-image {
        height: 30rem; /* Réduit de 600px */
    }

    /* ===== INSTALLATIONS ===== */
    .installations-section {
        padding: 4.8rem 0; /* Réduit de 6rem */
    }

    .installations-grid {
        gap: 2rem; /* Réduit de 2.5rem */
    }

    .installation-image {
        height: 12.5rem; /* Réduit de 250px */
    }

    .installation-content {
        padding: 1.6rem; /* Réduit de 2rem */
    }

    .installation-content h3 {
        font-size: var(--fs-lg); /* Réduit de 1.5rem */
        margin-bottom: 0.8rem;
    }

    /* ===== TARIFS ===== */
    .tarifs-section {
        padding: 4.8rem 0; /* Réduit de 6rem */
    }

    .tarifs-grid {
        gap: 2rem; /* Réduit de 2.5rem */
    }

    .tarif-card {
        padding: 2.4rem 1.6rem; /* Réduit de 3rem 2rem */
    }

    /* ===== INSTAGRAM ===== */
    .instagram-section {
        padding: 2.4rem 0; /* Réduit de 3rem */
    }

    .instagram-section .section-header {
        margin-bottom: 1.6rem;
    }

    .instagram-cta {
        gap: 1.2rem;
        padding: 1.2rem 0 0.4rem;
    }

    .instagram-cta .btn {
        padding: 0.8rem 2rem;
        font-size: var(--fs-sm);
        min-width: 12.5rem; /* Réduit de 240px */
    }

    /* ===== CONTACT ===== */
    .contact-section {
        padding: 4.8rem 0; /* Réduit de 6rem */
    }

    .form-group {
        margin-bottom: 1.2rem;
    }

    .form-group input,
    .form-group textarea {
        padding: 0.8rem;
        font-size: var(--fs-sm);
    }

    /* ===== FOOTER ===== */
    .footer {
        padding: 2.4rem 0 1.6rem;
    }

    .partners-section {
        padding: 1.6rem 0 2.4rem;
        margin-bottom: 1.6rem;
    }

    .partners-section h4 {
        font-size: var(--fs-xs);
        margin-bottom: 1.6rem;
    }

    .partners-grid {
        gap: 1.6rem;
    }

    .partners-grid img {
        height: 2.5rem; /* Réduit de 50px */
        max-width: 6.25rem; /* Réduit de 120px */
    }

    .footer-content {
        margin-bottom: 1.6rem;
        gap: 1.6rem;
    }

    .footer-logo-img {
        height: 2.5rem; /* Réduit de 50px */
    }

    .footer-links {
        gap: 1.6rem;
    }

    .footer-links a {
        font-size: var(--fs-xs);
    }

    .footer-bottom {
        padding-top: 1.6rem;
        font-size: var(--fs-xs);
    }

    /* ===== PAGES STANDARDS ===== */
    .page-hero-mini {
        height: 10rem; /* Réduit de 200px */
        margin-top: 5.625rem; /* Réduit de 110px */
        margin-bottom: 2.5rem; /* Réduit de 50px */
    }

    .page-container {
        gap: 2rem; /* Réduit de 40px */
        grid-template-columns: 1fr 18.75rem; /* Réduit de 350px */
    }

    .page-header {
        margin-bottom: 2.5rem; /* Réduit de 50px */
    }

    .page-title {
        font-size: var(--fs-4xl); /* Réduit de 3.5rem */
        padding-bottom: 1rem;
    }

    .page-title::after {
        width: 4.0625rem; /* Réduit de 80px */
        height: 0.1875rem;
    }

    .page-excerpt {
        font-size: var(--fs-base); /* Réduit de 1.2rem */
    }

    .entry-content {
        font-size: var(--fs-base); /* Réduit de 1.1rem */
        line-height: 1.75;
    }

    .entry-content h2 {
        font-size: var(--fs-xl); /* Réduit de 2rem */
        margin-top: 2.4rem;
        margin-bottom: 1rem;
    }

    .entry-content h3 {
        font-size: var(--fs-lg); /* Réduit de 1.5rem */
        margin-top: 2rem;
    }

    .entry-content h4 {
        font-size: var(--fs-base); /* Réduit de 1.2rem */
        margin-top: 1.6rem;
    }

    .entry-content p {
        margin-bottom: 1.2rem;
    }

    .entry-content img {
        margin: 2rem 0;
    }

    /* ===== SIDEBAR ===== */
    .page-sidebar {
        top: 8.125rem; /* Ajusté pour nav plus petite */
        gap: 1rem;
    }

    body.admin-bar .page-sidebar {
        top: calc(8.125rem + 2rem);
    }

    .widget-title {
        font-size: var(--fs-xl); /* Réduit de 1.8rem */
        padding: 1.5rem 1.5rem 1.25rem 1.5rem;
    }

    .widget-content {
        padding: 1.5rem;
    }

    .sidebar-menu a {
        padding: 0.625rem 0;
        font-size: var(--fs-sm);
    }

    .contact-item {
        gap: 0.625rem;
    }

    .contact-icon svg {
        width: 1.125rem;
        height: 1.125rem;
    }

    .contact-item a,
    .contact-item span:not(.contact-icon) {
        font-size: var(--fs-sm);
    }

    .horaires-item {
        padding: 0.625rem 0;
    }

    .horaires-item strong,
    .horaires-item span {
        font-size: var(--fs-sm);
    }

    .social-link {
        width: 2.375rem;
        height: 2.375rem;
    }

    /* Widget Events */
    .widget-event-item {
        gap: 0.75rem;
        padding: 0.75rem;
    }

    .widget-event-date {
        min-width: 3rem;
        height: 3rem;
    }

    .widget-event-day {
        font-size: var(--fs-xl);
    }

    .widget-event-month {
        font-size: var(--fs-2xs);
    }

    .widget-event-title {
        font-size: var(--fs-sm);
        margin-bottom: 0.375rem;
    }

    .widget-event-type {
        padding: 0.1875rem 0.625rem;
        font-size: var(--fs-2xs);
    }

    .widget-event-time {
        font-size: var(--fs-xs);
    }

    /* ===== PDF ACCORDION ===== */
    .pdf-accordion-header {
        padding: 1rem 1.2rem;
    }

    .pdf-accordion-title {
        font-size: var(--fs-base);
    }

    /* ===== FORMULAIRES GÉNÉRAUX ===== */
    form input:not([type="checkbox"]):not([type="submit"]),
    form select {
        padding: 0.8rem;
        margin-bottom: 1.25rem;
        font-size: var(--fs-sm);
    }

    /* ===== MAP ===== */
    #map {
        height: 35rem; /* Réduit de 700px */
    }

    .legend {
        padding: 0.75rem;
        font-size: var(--fs-2xs);
        max-width: 8.75rem;
    }

    .legend h3 {
        font-size: var(--fs-xs);
        margin-bottom: 0.5rem;
    }

    /* ===== LEGAL PAGES ===== */
}


/* ==========================================================================
   WIDGETS TIERS ET BLOCS DE L'ADMIN SOUS L'ANCIEN ZOOM (compatibilité)
   Avant, tout le site était zoomé à 90 % : les widgets tiers (bandeau cookies Complianz, météo Meteomatics,
   avis Trustindex, reCAPTCHA, Contact Form 7) et les blocs du plugin golf-event-registrations
   (pages d'inscription aux compétitions) étaient donc eux aussi réduits.
   Le CSS saisi dans les pages (dont .gdf-gold-side) est désormais dans css/pages/ et converti en rem. Le zoom global n'existe plus, on le garde ici uniquement sur ces éléments
   pour que le rendu reste identique.
   Pour retirer un sélecteur de cette liste : convertir d'abord son CSS en rem (px divisés par 16), puis le supprimer ici.
   ========================================================================== */
@media (min-width: 969px) {
  html:not(:has(#map)) :is(
    #cmplz-cookiebanner-container,
    #cmplz-manage-consent,
    .cmplz-placeholder-parent .cmplz-blocked-content-notice,
    [data-meteomatics-weather-widget],
    .ti-widget,
    .grecaptcha-badge,
    .wpcf7-spinner,
    .gdf-inscription-wrap,
    .gdf-inscription-error,
    .gdf-eh-wrap,
    .gdf-liste-wrap,
    .gdf-mes-inscriptions-wrap
  ) {
    zoom: var(--gdf-s);
  }
}


/* ==========================================================================
   PARTIE 3 : contenu en direct, statut, messages, horaires, squelettes (ancien css/live.css)
   ========================================================================== */

/* ==========================================================================
   Contenu en direct : statut, messages, horaires, squelettes de chargement
   Golf des Flandres, version optimisée (v2)
   Sources fusionnées : live.css, golf-skeleton.css
   Dimensions en rem (échelle desktop via html, voir « ECHELLE DU SITE SUR DESKTOP » dans main.css).
   ========================================================================== */

/* ---------- live.css ---------- */
/* =================================================================
   CONTENU EN DIRECT (js/status-live.js) : barres de statut, messages, horaires
   Feuille de style séparée de main.css : main.css contient une accolade non fermée
   (un @media (max-width: 968px) jamais refermé en fin de fichier), donc toute règle ajoutée
   à la fin de main.css ne s'applique que sur mobile et tablette.
   ================================================================= */

/* Les barres de statut et les messages ne sont pas dans le HTML des pages : ils sont injectés
   après la réponse de /wp-json/golf/v1/status. Tant que ce n'est pas fait, rien n'est affiché
   (la place de la barre est conservée : pas de saut de mise en page). */
.status-bar-inline {
    transition: padding 0.3s ease, opacity 0.3s ease;
}
.status-bar-inline:not(.is-live) {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: none;
}

.status-bar-sticky:not(.is-live) {
    opacity: 0 !important;
    visibility: hidden;
    pointer-events: none !important;
}

/* Section des messages : visible seulement si elle contient quelque chose */
.homemsg:not(.gdf-has-static):not(.gdf-has-live) {
    display: none;
}

/* Apparition en fondu du contenu injecté */
[data-gdf-live="messages"] > .golf-message-banner,
[data-gdf-live="fermeture"] > .home_msg,
[data-gdf-live="horaires"] > .club-info {
    animation: gdfLiveFadeIn 0.3s ease both;
}
@keyframes gdfLiveFadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* =================================================================
   MODULE HORAIRES (Club House + practice)
   Règles d'origine, reprises du \3c style> de l'ancien template : js/status-live.js remplace
   le bloc en direct, une balise \3c style> y serait supprimée (perte de la mise en forme).
   ================================================================= */
/* Frise des horaires : Barres dorées = jours habituels, verte = aujourd'hui */
.club-info .club-section.gch-frise { height: auto; --gch-green: var(--gdf-color-primary, #00563f); --gch-gold: var(--gdf-color-secondary, #b8935f); }
.club-info .club-section h4.gch-title {
    font-family: var(--gdf-font-display);
    font-size: var(--fs-xl);
    font-weight: 400;
    line-height: 1.2;
    color: var(--gdf-color-dark, #000);
    margin: 0 0 0.5rem;
    letter-spacing: 0;
    word-spacing: 0;
    text-transform: none;
    display: block;
}
.club-info .club-section h4.gch-title em { font-style: italic; color: var(--gch-gold); }
.club-info .club-section .gch-axis { position: relative; height: 0.875rem; margin: 0 0 0.25rem 7.375rem; }
.gch-axis span {
    position: absolute; top: 0; transform: translateX(-50%);
    font-size: var(--fs-2xs); line-height: 0.875rem; color: #9aa0a6; font-variant-numeric: tabular-nums;
}
.gch-axis span:first-child { transform: none; }
.gch-axis span:last-child { transform: translateX(-100%); }
.gch-row { display: grid; grid-template-columns: 7.375rem 1fr; column-gap: 0; padding: 0.4375rem 0 0.375rem; }
.gch-label { grid-row: 1; grid-column: 1; align-self: center; font-size: var(--fs-sm); color: #50575e; white-space: nowrap; }
.gch-row-today .gch-label { font-weight: 700; color: var(--gch-green); }
.gch-track { grid-row: 1; grid-column: 2; position: relative; height: 0.625rem; align-self: center; background: #f1f1ee; border-radius: 0.3125rem; }
.gch-grid { position: absolute; top: 0; bottom: 0; width: 0.0625rem; background: rgba(0,0,0,.06); }
.gch-seg { position: absolute; top: 0; bottom: 0; border-radius: 0.3125rem; display: block; }
.gch-open { background: var(--gch-green); }
.gch-today { background: var(--gch-green); }
.gch-ghost { background: repeating-linear-gradient(135deg, #cfcfca 0 0.1875rem, #e6e6e2 0.1875rem 0.375rem); }
.gch-past { opacity: .35; }
.gch-cut-r { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.gch-cut-l { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.gch-now { position: absolute; top: -0.25rem; bottom: -0.25rem; width: 0.125rem; margin-left: -0.0625rem; background: #c1272d; border-radius: 0.0625rem; text-decoration: none; }
.gch-text {
    grid-row: 2; grid-column: 2; margin-top: 0.3125rem;
    font-size: var(--fs-xs); line-height: 1.3; color: #50575e; font-variant-numeric: tabular-nums;
}
.gch-text s { color: #9aa0a6; }
.gch-row-today .gch-text { color: var(--gch-green); font-weight: 500; }
.gch-legend { display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; margin-top: 1rem; font-size: var(--fs-xs); color: #6b7177; }
.gch-legend span { display: inline-flex; align-items: center; gap: 0.375rem; }
.gch-lg { display: inline-block; width: 0.875rem; height: 0.375rem; border-radius: 0.1875rem; }
@media (max-width: 480px) {
    .gch-row { grid-template-columns: 6rem 1fr; }
    .gch-axis { margin-left: 6rem; }
}

/* Prochaine exception, sous chaque frise */
.gch-note {
    display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.625rem;
    margin: 0.625rem 0 0 0; padding: 0.5rem 0.75rem;
    background: #faf6ef; border-left: 0.1875rem solid var(--gch-gold); border-radius: 0 0.375rem 0.375rem 0;
    font-size: var(--fs-sm); line-height: 1.3;
}
.gch-note-ferme { background: #fbf0f0; border-left-color: #c1272d; }
.gch-note-tag {
    font-size: var(--fs-2xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
    color: var(--gch-gold);
}
.gch-note-ferme .gch-note-tag { color: #c1272d; }
.gch-note-when { font-weight: 700; color: #1d2327; }
.gch-note-txt { color: #50575e; font-variant-numeric: tabular-nums; }

/* Exceptions */
.gch-exceptions {
    margin-top: 1rem;
    padding-top: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

/* Mobile : trait de séparation identique entre tous les statuts du hero.
   main.css donne un border-bottom à chaque ligne (en plus du border-top de la suivante) sauf à la 4e (Green),
   d'où un trait plus fin entre Green et Chariots. */
@media (max-width: 968px) {
    .status-bar-inline .status-grid .status-item:nth-child(4) {
        border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
    }
}
/* =================================================================
   MESSAGE SOUS LE STATUT DU PARCOURS (ex. « Réservé compétition »)
   Réglé dans Réglages > Status > Parcours. Mis en évidence : rouge + clignotement lent.
   ================================================================= */

.status-item .parcours-message {
    font-size: var(--fs-xs);
    font-weight: 400;
    line-height: 1.2;
    margin-top: 0.2rem;
    color: rgba(255, 255, 255, 0.8);
	text-align: left;
}
.status-item .parcours-message.is-highlight {
    display: inline-block;
    padding: 0.1rem 0.7rem;
    border-radius: 1.5625rem;
    border: var(--gdf-color-secondary) 0.125rem solid;
    color: var(--gdf-color-secondary);
    animation: gdfParcoursBlink 2.4s ease-in-out infinite;
	text-align: center;
	    margin-top: 0;
}
@keyframes gdfParcoursBlink {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.45; }
}
@media (prefers-reduced-motion: reduce) {
    .status-item .parcours-message.is-highlight { animation: none; }
}


/* ---------- golf-skeleton.css ---------- */
/* Golf des Flandres : chargements (squelettes) des zones asynchrones
   Zones : barre de statut, liste des événements, horaires d'accueil.
   À charger dans le <head> pour qu'il n'y ait pas de flash. */

/* Le squelette est dans le HTML envoyé par le serveur (visible dès le premier affichage).
   Légère temporisation à l'apparition : pas de clignotement si les données sont instantanées. */
.gl-sk-block { animation: gl-sk-appear .2s ease .12s both; }
@keyframes gl-sk-appear { from { opacity: 0; } to { opacity: 1; } }

/* Barre de statut du hero : css/live.css la masque tant qu'elle n'est pas .is-live.
   Pendant le chargement (avant la première réponse de l'API), on l'affiche avec son squelette. */
html:not(.gdf-live-settled) .status-bar-inline:not(.is-live) {
    opacity: 1;
    visibility: visible;
    pointer-events: none;
    /* La barre (fond sombre) et son squelette apparaissent ENSEMBLE, en fondu : pas de rectangle noir vide */
    animation: gl-sk-appear .25s ease both;
}
.gl-sk-block[data-zone="status"] { animation: none; }
html:not(.gdf-live-settled) .status-bar-inline:not(.is-live) .status-grid,
html:not(.gdf-live-settled) .status-bar-inline:not(.is-live) .status-disclaimer {
    display: none;
}

/* Fin du chargement : on retire les squelettes liés à l'API de statut (barre et horaires).
   Échec ou pas de réponse : on n'affiche rien plutôt qu'une information fausse. */
.status-bar-inline.is-live .gl-sk-block,
html.gdf-live-settled .gl-sk-block[data-zone="status"],
html.gdf-live-settled .gl-sk-block[data-zone="hours"] { display: none !important; }

.gl-sk-block {
  box-sizing: border-box; width: 100%;
  display: flex; flex-direction: column; gap: 0.875rem; padding: 1rem;
  font-family: inherit; color: var(--gl-fg);
}
.gl-sk-block[data-tone="dark"]  { --gl-fg: rgba(255,255,255,.88); --gl-b: rgba(255,255,255,.12); --gl-s: rgba(255,255,255,.28); }
.gl-sk-block[data-tone="light"] { --gl-fg: rgba(60,45,10,.8);     --gl-b: rgba(0,0,0,.09);       --gl-s: rgba(0,0,0,.18); }

/* Formes qui scintillent */
.gl-sk {
  display: block; flex: none; border-radius: 0.375rem;
  background: linear-gradient(100deg, var(--gl-b) 30%, var(--gl-s) 50%, var(--gl-b) 70%);
  background-size: 300% 100%;
  animation: gl-sk-shimmer 1.5s linear infinite;
}
.gl-sk.round { border-radius: 50%; }

/* « Chargement en cours » avec rond qui tourne et points animés */
.gl-sk-label {
  display: flex; align-items: center; justify-content: center; gap: 0.625rem;
  font-size: var(--fs-2xs); line-height: 1; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
}
.gl-sk-spin {
  width: 0.875rem; height: 0.875rem; border-radius: 50%;
  border: 0.125rem solid currentColor; border-right-color: transparent;
  animation: gl-sk-rotate .8s linear infinite; opacity: .85;
}
.gl-sk-dots::after {
  content: ""; display: inline-block; width: 1.1em; text-align: left;
  animation: gl-sk-dots 1.4s steps(4, end) infinite;
}

.gl-sk-row  { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; }
.gl-sk-rows { display: flex; flex-direction: column; gap: 1.125rem; }
.gl-sk-cols { display: none; }
.gl-sk-item { display: flex; align-items: center; justify-content: center; gap: 0.75rem; }
.gl-sk-col  { display: flex; flex-direction: column; gap: 0.4375rem; }
.gl-sk-card {
  display: flex; flex-direction: column; justify-content: center; gap: 0.625rem;
  height: 5.75rem; box-sizing: border-box; padding: 1rem; border-radius: 0.75rem;
  background: rgba(255,255,255,.07);
}

/* Barre de statut : 5 colonnes sur bureau (même point de rupture que le thème) */
@media (min-width: 969px) {
  .gl-sk-block.gl-sk-status { padding: 0.125rem 0; gap: 0.875rem; }
  .gl-sk-block.gl-sk-status .gl-sk-rows { display: none; }
  .gl-sk-block.gl-sk-status .gl-sk-cols {
    display: grid; grid-template-columns: repeat(5, 1fr);
    max-width: 75rem; margin: 0 auto; width: 100%;
  }
}

@keyframes gl-sk-shimmer { from { background-position: 150% 0; } to { background-position: -150% 0; } }
@keyframes gl-sk-rotate  { to { transform: rotate(360deg); } }
@keyframes gl-sk-dots    { 0% { content: ""; } 25% { content: "."; } 50% { content: ".."; } 75%, 100% { content: "..."; } }

@media (prefers-reduced-motion: reduce) {
  .gl-sk, .gl-sk-spin, .gl-sk-dots::after { animation: none; }
  .gl-sk-dots::after { content: "..."; }
}

.status-bar-inline {
  --gdf-status-content-h: 4.3125rem; /* >= 1241px */
}

@media (max-width: 1240px) { .status-bar-inline { --gdf-status-content-h: 5.4375rem; } }
@media (max-width: 1130px) { .status-bar-inline { --gdf-status-content-h: 6.625rem; } }
@media (max-width: 1050px) { .status-bar-inline { --gdf-status-content-h: 7.375rem; } }
@media (max-width: 968px)  { .status-bar-inline { --gdf-status-content-h: 17.6875rem; } }

.status-bar-inline:not(.is-live) .gl-sk-status {
  position: relative;
  padding: 0;
  gap: 0;
  height: var(--gdf-status-content-h);
  overflow: hidden;
  justify-content: center;
}

.status-bar-inline:not(.is-live) .gl-sk-status .gl-sk-cols,
.status-bar-inline:not(.is-live) .gl-sk-status .gl-sk-rows {
  opacity: 0.6;
}

.status-bar-inline:not(.is-live) .gl-sk-status .gl-sk-label {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: radial-gradient(ellipse 13.75rem 2.5rem at center, rgba(0, 0, 0, 0.55) 0%, transparent 100%);
}



/* ==========================================================================
   PAGES LEGALES (modèle page-legal.php, voir inc/legal-pages.php)
   Design commun : chapeau, date de mise à jour, sommaire collant, colonne de lecture.
   ========================================================================== */

.gdf-legal {
    background: #ffffff;
    padding: 3.5rem 0 5rem;
}
.gdf-legal__inner {
    max-width: 75rem;
    margin: 0 auto;
    padding: 0 2rem;
}
.gdf-legal__header {
    grid-column: 2;
    grid-row: 1;
    max-width: 46rem;
    margin: 0 0 2.5rem;
}
.gdf-legal__lede {
    font-size: var(--fs-lg);
    line-height: 1.6;
    color: #3d4a45;
    margin: 0 0 1rem;
}
.gdf-legal__meta {
    display: inline-block;
    margin: 0;
    padding: 0.35rem 0.9rem;
    border-radius: 999px;
    background: #eef5f2;
    color: var(--gdf-color-primary);
    font-size: var(--fs-sm);
    font-weight: 500;
}

.gdf-legal__layout {
    display: grid;
    grid-template-columns: 17rem minmax(0, 1fr);
    column-gap: 3.5rem;
    row-gap: 0;
    align-items: start;
}
.gdf-legal__layout--single {
    grid-template-columns: minmax(0, 46rem);
}
.gdf-legal__layout--single .gdf-legal__header { grid-column: 1; }
.gdf-legal__layout > .gdf-legal__toc { grid-column: 1; grid-row: 1 / span 2; }
.gdf-legal__layout > .gdf-legal__article { grid-column: 2; grid-row: 2; }
.gdf-legal__layout--single > .gdf-legal__article { grid-column: 1; }

/* Sommaire */
.gdf-legal__toc {
    z-index: auto;
    backdrop-filter: none;
    transition: none;
    width: auto;
    position: sticky;
    top: 7rem;
    max-height: calc(100vh - 9rem);
    overflow-y: auto;
    padding: 1.25rem 1.5rem;
    background: #f4f7f6;
    border: 1px solid #dbe6e1;
    border-radius: 12px;
}
.gdf-legal__toc-title {
    margin: 0 0 0.75rem;
    font-size: var(--fs-xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #4a5a54;
}
.gdf-legal__toc ol {
    list-style: none;
    margin: 0;
    padding: 0;
}
.gdf-legal__toc li {
    margin: 0;
    padding: 0;
}
.gdf-legal__toc a {
    display: block;
    padding: 0.4rem 0;
    font-size: var(--fs-sm);
    line-height: 1.4;
    color: var(--gdf-color-primary);
    text-decoration: none;
}
.gdf-legal__toc a:hover,
.gdf-legal__toc a:focus-visible {
    text-decoration: underline;
}

/* Texte */
.gdf-legal__article {
    max-width: 46rem;
    min-width: 0;
    line-height: 1.8;
}
.gdf-legal__article > :first-child { margin-top: 0; }
.gdf-legal__article h2 {
    margin: 2.5rem 0 1rem;
    font-family: var(--gdf-font-display);
    font-size: var(--fs-xl);
    line-height: 1.25;
    color: var(--gdf-color-primary);
    scroll-margin-top: 7rem;
}
.gdf-legal__article h2:first-child { margin-top: 0; }
.gdf-legal__article h3 {
    margin: 2rem 0 0.5rem;
    font-size: var(--fs-lg);
    color: #1f2a26;
}
.gdf-legal__article p { margin: 0 0 1.25rem; }
.gdf-legal__article ul,
.gdf-legal__article ol {
    margin: 0 0 1.5rem;
    padding-left: 1.4rem;
}
.gdf-legal__article li { margin: 0 0 0.4rem; }
.gdf-legal__article li::marker { color: var(--gdf-color-primary); }
.gdf-legal__article a {
    color: var(--gdf-color-primary);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}
.gdf-legal__article hr,
.gdf-legal__article .wp-block-separator {
    border: 0;
    height: 1px;
    margin: 2rem 0 0;
    background: #e3ebe7;
}
.gdf-legal__article hr + h2 { margin-top: 2rem; }
.gdf-legal__article table {
    width: 100%;
    border-collapse: collapse;
}
.gdf-legal__article details {
    margin: 0 0 0.75rem;
    padding: 0.75rem 1rem;
    border: 1px solid #dbe6e1;
    border-radius: 8px;
}
.gdf-legal__article summary { cursor: pointer; }

@media (max-width: 960px) {
    .gdf-legal { padding: 2rem 0 3.5rem; }
    .gdf-legal__inner { padding: 0 1.25rem; }
    .gdf-legal__layout { grid-template-columns: minmax(0, 1fr); row-gap: 2rem; }
    .gdf-legal__layout > .gdf-legal__header,
    .gdf-legal__layout > .gdf-legal__toc,
    .gdf-legal__layout > .gdf-legal__article { grid-column: 1; grid-row: auto; }
    .gdf-legal__header { margin: 0; }
    .gdf-legal__toc { position: static; max-height: none; }
}

/* ---- Pages légales : tableaux de cookies ---- */
.gdf-legal__article .gdf-cookie-table { margin: 1rem 0 2rem; overflow-x: auto; }
.gdf-legal__article .gdf-cookie-table table { width: 100%; min-width: 34rem; border-collapse: collapse; font-size: 0.9rem; line-height: 1.5; border: 1px solid #dbe6e1; border-radius: 8px; }
.gdf-legal__article .gdf-cookie-table th { text-align: left; padding: 0.7rem 0.9rem; background: #eef4f1; color: var(--gdf-color-primary); font-weight: 600; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.04em; border-bottom: 1px solid #dbe6e1; }
.gdf-legal__article .gdf-cookie-table td { padding: 0.75rem 0.9rem; vertical-align: top; border-bottom: 1px solid #e8efec; background: #fff; }
.gdf-legal__article .gdf-cookie-table tr:last-child td { border-bottom: 0; }
.gdf-legal__article .gdf-cookie-table td:first-child { width: 31%; }
.gdf-legal__article .gdf-cookie-table td:nth-child(2) { width: 16%; }
.gdf-legal__article .gdf-cookie-table td:last-child { width: 15%; white-space: normal; color: #4a5a53; }
.gdf-legal__article .gdf-cookie-table code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.75rem; background: #f4f7f5; padding: 0.1rem 0.35rem; border-radius: 4px; overflow-wrap: break-word; word-break: normal; }

/* ---- Pages légales : gestionnaire de consentement Complianz ---- */
.gdf-legal__article .cmplz-manage-consent-container { margin: 1rem 0 2rem; }
.gdf-legal__article .cmplz-categories { display: grid; gap: 0.75rem; }
.gdf-legal__article .cmplz-category { border: 1px solid #dbe6e1; border-radius: 10px; background: #fff; overflow: hidden; }
.gdf-legal__article .cmplz-category-header { display: flex; align-items: center; gap: 1rem; padding: 0.9rem 1.1rem; }
.gdf-legal__article .cmplz-category-title { flex: 1; font-weight: 600; font-size: 1.05rem; color: #1b2b24; }
.gdf-legal__article .cmplz-always-active { display: inline-flex; align-items: center; gap: 0.6rem; font-size: 0.85rem; font-weight: 600; color: var(--gdf-color-primary); }
.gdf-legal__article .cmplz-banner-checkbox { position: relative; display: inline-flex; }
.gdf-legal__article .cmplz-banner-checkbox input { position: absolute; z-index: 2; inset: 0; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.gdf-legal__article .cmplz-banner-checkbox .cmplz-label { pointer-events: none; display: block; position: relative; width: 2.75rem; height: 1.5rem; border-radius: 999px; background: #c5d1cb; cursor: pointer; transition: background 0.2s; }
.gdf-legal__article .cmplz-banner-checkbox .cmplz-label::after { content: ""; position: absolute; top: 0.2rem; left: 0.2rem; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.25); transition: transform 0.2s; }
.gdf-legal__article .cmplz-banner-checkbox input:checked + .cmplz-label { background: var(--gdf-color-primary); }
.gdf-legal__article .cmplz-banner-checkbox input:checked + .cmplz-label::after { transform: translateX(1.25rem); }
.gdf-legal__article .cmplz-banner-checkbox input:disabled { cursor: default; }
.gdf-legal__article .cmplz-banner-checkbox input:disabled + .cmplz-label { opacity: 0.6; cursor: default; }
.gdf-legal__article .cmplz-banner-checkbox input:focus-visible + .cmplz-label { outline: 2px solid var(--gdf-color-primary); outline-offset: 2px; }
.gdf-legal__article .cmplz-category-toggle { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #4a5a53; cursor: pointer; }
.gdf-legal__article .cmplz-category-toggle:hover { background: #eef4f1; }
.gdf-legal__article .cmplz-category-toggle svg { width: 0.9rem; height: 0.9rem; fill: currentColor; transition: transform 0.2s; }
.gdf-legal__article .cmplz-category-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.gdf-legal__article .cmplz-description { padding: 0 1.1rem 1.1rem; font-size: 0.9rem; line-height: 1.6; color: #4a5a53; }
.gdf-legal__article .cmplz-description[hidden] { display: none; }
@media (max-width: 600px) {
    .gdf-legal__article .cmplz-category-header { flex-wrap: wrap; gap: 0.6rem; }
    .gdf-legal__article .cmplz-always-active { order: 3; flex-basis: 100%; }
}

.gdf-legal__article .cmplz-banner-checkbox .screen-reader-text { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }


/* ==========================================================================
   BANDEAU PARALLAX (accueil)
   Image fixe derrière le contenu qui défile (effet parallax en CSS pur).
   Désactivé sur tactile et si l'utilisateur réduit les animations.
   ========================================================================== */
.gdf-parallax {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 37.5rem;
    padding: 5rem 1.5rem;
    background-color: #1b2b24;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    text-align: center;
    color: #fff;
    overflow: hidden;
}
.gdf-parallax__veil {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 60% 55% at 50% 50%, rgba(0, 25, 15, 0.42) 0%, rgba(0, 25, 15, 0.18) 55%, rgba(0, 25, 15, 0) 100%);
}
.gdf-parallax__content {
    position: relative;
    z-index: 1;
    max-width: 46rem;
}
.gdf-parallax__sub {
    margin: 0 0 0.75rem;
    font-size: var(--fs-sm);
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #fff;
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.5);
}
.gdf-parallax__title {
    margin: 0 0 2rem;
    font-family: var(--gdf-font-display);
    font-size: var(--fs-4xl);
    line-height: 1.15;
    color: #fff;
    text-shadow: 0 2px 20px rgba(0, 0, 0, 0.55), 0 1px 3px rgba(0, 0, 0, 0.4);
}
@media (min-width: 1025px) and (hover: hover) and (prefers-reduced-motion: no-preference) {
    .gdf-parallax { background-attachment: fixed; }
}
@media (max-width: 768px) {
    .gdf-parallax { min-height: 26rem; padding: 3.5rem 1.25rem; }
    .gdf-parallax__title { font-size: var(--fs-2xl); }
}

/* Bandeau parallax dans le contenu d'une page (shortcode [gdf_parallax]) : pleine largeur */
.entry-content .gdf-parallax {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
    max-width: 100vw;
}



/* Page adhésion : questions fréquentes en deux colonnes (titre et contact à gauche, questions à droite) */
.gdf-faq-layout { display: flex; flex-wrap: nowrap; gap: 3.5rem; align-items: flex-start; margin: 4rem 0 2rem; }
.gdf-faq-layout > .wp-block-column { min-width: 0; }
.gdf-faq-layout > .wp-block-column:first-child { position: sticky; top: 7rem; }
.gdf-faq-layout h2 { margin-top: 0; }
.gdf-faq-layout .gdf-faq { max-width: none; margin: 0; }
.gdf-faq-layout .gdf-faq .wp-block-details { margin: 0 0 1rem; padding: 1.4rem 1.6rem; border-radius: 14px; }
.gdf-faq-layout .gdf-faq .wp-block-details summary { font-size: 1.2rem; line-height: 1.4; }
.gdf-faq-layout .gdf-faq .wp-block-details p { font-size: 1.1rem; line-height: 1.75; margin-top: 1rem; }
.gdf-faq-contact { margin-top: 2rem; }
.gdf-faq-contact h3 { margin-top: 0; }
.gdf-faq-contact p { font-size: 1.1rem; line-height: 1.6; margin: 0 0 1rem; }
.gdf-faq-contact a { font-weight: 600; }
@media (max-width: 48.75rem) {
    .gdf-faq-layout { flex-direction: column; gap: 2rem; }
    .gdf-faq-layout > .wp-block-column { flex-basis: 100% !important; width: 100%; }
    .gdf-faq-layout > .wp-block-column:first-child { position: static; }
}

/* Image pleine largeur d'un article ou d'une page : classe CSS additionnelle « fullpage » posée dans l'éditeur (donc absente du code du thème). */
.wp-block-image.fullpage {
  width: calc(100vw * var(--gdf-s));
  max-width: calc(100vw * var(--gdf-s));
  margin-left: calc(50% - (50vw * var(--gdf-s)));
  margin-right: calc(50% - (50vw * var(--gdf-s)));
  position: relative;
}
.wp-block-image.fullpage img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}
@media (min-width: 969px) {
  .wp-block-image.fullpage {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }
}
