/* =================================================================
   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="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 <style> de l'ancien template : js/status-live.js remplace
   le bloc en direct, une balise <style> y serait supprimée (perte de la mise en forme).
   ================================================================= */
.gch-item {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 3px 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;
}
.club-info .club-section h4 { margin-bottom: 6px; }
.club-info .club-section h4.gch-title-practice { margin-top: 12px; }

/* Exceptions */
.gch-exceptions {
    margin-top: 14px;
    padding-top: 12px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.gch-exc-item {
    margin: 0;
    padding: 7px 12px;
    border-radius: 5px;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.4;
}
.gch-exc-fermeture {
    background: #fff3cd;
    color: #856404;
    border-left: 3px solid #ffc107;
}
.gch-exc-ouverture_exceptionnelle {
    background: #d4edda;
    color: #155724;
    border-left: 3px solid #28a745;
}

/* 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;
    }
}