:root { 
    --main-teal: #008c8c; 
}

/* --- LE FOND DE PAGE (FORÇAGE BLANC TOTAL) --- */
html, 
body, 
.site-container, 
.page-content, 
#main-content, 
#page, 
#wrapper { 
    background-color: #ffffff !important; 
    background: #ffffff !important;
}

.site-container, .page-content, #main-content { 
    max-width: 1200px !important; 
    width: 100% !important; 
    margin: 0 auto !important; 
    background: transparent !important; 
}

.event-container { 
    max-width: 1300px; 
    margin: -20px; 
    border-radius: 8px; 
    background: #fdfdfd; 
    font-family: 'Segoe UI', Tahoma, sans-serif; 
    padding: 10px 15px 20px 15px;
    box-sizing: border-box;
}

/* ALERTE STATUT PAIEMENT ANNULÉ */
.status-alert-box {
    position: relative; 
    background-color: #fff3cd; 
    color: #856404; 
    border: 1px solid #ffeeba; 
    padding: 20px; 
    border-radius: 8px; 
    margin-bottom: 25px; 
    text-align: center; 
    border-left: 5px solid #ffc107; 
    animation: fadeIn 0.5s;
}
.status-alert-box .close-btn {
    position: absolute; 
    top: 10px; 
    right: 10px; 
    background: none; 
    border: none; 
    font-size: 20px; 
    cursor: pointer; 
    color: #856404; 
    opacity: 0.5;
}
.status-alert-box i {
    font-size: 22px; 
    margin-bottom: 10px;
}
.status-alert-box .title {
    font-size: 16px;
}
.status-alert-box .desc {
    font-size: 14px;
}

@keyframes fadeIn { 
    from { opacity: 0; transform: translateY(-10px); } 
    to { opacity: 1; transform: translateY(0); } 
}

/* COMPTEUR */
.countdown-section { 
    background: #f4fdfd; 
    border-radius: 8px; 
    border: 1px solid #eef; 
    padding: 15px; 
    margin-bottom: 25px; 
    display: flex; 
    justify-content: center; 
    gap: 8px; 
    box-shadow: 0 4px 15px rgba(0,0,0,0.06);
}
.count-card { 
    background: #fff; 
    border-radius: 6px; 
    width: 75px; 
    padding: 10px 2px; 
    text-align: center; 
    border: 1px solid #eef7f7; 
    box-shadow: 0 2px 4px rgba(0,0,0,0.05); 
}
.count-val { 
    display: block; 
    font-size: 22px; 
    font-weight: bold; 
    color: var(--main-teal); 
}
.count-unit { 
    font-size: 10px; 
    color: #888; 
    text-transform: uppercase; 
    font-weight: 600; 
}

/* TITRE PRINCIPAL */
.main-event-title {
    text-align: center; 
    font-size: 26px; 
    color: #2c3e50; 
    margin-bottom: 20px;
}

/* STRUCTURE GRILLE */
/* On cible la colonne du milieu dans la grille principale */
.main-grid > .col:nth-child(2) {
    display: flex;
    flex-direction: column;
    gap: 10px !important; /* Ajustez cette valeur en pixels pour régler l'espace pile comme vous le souhaitez */
}

/* On retire la marge du bas uniquement pour la carte info-express */
.info-express-card {
    margin-bottom: 0 !important;
}

.main-grid { 
    display: grid; 
    grid-template-columns: 300px 1fr 300px; 
    gap: 30px; 
    align-items: start; 
}
.card { 
    background: #fff; 
    border: 1px solid #eee; 
    border-radius: 10px; 
    padding: 18px; 
    margin-bottom: 30px; 
    box-shadow: 0 4px 15px rgba(0,0,0,0.06);
}
.card-title { 
    font-size: 15px; 
    font-weight: bold; 
    color: var(--main-teal); 
    text-transform: uppercase; 
    margin-bottom: 10px;
}

/* SECTION MOT DE L'ORGA */
.orga-word-content {
    font-size: 14px; 
    color: #555; 
    line-height: 1.4; 
    margin: 0; 
    font-family: Arial, sans-serif;
}
.orga-word-content p {
    margin: 0 0 8px 0;
}
.orga-word-content .lpo-badge {
    background-color: #e3f2fd; 
    padding: 6px 10px; 
    border-radius: 4px; 
    margin: 0 0 8px 0; 
    font-size: 12.5px;
}
.orga-word-content .inclusion-box {
    margin: 8px 0; 
    padding: 8px; 
    border: 1px dashed #ddd; 
    border-radius: 4px; 
    background: #fff; 
    font-size: 12px; 
    display: flex; 
    flex-direction: column; 
    gap: 4px;
}
.orga-word-content .inclusion-box .inc-green { color: #2e7d32; }
.orga-word-content .inclusion-box .inc-red { color: #c62828; }
.orga-word-content .team-call {
    text-align: center; 
    font-weight: 700; 
    color:#ff9800; 
    margin: 8px 0 -10px 0 !important;
}

/* VISUELS AFFICHE */
.event-poster {
    width:100%; 
    border-radius:8px; 
    margin-bottom:44px; 
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

/* BANDEAU INFOS EXPRESS (Lieu, Date, Départ) */
.info-express-card {
    display: flex; 
    justify-content: space-around; 
    text-align: center;
}
.info-express-card i {
    color:var(--main-teal); 
    margin-bottom:4px;
}
.info-express-card small {
    display:block; 
    color:#999; 
    font-size:9px;
}

/* TABLEAU PROGRAMME & TARIFS */
.program-card {
    flex-grow: 1; 
    margin-top: 0 !important;
    margin-bottom: 0px; 
    padding-bottom: 0px;
}
.table-styled {
    width: 100%; 
    font-size: 14px; 
    border-collapse: collapse;
}
.table-styled tr {
    border-bottom: 1px solid #f9f9f9;
}
.table-styled td {
    padding: 8px 0 8px 15px;
}
.table-styled .head-row {
    color: var(--main-teal); 
    font-weight: bold;
}
.table-styled .head-row td {
    padding: 15px 0 5px 15px;
}
.table-styled .indent-row td {
    padding: 8px 0 8px 30px;
}
.table-styled .outdent-row td {
    padding: 8px 0 8px 10px;
}
.table-styled .last-row td {
    padding: 8px 0 28px 10px;
}

.price-table { width: 100%; font-size: 13px; border-collapse: collapse; margin-top: 5px; }
.price-table tr { border-bottom: 1px solid #f0f0f0; }
.price-table td { padding: 6px 0; color: #555; }
.price-table td.date { font-weight: 600; color: #333; }
.price-table td.increase { text-align: right; color: #e74c3c; font-weight: bold; }

/* BOUTONS DISTANCES */
.dist-btn { 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    padding: 10px 15px; 
    background: #f9f9f9;
    border: 1px solid #5bc3c35d; 
    border-left: 5px solid var(--main-teal); 
    border-radius: 8px; 
    margin-bottom: 10px; 
    text-decoration: none !important; 
    color: #2c3e50; 
    transition: all 0.2s ease-in-out;
    box-shadow: 0 4px 15px rgba(0,0,0,0.06);
}
.dist-btn:hover:not(.is-full) { 
    background: var(--main-teal) !important; 
    border-color: var(--main-teal);
    transform: translateX(3px); 
}
.dist-btn:hover:not(.is-full) span, .dist-btn:hover:not(.is-full) strong { color: #fff !important; }

.dist-btn.is-full {
    background: #fffafa !important;
    border-left-color: #e74c3c !important;
    cursor: not-allowed;
    opacity: 0.9;
}
.dist-btn.is-full .dist-name { color: #555 !important; }

.dist-btn.disabled {
    background: #f4f4f4 !important;
    border-left-color: #bdc3c7 !important;
    border-color: #eee;
    cursor: not-allowed;
    opacity: 0.7;
}
.dist-btn.disabled .dist-name, .dist-btn.disabled .dist-price { color: #95a5a6 !important; }

.dist-name { font-weight: bold; font-size: 17px; margin-bottom: 2px; color: #000000; }
.dist-title-sub { font-size: 13px; font-weight: 700; text-transform: uppercase; display: block; margin-bottom: 4px; }
.dist-meta { font-size: 13px; opacity: 0.8; font-weight: 600; color: #333; display: block;} 
.dist-price { font-weight: bold; font-size: 19px; text-align: right; line-height: 1.2;}
.dist-minor { font-size: 13px; font-weight: normal; display: block; color: #666; }
.dist-status-bold { font-size: 20px; }

.price-alert { 
    background: #fff5f5; border: 1px dashed #feb2b2; border-radius: 6px; 
    padding: 8px; margin-bottom: 15px; color: #c53030; font-size: 12px; 
    font-weight: bold; text-align: center; 
}

/* BOUTONS ACTIONS (REGLEMENT / LISTE) */
.actions-container {
    margin-top: 25px; 
    margin-bottom: 5px;
}
.btn-reglement-new {
    display: flex; align-items: center; justify-content: center; gap: 10px; padding: 10px; margin-bottom: 10px;
    background: #fff; border: 1px solid #eee; border-left: 4px solid #e74c3c; border-radius: 6px;
    color: #e74c3c; text-decoration: none !important; font-weight: bold; font-size: 14px; transition: all 0.2s ease;
    box-shadow: 0 4px 15px rgba(0,0,0,0.06);
}
.btn-reglement-new:hover, .btn-reglement-new:active { background-color: #e74c3c; color: #ffffff !important; }
.btn-reglement-new:hover i { color: #ffffff; }

.btn-inscrit-new {
    display: flex; align-items: center; justify-content: center; gap: 5px; padding: 14px; margin-bottom: 15px;
    background: #f4f9ff; border: 1px solid #3498db44; border-left: 4px solid #3498db; border-radius: 6px;
    color: #3498db; text-decoration: none !important; font-weight: bold; font-size: 14px; transition: all 0.2s ease;
    box-shadow: 0 4px 15px rgba(0,0,0,0.06);
}
.btn-inscrit-new:hover, .btn-inscrit-new:active { background-color: #3498db; color: #ffffff !important; }
.btn-inscrit-new:hover i { color: #ffffff; }

/* DOCS CARDS */
.docs-section { 
    display: grid; 
    grid-template-columns: 1fr 1fr; 
    gap: 20px; 
    margin: 5px 0px; 
}
.doc-card { 
    background: #fff; border: 1px solid #eee; border-radius: 12px; padding: 20px; 
    box-shadow: 0 4px 15px rgba(0,0,0,0.06); text-align: center; display: flex; flex-direction: column;
}
.doc-card p {
    font-size: 13px; color: #666; margin-bottom: 10px; line-height: 1.4;
    flex-grow: 1; /* Distribue l'espace pour pousser le bouton tout en bas */
}
/* --- STRUCTURE COMMUNE DES BOITES D'ICÔNES --- */
.doc-card .icon-container {
    height: 90px;         /* Même hauteur pour les deux blocs = alignement parfait des textes */
    display: flex; 
    justify-content: center; 
    align-items: center; 
    margin-bottom: 5px; 
}

/* --- AJUSTEMENTS SPÉCIFIQUES --- */

/* Pour l'image de l'Athlé PPS */
.doc-card-pps { border-top: 6px solid #3498db; }
.doc-card-pps .title { font-weight:bold; color:#3498db; margin-bottom:10px; text-transform: uppercase; font-size: 15px; }
.doc-card-pps .icon-container img { 
    height: 85px;          /* Taille de l'image de l'orga */
    width: auto; 
}

/* Pour l'icône FontAwesome du Mineur */
.doc-card-auto { border-top: 6px solid var(--main-teal); }
.doc-card-auto .title { font-weight:bold; color:var(--main-teal); margin-bottom:10px; text-transform: uppercase; }
.doc-card-auto .icon-container i { 
    font-size: 60px;       /* Taille de l'icône d'origine */
    color: var(--main-teal); 
    opacity: 0.8; 
}

.btn-doc-pps {
    display: flex; align-items: center; justify-content: center; gap: 10px; padding: 12px; 
    margin-top: auto; /* Aligne le bouton parfaitement sur le bas de la carte */
    background: #3498db; border: 1px solid #3498db; border-left: 4px solid #3498db; border-radius: 8px;
    color: #fff; text-decoration: none !important; font-weight: bold; font-size: 14px; transition: all 0.2s ease;
}
.btn-doc-pps:hover, .btn-doc-pps:active { background-color: #f4f9ff; color: #3498db !important; }

.btn-doc-auto {
    display: flex; align-items: center; justify-content: center; gap: 10px; padding: 12px; 
    margin-top: auto; /* Aligne le bouton parfaitement sur le bas de la carte */
    background: var(--main-teal); border: 1px solid var(--main-teal); border-left: 4px solid var(--main-teal); border-radius: 8px;
    color: #fff; text-decoration: none !important; font-weight: bold; font-size: 14px; transition: all 0.2s ease;
}
.btn-doc-auto:hover, .btn-doc-auto:active { background-color: #eff8f6; color: var(--main-teal) !important; }

/* SECTION ORGANISATEUR */
.orga-section {
    margin-top: 45px; padding: 25px; background: #fdfdfd; border: 1px solid #eee; border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.06);
}
.orga-section .main-title {
    font-weight: bold; color: #2c3e50; text-transform: uppercase; font-size: 15px; margin-bottom: 25px; display: flex; align-items: center; gap: 10px; justify-content: center;
}
.orga-flex { display: flex; gap: 20px; }
.orga-card-info { flex: 1.2; background: #fff; border: 1px solid #eee; border-radius: 8px; padding: 15px; }
.orga-card-info .sub-title { font-weight: bold; font-size: 13px; margin-bottom: 12px; border-bottom: 2px solid #f4f4f4; padding-bottom: 5px; color: #555; }
.orga-card-info .info-list { display: flex; flex-direction: column; gap: 12px; }
.orga-card-info .info-row { display: flex; align-items: center; gap: 10px; font-size: 12px; color: #666; }
.orga-card-info .info-row i { width: 15px; color: var(--main-teal); }
.orga-card-info .info-row a { color: var(--main-teal); text-decoration: none; font-weight: bold; }

.orga-card-share { flex: 1; background: #fff; border: 1px solid #eee; border-radius: 8px; padding: 15px; text-align: center; }
.orga-card-share .sub-title { font-weight: bold; font-size: 13px; margin-bottom: 15px; color: #555; }
.orga-card-share .social-row { display: flex; justify-content: center; gap: 8px; margin-bottom: 15px; }
.orga-card-share .social-btn { color:white; width:32px; height:32px; display:flex; align-items:center; justify-content:center; border-radius:4px; }
.orga-card-share .social-btn.fb { background:#3b5998; }
.orga-card-share .social-btn.insta { background:#e1306c; }
.orga-card-share .social-btn.mail { background:#e74c3c; }
.orga-card-share .btn-agenda { display: block; border: 1px solid #3498db; color: #3498db; padding: 6px; border-radius: 4px; font-size: 10px; text-decoration: none; font-weight: bold; text-align: center; }

.orga-card-qr { flex: 1; background: #fff; border: 1px solid #eee; border-radius: 8px; padding: 15px; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.orga-card-qr .qr-wrapper { background: #f9f9f9; padding: 5px; border-radius: 5px; margin-bottom: 8px; }
.orga-card-qr img { width: 75px; height: 75px; display: block; }
.orga-card-qr .qr-text { font-size: 9px; color: #999; font-weight: bold; text-transform: uppercase; }

/* NAVIGATION MOBILE FLOTTANTE (CACHE SUR PC) */
.mobile-nav-bar { display: none; }

/* --- RESPONSIVE MOBILE --- */
@media (max-width: 850px) {
    header, nav, .menu, #main-nav, .navbar, .top-bar { display: none !important; }
    
    .info-item { 
        margin-bottom: 15px; 
        padding: 10px;
        display: block; 
    }

    .info-item i { margin-bottom: 5px; }
    .card-info-container { padding: 20px 10px; }

    .mobile-nav-bar { 
        display: flex !important; 
        position: fixed; bottom: 0; left: 0; width: 100%; 
        background: #fff; border-top: 2px solid var(--main-teal); 
        z-index: 9999; justify-content: space-around; padding: 10px 0;
        box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
    }
    .mobile-nav-bar a { 
        text-decoration: none; color: #555; font-size: 10px; 
        font-weight: bold; display: flex; flex-direction: column; align-items: center; gap: 4px;
    }
    .mobile-nav-bar a i { font-size: 18px; color: var(--main-teal); }

    .main-grid, .docs-section, .orga-flex { display: block !important; }
    .orga-flex > div { width: 100% !important; min-width: 0 !important; margin-bottom: 15px; box-sizing: border-box; }
    .count-card { width: 22% !important; }
    .doc-card { margin-bottom: 20px; }
    .event-container { padding-bottom: 80px; } 
}