@charset "UTF-8";

/* 1) Base: rien de lourd, pas de reset agressif */
html, body { margin: 0; padding: 0; }
body { text-rendering: optimizeLegibility; }

/* 2) Layout: compense la navbar fixed-top (adapte si ta navbar est plus haute) */
.page-offset {
  padding-top: 76px;
}

/* 3) Typo: garde le justify uniquement sur desktop (sur mobile c'est souvent moche) */
@media (min-width: 992px) {
  p { text-align: justify; }
}

/* 4) Calendrier: style cible, pas global */
.calendar-table tbody { background: #f8f9fa; }
.calendar-table td, .calendar-table th { vertical-align: middle; }
.calendar-cells-25 td { height: 25px; }

/* Weekend (optionnel) */
.calendar-weekend { color: #555555; font-weight: 700; }

/* Jour ferie (si tu en as) */
.calendar-holiday { background: rgb(228, 193, 253); font-weight: 700; }

/* Bordures noires (utile pour print) */
.table-bordered-black,
.table-bordered-black th,
.table-bordered-black td {
  border: 1px solid #000 !important;
}

/* 5) Images: evite CLS */
.figure-img,
.card-img-top {
  width: 100%;
  height: auto;
  display: block;
}

/* Si tes légendes sont trop claires */
.figure-caption {
    color: #444444; 
}
/* 6) Cartes: limite ombres lourdes (shadow-sm) */
.card { border: 0; }
.card-header-lite { padding: .75rem 1rem; }

/* 7) Footer links */
.footer-link { color: #fff; text-decoration: none; }
.footer-link:hover { text-decoration: underline; }

/* 8) Print: optionnel (calendriers) */
@media print {
  .no-print { display: none !important; }
  body { padding-top: 0 !important; }
  .page-offset { padding-top: 0 !important; }
}

/* Taille texte custom entre fs-5 et fs-4 */
.medium18{
  font-size: 1.09rem; /* ~18px */
  line-height: 1.45;
}


/* Améliore la zone de clic sur mobile */
.footer-link, .nav-link, .btn {
  min-height: 44px; /* Standard recommandé par Google */
  display: inline-flex;
  align-items: center;
}

/* Ajoute un peu d'espace pour l'accessibilité mobile */
.figure-caption a, .footer-link {
    display: inline-block;
    padding: 5px 0; 
}

/* Un rouge plus profond pour garantir le contraste avec le blanc */
.bg-calendario-rojo {
    background-color: rgb(204, 0, 0) !important; /* Rouge Drapeau Espagnol */
    color: #ffffff !important;
}

/* Si tu utilises des liens dans ce bloc, force le blanc
.bg-calendario-rojo a {
    color: #ffffff;
    text-decoration: underline;  Aide à l'accessibilité pour identifier le lien 
}*/

/* Effet d'ombre douce au survol, sans mouvement pour éviter les clics accidentels AdSense */
.shadow-hover {
    transition: box-shadow 0.2s ease-in-out, border-color 0.2s ease-in-out;
}

.shadow-hover:hover {
    box-shadow: 0 8px 16px rgba(0,0,0,0.15); /* L'ombre s'accentue */
    border-color: #0d6efd !important; /* La bordure change de couleur (ex: bleu Bootstrap) */
}

/* Au survol, le fond devient bleu et le texte blanc */
.dropdown-item:hover {
    background-color: #0d6efd !important; /* Le bleu Bootstrap */
    color: #ffffff !important;           /* Texte blanc pour le contraste */
}


.cursor-pointer {
    cursor: pointer;
}

/* Supprime la petite flèche noire moche par défaut sur certains navigateurs */
details summary::-webkit-details-marker {
    display: none;
}

.faq-item[open] .icon-plus {
    transform: rotate(45deg); /* Transforme le + en x quand c'est ouvert */
    transition: transform 0.2s ease;
}

.faq-item summary:hover h3 {
    color: #0d6efd; /* Le titre passe en bleu au survol */
    transition: color 0.2s ease;
}

.hover-zoom { transition: transform 0.3s ease; }
.hover-zoom:hover { transform: scale(1.03); }

.hover-raise {
    /* On utilise transform pour la performance */
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
    /* Optimisation pour les navigateurs modernes */
    will-change: transform; 
}

.hover-raise:hover {
    transform: translateY(-5px);
    /* Utilise une ombre légère pour ne pas surcharger le rendu */
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.1) !important;
}

/* Optionnel : Désactiver l'animation si l'utilisateur a activé 
   le mode "réduction des mouvements" (critère Accessibilité 100) */
@media (prefers-reduced-motion: reduce) {
    .hover-raise {
        transition: none;
    }
    .hover-raise:hover {
        transform: none;
    }
}

/* Classe personnalisée pour le fond violet */
.bg-morado {
    background-color: #6f42c1 !important;
    color: #ffffff !important; /* Pour que le texte reste bien blanc et lisible */
}

/* Optionnel : Si tu veux aussi un badge ou une bordure assortie */
.border-morado {
    border-color: #6f42c1 !important;
}

.text-morado {
    color: #6f42c1 !important;
}

/* Bouton plein Morado */
.btn-morado {
    background-color: #6f42c1 !important;
    border-color: #6f42c1 !important;
    color: #fff !important;
}

.btn-morado:hover {
    background-color: #59359a !important; /* Un ton plus foncé pour le survol */
    border-color: #59359a !important;
    color: #fff !important;
}

/* Bouton Outline Morado (celui que tu as demandé) */
.btn-outline-morado {
    color: #6f42c1 !important;
    border-color: #6f42c1 !important;
    background-color: transparent !important;
}

.btn-outline-morado:hover {
    background-color: #6f42c1 !important;
    color: #fff !important;
}

/* On n'oublie pas le badge aussi pour tes liens PDF */
.badge.bg-morado {
    background-color: #6f42c1 !important;
    color: #fff !important;
}

/* Force l'alignement à droite pour éviter le débordement horizontal */
.dropdown-menu-end {
    right: 0 !important;
    left: auto !important;
}

/* Optionnel : Assure que le menu s'affiche bien au-dessus du contenu */
.dropdown-menu.show {
    display: block;
    position: absolute;
    z-index: 1000;
}


/* --- Correction d'alignement uniquement --- */

/* 1. Sur Mobile : On veut que le menu s'empile au centre */
@media (max-width: 991.98px) {
    .navbar-nav .dropdown-menu {
        position: static !important; /* Force l'empilement vertical */
        float: none !important;
        /* Ici, on ne définit PAS de background, il gardera celui de ton CSS actuel */
    }
}

/* 2. Sur Desktop : On empêche le débordement à droite */
@media (min-width: 992px) {
    .dropdown-menu-end {
        right: 0 !important;
        left: auto !important;
    }
}

/* 3. Activation (nécessaire pour le script) */
.dropdown-menu.show {
    display: block !important;
}

/* --- Correction Desktop uniquement --- */
@media (min-width: 992px) {
    /* 1. On aligne Festivos à droite pour éviter qu'il sorte de l'écran */
    #dropFestivos + .dropdown-menu {
        right: 0 !important;
        left: auto !important;
    }

    /* 2. On laisse Semanas et les autres se centrer naturellement */
    #dropSemanas + .dropdown-menu,
    #dropImprimir + .dropdown-menu {
        left: 50% !important;
        right: auto !important;
        transform: translateX(-50%); /* Centre le menu par rapport au bouton */
    }
}

/* Activation indispensable pour le script */
.dropdown-menu.show {
    display: block !important;
}

#dropSemanas + .dropdown-menu .dd-wrap{
  white-space: normal !important;
  overflow-wrap: anywhere;
}

html {
  scroll-behavior: smooth;
}
/* Optionnel : ajoute un décalage si tu as un menu collant (sticky) */
:target {
  scroll-margin-top: 80px; 
}
