
    /* --- STYLE GÉNÉRAL --- */
/* === CONTENEUR PRINCIPAL === */
/* === SECTION PLEIN ÉCRAN === */
.rstpl-box-parallax {
    /* Dimensions : Prend toute la largeur et toute la hauteur de l'écran */
    width: 100%;
    max-width: none;               /* On enlève la limite de 400px */
    height: 100vh;                 /* 100vh = 100% de la hauteur de la vue */
    
    /* Image d'arrière-plan */
    background-size: cover;
    background-position: top top; /* Image centrée */
    background-attachment: fixed;       /* EFFET PARALLAX (L'image reste fixe quand on scrolle) */
    background-repeat: no-repeat;
    
    /* On enlève les bordures/arrondis qui font "boîte" */
    border: none;
    border-radius: 0;
    box-shadow: none;
    
    /* Positionnement du texte */
    display: flex;
    flex-direction: column;
    justify-content: center;       /* Centre le texte au milieu de la page */
    /* OU mettez flex-end ici si vous voulez le texte tout en bas */
    align-items: center;
}

/* === TEXTE (Plus gros pour le plein écran) === */
.rstpl-box-title {
    background: rgba(0, 0, 0, 0.6);
    color: white;
    padding: 20px 40px;            /* Plus d'espace autour du texte */
    text-align: center;
    font-family: sans-serif;
    font-size: 2rem;               /* Texte plus grand (Titre) */
    border-radius: 10px;           /* Joli arrondi sur le fond noir */
}

/* === BANDEAU TEXTE (Reste inchangé) === */
.rstpl-box-title {
    background: rgba(0, 0, 0, 0.7);
    color: #ffffff;
    width: 100%;
    padding: 12px 10px;
    text-align: center;
    font-family: sans-serif;
    font-size: 1rem;
    box-sizing: border-box; 
}

    /* Conteneur principal */
    .container-suisse {
        display: flex;
        flex-wrap: wrap;
        max-width: 1200px;
        margin: 0 auto;
        padding: 50px 20px;
        gap: 60px; /* Espace un peu plus grand entre les colonnes */
        align-items: flex-start;
    }

    /* --- COLONNE GAUCHE : LE TEXTE --- */
    .col-texte {
        flex: 1;
        min-width: 300px;
    }

    .col-texte h1 {
        font-family: 'Georgia', serif; 
        font-size: 2.5rem;
        color: #2c3e50;
        margin-top: 0;
        line-height: 1.2;
    }

    .col-texte h2 {
        font-family: 'Georgia', serif;
        color: #a63a2a; /* Un rouge un peu plus terne, plus "vieux" */
        font-size: 1.4rem;
        margin-top: 30px;
        margin-bottom: 15px;
        border-bottom: 2px solid #dcd0b9; /* Ligne de séparation couleur parchemin */
        padding-bottom: 10px;
    }

    .col-texte p {
        line-height: 1.8;
        color: #4a4a4a;
        margin-bottom: 15px;
        text-align: justify;
    }
    
    /* Petite intro en italique */
    .intro-text {
        font-style: italic;
        color: #6b7b8c;
        border-left: 4px solid #a63a2a;
        padding-left: 15px;
        margin-bottom: 30px;
        background-color: #fffcf5;
        padding: 15px;
        border-radius: 0 8px 8px 0;
    }

    /* --- COLONNE DROITE : LA CARTE SCOLAIRE VINTAGE --- */
    .col-carte {
        flex: 1;
        min-width: 320px;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    /* Le cadre style "tableau d'école" */
    .cadre-ecole {
        background-color: #fdfbf7; /* Couleur papier vieilli */
        padding: 15px;
        border: 12px solid #8c6d4f; /* Gros cadre effet bois */
        border-radius: 4px;
        box-shadow: 
            inset 0 0 20px rgba(0,0,0,0.1), /* Ombre intérieure pour le relief */
            5px 10px 20px rgba(0,0,0,0.2); /* Ombre portée sur le mur */
        position: relative;
        width: 100%;
        box-sizing: border-box;
    }

    /* Les petits œillets métalliques pour accrocher la carte */
    .cadre-ecole::before, .cadre-ecole::after {
        content: '';
        position: absolute;
        top: -5px;
        width: 18px;
        height: 18px;
        background: radial-gradient(circle at center, #777 20%, #444 100%);
        border-radius: 50%;
        border: 2px solid #333;
        z-index: 2;
    }
    .cadre-ecole::before { left: 30px; }
    .cadre-ecole::after { right: 30px; }

    /* L'image de la carte elle-même */
    .school-map-image {
        width: 100%;
        height: auto;
        display: block;
        /* Petit effet sépia et contraste pour vieillir l'image */
        filter: sepia(20%) contrast(95%); 
        border: 1px solid #dcd0b9;
    }

    .legende-ecole {
        font-family: 'Georgia', serif;
        font-style: italic;
        font-size: 1em;
        color: #7f8c8d;
        margin-top: 25px;
        text-align: center;
        background-color: #fffcf5;
        padding: 10px 20px;
        border-radius: 50px;
        border: 1px solid #dcd0b9;
    }

    /* Responsive mobile */
    @media (max-width: 768px) {
        .col-texte h1 { font-size: 2rem; }
        .container-suisse { gap: 30px; padding-top: 20px; }
        .cadre-ecole { border-width: 8px; } /* Cadre moins épais sur mobile */
    }


/* ------------------------------
   Variables globales
------------------------------ */
:root {
  /* Couleurs principales du texte */
  --primary-color: #c72442;
  --secondary-color: #3a559f;
  --rsl-ternary-color: #3e6b6f;
  --bg-color: #ffffff;
  --text-color: #333333;
  --rsl-warning: #faa732;
  --text-color-hover: #3a559f;
  /* Exemple : --rsl-light: #f5f5f5; (à définir si besoin) */

  /* Espacements */
  --spacing-small: 8px;
  --spacing-medium: 16px;
  --spacing-large: 24px;

  /* Tailles de police */
  --font-size-base: 1rem;
  --font-size-h1: 1.7rem;
  --font-size-h2: 1.5rem;
}

/* ------------------------------
   Global Styles
------------------------------ */
body {
  background-color: var(--bg-color);
  color: var(--text-color);
  padding: var(--spacing-medium);
  /* Pour le contrôle – à retirer une fois validé 
  border: 5px solid red !important;*/
}

/* Pseudo-élément : ligne de surimpression */
body::before {
  content: "";
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background-color: #3E6B6F;
  z-index: 9999;
}

/* ------------------------------
   Typographie & Éléments de base
------------------------------ */
h1 {
  font-size: var(--font-size-h1);
  font-weight: 400;
  line-height: 1;
  color: var(--rsl-ternary-color);
  margin-bottom: var(--spacing-large);
}

h2 {
  font-size: var(--font-size-h2);
  font-weight: 400;
  line-height: 1;
}

h3 {
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 1;
    color: var(--rsl-ternary-color);
}
h4 {
  font-size: 1.1rem;
  font-weight: 400;
  line-height: 1;
  
}

h5 {
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1;
}

h6 {
  font-size: 0.8rem;
  font-weight: 400;
  line-height: 1;
}

/* ------------------------------
   Liens & Titres interactifs (h4 et a)
------------------------------ */
/* Application de la couleur primaire et curseur pointer */
/* Liens & Titres interactifs (h4 et a) */
/* Application de la couleur primaire et curseur pointer */

h4 a {
  color: var(--primary-color);  /* Couleur pour le lien qui se trouve dans le h4 */
  cursor: pointer;
  text-decoration: none;
}
/* Au survol (et au focus pour les liens) : passage à la couleur secondaire */
h4 a:hover,
h4 a:focus {
  color: var(--secondary-color);
}
/* Pour les recettes en <h4> sans lien, affichées en couleur #333 */
h4 {
  color: #333; /* Couleur par défaut pour les h4 sans lien */
}
/* ------------------------------
   Composants spécifiques
------------------------------ */
/* Titre de box */
.rstpl-box-title {
  text-align: center;
  text-transform: none !important;
  font-weight: bold;
  line-height: 2.8rem;
  font-size: 1.8rem;
  color: white;
  padding-top: 20px;
}

/* Zone parallax */
.rstpl-box-parallax {
  background-attachment: fixed;
  background-position: center top;
  background-size: cover;
  width: 100%;
  height: 800px;
}

/* Position top (assurez-vous que la variable --rsl-light est définie) */
.rstpl-top-position {
  background-color: var(--rsl-light);
  color: #ffffff !important;
}

/* Pied de page */
#footer-copyright {
  background-color: #333333;
  color: white;
  padding: 10px 0;
  text-align: center;
  font-size: 0.9rem;
  margin-top: 20px;
}
/* Style pour un beau hr dans le footer */
footer hr {
  border: none;
  height: 4px;
  width: 80%;
  margin: 30px auto;
  background: linear-gradient(to right, transparent, #aaa, transparent);
  transition: width 0.5s ease, background 0.5s ease;
}




/* Liens dans le pied de page */
#footer-copyright a {
  color: var(--rsl-warning);
  text-decoration: none;
}

/* ------------------------------
   Flexbox & Colonnes
------------------------------ */
.wf-column {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.wf-column-haut {
  display: flex;
  flex-direction: column;
  justify-content: flex-start; /* "top" n'étant pas valide */
}

/* ------------------------------
   Éléments de contenu spécifiques
------------------------------ */
/* Citations et texte de recette */
.citation,
.recette-texte {
  font-style: italic;
  display: flex;
  align-items: center;
  min-height: 100px;
}

/* Images fixes */
.fixed-image {
  width: 100%;
  max-width: 300px;
  height: auto;
  margin: 0 auto;
  display: block;
}

/* ------------------------------
   Styles Recettes / Sections
------------------------------ */
/* Section recette */
.recipe-section {
  margin-bottom: 10px;
  padding: 10px;
  border-radius: 5px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

/* Header de recette */
.hd {
  background: #222;
  font-size: 1.8em;
  font-weight: bold;
  color: #fff;
  padding: 20px;
  text-align: center;
}

/* Titre et méta des recettes */
.recette-title {
  text-align: center;
  font-weight: bold;
  font-size: 2em;
  margin-bottom: 5px;
  color: #222;
}

.recette-meta {
  text-align: center;
  color: #666;
  margin-bottom: 20px;
  font-size: 0.9em;
}

/* Conteneur de recette */
.container-rec {
  margin: 30px auto;
  background-color: var(--bg-color);
  padding: 20px 30px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}





/* ------------------------------
   Marges pour divers éléments
------------------------------ */
.rstpl-slideshow-position,
.rstpl-slideshow-full-width-position,
.rstpl-breadcrumbs-position,
.rstpl-higher-position,
.rstpl-higher-fluid-position,
.rstpl-higher-full-width-position,
.rstpl-before-content-position,
.rstpl-all-content-position,
.rstpl-after-content-position,
.rstpl-middle-position,
.rstpl-middle-fluid-position,
.rstpl-middle-full-width-position,
.rstpl-lower-position,
.rstpl-lower-fluid-position,
.rstpl-lower-full-width-position,
.rstpl-bottom-position,
.rstpl-bottom-fluid-position,
.rstpl-bottom-full-width-position {
  margin-bottom: 2.5rem;
}

.rstpl-main-menu-position + section:not(.rstpl-slideshow-position):not(.rstpl-slideshow-full-width-position),
.rstpl-main-menu-full-width-position + section:not(.rstpl-slideshow-position):not(.rstpl-slideshow-full-width-position) {
  margin-top: 2.5rem;
}

/* ------------------------------
   Media Queries
------------------------------ */
@media (min-width: 768px) {
  .rstpl-box-parallax .rstpl-box-title {
    font-size: 2.2rem;
  }
  .rstpl-box-parallax .rstpl-box-content {
    line-height: 2.5rem;
    font-size: 2rem;
    color: white !important;
  }
}

@media (min-width: 320px) {
  .rstpl-box-parallax .rstpl-box-title {
    font-size: 2.2rem;
  }
  .rstpl-box-parallax .rstpl-box-content {
    line-height: 1.6rem;
    font-size: 1.4rem;
    color: white !important;
  }
}

.rstpl-box-parallax {
  background-attachment: fixed;
  background-position: center top;
  background-size: cover;
  width: 100%;
  height: 800px;
  border-radius: 14px; /* Ajustez cette valeur selon l'arrondi souhaité */
  overflow: hidden;    /* Permet de masquer la partie de l'image qui dépasse les bords arrondis */
}



/* Style de la section ingrédients */
.ingredients {
  margin: 20px 0;
  padding: 10px 15px;
  background-color: #f9f9f9;
  border: 1px solid #ddd;
  border-radius: 5px;
}

.ingredients h4 {
  font-size: 1.2rem;
  font-weight: bold;
  color: var(--rsl-ternary-color, #3e6b6f);
  margin-bottom: 10px;
  border-bottom: 2px solid var(--primary-color);
  padding-bottom: 5px;
}

.ingredients ul {
  list-style-type: none;
  margin: 0;
  padding-left: 0;
}

.ingredients ul li {
  margin-bottom: 8px;
  line-height: 1.5;
  font-size: 1rem;
  color: var(--text-color, #333);
}
.steps {
  list-style: decimal;      /* Affichage numéroté */
  padding-left: 20px;       /* Indentation pour la liste */
  margin-bottom: 20px;      /* Espacement sous la liste */
}

.steps li {
  margin-bottom: 10px;      /* Espacement entre chaque étape */
}
/* image pour la page Traditions de nos cantons*/
.img-canton {
    width: 100%;
    max-width: 500px;
    height: auto;
    display: block;
    margin: 10px auto; /* Centre l'image */
}


/*- image du chaudron ----*/


.mod-recette-confirmation {
  margin-top: 1.5rem;
  background-color: #f2f9f1;
  border: 1px solid #cbe0cb;
  padding: 1rem;
  border-radius: 6px;
  text-align: center;
}

.btn-logout {
  display: inline-block;
  margin-top: .8rem;
  padding: .5rem 1rem;
  background-color: #ccc;
  color: #000;
  text-decoration: none;
  border-radius: 4px;
}

.btn-logout:hover {
  background-color: #bbb;
}
/* rectte du jour et images*/
/* ====== Layout Menu du Jour ====== */
.flex-columns {
  display: flex;
  flex-wrap: wrap;
  gap: 2em;
  justify-content: center;
  margin-bottom: 2em;
}

/* Colonnes égales */
.flex-columns > div {
  flex: 1 1 480px;
  max-width: 480px;
}

/* Carte image */
.card-image {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  padding: 1em;
  text-align: center;
}
.card-image img {
  width: 70%;
  height: auto;
  object-fit: contain;
  border-radius: 10px;
  margin: 0 auto;
  display: block;
}
.card-image .no-image {
  margin-top: 0.5em;
  font-size: 0.95em;
  color: #777;
}

/* Carte menu */
.menu-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  padding: 2em;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.menu-card h2 {
  font-size: 1.7em;
  color: #2e6e4c;
  margin-bottom: 1em;
  text-align: center;
}
.menu-card p {
  font-size: 1.15em;
  color: #333;
  line-height: 1.7em;
  text-align: center;
}

/* ==========================================================================
   STYLES POUR LES RECETTES DE CUISINE
   Ajouté le 24.07.2025
   ========================================================================== */
/* --- Style pour les Cartes de Recettes --- */

.carte-recette {
    border: 1px solid #e0e0e0; /* Bordure légère */
    border-radius: 8px;          /* Bords arrondis */
    overflow: hidden;            /* Cache ce qui dépasse des bords arrondis */
    margin-bottom: 2rem;         /* Espace entre les cartes */
    background-color: #ffffff;   /* Fond blanc */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05); /* Ombre discrète */
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

.carte-recette:hover {
    transform: translateY(-5px); /* Effet de surélévation au survol */
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
}

.carte-recette-lien {
    display: block;
    text-decoration: none;
    color: inherit; /* Hérite la couleur du texte normal */
}

.carte-recette-image {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover; /* Assure que l'image couvre bien l'espace */
    max-height: 250px; /* Hauteur maximale de l'image */
}

.carte-recette-corps {
    padding: 1.5rem; /* Espace intérieur */
}

.carte-recette-titre {
    margin-top: 0;
    margin-bottom: 0.75rem;
    font-size: 1.4rem;  /* Taille du titre */
    color: #333;
}

.carte-recette-infos {
    display: flex;
    gap: 1rem; /* Espace entre les icônes d'info */
    margin-bottom: 1rem;
    color: #666;
    font-size: 0.9rem;
}

.carte-recette-infos span {
    display: flex;
    align-items: center;
}

.carte-recette-description {
    font-size: 1rem;
    color: #555;
    line-height: 1.5;
}
/* date de fete--*/

   
        .container-fete{
            max-width: 900px;
            margin: 0 auto;
            background-color: #fff;
            padding: 30px;
            border-radius: 8px;
            box-shadow: 0 4px 8px rgba(0,0,0,0.1);
        }
        h1, h2 { 
            border-bottom: 2px solid #eee;
            padding-bottom: 10px;
        }
        h1 {
            text-align: center;
            margin-bottom: 30px;
        }
        table {
            width: 100%;
            border-collapse: collapse;
            margin-bottom: 30px;
        }
        th, td {
            padding: 12px;
            text-align: left;
            border-bottom: 1px solid #ddd;
        }
        th {
            background-color: #f8f8f8;
            font-weight: 600;
        }
        tr:hover {
            background-color: #f1f1f1;
        }
        .national {
            font-weight: bold;
        }
        .regional {
            font-style: italic;
        }
        .note {
            font-size: 0.9em;
            color: #666;
            margin-top: -20px;
            margin-bottom: 30px;
            text-align: center;
        }
        footer {
            text-align: center;
            margin-top: 40px;
            font-size: 0.8em;
            color: #888;
        }

/* image hover et plus-*/

img {
  /* Pour la responsivité */
  max-width: 100%;
  height: auto;
  
  /* Pour l'apparence */
  border: 1px solid #999;
  border-radius: 0.5rem; /* Correspond à rounded-3 */
  
  /* Pour l'espacement */
  margin-bottom: 1rem;
}
/*--enleve la bordure par class--*/
.no-border {
  border: none !important;
}

img[src="/images/Viandes/image-indisponible.webp"] {
  border: none !important;
}
/* Cible n'importe quelle balise img dont le src CONTIENT "image-indisponible.webp" */
img[src*="/image-indisponible-recette.webp"] {
  border: none !important;
}
/*img:hover {
    box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22);}/* Shadow with offset, blur, and transparency */
/* parametre du module-*/

.ma-carte {
  background: #f5f5f5;
  padding: 1.5rem;
}
.module-ombrage {
  box-shadow: 0 2px 6px rgba(0,0,0,.1);
}
.arrondi {
  border-radius: 8px;
}

  /* Style simple pour le bouton */
  .btn-lien {
    display: inline-block;
    padding: 12px 24px;
    margin-top: 20px;
    font-size: 16px;
    font-weight: bold;
    color: #fff;
    background-color: #d92323; /* Rouge suisse */
    text-align: center;
    text-decoration: none;
    border-radius: 5px;
    transition: background-color 0.3s ease;
  }

    .btn-action:hover {
  text-shadow: 0 1px 2px rgba(0,0,0,.4);
}

/* Conteneur général */
.custom-tab-container {
  max-width: 900px;
  margin: 2rem auto;
  font-family: 'Montserrat', sans-serif;
  color: #333;
}

/* Titre */
.custom-tab-container h2 {
  font-family: 'Playfair Display', serif;
  text-align: center;
  margin-bottom: 1.5rem;
  font-size: 2rem;
  color: #444;
}

/* Nav onglets */
.custom-tab-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
  background: #fafafa;
  padding: 0.5rem;
  border-radius: 50px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

/* Boutons */
.custom-tab-nav button {
  background: transparent;
  border: none;
  padding: 0.6rem 1.2rem;
  font-size: 0.95rem;
  color: #666;
  border-radius: 50px;
  position: relative;
  cursor: pointer;
  transition: color 0.3s ease;
}


/*- 2. Style CSS --*/

.art-tabs-nav {
display: flex;
flex-wrap: wrap;
gap: 0.6rem;
margin-bottom: 1rem;
}
.art-tabs-nav li {
list-style: none;
padding: 0.5rem 1rem;
background: #eee;
border-radius: 12px;
cursor: pointer;
transition: background 0.3s;
}
.art-tabs-nav li.active {
background: linear-gradient(135deg, #ff7a18, #af002d);
color: #fff;
}
.art-tab-panel {
display: none;
}
.art-tab-panel.active {
display: block;
animation: fadeIn 0.4s ease both;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(8px); }
to { opacity: 1; transform: translateY(0); }
}


/* --- Variables pour changer les couleurs facilement --- */
:root {
--card-bg-color: #f8f9fa; /* Couleur de fond des cartes */
--card-text-color: #333; /* Couleur du texte */
--card-icon-color: #0056b3; /* Couleur de l'icône */
--card-border-color: #dee2e6; /* Couleur de la bordure */
--card-hover-color: #e9ecef; /* Couleur au survol */
}

/* --- La grille qui contient toutes les cartes --- */
.recipe-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); /* Grille responsive */
gap: 20px; /* Espace entre les cartes */
padding: 0;
list-style-type: none;
}

/* --- Le style de chaque carte --- */
.recipe-card {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 25px 15px;
background-color: var(--card-bg-color);
border: 1px solid var(--card-border-color);
border-radius: 8px;
text-align: center;
text-decoration: none;
color: var(--card-text-color);
transition: transform 0.2s ease-in-out, background-color 0.2s ease-in-out;
font-size: 1.1em;
font-weight: bold;
min-height: 120px;
}

/* --- Effet au survol de la souris --- */
.recipe-card:hover {
transform: translateY(-5px); /* Fait légèrement monter la carte */
background-color: var(--card-hover-color);
text-decoration: none;
color: var(--card-icon-color);
}

/* --- Style de l'icône --- */
.recipe-card i {
font-size: 2.5em; /* Taille de l'icône */
margin-bottom: 15px;
color: var(--card-icon-color);
}
.recipe-card.featured {
    /* ... (le style existant) ... */
    justify-content: space-between; /* Pour bien espacer les éléments */
}
.card-main-link {
    display: contents; /* Astuce pour que le lien se comporte comme son contenu */
    color: inherit;
    text-decoration: none;
}
.recipe-card .card-button {
    /* ... (le style du bouton que j'ai donné plus haut) ... */
    margin-top: 15px;
}


.subcategory-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 15px;
margin-top: 20px;
}
.subcategory-button {
display: block;
padding: 20px;
background-color: #f8f9fa;
border: 1px solid #dee2e6;
border-radius: 8px;
text-align: center;
text-decoration: none;
color: #0056b3;
font-size: 1.2em;
font-weight: bold;
transition: transform 0.2s, background-color 0.2s;
}
.subcategory-button:hover {
transform: translateY(-5px);
background-color: #e9ecef;
color: #003d82;
}

  /* Vous pouvez ajuster la nuance de bleu selon vos préférences */
  .text-blue-custom {
    color: #af203a !important; /* Bleu Bootstrap par défaut, utilisez !important si d'autres styles priment */
  }

  /* Pour les icônes Font Awesome, il faut parfois cibler l'icône directement si le parent a un style plus fort */
  .text-blue-custom i {
    color: #AE2C15 !important;
  }

  /* S'assurer que le lien n'est pas souligné et que la couleur reste au survol si nécessaire */
  .text-blue-custom:hover {
    color: #b42d46 !important; /* Un bleu légèrement plus foncé au survol */
    text-decoration: none;
  }
    /* Conteneur principal : active le mode "flex" (côte à côte) */
    .suisse-container {
        display: flex;
        flex-wrap: wrap; /* Permet de passer à la ligne sur petit écran */
        align-items: center; /* Centre verticalement le texte par rapport à la carte */
        max-width: 1200px;
        margin: 0 auto;
        padding: 40px 20px;
        font-family: 'Georgia', 'Playfair Display', serif; /* Police élégante */
        gap: 40px; /* Espace entre le texte et la carte */
    }

    /* Colonne de Gauche : Le Texte */
    .col-texte {
        flex: 1; /* Prend 1 part de l'espace */
        min-width: 300px; /* Ne devient jamais plus petit que 300px */
    }

    /* Colonne de Droite : La Carte */
    .col-carte {
        flex: 1; /* Prend 1 part de l'espace (taille égale au texte) */
        min-width: 300px;
        text-align: center;
    }

    /* Styles typographiques pour votre texte */
    .col-texte h1 {
        font-size: 2.2rem;
        color: #2c3e50;
        margin-bottom: 20px;
    }
    .col-texte h2 {
        font-size: 1.5rem;
        color: #c0392b; /* Rouge suisse élégant */
        margin-top: 30px;
        margin-bottom: 10px;
    }
    .col-texte p {
        font-family: 'Helvetica', 'Arial', sans-serif; /* Corps de texte lisible */
        line-height: 1.6;
        color: #555;
        margin-bottom: 15px;
        padding-left: 15px;
        border-left: 3px solid #eee; /* Petite ligne décorative à gauche */
    }

    /* Style de la carte (Image ou SVG) */
    .carte-suisse-img {
        width: 100%;
        height: auto;
        max-width: 500px;
        /* Ombre portée pour donner du relief à la carte */
        filter: drop-shadow(0 10px 15px rgba(0,0,0,0.15)); 
        transition: transform 0.3s ease;
    }
    
    .carte-suisse-img:hover {
        transform: scale(1.02); /* Effet de zoom léger au survol */
    }

.container-suisse {
        display: flex;
        flex-wrap: wrap;
        max-width: 1200px;
        margin: 0 auto;
        padding: 50px 20px;
        gap: 50px;
        align-items: flex-start;
    }

    /* --- COLONNE GAUCHE : LE TEXTE --- */
    .col-texte {
        flex: 1;
        min-width: 300px;
    }

    .col-texte h1 {
        font-family: 'Playfair Display', Georgia, serif; /* Police élégante pour titres */
        font-size: 2.5rem;
        color: #2c3e50;
        margin-top: 0;
    }

    .col-texte h2 {
        font-family: 'Playfair Display', Georgia, serif;
        color: #c0392b; /* Rouge Suisse */
        font-size: 1.4rem;
        margin-top: 30px;
        border-bottom: 1px solid #eee;
        padding-bottom: 10px;
    }

    .col-texte p {
        line-height: 1.8;
        color: #555;
        margin-bottom: 15px;
        text-align: justify;
    }

    /* --- COLONNE DROITE : LA CARTE MOSAÏQUE --- */
    .col-carte {
        flex: 1;
        min-width: 320px;
        display: flex;
        flex-direction: column;
        align-items: center;
        background: white;
        padding: 30px;
        border-radius: 15px;
        box-shadow: 0 10px 30px rgba(0,0,0,0.05);
    }

    /* Grille de la carte */
    .suisse-grid {
        display: grid;
        grid-template-columns: repeat(9, 40px); /* 9 colonnes */
        grid-template-rows: repeat(6, 40px);    /* 6 lignes */
        gap: 6px;
    }

    /* Style des "Tuiles" Cantons */
    .canton {
        width: 40px;
        height: 40px;
        background-color: #ecf0f1;
        color: #7f8c8d;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 12px;
        font-weight: bold;
        text-decoration: none;
        border-radius: 4px;
        transition: all 0.3s ease;
        cursor: pointer;
        position: relative;
    }

    /* Effet au survol */
    .canton:hover {
        background-color: #e74c3c; /* Rouge vif */
        color: white;
        transform: translateY(-3px);
        box-shadow: 0 5px 10px rgba(231, 76, 60, 0.4);
        z-index: 10;
    }
    
    /* Info-bulle (Tooltip) au survol */
    .canton:hover::after {
        content: attr(data-name); /* Affiche le nom complet */
        position: absolute;
        bottom: 50px;
        left: 50%;
        transform: translateX(-50%);
        background-color: #2c3e50;
        color: white;
        padding: 5px 10px;
        border-radius: 4px;
        white-space: nowrap;
        font-size: 14px;
        pointer-events: none;
    }
    
    /* Petite flèche sous l'info-bulle */
    .canton:hover::before {
        content: '';
        position: absolute;
        bottom: 40px;
        left: 50%;
        transform: translateX(-50%);
        border: 5px solid transparent;
        border-top-color: #2c3e50;
    }

    /* --- POSITIONNEMENT GÉOGRAPHIQUE (GRID) --- */
    /* On place chaque canton manuellement pour dessiner la Suisse */
    /* Ligne 1 */
    .bs { grid-column: 3; grid-row: 1; }
    .sh { grid-column: 5; grid-row: 1; }
    .tg { grid-column: 6; grid-row: 1; }
    
    /* Ligne 2 */
    .ju { grid-column: 2; grid-row: 2; }
    .bl { grid-column: 3; grid-row: 2; }
    .ag { grid-column: 4; grid-row: 2; }
    .zh { grid-column: 5; grid-row: 2; }
    .sg { grid-column: 7; grid-row: 2; }
    .ar { grid-column: 8; grid-row: 2; }
    .ai { grid-column: 9; grid-row: 2; }

    /* Ligne 3 */
    .ne { grid-column: 2; grid-row: 3; }
    .so { grid-column: 3; grid-row: 3; }
    .lu { grid-column: 4; grid-row: 3; }
    .zg { grid-column: 5; grid-row: 3; }
    .sz { grid-column: 6; grid-row: 3; }
    .gl { grid-column: 7; grid-row: 3; }

    /* Ligne 4 */
    .vd { grid-column: 1; grid-row: 4; }
    .fr { grid-column: 2; grid-row: 4; }
    .be { grid-column: 3; grid-row: 4; }
    .ow { grid-column: 4; grid-row: 4; }
    .nw { grid-column: 5; grid-row: 4; }
    .ur { grid-column: 6; grid-row: 4; }
    .gr { grid-column: 8; grid-row: 4; grid-row-end: span 2; height: 86px; } /* Grisons est grand ! */

    /* Ligne 5 */
    .ge { grid-column: 1; grid-row: 5; margin-top: 10px; }
    .vs { grid-column: 3; grid-row: 5; grid-column-end: span 2; width: 86px; } /* Valais est large */
    .ti { grid-column: 6; grid-row: 5; grid-row-end: span 2; height: 86px; } /* Tessin descend bas */

    @media (max-width: 768px) {
        .suisse-grid { transform: scale(0.8); } /* Rétrécir un peu sur mobile */
    }
/* Styles spécifiques pour le drapeau suisse */
    .swiss-flag-container {
        background-color: #DA291C; /* Rouge officiel de la Suisse */
        border-radius: 0.5rem;
        padding: 3rem 1rem;
    }
    
    .canton-btn {
        width: 55px;
        height: 55px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: #DA291C !important;
        font-size: 1.1rem;
        transition: all 0.2s ease-in-out;
        text-decoration: none;
    }
    
    .canton-btn:hover {
        transform: scale(1.1);
        background-color: #ffffff;
        box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.2) !important;
        z-index: 2;
    }

    /* Ajustement de la taille de la croix pour les petits écrans (mobiles) */
    @media (max-width: 576px) {
        .canton-btn {
            width: 40px;
            height: 40px;
            font-size: 0.85rem;
        }
        .swiss-flag-container {
            padding: 2rem 0.5rem;
        }
    }

        body {
            background-color: #f8f9fa; /* Fond gris très clair */
        }
        .cd-cover {
            transition: transform 0.3s ease, box-shadow 0.3s ease;
            aspect-ratio: 1 / 1; /* Force l'image à être carrée (format CD) */
            object-fit: cover;   /* Évite de déformer l'image */
        }
        .cd-cover:hover {
            transform: scale(1.05); /* Zoom au survol */
            box-shadow: 0 10px 20px rgba(0,0,0,0.2); /* Ombre au survol */
        }
        .song-title a {
            text-decoration: none;
            color: #333;
            transition: color 0.2s;
        }
        .song-title a:hover {
            color: #0d6efd; /* Couleur bleue Bootstrap au survol du texte */
        }
/* --- TRANSFORMATION DU PLAN DE SITE OSMAP EN CARTES --- */
/* --- TRANSFORMATION DU PLAN DE SITE OSMAP EN GRILLE (METHODE FLEXBOX FORTE) --- */

/* 1. Le conteneur principal devient une grille Flexbox */
.osmap-sitemap-html {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 2rem !important; /* Espace entre les colonnes */
    align-items: flex-start !important; /* Empêche les colonnes de s'étirer anormalement */
    margin-top: 2rem;
    margin-bottom: 3rem;
    width: 100%;
}

/* 2. On cible les blocs "menu" pour créer les 3 colonnes */
.osmap-sitemap-html > ul, 
.osmap-sitemap-html > div {
    /* Largeur de 33% (moins l'espace) = 3 colonnes */
    flex: 0 0 calc(33.333% - 1.35rem) !important; 
    box-sizing: border-box;
    margin: 0 !important; /* Annule les marges natives */
    
    /* Design de la carte (Corps) */
    background-color: #f8f9fa !important;
    border: 1px solid #dee2e6 !important;
    border-top: none !important;
    border-radius: 0 0 0.375rem 0.375rem !important;
    padding: 0 !important; /* Le padding sera sur la liste interne */
    box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.075) !important;
}

/* 3. Le titre du menu (En-tête bleu de la carte) */
.osmap-sitemap-html h2.title {
    background-color: #0d6efd !important;
    color: #ffffff !important;
    font-size: 1.25rem;
    padding: 1rem 1.25rem !important;
    margin: 0 !important;
    border-radius: 0.375rem 0.375rem 0 0 !important;
    width: 100%;
    box-sizing: border-box;
}

/* 4. Le contenu de la liste */
.osmap-sitemap-html > ul > li, 
.osmap-sitemap-html > div > ul {
    list-style-type: none !important;
    padding: 1.5rem 1.5rem 1.5rem 2rem !important;
    margin: 0 !important;
}

/* 5. Style des petits sous-menus internes */
.osmap-sitemap-html ul ul {
    border-left: 2px solid #dee2e6 !important;
    padding-left: 1rem !important;
    margin-top: 0.5rem !important;
    list-style-type: disc !important;
}

/* 6. Animation des liens */
.osmap-sitemap-html a {
    text-decoration: none !important;
    color: #495057 !important;
    transition: color 0.2s;
    line-height: 1.8;
}

.osmap-sitemap-html a:hover {
    color: #0d6efd !important;
    text-decoration: underline !important;
}

/* --- RESPONSIVE : Adaptation pour les écrans --- */
@media (max-width: 992px) {
    .osmap-sitemap-html > ul, .osmap-sitemap-html > div {
        flex: 0 0 calc(50% - 1rem) !important; /* 2 colonnes sur tablette */
    }
}
@media (max-width: 768px) {
    .osmap-sitemap-html > ul, .osmap-sitemap-html > div {
        flex: 0 0 100% !important; /* 1 colonne sur mobile */
    }
}

