/* --- Variables CSS --- */
:root {
    --primary-green: #388e3c;           /* Vert dominant */
    --light-green: #c8e6c9;             /* Vert clair (Entêtes hippodromes) */
    --dark-green-tab: #468847;          /* Vert foncé des sous-onglets Montes/Partants */
    --dark-grey: #333;                  /* Texte par défaut */
    --medium-grey: #555;                /* Infos secondaires */
    --light-grey: #f0f0f0;              /* Fond de page */
    --white: #fff;                      /* Fond des blocs / listes */
    --border-color: #ddd;               /* Lignes de séparation */
    --unselected-tab-bg: #e0e0e0;       /* Gris clair */
    --quinte-red: #d32f2f;              /* Rouge vif pour les chevaux du Quinté ET NOUVEAU: Soulignement des sous-onglets */
    --active-tab-indicator: #e84118;    /* Rouge pour l'indicateur d'onglet actif principal */
}

body {
    font-family: 'Arial', sans-serif;
    margin: 0;
    background-color: var(--light-grey);
    color: var(--dark-grey);
    line-height: 1.6;
}

.container {
    max-width: 1100px;
    margin: 20px auto;
    padding: 0 15px;
}

/* --- TITRES GÉNÉRAUX --- */
h1, h2, h3 {
    font-family: 'Arial', sans-serif;
    color: var(--dark-grey);
}

/* h2 SEO inline (ne change rien visuellement) */
h2.inline-h2 {
    all: unset;
    display: inline;
    font: inherit;
    color: inherit;
}

/* --- EN-TÊTE ET ONGLET PRINCIPAUX --- */
header h1 {
    margin: 0 0 15px 0;
    font-size: 1.8em;   /* Titre principal */
    font-weight: bold;
}

.tabs {
    display: flex;
    margin-bottom: 0;
    border-bottom: none;
}

.tab-button {
    flex-grow: 1;
    padding: 10px 15px;
    text-align: center;
    cursor: pointer;
    font-weight: bold;
    background-color: var(--unselected-tab-bg);
    color: var(--dark-grey);
    transition: background-color 0.3s;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
    margin-right: 5px;
    border: 1px solid var(--border-color);
    border-bottom: none;
    position: relative; /* Pour l'indicateur rouge */
}

.tab-button.active {
    background-color: var(--white);
    color: var(--dark-grey); /* Garder le texte noir */
    border-bottom: 1px solid var(--white); /* Cache la bordure sur l'onglet actif */
    box-shadow: 0 -2px 5px rgba(0,0,0,0.05);
}

/* Indication rouge sous l'onglet actif (PRINCIPAL) */
.tab-button.active::after {
    content: '';
    position: absolute;
    bottom: -3px;
    left: 0;
    right: 0;
    height: 3px;
    background-color: var(--active-tab-indicator);
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
}

.tab-content {
    background-color: var(--white);
    padding: 20px;
    border-radius: 0 8px 8px 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    margin-top: -1px;
    border: 1px solid var(--border-color);
}
.tab-pane { display: none; }
.tab-pane.active { display: block; }

/* --- Styles des Sections Hippodrome --- */
.hippodrome-section {
    margin-bottom: 25px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    overflow: hidden;
}

/* En-tête de la réunion cliquable */
.hippodrome-header {
    background-color: var(--light-green);
    color: var(--dark-grey);
    padding: 5px 12px;
    font-weight: bold;
    font-size: 1.05em; /* Taille globale */
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--border-color);
    cursor: pointer;
    user-select: none;
}

.hippodrome-title {
    margin: 0;
    font-size: 1.2em;
    color: var(--dark-grey);
    font-weight: bold;
}

.hippodrome-header-details {
    display: flex;
    gap: 15px;
    font-weight: normal;
    font-size: 0.9em;
    color: var(--medium-grey);
}

/* Harmonisation de la date avec R1 8 Courses */
.hippodrome-header-details span {
    font-size: 0.9em;
    font-weight: normal;
    color: var(--medium-grey);
}

/* Chevron Accordéon */
.hippodrome-header::after {
    content: "\25BC"; /* ▼ */
    margin-left: 10px;
    transition: transform 0.3s ease;
    font-size: 0.9em;
}
.hippodrome-header.closed::after {
    content: "\25BC"; /* ▶ */
    transform: rotate(90deg);
}

.reunion-content {
    display: block;
}

/* --- STYLES: SOUS-ONGLETS 50/50 --- */
.sub-tabs {
    display: flex;
}

.sub-tab-button {
    flex: 1 1 50%;
    padding: 6px 0;
    text-align: center;
    color: var(--white);
    font-weight: bold;
    cursor: pointer;
    background-color: var(--dark-green-tab);
    border-right: 1px solid rgba(255, 255, 255, 0.1);
    font-size: 0.85em;
    transition: background-color 0.3s;
}

.sub-tab-button.active {
    background-color: var(--primary-green);
    /* Ajout du soulignement rouge pour l'onglet actif */
    box-shadow: inset 0 -3px 0 0 var(--quinte-red);
}

.sub-tab-content {
    padding: 15px 20px;
    display: none;
    background-color: var(--white);
}

.sub-tab-content.active {
    display: block;
}

/* --- MISE EN PAGE STRICTE SUR 3 COLONNES AVEC GRID --- */
.cheval-list-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px 20px;
}

/* Responsive design pour les 3 colonnes */
@media (max-width: 900px) {
    .cheval-list-container {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 600px) {
    .cheval-list-container {
        grid-template-columns: 1fr;
    }
}

.cheval-list-item {
    padding: 2px 0;
    font-size: 0.85em;
    display: flex;
    min-width: 0;
}

.cheval-name-link, .jockey-name-link {
    text-decoration: none;
    color: var(--dark-grey);
    font-weight: normal;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* --- OVERRIDES SPÉCIFIQUES À L'INDEX (bas de page) --- */
/* Ne pas tronquer les noms (pas de "...") */
.alphabet-index-block .cheval-name-link {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    word-break: break-word;
}

/* 3 colonnes fixes de même largeur (index bas de page) */
.alphabet-index-block .cheval-list-container {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 24px;
}

/* Pas de retour à la ligne dans les noms */
.alphabet-index-block .cheval-name-link {
    white-space: nowrap;
    overflow: visible;
    text-overflow: clip;
    display: inline-block;
}

/* 1 seule colonne en responsive */
@media (max-width: 900px) {
    .alphabet-index-block .cheval-list-container {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 900px) {
    .alphabet-index-block .cheval-list-container {
        grid-template-columns: 1fr;
    }
}

.cheval-name-link:hover, .jockey-name-link:hover {
    text-decoration: underline;
}

.cheval-name-link.quinte-cheval {
    color: var(--quinte-red);
    font-weight: bold;
}

.jockey-driver-info {
    color: var(--medium-grey);
    margin-left: 5px;
    font-size: 0.8em;
    flex-shrink: 0;
}

/* --- STYLE DU POPUP/MODAL --- */
.modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0,0,0,0.5);
}

.modal-content {
    background-color: var(--white);
    margin: 10% auto;
    border: 1px solid #888;
    width: 80%;
    max-width: 600px;
    box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
    animation-name: animatetop;
    animation-duration: 0.4s
}

@keyframes animatetop {
    from {top: -300px; opacity: 0}
    to {top: 0; opacity: 1}
}

.modal-header {
    background-color: var(--primary-green);
    color: var(--white);
    padding: 15px;
    text-align: center;
}

.modal-header h3 {
    margin: 0;
    font-size: 1.5em;
}

.modal-header p {
    margin-top: 5px;
    font-size: 1.1em;
    font-weight: 300;
}

.modal-body {
    padding: 20px;
}

.modal-table {
    width: 100%;
    border-collapse: collapse;
    text-align: left;
    margin-top: 10px;
}

.modal-table th, .modal-table td {
    border: 1px solid var(--border-color);
    padding: 8px;
}

.modal-table th {
    background-color: var(--light-green);
    color: var(--dark-grey);
    font-weight: bold;
}

.close-button {
    color: var(--white);
    float: right;
    font-size: 28px;
    font-weight: bold;
    margin-top: -25px;
}

.close-button:hover,
.close-button:focus {
    color: #ccc;
    text-decoration: none;
    cursor: pointer;
}
/* --- Style Spécifique au Bloc Quinté --- */
.quinte-info-block {
    background-color: #ffe0b2; /* Orange très clair pour attirer l'attention */
    border: 1px solid #ff9800; /* Bordure orange */
    padding: 15px;
    margin-bottom: 20px; /* Espace avec la R1 en dessous */
    border-radius: 6px;
    font-size: 1em;
    line-height: 1.5;
}

.quinte-info-block p {
    margin: 0;
}

.quinte-info-block a {
    color: #e65100; /* Couleur de lien orange foncé */
    font-weight: bold;
    text-decoration: none;
}

.quinte-info-block a:hover {
    text-decoration: underline;
}


/* --- STYLE DU BLOC DE RECHERCHE (même design que l'index) --- */
.search-block {
    margin-top: 25px;
    margin-bottom: 25px;
    padding: 20px;
    background-color: var(--white);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    overflow: visible; /* pour afficher les suggestions */
}



.cheval-legend {
    margin-top: 15px;
    font-size: 0.95em;
    color: #555;
    font-style: italic;
}

.cheval-legend strong {
    color: var(--active-tab-indicator);
}


/* Titre identique à l'index */
.search-block h2,
.search-block h3 {
    margin-top: 0;
    margin-bottom: 15px;
    padding-bottom: 10px;
    font-size: 1.2em; /* même taille que Index des Fiches Chevaux */
    font-weight: bold;
    border-bottom: 3px solid var(--primary-green);
}

.search-block .search-help {
    margin: 0 0 12px 0;
    color: var(--medium-grey);
}

/* Barre grise identique au bandeau des lettres */
.search-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: center;
    padding: 10px;
    background-color: var(--light-grey);
    border-radius: 5px;
    position: relative; /* pour le dropdown */
}

.search-bar form {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
}

/* Champ = look & feel des boutons de l'index, mais en large */
#chevalSearchInput {
    flex: 1 1 auto;
    min-width: 0;
    padding: 10px 12px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    font-size: 1em;
    outline: none;
    background-color: var(--white);
}

#chevalSearchInput:focus {
    border-color: var(--primary-green);
    box-shadow: 0 0 0 3px rgba(56, 142, 60, 0.15);
}

/* Bouton = même style que les lettres (avec hover vert) */
.search-btn {
    display: inline-block;
    padding: 10px 14px;
    text-decoration: none;
    color: #fff;
    font-weight: bold;
    border: 1px solid var(--active-tab-indicator);
    border-radius: 6px;
    background-color: var(--active-tab-indicator);
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}

.search-btn:hover {
    background-color: #c23616;
    border-color: #c23616;
    color: #fff;
}

/* Dropdown d'autocomplétion : aligné sous le champ, dans la barre grise */
.autocomplete-results {
    position: absolute;
    top: calc(100% + 8px);
    left: 10px;
    right: 10px;
    z-index: 9999;
    border: 1px solid var(--border-color);
    background-color: var(--white);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    max-height: 250px;
    overflow-y: auto;
    border-radius: 6px;
}

.autocomplete-results a {
    display: block;
    padding: 10px 12px;
    text-decoration: none;
    color: var(--dark-grey);
    border-bottom: 1px solid var(--light-grey);
}

.autocomplete-results a:hover {
    background-color: var(--light-grey);
}

/* --- RESPONSIVE DU FORMULAIRE DE RECHERCHE --- */
@media (max-width: 600px) {
    .search-bar form {
        flex-direction: column;
    }
    .search-btn {
        width: 100%;
        text-align: center;
    }
    .autocomplete-results {
        left: 10px;
        right: 10px;
    }
}

/* --- STYLE DU BLOC D'INDEX ALPHABÉTIQUE (Nouveau) --- */
/* 🐴 UNIQUEMENT dans l'index bas de page */
.alphabet-index-block .cheval-list-item{
    display:flex;
    align-items:center;
    gap:8px;
}

.alphabet-index-block .index-horse{
    width:16px;
    min-width:16px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    line-height:1;
    opacity:.9;
}

.alphabet-index-block h2, .alphabet-index-block h3 {
    margin-top: 0;
    margin-bottom: 20px;
    padding-bottom: 10px;
    font-size: 1.2em;
    border-bottom: 3px solid var(--primary-green);
}

.alphabet-nav {
    display: flex;
    flex-wrap: wrap; /* Permet aux lettres de passer à la ligne */
    justify-content: center;
    margin-bottom: 20px;
    padding: 10px;
    background-color: var(--light-grey);
    border-radius: 5px;
}

/* BLOC BLANC autour de l'Index des Fiches Chevaux */
.alphabet-index-block{
    margin-top: 25px;
    margin-bottom: 25px;
    padding: 20px;
    background-color: var(--white);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}


.index-letter {
    display: block;
    padding: 5px 8px;
    margin: 3px;
    text-decoration: none;
    color: var(--dark-grey);
    font-weight: bold;
    border: 1px solid var(--border-color);
    border-radius: 3px;
    background-color: var(--white);
    transition: all 0.2s;
}

.index-letter:hover {
    background-color: var(--primary-green);
    color: var(--white);
    border-color: var(--primary-green);
}

.index-letter.active {
    background-color: var(--active-tab-indicator); /* Utiliser la couleur rouge d'accentuation */
    color: var(--white);
    border-color: var(--active-tab-indicator);
}

/* Conteneur de Pagination */
.pagination-container {
    text-align: center;
    margin-top: 20px;
}

.pagination-link {
    display: inline-block;
    padding: 8px 12px;
    margin: 0 4px;
    text-decoration: none;
    color: var(--dark-grey);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    transition: background-color 0.2s;
}

.pagination-link:hover, .pagination-link.active {
    background-color: var(--primary-green);
    color: var(--white);
    border-color: var(--primary-green);
}



/* Option: la couleur suit le texte (rouge si quinte-cheval) */
.cheval-icon i {
    font-size: 14px;
    color: currentColor;
}







.faq-block{
    margin: 25px 0;
    padding: 20px;
    background: var(--white);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.08);
}
.faq-title{
    margin: 0 0 10px 0;
    padding-bottom: 10px;
    font-size: 1.2em;
    border-bottom: 3px solid var(--primary-green);
}
.faq-intro{
    margin: 0 0 14px 0;
    color: var(--medium-grey);
}
.faq-item{
    border-top: 1px solid var(--border-color);
}
.faq-item:first-of-type{
    border-top: none;
}
.faq-question{
    width: 100%;
    text-align: left;
    padding: 12px 10px;
    background: transparent;
    border: none;
    cursor: pointer;
    font-weight: bold;
    color: var(--dark-grey);
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 1em;
    gap: 10px;
    color: var(--primary-green) !important;
}
.faq-question:hover{
    background: var(--light-grey);
    border-radius: 6px;
}
.faq-icon{
    display: inline-flex;
    width: 26px;
    height: 26px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    font-weight: bold;
}
.faq-answer{
    max-height: 0;
    overflow: hidden;
    transition: max-height .35s ease;
    padding: 0 10px;
}
.faq-item.open .faq-answer{
    padding: 0 10px 12px 10px;
}
.faq-answer p{
    margin: 10px 0 0 0;
    color: var(--dark-grey);
}










/* --- RESPONSIVE DE L'INDEX --- */
@media (max-width: 600px) {
    .alphabet-nav {
        justify-content: space-around;
        padding: 5px 0;
    }
    .index-letter {
        padding: 3px 6px;
        margin: 2px;
        font-size: 0.8em;
    }
}

/* --- NOUVELLES RÈGLES : ADAPTATION RESPONSIVE --- */
@media (max-width: 768px) {
    .container {
        margin: 10px auto;
    }

    .hippodrome-header {
        flex-direction: column;
        align-items: flex-start;
        position: relative;
        padding-right: 50px;
    }

    .hippodrome-header::after {
        position: absolute;
        right: 20px;
        top: 15px;
        margin-left: 0;
    }

    .hippodrome-header-details {
        display: block;
        margin-top: 5px;
    }
}

@media (max-width: 500px) {
    .sub-tabs {
        flex-direction: column;
    }
    .sub-tab-button {
        flex: 1 1 100%;
        font-size: 0.85em;
        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    }
    .sub-tab-button:last-child {
        border-bottom: none;
    }

    .tab-button {
        padding: 8px 10px;
        font-size: 0.9em;
    }
}


/* overlay */
@media (max-width: 420px) {
    #jockey-modal .modal-content {
        width: 100%;
    }
}

#modal-jockey-name {
    display: block;
    font-size: 1.5em;
    margin-block-start: 0.83em;
    margin-block-end: 0.83em;
    margin-inline-start: 0px;
    margin-inline-end: 0px;
    font-weight: bold;
    unicode-bidi: isolate;
    font-family: 'Arial', sans-serif;
    color: var(--dark-grey);
}

