/* ==========================================================================
   MESSAGES DE LA HOME (css/home-messages.css)
   Charge sur la page d'accueil, apres main.css / desktop.css / live.css.

   Un message = un bloc ci-dessous, introduit par un commentaire "===== Message : ... =====".
   Pour ajouter ou modifier un message : coller son CSS ici (en px ou en rem, peu importe, voir plus bas).
   Pour en retirer un : supprimer son bloc ici ET vider son champ CSS dans l'admin (Golf > messages).

   Lien avec l'admin : le CSS saisi dans l'admin (champ CSS d'un message) continue de fonctionner.
   Si son contenu est deja present dans ce fichier (a la mise en forme pres, une fois converti
   en rem et ramene a l'echelle typographique), le thème l'ignore (inc/clubhouse-status.php,
   fonction golf_render_messages_css). Si vous modifiez le CSS dans l'admin, il s'applique a nouveau
   et passe apres ce fichier : reportez alors la modification ici.

   Regles de ce fichier (comme les autres CSS du thème) :
   - tailles en rem (1rem = 16px), typographie avec les variables --fs-* et --gdf-font-display / --gdf-font-body
   - les @media restent en px (ils ne suivent pas l'echelle du site)
   - un message n'utilise que des selecteurs prefixes par sa classe .golf-message--<suffixe>
   ========================================================================== */

/* ===== Message : Scramble d'Halloween, style carte "scramble halloween" du calendrier (suffixe CSS : halloween) ===== */

[data-gdf-live="messages"] { container-type: inline-size; }

/* ---------- Carte ---------- */
.golf-message-banner.golf-message--halloween {
  --gm-accent: #ffe0a8;
  --gm-bg: #b8400a;
  --gm-line: transparent;
  --gm-text: #fff;
  position: relative;
  overflow: hidden;
  display: block;
  padding: 2.125rem 2.25rem;
  border: 0;
  border-radius: 1rem;
  background:
    /* citrouille en filigrane */
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 130 120'%3E%3Cg%3E%3Cellipse cx='65' cy='68' rx='28' ry='38' fill='%232a0e02' fill-opacity='.16'/%3E%3Cellipse cx='40' cy='68' rx='24' ry='36' fill='%232a0e02' fill-opacity='.15'/%3E%3Cellipse cx='90' cy='68' rx='24' ry='36' fill='%232a0e02' fill-opacity='.15'/%3E%3Cpath d='M60 32 C58 20 62 12 70 8 L76 12 C70 16 68 24 70 32 Z' fill='%232a0e02' fill-opacity='.18'/%3E%3Cpath d='M38 60 L54 60 L46 46 Z M76 60 L92 60 L84 46 Z' fill='%23ffc15e' fill-opacity='.22'/%3E%3Cpath d='M36 80 L46 74 L54 84 L65 74 L76 84 L84 74 L94 80 C88 98 76 104 65 104 C54 104 42 98 36 80 Z' fill='%23ffc15e' fill-opacity='.22'/%3E%3C/g%3E%3C/svg%3E") calc(100% - 0.375rem) calc(100% + 3.25rem) / 16.875rem auto no-repeat,
    radial-gradient(70% 60% at 0% 0%, rgba(255,176,64,.35) 0%, rgba(0,0,0,0) 70%),
    linear-gradient(135deg, #e5640c 0%, #b8400a 52%, #6b2308 100%);
  box-shadow: 0 1.125rem 2.5rem -1.625rem rgba(214,90,10,.75);
  /* la citrouille flotte */
  animation: gdfHalloweenFloat 5s ease-in-out infinite;
}

/* ---------- Orage lointain : deux couches de lueurs sur tout le fond ---------- */
/* Réinitialisation complète (supprime la pastille d'origine du bandeau) */
.golf-message-banner.golf-message--halloween::before,
.golf-message-banner.golf-message--halloween::after {
  content: "";
  display: block;
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  width: auto; height: auto;
  margin: 0; padding: 0;
  border: 0; border-radius: inherit;
  box-shadow: none;
  transform: none;
  z-index: 0;
  pointer-events: none;
  opacity: 0;
}
/* Couche A : grand voile lumineux venant du haut à droite */
.golf-message-banner.golf-message--halloween::before {
  background:
    radial-gradient(90% 120% at 90% -10%, rgba(255,244,214,.75) 0%, rgba(255,214,150,.35) 45%, rgba(255,190,110,0) 80%),
    rgba(255,224,170,.22);
  animation: gdfHalloweenStormA 7s ease-out infinite;
}
/* Couche B : autre nuage, côté gauche, rythme différent */
.golf-message-banner.golf-message--halloween::after {
  background:
    radial-gradient(80% 110% at 10% 0%, rgba(255,236,200,.7) 0%, rgba(255,200,130,.3) 50%, rgba(255,190,110,0) 85%),
    rgba(255,214,150,.18);
  animation: gdfHalloweenStormB 11s ease-out 2s infinite;
}

/* ---------- Contenu ---------- */
.golf-message--halloween * {
  position: relative;
  z-index: 1;
  max-width: 35rem; margin: 0 0 0.5rem;
  text-align: left; color: #fff;
}
.golf-message--halloween :last-child { margin-bottom: 0; }

/* Pastille */
.golf-message--halloween .tv-kicker {
  display: inline-flex;
  align-items: center;
  padding: 0.3125rem 0.8125rem;
  border-radius: 62.4375rem;
  background: rgba(40,12,0,.35);
  color: #fff;
  font-size: var(--fs-2xs);
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
  line-height: 0.875rem;
  margin-bottom: 0.75rem;
  animation: gdfHalloweenRise .7s cubic-bezier(.2,.7,.2,1) both;
}

/* Titre */
.golf-message--halloween .tv-title {
  display: block;
  font-family: var(--gdf-font-display, "Playfair Display", serif);
  font-size: clamp(1.375rem, 2.6vw, 1.625rem);
  font-weight: 700; line-height: 1.15; letter-spacing: -.01em;
  color: #fff;
  text-shadow: 0 1px 0.625rem rgba(60,20,0,.35);
  animation: gdfHalloweenRise .7s .12s cubic-bezier(.2,.7,.2,1) both;
}
.golf-message--halloween .tv-title::after {
  content: ""; display: block; width: 2.25rem; height: 1px; margin-top: 0.75rem; background: #ffe0a8;
  transform-origin: left center;
  animation: gdfHalloweenLine 1s .5s ease-out both;
}

/* Bloc d'infos */
.golf-message--halloween .tv-info {
  font-size: clamp(0.875rem, 1.5vw, 0.9375rem);
  font-weight: 400;
  line-height: 1.55;
  color: rgba(255,255,255,.95);
  animation: gdfHalloweenRise .7s .24s cubic-bezier(.2,.7,.2,1) both;
}
.golf-message--halloween .tv-info * { margin: 0; max-width: none; color: inherit; }

/* Format "Compétition en cours" : petit libellé crème clignotant */
.golf-message--halloween .tv-info strong {
  display: inline-block;
  margin-bottom: 0.25rem;
  color: #ffe0a8;
  font-family: inherit; font-size: var(--fs-2xs); font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase;
  animation: gdfHalloweenBlink 1.6s ease-in-out infinite;
}

/* Date et format */
.golf-message--halloween .tv-info .tv-date {
  font-size: var(--fs-sm); font-weight: 700;
  letter-spacing: .06em; text-transform: uppercase;
  color: #fff;
  margin-bottom: 0.125rem;
}
.golf-message--halloween .tv-info .tv-format {
  font-size: var(--fs-2xs); font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: #ffe0a8;
  margin-bottom: 1rem;
}

/* Bouton : cartouche crème plein, qui pulse */
.golf-message-banner.golf-message--halloween .tv-info a.tv-btn {
  display: inline-block;
  padding: 0.5625rem 1.25rem;
  border-radius: 62.4375rem;
  background: #ffe0a8;
  color: #3c1400;
  text-decoration: none;
  font-family: inherit; font-size: var(--fs-2xs); font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  transition: background .15s ease, transform .15s ease;
  animation: gdfHalloweenPulse 2.2s ease-in-out infinite;
}
.golf-message-banner.golf-message--halloween .tv-info a.tv-btn:hover,
.golf-message-banner.golf-message--halloween .tv-info a.tv-btn:focus-visible { background: #fff0cf; }
.golf-message-banner.golf-message--halloween .tv-info a.tv-btn:hover { animation: none; transform: translateY(-1px); }
.golf-message-banner.golf-message--halloween .tv-info a.tv-btn:focus-visible { outline: 0.125rem solid #fff; outline-offset: 0.125rem; }

/* ---------- Animations ---------- */
@keyframes gdfHalloweenFloat {
  0%, 100% { background-position: calc(100% - 0.375rem) calc(100% + 3.25rem), 0% 0%, 0% 0%; }
  50%      { background-position: calc(100% - 0.375rem) calc(100% + 2.5rem), 0% 0%, 0% 0%; }
}
/* Lueurs d'orage : montée brusque, retombée lente, plusieurs sursauts */
@keyframes gdfHalloweenStormA {
  0%, 58%   { opacity: 0; }
  60%       { opacity: .55; }
  63%       { opacity: .08; }
  65%       { opacity: .8; }
  70%       { opacity: .15; }
  72%       { opacity: .4; }
  80%, 100% { opacity: 0; }
}
@keyframes gdfHalloweenStormB {
  0%, 30%   { opacity: 0; }
  32%       { opacity: .6; }
  36%       { opacity: .1; }
  38%       { opacity: .7; }
  46%       { opacity: 0; }
  62%       { opacity: 0; }
  63%       { opacity: .35; }
  70%, 100% { opacity: 0; }
}
@keyframes gdfHalloweenRise {
  from { opacity: 0; transform: translateY(0.875rem); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes gdfHalloweenLine {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}
@keyframes gdfHalloweenPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255,224,168,.55); }
  50%      { box-shadow: 0 0 0 0.5rem rgba(255,224,168,0); }
}
@keyframes gdfHalloweenBlink {
  0%, 100% { opacity: 1; }
  50%      { opacity: .35; }
}

/* ---------- Accessibilité : on coupe les animations si demandé ---------- */
@media (prefers-reduced-motion: reduce) {
  .golf-message-banner.golf-message--halloween,
  .golf-message-banner.golf-message--halloween::before,
  .golf-message-banner.golf-message--halloween::after,
  .golf-message--halloween .tv-kicker,
  .golf-message--halloween .tv-title,
  .golf-message--halloween .tv-title::after,
  .golf-message--halloween .tv-info,
  .golf-message--halloween .tv-info strong,
  .golf-message-banner.golf-message--halloween .tv-info a.tv-btn { animation: none; }
}

/* ---------- Mobile ---------- */
@media (max-width: 720px) {
  .golf-message-banner.golf-message--halloween { padding: 1.375rem 1.25rem; background-size: 12.5rem auto, auto, auto; }
  .golf-message-banner.golf-message--halloween .tv-info a.tv-btn {
    display: block; text-align: center; padding: 0.5rem 1.25rem; font-size: var(--fs-2xs);
  }
}

/* ---------- Bandeau pleine largeur (un seul message) : deux colonnes ---------- */
@container (min-width: 45rem) {
  .golf-message-banner.golf-message--halloween:only-child {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 3rem;
    align-items: center;
    padding: 2rem 3rem;
  }
  .golf-message--halloween:only-child * { max-width: none; }

  .golf-message--halloween:only-child .tv-kicker { grid-column: 1; grid-row: 1; align-self: end; }
  .golf-message--halloween:only-child .tv-title  { grid-column: 1; grid-row: 2; align-self: start; font-size: clamp(1.75rem, 3vw, 2.375rem); }

  .golf-message--halloween:only-child .tv-info {
    grid-column: 2; grid-row: 1 / span 2; align-self: center;
    padding-left: 3rem; border-left: 1px solid rgba(255,224,168,.7);
    font-size: clamp(0.9375rem, 1.4vw, 1rem);
  }
}
/* ==========================================================
   Beaujolais : carte du calendrier ET message de la home
   (piste I, vigne au trait, fond bordeaux et orange)
   100% CSS : aucune modification du HTML necessaire.
   A coller a la fin de calendar.css (ou main.css si les deux
   fichiers ne sont pas charges sur les memes pages) puis regenerer les .min
   ========================================================== */

/* ---------- Base commune : carte du calendrier + message de la home ---------- */
.calendar-photo-event.beaujolais,
.golf-message-banner.golf-message--beaujolais {
  --bj-art: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 480 232'><style>.d{stroke-dasharray:1;stroke-dashoffset:1;animation:d 3s ease-out .1s forwards}.s{animation:s 5.5s ease-in-out infinite;transform-box:fill-box;transform-origin:center bottom}.t{animation:s 7s ease-in-out infinite;transform-box:fill-box;transform-origin:center top}@keyframes d{to{stroke-dashoffset:0}}@keyframes s{0%25,100%25{transform:rotate(-2.5deg)}50%25{transform:rotate(2.5deg)}}@media(prefers-reduced-motion:reduce){*{animation:none!important}.d{stroke-dashoffset:0!important}}</style><defs><path id='l' pathLength='1' d='M50 100C48 85 46 78 40 74C30 76 18 72 8 62C16 58 20 52 18 44C12 40 6 32 6 26C16 26 24 28 30 24C28 16 28 8 32 0C40 6 46 14 50 22C54 14 60 6 68 0C72 8 72 16 70 24C76 28 84 26 94 26C94 32 88 40 82 44C80 52 84 58 92 62C82 72 70 76 60 74C54 78 52 85 50 100Z'/><path id='v' pathLength='1' d='M50 98V26M50 82L14 60M50 82L86 60M50 64L16 30M50 64L84 30'/></defs><g fill='none' stroke='%23d8c08a' stroke-width='1.3' stroke-linejoin='round'><path class='d' pathLength='1' d='M495 -6C470 4 440 12 412 34C402 42 396 50 394 60'/><path class='d' pathLength='1' d='M478 122C462 128 458 148 472 150C482 151 484 140 476 138'/><g transform='translate(454 66) rotate(40) scale(.8) translate(-50 -100)'><g class='s'><use href='%23l' class='d' fill='rgba(242,140,60,.1)'/><use href='%23v' class='d' opacity='.55'/></g></g><g transform='translate(340 176) rotate(-62) scale(.5) translate(-50 -100)'><g class='s' style='animation-delay:1s'><use href='%23l' class='d' fill='rgba(242,140,60,.1)'/><use href='%23v' class='d' opacity='.55'/></g></g><g class='t'><path class='d' pathLength='1' fill='rgba(255,255,255,.04)' d='M351.2 71a8.8 8.8 0 1 0 17.6 0a8.8 8.8 0 1 0-17.6 0M374.2 73a8.8 8.8 0 1 0 17.6 0a8.8 8.8 0 1 0-17.6 0M392.2 72a8.8 8.8 0 1 0 17.6 0a8.8 8.8 0 1 0-17.6 0M415.2 71a8.8 8.8 0 1 0 17.6 0a8.8 8.8 0 1 0-17.6 0M343.2 89a8.8 8.8 0 1 0 17.6 0a8.8 8.8 0 1 0-17.6 0M361.2 88a8.8 8.8 0 1 0 17.6 0a8.8 8.8 0 1 0-17.6 0M384.2 90a8.8 8.8 0 1 0 17.6 0a8.8 8.8 0 1 0-17.6 0M402.2 89a8.8 8.8 0 1 0 17.6 0a8.8 8.8 0 1 0-17.6 0M425.2 88a8.8 8.8 0 1 0 17.6 0a8.8 8.8 0 1 0-17.6 0M355.2 107a8.8 8.8 0 1 0 17.6 0a8.8 8.8 0 1 0-17.6 0M373.2 106a8.8 8.8 0 1 0 17.6 0a8.8 8.8 0 1 0-17.6 0M391.2 105a8.8 8.8 0 1 0 17.6 0a8.8 8.8 0 1 0-17.6 0M414.2 107a8.8 8.8 0 1 0 17.6 0a8.8 8.8 0 1 0-17.6 0M362.2 122a8.8 8.8 0 1 0 17.6 0a8.8 8.8 0 1 0-17.6 0M385.2 124a8.8 8.8 0 1 0 17.6 0a8.8 8.8 0 1 0-17.6 0M403.2 123a8.8 8.8 0 1 0 17.6 0a8.8 8.8 0 1 0-17.6 0M374.2 140a8.8 8.8 0 1 0 17.6 0a8.8 8.8 0 1 0-17.6 0M392.2 139a8.8 8.8 0 1 0 17.6 0a8.8 8.8 0 1 0-17.6 0M381.2 158a8.8 8.8 0 1 0 17.6 0a8.8 8.8 0 1 0-17.6 0'/><path opacity='.7' stroke-width='1' d='M355.4 69.5A5.5 5.5 0 0 1 359 65.4M378.4 71.5A5.5 5.5 0 0 1 382 67.4M396.4 70.5A5.5 5.5 0 0 1 400 66.4M419.4 69.5A5.5 5.5 0 0 1 423 65.4M347.4 87.5A5.5 5.5 0 0 1 351 83.4M365.4 86.5A5.5 5.5 0 0 1 369 82.4M388.4 88.5A5.5 5.5 0 0 1 392 84.4M406.4 87.5A5.5 5.5 0 0 1 410 83.4M429.4 86.5A5.5 5.5 0 0 1 433 82.4M359.4 105.5A5.5 5.5 0 0 1 363 101.4M377.4 104.5A5.5 5.5 0 0 1 381 100.4M395.4 103.5A5.5 5.5 0 0 1 399 99.4M418.4 105.5A5.5 5.5 0 0 1 422 101.4M366.4 120.5A5.5 5.5 0 0 1 370 116.4M389.4 122.5A5.5 5.5 0 0 1 393 118.4M407.4 121.5A5.5 5.5 0 0 1 411 117.4M378.4 138.5A5.5 5.5 0 0 1 382 134.4M396.4 137.5A5.5 5.5 0 0 1 400 133.4M385.4 156.5A5.5 5.5 0 0 1 389 152.4'/></g></g></svg>");
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: linear-gradient(135deg, #2e0a17 0%, #4b1025 50%, #6b1a2c 100%) !important;
  box-shadow: 0 14px 34px rgba(90, 15, 30, .5) !important;
}

/* Calque 1 : lueurs bordeaux et orange qui derivent lentement */
.calendar-photo-event.beaujolais::before,
.golf-message-banner.golf-message--beaujolais::before {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  inset: -20% !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  z-index: 0 !important;
  pointer-events: none;
  opacity: 1 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-size: 0 !important;
  background:
    radial-gradient(38% 55% at 80% 28%, rgba(244, 128, 40, .55), transparent 70%),
    radial-gradient(45% 60% at 98% 95%, rgba(176, 34, 64, .75), transparent 70%),
    radial-gradient(40% 55% at 12% 108%, rgba(226, 98, 34, .32), transparent 70%),
    radial-gradient(35% 50% at 45% 0%, rgba(140, 24, 58, .5), transparent 70%) !important;
  animation: bjglow 14s ease-in-out infinite alternate !important;
}

/* Calque 2 : vigne au trait dore (SVG anime integre, defini une seule fois dans --bj-art) */
.calendar-photo-event.beaujolais::after,
.golf-message-banner.golf-message--beaujolais::after {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  z-index: 1 !important;
  pointer-events: none;
  opacity: 1 !important;
  border: 0 !important;
  transform: none !important;
  animation: none !important;
  background: var(--bj-art) no-repeat right center / auto 100% !important;
}

/* ---------- Carte du calendrier ---------- */
.calendar-photo-event.beaujolais {
  flex: none;
  min-height: auto;
  transition: transform .3s ease;
}
.calendar-photo-event.beaujolais:hover {
  transform: translateY(-3px);
}
.calendar-photo-event.beaujolais > *:not(.calendar-event-icons) {
  position: relative;
  z-index: 2;
}
.calendar-photo-event.beaujolais .calendar-event-icons {
  z-index: 2;
}
.calendar-photo-event.beaujolais .calendar-photo-event-label {
  background: rgba(216, 192, 138, .14) !important;
  border: 1px solid rgba(216, 192, 138, .6) !important;
  color: #f6e9c4 !important;
}
.calendar-photo-event.beaujolais .calendar-photo-event-label::before {
  background: #f0d58f !important;
}
.calendar-photo-event.beaujolais .calendar-photo-event-kicker {
  color: #f0c98a !important;
}
.calendar-photo-event.beaujolais .calendar-photo-event-title {
  text-shadow: 0 2px 12px rgba(0, 0, 0, .4);
}
.calendar-photo-event.beaujolais .calendar-photo-event-cta {
  background: #d8c08a !important;
  border-color: #d8c08a !important;
  color: #3d0b19 !important;
}

/* ---------- Message de la home (meme structure que la carte "horaires") ---------- */
.golf-message-banner.golf-message--beaujolais {
  display: block !important;
  padding: 2.125rem 2.25rem 1.875rem;
  border-radius: .875rem;
}
.golf-message-banner.golf-message--beaujolais > * {
  position: relative;
  z-index: 2;
  grid-column: auto;
  max-width: none;
  margin: 0 0 .5rem;
  text-align: left;
  color: #fff;
}
.golf-message-banner.golf-message--beaujolais > :last-child {
  margin-bottom: 0;
}
.golf-message-banner.golf-message--beaujolais .tv-kicker {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .35rem .85rem;
  margin-bottom: 1rem;
  border-radius: 999px;
  background: rgba(216, 192, 138, .14);
  border: 1px solid rgba(216, 192, 138, .6);
  color: #f6e9c4;
  font-family: Roboto, system-ui, sans-serif;
  font-size: .75rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.golf-message-banner.golf-message--beaujolais .tv-kicker::before {
  content: '';
  width: .4rem;
  height: .4rem;
  border-radius: 50%;
  background: #f0d58f;
}
.golf-message-banner.golf-message--beaujolais .tv-title {
  position: relative;
  margin: 0 0 1rem;
  padding-bottom: 1rem;
  color: #fff;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.15;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .4);
}
.golf-message-banner.golf-message--beaujolais .tv-title::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 2.5rem;
  height: 2px;
  background: #d8c08a;
}
.golf-message-banner.golf-message--beaujolais .tv-info * {
  text-align: left;
}
.golf-message-banner.golf-message--beaujolais .tv-date {
  margin: 0 0 .35rem;
  color: #f0c98a;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.2rem;
  font-weight: 600;
}
.golf-message-banner.golf-message--beaujolais .tv-format {
  margin: 0 0 1.1rem;
  color: rgba(255, 255, 255, .88);
  font-family: Roboto, system-ui, sans-serif;
  font-size: .95rem;
}
.golf-message-banner.golf-message--beaujolais .tv-info p {
  margin: 0;
}
.golf-message-banner.golf-message--beaujolais .tv-btn {
  display: inline-block;
  padding: .6rem 1.4rem;
  border-radius: 999px;
  background: #d8c08a !important;
  border: 1px solid #d8c08a !important;
  color: #3d0b19 !important;
  font-family: Roboto, system-ui, sans-serif;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  text-decoration: none !important;
}

@media (max-width: 720px) {
  .golf-message-banner.golf-message--beaujolais {
    padding: 1.5rem 1.25rem;
  }
  .golf-message-banner.golf-message--beaujolais .tv-title {
    font-size: 1.4rem;
  }
  /* sur petit ecran, l'illustration passe derriere le texte : on l'adoucit */
  .golf-message-banner.golf-message--beaujolais::after {
    opacity: .55 !important;
    background-size: auto 80% !important;
    background-position: right 2% bottom !important;
  }
}

/* ---------- Animations ---------- */
@keyframes bjglow {
  from { transform: translate(0, 0) scale(1); }
  to   { transform: translate(-3%, 3%) scale(1.08); }
}
@media (prefers-reduced-motion: reduce) {
  .calendar-photo-event.beaujolais::before,
  .golf-message-banner.golf-message--beaujolais::before { animation: none !important; }
}


.golf-message-banner.golf-message--ffgolf {
  --gm-accent: #fff;
  --gm-bg: #25559f;
  --gm-line: #25559f;
  --gm-text: #fff;
  position: relative;
  overflow: hidden;
  display: block;
  padding: 26px 28px;
  border: 0;
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(255,255,255,.14) 0%, transparent 55%),
    #25559f;
  box-shadow: 0 22px 44px -26px rgba(37,85,159,.75);
  text-align: left;
}
.golf-message-banner.golf-message--ffgolf::before {
  content: "2027";
  position: absolute; right: -6px; bottom: -22px;
  width: auto; height: auto; border-radius: 0; background: none;
  font-family: "Playfair Display", serif; font-size: 112px; font-weight: 700; line-height: 1;
  color: rgba(255,255,255,.09);
  pointer-events: none;
}
.golf-message--ffgolf &gt; * { position: relative; text-align: left; color: #fff; margin: 0 0 10px; }
.golf-message--ffgolf &gt; *:last-child { margin-bottom: 0; }
 
/* sur-titre */
.golf-message--ffgolf .gm-kicker {
      display: table;
    padding: 4px 12px;
    border: 1px solid rgba(255, 255, 255, .55);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    margin: 0 auto 4px;
}
/* titre façon affiche FFGolf */
.golf-message--ffgolf .gm-title {
  font-family: "Roboto", sans-serif;
  font-size: clamp(22px, 2.6vw, 30px); font-weight: 900; line-height: 1.12;
  text-transform: uppercase; letter-spacing: .01em;
}
.golf-message--ffgolf .gm-sub { font-size: 14px; opacity: .9; }
.golf-message--ffgolf strong { color: #fff; font-family: inherit; font-size: inherit; font-weight: 800; }
 
/* bouton */
.golf-message--ffgolf .gm-btn,
.golf-message--ffgolf a.gm-btn {
  display: inline-block; margin-top: 4px;
  padding: 11px 22px; border-radius: 999px;
  background: #fff; color: #25559f; text-decoration: none;
  font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
  transition: transform .15s ease, box-shadow .15s ease;
}
.golf-message--ffgolf .gm-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 18px -8px rgba(0,0,0,.45); }
 
@media (max-width: 720px) {
  .golf-message-banner.golf-message--ffgolf { padding: 22px 20px; }
  .golf-message-banner.golf-message--ffgolf::before { font-size: 84px; bottom: -14px; }
}

/* ===== Message : Trophée de la Ville de Marcq-en-Barœul (suffixe CSS : marcq) ===== */

/* Le conteneur des messages sert de référence pour les deux colonnes (selon sa largeur réelle) */
[data-gdf-live="messages"] { container-type: inline-size; }

/* Carte : voile gris dégradé + logo en filigrane, le tout en couches de fond (pas de position absolue) */
.golf-message-banner.golf-message--marcq {
  --gm-accent: #00563f;
  --gm-bg: #fff;
  --gm-line: #e3e6e8;
  --gm-text: #1b2a24;
  position: relative;
  overflow: hidden;
  display: block;
  padding: 34px 40px;
  border: 1px solid #e3e6e8;
  border-radius: 18px;
  background:
    linear-gradient(115deg, rgba(255,255,255,.9) 0%, rgba(243,244,245,.86) 45%, rgba(214,219,223,.88) 100%),
    url("/wp-content/uploads/2026/10/marcq_icon.jpg") right -30px center / auto 100% no-repeat,
    #fff;
  box-shadow: 0 24px 48px -30px rgba(20,35,30,.45);
}
.golf-message-banner.golf-message--marcq::before { display: none; content: none; }
.golf-message--marcq .tv-logo { display: none; }  /* ancien élément, remplacé par le fond */

/* Contenu */
.golf-message--marcq  * {
  position: relative;
  max-width: 560px; margin: 0 0 10px;
  text-align: left; color: #1b2a24;
}
.golf-message--marcq  :last-child { margin-bottom: 0; }

.golf-message--marcq .tv-kicker {
  font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: #00563f;
}
.golf-message--marcq .tv-title {
  font-family: "Playfair Display", serif;
  font-size: clamp(24px, 3vw, 34px); font-weight: 700; line-height: 1.05; letter-spacing: -.01em;
  color: #14211c;
}
.golf-message--marcq .tv-title::after {
  content: ""; display: block; width: 56px; height: 3px; margin-top: 14px; background: #b8935f;
}

/* Ligne d'infos : lisible sur le filigrane */
.golf-message-banner.golf-message--marcq .tv-info {
  font-size: clamp(15px, 1.6vw, 17px);
  font-weight: 600;
  line-height: 1.5;
  color: #0f1b16;
  text-shadow: 0 0 10px rgba(255,255,255,.95), 0 0 2px rgba(255,255,255,.9);
}

/* "Priorité à la compétition" : doré, majuscules, clignotement doux */
.golf-message-banner.golf-message--marcq .tv-info strong {
    display: inline-block;
    margin-bottom: 8px;
    padding: 4px 14px;
    border-radius: 999px;
    background: transparent;
    color: #c1a875;
    border: 2px solid #c1a875;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    animation: gdfPresidentBlink 1.4s ease-in-out infinite;
}
@keyframes gdfMarcqBlink {
  0%, 100% { opacity: 1; }
  50%      { opacity: .35; }
}
@media (prefers-reduced-motion: reduce) {
  .golf-message--marcq .tv-info strong { animation: none; }
}

/* Bouton optionnel */
.golf-message--marcq .tv-btn,
.golf-message--marcq a.tv-btn {
  display: inline-block; margin-top: 8px; padding: 12px 26px; border-radius: 999px;
  background: #14211c; color: #fff; text-decoration: none;
  font-size: 12.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  transition: transform .15s ease, background .15s ease;
}
.golf-message--marcq .tv-btn:hover { background: #00563f; transform: translateY(-1px); }

/* ===== Mobile ===== */
@media (max-width: 720px) {
  .golf-message-banner.golf-message--marcq {
    padding: 26px 22px;
    background-position: 0 0, right -40px center, 0 0;
    background-size: auto, auto 100%, auto;
  }
}

/* ===== Bandeau pleine largeur (un seul message, conteneur assez large) : deux colonnes ===== */
@container (min-width: 720px) {
  .golf-message-banner.golf-message--marcq:only-child {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 48px;
    align-items: center;
    padding: 40px 56px;
  }
  .golf-message--marcq:only-child  * { max-width: none; }

  /* colonne gauche : sur-titre + titre */
  .golf-message--marcq:only-child .tv-kicker { grid-column: 1; grid-row: 1; align-self: end; }
  .golf-message--marcq:only-child .tv-title  { grid-column: 1; grid-row: 2; align-self: start; font-size: clamp(32px, 3.4vw, 46px); }

  /* colonne droite : infos, séparées par un filet doré */
  .golf-message-banner.golf-message--marcq:only-child .tv-info {
    grid-column: 2; grid-row: 1 / span 2; align-self: center;
    padding-left: 48px; border-left: 2px solid #b8935f;
    font-size: clamp(17px, 1.5vw, 18px);
  }
  .golf-message-banner.golf-message--marcq:only-child .tv-info strong { font-size: 14px; margin-bottom: 12px; }
}

/* ===== Message : Coupe du Président, fond image verte (suffixe CSS : president) ===== */
.golf-message-banner.golf-message--president {
  --gm-accent: #b8935f;
  --gm-bg: #00563f;
  --gm-line: transparent;
  --gm-text: #fff;
  position: relative;
  overflow: hidden;
  display: block;
  padding: 34px 40px;
  border: 0;
  border-radius: 16px;
  /* voile vert foncé par-dessus l'image : garantit un texte blanc lisible (règle l'opacité avec les derniers chiffres) */
  background:
    linear-gradient(90deg, rgba(0,40,28,.62) 0%, rgba(0,40,28,.45) 100%),
    #00563f url("https://www.golfdesflandres.fr/wp-content/uploads/2026/10/green_back.jpg") center / cover no-repeat;
  box-shadow: 0 18px 40px -28px rgba(0,40,28,.7);
}
.golf-message-banner.golf-message--president::before { display: none; }

.golf-message--president  * { position: relative; max-width: 560px; margin: 0 0 10px; text-align: left; color: #fff; }
.golf-message--president  *:last-child { margin-bottom: 0; }

.golf-message--president .tv-kicker {
  font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: #c1a875;
}
.golf-message--president .tv-title {
  font-family: var(--gdf-font-display, "Playfair Display", serif);
  font-size: clamp(24px, 3vw, 34px); font-weight: 700; line-height: 1.05; letter-spacing: -.01em; color: #fff;
}
.golf-message--president .tv-title::after {
  content: ""; display: block; width: 56px; height: 3px; margin-top: 14px; background: #b8935f;
}
.golf-message--president .tv-info {
  font-size: clamp(15px, 1.6vw, 17px); font-weight: 500; line-height: 1.5; color: #fff;
}
/* "Priorité à la compétition" : pastille cerclée dorée, clignotement doux */
.golf-message--president .tv-info strong {
  display: inline-block; margin-bottom: 8px; padding: 4px 14px; border-radius: 999px;
  background: transparent; color: #c1a875; border: 2px solid #c1a875;
  font-family: inherit; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  animation: gdfPresidentBlink 1.4s ease-in-out infinite;
}
@keyframes gdfPresidentBlink {
  0%, 100% { opacity: 1; }
  50%      { opacity: .35; }
}
@media (prefers-reduced-motion: reduce) {
  .golf-message--president .tv-info strong { animation: none; }
}

@media (max-width: 720px) {
  .golf-message-banner.golf-message--president { padding: 26px 22px; }
}

/* ===== Bandeau pleine largeur (un seul message, écran large) : contenu réparti sur deux colonnes ===== */
@media (min-width: 900px) {
  .golf-message-banner.golf-message--president:only-child {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 56px;
    align-items: center;
    padding: 40px 56px;
  }
  .golf-message--president:only-child  * { max-width: none; }
  /* colonne gauche : sur-titre + titre */
  .golf-message--president:only-child .tv-kicker { grid-column: 1; grid-row: 1; align-self: end; }
  .golf-message--president:only-child .tv-title  { grid-column: 1; grid-row: 2; align-self: start; font-size: clamp(32px, 3.4vw, 46px); }
  /* colonne droite : infos, séparées par un filet doré */
  .golf-message--president:only-child .tv-info {
    grid-column: 2; grid-row: 1 / span 2; align-self: center;
    padding-left: 56px; border-left: 2px solid rgba(193,168,117,1);
    font-size: clamp(17px, 1.5vw, 18px);
  }
  .golf-message--president:only-child .tv-info strong { font-size: 14px; margin-bottom: 12px; }
}

/* ===== Message : Passage des drapeaux, École de golf (suffixe CSS : ecole) ===== */
/* Structure HTML : tv-kicker, tv-title, tv-info (tv-date, tv-format, tv-note) */

[data-gdf-live="messages"] { container-type: inline-size; }

/* Carte */
.golf-message-banner.golf-message--ecole {
  --gm-accent: #fff;
  --gm-bg: #7b2fd6;
  --gm-line: transparent;
  --gm-text: #fff;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: block;
  padding: 48px 36px 28px;
  border: 0;
  border-radius: 14px;
  background: linear-gradient(120deg,var(--ca-blue,#2d6ae3) 0%,var(--ca-violet,#7b2fd6) 50%,var(--ca-pink,#e0358f) 100%) !important;
  box-shadow:
    0 18px 38px -20px rgba(123,47,214,.75),
    inset 0 1px 0 rgba(255,255,255,.3);
}

/* Guirlande de fanions en haut de la carte (blanc, jaune, blanc translucide) */
.golf-message-banner.golf-message--ecole::before {
  content: "";
  display: block !important;
  position: absolute;
  top: 0; left: 0; right: 0; bottom: auto;
  width: auto; height: 22px;
  background: linear-gradient(90deg,
    rgba(255,255,255,.88) 0 33.333%,
    #ffd34e 33.333% 66.666%,
    rgba(255,255,255,.42) 66.666% 100%);
  background-size: 72px 100%;
  -webkit-mask: conic-gradient(from -45deg at bottom, #000 0 90deg, #0000 0) 0 0 / 24px 100%;
          mask: conic-gradient(from -45deg at bottom, #000 0 90deg, #0000 0) 0 0 / 24px 100%;
  z-index: 0;
  pointer-events: none;
}

/* Grand drapeau décoratif qui ondule, en filigrane à droite */
.golf-message-banner.golf-message--ecole::after {
  content: "";
  position: absolute;
  right: -8px; bottom: -36px;
  width: 240px; height: 240px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cpath d='M50 196V18' stroke='white' stroke-width='4' stroke-linecap='round'/%3E%3Ccircle cx='50' cy='16' r='7' fill='white'/%3E%3Cpath d='M54 26c26-14 46 14 76 0s34-6 34-6v76s-8-6-34 6-50-14-76 0z' fill='white'/%3E%3C/svg%3E") center / contain no-repeat;
  opacity: .16;
  transform-origin: 25% 92%;
  animation: gdfEcoleWave 6s ease-in-out infinite;
  z-index: 0;
  pointer-events: none;
}
@keyframes gdfEcoleWave {
  0%, 100% { transform: rotate(-7deg); }
  50%      { transform: rotate(-1deg); }
}
@media (prefers-reduced-motion: reduce) {
  .golf-message-banner.golf-message--ecole::after { animation: none; transform: rotate(-4deg); }
}

/* Contenu : au-dessus des décors */
.golf-message--ecole * {
  position: relative;
  z-index: 1;
  max-width: 560px; margin: 0 0 8px;
  text-align: left; color: #fff;
  text-shadow: 0 1px 14px rgba(40,10,90,.25);
}
.golf-message--ecole :last-child { margin-bottom: 0; }

/* Sur-titre en pastille */
.golf-message--ecole .tv-kicker {
  display: inline-block;
  padding: 5px 13px;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  -webkit-backdrop-filter: blur(6px);
          backdrop-filter: blur(6px);
  font-size: 10px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase;
  color: #fff;
  text-shadow: none;
  margin-bottom: 12px;
}

/* Titre */
.golf-message--ecole .tv-title {
  font-family: var(--gdf-font-display, "Playfair Display", serif);
  font-size: clamp(24px, 2.8vw, 26px); font-weight: 700; line-height: 1.08; letter-spacing: -.005em;
  color: #fff;
}
.golf-message--ecole .tv-title::after {
  content: ""; display: block; width: 56px; height: 1px; margin-top: 14px; border-radius: 3px;
  background: var(--gdf-color-secondary);
}

/* Bloc d'infos */
.golf-message--ecole .tv-info {
  font-size: clamp(14px, 1.5vw, 15px);
  font-weight: 400;
  line-height: 1.55;
  color: rgba(255,255,255,.95);
}
.golf-message--ecole .tv-info * { margin: 0; max-width: none; color: inherit; }

.golf-message--ecole .tv-info .tv-date {
  font-family: var(--gdf-font-display, "Playfair Display", serif);
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 600; line-height: 1.2;
  color: #fff;
  margin-bottom: 4px;
}
.golf-message--ecole .tv-info .tv-format {
  font-size: 11px; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase;
  color: rgba(255,255,255,.82);
  margin-bottom: 12px;
}
.golf-message--ecole .tv-info .tv-note {
  font-size: clamp(13px, 1.4vw, 14px);
  font-weight: 400; line-height: 1.55;
  color: rgba(255,255,255,.92);
  max-width: 440px;
}

/* ===== Mobile ===== */
@media (max-width: 720px) {
  .golf-message-banner.golf-message--ecole { padding: 42px 20px 22px; }
  .golf-message-banner.golf-message--ecole::after { width: 170px; height: 170px; right: -14px; bottom: -24px; }
}

/* ===== Bandeau pleine largeur (un seul message, conteneur assez large) : deux colonnes ===== */
@container (min-width: 720px) {
  .golf-message-banner.golf-message--ecole:only-child {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 48px;
    align-items: center;
    padding: 54px 48px 34px;
  }
  .golf-message--ecole:only-child * { max-width: none; }

  /* colonne gauche : sur-titre + titre */
  .golf-message--ecole:only-child .tv-kicker { grid-column: 1; grid-row: 1; align-self: end; justify-self: start; }
  .golf-message--ecole:only-child .tv-title  { grid-column: 1; grid-row: 2; align-self: start; font-size: clamp(30px, 3.2vw, 42px); }

  /* colonne droite : infos, séparées par un filet blanc */
  .golf-message--ecole:only-child .tv-info {
    grid-column: 2; grid-row: 1 / span 2; align-self: center;
    padding-left: 48px; border-left: 1px solid rgba(255,255,255,.55);
    font-size: clamp(15px, 1.4vw, 16px);
  }
  .golf-message--ecole:only-child .tv-info .tv-note { max-width: 440px; }
}

/* ===== Message météo : vigilance orange, ciel d'orage ===== */
.golf-message-banner.golf-message--meteo {
  --meteo-orange: #f28c00;
  --meteo-orange-clair: #ffb347;
  --meteo-texte: #f4f6f8;
  --meteo-doux: rgba(244,246,248,.80);

  /* on casse la grille de base et la colonne de 36px de l'icône */
  display: block;
  grid-template-columns: none;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  padding: 34px 36px 30px;
  border-radius: 14px;
  text-align: left;
  color: var(--meteo-texte);
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 14px 30px -18px rgba(10,14,18,.7), inset 0 0 40px rgba(0,0,0,.22);
  background:
    repeating-linear-gradient(135deg, #f28c00 0 10px, #1d2126 10px 20px) 0 0 / 100% 6px no-repeat,
    radial-gradient(70% 90% at 100% 100%, rgba(242,140,0,.30), transparent 65%),
    radial-gradient(120% 80% at 15% 0%, rgba(255,255,255,.10), transparent 60%),
    linear-gradient(160deg, #2b3036 0%, #4a525b 55%, #79828c 100%);
}

/* le texte n'est plus centré */
.golf-message-banner.golf-message--meteo * {
  position: relative;
  z-index: 2;
  text-align: left;
}

/* le conteneur du titre n'a plus de padding (c'était lui qui descendait le titre) */
.golf-message-banner.golf-message--meteo .badge-info {
  padding: 0;
  margin: 0;
  border: 0;
  background: none;
}

/* ----- Cartouche : Accès au terrain (mêmes mesures que .tv-kicker) ----- */
.golf-message-banner.golf-message--meteo h4 {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  margin: 0 0 14px;
  padding: 5px 13px;
  border-radius: 999px;
  border: 1px solid rgba(242,140,0,.65);
  background: rgba(242,140,0,.16);
  font-family: "Roboto", sans-serif;
  font-size: 10px;
  line-height: 16px;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: #ffd9a3;
}
.golf-message-banner.golf-message--meteo h4 br,
.golf-message-banner.golf-message--meteo h4 img.emoji { display: none; }
.golf-message-banner.golf-message--meteo h4::before {
  content: "";
  flex: none;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--meteo-orange);
  box-shadow: 0 0 0 0 rgba(242,140,0,.7);
  animation: meteo-alerte 1.6s ease-out infinite;
}

/* ----- Titre + trait (mêmes mesures que .tv-title) ----- */
.golf-message-banner.golf-message--meteo h3 {
  margin: 0 0 8px;
  padding: 0;
  font-family: "Playfair Display", serif;
  font-size: clamp(24px, 2.8vw, 26px);
  line-height: 1.1;
  font-weight: 600;
  letter-spacing: -.005em;
  color: #fff;
  text-shadow: 0 2px 12px rgba(0,0,0,.4);
}
.golf-message-banner.golf-message--meteo h3::after {
  content: "";
  display: block;
  width: 36px;
  height: 1px;
  margin-top: 12px;
  background: var(--meteo-orange);
}

/* ----- Date (mêmes mesures que .tv-date) ----- */
.golf-message-banner.golf-message--meteo .gdf-closure-date {
  margin: 14px 0 14px;
  padding: 0;
  font-family: "Playfair Display", serif;
  font-size: clamp(17px, 1.5vw, 20px);
  line-height: 1.2;
  font-weight: 500;
  color: var(--meteo-texte);
}

/* ----- Texte + lien (mêmes mesures que .tv-note, avec son séparateur) ----- */
.golf-message-banner.golf-message--meteo p {
  margin: 0;
  padding: 12px 0 0;
  font-family: "Roboto", sans-serif;
  font-size: 14px;
  line-height: 1.55;
  font-weight: 400;
  color: var(--meteo-doux);
}
.golf-message-banner.golf-message--meteo p a {
  color: #fff;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: var(--meteo-orange);
}

/* ----- Nuages blancs + traînées de vent (remplace la bille verte) ----- */
.golf-message-banner.golf-message--meteo::before {
  all: unset;
  content: "";
  position: absolute;
  inset: 6px 0 0 0;
  z-index: 0;
  pointer-events: none;
  background-image:
    repeating-linear-gradient(100deg, transparent 0 38px, rgba(255,255,255,.10) 38px 40px, transparent 40px 90px),
    repeating-linear-gradient(100deg, transparent 0 120px, rgba(255,255,255,.07) 120px 122px, transparent 122px 210px),
    radial-gradient(ellipse 38% 26% at 30% 24%, rgba(255,255,255,.38), transparent 70%),
    radial-gradient(ellipse 30% 22% at 78% 70%, rgba(255,255,255,.28), transparent 70%),
    radial-gradient(ellipse 46% 30% at 55% 100%, rgba(255,255,255,.30), transparent 72%),
    radial-gradient(ellipse 34% 20% at 8% 62%, rgba(255,255,255,.24), transparent 70%);
  background-repeat: repeat, repeat, repeat-x, repeat-x, repeat-x, repeat-x;
  background-size: 260px 100%, 420px 100%, 720px 100%, 900px 100%, 1100px 100%, 600px 100%;
  filter: blur(6px);
  animation: meteo-ciel 38s linear infinite;
}

/* ----- Éclair ----- */
.golf-message-banner.golf-message--meteo::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: radial-gradient(60% 90% at 78% 0%, rgba(255,255,255,.85), rgba(190,210,255,.25) 40%, transparent 70%);
  opacity: 0;
  mix-blend-mode: screen;
  animation: meteo-eclair 7s infinite;
}

/* ----- Animations ----- */
@keyframes meteo-ciel {
  from { background-position: 0 0, 0 0, 0 0, 0 0, 0 0, 0 0; }
  to   { background-position: -5200px 0, -8400px 0, -720px 0, -900px 0, -1100px 0, -600px 0; }
}
@keyframes meteo-eclair {
  0%, 88%, 100% { opacity: 0; }
  89%           { opacity: .9; }
  90%           { opacity: .15; }
  91%           { opacity: .75; }
  93%           { opacity: 0; }
}
@keyframes meteo-alerte {
  0%   { box-shadow: 0 0 0 0 rgba(242,140,0,.7); }
  70%  { box-shadow: 0 0 0 9px rgba(242,140,0,0); }
  100% { box-shadow: 0 0 0 0 rgba(242,140,0,0); }
}

@media (prefers-reduced-motion: reduce) {
  .golf-message-banner.golf-message--meteo::before,
  .golf-message-banner.golf-message--meteo::after,
  .golf-message-banner.golf-message--meteo h4::before { animation: none; }
}
/* ===== Message : Championnats du club, style carte "competition club" du calendrier (suffixe CSS : champclub) ===== */

[data-gdf-live="messages"] { container-type: inline-size; }

/* Carte */
.golf-message-banner.golf-message--champclub {
  --gm-accent: #e8d08f;
  --gm-bg: #0a3a2c;
  --gm-line: transparent;
  --gm-text: #fff;
  position: relative;
  overflow: hidden;
  display: block;
  padding: 34px 36px;
  border: 0;
  border-radius: 16px;
  background:
    linear-gradient(100deg, rgba(4,28,21,.92) 0%, rgba(4,28,21,.62) 45%, rgba(4,28,21,0) 88%),
    repeating-conic-gradient(from 195deg at 100% 0%, rgba(232,208,150,.13) 0deg, rgba(232,208,150,.13) 3deg, rgba(0,0,0,0) 3deg, rgba(0,0,0,0) 9deg),
    radial-gradient(65% 75% at 100% 0%, rgba(240,204,120,.4) 0%, rgba(0,0,0,0) 65%),
    linear-gradient(135deg, #031c15 0%, #0a3a2c 55%, #052519 100%);
  box-shadow:
    0 20px 44px -26px rgba(0,0,0,.75),
    0 0 0 1px rgba(232,208,150,.5);
}
.golf-message-banner.golf-message--champclub::before { display: none; }

/* Contenu */
.golf-message--champclub * {
  position: relative;
  max-width: 560px; margin: 0 0 8px;
  text-align: left; color: #fff;
}
.golf-message--champclub :last-child { margin-bottom: 0; }

/* Pastille */
.golf-message--champclub .tv-kicker {
  display: inline-flex;
  align-items: center;
  padding: 5px 13px;
  border: 1px solid rgba(232,208,150,.65);
  border-radius: 999px;
  background: rgba(232,208,150,.12);
  color: #f6e7b8;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
  line-height: 14px;
  margin-bottom: 12px;
}

/* Titre : dégradé doré comme le calendrier */
.golf-message--champclub .tv-title {
  display: block;
  font-family: var(--gdf-font-display, "Playfair Display", serif);
  font-size: clamp(22px, 2.6vw, 26px);
  font-weight: 700; line-height: 1.15; letter-spacing: -.01em;
  background: linear-gradient(100deg, #fff6d6 0%, #e8d08f 45%, #c9a864 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
.golf-message--champclub .tv-title::after {
  content: ""; display: block; width: 36px; height: 1px; margin-top: 12px; background: #e8d08f;
}

/* Bloc d'infos */
.golf-message--champclub .tv-info {
  font-size: clamp(14px, 1.5vw, 15px);
  font-weight: 400;
  line-height: 1.55;
  color: rgba(255,255,255,.92);
}
.golf-message--champclub .tv-info * { margin: 0; max-width: none; color: inherit; }

/* Format "Compétition en cours" : petit libellé doré clignotant */
.golf-message--champclub .tv-info strong {
  display: inline-block;
  margin-bottom: 4px;
  color: #e8d08f;
  font-family: inherit; font-size: 11px; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase;
  animation: gdfChampclubBlink 1.6s ease-in-out infinite;
}
@keyframes gdfChampclubBlink {
  0%, 100% { opacity: 1; }
  50%      { opacity: .35; }
}
@media (prefers-reduced-motion: reduce) {
  .golf-message--champclub .tv-info strong { animation: none; }
}

/* Date et format */
.golf-message--champclub .tv-info .tv-date {
  font-size: 13px; font-weight: 700;
  letter-spacing: .06em; text-transform: uppercase;
  color: #fff;
  margin-bottom: 2px;
}
.golf-message--champclub .tv-info .tv-format {
  font-size: 11px; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: #e8d08f;
  margin-bottom: 16px;
}

/* Bouton doré plein */
.golf-message-banner.golf-message--champclub .tv-info a.tv-btn {
  display: inline-block;
  padding: 9px 20px;
  border-radius: 999px;
  background: #e8d08f;
  color: #041c15;
  text-decoration: none;
  font-family: inherit; font-size: 11px; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  transition: background .15s ease;
}
.golf-message-banner.golf-message--champclub .tv-info a.tv-btn:hover,
.golf-message-banner.golf-message--champclub .tv-info a.tv-btn:focus-visible { background: #f6e7b8; }
.golf-message-banner.golf-message--champclub .tv-info a.tv-btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

/* ===== Mobile ===== */
@media (max-width: 720px) {
  .golf-message-banner.golf-message--champclub { padding: 22px 20px; }
  .golf-message-banner.golf-message--champclub .tv-info a.tv-btn {
    display: block; text-align: center; padding: 8px 20px; font-size: 10px;
  }
}

/* ===== Bandeau pleine largeur (un seul message) : deux colonnes ===== */
@container (min-width: 720px) {
  .golf-message-banner.golf-message--champclub:only-child {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 48px;
    align-items: center;
    padding: 32px 48px;
  }
  .golf-message--champclub:only-child * { max-width: none; }

  .golf-message--champclub:only-child .tv-kicker { grid-column: 1; grid-row: 1; align-self: end; }
  .golf-message--champclub:only-child .tv-title  { grid-column: 1; grid-row: 2; align-self: start; font-size: clamp(28px, 3vw, 38px); }

  .golf-message--champclub:only-child .tv-info {
    grid-column: 2; grid-row: 1 / span 2; align-self: center;
    padding-left: 48px; border-left: 1px solid rgba(232,208,150,.7);
    font-size: clamp(15px, 1.4vw, 16px);
  }
}