/* ===========================================================================
   GUIDE DE LECTURE - FEUILLE DE STYLE TRAIL DE FANSON
   ===========================================================================
   Ce fichier définit l'apparence du site, tandis que les fichiers .html
   définissent ses textes, liens et sections.

   REPÈRES POUR MODIFIER LE SITE :
   - Un sélecteur comme .bouton vise les éléments ayant class="bouton".
   - Une propriété comme color: #203629; règle la couleur du texte.
   - background-color règle la couleur du fond.
   - padding ajoute de l'espace à l'INTÉRIEUR d'un élément.
   - margin ajoute de l'espace à l'EXTÉRIEUR d'un élément.
   - font-size règle la taille du texte ; border définit une bordure.
   - Les blocs @media adaptent le site aux téléphones et tablettes.
   - En CSS, les commentaires utilisent des délimiteurs spéciaux.

   COULEURS OFFICIELLES :
   Vert foncé : #203629 ; beige : #C9B394 ; crème : #F5F1E8.
   CONSEIL : privilégier l'ajustement d'une règle existante, plutôt que
   d'empiler plusieurs fois la même règle en bas du fichier.
   ========================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600&family=Barlow+Condensed:ital,wght@0,500;0,600;0,700;1,600&display=swap');

/* CHARTE GRAPHIQUE OFFICIELLE */

:root {
    --vert: #203629;
    --beige: #C9B394;
    --creme: #F5F1E8;
    --blanc: #FFFFFF;
}

/* PARAMETRES GENERAUX */

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background-color: var(--creme);
    color: var(--vert);
    font-family: 'Barlow', Arial, sans-serif;
}

/* NAVIGATION */

nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 25px 8%;
    background: var(--creme);
}

nav strong {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 26px;
    font-weight: 600;
}

nav a {
    color: var(--vert);
    text-decoration: none;
    font-weight: 600;
}

/* ACCUEIL */

.hero {
    min-height: 600px;
    background: var(--vert);
    color: var(--creme);
    padding: 90px 10%;

    display: flex;
    flex-direction: column;
    justify-content: center;
}

.hero h1 {
    font-family: 'Barlow Condensed', sans-serif;
    font-style: italic;
    font-weight: 600;
    font-size: clamp(65px, 10vw, 145px);
    line-height: 0.85;
    letter-spacing: 0;
    margin: 25px 0;
}

.hero p {
    font-size: 18px;
}

/* BOUTONS */

.bouton {
    display: inline-block;
    padding: 16px 30px;
    background: var(--beige);
    color: var(--vert);
    text-decoration: none;

    font-family: 'Barlow Condensed', sans-serif;
    font-size: 20px;
    font-weight: 600;

    width: fit-content;
    margin-top: 25px;

    transition: 0.3s;
}

.bouton:hover {
    background: var(--creme);
    transform: translateY(-3px);
}

/* SECTIONS */

section {
    padding: 90px 10%;
}

section h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(36px, 5vw, 60px);
    font-weight: 600;
    margin-top: 0;
}

/* CARTES DES PARCOURS */

.cartes {
    display: grid;
    grid-template-columns:
        repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
}

.carte {
    background: white;
    padding: 35px;
    border-bottom: 4px solid var(--beige);
}

.carte h3 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 32px;
    margin-top: 0;
}

/* SMARTPHONES */

@media (max-width: 600px) {
    nav {
        padding: 20px 6%;
    }

    .hero {
        min-height: 480px;
        padding: 70px 6%;
    }

    section {
        padding: 60px 6%;
    }
}

/* =====================================
   NAVIGATION PRINCIPALE
===================================== */

.navigation {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 20px 4%;
    position: relative;
    z-index: 10;
}

.marque {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 25px;
    font-weight: 600;
    white-space: nowrap;
}

.liens-navigation {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    justify-content: center;
}

.liens-navigation a {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 17px;
    transition: color 0.2s;
}

.liens-navigation a:hover {
    color: #947B5C;
}

.bouton-nav {
    padding: 13px 19px;
    background: var(--vert);
    color: var(--creme);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 17px;
    white-space: nowrap;
}

.navigation .bouton-nav {
    color: var(--creme);
}

.menu-mobile {
    display: none;
}

/* =====================================
   SECTIONS DU SITE
===================================== */

section {
    scroll-margin-top: 20px;
}

.sur-titre {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #967D5C;
}

.section-verte {
    background: var(--vert);
    color: var(--creme);
}

.section-verte .sur-titre {
    color: var(--beige);
}

.section-verte .carte {
    color: var(--vert);
}

.section-beige {
    background: var(--beige);
}

.carte span {
    display: block;
    margin-top: 30px;
    font-size: 14px;
    font-weight: 600;
    color: #685743;
}

.etiquette {
    display: inline-block;
    background: var(--beige);
    color: var(--vert);
    padding: 14px 22px;
    font-weight: 600;
    margin-top: 15px;
}

.question {
    border-bottom: 1px solid var(--beige);
    padding: 20px 0;
}

.question summary {
    cursor: pointer;
    font-weight: 600;
    font-size: 19px;
}

.question p {
    line-height: 1.7;
}

/* =====================================
   PIED DE PAGE
===================================== */

footer {
    background: var(--vert);
    color: var(--creme);
    padding: 70px 10% 30px;
}

footer h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 48px;
    margin: 0 0 15px;
}

.copyright {
    border-top: 1px solid var(--beige);
    margin-top: 60px;
    padding-top: 20px;
    font-size: 13px;
}

/* =====================================
   MENU SUR SMARTPHONE
===================================== */

@media (max-width: 1100px) {

    .liens-navigation,
    .bouton-nav {
        display: none;
    }

    .menu-mobile {
        display: block;
        position: relative;
    }

    .menu-mobile summary {
        cursor: pointer;
        font-weight: 600;
        list-style: none;
    }

    .menu-mobile-liens {
        position: absolute;
        right: 0;
        top: 35px;
        width: 220px;
        background: var(--creme);
        border: 1px solid var(--beige);
        padding: 20px;
        box-shadow: 0 8px 25px #20362920;
    }

    .menu-mobile-liens a {
        display: block;
        padding: 9px 0;
    }
}

@media (max-width: 600px) {

    .navigation {
        padding: 20px 6%;
    }

    .marque {
        font-size: 23px;
    }

    .carte {
        padding: 25px;
    }
}


/* ========================================
   NAVIGATION LARGE - NOUVELLE VERSION
======================================== */

.navigation {
    width: 100%;
    padding: 20px 3%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px;
    min-height: 95px;
}

.marque {
    flex: 0 0 auto;
    font-size: 27px;
    white-space: nowrap;
    text-decoration: none;
}

.liens-navigation {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-evenly;
    gap: 12px;
    min-width: 0;
}

.liens-navigation a {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 18px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.2s;
}

.liens-navigation a:hover {
    color: #947B5C;
}

.bouton-nav {
    flex: 0 0 auto;
    padding: 17px 25px;
    font-size: 19px;
    text-align: center;
}

/* Menu mobile et tablette */

@media (max-width: 1250px) {

    .navigation {
        padding: 20px 5%;
        min-height: 80px;
    }

    .liens-navigation,
    .bouton-nav {
        display: none;
    }

    .menu-mobile {
        display: block;
        margin-left: auto;
    }
}

@media (max-width: 600px) {

    .navigation {
        padding: 18px 5%;
        min-height: 70px;
    }

    .marque {
        font-size: 23px;
    }
}


/* ========================================
   SECTION BOULANGERIE
======================================== */

.section-boulangerie {
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 0;
    background: var(--creme);
    min-height: 550px;
}

.image-boulangerie {
    min-height: 550px;
    overflow: hidden;
    background: var(--beige);
}

.image-boulangerie img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.contenu-boulangerie {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding: 80px 12%;
}

.contenu-boulangerie h2 {
    font-size: clamp(40px, 5vw, 72px);
    line-height: 0.95;
    margin-bottom: 30px;
}

.contenu-boulangerie p {
    font-size: 18px;
    line-height: 1.7;
}

@media (max-width: 800px) {

    .section-boulangerie {
        grid-template-columns: 1fr;
    }

    .image-boulangerie {
        min-height: 300px;
        height: 350px;
    }

    .contenu-boulangerie {
        padding: 60px 7%;
    }
}


/* ========================================
   CARTES DES PARCOURS
======================================== */

.carte {
    position: relative;
    min-height: 260px;
    padding: 35px;
    background: #FFFFFF;
    border-bottom: 4px solid var(--beige);
    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;
}

.carte:hover {
    transform: translateY(-7px);
    box-shadow: 0 15px 35px rgba(32, 54, 41, 0.12);
}

.carte h3 {
    font-size: 38px;
    line-height: 1;
    margin-bottom: 25px;
}

.carte p {
    font-size: 16px;
    line-height: 1.6;
}

.carte span {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 16px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}


/* ========================================
   PARTENAIRES - TRAIL DE FANSON
======================================== */

.section-partenaires {
    padding: 100px 8%;
    background: var(--creme);
}

/* Introduction */

.partenaires-intro {
    text-align: center;
    max-width: 750px;
    margin: 0 auto 75px;
}

.partenaires-intro h2 {
    font-size: clamp(48px, 6vw, 85px);
    line-height: 1;
    margin: 15px 0 25px;
}

.partenaires-intro p {
    line-height: 1.7;
}

/* Groupes de partenaires */

.groupe-partenaires {
    margin-bottom: 70px;
}

.groupe-partenaires h3 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 23px;
    font-weight: 600;
    letter-spacing: 2px;
    text-align: center;
    margin-bottom: 35px;
}

/* Disposition des logos */

.logos-partenaires {
    display: grid;
    gap: 25px;
    max-width: 1100px;
    margin: 0 auto;
}

.logos-partenaires.principaux {
    grid-template-columns: repeat(2, 1fr);
}

.logos-partenaires.officiels {
    grid-template-columns: repeat(3, 1fr);
}

/* Cartes des sponsors */

.partenaire {
    background: #FFFFFF;
    min-height: 170px;
    padding: 35px;

    display: flex;
    justify-content: center;
    align-items: center;

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;
}

.partenaire:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 30px rgba(32, 54, 41, 0.12);
}

.partenaire img {
    max-width: 100%;
    max-height: 110px;
    width: auto;
    height: auto;
    object-fit: contain;
}

.principaux .partenaire {
    min-height: 230px;
}

.principaux .partenaire img {
    max-height: 155px;
}

/* Recrutement sponsors */

.devenir-partenaire {
    margin-top: 85px;
    padding: 55px 6%;
    background: var(--vert);
    color: var(--creme);

    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 40px;
}

.devenir-partenaire h3 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(40px, 5vw, 65px);
    line-height: 1;
    margin: 15px 0;
}

.devenir-partenaire p {
    max-width: 550px;
    line-height: 1.6;
}

.devenir-partenaire .sur-titre {
    color: var(--beige);
}

.devenir-partenaire .bouton {
    white-space: nowrap;
}

/* Adaptation smartphone */

@media (max-width: 800px) {

    .section-partenaires {
        padding: 65px 6%;
    }

    .logos-partenaires.principaux,
    .logos-partenaires.officiels {
        grid-template-columns: repeat(2, 1fr);
    }

    .devenir-partenaire {
        flex-direction: column;
        align-items: flex-start;
        padding: 40px 7%;
    }
}

@media (max-width: 480px) {

    .logos-partenaires.principaux,
    .logos-partenaires.officiels {
        grid-template-columns: 1fr;
    }
}


/* ======================================
   ACCUEIL PREMIUM - TRAIL DE FANSON
====================================== */

.hero-premium {
    position: relative;

    min-height: 780px;
    min-height: 90vh;

    padding: 90px 8% 45px;

    display: flex;
    flex-direction: column;
    justify-content: space-between;

    background-image:
        linear-gradient(
            90deg,
            rgba(32, 54, 41, 0.94) 0%,
            rgba(32, 54, 41, 0.72) 42%,
            rgba(32, 54, 41, 0.15) 100%
        ),
        url("images/accueil.jpg");

    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;

    color: #F5F1E8;
}

/* CONTENU PRINCIPAL */

.hero-contenu {
    position: relative;
    z-index: 1;
    max-width: 1000px;
    margin: auto 0;
}

.hero-etiquette {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 19px !important;
    font-weight: 600;
    color: #C9B394;
    letter-spacing: 3px;
    margin-bottom: 35px;
}

/* GRAND TITRE */

.hero-premium h1 {
    font-family: 'Barlow Condensed', sans-serif;
    font-style: italic;
    font-weight: 600;

    font-size: clamp(65px, 9vw, 145px);
    line-height: 0.88;
    letter-spacing: -1px;

    color: #F5F1E8;
    margin: 0 0 35px;
}

/* DESCRIPTION */

.hero-description {
    font-family: 'Barlow', sans-serif;
    font-size: 21px !important;
    line-height: 1.6;
    margin-bottom: 30px;
}

/* BOUTONS */

.hero-boutons {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
}

.hero-boutons .bouton {
    margin-top: 0;
}

.bouton-secondaire {
    display: inline-block;
    padding: 16px 30px;

    border: 1px solid #F5F1E8;
    color: #F5F1E8;

    text-decoration: none;

    font-family: 'Barlow Condensed', sans-serif;
    font-size: 20px;
    font-weight: 600;

    transition: 0.3s;
}

.bouton-secondaire:hover {
    background: #F5F1E8;
    color: #203629;
}

/* BANDEAU INFERIEUR */

.hero-bas {
    position: relative;
    z-index: 1;

    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;

    padding-top: 25px;
    border-top: 1px solid rgba(245, 241, 232, 0.5);

    font-family: 'Barlow Condensed', sans-serif;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: 1.5px;

    color: #F5F1E8;
}

/* VERSION SMARTPHONE */

@media (max-width: 768px) {

    .hero-premium {
        min-height: 650px;
        padding: 80px 6% 30px;

        background-image:
            linear-gradient(
                90deg,
                rgba(32, 54, 41, 0.90),
                rgba(32, 54, 41, 0.50)
            ),
            url("images/accueil.jpg");

        background-position: center;
    }

    .hero-premium h1 {
        font-size: clamp(52px, 12vw, 85px);
    }

    .hero-description {
        font-size: 17px !important;
    }

    .hero-bas {
        font-size: 14px;
    }

    .hero-boutons {
        align-items: flex-start;
    }
}


/* CREDIT PHOTOGRAPHIE ACCUEIL */

.credit-photo {
    color: #F5F1E8;
    font-family: 'Barlow', sans-serif;
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.2px;
    text-decoration: none;
    opacity: 0.75;
    white-space: nowrap;
    margin-left: auto;
}

.credit-photo:hover {
    opacity: 1;
    text-decoration: underline;
}

@media (max-width: 768px) {
    .credit-photo {
        width: 100%;
        text-align: right;
        font-size: 10px;
        margin-top: 5px;
    }
}


/* PRESENTATION DES PARCOURS */

.section-parcours {
    background: var(--creme);
    padding: 110px 8%;
}

.intro-parcours {
    font-size: 19px;
    margin-bottom: 50px;
}

.grille-parcours {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}

.course {
    background: white;
    overflow: hidden;
    transition: transform 0.3s;
}

.course:hover {
    transform: translateY(-7px);
}

.course-image {
    height: 230px;
    background-color: var(--vert);
    background-size: cover;
    background-position: center;
}

.course-image.kids {
    background-image: url("images/enfantTrail.png");
}

/* Photo du 6 km sur la page d'accueil */
.course-image.court {
    background-image: url("images/6kmphotoaccueil.jpg");
    background-size: cover;
    background-position: center 15%;
}
.course-image.long {
    background-image: url("images/18kmphotoaccueil.jpg");
    background-position: center 45%;
    background-size: cover;
}
.course-contenu {
    padding: 30px;
}

.course-type {
    color: #947B5C;
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 600;
    letter-spacing: 2px;
}

.course h3 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 43px;
    margin: 12px 0;
}

.course p {
    min-height: 75px;
    line-height: 1.6;
}

.course-infos {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding-top: 20px;
    border-top: 1px solid var(--beige);
    font-weight: 600;
    font-size: 13px;
}

.course-infos span {
    background: var(--creme);
    padding: 9px 12px;
}

@media (max-width: 950px) {
    .grille-parcours {
        grid-template-columns: 1fr;
    }

    .course-image {
        height: 280px;
    }

    .course p {
        min-height: auto;
    }
}


/* ======================================
   LOGO OFFICIEL - TRAIL DE FANSON
====================================== */

.marque {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    text-decoration: none;
}

.logo-trail {
    display: block;
    width: 145px;
    height: auto;
    max-height: 85px;
    object-fit: contain;
    transition: transform 0.3s ease;
}

.logo-trail:hover {
    transform: scale(1.03);
}

/* Adaptation smartphone */

@media (max-width: 768px) {
    .logo-trail {
        width: 105px;
        max-height: 65px;
    }
}


/* ESPACEMENT ENTRE LES BOUTONS ET LE BANDEAU */

.hero-bas {
    margin-top: 55px;
    padding-top: 25px;
}


/* ====================================
   PAGE DÉTAILLÉE DES PARCOURS
==================================== */

.entete-parcours {
    background: var(--vert);
    color: var(--creme);
    padding: 90px 8%;
}

.entete-parcours h1 {
    font-family: 'Barlow Condensed', sans-serif;
    font-style: italic;
    font-size: clamp(65px, 9vw, 130px);
    line-height: 1;
    margin: 15px 0 25px;
}

.entete-parcours p {
    font-size: 19px;
}

.conteneur-parcours {
    padding: 90px 8%;
}

.fiche-parcours {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: white;
    margin-bottom: 45px;
    min-height: 440px;
}

.photo-fiche {
    min-height: 360px;
    background-color: var(--beige);
    background-size: cover;
    background-position: center;
}

.photo-kids {
    background-image: url("images/enfantTrail.png");
}

/* Photo du 6 km sur la page Parcours */
.photo-six {
    background-image: url("images/6kmphotoaccueil.jpg");
    background-size: cover;
    background-position: center 55%;
}
.photo-long {
    background-image: url("images/18kmphotoaccueil.jpg");
    background-position: center 45%;
    background-size: cover;
}

.details-fiche {
    padding: 55px 9%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.details-fiche h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(45px, 5vw, 75px);
    line-height: 1;
    margin: 10px 0 25px;
}

.details-fiche p {
    font-size: 17px;
    line-height: 1.7;
}

.stats-parcours {
    display: flex;
    gap: 35px;
    margin: 30px 0;
    padding: 25px 0;
    border-top: 1px solid var(--beige);
    border-bottom: 1px solid var(--beige);
}

.stats-parcours div {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.stats-parcours strong {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 25px;
}

.stats-parcours span {
    font-size: 13px;
    color: #786B61;
}

/* SMARTPHONE */

@media (max-width: 800px) {
    .fiche-parcours {
        grid-template-columns: 1fr;
    }

    .photo-fiche {
        min-height: 260px;
    }

    .details-fiche {
        padding: 35px 7%;
    }

    .conteneur-parcours {
        padding: 50px 6%;
    }
}

/* BOUTON SOUS LES TROIS PARCOURS */

.bouton-parcours {
    margin-top: 40px;
}


/* ==========================================
   RESULTATS ET PALMARES
========================================== */

.entete-resultats {
    background: var(--vert);
    color: var(--creme);
    padding: 95px 8%;
}

.entete-resultats .sur-titre {
    color: var(--beige);
}

.entete-resultats h1 {
    font-family: 'Barlow Condensed', sans-serif;
    font-style: italic;
    font-size: clamp(55px, 8vw, 115px);
    line-height: 0.95;
    margin: 15px 0 25px;
}

.resultats-2026 {
    background: var(--creme);
    padding: 90px 8%;
}

.statistiques-resultats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin: 45px 0 65px;
}

.statistiques-resultats div {
    background: white;
    padding: 35px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.statistiques-resultats strong {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(35px, 5vw, 65px);
    line-height: 1;
}

.statistiques-resultats span {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 1.5px;
}

.podiums {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 35px;
}

.podium {
    background: white;
    padding: 35px;
}

.podium h3 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 36px;
    margin: 15px 0 30px;
}

.ligne-podium {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 18px 0;
    border-top: 1px solid var(--beige);
}

.ligne-podium span {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 26px;
    color: #947B5C;
}

.ligne-podium strong {
    flex: 1;
}

.ligne-podium time {
    font-weight: 600;
    white-space: nowrap;
}

.classement-complet {
    background: #EAE4D9;
    padding: 90px 8%;
}

.classement-complet > p {
    line-height: 1.6;
}

.pdf-resultats {
    display: block;
    width: 100%;
    height: 750px;
    margin-top: 45px;
    border: 1px solid var(--beige);
    background: white;
}

.source-resultats {
    font-size: 13px;
    opacity: 0.7;
}

/* SMARTPHONES */

@media (max-width: 800px) {
    .podiums {
        grid-template-columns: 1fr;
    }

    .statistiques-resultats {
        grid-template-columns: 1fr;
    }

    .pdf-resultats {
        height: 500px;
    }
}

@media (max-width: 480px) {
    .podium {
        padding: 20px;
    }

    .ligne-podium {
        gap: 8px;
        font-size: 14px;
    }
}


/* CLASSEMENT INTERACTIF */

.classement-interactif {
    background: var(--creme);
    padding: 85px 8%;
}

.filtres-resultats {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 15px;
    margin: 35px 0 20px;
}

.filtres-resultats input,
.filtres-resultats select {
    width: 100%;
    min-width: 0;
}

@media (max-width: 800px) {
    .filtres-resultats {
        grid-template-columns: 1fr;
    }
}

.filtres-resultats input,
.filtres-resultats select {
    padding: 15px 18px;
    border: 1px solid var(--beige);
    background: white;
    color: var(--vert);
    font-family: 'Barlow', sans-serif;
    font-size: 15px;
    height: 56px;
}

.filtres-resultats select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;

    padding-right: 52px;

    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23203629' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
    background-repeat: no-repeat;
    background-position: right 18px center;
    background-size: 14px;
}

.filtres-resultats input {
    flex: 1;
    min-width: 0;
}

#nombre-resultats {
    font-size: 14px;
    color: #786B61;
}

.tableau-defilant {
    overflow-x: auto;
}

#tableau-resultats {
    width: 100%;
    border-collapse: collapse;
    background: white;
    margin-top: 20px;
}

#tableau-resultats th {
    background: var(--vert);
    color: var(--creme);
    text-align: left;
    padding: 18px;
    white-space: nowrap;
}

#tableau-resultats td {
    padding: 17px 18px;
    border-bottom: 1px solid #EAE4D9;
}

#tableau-resultats tr:hover {
    background: var(--creme);
}

#tableau-resultats tr[hidden] {
    display: none;
}

@media (max-width: 700px) {
    .filtres-resultats {
        flex-direction: column;
    }
}


/* ==========================================
   PAGE INFORMATIONS PRATIQUES
========================================== */

.entete-infos {
    background: var(--vert);
    color: var(--creme);
    padding: 110px 8%;
}

.entete-infos .sur-titre {
    color: var(--beige);
}

.entete-infos h1 {
    font-family: 'Barlow Condensed', sans-serif;
    font-style: italic;
    font-size: clamp(65px, 10vw, 140px);
    font-weight: 600;
    line-height: 0.9;
    margin: 25px 0 35px;
}

.entete-infos > p:last-child {
    font-size: 19px;
    line-height: 1.6;
    max-width: 650px;
}

.section-infos-detaillees {
    background: var(--creme);
    padding: 100px 8%;
}

.section-infos-detaillees > h2 {
    max-width: 850px;
    margin-bottom: 55px;
}

.grille-infos {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
}

.carte-info {
    background: white;
    padding: 45px;
    min-height: 340px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    border-bottom: 3px solid var(--beige);
    transition: transform 0.3s ease;
}

.carte-info:hover {
    transform: translateY(-5px);
}

.numero-info {
    font-family: 'Barlow Condensed', sans-serif;
    color: #947B5C;
    font-size: 20px;
    font-weight: 600;
}

.carte-info h3 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 43px;
    line-height: 1;
    margin: 25px 0 20px;
}

.carte-info p {
    font-size: 16px;
    line-height: 1.7;
    margin: 0 0 30px;
}

.statut-info {
    margin-top: auto;
    padding: 12px 17px;
    background: var(--creme);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 1px;
    color: #786B61;
}

.bandeau-infos {
    background: var(--beige);
    padding: 90px 8%;
}

.bandeau-infos h2 {
    font-size: clamp(42px, 6vw, 75px);
    line-height: 1;
    margin: 20px 0;
}

.bandeau-infos > p:not(.sur-titre) {
    font-size: 18px;
    line-height: 1.6;
}

/* TABLETTES ET SMARTPHONES */

@media (max-width: 800px) {
    .grille-infos {
        grid-template-columns: 1fr;
    }

    .entete-infos {
        padding: 80px 6%;
    }

    .section-infos-detaillees {
        padding: 70px 6%;
    }

    .carte-info {
        padding: 30px;
        min-height: 280px;
    }

    .bandeau-infos {
        padding: 70px 6%;
    }
}


/* ==========================================
   GALERIE PHOTOS - TRAIL DE FANSON
========================================== */

.entete-photos {
    background: var(--vert);
    color: var(--creme);
    padding: 110px 8%;
}

.entete-photos .sur-titre {
    color: var(--beige);
}

.entete-photos h1 {
    font-family: 'Barlow Condensed', sans-serif;
    font-style: italic;
    font-size: clamp(65px, 10vw, 140px);
    font-weight: 600;
    line-height: 0.9;
    margin: 25px 0 35px;
}

.entete-photos > p:last-child {
    font-size: 19px;
}

.galerie-section {
    background: var(--creme);
    padding: 100px 8%;
}

.galerie-introduction {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 45px;
}

.galerie-introduction h2 {
    margin: 10px 0 0;
}

.galerie-introduction > span {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 20px;
    font-weight: 600;
    color: #947B5C;
}

.grille-photos {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.carte-photo {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    padding: 0;
    border: 0;
    overflow: hidden;
    cursor: pointer;
    background: var(--beige);
}

.carte-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.carte-photo:hover img {
    transform: scale(1.06);
}

.carte-photo:focus-visible {
    outline: 3px solid var(--vert);
    outline-offset: 3px;
}

/* AFFICHAGE PHOTO EN GRAND */

.visionneuse {
    max-width: 95vw;
    max-height: 95vh;
    padding: 12px;
    border: 0;
    background: var(--vert);
    position: fixed;
}

.visionneuse::backdrop {
    background: rgba(0, 0, 0, 0.88);
}

.visionneuse img {
    display: block;
    max-width: 90vw;
    max-height: 85vh;
    width: auto;
    height: auto;
    object-fit: contain;
}

.fermer-photo {
    display: block;
    margin: 0 0 8px auto;
    padding: 2px 12px;
    background: none;
    border: 0;
    color: white;
    font-size: 32px;
    cursor: pointer;
}

/* CONCLUSION */

.galerie-conclusion {
    background: var(--beige);
    padding: 90px 8%;
}

.galerie-conclusion h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(45px, 7vw, 90px);
    line-height: 1;
}

/* RESPONSIVE */

@media (max-width: 900px) {
    .grille-photos {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .grille-photos {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .galerie-section {
        padding: 65px 5%;
    }

    .entete-photos {
        padding: 80px 6%;
    }

    .galerie-introduction {
        align-items: flex-start;
    }
}


/* ==========================================
   ARCHIVES - EDITIONS DU TRAIL
========================================== */

.entete-editions {
    background: var(--vert);
    color: var(--creme);
    padding: 110px 8%;
}

.entete-editions .sur-titre {
    color: var(--beige);
}

.entete-editions h1 {
    font-family: 'Barlow Condensed', sans-serif;
    font-style: italic;
    font-weight: 600;
    font-size: clamp(70px, 10vw, 145px);
    line-height: 0.88;
    margin: 25px 0 35px;
}

.entete-editions > p:last-child {
    font-size: 19px;
    line-height: 1.6;
    max-width: 600px;
}

.conteneur-editions {
    padding: 90px 8%;
}

.edition-detaillee {
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    background: white;
    margin-bottom: 40px;
}

.edition-annee {
    background: var(--beige);
    padding: 55px;
}

.edition-annee h2,
.edition-future h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-style: italic;
    font-size: clamp(95px, 12vw, 175px);
    font-weight: 600;
    line-height: 1;
    margin: 25px 0;
}

.edition-annee p,
.edition-contenu p,
.edition-future p {
    line-height: 1.7;
    font-size: 17px;
}

.edition-contenu {
    padding: 55px;
}

.edition-contenu h3,
.edition-future h3 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(32px, 4vw, 52px);
    line-height: 1;
    margin: 0 0 35px;
}

.edition-statistiques {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 35px;
}

.edition-statistiques div {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 20px 12px;
    background: var(--creme);
}

.edition-statistiques strong {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(28px, 4vw, 47px);
}

.edition-statistiques span {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1px;
}

.edition-boutons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 25px;
    margin-top: 25px;
}

.edition-boutons .bouton {
    margin-top: 0;
}

.bouton-lien-edition {
    display: inline-flex;
    align-items: center;
    min-height: 54px;
    color: var(--vert);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 20px;
    font-weight: 600;
    text-decoration: none;
}

.bouton-lien-edition {
    color: var(--vert);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 20px;
    font-weight: 600;
    text-decoration: none;
}

.bouton-lien-edition:hover {
    text-decoration: underline;
}

.edition-future {
    padding: 65px;
    border: 1px solid var(--beige);
}

.edition-future h2 {
    margin-bottom: 15px;
}

.edition-future p {
    max-width: 600px;
}

/* SMARTPHONES */

@media (max-width: 850px) {
    .edition-detaillee {
        grid-template-columns: 1fr;
    }

    .edition-annee,
    .edition-contenu,
    .edition-future {
        padding: 35px 7%;
    }

    .conteneur-editions {
        padding: 60px 6%;
    }

    .edition-statistiques {
        gap: 8px;
    }
}

.lien-carte-edition {
    display: inline-block;
    margin-top: 25px;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 19px;
    font-weight: 600;
    color: var(--vert);
    text-decoration: none;
}

.lien-carte-edition:hover {
    text-decoration: underline;
}


/* ==========================================
   NAVIGATION COMMUNE
========================================== */

.navigation {
    background: var(--creme);
}

.navigation .liens-navigation {
    gap: 10px;
}

.navigation .liens-navigation a {
    font-size: 17px;
}

.navigation .liens-navigation a:hover {
    color: #947B5C;
}

.navigation .menu-mobile summary {
    color: var(--vert);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 20px;
    font-weight: 600;
}

/* Éviter que le menu mobile passe derrière le contenu */

.menu-mobile {
    z-index: 100;
}

.menu-mobile-liens {
    z-index: 101;
}

/* NAVIGATION IDENTIQUE SUR TOUTES LES PAGES */

.navigation {
    width: 100%;
    padding: 20px 3%;
    min-height: 95px;
    background: var(--creme);
}

.navigation .liens-navigation {
    justify-content: space-evenly;
    gap: 12px;
}

.navigation .liens-navigation a {
    font-size: 18px;
}

.navigation .bouton-nav {
    padding: 17px 25px;
    font-size: 19px;

}


/* ==========================================
   ANIMATIONS PREMIUM - NAVIGATION
========================================== */

/* Liens du menu principal */

.navigation .liens-navigation a {
    position: relative;
    display: inline-block;
    padding: 8px 0;
    transition: color 0.25s ease;
}

/* Trait beige invisible par défaut */

.navigation .liens-navigation a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 2px;
    background: var(--beige);

    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
}

/* Animation au passage de la souris */

.navigation .liens-navigation a:hover::after,
.navigation .liens-navigation a:focus-visible::after {
    transform: scaleX(1);
}

/* Animation du bouton inscription */

.navigation .bouton-nav {
    transition:
        background-color 0.25s ease,
        transform 0.25s ease;
}

.navigation .bouton-nav:hover {
    background-color: #355542;
    transform: translateY(-2px);
}


/* ==========================================
   NAVIGATION PREMIUM - PAGE ACTIVE
========================================== */

/* Aucune animation entre les pages */

body > header,
body > main,
body > section {
    animation: none;
}

/* Trait permanent sous le lien actif */

.navigation .liens-navigation a.actif::after {
    transform: scaleX(1);
}

/* Couleur du lien actif */

.navigation .liens-navigation a.actif {
    color: var(--vert);
}

/* Menu mobile : animation discrète */

.navigation .menu-mobile[open] .menu-mobile-liens {
    animation: ouverture-menu 0.2s ease-out;
}

@keyframes ouverture-menu {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .navigation .menu-mobile[open] .menu-mobile-liens {
        animation: none;
    }
}


/* ==========================================
   INSCRIPTIONS PREMIUM 2027
========================================== */

.inscriptions-premium {
    background: var(--vert);
    color: var(--creme);
    padding: 110px 8%;
}

.inscriptions-intro {
    max-width: 800px;
    margin-bottom: 55px;
}

.inscriptions-intro .sur-titre {
    color: var(--beige);
}

.inscriptions-intro h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(65px, 9vw, 115px);
    font-style: italic;
    line-height: 0.9;
    margin: 20px 0 30px;
}

.inscriptions-intro > p:last-child {
    font-size: 19px;
    line-height: 1.6;
}

.grille-inscriptions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.carte-inscription {
    background: var(--creme);
    color: var(--vert);
    padding: 35px;
    min-height: 420px;
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease;
}

.carte-inscription:hover {
    transform: translateY(-5px);
}

.course-numero {
    color: #947B5C;
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 600;
    letter-spacing: 1.5px;
}

.carte-inscription-centre {
    margin: 45px 0 25px;
}

.carte-inscription h3 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 35px;
    margin: 0 0 10px;
}

.carte-inscription strong {
    display: block;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(70px, 8vw, 115px);
    font-weight: 600;
    line-height: 1;
}

.carte-inscription strong small {
    font-size: 30px;
}

.carte-inscription p {
    font-size: 16px;
    line-height: 1.6;
}

.carte-inscription-bas {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto;
    padding-top: 20px;
    border-top: 1px solid var(--beige);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 15px;
    font-weight: 600;
}

.inscriptions-message {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 45px;
    font-size: 16px;
}

.point-statut {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--beige);
}

.lien-parcours-inscriptions {
    display: inline-block;
    margin-top: 25px;
    color: var(--beige);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 20px;
    font-weight: 600;
    text-decoration: none;
}

.lien-parcours-inscriptions:hover {
    text-decoration: underline;
}

@media (max-width: 1000px) {
    .grille-inscriptions {
        grid-template-columns: 1fr;
    }

    .carte-inscription {
        min-height: 350px;
    }

    .carte-inscription-centre {
        margin: 25px 0;
    }
}


/* ==========================================
   BANDEAU OUVERTURE DES INSCRIPTIONS
========================================== */

.ouverture-inscriptions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 50px;
    margin-top: 45px;
    padding: 45px 50px;
    border: 1px solid rgba(201, 179, 148, 0.55);
    background: rgba(245, 241, 232, 0.05);
}

.ouverture-texte {
    max-width: 650px;
}

.ouverture-etiquette {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: var(--beige);
    letter-spacing: 2px;
}

.ouverture-texte h3 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(35px, 4vw, 55px);
    line-height: 1;
    margin: 15px 0 20px;
}

.ouverture-texte p {
    line-height: 1.7;
    font-size: 16px;
    margin-bottom: 0;
}

.ouverture-action {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 25px;
    flex-shrink: 0;
}

.ouverture-statut {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--beige);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 1px;
}

.bouton-ouverture {
    display: inline-block;
    padding: 17px 30px;
    border: 1px solid var(--beige);
    color: var(--creme);
    text-decoration: none;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 19px;
    font-weight: 600;
    transition: 0.25s ease;
}

.bouton-ouverture:hover {
    background: var(--beige);
    color: var(--vert);
}

@media (max-width: 850px) {
    .ouverture-inscriptions {
        flex-direction: column;
        align-items: flex-start;
        padding: 35px 25px;
        gap: 30px;
    }

    .ouverture-action {
        width: 100%;
    }
}


/* ==========================================
   PAGE BOULANGERIE DE FANSON
========================================== */

.entete-boulangerie {
    min-height: 560px;
    display: flex;
    align-items: center;
    padding: 100px 8%;
    background: var(--vert);
    color: var(--creme);
}

.entete-boulangerie-contenu {
    max-width: 1050px;
}

.entete-boulangerie .sur-titre {
    color: var(--beige);
}

.entete-boulangerie h1 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(60px, 9vw, 135px);
    font-style: italic;
    font-weight: 600;
    line-height: 0.9;
    margin: 25px 0 35px;
}

.entete-boulangerie-contenu > p:last-child {
    max-width: 600px;
    font-size: 20px;
    line-height: 1.7;
}

/* PRÉSENTATION */

.presentation-boulangerie {
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 0;
    background: var(--creme);
}

.presentation-boulangerie-photo {
    min-height: 580px;
    overflow: hidden;
}

.presentation-boulangerie-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.presentation-boulangerie-texte {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 90px 12%;
}

.presentation-boulangerie-texte h2,
.boulangerie-trail h2,
.boulangerie-decouverte h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(48px, 6vw, 85px);
    line-height: 0.95;
    margin: 20px 0 35px;
}

.presentation-boulangerie-texte > p:not(.sur-titre) {
    font-size: 18px;
    line-height: 1.8;
}

/* LE TRAIL */

.boulangerie-trail {
    background: var(--beige);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 70px;
    padding: 110px 8%;
}

.boulangerie-trail-contenu {
    align-self: center;
}

.boulangerie-trail-contenu p {
    font-size: 18px;
    line-height: 1.8;
    margin-bottom: 25px;
}

/* INFORMATIONS BOULANGERIE */

.boulangerie-decouverte {
    background: var(--creme);
    padding: 110px 8%;
}

.boulangerie-decouverte > p:not(.sur-titre) {
    max-width: 650px;
    font-size: 18px;
    line-height: 1.8;
}

/* RESPONSIVE */

@media (max-width: 850px) {

    .presentation-boulangerie,
    .boulangerie-trail {
        grid-template-columns: 1fr;
    }

    .presentation-boulangerie-photo {
        min-height: 350px;
        height: 400px;
    }

    .presentation-boulangerie-texte {
        padding: 65px 7%;
    }

    .boulangerie-trail {
        padding: 75px 7%;
        gap: 25px;
    }

    .boulangerie-decouverte {
        padding: 75px 7%;
    }

    .entete-boulangerie {
        min-height: 420px;
        padding: 80px 7%;
    }
}


/* ==========================================
   CONTACT - BOULANGERIE DE FANSON
========================================== */

.boulangerie-contact {
    background: var(--creme);
    padding: 110px 8%;
}

.boulangerie-contact-intro {
    max-width: 800px;
    margin-bottom: 55px;
}

.boulangerie-contact-intro h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(55px, 7vw, 95px);
    font-style: italic;
    line-height: 0.9;
    margin: 20px 0 25px;
}

.boulangerie-contact-intro > p:last-child {
    font-size: 18px;
    line-height: 1.7;
}

.boulangerie-contact-grille {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: stretch;
}

.boulangerie-coordonnees {
    min-width: 0;
}

.boulangerie-emplacement.carte-reelle {
    position: relative;
    display: block;
    min-height: 600px;
    height: 100%;
    padding: 0;
    overflow: hidden;
}

.carte-reelle iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    border: 0;
}

.boulangerie-coordonnees {
    background: white;
    padding: 50px;
}

.coordonnee {
    padding: 25px 0;
    border-bottom: 1px solid var(--beige);
}

.coordonnee:first-child {
    padding-top: 0;
}

.coordonnee:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.coordonnee > span {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 1.5px;
    color: #947B5C;
}

.coordonnee h3 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 30px;
    margin: 12px 0;
}

.coordonnee p {
    line-height: 1.7;
    margin: 0;
}

.boulangerie-emplacement {
    min-height: 450px;
    background: #E7E1D6;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 30px;
    text-align: center;
}

.boulangerie-emplacement > span {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #947B5C;
}

.emplacement-icone {
    font-size: 75px;
    margin: 25px 0;
    color: var(--vert);
}

.boulangerie-emplacement p {
    font-size: 17px;
}

@media (max-width: 850px) {
    .boulangerie-contact {
        padding: 70px 6%;
    }

    .boulangerie-contact-grille {
        grid-template-columns: 1fr;
    }

    .boulangerie-coordonnees {
        padding: 30px;
    }

    .boulangerie-emplacement {
        min-height: 300px;
    }
}


/* ==========================================
   CONTACT ET CARTE - BOULANGERIE
========================================== */

.lien-contact-boulangerie {
    display: inline-block;
    margin-top: 18px;
    color: var(--vert);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 19px;
    font-weight: 600;
    text-decoration: none;
    border-bottom: 2px solid var(--beige);
    padding-bottom: 5px;
    transition: color 0.2s ease;
}

.lien-contact-boulangerie:hover {
    color: #947B5C;
}

.coordonnee p a {
    color: var(--vert);
    font-weight: 600;
    text-decoration-color: var(--beige);
    text-underline-offset: 4px;
}

.boulangerie-emplacement.carte-reelle {
    display: block;
    padding: 0;
    min-height: 480px;
    overflow: hidden;
}

.carte-reelle iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 480px;
    border: 0;
    filter: grayscale(0.65);
    transition: filter 0.3s ease;
}

.carte-reelle iframe:hover {
    filter: grayscale(0);
}

@media (max-width: 850px) {
    .boulangerie-emplacement.carte-reelle,
    .carte-reelle iframe {
        min-height: 350px;
    }
}


/* RÉSEAUX SOCIAUX - BOULANGERIE */

.reseaux-boulangerie {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 25px;
}

.reseaux-boulangerie a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border: 1px solid var(--beige);
    color: var(--vert);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 19px;
    font-weight: 600;
    text-decoration: none;
    transition: background-color 0.2s ease,
                color 0.2s ease;
}

.reseaux-boulangerie a:hover {
    background: var(--vert);
    color: var(--creme);
}

.reseaux-boulangerie .instagram-a-completer {
    opacity: 0.5;
    pointer-events: none;
}

.reseaux-boulangerie .instagram-a-completer {
    opacity: 0.5;
    pointer-events: none;
}

/* CONTACT : CARTE À DROITE SUR ORDINATEUR */

@media (min-width: 851px) {
    .boulangerie-contact-grille {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }
}

/* CONTACT : CARTE SOUS LES INFOS SUR SMARTPHONE */

@media (max-width: 850px) {
    .boulangerie-contact-grille {
        grid-template-columns: 1fr;
    }

    .boulangerie-emplacement.carte-reelle {
        height: 350px;
        min-height: 350px;
    }
}


/* ==========================================
   GOOGLE MAPS - DISPOSITION CORRIGÉE
========================================== */

.boulangerie-contact-grille {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 30px;
    align-items: stretch;
}

.boulangerie-coordonnees {
    min-width: 0;
}

/* Colonne de droite */

.boulangerie-emplacement.carte-reelle {
    position: relative;
    display: block;
    min-width: 0;
    min-height: 0;
    height: auto;
    padding: 0;
    overflow: hidden;
    align-self: stretch;
}

/* Carte contenue dans sa colonne */

.boulangerie-emplacement.carte-reelle iframe {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    border: 0;
}

/* Smartphone et tablette */

@media (max-width: 850px) {
    .boulangerie-contact-grille {
        grid-template-columns: minmax(0, 1fr);
    }

    .boulangerie-emplacement.carte-reelle {
        height: 350px;
        min-height: 350px;
    }
}


/* ==========================================
   PAGE BENEVOLES
========================================== */

/* HERO BENEVOLES AVEC PHOTO */

.entete-benevoles {
    position: relative;
    min-height: 720px;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;

    padding: 110px 8%;

    color: var(--creme);

   
background-image:
    linear-gradient(
        90deg,
        rgba(32, 54, 41, 0.94) 0%,
        rgba(32, 54, 41, 0.68) 45%,
        rgba(32, 54, 41, 0.12) 100%
    ),
    url("images/benevoles_velo.jpg");


    background-size: 100% auto;
    background-position: left center;
    background-repeat: no-repeat;
}

.entete-benevoles .sur-titre {
    color: var(--beige);
}

.entete-benevoles h1 {
    font-family: 'Barlow Condensed', sans-serif;
    font-style: italic;
    font-size: clamp(55px, 8vw, 120px);
    font-weight: 600;
    line-height: 0.9;
    margin: 30px 0;
    max-width: 850px;
    text-wrap: balance;
}

.entete-benevoles > p:not(.sur-titre) {
    font-size: 19px;
    line-height: 1.7;
    max-width: 650px;
}

/* PRESENTATION */

.benevoles-presentation {
    max-width: 1100px;
    margin: auto;
    padding: 110px 8%;
}

.benevoles-presentation h2,
.benevoles-missions h2,
.benevoles-rejoindre h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(52px, 7vw, 95px);
    line-height: 0.95;
    margin: 20px 0 35px;
}

.benevoles-presentation p:not(.sur-titre) {
    max-width: 750px;
    font-size: 18px;
    line-height: 1.8;
}

/* MISSIONS */

.benevoles-missions {
    padding: 100px 8%;
    background: #EAE4D9;
}

.grille-missions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 25px;
    margin-top: 50px;
}

.mission-benevole {
    background: white;
    border-bottom: 3px solid var(--beige);
    padding: 45px;
    transition: transform 0.25s ease;
}

.mission-benevole:hover {
    transform: translateY(-4px);
}

.mission-benevole > span {
    color: #947B5C;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 19px;
    font-weight: 600;
}

.mission-benevole h3 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 38px;
    line-height: 1;
    margin: 25px 0 20px;
}

.mission-benevole p {
    line-height: 1.7;
    font-size: 17px;
}

/* REJOINDRE L'EQUIPE */

.benevoles-rejoindre {
    background: var(--vert);
    color: var(--creme);
    padding: 100px 8%;
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 50px;
}

.benevoles-rejoindre > div {
    max-width: 750px;
}

.benevoles-rejoindre .sur-titre {
    color: var(--beige);
}

.benevoles-rejoindre p:not(.sur-titre) {
    font-size: 18px;
    line-height: 1.7;
}

.benevoles-statut {
    color: var(--beige);
}

.benevoles-rejoindre .bouton {
    flex-shrink: 0;
}

/* MOBILE */

@media (max-width: 850px) {
    .grille-missions {
        grid-template-columns: 1fr;
    }

    .mission-benevole {
        padding: 30px;
    }

    .benevoles-rejoindre {
        flex-direction: column;
        align-items: flex-start;
        padding: 75px 7%;
    }

    .benevoles-missions,
    .benevoles-presentation {
        padding: 75px 7%;
    }

    .entete-benevoles {
        padding: 80px 7%;
    }
}

/* FORMULAIRE BENEVOLES */

.benevoles-formulaire {
    background: var(--creme);
    padding: 90px 8%;
}

.benevoles-formulaire h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(42px, 6vw, 80px);
    line-height: 1;
    margin: 20px 0 40px;
}

.benevoles-formulaire iframe {
    display: block;
    width: 100%;
    max-width: 850px;
    min-height: 950px;
    margin: 0 auto;
    border: 0;
}

/* CANDIDATURE BÉNÉVOLE */

.candidature-action {
    max-width: 750px;
    padding: 45px;
    background: white;
    border-left: 4px solid var(--beige);
}

.candidature-action p {
    font-size: 18px;
    line-height: 1.7;
    margin: 0;
}

@media (max-width: 600px) {
    .candidature-action {
        padding: 30px 25px;
    }
}

@media (max-width: 768px) {

    .entete-benevoles {
        min-height: 620px;
        padding: 80px 6%;

        background-image:
       linear-gradient(
    90deg,
    rgba(32, 54, 41, 0.94) 0%,
    rgba(32, 54, 41, 0.68) 45%,
    rgba(32, 54, 41, 0.12) 100%
),
            url("images/benevoles_velo.jpg");

        background-position: center;
    }
}


/* FINITIONS PREMIUM - BÉNÉVOLES */

.entete-benevoles > p:not(.sur-titre) {
    max-width: 560px;
    line-height: 1.65;
}

/* Adaptation sur smartphone */

@media (max-width: 768px) {
    .entete-benevoles h1 {
        font-size: clamp(54px, 11vw, 80px);
        max-width: 100%;
    }

    .entete-benevoles > p:not(.sur-titre) {
        max-width: 420px;
    }
}


/* ==========================================
   PAGE PARTENAIRES - TRAIL DE FANSON
========================================== */

.entete-partenaires {
    background: var(--vert);
    color: var(--creme);
    padding: 120px 8%;
    min-height: 650px;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.entete-partenaires .sur-titre,
.partenaire-page-carte + .sur-titre {
    color: var(--beige);
}

.entete-partenaires h1 {
    font-family: 'Barlow Condensed', sans-serif;
    font-style: italic;
    font-size: clamp(75px, 11vw, 155px);
    line-height: 0.87;
    margin: 30px 0 35px;
}

.entete-partenaires > p:not(.sur-titre) {
    max-width: 650px;
    font-size: 20px;
    line-height: 1.7;
}

/* INTRODUCTION */

.partenaires-page-intro {
    padding: 110px 8%;
    background: var(--creme);
}

.partenaires-page-intro h2,
.partenaires-page-logos h2,
.partenaires-page-soutien h2,
.partenaires-page-contact h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(55px, 7vw, 95px);
    line-height: 0.95;
    margin: 20px 0 35px;
}

.partenaires-page-intro > p:last-child {
    max-width: 750px;
    font-size: 19px;
    line-height: 1.8;
}

/* LOGOS */

.partenaires-page-logos {
    background: #EAE4D9;
    padding: 100px 8%;
}

.partenaires-page-logos h3 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 24px;
    letter-spacing: 2px;
    margin: 55px 0 25px;
}

.partenaires-page-grille {
    display: grid;
    gap: 25px;
}

.partenaires-page-grille.principaux {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.partenaires-page-grille.officiels {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.partenaire-page-carte {
    background: white;
    min-height: 200px;
    padding: 40px;

    display: flex;
    align-items: center;
    justify-content: center;

    transition: transform 0.25s ease;
}

.partenaire-page-carte:hover {
    transform: translateY(-4px);
}

.partenaire-page-carte img {
    display: block;
    max-width: 100%;
    max-height: 130px;
    width: auto;
    height: auto;
    object-fit: contain;
}

/* POURQUOI DEVENIR PARTENAIRE */

.partenaires-page-soutien {
    background: var(--creme);
    padding: 110px 8%;
}

.partenaires-page-avantages {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 25px;
    margin-top: 50px;
}

.partenaires-page-avantages article {
    background: white;
    padding: 35px;
    border-bottom: 3px solid var(--beige);
}

.partenaires-page-avantages span {
    color: #947B5C;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 19px;
}

.partenaires-page-avantages h3 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 36px;
}

.partenaires-page-avantages p {
    line-height: 1.7;
}

/* APPEL AUX ENTREPRISES */

.partenaires-page-contact {
    background: var(--vert);
    color: var(--creme);
    padding: 110px 8%;

    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 50px;
}

.partenaires-page-contact .sur-titre {
    color: var(--beige);
}

.partenaires-page-contact > div {
    max-width: 740px;
}

.partenaires-page-contact p:not(.sur-titre) {
    font-size: 18px;
    line-height: 1.7;
}

.partenaires-page-contact .bouton {
    flex-shrink: 0;
}

/* ADAPTATION MOBILE */

@media (max-width: 850px) {
    .partenaires-page-grille.principaux,
    .partenaires-page-grille.officiels,
    .partenaires-page-avantages {
        grid-template-columns: 1fr;
    }

    .partenaires-page-contact {
        flex-direction: column;
        align-items: flex-start;
    }

    .partenaires-page-intro,
    .partenaires-page-logos,
    .partenaires-page-soutien,
    .partenaires-page-contact {
        padding: 75px 7%;
    }

    .entete-partenaires {
        min-height: 500px;
        padding: 90px 7%;
    }
}


/* ==========================================
   FOOTER PREMIUM - TRAIL DE FANSON
========================================== */

.footer-premium {
    background: #203629;
    color: #F5F1E8;
    padding: 85px 8% 25px;
}

.footer-haut {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 70px;
    padding-bottom: 70px;
}

.footer-identite .sur-titre {
    color: #C9B394;
}

.footer-identite h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(45px, 5vw, 75px);
    font-weight: 600;
    line-height: 0.95;
    margin: 20px 0 30px;
}

.footer-identite > p:last-child {
    line-height: 1.7;
    max-width: 420px;
    font-size: 16px;
}

.footer-colonnes {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 35px;
}

.footer-colonne {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
}

.footer-colonne h3 {
    color: #C9B394;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 18px;
    letter-spacing: 2px;
    margin: 0 0 10px;
}

.footer-colonne a {
    color: #F5F1E8;
    font-size: 15px;
    text-decoration: none;
    transition: color 0.2s ease;
    overflow-wrap: anywhere;
}

.footer-colonne a:hover {
    color: #C9B394;
}

.footer-colonne p {
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
}

.footer-bas {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 15px;
    padding-top: 25px;
    border-top: 1px solid rgba(201, 179, 148, 0.45);

    color: #C9B394;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 14px;
    letter-spacing: 1px;
}

/* RESPONSIVE */

@media (max-width: 900px) {
    .footer-haut {
        grid-template-columns: 1fr;
        gap: 45px;
    }
}

@media (max-width: 550px) {
    .footer-premium {
        padding: 65px 6% 25px;
    }

    .footer-colonnes {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .footer-bas {
        flex-direction: column;
    }
}


/* ==========================================
   CARTE INTERACTIVE - TRAIL 6 KM
========================================== */

.section-carte-6km {
    background: var(--vert);
    color: var(--creme);
    padding: 100px 8%;
}

.section-carte-6km .sur-titre {
    color: var(--beige);
}

.section-carte-6km h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(50px, 7vw, 90px);
    line-height: 0.95;
    margin: 20px 0 30px;
}

.carte-description {
    font-size: 18px;
    line-height: 1.7;
    max-width: 650px;
    margin-bottom: 40px;
}

/* Carte OpenStreetMap */

#carte-trail-6km {
    width: 100%;
    height: 550px;
    background: #EAE4D9;
    z-index: 0;
}

/* Informations sous la carte */

.carte-6km-bas {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px;
    padding-top: 30px;
}

.carte-6km-bas strong {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 30px;
}

.carte-6km-bas p {
    font-size: 15px;
    line-height: 1.6; 
}

.carte-6km-bas .bouton {
    flex-shrink: 0;
    margin-top: 0;
}

/* Version smartphone */

@media (max-width: 768px) {

    .section-carte-6km {
        padding: 70px 6%;
    }

    #carte-trail-6km {
        height: 400px;
    }

    .carte-6km-bas {
        flex-direction: column;
        align-items: flex-start;
    }
}


/* ==========================================
   MARQUEURS PREMIUM - TRAIL DE FANSON
========================================== */

.custom-marker-wrapper {
    background: transparent;
    border: none;
}

.custom-marker {
    display: flex;
    align-items: center;
    justify-content: center;

    padding: 10px 16px;
    border-radius: 6px;

    font-family: 'Barlow Condensed', sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.5px;
    white-space: nowrap;

    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
}

/* DÉPART ET ARRIVÉE */

.custom-marker-depart {
    background: #203629;
    color: #FFFFFF;
    border: 2px solid #FFFFFF;
}

/* RAVITAILLEMENT KM 3 */

.custom-marker-ravito {
    background: #C9B394;
    color: #203629;
    border: 2px solid #203629;
}


/* ==========================================
   PROFIL ALTIMÉTRIQUE PREMIUM - 6 KM
========================================== */

.profil-6km {
    background: #294534;
    padding: 35px 40px;
    margin-top: 25px;
    border: 1px solid rgba(201,179,148,0.35);
}

.profil-6km-entete {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 25px;
    margin-bottom: 35px;
}

.profil-6km-entete .sur-titre {
    color: var(--beige);
}

.profil-6km h3 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(30px, 4vw, 45px);
    line-height: 1;
    margin: 12px 0 0;
}

.profil-6km-entete > span {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 15px;
    letter-spacing: 1px;
    color: var(--beige);
}

.profil-6km svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

.profil-6km-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 25px;
    border-top: 1px solid rgba(201,179,148,0.35);
    padding-top: 25px;
    margin-top: 15px;

    font-family: 'Barlow Condensed', sans-serif;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.5px;
    color: var(--creme);
}

@media (max-width: 768px) {
    .profil-6km {
        padding: 25px 15px;
    }

    .profil-6km-entete {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .profil-6km-stats {
        gap: 12px;
        font-size: 13px;
    }
}


/* ==========================================
   KIDS TRAIL - CARTE PREMIUM
========================================== */

.section-carte-kids {
    background: var(--vert);
    border-top: 1px solid rgba(201,179,148,0.35);
}

#carte-trail-kids {
    width: 100%;
    height: 540px;
    background: #EAE4D9;
    z-index: 0;
}

@media (max-width: 768px) {
    #carte-trail-kids {
        height: 390px;
    }
}


/* Harmonisation stricte des deux cartes */
#carte-trail-kids {
    height: 550px;
    border: 0;
}
@media (max-width: 768px) {
    #carte-trail-kids { height: 400px; }
}

/* ===================================================
   MISE EN PAGE COMPACTE — TRAIL DE FANSON 2027
   Ajustements visuels uniquement, sans toucher aux GPX
   =================================================== */
@media (min-width: 769px) {
    section { padding-top: 62px; padding-bottom: 62px; }
    .hero-premium { min-height: 72vh; padding-top: 65px; padding-bottom: 32px; }
    .hero-premium h1 { font-size: clamp(62px, 8vw, 115px); margin-bottom: 24px; }
    .hero-bas { margin-top: 30px; }
    .section-parcours { padding: 74px 8%; }
    .section-partenaires { padding: 72px 8%; }
    .entete-parcours { padding: 58px 8%; }
    .conteneur-parcours { padding: 52px 8%; }
    .fiche-parcours { min-height: 345px; margin-bottom: 28px; }
    .photo-fiche { min-height: 300px; }
    .details-fiche { padding: 32px 7%; }
    .stats-parcours { margin: 20px 0; padding: 17px 0; }
    .section-carte-6km,
    .section-carte-kids { padding: 58px 8%; }
    .section-carte-6km h2 { font-size: clamp(46px, 6vw, 76px); margin: 12px 0 20px; }
    .carte-description { margin-bottom: 25px; }
    #carte-trail-6km,
    #carte-trail-kids { height: 445px; }
    .profil-6km { margin-top: 20px; padding: 27px 32px; }
    .profil-6km-entete { margin-bottom: 22px; }
    .profil-6km-stats { gap: 18px; padding-top: 18px; margin-top: 12px; }
    .carte-6km-bas { padding-top: 22px; }
}
@media (max-width: 768px) {
    section { padding-top: 42px; padding-bottom: 42px; }
    .hero-premium { min-height: 70vh; padding-top: 65px; padding-bottom: 25px; }
    .hero-bas { margin-top: 25px; }
    .section-parcours,
    .section-partenaires { padding: 50px 6%; }
    .entete-parcours { padding: 44px 6%; }
    .conteneur-parcours { padding: 40px 6%; }
    .fiche-parcours { min-height: 0; margin-bottom: 25px; }
    .photo-fiche { min-height: 230px; }
    .details-fiche { padding: 28px 6%; }
    .stats-parcours { margin: 17px 0; padding: 15px 0; }
    .section-carte-6km,
    .section-carte-kids { padding: 42px 6%; }
    .section-carte-6km h2 { font-size: clamp(42px, 10vw, 62px); margin: 12px 0 20px; }
    .carte-description { margin-bottom: 22px; }
    #carte-trail-6km,
    #carte-trail-kids { height: 345px; }
    .profil-6km { margin-top: 18px; padding: 23px 15px; }
    .profil-6km-entete { margin-bottom: 18px; }
    .profil-6km-stats { padding-top: 16px; margin-top: 10px; gap: 12px; }
    .carte-6km-bas { padding-top: 18px; gap: 17px; }
}


/* PHOTO KIDS TRAIL — source et mise en page */
.course-image.kids,
.photo-fiche.photo-kids {
    position: relative;
    background-position: center 45%;
    background-size: cover;
}

.credit-photo-kids {
    position: absolute;
    bottom: 8px;
    right: 10px;

    background: none;
    padding: 0;

    color: #F5F1E8;
    font-family: 'Barlow', sans-serif;
    font-size: 9px;
    font-weight: 400;
    text-decoration: none;
    opacity: 0.55;

    text-shadow: 0 1px 3px rgba(0,0,0,0.7);
    transition: opacity 0.2s;
}

.credit-photo-kids:hover {
    opacity: 1;
    background: none;
}

.credit-photo-kids:hover,
.credit-photo-kids:focus-visible {
    background: #203629;
    text-decoration: underline;
}

/* Cadrage du coureur - Long Trail */

.course-image.long,
.photo-long {
    background-position: center 15%;
}


/* ==========================================
   PHOTOS 2026 - ACCUEIL PREMIUM
========================================== */

.photos-accueil {
    background: #F5F1E8;
    padding: 55px 8%;
}

.photos-accueil-contenu {
    border-top: 1px solid #C9B394;
    padding-top: 35px;

    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 45px;
}

.photos-accueil-texte {
    max-width: 650px;
}

.photos-accueil .sur-titre {
    margin: 0 0 14px;
    color: #947B5C;
}

.photos-accueil h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: clamp(38px, 4vw, 58px);
    line-height: 0.98;
    color: #203629;
    margin: 0 0 18px;
}

.photos-accueil-texte > p:last-child {
    font-size: 17px;
    line-height: 1.6;
    margin: 0;
    color: #203629;
}

.photos-accueil-bouton {
    margin: 0;
    flex-shrink: 0;
    white-space: nowrap;
    font-size: 18px;
}

@media (max-width: 768px) {
    .photos-accueil {
        padding: 40px 6%;
    }

    .photos-accueil-contenu {
        flex-direction: column;
        align-items: flex-start;
        gap: 25px;
        padding-top: 25px;
    }

    .photos-accueil-bouton {
        white-space: normal;
    }
}



/* ==========================================
   PARCOURS 2027 - KIDS / CLASSIC / LONG
   Cartes officielles Komoot (responsive)
========================================== */
.entete-parcours-komoot {padding: 70px 8% 56px;}
.entete-parcours-komoot h1 {font-size:clamp(58px,7.5vw,108px); line-height:.91; margin:20px 0;}
.entete-parcours-komoot>p:not(.sur-titre) {max-width:650px; line-height:1.6;}
.parcours-ancre {display:flex; flex-wrap:wrap; gap:12px; margin-top:36px;}
.parcours-ancre a {font-family:'Barlow Condensed',sans-serif; font-size:17px; font-weight:600; color:#F5F1E8; text-decoration:none; border:1px solid rgba(245,241,232,.4); padding:12px 18px; transition:background .2s,color .2s;}
.parcours-ancre a:hover {background:#C9B394;color:#203629;}
.parcours-komoot-page {background:#F5F1E8;padding:56px 8% 80px;}
.parcours-komoot-section {padding:0 0 54px; margin-bottom:54px; border-bottom:1px solid #C9B394; scroll-margin-top:18px;}
.parcours-komoot-section:last-child {border-bottom:0; margin-bottom:0; padding-bottom:0;}
.parcours-komoot-intro {display:grid;grid-template-columns:minmax(260px,.84fr) minmax(0,1.16fr);background:#fff; min-height:295px; margin-bottom:20px;}
.parcours-komoot-photo {background-color:#C9B394; background-size:cover; background-position:center;min-height:295px;}
.parcours-komoot-photo.photo-kids {background-image:url('images/enfantTrail.png');}
.parcours-komoot-photo.photo-six {background-image:url('images/6kmphotoaccueil.jpg');background-position:center 15%;}
.parcours-komoot-photo.photo-long {background-image:url('images/18kmphotoaccueil.jpg');background-position:center 15%;}
.parcours-komoot-description {padding:34px 6%; display:flex;flex-direction:column;justify-content:center;}
.parcours-komoot-description .sur-titre {font-size:15px;letter-spacing:2px;margin:0 0 12px;}
.parcours-komoot-description h2 {font-family:'Barlow Condensed',sans-serif;font-size:clamp(38px,4.5vw,62px);line-height:.95;margin:0 0 15px;}
.parcours-komoot-description>p:not(.sur-titre) {line-height:1.6;margin:0 0 18px;font-size:16px;}
.parcours-komoot-nom-distance {font-family:'Barlow Condensed',sans-serif; font-size:clamp(20px,2vw,29px);font-weight:600;color:#947B5C;display:block;margin-top:7px;}
.parcours-komoot-chiffres {display:flex;flex-wrap:wrap;gap:20px;border-top:1px solid #E5DCD0;padding-top:17px;}
.parcours-komoot-chiffres>div {display:flex;flex-direction:column;gap:3px;}
.parcours-komoot-chiffres strong {font-family:'Barlow Condensed',sans-serif;font-size:25px;line-height:1;}
.parcours-komoot-chiffres span {font-size:12px;color:#786B61;}
.komoot-cadre {background:#fff;border:1px solid #E5DCD0;overflow:hidden;}
.komoot-cadre iframe {display:block;width:100%;height:700px;border:0;}
.komoot-liens {display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;padding:14px 5px;font-size:13px;color:#786B61;}
.komoot-liens a {font-family:'Barlow Condensed',sans-serif;font-size:17px;color:#203629;font-weight:600;text-decoration:none;}
.komoot-liens a:hover {text-decoration:underline;}
.komoot-attente {min-height:245px;background:#EAE3D7;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:28px 20px;gap:13px;}
.komoot-attente-numero {font-family:'Barlow Condensed',sans-serif;letter-spacing:2px;color:#947B5C;font-size:14px;}
.komoot-attente strong {font-family:'Barlow Condensed',sans-serif;font-size:clamp(30px,5vw,49px);line-height:1;}
.komoot-attente p {margin:0;color:#5D665D;font-size:15px;}
@media(max-width:800px){
  .entete-parcours-komoot{padding:58px 6% 38px;}
  .parcours-komoot-page{padding:30px 6% 48px;}
  .parcours-komoot-section{margin-bottom:38px;padding-bottom:38px;}
  .parcours-komoot-intro{grid-template-columns:1fr;}
  .parcours-komoot-photo{min-height:240px;}
  .parcours-komoot-description{padding:28px 7%;}
  .komoot-cadre iframe{height:680px;}
  .parcours-ancre a{font-size:15px;padding:10px 13px;}
}

/* PARCOURS 2027 : actions GPX et notes de distance */
.komoot-actions {display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;}
.komoot-liens .komoot-gpx {display:inline-flex;align-items:center;justify-content:center;background:#203629;color:#F5F1E8;text-decoration:none;padding:11px 17px;white-space:nowrap;font-size:16px;}
.komoot-liens .komoot-gpx:hover {background:#365443;color:#fff;text-decoration:none;}
.komoot-gpx-indisponible {font-size:12px;color:#786B61;}
.parcours-precision {
    font-size: 12px !important;
    color: #786B61;
    line-height: 1.5 !important;
    margin: 14px 0 0 !important;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.badge-niveau {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 6px 12px;
    border-radius: 8px;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.9px;
    text-transform: uppercase;
}

.badge-facile {
    background: #DCEBD7;
    color: #315236;
}

.badge-modere {
    background: #EAD8B7;
    color: #5E4A26;
}

.badge-difficile {
    background: #E7C9C4;
    color: #6A2F29;
}

@media(max-width:700px){.komoot-liens{align-items:flex-start}.komoot-actions{justify-content:flex-start;width:100%}.komoot-liens .komoot-gpx{white-space:normal;}}


/* ===============================================
   INSCRIPTIONS 2027 — PAGE DEDIEE
   =============================================== */
.entete-inscriptions {background:#203629;color:#F5F1E8;padding:75px 8% 58px;}
.entete-inscriptions .sur-titre {color:#C9B394;}
.entete-inscriptions-contenu {max-width:1100px;}
.entete-inscriptions h1 {font-family:'Barlow Condensed',sans-serif;font-style:italic;font-size:clamp(56px,8vw,112px);line-height:.93;margin:22px 0 25px;}
.entete-inscriptions-contenu > p:not(.sur-titre) {font-size:19px;line-height:1.55;}
.inscription-chiffres {display:flex;flex-wrap:wrap;gap:12px;margin-top:35px;padding-top:25px;border-top:1px solid #C9B39466;}
.inscription-chiffres span {font:600 16px 'Barlow Condensed',sans-serif;letter-spacing:1px;color:#C9B394;margin-right:25px;}
.page-inscriptions-contenu {padding:62px 8% 0;}
.inscription-section-titre {margin-bottom:28px;}
.inscription-section-titre h2,.inscription-pratique h2 {font:600 clamp(37px,4.5vw,62px)/1 'Barlow Condensed',sans-serif;margin:12px 0 18px;}
.inscription-section-titre > p:last-child {max-width:680px;line-height:1.6;}
.inscription-fiches {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.inscription-fiche {display:flex;flex-direction:column;background:#fff;min-width:0;border-bottom:3px solid #C9B394;}
.inscription-fiche-visuel {height:185px;background-size:cover;background-position:center;}
.inscription-fiche-corps {padding:26px;display:flex;flex-direction:column;flex:1;}
.inscription-fiche-numero {font:600 13px 'Barlow Condensed',sans-serif;letter-spacing:1.5px;color:#947B5C;}
.inscription-fiche h3 {font:600 37px/.98 'Barlow Condensed',sans-serif;margin:13px 0 7px;}
.inscription-prix {font:600 72px/.98 'Barlow Condensed',sans-serif;color:#203629;}
.inscription-prix small {font-size:29px;}
.inscription-fiche-corps>p {font-size:15px;line-height:1.6;min-height:70px;}
.inscription-specs {display:flex;gap:7px;flex-wrap:wrap;margin-bottom:24px;}
.inscription-specs span {padding:7px 10px;background:#F5F1E8;color:#203629;font:600 14px 'Barlow Condensed',sans-serif;}
.inscription-indispo {margin-top:auto;background:#203629;color:#F5F1E8;padding:15px 10px;text-align:center;font:600 15px 'Barlow Condensed',sans-serif;letter-spacing:.6px;}
.inscription-pratique {margin:65px -0px 0;padding:36px 0 30px;border-top:1px solid #C9B394;}
.inscription-pratique-grille {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 38px;}
.inscription-pratique-grille > div {border-top:1px solid #D8C9B5;padding-top:17px;}
.inscription-pratique h3 {font:600 22px 'Barlow Condensed',sans-serif;margin:0 0 7px;}
.inscription-pratique-grille p {line-height:1.7;font-size:15px;margin:0;}
.inscription-fin {background:#EBE2D3;margin:26px -9.53% 0;padding:36px 8%;display:flex;align-items:center;justify-content:space-between;gap:20px;}
.inscription-fin p {font-size:18px;margin:0;}
.inscription-fin .bouton {margin:0;}
@media(max-width:950px){.inscription-fiches{grid-template-columns:1fr;}.inscription-fiche{display:grid;grid-template-columns:36% 1fr;}.inscription-fiche-visuel{height:100%;min-height:250px;}.inscription-fiche-corps>p{min-height:auto;}}
@media(max-width:620px){.entete-inscriptions{padding:55px 6% 38px;}.page-inscriptions-contenu{padding:42px 6% 0;}.inscription-fiche{display:flex;}.inscription-fiche-visuel{height:190px;min-height:0;}.inscription-fiche-corps{padding:22px;}.inscription-pratique-grille{grid-template-columns:1fr;}.inscription-fin{margin:20px -6.82% 0;padding:28px 6%;flex-direction:column;align-items:flex-start;}.inscription-chiffres{gap:14px;}}


/* =============================================
   INFORMATIONS PRATIQUES 2027 - PAGE PREMIUM
============================================= */
.infos27-hero{background:#203629;color:#F5F1E8;padding:70px 8% 46px}
.infos27-hero-interieur{max-width:1080px;margin:auto}
.infos27-hero .sur-titre{color:#C9B394;font-size:16px;letter-spacing:2px}
.infos27-hero h1{font-family:'Barlow Condensed',sans-serif;font-size:clamp(60px,8vw,116px);font-weight:600;font-style:italic;line-height:.91;margin:14px 0 20px}
.infos27-hero-interieur>p:not(.sur-titre){max-width:600px;font-size:18px;line-height:1.65}
.infos27-hero-reperes{display:flex;flex-wrap:wrap;gap:18px 35px;border-top:1px solid #63796a;margin-top:38px;padding-top:20px;color:#C9B394;font-family:'Barlow Condensed',sans-serif;letter-spacing:1px;font-weight:600}
.infos27-main{background:#F5F1E8}
.infos27-main .infos27-section{padding:65px 8%;max-width:none}
.infos27-main .infos27-section-alt{background:#ECE6DA}
.infos27-intro{max-width:850px;margin-bottom:27px}
.infos27-intro .sur-titre{margin:0 0 8px}
.infos27-intro h2,.infos27-action h2{font-family:'Barlow Condensed',sans-serif;font-size:clamp(40px,5vw,64px);line-height:1;margin:0 0 14px}
.infos27-intro>p:last-child{font-size:17px;line-height:1.65;margin:0}
.infos27-horaires{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.infos27-horaire{background:white;border-top:3px solid #C9B394;padding:25px;display:flex;flex-direction:column;gap:12px}
.infos27-horaire>strong{font:600 clamp(38px,4vw,56px)/1 'Barlow Condensed',sans-serif}
.infos27-horaire span,.infos27-adresse>span,.infos27-plan>span,.infos27-ravitos article>span{font:600 13px 'Barlow Condensed',sans-serif;letter-spacing:1.4px;color:#8F7456}
.infos27-horaire h3,.infos27-ravitos h3{font:600 27px 'Barlow Condensed',sans-serif;margin:5px 0}
.infos27-horaire p,.infos27-ravitos p{margin:0;line-height:1.55}
.infos27-note{border-left:3px solid #C9B394;padding:12px 20px;margin-top:24px;background:rgba(255,255,255,.62)}
.infos27-note strong{font-size:15px}.infos27-note p{margin:4px 0 0;line-height:1.55;font-size:15px}
.infos27-acces{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(300px,1.1fr);gap:20px}
.infos27-adresse{background:#203629;color:#F5F1E8;padding:34px}
.infos27-adresse>span{color:#C9B394}.infos27-adresse h3{font:600 clamp(32px,4vw,52px)/.97 'Barlow Condensed',sans-serif;margin:18px 0}
.infos27-adresse p{line-height:1.7}.infos27-adresse a{display:inline-block;margin-top:14px;color:#C9B394;font:600 17px 'Barlow Condensed',sans-serif;text-decoration:none}
.infos27-plan{background:#F5F1E8;border:1px solid #C9B394;padding:35px;min-height:240px;display:flex;flex-direction:column;justify-content:center;gap:15px}
.infos27-plan p{font:600 clamp(23px,3vw,33px)/1.1 'Barlow Condensed',sans-serif;margin:0}.infos27-plan small{line-height:1.5;color:#685743;font-size:13px}
.infos27-ravitos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.infos27-ravitos article{background:white;padding:25px;border-bottom:3px solid #C9B394}
.infos27-ravitos article strong{display:block;margin:12px 0;font:600 18px 'Barlow Condensed',sans-serif}
.infos27-discret{color:#685743;font-size:13px;margin:18px 0 0}
.infos27-consignes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.infos27-consignes>div{background:white;padding:26px;border-left:2px solid #C9B394}
.infos27-consignes h3{font:600 22px 'Barlow Condensed',sans-serif;margin:0 0 10px}.infos27-consignes p{font-size:15px;line-height:1.65;margin:0}
.infos27-action{margin-top:35px;padding:30px 35px;background:#203629;color:#F5F1E8;display:flex;justify-content:space-between;align-items:center;gap:25px}
.infos27-action .sur-titre{color:#C9B394}.infos27-action h2{font-size:clamp(30px,4vw,44px);margin:8px 0 0}
.infos27-action .bouton{margin:0;flex-shrink:0}
@media(max-width:850px){.infos27-horaires,.infos27-ravitos{grid-template-columns:1fr}.infos27-horaire{flex-direction:row;align-items:center;gap:24px}.infos27-horaire>strong{min-width:105px}.infos27-acces{grid-template-columns:1fr}.infos27-action{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.infos27-hero{padding:55px 6% 34px}.infos27-main .infos27-section{padding:45px 6%}.infos27-horaire{padding:18px;gap:12px}.infos27-horaire>strong{min-width:88px;font-size:37px}.infos27-horaire h3{font-size:23px}.infos27-consignes{grid-template-columns:1fr}.infos27-plan{min-height:180px;padding:24px}.infos27-action{padding:24px}}


/* GALERIE PREMIUM 2026 — styles autonomes */
.photo27-hero{background:#203629;color:#F5F1E8;padding:70px 8% 52px}
.photo27-hero .sur-titre,.photo27-suite .sur-titre{color:#C9B394}
.photo27-hero h1{font:italic 600 clamp(60px,8vw,116px)/.91 'Barlow Condensed',sans-serif;margin:18px 0 28px}
.photo27-hero>p:not(.sur-titre){font-size:18px;line-height:1.65;max-width:700px}
.photo27-chiffres{display:flex;gap:24px;flex-wrap:wrap;border-top:1px solid #728072;padding-top:26px;margin-top:42px;font:600 15px 'Barlow Condensed',sans-serif;letter-spacing:1px;color:#C9B394}
.photo27-section{padding:65px 8%;background:#F5F1E8}
.photo27-intro{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:30px}
.photo27-intro h2{font:600 clamp(38px,5vw,66px)/.97 'Barlow Condensed',sans-serif;margin:9px 0}
.photo27-intro>p{max-width:300px;line-height:1.55;color:#685743;margin:0}
.photo27-filtres{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:23px}
.photo27-filtre{background:transparent;border:1px solid #C9B394;padding:11px 17px;color:#203629;cursor:pointer;font:600 15px 'Barlow Condensed',sans-serif;letter-spacing:.5px}
.photo27-filtre span{opacity:.65;margin-left:6px}.photo27-filtre:hover,.photo27-filtre.actif{background:#203629;color:#F5F1E8;border-color:#203629}
.photo27-grille{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.photo27-carte{border:0;padding:0;background:#C9B394;position:relative;aspect-ratio:4/3;overflow:hidden;cursor:zoom-in;display:block;width:100%}
.photo27-carte[hidden]{display:none!important}
.photo27-carte img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.photo27-carte:hover img{transform:scale(1.045)}
.photo27-carte:focus-visible{outline:3px solid #203629;outline-offset:3px}
.photo27-legende{position:absolute;bottom:0;left:0;right:0;text-align:left;background:linear-gradient(transparent,rgba(14,30,20,.78));color:white;padding:30px 12px 12px;font:600 13px 'Barlow Condensed',sans-serif;letter-spacing:1px}
.photo27-vide{background:white;padding:55px 30px;text-align:center;border-top:3px solid #C9B394}
.photo27-vide h2{font:600 clamp(30px,4vw,49px) 'Barlow Condensed',sans-serif}.photo27-vide p{color:#685743}
.photo27-suite{padding:55px 8%;display:flex;justify-content:space-between;align-items:center;gap:30px;background:#203629;color:#F5F1E8}
.photo27-suite h2{font:600 clamp(35px,4vw,55px)/1 'Barlow Condensed',sans-serif;margin:10px 0 14px}.photo27-suite p:last-child{line-height:1.6;margin-bottom:0}.photo27-suite .bouton{flex-shrink:0;margin:0}
.photo27-lightbox{position:fixed;width:min(95vw,1250px);height:min(94vh,900px);max-width:none;max-height:none;border:0;padding:35px 65px;background:#17251c;color:#F5F1E8;overflow:hidden}
.photo27-lightbox::backdrop{background:rgba(0,0,0,.88)}
.photo27-lightbox figure{height:100%;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.photo27-lightbox img{max-height:calc(100% - 35px);max-width:100%;object-fit:contain;min-height:0}
.photo27-lightbox figcaption{font-size:13px;color:#C9B394}
.photo27-fermer,.photo27-precedente,.photo27-suivante{position:absolute;border:0;background:rgba(245,241,232,.13);color:white;cursor:pointer;z-index:1}
.photo27-fermer{right:12px;top:12px;font-size:27px;width:39px;height:39px}
.photo27-precedente,.photo27-suivante{top:50%;transform:translateY(-50%);font-size:42px;width:44px;height:62px}
.photo27-precedente{left:10px}.photo27-suivante{right:10px}
@media(max-width:900px){.photo27-grille{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.photo27-hero{padding:54px 6% 37px}.photo27-section{padding:40px 6%}.photo27-intro{display:block}.photo27-intro>p{margin-top:12px}.photo27-grille{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.photo27-filtres{gap:7px}.photo27-filtre{padding:9px 11px;font-size:13px}.photo27-suite{padding:40px 6%;flex-direction:column;align-items:start}.photo27-lightbox{width:100vw;height:100dvh;padding:48px 40px 25px}.photo27-precedente,.photo27-suivante{width:34px;font-size:32px}}

/* Galerie 2026 : mosaïque premium sans catégories ni étiquettes */
.photo27-grille {
    display: block;
    columns: 4 230px;
    column-gap: 13px;
}
.photo27-carte {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: auto;
    margin: 0 0 13px;
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    background: #E9E3D9;
}
.photo27-carte img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: unset;
}
.photo27-carte:hover img { transform: scale(1.025); }
.photo27-intro { align-items: end; }
.photo27-legende,.photo27-filtres { display: none; }
@media(max-width:650px) {
    .photo27-grille {columns: 2 145px; column-gap: 8px;}
    .photo27-carte {margin-bottom: 8px;}
}
@media(max-width:380px) {
    .photo27-grille {columns: 2;}
}


/* ============================================
   PARTENAIRES 2027 — DIRECTION ARTISTIQUE PREMIUM
   ============================================ */
.partenaires-hero-2027 { position:relative; min-height:690px; padding:110px 8% 40px; background: #203629; overflow:hidden; display:flex; justify-content:space-between; flex-direction:column; }
.partenaires-hero-2027::before { content:""; position:absolute; right:-190px; top:-210px; width:760px; height:760px; border:1px solid rgba(201,179,148,.22); border-radius:50%; pointer-events:none; }
.partenaires-hero-2027::after { content:""; position:absolute; right:-55px; top:-80px; width:490px; height:490px; border:1px solid rgba(201,179,148,.12); border-radius:50%; pointer-events:none; }
.partenaires-hero-contenu { position:relative; z-index:1; max-width:1100px; }
.partenaires-hero-2027 h1 { color:#F5F1E8; font-size:clamp(66px,8.9vw,137px); line-height:.88; letter-spacing:-1.4px; margin:28px 0 28px; }
.partenaires-hero-2027 .sur-titre { color:#C9B394; }
.partenaires-hero-2027 .partenaires-hero-contenu > p:not(.sur-titre) { font-size:clamp(16px,1.6vw,20px); line-height:1.65; max-width:640px; }
.partenaires-hero-actions { display:flex; gap:26px; align-items:center; flex-wrap:wrap; margin-top:16px; }
.partenaires-hero-actions .bouton { margin:0; }
.partenaires-lien-clair { color:#F5F1E8; text-decoration:none; font:600 18px 'Barlow Condensed',sans-serif; border-bottom:1px solid #C9B394; padding:12px 0; }
.partenaires-lien-clair:hover { color:#C9B394; }
.partenaires-hero-bas { display:flex; flex-wrap:wrap; justify-content:space-between; gap:15px; position:relative; z-index:1; margin-top:75px; border-top:1px solid rgba(245,241,232,.28); padding-top:24px; font:600 15px 'Barlow Condensed',sans-serif; letter-spacing:1.6px; }
.partenaires-intro-2027 { display:grid; grid-template-columns:180px minmax(0,1fr); column-gap:6%; padding:105px 8%; }
.partenaires-intro-index { font:600 17px 'Barlow Condensed',sans-serif; letter-spacing:2px; color:#947B5C; padding-top:17px; }
.partenaires-intro-2027 h2 { font-style:italic; font-size:clamp(53px,6.3vw,95px); }
.partenaires-intro-2027 > div:last-child > p:last-child { max-width:780px; font-size:19px; line-height:1.8; }
.partenaires-logos-2027 { background:#EBE5D9; padding:105px 8% 120px; }
.partenaires-titre-ligne { display:flex; justify-content:space-between; gap:18px; align-items:end; border-bottom:1px solid rgba(32,54,41,.22); padding-bottom:28px; margin-bottom:42px; }
.partenaires-titre-ligne h2 { margin:12px 0 0; font-style:italic; }
.partenaires-mini-note { font:600 14px 'Barlow Condensed',sans-serif; letter-spacing:1.4px; white-space:nowrap; }
.partenaires-groupe-entete { display:flex; align-items:baseline; flex-wrap:wrap; gap:16px; margin:0 0 18px; }
.partenaires-groupe-entete > span:first-child { color:#947B5C; font:600 18px 'Barlow Condensed',sans-serif; }
.partenaires-groupe-entete h3 { margin:0; text-align:left; font-size:25px; }
.partenaires-groupe-entete > span:last-child { margin-left:auto; color:#756F65; font:600 13px 'Barlow Condensed',sans-serif; letter-spacing:1px; }
.partenaires-groupe-secondaire { margin-top:74px; }
.partenaires-logos-2027 .partenaires-page-grille { max-width:none; gap:20px; }
.partenaires-logos-2027 .partenaire-page-carte { position:relative; background:#fff; min-height:220px; padding:46px; border:1px solid #E2DCD1; box-shadow:0 6px 25px rgba(32,54,41,.035); transition:transform .25s,box-shadow .25s; }
.partenaires-logos-2027 .partenaire-page-carte:hover { transform:translateY(-5px); box-shadow:0 15px 35px rgba(32,54,41,.09); }
.partenaires-logos-2027 .principaux .partenaire-page-carte { min-height:285px; padding:55px; }
.partenaires-logos-2027 .partenaire-page-carte img { max-height:128px; max-width:90%; object-fit:contain; }
.partenaires-logos-2027 .principaux .partenaire-page-carte img { max-height:175px; }
.partenaires-legende { max-width:840px; color:#72695F; font-size:13px; line-height:1.6; margin-top:24px; }
.partenaires-soutien-2027 { padding:110px 8%; }
.partenaires-soutien-2027 h2 { font-style:italic; }
.partenaires-soutien-2027 .partenaires-page-avantages article { min-height:250px; padding:40px 35px; }
.partenaires-soutien-2027 .partenaires-page-avantages h3 { font-size:35px; line-height:1.1; margin:25px 0 14px; }
.partenaires-contact-2027 { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(280px,.75fr); gap:9%; align-items:center; padding:110px 8%; }
.partenaires-contact-2027 h2 { font-style:italic; }
.partenaires-email-visible { color:#C9B394; display:inline-block; font-size:18px; margin-top:20px; overflow-wrap:anywhere; text-underline-offset:5px; }
.partenaires-contact-action { border:1px solid rgba(201,179,148,.46); padding:36px 29px; display:flex; flex-direction:column; align-items:flex-start; gap:24px; }
.partenaires-contact-action > span { color:#C9B394; font:600 14px 'Barlow Condensed',sans-serif; letter-spacing:1.6px; }
.partenaires-contact-action .bouton { margin:0; white-space:normal; text-align:center; }
.partenaires-contact-action small { line-height:1.5; opacity:.75; }
@media(max-width:900px) { .partenaires-intro-2027 { grid-template-columns:1fr; gap:6px; } .partenaires-contact-2027 { grid-template-columns:1fr; } .partenaires-contact-action { max-width:500px; } }
@media(max-width:650px) { .partenaires-hero-2027 { min-height:590px; padding:75px 6% 32px; } .partenaires-hero-2027 h1 { font-size:clamp(54px,12vw,78px); } .partenaires-hero-bas { margin-top:50px; } .partenaires-intro-2027,.partenaires-logos-2027,.partenaires-soutien-2027,.partenaires-contact-2027 { padding:70px 6%; } .partenaires-titre-ligne { align-items:start; flex-direction:column; } .partenaires-groupe-entete > span:last-child { margin-left:0; } .partenaires-logos-2027 .principaux .partenaire-page-carte { min-height:220px; padding:36px; } .partenaires-logos-2027 .partenaire-page-carte { min-height:180px; padding:32px; } .partenaires-hero-actions { align-items:flex-start; flex-direction:column; } }

/* ================================================================
   TRAIL DE FANSON 2027 — ÉCHELLE VISUELLE COMPACTE (OCTOBRE 2026)
   Affinage global : moins de hauteur, cartes plus sobres, titres
   plus maîtrisés. Aucune fonctionnalité ou couleur n'est modifiée.
   Ce bloc est volontairement placé à la FIN du fichier pour
   harmoniser les règles historiques de toutes les pages.
   ================================================================ */

/* Typographie et navigation — lisibilité conservée */
body { font-size:15px; line-height:1.55; }
.sur-titre { font-size:14px; letter-spacing:2px; }
.navigation { min-height:73px; padding:10px 5%; gap:20px; }
.logo-trail { width:116px; max-height:64px; }
.navigation .liens-navigation { gap:11px; }
.navigation .liens-navigation a { font-size:16px; }
.navigation .bouton-nav { padding:11px 17px; font-size:16px; }
.bouton, .bouton-secondaire, .bouton-ouverture { padding:12px 21px; font-size:17px; }
section h2 { font-size:clamp(34px,3.9vw,56px); line-height:1; }

/* Page d'accueil — bandeau et sections nettement moins imposants */
.hero-premium { min-height:clamp(480px,68vh,650px); padding:55px 8% 28px; }
.hero-premium h1 { font-size:clamp(56px,6.5vw,94px); line-height:.91; margin-bottom:21px; }
.hero-etiquette { font-size:15px !important; margin-bottom:19px; }
.hero-description { font-size:17px !important; line-height:1.5; margin-bottom:23px; }
.hero-bas { margin-top:28px; padding-top:17px; font-size:14px; }
.hero-boutons { gap:13px; }
.section-parcours { padding:65px 8%; }
.section-parcours h2 { font-size:clamp(38px,4.8vw,65px); }
.intro-parcours { font-size:16px; margin-bottom:29px; }
.grille-parcours { gap:17px; }
.course-image { height:175px; }
.course-contenu { padding:21px 23px 20px; }
.course h3 { font-size:33px; margin:8px 0; }
.course p { font-size:14px; line-height:1.5; min-height:55px; }
.course-infos { padding-top:14px; gap:7px; font-size:12px; }
.course-infos span { padding:7px 9px; }
.bouton-parcours { margin-top:24px; }
.section-verte, .section-beige { padding-top:63px; padding-bottom:63px; }
.cartes { gap:16px; }
.carte { min-height:184px; padding:24px; }
.carte h3 { font-size:29px; margin-bottom:14px; }
.carte p { font-size:14px; line-height:1.5; }
.carte span { margin-top:18px; font-size:13px; }
.section-boulangerie { min-height:400px; }
.image-boulangerie { min-height:400px; }
.contenu-boulangerie { padding:45px 10%; }
.contenu-boulangerie h2 { font-size:clamp(36px,4.2vw,59px); margin-bottom:19px; }
.contenu-boulangerie p { font-size:16px; line-height:1.6; }
.photos-accueil { padding:38px 8%; }
.photos-accueil-contenu { padding-top:27px; gap:24px; }
.photos-accueil h2 { font-size:clamp(34px,3.9vw,49px); }
.photos-accueil-texte > p:last-child { font-size:15px; }
.section-partenaires { padding:65px 8%; }
.partenaires-intro { margin-bottom:42px; }
.partenaires-intro h2 { font-size:clamp(40px,5vw,63px); }
.groupe-partenaires { margin-bottom:40px; }
.partenaire { min-height:125px; padding:24px; }
.principaux .partenaire { min-height:170px; }
.partenaire img { max-height:95px; }
.principaux .partenaire img { max-height:120px; }
.devenir-partenaire { margin-top:52px; padding:37px 5%; }
.devenir-partenaire h3 { font-size:clamp(32px,4vw,51px); }
.inscriptions-premium { padding:67px 8%; }
.inscriptions-intro { margin-bottom:31px; }
.inscriptions-intro h2 { font-size:clamp(48px,6.7vw,84px); margin:14px 0 19px; }
.inscriptions-intro > p:last-child { font-size:16px; }
.grille-inscriptions { gap:15px; }
.carte-inscription { min-height:296px; padding:24px; }
.carte-inscription-centre { margin:22px 0 15px; }
.carte-inscription h3 { font-size:29px; }
.carte-inscription strong { font-size:clamp(53px,6vw,75px); }
.carte-inscription strong small { font-size:23px; }
.carte-inscription p { font-size:14px; line-height:1.5; }
.carte-inscription-bas { padding-top:13px; font-size:13px; }
.ouverture-inscriptions { margin-top:26px; padding:27px 32px; gap:25px; }
.ouverture-texte h3 { font-size:clamp(30px,3.5vw,43px); margin:9px 0 12px; }
.ouverture-texte p { font-size:14px; line-height:1.55; }
.ouverture-action { gap:14px; }
.lien-parcours-inscriptions { font-size:17px; }

/* En-têtes des pages intérieures — taille cohérente entre rubriques */
.entete-parcours, .entete-parcours-komoot, .entete-resultats,
.entete-infos, .entete-photos, .entete-editions, .entete-partenaires,
.entete-inscriptions, .infos27-hero, .photo27-hero {
  padding:54px 8% 40px;
}
.entete-boulangerie { min-height:375px; padding:55px 8%; }
.entete-benevoles { min-height:410px; padding:55px 8%; background-size:cover; }
.partenaires-hero-2027 { min-height:450px; padding:51px 8% 26px; }
.entete-parcours h1, .entete-parcours-komoot h1, .entete-resultats h1,
.entete-infos h1, .entete-photos h1, .entete-editions h1,
.entete-boulangerie h1, .entete-benevoles h1,
.entete-partenaires h1, .entete-inscriptions h1,
.infos27-hero h1, .photo27-hero h1, .partenaires-hero-2027 h1 {
  font-size:clamp(47px,5.5vw,78px); line-height:.94; margin:13px 0 20px;
}
.entete-boulangerie-contenu > p:last-child, .entete-benevoles > p:not(.sur-titre),
.entete-inscriptions-contenu > p:not(.sur-titre), .infos27-hero-interieur > p:not(.sur-titre),
.photo27-hero > p:not(.sur-titre), .partenaires-hero-contenu > p:not(.sur-titre) {
  font-size:16px; line-height:1.55;
}

/* Parcours détaillés et cartes Komoot — hauteur réduite mais profil gardé */
.conteneur-parcours, .parcours-komoot-page { padding:42px 8% 55px; }
.fiche-parcours { min-height:315px; margin-bottom:25px; }
.photo-fiche { min-height:275px; }
.details-fiche { padding:35px 8%; }
.details-fiche h2 { font-size:clamp(35px,4vw,55px); margin-bottom:15px; }
.stats-parcours { margin:17px 0; padding:16px 0; }
.parcours-ancre { margin-top:24px; gap:8px; }
.parcours-ancre a { font-size:15px; padding:9px 13px; }
.parcours-komoot-section { padding-bottom:32px; margin-bottom:32px; }
.parcours-komoot-intro { min-height:220px; margin-bottom:14px; }
.parcours-komoot-photo { min-height:220px; }
.parcours-komoot-description { padding:24px 5%; }
.parcours-komoot-description h2 { font-size:clamp(32px,3.7vw,49px); }
.parcours-komoot-description > p:not(.sur-titre) { font-size:14px; margin-bottom:12px; }
.parcours-komoot-chiffres { gap:13px; padding-top:13px; }
.komoot-cadre iframe { height:600px; }
.komoot-liens { padding:11px 4px; }

/* Résultats et éditions */
.resultats-2026, .classement-complet, .classement-interactif,
.conteneur-editions, .galerie-section { padding:60px 8%; }
.statistiques-resultats { margin:27px 0 40px; gap:15px; }
.statistiques-resultats div { padding:24px; }
.statistiques-resultats strong { font-size:clamp(32px,4vw,48px); }
.podiums { gap:19px; }
.podium { padding:24px; }
.podium h3 { font-size:28px; margin-bottom:18px; }
.ligne-podium { padding:12px 0; }
.pdf-resultats { height:590px; margin-top:28px; }
.filtres-resultats { margin:23px 0 15px; gap:10px; }
.filtres-resultats input, .filtres-resultats select { height:45px; padding:10px 14px; }
.edition-detaillee { margin-bottom:22px; }
.edition-annee, .edition-contenu { padding:33px; }
.edition-annee h2, .edition-future h2 { font-size:clamp(75px,9vw,115px); margin:14px 0; }
.edition-contenu h3, .edition-future h3 { font-size:clamp(30px,3.5vw,42px); margin-bottom:22px; }
.edition-statistiques { margin-bottom:20px; }
.edition-statistiques div { padding:13px 10px; }
.edition-statistiques strong { font-size:clamp(25px,3vw,36px); }
.edition-future { padding:40px; }

/* Infos pratiques, galeries et inscription dédiée */
.infos27-hero-reperes, .photo27-chiffres { margin-top:24px; padding-top:15px; }
.infos27-main .infos27-section, .photo27-section { padding:46px 8%; }
.infos27-intro h2, .infos27-action h2,
.inscription-section-titre h2, .inscription-pratique h2,
.photo27-intro h2 { font-size:clamp(34px,4vw,50px); }
.infos27-intro { margin-bottom:20px; }
.infos27-horaire { padding:19px; gap:8px; }
.infos27-horaire > strong { font-size:clamp(32px,3.7vw,45px); }
.infos27-horaire h3, .infos27-ravitos h3 { font-size:22px; }
.infos27-adresse, .infos27-plan { padding:26px; }
.infos27-plan { min-height:175px; }
.infos27-ravitos article, .infos27-consignes > div { padding:19px; }
.infos27-action { padding:23px 27px; margin-top:25px; }
.photo27-intro { margin-bottom:22px; }
.photo27-grille { column-gap:10px; }
.photo27-carte { margin-bottom:10px; }
.photo27-suite { padding:37px 8%; }
.photo27-suite h2 { font-size:clamp(30px,3.5vw,42px); }
.page-inscriptions-contenu { padding:43px 8% 0; }
.inscription-fiches { gap:14px; }
.inscription-fiche-visuel { height:155px; }
.inscription-fiche-corps { padding:20px; }
.inscription-fiche h3 { font-size:31px; }
.inscription-prix { font-size:60px; }
.inscription-prix small { font-size:23px; }
.inscription-specs { margin-bottom:14px; }
.inscription-indispo { padding:11px 8px; font-size:13px; }
.inscription-pratique { margin-top:40px; padding-top:24px; }
.inscription-fin { padding:25px 8%; }

/* Boulangerie, bénévoles, carte et footer */
.presentation-boulangerie-photo { min-height:385px; }
.presentation-boulangerie-texte { padding:44px 9%; }
.presentation-boulangerie-texte h2, .boulangerie-trail h2, .boulangerie-decouverte h2 {
  font-size:clamp(36px,4.4vw,58px); margin:15px 0 23px;
}
.boulangerie-trail, .boulangerie-decouverte, .boulangerie-contact,
.benevoles-presentation, .benevoles-missions, .benevoles-rejoindre,
.benevoles-formulaire, .section-carte-6km { padding:61px 8%; }
.boulangerie-trail { gap:33px; }
.boulangerie-contact-intro { margin-bottom:28px; }
.benevoles-presentation h2, .benevoles-missions h2, .benevoles-rejoindre h2 {
  font-size:clamp(37px,4.4vw,60px); margin:12px 0 23px;
}
.grille-missions { gap:16px; margin-top:27px; }
.mission-benevole { padding:27px; }
.mission-benevole h3 { font-size:30px; margin:16px 0 12px; }
.benevoles-rejoindre { gap:25px; }
#carte-trail-6km { height:440px; }
.footer-premium { padding:55px 8% 22px; }
.footer-haut { gap:42px; padding-bottom:40px; }
.footer-identite h2 { font-size:clamp(36px,4vw,55px); margin:15px 0 20px; }
.footer-colonnes { gap:24px; }
.footer-colonne { gap:10px; }
.footer-bas { padding-top:18px; }

/* Page partenaires 2027 : version compacte et équilibrée */
.partenaires-hero-2027::before { width:560px; height:560px; right:-130px; top:-155px; }
.partenaires-hero-2027::after { width:340px; height:340px; }
.partenaires-hero-actions { gap:16px; margin-top:10px; }
.partenaires-lien-clair { font-size:16px; padding:8px 0; }
.partenaires-hero-bas { margin-top:24px; padding-top:14px; }
.partenaires-intro-2027 { grid-template-columns:145px minmax(0,1fr); padding:65px 8%; }
.partenaires-intro-2027 h2, .partenaires-titre-ligne h2,
.partenaires-soutien-2027 h2, .partenaires-contact-2027 h2 {
  font-size:clamp(39px,4.7vw,63px);
}
.partenaires-intro-2027 > div:last-child > p:last-child { font-size:16px; line-height:1.6; }
.partenaires-logos-2027, .partenaires-soutien-2027, .partenaires-contact-2027 { padding:65px 8%; }
.partenaires-titre-ligne { padding-bottom:17px; margin-bottom:27px; }
.partenaires-groupe-secondaire { margin-top:43px; }
.partenaires-logos-2027 .partenaires-page-grille { gap:14px; }
.partenaires-logos-2027 .partenaire-page-carte { min-height:154px; padding:29px; }
.partenaires-logos-2027 .principaux .partenaire-page-carte { min-height:192px; padding:36px; }
.partenaires-logos-2027 .partenaire-page-carte img { max-height:94px; }
.partenaires-logos-2027 .principaux .partenaire-page-carte img { max-height:125px; }
.partenaires-soutien-2027 .partenaires-page-avantages { gap:15px; margin-top:27px; }
.partenaires-soutien-2027 .partenaires-page-avantages article { min-height:175px; padding:27px 24px; }
.partenaires-soutien-2027 .partenaires-page-avantages h3 { font-size:29px; margin:16px 0 10px; }
.partenaires-contact-2027 { gap:5%; }
.partenaires-contact-action { padding:25px; gap:15px; }

/* Tablette / petit ordinateur : équilibre avant passage en 1 colonne */
@media (max-width:1000px) {
  .navigation { min-height:70px; padding:10px 6%; }
  .grille-inscriptions { gap:13px; }
  .carte-inscription { min-height:280px; }
  .hero-premium { min-height:510px; }
  .grille-parcours { gap:13px; }
  .section-boulangerie, .image-boulangerie { min-height:350px; }
  .entete-benevoles { background-size:cover; }
  .partenaires-intro-2027 { grid-template-columns:1fr; }
}

/* Smartphone : hauteur réduite, mais sans sacrifier le confort tactile */
@media (max-width:700px) {
  body { font-size:14px; }
  .navigation { min-height:62px; padding:9px 6%; }
  .logo-trail { width:94px; max-height:51px; }
  .menu-mobile summary { font-size:15px; }
  .bouton, .bouton-secondaire, .bouton-ouverture { font-size:16px; padding:12px 18px; }
  .sur-titre { font-size:13px; letter-spacing:1.5px; }
  .hero-premium { min-height:490px; padding:49px 6% 24px; }
  .hero-premium h1 { font-size:clamp(49px,10.3vw,76px); margin-bottom:18px; }
  .hero-description { font-size:15px !important; }
  .hero-bas { gap:10px; font-size:12px; margin-top:23px; }
  .section-parcours, .section-partenaires, .section-verte, .section-beige,
  .inscriptions-premium { padding:43px 6%; }
  .section-parcours h2 { font-size:clamp(34px,8vw,49px); }
  .grille-parcours { grid-template-columns:1fr; gap:14px; }
  .course-image { height:185px; }
  .course-contenu { padding:18px 20px; }
  .course p { min-height:0; }
  .carte { padding:19px; min-height:0; }
  .section-boulangerie { grid-template-columns:1fr; }
  .image-boulangerie { height:230px; min-height:230px; }
  .contenu-boulangerie { padding:34px 6%; }
  .photos-accueil { padding:31px 6%; }
  .photos-accueil-contenu { gap:17px; }
  .inscriptions-intro h2 { font-size:clamp(43px,10vw,65px); }
  .grille-inscriptions { grid-template-columns:1fr; }
  .carte-inscription { min-height:0; padding:20px; }
  .carte-inscription-centre { margin:17px 0 11px; }
  .carte-inscription strong { font-size:63px; }
  .ouverture-inscriptions { padding:23px; flex-direction:column; align-items:flex-start; }
  .entete-parcours, .entete-parcours-komoot, .entete-resultats,
  .entete-infos, .entete-photos, .entete-editions, .entete-partenaires,
  .entete-inscriptions, .infos27-hero, .photo27-hero { padding:39px 6% 31px; }
  .entete-boulangerie { min-height:290px; padding:42px 6%; }
  .entete-benevoles { min-height:345px; padding:43px 6%; }
  .partenaires-hero-2027 { min-height:365px; padding:35px 6% 23px; }
  .entete-parcours h1, .entete-parcours-komoot h1, .entete-resultats h1,
  .entete-infos h1, .entete-photos h1, .entete-editions h1,
  .entete-boulangerie h1, .entete-benevoles h1,
  .entete-partenaires h1, .entete-inscriptions h1,
  .infos27-hero h1, .photo27-hero h1, .partenaires-hero-2027 h1 {
    font-size:clamp(42px,10vw,67px); margin:9px 0 15px;
  }
  .parcours-komoot-page, .conteneur-parcours,
  .resultats-2026, .classement-complet, .classement-interactif,
  .conteneur-editions, .galerie-section, .page-inscriptions-contenu,
  .infos27-main .infos27-section, .photo27-section,
  .boulangerie-trail, .boulangerie-decouverte, .boulangerie-contact,
  .benevoles-presentation, .benevoles-missions, .benevoles-rejoindre,
  .benevoles-formulaire, .section-carte-6km,
  .partenaires-intro-2027, .partenaires-logos-2027,
  .partenaires-soutien-2027, .partenaires-contact-2027 {
    padding:39px 6%;
  }
  .parcours-komoot-photo { min-height:175px; }
  .parcours-komoot-description { padding:20px 6%; }
  .parcours-komoot-intro { grid-template-columns:1fr; }
  .komoot-cadre iframe { height:560px; }
  .infos27-horaires, .infos27-ravitos { grid-template-columns:1fr; }
  .infos27-horaire { padding:16px; }
  .infos27-horaire > strong { min-width:80px; font-size:36px; }
  .infos27-consignes { grid-template-columns:1fr; }
  .photo27-grille { columns:2; column-gap:7px; }
  .photo27-carte { margin-bottom:7px; }
  .inscription-fiche { display:flex; }
  .inscription-fiche-visuel { height:160px; min-height:0; }
  .inscription-pratique-grille { grid-template-columns:1fr; }
  .inscription-fin { margin:18px -6.82% 0; padding:24px 6%; }
  .presentation-boulangerie-photo { min-height:230px; height:250px; }
  .presentation-boulangerie-texte { padding:35px 6%; }
  .grille-missions { grid-template-columns:1fr; }
  .mission-benevole { padding:22px; }
  .partenaires-intro-2027 { grid-template-columns:1fr; }
  .partenaires-logos-2027 .principaux .partenaire-page-carte { min-height:155px; padding:24px; }
  .partenaires-logos-2027 .partenaire-page-carte { min-height:135px; padding:19px; }
  .partenaires-page-grille.principaux, .partenaires-page-grille.officiels,
  .partenaires-page-avantages { grid-template-columns:1fr; }
  .partenaires-contact-2027 { grid-template-columns:1fr; }
  .partenaires-soutien-2027 .partenaires-page-avantages article { min-height:0; }
  .footer-premium { padding:40px 6% 19px; }
  .footer-haut { grid-template-columns:1fr; padding-bottom:25px; gap:25px; }
  .footer-identite h2 { font-size:clamp(32px,8vw,45px); }
  .footer-colonnes { gap:16px; }
}


/* ============================================================
   BÉNÉVOLES 2027 — COMPOSITION PREMIUM ET COMPACTE
   Photo historique conservée : images/benevoles_velo.jpg
   ============================================================ */
.benevoles-page-2027 { overflow: clip; }
.benevoles-hero-2027 { position: relative; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; min-height:440px; padding:60px 8%; background-image:linear-gradient(90deg,rgba(32,54,41,.96) 0%,rgba(32,54,41,.83) 40%,rgba(32,54,41,.20) 100%),url("images/benevoles_velo.jpg"); background-position:center 42%; background-size:cover; }
.benevoles-hero-2027 h1 { max-width:800px; font-size:clamp(48px,5.5vw,82px); line-height:.94; margin:15px 0; }
.benevoles-hero-2027 > p:not(.sur-titre) { max-width:490px; font-size:16px; line-height:1.65; }
.benevoles-hero-2027 .bouton { margin-top:20px; }
.benevoles-hero-legend { margin-top:30px; padding-top:14px; border-top:1px solid rgba(245,241,232,.48); width:min(100%,660px); color:#E2D7C5; font:600 13px 'Barlow Condensed',sans-serif; letter-spacing:1.6px; }
.benevoles-intro-2027 { max-width:none; display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:38px; margin:0; padding:65px 8%; }
.benevoles-intro-2027 h2,.benevoles-missions-2027 h2,.benevoles-infos-2027 h2,.benevoles-cta-2027 h2 { font-size:clamp(38px,4.5vw,61px); line-height:.98; margin:12px 0 20px; }
.benevoles-intro-2027 .benevoles-intro-texte p { font-size:16px; line-height:1.72; margin:0 0 15px; }
.benevoles-missions-2027 { padding:65px 8%; background:#EBE5DA; }
.benevoles-section-heading { display:flex; align-items:end; justify-content:space-between; gap:32px; }
.benevoles-section-heading > p { max-width:340px; color:#5C6257; line-height:1.65; }
.benevoles-missions-2027 .grille-missions { margin-top:26px; gap:14px; }
.benevoles-missions-2027 .mission-benevole { min-height:175px; padding:26px; border-bottom:2px solid #C9B394; }
.benevoles-missions-2027 .mission-benevole > span { font-size:14px; letter-spacing:1px; }
.benevoles-missions-2027 .mission-benevole h3 { font-size:clamp(24px,2.3vw,32px); margin:14px 0 9px; }
.benevoles-missions-2027 .mission-benevole p { font-size:15px; line-height:1.58; margin:0; }
.benevoles-infos-2027 { background:#F5F1E8; padding:60px 8%; }
.benevoles-infos-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:28px 0 18px; border-top:1px solid #C9B394; border-bottom:1px solid #C9B394; }
.benevoles-infos-grid > div { display:flex; flex-direction:column; gap:12px; padding:24px 24px 24px 0; }
.benevoles-infos-grid > div+div { border-left:1px solid #C9B394; padding-left:24px; }
.benevoles-infos-grid span { font:600 13px 'Barlow Condensed',sans-serif; letter-spacing:1.2px; color:#8B755B; }
.benevoles-infos-grid strong { font:600 clamp(23px,2.4vw,31px)/1.04 'Barlow Condensed',sans-serif; }
.benevoles-infos-2027 > p:last-child { font-size:14px; line-height:1.6; color:#566357; }
.benevoles-cta-2027 { background:#E8DCCB; color:#203629; display:grid; grid-template-columns:minmax(0,1.5fr) minmax(240px,.8fr); gap:38px; align-items:center; padding:66px 8%; }
.benevoles-cta-2027 .sur-titre { color:#806447; }
.benevoles-cta-2027 h2 { color:#203629; }
.benevoles-cta-2027 p:not(.sur-titre) { max-width:570px; line-height:1.68; font-size:16px; }
.benevoles-cta-action { display:flex; flex-direction:column; align-items:flex-start; gap:11px; }
.benevoles-cta-action .bouton { margin:0; white-space:nowrap; }
.benevoles-cta-action span { font-size:12px; color:#665846; }
.benevoles-cta-action .bouton { background:#203629; color:#F5F1E8; }
.benevoles-cta-action .bouton:hover { background:#354C3B; color:#FFFFFF; }
@media(max-width:760px) {
 .benevoles-hero-2027 { min-height:440px; padding:55px 6%; background-position:60% center; background-image:linear-gradient(90deg,rgba(32,54,41,.96) 0%,rgba(32,54,41,.74) 67%,rgba(32,54,41,.42) 100%),url("images/benevoles_velo.jpg"); }
 .benevoles-hero-2027 h1 { font-size:clamp(43px,10vw,62px); }
 .benevoles-intro-2027,.benevoles-cta-2027 { grid-template-columns:1fr; gap:15px; }
 .benevoles-intro-2027,.benevoles-missions-2027,.benevoles-infos-2027,.benevoles-cta-2027 { padding:48px 6%; }
 .benevoles-section-heading { display:block; }
 .benevoles-infos-grid { grid-template-columns:1fr; }
 .benevoles-infos-grid > div,.benevoles-infos-grid > div+div { border-left:0; border-bottom:1px solid #C9B394; padding:19px 0; }
 .benevoles-infos-grid > div:last-child { border-bottom:0; }
}
@media(max-width:540px) { .benevoles-missions-2027 .grille-missions { grid-template-columns:1fr; } .benevoles-missions-2027 .mission-benevole { min-height:0; padding:22px; } .benevoles-cta-action .bouton { white-space:normal; } }


/* ÉDITIONS PRÉCÉDENTES — VERSION PREMIUM COMPACTE 2027 */
.ed27-hero{position:relative;overflow:hidden;background:#203629;color:#F5F1E8;padding:65px 8% 60px;min-height:360px}
.ed27-hero-inner{position:relative;z-index:1;max-width:950px}.ed27-hero .sur-titre{color:#C9B394}.ed27-next .sur-titre{color:#806447}
.ed27-hero h1{font:italic 700 clamp(47px,6.3vw,91px)/.92 'Barlow Condensed',sans-serif;margin:13px 0 20px;letter-spacing:-.025em}
.ed27-hero-inner>p:not(.sur-titre){font-size:16px;max-width:550px;line-height:1.65;color:#e6e0d5}
.ed27-hero-link{display:inline-block;margin-top:15px;color:#C9B394;font:600 15px 'Barlow Condensed',sans-serif;letter-spacing:.07em;text-decoration:none}
.ed27-hero-link:hover{text-decoration:underline}.ed27-hero-year{position:absolute;right:-35px;bottom:-78px;opacity:.07;font:700 clamp(150px,24vw,360px)/1 'Barlow Condensed',sans-serif;pointer-events:none}
.ed27-main{background:#F5F1E8}.ed27-history{padding:64px 8% 70px}.ed27-history-heading{display:grid;grid-template-columns:1.1fr 1fr;gap:45px;align-items:end}
.ed27-history h2,.ed27-next h2{font:700 clamp(38px,4.8vw,66px)/.98 'Barlow Condensed',sans-serif;margin:14px 0 0}
.ed27-history-heading>p{font-size:16px;line-height:1.7;color:#4c584e;max-width:480px;margin:0 0 4px}
.ed27-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:30px 0 32px;background:#d6c9b6;border:1px solid #d6c9b6}
.ed27-numbers>div{background:white;padding:22px 24px;display:flex;flex-direction:column;gap:5px}.ed27-numbers strong{font:700 clamp(42px,5vw,67px)/.95 'Barlow Condensed',sans-serif;color:#203629}.ed27-numbers span{font:600 13px 'Barlow Condensed',sans-serif;letter-spacing:.09em;color:#827057}
.ed27-memories{display:grid;grid-template-columns:1fr 1fr;background:#e9e0d2;min-height:300px}.ed27-memories-photo{background:#C9B394 url('images/6kmphotoaccueil.jpg') center 10%/cover no-repeat;min-height:300px}.ed27-memories-text{padding:39px 42px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.ed27-memories h3{font:700 clamp(34px,4vw,55px)/1 'Barlow Condensed',sans-serif;margin:12px 0}.ed27-memories-text>p:not(.sur-titre){font-size:15px;line-height:1.65;max-width:420px}.ed27-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.ed27-btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 18px;font:600 16px 'Barlow Condensed',sans-serif;text-decoration:none;letter-spacing:.035em;transition:background .2s,transform .2s}.ed27-btn:hover{transform:translateY(-2px)}.ed27-btn-dark{background:#203629;color:#F5F1E8}.ed27-btn-outline{border:1px solid #203629;color:#203629}.ed27-btn-sand{background:#C9B394;color:#203629;white-space:nowrap}
.ed27-next{background:#E8DCCB;color:#203629;padding:55px 8%;display:flex;gap:35px;align-items:flex-end;justify-content:space-between}.ed27-next>div{max-width:700px}.ed27-next h2{margin:12px 0 16px}.ed27-next p:not(.sur-titre){max-width:590px;line-height:1.65;font-size:16px}.ed27-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.ed27-tags span{border:1px solid #907E68;color:#203629;padding:8px 11px;font:600 13px 'Barlow Condensed',sans-serif}
@media(max-width:800px){.ed27-hero{padding:53px 6% 50px;min-height:0}.ed27-history{padding:48px 6%}.ed27-history-heading,.ed27-memories{grid-template-columns:1fr}.ed27-history-heading{gap:16px}.ed27-numbers>div{padding:18px 14px}.ed27-memories-photo{min-height:250px}.ed27-memories-text{padding:29px 25px}.ed27-next{padding:45px 6%;flex-direction:column;align-items:flex-start;gap:20px}}
@media(max-width:480px){.ed27-hero h1{font-size:clamp(43px,11vw,57px)}.ed27-numbers strong{font-size:39px}.ed27-numbers span{font-size:11px}.ed27-numbers>div{padding:16px 9px}.ed27-btn{width:100%}.ed27-actions{width:100%}}

/* Séparation nette entre la dernière section Éditions et le pied de page */
.ed27-next .ed27-btn-sand{background:#203629;color:#F5F1E8;}
.ed27-next .ed27-btn-sand:hover{background:#354c3b;color:#fff;}

/* ================================================
   COMPTE À REBOURS 2027 — COMPACT & RESPONSIVE
   ================================================ */
.tf-countdown {
  background: #E8DCCB;
  color: #203629;
  padding: 42px 7%;
}
.tf-countdown-inner { max-width: 1240px; margin: 0 auto; display: grid; grid-template-columns: minmax(240px, 1.1fr) minmax(340px, 1.5fr); gap: 20px 35px; align-items: center; }
.tf-countdown-eyebrow { color: #866747; font: 600 13px 'Barlow Condensed',sans-serif; letter-spacing: 2px; }
.tf-countdown h2 { color: #203629; font: italic 700 clamp(29px,3.6vw,47px)/1 'Barlow Condensed',sans-serif; margin: 8px 0 12px; }
.tf-countdown p { font-size: 14px; line-height: 1.5; margin: 0; }
.tf-countdown-clock { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; }
.tf-time-cell { text-align:center; background: #F5F1E8; padding: 15px 5px 12px; min-width: 0; }
.tf-time-cell strong { display: block; color:#203629; font: 700 clamp(26px,4vw,45px)/1 'Barlow Condensed',sans-serif; font-variant-numeric:tabular-nums; }
.tf-time-cell span { display:block; margin-top:7px; color:#80674D; font: 600 11px 'Barlow Condensed',sans-serif; letter-spacing:1px; }
.tf-countdown-link { grid-column:2; justify-self:end; font:600 13px 'Barlow Condensed',sans-serif; color:#203629; text-decoration:none; letter-spacing:1px; border-bottom:1px solid #203629; padding-bottom:4px; }
.tf-countdown-link:hover { color:#876e50; }
.tf-countdown-mini { background:#E8DCCB; color:#203629; padding:13px 7%; display:flex; justify-content:center; align-items:center; gap:18px; flex-wrap:wrap; font:600 13px 'Barlow Condensed',sans-serif; letter-spacing:1px; }
.tf-mini-numbers { display:flex; align-items:baseline; gap:7px; font-size:13px; }
.tf-mini-numbers strong { font:700 22px 'Barlow Condensed',sans-serif; font-variant-numeric:tabular-nums; }
@media(max-width:750px) {
  .tf-countdown {padding:30px 6%;}
  .tf-countdown-inner {grid-template-columns:1fr;gap:18px;}
  .tf-countdown-link {grid-column:1;justify-self:start;}
  .tf-time-cell {padding:14px 4px 10px;}
  .tf-time-cell strong {font-size:clamp(25px,7vw,39px);}
  .tf-time-cell span {font-size:10px;letter-spacing:0;}
  .tf-countdown-mini {gap:8px 15px;text-align:center;}
}


/* FAQ 2027 - COMPACTE ET PREMIUM */
.faq-accueil{background:#e8dccb;color:#203629;display:flex;justify-content:space-between;align-items:center;gap:32px;padding:55px 8%}
.faq-accueil h2{font-family:'Barlow Condensed',sans-serif;font-size:clamp(38px,4vw,58px);line-height:.98;margin:8px 0 15px}
.faq-accueil p:not(.sur-titre){max-width:550px;line-height:1.6;margin:0}
.faq-accueil .bouton{margin:0;white-space:nowrap;background:#203629;color:#f5f1e8}
.faq-accueil .bouton:hover{background:#374e3e;color:white}
.faq-entete{background:#203629;color:#f5f1e8;padding:65px 8% 60px}
.faq-conteneur{max-width:1150px;margin:0 auto}
.faq-entete .sur-titre{color:#c9b394}
.faq-entete h1{font-family:'Barlow Condensed',sans-serif;font-style:italic;font-weight:600;font-size:clamp(50px,7vw,92px);line-height:.91;margin:14px 0 18px}
.faq-entete p:not(.sur-titre){max-width:570px;line-height:1.65;margin:0;font-size:17px}
.faq-page{background:#f5f1e8;padding:0 8% 55px}
.faq-sommaire{display:flex;flex-wrap:wrap;gap:10px;border-bottom:1px solid #d8c9b3;padding:25px 0}
.faq-sommaire a{border:1px solid #c9b394;color:#203629;text-decoration:none;padding:11px 16px;font-family:'Barlow Condensed',sans-serif;font-weight:700;letter-spacing:.5px}
.faq-sommaire a:hover{background:#e8dccb}
.faq-groupe{display:grid;grid-template-columns:minmax(195px,.42fr) 1fr;gap:32px;padding:45px 0 38px;border-bottom:1px solid #d8c9b3;scroll-margin-top:20px}
.faq-groupe-titre span,.faq-contact span{font-family:'Barlow Condensed',sans-serif;letter-spacing:2px;font-weight:600;color:#927b5f;font-size:14px}
.faq-groupe-titre h2,.faq-contact h2{font-family:'Barlow Condensed',sans-serif;font-size:clamp(32px,3.3vw,46px);line-height:1;margin:14px 0}
.faq-questions details{border-bottom:1px solid #ddd2c0;padding:0}
.faq-questions details:first-child{border-top:1px solid #ddd2c0}
.faq-questions summary{padding:17px 30px 17px 0;position:relative;cursor:pointer;font-weight:600;font-size:16px;line-height:1.4;list-style:none}
.faq-questions summary::-webkit-details-marker{display:none}
.faq-questions summary::after{content:'+';position:absolute;right:5px;top:14px;font-family:'Barlow Condensed',sans-serif;font-size:25px;font-weight:400}
.faq-questions details[open] summary::after{content:'−'}
.faq-questions details p{margin:0;padding:0 32px 18px 0;color:#43554a;line-height:1.7;font-size:15px}
.faq-questions a{color:#203629;text-underline-offset:3px;font-weight:600}
.faq-contact{background:#e8dccb;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:38px 45px;margin:48px 0 0;scroll-margin-top:20px}
.faq-contact p{max-width:520px;line-height:1.6;margin:0}
.faq-contact-bouton{background:#203629;color:#f5f1e8;text-decoration:none;padding:16px 20px;white-space:nowrap;font-family:'Barlow Condensed',sans-serif;font-size:18px;font-weight:600}
.faq-contact-bouton:hover{background:#374e3e}
@media(max-width:800px){.faq-accueil{padding:40px 6%;flex-direction:column;align-items:flex-start}.faq-entete{padding:55px 6%}.faq-page{padding:0 6% 45px}.faq-groupe{grid-template-columns:1fr;gap:15px;padding:36px 0}.faq-contact{padding:30px 25px;flex-direction:column;align-items:flex-start}.faq-contact-bouton{white-space:normal}}
@media(max-width:480px){.faq-sommaire a{padding:10px 12px;font-size:13px}.faq-questions summary{font-size:15px}.faq-contact h2{font-size:35px}}

/* ===========================================================
   PAGE CONTACT 2027 — ÉCHELLE COMPACTE & CONTRASTE PREMIUM
   =========================================================== */
.contact2027-entete{background:#203629;color:#F5F1E8;padding:72px 8% 68px}
.contact2027-limite{max-width:1150px;margin:auto}
.contact2027-entete .sur-titre{color:#C9B394}
.contact2027-entete h1{font-family:'Barlow Condensed',sans-serif;font-size:clamp(53px,6.5vw,92px);line-height:.92;font-weight:700;font-style:italic;margin:15px 0 24px}
.contact2027-entete p:not(.sur-titre){max-width:670px;line-height:1.7;font-size:17px}
.contact2027-section{background:#F5F1E8;padding:65px 8% 78px}
.contact2027-intro{max-width:640px;margin-bottom:32px}
.contact2027-intro h2,.contact2027-direct h2{font-family:'Barlow Condensed',sans-serif;font-size:clamp(39px,4.6vw,60px);line-height:.97;margin:10px 0 17px}
.contact2027-intro p:not(.sur-titre),.contact2027-direct p{line-height:1.7}
.contact2027-cartes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.contact2027-carte{background:#fff;border-top:3px solid #C9B394;padding:27px 25px;min-height:244px;display:flex;flex-direction:column;align-items:flex-start}
.contact2027-num,.contact2027-coordonnees span{color:#80694d;font-family:'Barlow Condensed',sans-serif;letter-spacing:1.7px;font-size:13px;font-weight:700}
.contact2027-carte h3{font-family:'Barlow Condensed',sans-serif;font-size:31px;line-height:1.1;margin:13px 0 9px}
.contact2027-carte p{line-height:1.55;font-size:15px;margin:0 0 20px}
.contact2027-carte a{margin-top:auto;color:#203629;font-family:'Barlow Condensed',sans-serif;font-size:16px;font-weight:700;text-decoration:none;border-bottom:1px solid #C9B394;padding-bottom:7px}
.contact2027-carte a:hover{text-decoration:underline}
.contact2027-direct{padding:60px 8%;background:#E8DCCB;color:#203629;display:grid;grid-template-columns:1.2fr 1fr;gap:55px;align-items:start}
.contact2027-direct .sur-titre{color:#80694d}
.contact2027-direct>div:first-child p:not(.sur-titre){max-width:510px}
.contact2027-coordonnees{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding-top:10px}
.contact2027-coordonnees span:not(:first-child){margin-top:19px}
.contact2027-coordonnees a{color:#203629;font-weight:700;text-decoration:none;font-size:20px;overflow-wrap:anywhere}
.contact2027-coordonnees p{margin:0}
.contact2027-coordonnees .contact2027-lien{font-family:'Barlow Condensed',sans-serif;font-size:17px;margin-top:20px;border-bottom:1px solid #203629;padding-bottom:7px}
.contact2027-fin{background:#F5F1E8;display:flex;justify-content:space-between;align-items:center;gap:22px;padding:35px 8%}
.contact2027-fin p{font-size:19px;font-weight:600;margin:0}
.contact2027-btn{background:#203629;color:#F5F1E8;text-decoration:none;padding:14px 21px;font-family:'Barlow Condensed',sans-serif;font-size:17px;font-weight:700;white-space:nowrap}
.contact2027-btn:hover{background:#385442}
@media(max-width:820px){.contact2027-cartes{grid-template-columns:1fr}.contact2027-carte{min-height:190px}.contact2027-direct{grid-template-columns:1fr;gap:15px}}
@media(max-width:600px){.contact2027-entete{padding:57px 6%}.contact2027-section{padding:52px 6%}.contact2027-direct{padding:48px 6%}.contact2027-fin{padding:32px 6%;align-items:flex-start;flex-direction:column}.contact2027-carte{padding:24px}.contact2027-entete h1{font-size:clamp(48px,12vw,67px)}}

/* PAGE CONTACT — VERSION SIMPLE ET COMPACTE */
.contact-simple{background:#F5F1E8;color:#203629;min-height:490px;padding:65px 8% 75px}
.contact-simple-contenu{max-width:820px;margin:0 auto;text-align:center}
.contact-simple .sur-titre{color:#927756;margin:0 0 14px}
.contact-simple h1{font:italic 700 clamp(48px,6vw,78px)/.96 'Barlow Condensed',sans-serif;margin:0 0 18px}
.contact-simple-intro{font-size:17px;line-height:1.65;max-width:570px;margin:0 auto 26px}
.contact-simple-bouton{display:inline-block;background:#203629;color:#F5F1E8;padding:14px 24px;font:700 18px 'Barlow Condensed',sans-serif;text-decoration:none;letter-spacing:.04em}
.contact-simple-bouton:hover{background:#385442}
.contact-simple-email{display:block;width:fit-content;margin:15px auto 0;color:#203629;text-decoration:none;font-size:16px;overflow-wrap:anywhere}
.contact-simple-email:hover{text-decoration:underline}
.contact-simple-adresse{margin:36px auto 0;padding:23px 10px 0;border-top:1px solid #C9B394;max-width:520px}
.contact-simple-adresse span{color:#897152;font:700 13px 'Barlow Condensed',sans-serif;letter-spacing:1.5px}
.contact-simple-adresse p{margin:10px 0 12px;line-height:1.6}
.contact-simple-adresse a{font:600 16px 'Barlow Condensed',sans-serif;color:#203629;text-underline-offset:4px}
@media(max-width:650px){.contact-simple{padding:48px 6% 60px;min-height:0}.contact-simple-intro{font-size:16px}.contact-simple h1{font-size:clamp(43px,11vw,60px)}}


/* CONTACT 2027 : VERSION PREMIUM SOBRE — priorité sur les anciennes règles */
.contact-premium{background:#F5F1E8;min-height:0;padding:62px 8% 85px}
.contact-premium .contact-simple-contenu{max-width:1120px;text-align:left}
.contact-premium .sur-titre{font-size:13px;letter-spacing:2.5px;margin:0 0 17px}
.contact-premium h1{font:italic 700 clamp(51px,6.4vw,85px)/.9 'Barlow Condensed',sans-serif;letter-spacing:-.015em;margin:0 0 22px;max-width:850px}
.contact-premium .contact-simple-intro{max-width:600px;margin:0 0 34px;font-size:16px;color:#465849}
.contact-premium-carte{display:grid;grid-template-columns:1.05fr .95fr;border:1px solid #d8cdbb;box-shadow:0 18px 40px rgba(32,54,41,.055)}
.contact-premium-colonne{padding:36px 40px 39px;min-width:0}
.contact-premium-message{background:#203629;color:#F5F1E8}
.contact-premium-numero{display:block;font:700 13px 'Barlow Condensed',sans-serif;letter-spacing:2px;color:#C9B394}
.contact-premium-colonne h2{font:700 clamp(32px,3.2vw,45px)/.97 'Barlow Condensed',sans-serif;margin:18px 0 13px}
.contact-premium-colonne p{font-size:15px;line-height:1.6;margin:0 0 22px}
.contact-premium-message p{color:#e7e7dd}
.contact-premium .contact-simple-bouton{background:#C9B394;color:#203629;padding:13px 21px;font-size:16px;display:inline-flex;align-items:center;gap:22px;transition:background .2s}
.contact-premium .contact-simple-bouton:hover{background:#F5F1E8}
.contact-premium .contact-simple-email{color:#F5F1E8;text-decoration:underline;text-decoration-color:#C9B394;text-underline-offset:5px;margin:16px 0 0;font-size:15px}
.contact-premium .contact-simple-adresse{background:#E8DCCB;border:0;max-width:none;margin:0;text-align:left}
.contact-premium .contact-simple-adresse .contact-premium-numero{color:#80694d}
.contact-premium .contact-simple-adresse p{margin:0 0 22px;color:#203629}
.contact-premium .contact-simple-adresse a{display:inline-block;color:#203629;text-decoration:none;border-bottom:1px solid #203629;padding-bottom:5px;font:700 16px 'Barlow Condensed',sans-serif;letter-spacing:.03em}
.contact-premium .contact-simple-adresse a:hover{opacity:.7}
@media(max-width:700px){.contact-premium{padding:45px 6% 55px}.contact-premium h1{font-size:clamp(44px,11vw,66px)}.contact-premium-carte{grid-template-columns:1fr}.contact-premium-colonne{padding:29px 27px 31px}.contact-premium .contact-simple-intro{font-size:15px;margin-bottom:26px}}

/* ACCUEIL 2027 : cartes de parcours entièrement cliquables */
.section-parcours .course { position:relative; cursor:pointer; }
.section-parcours .course-lien-global { position:absolute; inset:0; z-index:2; display:block; border:0; }
.section-parcours .course-lien-global:focus-visible { outline:3px solid #947B5C; outline-offset:-4px; }
/* Le crédit photo reste un lien indépendant et accessible. */
.section-parcours .course-image.kids .credit-photo-kids { position:absolute; z-index:3; }
.section-parcours .course:hover .course-contenu h3 { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }


/* =============================================
   ACCUEIL 2027 : HIÉRARCHIE ET RYTHME VISUEL
   Parcours > inscription > pratique > souvenirs
   ============================================= */
#inscriptions.inscriptions-premium {
    background: var(--vert);
    color: var(--creme);
}
#inscriptions .inscriptions-intro > .sur-titre { color: var(--beige); }
#infos.section-beige { background: var(--creme); color: var(--vert); }
#editions.section-verte { background: #e8dccb; color: var(--vert); }
#editions .sur-titre { color: #80694d; }
#photos.photos-accueil { background-color: var(--creme); }
#partenaires.section-partenaires { background: var(--creme); }
#benevoles.section-verte { background: #e8dccb; color: var(--vert); }
#benevoles .sur-titre { color: #80694d; }
#benevoles .bouton { background: var(--vert); color: var(--creme); }
#benevoles .bouton:hover { background: #334f3c; }
#faq.faq-accueil { background: var(--creme); color: var(--vert); }
/* Footer remains dark green, following a light FAQ section. */


/* Bouton encadré — compte à rebours, accueil */
.tf-countdown .tf-countdown-link {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    padding: 13px 21px;
    min-height: 44px;
    background: #203629;
    color: #F5F1E8;
    border: 1px solid #203629;
    border-bottom: 1px solid #203629;
    text-decoration: none;
    font: 700 16px 'Barlow Condensed', sans-serif;
    letter-spacing: .4px;
    transition: background-color .2s ease, color .2s ease, transform .2s ease;
}
.tf-countdown .tf-countdown-link:hover,
.tf-countdown .tf-countdown-link:focus-visible {
    background: #F5F1E8;
    color: #203629;
    transform: translateY(-2px);
}
.tf-countdown .tf-countdown-link:focus-visible { outline: 2px solid #203629; outline-offset: 3px; }


/* Accueil : bouton Découvrir les parcours, section inscriptions */
#inscriptions .lien-parcours-inscriptions {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 13px 21px;
    min-height: 44px;
    margin-top: 25px;
    background: transparent;
    color: #F5F1E8;
    border: 1px solid #C9B394;
    text-decoration: none;
    font: 700 16px 'Barlow Condensed', sans-serif;
    letter-spacing: .4px;
    transition: background-color .2s ease, color .2s ease, transform .2s ease;
}
#inscriptions .lien-parcours-inscriptions:hover,
#inscriptions .lien-parcours-inscriptions:focus-visible {
    background: #C9B394;
    color: #203629;
    transform: translateY(-2px);
    text-decoration: none;
}
#inscriptions .lien-parcours-inscriptions:focus-visible {
    outline: 2px solid #F5F1E8;
    outline-offset: 3px;
}

/* CARTES EDITIONS ACCUEIL : boutons visibles et liens couvrant la carte */
#editions .editions-cartes-cliquables .edition-carte-lien {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    cursor: pointer;
    transition: transform .22s ease, box-shadow .22s ease;
}
#editions .edition-carte-lien:hover,
#editions .edition-carte-lien:focus-within {
    transform: translateY(-5px);
    box-shadow: 0 13px 28px rgba(32,54,41,.13);
}
#editions .edition-carte-lien .edition-bouton-visuel {
    display: inline-flex;
    align-items: center;
    margin-top: auto;
    padding: 12px 18px;
    background: #203629;
    color: #F5F1E8;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .25px;
    line-height: 1.2;
    transition: background .2s ease, color .2s ease;
}
#editions .edition-carte-lien:hover .edition-bouton-visuel,
#editions .edition-carte-lien:focus-within .edition-bouton-visuel {
    background: #C9B394;
    color: #203629;
}
#editions .edition-carte-lien .edition-lien-integral {
    position: absolute;
    inset: 0;
    z-index: 2;
    cursor: pointer;
}
#editions .edition-carte-lien .edition-lien-integral:focus-visible {
    outline: 3px solid #80694D;
    outline-offset: 3px;
}
#editions .edition-carte-lien p:last-of-type { margin-bottom: 22px; }
@media (max-width:600px) {
    #editions .edition-carte-lien .edition-bouton-visuel {font-size:15px; padding:11px 15px;}
}


/* ACCUEIL — HISTOIRE 2026 / 2027 FUSIONNÉE */
#editions.accueil-histoire {
    background: #E8DCCB;
    color: #203629;
    padding-top: 65px;
    padding-bottom: 58px;
}
#editions.accueil-histoire .sur-titre { color: #80694D; }
#editions.accueil-histoire h2 { margin-bottom: 27px; }
#editions.accueil-histoire .edition-carte-lien { min-height: 210px; padding: 25px 27px; }
#editions.accueil-histoire .edition-carte-lien h3 { margin: 8px 0 12px; }
#editions.accueil-histoire .edition-carte-lien p { margin: 0 0 10px; }
#editions.accueil-histoire .edition-carte-lien .histoire-etiquette {
    margin: 0; font: 700 12px 'Barlow Condensed',sans-serif;
    letter-spacing: 1.3px; color: #80694D;
}
#editions.accueil-histoire .edition-bouton-visuel { margin-top: auto; }
#editions .histoire-liens {
    display: flex; flex-wrap: wrap; align-items: center;
    gap: 14px 23px; padding: 21px 0 0; margin-top: 21px;
    border-top: 1px solid rgba(32,54,41,.22);
    background: transparent;
}
#editions .histoire-liens span {
    font: 700 13px 'Barlow Condensed',sans-serif;
    letter-spacing: 1.3px; color: #80694D;
}
#editions .histoire-liens a {
    font: 700 15px 'Barlow Condensed',sans-serif;
    color: #203629; text-decoration: none;
    border-bottom: 1px solid #80694D; padding: 4px 0;
}
#editions .histoire-liens a:hover,#editions .histoire-liens a:focus-visible {
    color: #80694D; border-color: #203629;
}
@media(max-width:600px) {
    #editions.accueil-histoire { padding: 44px 6%; }
    #editions.accueil-histoire .edition-carte-lien { min-height: 195px; padding: 22px; }
    #editions .histoire-liens { gap: 9px 18px; }
}


/* ACCUEIL — VRAIS BOUTONS POUR LES SOUVENIRS 2026 */
#editions .histoire-liens a.histoire-bouton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 12px 19px;
    background: #203629;
    color: #F5F1E8;
    border: 1px solid #203629;
    text-decoration: none;
    font: 700 16px 'Barlow Condensed', sans-serif;
    letter-spacing: .3px;
    transition: background-color .2s ease, color .2s ease, transform .2s ease;
}
#editions .histoire-liens a.histoire-bouton:hover,
#editions .histoire-liens a.histoire-bouton:focus-visible {
    background: #C9B394;
    color: #203629;
    border-color: #C9B394;
    transform: translateY(-2px);
    text-decoration: none;
}
#editions .histoire-liens a.histoire-bouton:focus-visible {
    outline: 2px solid #203629;
    outline-offset: 3px;
}
@media (max-width: 600px) {
    #editions .histoire-liens a.histoire-bouton { padding: 11px 15px; font-size: 15px; }
}


/* 2027 – SYSTÈME D'ACTIONS SANS FLÈCHES DÉCORATIVES */
/* Une action se reconnaît à sa surface, pas à un pictogramme répété. */
a.bouton, a.bouton-secondaire, a.bouton-nav, a.bouton-ouverture,
a.tf-countdown-link, a.lien-parcours-inscriptions,
a.histoire-bouton, a.ed27-btn, a.faq-contact-bouton,
a.contact-simple-bouton, .edition-bouton-visuel {
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
a.bouton:focus-visible, a.bouton-secondaire:focus-visible,
a.bouton-nav:focus-visible, a.bouton-ouverture:focus-visible,
a.ed27-btn:focus-visible, a.faq-contact-bouton:focus-visible,
a.contact-simple-bouton:focus-visible {
    outline: 2px solid #947B5C; outline-offset: 3px;
}
/* Liens du pied de page : contraste et soulignement lisible au clavier/survol. */
footer a:not(.bouton):hover, footer a:not(.bouton):focus-visible {text-decoration: underline;}


/* ACCUEIL — boutons Missions et FAQ : couleur du fond au survol */
/* Bénévoles : même beige que la section, contraste vert et bordure conservée. */
#benevoles.section-verte a.bouton {
    border: 1px solid #203629;
}
#benevoles.section-verte a.bouton:hover,
#benevoles.section-verte a.bouton:focus-visible {
    background: #E8DCCB;
    color: #203629;
    border-color: #203629;
    transform: translateY(-2px);
}
/* FAQ : même crème que la section, contraste vert et bordure conservée. */
#faq.faq-accueil a.bouton { border: 1px solid #203629; }
#faq.faq-accueil a.bouton:hover,
#faq.faq-accueil a.bouton:focus-visible {
    background: #F5F1E8;
    color: #203629;
    border-color: #203629;
    transform: translateY(-2px);
}


/* ===============================================================
   CHARTE PREMIUM FANSON — ACTIONS & CARTOUCHES · OCTOBRE 2026
   Inspirée du bouton « TOUTES LES INFORMATIONS ».
   Couleurs officielles et logos des partenaires non modifiés.
   =============================================================== */
:root {
    --tf-forest: #203629;
    --tf-sand: #C9B394;
    --tf-sand-light: #E8DCCB;
    --tf-ivory: #F5F1E8;
    --tf-action-radius: 2px;
}

/* Règles communes : boutons affirmés, contours nets, effets discrets. */
a.bouton, a.bouton-secondaire, a.bouton-nav, a.bouton-ouverture,
a.bouton-parcours, a.tf-countdown-link, a.lien-parcours-inscriptions,
a.histoire-bouton, a.ed27-btn, a.faq-contact-bouton,
a.contact-simple-bouton, a.benevoles-cta-bouton,
a.komoot-gpx, a.bouton-ouverture,
#editions .edition-bouton-visuel {
    border-radius: var(--tf-action-radius);
    font-family: 'Barlow Condensed', Arial, sans-serif;
    font-weight: 700;
    letter-spacing: .5px;
    text-decoration: none;
    box-shadow: none;
    transition: background-color .20s ease, color .20s ease,
                border-color .20s ease, transform .20s ease;
}
a.bouton:hover, a.bouton-secondaire:hover, a.bouton-nav:hover,
a.bouton-ouverture:hover, a.bouton-parcours:hover,
a.tf-countdown-link:hover, a.lien-parcours-inscriptions:hover,
a.histoire-bouton:hover, a.ed27-btn:hover,
a.faq-contact-bouton:hover, a.contact-simple-bouton:hover,
a.komoot-gpx:hover {
    transform: translateY(-2px);
    text-decoration: none;
}
/* Style premium réutilisable : les CTA beige sur fond foncé. */
.hero-premium .bouton,
.inscriptions-premium a.bouton-ouverture,
.section-verte:not(#benevoles) > a.bouton {
    background: var(--tf-sand);
    color: var(--tf-forest);
    border: 1px solid var(--tf-sand);
}
.hero-premium .bouton:hover,
.hero-premium .bouton:focus-visible,
.inscriptions-premium a.bouton-ouverture:hover,
.inscriptions-premium a.bouton-ouverture:focus-visible,
.section-verte:not(#benevoles) > a.bouton:hover {
    background: transparent;
    color: var(--tf-ivory);
    border-color: var(--tf-sand);
}
/* Cartes parcours : léger trait de finition, animation conservée. */
#parcours .course {
    border: 1px solid rgba(32, 54, 41, .10);
    border-bottom: 3px solid var(--tf-sand);
}
#parcours .course:hover,
#parcours .course:focus-within {
    border-bottom-color: var(--tf-forest);
    box-shadow: 0 12px 28px rgba(32,54,41,.10);
}
#parcours .course-lien-global:focus-visible {
    outline: 3px solid var(--tf-forest);
    outline-offset: -4px;
}
/* Cartes histoire : même famille visuelle que les boutons d'action. */
#editions.accueil-histoire .edition-carte-lien {
    border-bottom: 3px solid var(--tf-sand);
}
#editions.accueil-histoire .edition-carte-lien:hover,
#editions.accueil-histoire .edition-carte-lien:focus-within {
    border-bottom-color: var(--tf-forest);
}
/* Logos : mise en page harmonisée, fichiers et couleurs d'origine préservés. */
.logos-partenaires .partenaire,
.partenaires-logos .partenaire {
    border: 1px solid rgba(32,54,41,.10);
    border-bottom: 3px solid var(--tf-sand);
}
.logos-partenaires .partenaire img,
.partenaires-logos .partenaire img {
    object-fit: contain;
}
/* CTA de fin de section : fond identique à la section au survol. */
#benevoles.section-verte a.bouton:hover,
#benevoles.section-verte a.bouton:focus-visible {
    background: var(--tf-sand-light);
    color: var(--tf-forest);
    border-color: var(--tf-forest);
}
#faq.faq-accueil a.bouton:hover,
#faq.faq-accueil a.bouton:focus-visible {
    background: var(--tf-ivory);
    color: var(--tf-forest);
    border-color: var(--tf-forest);
}
/* Focus accessible pour toute la famille d'actions. */
a.bouton:focus-visible, a.bouton-secondaire:focus-visible,
a.bouton-nav:focus-visible, a.tf-countdown-link:focus-visible,
a.lien-parcours-inscriptions:focus-visible,
#editions .histoire-bouton:focus-visible {
    outline: 2px solid var(--tf-sand);
    outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
    a.bouton, a.bouton-secondaire, a.bouton-nav,
    a.bouton-ouverture, a.tf-countdown-link,
    .course, .edition-carte-lien {
        transition: none !important;
    }
}


/* === Trail de Fanson — menus par édition/parcours et galerie === */
/* Bas de la galerie beige : aucune bande vert sur vert avant le pied de page */
.photo27-suite {
    background: #E8DCCB;
    color: #203629;
    border-top: 1px solid #C9B394;
}
.photo27-suite .sur-titre { color: #80694D; }
.photo27-suite .bouton {
    background: #203629;
    border: 1px solid #203629;
    color: #F5F1E8;
}
.photo27-suite .bouton:hover, .photo27-suite .bouton:focus-visible {
    background: transparent;
    color: #203629;
}
/* Sous-menus cliquables, utilisables aussi au clavier et au toucher */
.navigation .liens-navigation { align-items: center; }
.navigation .nav-deroulant { position: relative; flex: 0 0 auto; }
.navigation .nav-deroulant > summary {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 7px;
    cursor: pointer;
    color: #203629;
    padding: 8px 0;
    font: 600 16px 'Barlow Condensed', sans-serif;
    white-space: nowrap;
}
.navigation .nav-deroulant > summary::-webkit-details-marker { display: none; }
.navigation .nav-deroulant > summary:hover,
.navigation .nav-deroulant > summary.actif,
.navigation .nav-deroulant > summary:focus-visible { color: #80694D; }
.navigation .nav-chevron { width: 7px; height: 7px; display: inline-block; border-bottom: 1.6px solid currentColor; border-right: 1.6px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .18s ease; }
.navigation .nav-deroulant[open] .nav-chevron { transform: translateY(2px) rotate(225deg); }
.navigation .nav-sous-menu {
    position: absolute;
    z-index: 101;
    top: calc(100% + 9px);
    left: -16px;
    min-width: 205px;
    display: flex;
    flex-direction: column;
    gap: 0;
    background: #F5F1E8;
    border: 1px solid #C9B394;
    box-shadow: 0 14px 26px rgba(32,54,41,.15);
    padding: 7px;
}
.navigation .nav-sous-menu a {
    display: block;
    padding: 11px 12px;
    color: #203629;
    font: 600 15px 'Barlow Condensed', sans-serif;
    white-space: nowrap;
    text-decoration: none;
}
.navigation .nav-sous-menu a::after { display: none !important; }
.navigation .nav-sous-menu a:hover,
.navigation .nav-sous-menu a:focus-visible { background: #E8DCCB; color: #203629; }
/* L'ouverture est possible sans clic à la souris, tout en gardant le clic et le clavier */
@media (hover:hover) and (pointer:fine) {
    .navigation .nav-deroulant:hover > .nav-sous-menu { display: flex; }
    .navigation .nav-deroulant:not([open]):not(:hover) > .nav-sous-menu { display: none; }
}
.navigation .nav-deroulant:not([open]) > .nav-sous-menu { display: none; }
@media (hover:hover) and (pointer:fine) {
    .navigation .nav-deroulant:not([open]):hover > .nav-sous-menu { display: flex; }
}
.navigation .menu-mobile-groupe > summary {
    cursor: pointer;
    padding: 10px 0;
    list-style: none;
    color: #203629;
    font-weight: 600;
}
.navigation .menu-mobile-groupe > summary::after { content: ' +'; }
.navigation .menu-mobile-groupe[open] > summary::after { content: ' −'; }
.navigation .menu-mobile-groupe > div { display: flex; flex-direction: column; padding-left: 15px; border-left: 2px solid #C9B394; }
.navigation .menu-mobile-groupe a { padding: 10px 0; }
@media(max-width:1100px) { .navigation .nav-deroulant > summary { font-size: 15px; } }


/* Repères éditoriaux Trail de Fanson : année et format, discrets et réutilisables */
.tf-edition-chip {
    display: inline-flex;
    align-items: center;
    padding: 9px 15px;
    margin: 0 0 20px;
    background: #C9B394;
    border: 1px solid #C9B394;
    color: #203629;
    font: 700 15px/1.1 'Barlow Condensed',sans-serif;
    letter-spacing: 1.4px;
    text-transform: uppercase;
}
.photo27-hero > .tf-edition-chip,
.entete-resultats > .tf-edition-chip,
.entete-parcours-komoot > .tf-edition-chip { position: relative; z-index: 1; }
.tf-parcours-chip {
    display: inline-block;
    padding: 6px 10px;
    margin: 0 0 10px;
    background: #E8DCCB;
    border-left: 3px solid #C9B394;
    color: #203629;
    font: 700 13px/1.1 'Barlow Condensed',sans-serif;
    letter-spacing: 1px;
    text-transform: uppercase;
}
/* Aucune liste déroulante sur fond vert : contraste explicite des rubriques */
.navigation .nav-deroulant[open] > summary { color: #80694D; }
@media(max-width:620px) {
    .tf-edition-chip { font-size: 13px; padding: 8px 11px; margin-bottom: 15px; }
}


/* ============================================================
   FANSON 2027 — ALTERNANCE DES FONDS & MENUS AU SURVOL
   Accueil : Histoire sable → Boulangerie crème → Partenaires
   beige → Bénévoles vert forêt → FAQ crème → pied de page vert.
   ============================================================ */
#boulangerie.section-boulangerie {
    background: #F5F1E8;
    color: #203629;
}
#partenaires.section-partenaires {
    background: #E8DCCB;
    color: #203629;
}
#partenaires .logos-partenaires .partenaire { background: #FFFFFF; }
#partenaires .devenir-partenaire { border-color: #C9B394; }
#benevoles.section-verte {
    background: #203629;
    color: #F5F1E8;
}
#benevoles.section-verte .sur-titre { color: #C9B394; }
#benevoles.section-verte a.bouton {
    background: #C9B394;
    border: 1px solid #C9B394;
    color: #203629;
}
#benevoles.section-verte a.bouton:hover,
#benevoles.section-verte a.bouton:focus-visible {
    background: #203629;
    color: #F5F1E8;
    border-color: #C9B394;
}
#faq.faq-accueil { background: #F5F1E8; color: #203629; }

/* La surface sous le titre appartient au même menu : aucun trou
   entre le survol du titre et celui d'une option. */
.navigation .nav-deroulant .nav-sous-menu {
    top: 100%;
    padding: 9px 7px 7px;
}
@media (hover: hover) and (pointer: fine) {
    .navigation .nav-deroulant:hover > .nav-sous-menu,
    .navigation .nav-deroulant:focus-within > .nav-sous-menu {
        display: flex;
    }
    .navigation .nav-deroulant:not([open]):hover > .nav-sous-menu,
    .navigation .nav-deroulant:not([open]):focus-within > .nav-sous-menu {
        display: flex;
    }
}
.navigation .nav-deroulant > summary:focus-visible {
    outline: 2px solid #C9B394;
    outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
    .navigation .nav-chevron { transition: none; }
}


/* ==============================================
   SOUS-MENUS PREMIUM — fondu + glissement doux
   Le panneau commence directement sous le titre :
   aucun intervalle qui interromprait le survol.
   ============================================== */
.navigation .nav-deroulant {
    position: relative;
}
.navigation .nav-deroulant > .nav-sous-menu {
    display: flex !important;
    top: 100%;
    left: -18px;
    padding: 10px 8px 8px;
    border: 1px solid #C9B394;
    border-top: 2px solid #C9B394;
    background: #F5F1E8;
    box-shadow: 0 18px 36px rgba(25, 40, 30, .17);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-8px);
    transform-origin: top center;
    transition: opacity .23s ease, transform .23s cubic-bezier(.2,.7,.2,1),
                visibility .23s;
}
.navigation .nav-deroulant[open] > .nav-sous-menu,
.navigation .nav-deroulant:focus-within > .nav-sous-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}
@media (hover: hover) and (pointer: fine) {
    .navigation .nav-deroulant:hover > .nav-sous-menu {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
    }
}
.navigation .nav-deroulant .nav-sous-menu a {
    transition: background-color .16s ease, color .16s ease,
                padding-left .16s ease;
}
.navigation .nav-deroulant .nav-sous-menu a:hover,
.navigation .nav-deroulant .nav-sous-menu a:focus-visible {
    background: #E8DCCB;
    color: #203629;
    padding-left: 17px;
}
@media (prefers-reduced-motion: reduce) {
    .navigation .nav-deroulant > .nav-sous-menu,
    .navigation .nav-deroulant .nav-sous-menu a {
        transition: none !important;
    }
}


/* ===========================================================
   FANSON — SIGNATURE D'ÉDITION / EN-TÊTES PREMIUM
   Logo S en filigrane (S.svg déjà utilisé en favicon),
   repères légers, sans modifier les photos d'arrière-plan.
   =========================================================== */
.entete-inscriptions, .entete-parcours-komoot, .entete-resultats,
.infos27-hero, .photo27-hero, .ed27-hero, .entete-boulangerie,
.benevoles-hero-2027, .partenaires-hero-2027, .faq-entete {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}
/* Fallback typographique en contour, si le S.svg n'est pas disponible. */
.tf-signature-s {
    position: absolute;
    z-index: -1;
    top: 50%;
    right: 5.5%;
    transform: translateY(-50%) rotate(-8deg);
    display: block;
    font: 900 clamp(170px, 29vw, 470px)/.8 'Barlow Condensed', sans-serif;
    letter-spacing: -.10em;
    color: transparent;
    -webkit-text-stroke: 1.25px rgba(201,179,148,.25);
    pointer-events: none;
    user-select: none;
    white-space: nowrap;
}
/* Motif basé sur le véritable S du favicon Trail de Fanson,
   rendu doux pour garder un titre parfaitement lisible. */
@supports ((mask-image: url('images/S.svg')) or (-webkit-mask-image: url('images/S.svg'))) {
 .tf-signature-s::after {
    content: '';
    position: absolute;
    inset: 3% 4% 3% 0;
    background: rgba(201,179,148,.13);
    -webkit-mask: url('images/S.svg') center / contain no-repeat;
    mask: url('images/S.svg') center / contain no-repeat;
 }
}
.tf-hero-meta {
    position: absolute;
    z-index: 3;
    right: 8%;
    bottom: 24px;
    padding: 7px 0 5px;
    color: #C9B394;
    border-top: 1px solid rgba(201,179,148,.5);
    font: 700 12px/1.2 'Barlow Condensed', sans-serif;
    letter-spacing: 2px;
    text-transform: uppercase;
    pointer-events: none;
}
/* Les éléments du contenu restent au-dessus du filigrane. */
.entete-inscriptions-contenu, .infos27-hero-interieur,
.ed27-hero-inner, .entete-boulangerie-contenu,
.partenaires-hero-contenu, .faq-conteneur { position: relative; z-index: 2; }
/* La photo d'origine des bénévoles est conservée intégralement :
   l'ornement reste minimal dans cette seule rubrique. */
.benevoles-hero-2027 .tf-signature-s {
    right: 3%; font-size: clamp(130px, 17vw, 260px);
    -webkit-text-stroke-color: rgba(245,241,232,.17);
}
.benevoles-hero-2027 .tf-hero-meta { color: #F5F1E8; }
/* Les rubriques claires gardent un filigrane très atténué. */
.entete-boulangerie .tf-signature-s, .faq-entete .tf-signature-s {
    -webkit-text-stroke-color: rgba(201,179,148,.20);
}
@media (max-width: 720px) {
 .tf-signature-s { right: -30px; top: 45%; font-size: 210px; opacity: .65; }
 .tf-hero-meta { position: relative; display: inline-block; right: auto; bottom: auto;
    margin: 22px 0 0; letter-spacing: 1.4px; font-size: 11px; }
 .benevoles-hero-2027 .tf-signature-s { right: -15px; font-size: 150px; opacity: .55; }
}
@media (prefers-reduced-motion: reduce) { .tf-signature-s { transition: none; } }

/* === SIGNATURE OFFICIELLE FANSON — SVG fourni par l'organisateur ===
   Copier TrailDeFanson_logo_S_contour.svg dans images/.
   Le S est utilisé comme dessin, jamais comme lettre de police. */
.tf-signature-s {
    width: clamp(95px, 12vw, 185px);
    height: clamp(230px, 29vw, 460px);
    top: 50%;
    right: 7%;
    transform: translateY(-50%);
    background: url('images/TrailDeFanson_logo_S_contour.svg') center / contain no-repeat;
    opacity: .23;
    color: transparent;
    font-size: 0;
    line-height: 0;
    letter-spacing: 0;
    -webkit-text-stroke: 0 transparent;
    pointer-events: none;
}
/* Désactiver l'ancien S superposé provenant du favicon. */
.tf-signature-s::after { content: none !important; }
/* Modération sur les en-têtes clairs et sur la photo des bénévoles. */
.entete-boulangerie .tf-signature-s,
.faq-entete .tf-signature-s { opacity: .13; }
.benevoles-hero-2027 .tf-signature-s {
    right: 3%;
    width: clamp(65px, 9vw, 135px);
    height: clamp(175px, 21vw, 350px);
    opacity: .13;
}
@media (max-width: 720px) {
  .tf-signature-s { width: 90px; height: 230px; right: -12px; top: 48%; opacity: .16; }
  .benevoles-hero-2027 .tf-signature-s { width: 60px; height: 175px; right: -8px; opacity: .10; }
}


/* FANSON — Ajustement du filigrane officiel, octobre 2026.
   La signature reste intégralement à droite et au-dessus des repères bas. */
.tf-signature-s {
    top: 43%;
    right: 7%;
    width: clamp(68px, 8vw, 122px);
    height: clamp(155px, 21vw, 285px);
    transform: translateY(-50%);
    opacity: .19;
    background-position: center;
    background-size: contain;
}
/* Jamais de S sur la photo de l'équipe bénévole. */
.benevoles-hero-2027 .tf-signature-s { display: none !important; }
@media (max-width: 720px) {
    .tf-signature-s {
        top: 39%;
        right: 3%;
        width: 58px;
        height: 145px;
        opacity: .13;
    }
}

/* ==============================================================
   TRAIL DE FANSON — GRAND S OFFICIEL EN FILIGRANE (2027)
   SVG fourni par l'organisateur dans images/.
   ==============================================================
   Le motif passe derrière le contenu; les héros le rognent.
   Pas de motif pour Boulangerie, Partenaires ou Bénévoles.
*/
.entete-inscriptions, .entete-parcours-komoot, .entete-resultats,
.infos27-hero, .photo27-hero, .ed27-hero, .faq-entete {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}
:is(.entete-inscriptions, .entete-parcours-komoot, .entete-resultats,
    .infos27-hero, .photo27-hero, .ed27-hero, .faq-entete)
    > .tf-signature-s {
    display: block;
    position: absolute;
    z-index: 0;
    right: -5.5%;
    top: 50%;
    width: clamp(340px, 46vw, 850px);
    height: 125%;
    transform: translateY(-50%);
    background: url("images/TrailDeFanson_logo_S_contour.svg") center / contain no-repeat;
    opacity: .16;
    pointer-events: none;
    font-size: 0;
    line-height: 0;
    -webkit-text-stroke: 0 transparent;
}
:is(.entete-inscriptions, .entete-parcours-komoot, .entete-resultats,
    .infos27-hero, .photo27-hero, .ed27-hero, .faq-entete)
    > .tf-signature-s::after { content: none !important; }
/* Aucun filigrane sur les trois pages demandées. */
:is(.benevoles-hero-2027, .entete-boulangerie, .partenaires-hero-2027)
    .tf-signature-s { display: none !important; }
/* Le texte et les liens restent toujours devant le dessin. */
:is(.entete-inscriptions, .entete-parcours-komoot, .entete-resultats,
    .infos27-hero, .photo27-hero, .ed27-hero, .faq-entete)
    > :not(.tf-signature-s) { position: relative; z-index: 1; }
@media (max-width: 800px) {
  :is(.entete-inscriptions, .entete-parcours-komoot, .entete-resultats,
      .infos27-hero, .photo27-hero, .ed27-hero, .faq-entete)
      > .tf-signature-s {
      width: 75vw;
      min-width: 270px;
      height: 110%;
      right: -25%;
      top: 50%;
      opacity: .105;
  }
}


/* ============================================================
   NAVIGATION TOUJOURS VISIBLE PENDANT LE DÉFILEMENT — 2027
   La barre reste dans le flux (aucun chevauchement au chargement).
   Son z-index protège les sous-menus déroulants.
   ============================================================ */
.navigation {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 10000;
    background: #F5F1E8;
    box-shadow: 0 3px 16px rgba(32, 54, 41, 0.09);
    isolation: isolate;
}
/* Ancrages : les titres restent visibles sous le menu fixe. */
html { scroll-padding-top: 96px; }
section[id], [id].photo27-hero, [id].entete-parcours-komoot { scroll-margin-top: 96px; }
@media (max-width: 1250px) {
    html { scroll-padding-top: 84px; }
    section[id] { scroll-margin-top: 84px; }
}
@media (max-width: 600px) {
    html { scroll-padding-top: 72px; }
    section[id] { scroll-margin-top: 72px; }
}

/* Navigation intelligente : disparaît à la descente, revient à la remontée. */
.navigation {
  transition: transform .32s cubic-bezier(.22, 1, .36, 1),
              box-shadow .25s ease;
  will-change: transform;
}
.navigation.navigation--masquee {
  transform: translateY(calc(-100% - 3px));
  pointer-events: none;
}
/* Les éléments de menus restent navigables au clavier. */
.navigation:focus-within { transform: translateY(0) !important; pointer-events: auto; }
@media (prefers-reduced-motion: reduce) {
  .navigation { transition: none !important; }
}

/* === En-tête légèrement agrandi, navigation premium — 2027 === */
@media (min-width: 1251px) {
  .navigation {
    min-height: 100px;
    padding: 19px 3%;
    gap: 18px;
  }
  .navigation .liens-navigation { gap: 10px; }
  .navigation .liens-navigation > a {
    font-size: 17.5px;
  }
  .navigation .nav-deroulant > summary {
    font-size: 17.5px;
    font-weight: 600;
  }
  .navigation .nav-sous-menu a { font-size: 16px; }
  .navigation .bouton-nav {
    padding: 15px 21px;
    font-size: 18px;
    background: #C9B394;
    color: #203629;
    border: 1px solid #C9B394;
  }
  .navigation .bouton-nav:hover,
  .navigation .bouton-nav:focus-visible {
    background: #203629;
    color: #F5F1E8;
    border-color: #203629;
  }
}
/* Mise à jour du décalage des liens d'ancrage. */
@media (min-width: 1251px) {
  html { scroll-padding-top: 106px; }
  section[id], [id].photo27-hero, [id].entete-parcours-komoot {
    scroll-margin-top: 106px;
  }
}
@media (max-width: 1250px) {
  .navigation { min-height: 86px; }
}
@media (max-width: 600px) {
  .navigation { min-height: 74px; }
}

/* Accueil : histoire épurée, deux cartes et liens d'archives secondaires */
#editions.accueil-histoire { padding-top: 51px; padding-bottom: 43px; }
#editions.accueil-histoire h2 { margin-bottom: 24px; }
#editions.accueil-histoire .edition-carte-lien {
    min-height: 188px;
    padding: 23px 27px 24px;
}
#editions.accueil-histoire .edition-carte-lien h3 { margin: 7px 0 10px; }
#editions.accueil-histoire .edition-carte-lien p {
    margin: 0 0 17px;
    line-height: 1.5;
}
#editions .histoire-liens.histoire-liens-discrets {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 17px;
    padding: 13px 0 0;
    border-top: 1px solid rgba(32,54,41,.20);
    background: transparent;
}
#editions .histoire-liens.histoire-liens-discrets a {
    display: inline;
    min-height: auto;
    background: transparent;
    color: #203629;
    border: 0;
    border-bottom: 1px solid rgba(32,54,41,.45);
    border-radius: 0;
    padding: 2px 0;
    font: 700 14px 'Barlow Condensed', sans-serif;
    letter-spacing: .45px;
    text-decoration: none;
    transform: none;
    transition: color .2s ease, border-color .2s ease;
}
#editions .histoire-liens.histoire-liens-discrets a:hover,
#editions .histoire-liens.histoire-liens-discrets a:focus-visible {
    color: #80694D;
    border-bottom-color: #80694D;
    background: transparent;
    transform: none;
}
#editions .histoire-liens.histoire-liens-discrets span {
    font: 400 17px 'Barlow',sans-serif;
    color: #80694D;
    letter-spacing: 0;
}
@media(max-width:600px){
    #editions.accueil-histoire { padding-top: 42px; padding-bottom: 38px; }
    #editions.accueil-histoire .edition-carte-lien { min-height: 180px; padding: 21px; }
    #editions .histoire-liens.histoire-liens-discrets { gap: 11px; }
    #editions .histoire-liens.histoire-liens-discrets a { font-size: 13px; }
}

/* Navigation : rubrique actuelle soulignée en permanence (desktop). */
.navigation .liens-navigation > a[aria-current="page"]::after {
    transform: scaleX(1) !important;
}
.navigation .nav-deroulant > summary {
    position: relative;
}
.navigation .nav-deroulant > summary::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: #C9B394;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .3s ease;
}
.navigation .nav-deroulant > summary:hover::after,
.navigation .nav-deroulant > summary:focus-visible::after,
.navigation .nav-deroulant > summary[aria-current="page"]::after {
    transform: scaleX(1);
}
.navigation .bouton-nav[aria-current="page"] {
    /* Page active : pas de cadre vert autour du bouton d'inscription. */
    outline: none;
    outline-offset: 0;
    box-shadow: none;
}


/* ============================================================
   SIGNATURE FANSON — S OFFICIEL EN FILIGRANE DANS LE FOOTER
   Le SVG reste dans images/ ; aucun changement aux autres héros.
   ============================================================ */
.footer-premium.footer-signature {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}
.footer-premium.footer-signature::before {
    content: "";
    position: absolute;
    z-index: 0;
    pointer-events: none;
    right: 12%;
    top: 48%;
    transform: translateY(-50%);
    width: clamp(290px, 35vw, 600px);
    height: 130%;
    background-image: url("images/TrailDeFanson_logo_S_contour.svg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    opacity: .13;
}
.footer-premium.footer-signature > * {
    position: relative;
    z-index: 1;
}
@media (max-width: 900px) {
  .footer-premium.footer-signature::before {
    right: -8%;
    width: 63vw;
    height: 95%;
    opacity: .095;
  }
}
@media (max-width: 550px) {
  .footer-premium.footer-signature::before {
    right: -26%;
    top: 36%;
    width: 85vw;
    opacity: .075;
  }
}

/* ===========================================================
   PAGE PARTENAIRES — REVUE DE PRESSE / ÉDITION 2026
   Section autonome, sans images de presse réutilisées.
   =========================================================== */
.partenaires-presse-2027 {
    background: #E8DCCB;
    color: #203629;
    padding: 76px 8% 80px;
}
.partenaires-presse-entete {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(220px, .75fr);
    gap: 35px;
    align-items: end;
    margin-bottom: 30px;
}
.partenaires-presse-entete .sur-titre {
    margin: 0 0 12px;
    color: #866E51;
}
.partenaires-presse-entete h2 {
    margin: 0;
    font: italic 700 clamp(38px, 4.7vw, 62px)/.98 'Barlow Condensed', sans-serif;
}
.partenaires-presse-entete > p {
    max-width: 400px;
    margin: 0 0 3px;
    line-height: 1.65;
    font-size: 16px;
}
.partenaires-presse-carte {
    display: grid;
    grid-template-columns: minmax(220px, .84fr) minmax(0, 1.16fr);
    background: #fff;
    border-bottom: 3px solid #C9B394;
    min-height: 265px;
}
.partenaires-presse-media {
    background: #203629;
    color: #F5F1E8;
    padding: 32px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    position: relative;
    overflow: hidden;
}
.partenaires-presse-source {
    font: 700 clamp(34px, 4.5vw, 61px)/1 'Barlow Condensed',sans-serif;
    letter-spacing: .4px;
}
.partenaires-presse-annee {
    margin-top: auto;
    color: #C9B394;
    font: 700 64px/.9 'Barlow Condensed',sans-serif;
    opacity: .85;
}
.partenaires-presse-filet {
    width: 60px;
    height: 2px;
    margin: 15px 0;
    background: #C9B394;
}
.partenaires-presse-mention {
    color: #F5F1E8;
    font: 600 13px/1.35 'Barlow Condensed',sans-serif;
    letter-spacing: 1.5px;
}
.partenaires-presse-contenu {
    padding: clamp(25px, 3.5vw, 48px);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}
.partenaires-presse-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    font: 700 13px 'Barlow Condensed',sans-serif;
    letter-spacing: 1.2px;
    color: #866E51;
}
.partenaires-presse-meta span { color: #203629; }
.partenaires-presse-contenu h3 {
    font: 700 clamp(26px, 2.65vw, 38px)/1.08 'Barlow Condensed',sans-serif;
    margin: 17px 0 12px;
    max-width: 640px;
}
.partenaires-presse-contenu p {
    line-height: 1.6;
    font-size: 15px;
    margin: 0 0 24px;
    max-width: 560px;
}
.partenaires-presse-bouton {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 13px 19px;
    background: #203629;
    color: #F5F1E8 !important;
    border: 1px solid #203629;
    font: 700 16px 'Barlow Condensed', sans-serif;
    text-decoration: none !important;
    transition: background .22s ease, color .22s ease, transform .22s ease;
}
.partenaires-presse-bouton:hover,
.partenaires-presse-bouton:focus-visible {
    background: #F5F1E8;
    color: #203629 !important;
    transform: translateY(-2px);
}
.partenaires-presse-bouton:focus-visible {
    outline: 2px solid #203629;
    outline-offset: 3px;
}
@media (max-width: 820px) {
    .partenaires-presse-entete,
    .partenaires-presse-carte { grid-template-columns: 1fr; }
    .partenaires-presse-2027 { padding: 58px 6%; }
    .partenaires-presse-media { min-height: 170px; }
    .partenaires-presse-annee { position: absolute; right: 30px; bottom: 20px; font-size: 76px; opacity: .25; }
    .partenaires-presse-filet { margin-top: 30px; }
}
@media (prefers-reduced-motion: reduce) {
    .partenaires-presse-bouton { transition: none; }
}

/* ========================================================
   PARTENAIRES 2027 — CARTES CLIQUABLES / CHARTE COHÉRENTE
   ======================================================== */
.section-partenaires .partenaire-lien,
.partenaires-logos-2027 .partenaire-page-carte.partenaire-lien {
    background: #FFFFFF;
    border: 1px solid #DED4C4;
    border-bottom: 3px solid #C9B394;
    border-radius: 0;
    text-decoration: none;
    color: #203629;
    box-shadow: 0 3px 14px rgba(32,54,41,.04);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
    cursor: pointer;
}
.section-partenaires .partenaire-lien:hover,
.partenaires-logos-2027 .partenaire-page-carte.partenaire-lien:hover {
    transform: translateY(-4px);
    border-color: #C9B394;
    box-shadow: 0 12px 24px rgba(32,54,41,.10);
}
.section-partenaires .partenaire-lien:focus-visible,
.partenaires-logos-2027 .partenaire-page-carte.partenaire-lien:focus-visible {
    outline: 3px solid #947B5C;
    outline-offset: 3px;
}
.partenaires-logos-2027 .partenaire-page-carte.partenaire-lien {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 15px;
    padding: 30px 20px;
    min-height: 220px;
    box-sizing: border-box;
}
.partenaires-logos-2027 .principaux .partenaire-page-carte.partenaire-lien {
    min-height: 260px;
}
.partenaires-logos-2027 .partenaire-page-carte.partenaire-lien img {
    display: block;
    width: auto;
    height: auto;
    max-width: min(100%, 290px);
    max-height: 112px;
    object-fit: contain;
    flex: 0 0 auto;
}
.partenaires-logos-2027 .principaux .partenaire-page-carte.partenaire-lien img {max-height: 145px;}
.partenaires-logos-2027 .partenaire-carte-nom {
    font: 700 19px/1.15 'Barlow Condensed',sans-serif;
    color: #203629;
    letter-spacing: .2px;
    text-align: center;
}
.partenaires-logos-2027 .partenaire-carte-visiter {
    color: #876C4E;
    font: 600 12px 'Barlow Condensed', sans-serif;
    letter-spacing: 1.2px;
    text-align: center;
}
.partenaires-presse-media .partenaires-presse-logo {
    display: block;
    background: #fff;
    padding: 13px 16px;
    max-width: 100%;
    width: 280px;
    line-height: 0;
}
.partenaires-presse-media .partenaires-presse-logo img {
    width: 100%; height: auto; object-fit: contain;
}
.partenaires-presse-media .partenaires-presse-logo:focus-visible {
    outline: 3px solid #C9B394; outline-offset: 4px;
}
.partenaires-presse-media .partenaires-presse-credit {
    color: #D6C5AC;
    font-size: 10px;
    line-height: 1.5;
    margin-top: 14px;
}
@media(max-width:650px) {
  .partenaires-logos-2027 .partenaire-page-carte.partenaire-lien,
  .partenaires-logos-2027 .principaux .partenaire-page-carte.partenaire-lien {
    padding: 26px 18px;
    min-height: 190px;
  }
}
@media(prefers-reduced-motion:reduce) {
  .section-partenaires .partenaire-lien,
  .partenaires-logos-2027 .partenaire-page-carte.partenaire-lien {transition:none;}
}

/* ===========================================================
   SUDINFO SPORTS 2026 — logo officiel fourni, sans cartouche.
   Visuel posé directement dans le panneau vert forêt.
   =========================================================== */
.partenaires-presse-media > img.partenaires-presse-logo {
    display: block;
    width: min(100%, 425px);
    height: auto;
    max-width: 100%;
    object-fit: contain;
    background: transparent;
    border: 0;
    padding: 0;
    margin: 0 0 30px;
    box-shadow: none;
    filter: none;
}
.partenaires-presse-media {
    background: #203629;
    justify-content: flex-start;
}
.partenaires-presse-media .partenaires-presse-annee {
    margin-top: auto;
}
@media(max-width:820px){
  .partenaires-presse-media > img.partenaires-presse-logo {
      width: min(100%, 420px);
      margin-bottom: 23px;
  }
}

/* ============================================================
   PAGE PARTENAIRES — FINITION ÉDITORIALE 2027
   Navigation par ancres, ascension, rythme compact, alternance.
   ============================================================ */
html { scroll-padding-top: 110px; }
#nos-partenaires, #dans-la-presse, #devenir-partenaire { scroll-margin-top: 116px; }
.partenaires-hero-2027 {
    min-height: 0;
    padding: 56px 8% 25px;
    isolation: isolate;
    background: #203629;
}
/* Supprime les deux cercles anciens. */
.partenaires-hero-2027::before,
.partenaires-hero-2027::after { content: none !important; display:none !important; }
.partenaires-hero-2027 .partenaires-ascension {
    position:absolute;
    width:clamp(190px, 24vw, 360px);
    height:auto;
    top: 8%;
    right: 6%;
    color:#C9B394;
    opacity:.24;
    pointer-events:none;
    z-index:0;
    transform: rotate(2deg);
}
.partenaires-hero-2027 .partenaires-hero-contenu,
.partenaires-hero-2027 .partenaires-hero-bas { position:relative; z-index:1; }
.partenaires-hero-2027 h1 { font-size:clamp(51px,6.6vw,89px); margin:16px 0 15px; line-height:.91; }
.partenaires-hero-2027 .partenaires-hero-contenu > p:not(.sur-titre) {
    max-width:610px; font-size:16px; line-height:1.5; margin:0;
}
.partenaires-hero-2027 .partenaires-hero-actions {
    display:flex;
    justify-content:flex-start;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    width:fit-content;
    max-width:100%;
    min-height:0;
    margin:24px 0 0;
    padding:0;
    background:transparent;
    box-shadow:none;
}
.partenaires-hero-actions a {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:43px;
    padding:12px 19px;
    font:700 16px/1.1 'Barlow Condensed',sans-serif;
    letter-spacing:.35px;
    text-align:center;
    border:1px solid #C9B394;
    text-decoration:none !important;
    transition:background .22s ease,color .22s ease,transform .22s ease;
}
.partenaires-hero-actions .partenaires-action-principale { background:#C9B394; color:#203629; }
.partenaires-hero-actions .partenaires-action-secondaire { background:transparent; color:#F5F1E8; }
.partenaires-hero-actions .partenaires-action-principale:hover,
.partenaires-hero-actions .partenaires-action-principale:focus-visible {
    background:#F5F1E8; color:#203629; transform:translateY(-2px);
}
.partenaires-hero-actions .partenaires-action-secondaire:hover,
.partenaires-hero-actions .partenaires-action-secondaire:focus-visible {
    background:#C9B394; color:#203629; transform:translateY(-2px);
}
.partenaires-hero-actions a:focus-visible { outline:2px solid #F5F1E8; outline-offset:3px; }
.partenaires-hero-2027 .partenaires-hero-bas { margin-top:29px; padding-top:13px; }
/* Rythme plus compact, alternance contrastée des sections. */
.partenaires-intro-2027 { background:#F5F1E8; padding:49px 8%; }
.partenaires-intro-2027 h2 { margin:10px 0 16px; }
.partenaires-intro-2027 > div:last-child > p:last-child { margin-bottom:0; }
.partenaires-logos-2027 { background:#E8DCCB; padding:57px 8% 60px; }
.partenaires-logos-2027 .partenaires-titre-ligne { margin-bottom:23px; }
.partenaires-logos-2027 .partenaires-groupe-secondaire { margin-top:29px; }
.partenaires-logos-2027 .partenaires-page-grille { gap:13px; }
.partenaires-logos-2027 .partenaire-page-carte.partenaire-lien { min-height:155px; padding:17px 18px; gap:9px; }
.partenaires-logos-2027 .principaux .partenaire-page-carte.partenaire-lien { min-height:177px; padding:22px; }
.partenaires-logos-2027 .partenaire-page-carte.partenaire-lien img { max-height:78px; }
.partenaires-logos-2027 .principaux .partenaire-page-carte.partenaire-lien img { max-height:100px; }
.partenaires-logos-2027 .partenaire-carte-nom { font-size:17px; }
.partenaires-soutien-2027 { background:#F5F1E8; padding:53px 8%; }
.partenaires-soutien-2027 .partenaires-page-avantages { margin-top:21px; gap:13px; }
.partenaires-soutien-2027 .partenaires-page-avantages article { min-height:0; padding:21px 22px; }
.partenaires-soutien-2027 .partenaires-page-avantages h3 { font-size:25px; margin:10px 0; }
.partenaires-soutien-2027 .partenaires-page-avantages p { margin:0; font-size:15px; }
.partenaires-presse-2027 { background:#E8DCCB; padding:52px 8% 57px; }
.partenaires-presse-entete { margin-bottom:22px; }
.partenaires-presse-carte { min-height:235px; }
.partenaires-presse-media { padding:26px; }
.partenaires-presse-contenu { padding:27px 34px; }
.partenaires-presse-media > img.partenaires-presse-logo { margin-bottom:14px; }
.partenaires-presse-bouton { padding:12px 18px; }
/* Ne pas juxtaposer deux grands rectangles vert forêt : appel à l'action crème, puis footer vert. */
.partenaires-contact-2027,
.partenaires-page-contact.partenaires-contact-2027 {
    background:#F5F1E8 !important;
    color:#203629 !important;
    padding:55px 8% 60px;
    gap:5%;
}
.partenaires-contact-2027 .sur-titre,
.partenaires-contact-2027 .partenaires-email-visible,
.partenaires-contact-2027 .partenaires-contact-action > span { color:#80694D !important; }
.partenaires-contact-2027 .partenaires-email-visible { text-decoration-color:#C9B394; }
.partenaires-contact-2027 .partenaires-contact-action { background:#E8DCCB; border:1px solid #C9B394; }
.partenaires-contact-2027 .partenaires-contact-action small { color:#685743; opacity:1; }
.partenaires-contact-2027 .partenaires-contact-action .bouton { background:#203629; color:#F5F1E8; border:1px solid #203629; }
.partenaires-contact-2027 .partenaires-contact-action .bouton:hover { background:#F5F1E8; color:#203629; }
/* Au survol du titre de presse, pas d'icône superflue dans le CTA. */
@media(max-width:900px) {
  .partenaires-hero-2027 .partenaires-ascension { opacity:.12; right:-5%; top:14%; }
  .partenaires-contact-2027 { grid-template-columns:1fr; gap:23px; }
}
@media(max-width:650px) {
  .partenaires-hero-2027 { padding:44px 6% 24px; }
  .partenaires-hero-2027 h1 { font-size:clamp(45px,11vw,66px); }
  .partenaires-hero-2027 .partenaires-hero-actions { display:grid; grid-template-columns:1fr; width:100%; gap:9px; }
  .partenaires-hero-actions a { justify-content:center; width:100%; }
  .partenaires-hero-2027 .partenaires-ascension { right:-25%; opacity:.09; }
  .partenaires-intro-2027,.partenaires-logos-2027,.partenaires-soutien-2027,
  .partenaires-presse-2027,.partenaires-contact-2027,
  .partenaires-page-contact.partenaires-contact-2027 { padding:43px 6%; }
  .partenaires-presse-media { min-height:145px; }
  .partenaires-presse-contenu { padding:24px; }
}
@media(prefers-reduced-motion:reduce){.partenaires-hero-actions a{transition:none}}


/* ======================================================
   PARTENAIRES 2027 — FLECHE FANSON + MENU HERO DEROULANT
====================================================== */
.partnenaires-placeholder { display:none; }
.partenaires-hero-2027 { position:relative; overflow:hidden; min-height:470px; padding:48px 8% 26px; background:#203629; }
.partenaires-hero-2027::before,
.partenaires-hero-2027::after,
.partenaires-hero-2027 .partenaires-ascension { content:none !important; display:none !important; }
.partenaires-fleche-fanson {
  position:absolute;
  right:-2%;
  top:4%;
  width:min(50vw,620px);
  height:auto;
  color:rgba(201,179,148,.18);
  pointer-events:none;
  z-index:0;
}
.partenaires-hero-contenu,
.partenaires-hero-bas { position:relative; z-index:2; }
.partenaires-hero-2027 h1 { font-size:clamp(50px,6.7vw,92px); line-height:.92; margin:16px 0 14px; }
.partenaires-hero-2027 .partenaires-hero-contenu > p:not(.sur-titre) { max-width:620px; font-size:clamp(16px,1.5vw,19px); }
.partenaires-hero-actions { display:flex; flex-wrap:wrap; align-items:flex-start; gap:14px; margin-top:16px; }
.partenaires-action-principale {
  display:inline-flex; align-items:center; justify-content:center;
  min-height:52px; padding:14px 22px; border-radius:0;
  background:#C9B394; color:#203629; text-decoration:none;
  border:1px solid #C9B394;
  font:600 18px 'Barlow Condensed',sans-serif; letter-spacing:.4px;
  transition:background .25s ease, color .25s ease, transform .25s ease;
}
.partenaires-action-principale:hover,
.partenaires-action-principale:focus-visible { background:#F5F1E8; color:#203629; transform:translateY(-2px); }
.partenaires-hero-menu { position:relative; }
.partenaires-hero-menu summary {
  list-style:none; display:inline-flex; align-items:center; justify-content:space-between; gap:10px;
  min-height:52px; min-width:270px; padding:14px 20px;
  border:1px solid rgba(245,241,232,.38); background:transparent; color:#F5F1E8;
  font:600 18px 'Barlow Condensed',sans-serif; letter-spacing:.4px; cursor:pointer;
  transition:background .25s ease, border-color .25s ease, transform .25s ease;
}
.partenaires-hero-menu summary::-webkit-details-marker { display:none; }
.partenaires-hero-menu summary:hover,
.partenaires-hero-menu[open] summary,
.partenaires-hero-menu summary:focus-visible {
  background:rgba(245,241,232,.08); border-color:#C9B394; transform:translateY(-2px); outline:none;
}
.partenaires-hero-menu .nav-chevron {
  width:9px; height:9px; border-right:2px solid currentColor; border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-1px); transition:transform .25s ease;
}
.partenaires-hero-menu[open] .nav-chevron { transform:rotate(225deg) translateY(-1px); }
.partenaires-hero-sousmenu {
  position:absolute; left:0; top:calc(100% + 10px); min-width:300px; z-index:30;
  display:grid; gap:4px; padding:10px; background:#F5F1E8; border:1px solid rgba(201,179,148,.9);
  box-shadow:0 18px 38px rgba(16,24,20,.18);
}
.partenaires-hero-sousmenu a {
  display:flex; align-items:center; padding:12px 14px; color:#203629; text-decoration:none;
  font:600 16px 'Barlow Condensed',sans-serif; letter-spacing:.35px; border:1px solid transparent;
  transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.partenaires-hero-sousmenu a:hover,
.partenaires-hero-sousmenu a:focus-visible {
  background:#E8DCCB; border-color:#C9B394; transform:translateX(3px); outline:none;
}
.partenaires-hero-bas { margin-top:30px; padding-top:14px; border-top:1px solid rgba(245,241,232,.24); }
.partenaires-contact-2027 .partenaires-contact-action small { display:none !important; }
.partenaires-contact-2027 .partenaires-contact-action { gap:18px; }

@media (max-width: 860px) {
  .partenaires-fleche-fanson { width:min(64vw,420px); right:-15%; top:10%; opacity:.9; }
  .partenaires-hero-2027 { padding:42px 6% 24px; min-height:420px; }
  .partenaires-hero-actions { flex-direction:column; width:100%; }
  .partenaires-action-principale,
  .partenaires-hero-menu,
  .partenaires-hero-menu summary { width:100%; }
  .partenaires-hero-menu summary { min-width:0; }
  .partenaires-hero-sousmenu { position:static; min-width:0; margin-top:8px; width:100%; }
}

@media (max-width: 560px) {
  .partenaires-fleche-fanson { width:86vw; right:-28%; top:12%; color:rgba(201,179,148,.14); }
  .partenaires-hero-2027 h1 { font-size:clamp(42px,11vw,64px); }
  .partenaires-hero-menu summary,
  .partenaires-action-principale { min-height:48px; font-size:17px; }
}


/* Navigation Partenaires : sous-categories accessibles comme Parcours. */
.navigation .nav-partenaires > summary[aria-current="page"] {
    color:#80694D;
}
/* La signature S officielle remplace la flèche de croissance schématique. */
.partenaires-hero-2027 .partenaires-fleche-fanson,
.partenaires-hero-2027 .partenaires-ascension { display:none !important; }
.partenaires-hero-2027 .partenaires-signature-officielle {
    position:absolute;
    display:block;
    z-index:0;
    top:50%;
    right:3%;
    transform:translateY(-50%);
    width:clamp(260px,38vw,610px);
    height:115%;
    background:url("images/TrailDeFanson_logo_S_contour.svg") no-repeat center / contain;
    opacity:.17;
    pointer-events:none;
}
.partenaires-hero-2027 .partenaires-hero-contenu,
.partenaires-hero-2027 .partenaires-hero-bas { position:relative;z-index:1; }
@media(max-width:800px){
  .partenaires-hero-2027 .partenaires-signature-officielle {
    right:-18%; width:70vw; height:108%; opacity:.1;
  }
}


/* FAQ — navigation épurée, sans flèches diagonales */
.faq-sommaire a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 12px 20px;
    border: 1px solid #C9B394;
    background: transparent;
    color: #203629;
    text-decoration: none;
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700;
    letter-spacing: .45px;
    transition: background-color .22s ease, border-color .22s ease;
}
.faq-sommaire a:hover,
.faq-sommaire a:focus-visible {
    background: #E8DCCB;
    border-color: #B59B78;
}
.faq-sommaire a:focus-visible { outline: 2px solid #203629; outline-offset: 3px; }
@media (max-width: 480px) { .faq-sommaire a { padding: 10px 14px; } }


/* PARTENAIRES — boutons pleins, sans flèches */
.partenaires-logos-2027 .partenaire-page-carte.partenaire-lien .partenaire-carte-visiter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    margin-top: 4px;
    padding: 10px 18px;
    border: 1px solid #203629;
    background: #203629;
    color: #F5F1E8;
    font: 700 15px/1.1 'Barlow Condensed', sans-serif;
    letter-spacing: .4px;
    text-align: center;
    text-decoration: none;
    transition: background-color .22s ease, color .22s ease;
}
.partenaires-logos-2027 .partenaire-page-carte.partenaire-lien:hover .partenaire-carte-visiter,
.partenaires-logos-2027 .partenaire-page-carte.partenaire-lien:focus-visible .partenaire-carte-visiter {
    background: #F5F1E8;
    color: #203629;
}
@media (prefers-reduced-motion: reduce) {
    .partenaires-logos-2027 .partenaire-page-carte.partenaire-lien .partenaire-carte-visiter {transition:none;}
}


/* BOULANGERIE DE FANSON — LOGO OFFICIEL VECTORIEL EN FILIGRANE */
.entete-boulangerie { position: relative; overflow: hidden; isolation: isolate; }
.entete-boulangerie .boulangerie-signature-logo {
    display: block; position: absolute; z-index: 0;
    width: clamp(235px, 27vw, 410px); height: auto;
    right: 7%; top: 50%; transform: translateY(-50%);
    opacity: .36; pointer-events: none; user-select: none;
}
.entete-boulangerie .entete-boulangerie-contenu { position: relative; z-index: 1; max-width: 62%; }
.entete-boulangerie .tf-hero-meta { position: relative; z-index: 1; }
@media (max-width: 850px) {
    .entete-boulangerie .boulangerie-signature-logo { width: 42vw; right: -9%; opacity: .18; }
    .entete-boulangerie .entete-boulangerie-contenu { max-width: 85%; }
}
@media (max-width: 540px) {
    .entete-boulangerie .boulangerie-signature-logo { width: 72vw; right: -34%; opacity: .13; }
    .entete-boulangerie .entete-boulangerie-contenu { max-width: 100%; }
}


/* ============================================================
   BOULANGERIE — entête ajusté + grand logo filigrane premium
   ============================================================ */
.entete-boulangerie {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    min-height: clamp(360px, 46vw, 500px);
    padding: clamp(56px, 7vw, 86px) 8% clamp(54px, 6.5vw, 76px);
}

/* Remet le petit repère au bon endroit, comme sur les autres pages */
.entete-boulangerie .tf-hero-meta {
    position: absolute !important;
    right: 8%;
    left: auto;
    bottom: 24px;
    margin: 0;
    z-index: 2;
    color: #C9B394;
    border-top: 1px solid rgba(201,179,148,.45);
    padding-top: 8px;
    min-width: 128px;
    text-align: left;
    opacity: .95;
}

/* Grand logo boulangerie en filigrane, dans l'esprit du grand S */
.entete-boulangerie .boulangerie-signature-logo {
    display: block;
    position: absolute;
    z-index: 0;
    width: clamp(420px, 44vw, 720px);
    height: auto;
    right: -3%;
    top: 52%;
    transform: translateY(-50%);
    opacity: .16;
    pointer-events: none;
    user-select: none;
}

/* Un voile très léger pour intégrer visuellement le logo au fond vert */
.entete-boulangerie::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
      radial-gradient(circle at 78% 50%, rgba(245,241,232,.03), transparent 34%),
      linear-gradient(90deg, rgba(23,58,42,0) 58%, rgba(23,58,42,.08) 100%);
    z-index: 1;
}

.entete-boulangerie .entete-boulangerie-contenu {
    position: relative;
    z-index: 2;
    max-width: min(57%, 720px);
}

.entete-boulangerie .sur-titre {
    margin-bottom: 18px;
}

.entete-boulangerie h1 {
    margin-bottom: 24px;
}

@media (max-width: 1100px) {
    .entete-boulangerie .boulangerie-signature-logo {
        width: clamp(360px, 48vw, 560px);
        right: -8%;
        opacity: .14;
    }
    .entete-boulangerie .entete-boulangerie-contenu {
        max-width: 62%;
    }
}

@media (max-width: 780px) {
    .entete-boulangerie {
        padding: 48px 6% 72px;
        min-height: 340px;
    }
    .entete-boulangerie .boulangerie-signature-logo {
        width: 76vw;
        right: -24%;
        top: 50%;
        opacity: .11;
    }
    .entete-boulangerie .entete-boulangerie-contenu {
        max-width: 100%;
    }
    .entete-boulangerie .tf-hero-meta {
        right: 6%;
        bottom: 18px;
        min-width: 112px;
        font-size: 11px;
        letter-spacing: 1.6px;
    }
}


/* Boulangerie — boutons de contact : style Trail de Fanson */
.boulangerie-contact .bouton-contact-boulangerie {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: fit-content;
    min-height: 46px;
    padding: 12px 20px;
    margin-top: 15px;
    border: 1px solid #203629;
    border-radius: 0;
    background: #203629;
    color: #F5F1E8;
    font: 700 18px/1.15 'Barlow Condensed', sans-serif;
    letter-spacing: .25px;
    text-decoration: none;
    box-shadow: none;
    transition: background-color .22s ease, color .22s ease, transform .22s ease;
}
.boulangerie-contact .bouton-contact-boulangerie:hover,
.boulangerie-contact .bouton-contact-boulangerie:focus-visible {
    background: #F5F1E8;
    color: #203629;
    border-color: #203629;
    transform: translateY(-2px);
    text-decoration: none;
}
.boulangerie-contact .bouton-contact-boulangerie:focus-visible {
    outline: 2px solid #C9B394;
    outline-offset: 3px;
}
.boulangerie-contact .boulangerie-contact-libelle {
    margin-top: 0;
    margin-bottom: 0;
}
@media (prefers-reduced-motion: reduce) {
    .boulangerie-contact .bouton-contact-boulangerie {
        transition: none;
    }
}
.entete-boulangerie .tf-hero-meta {
    display: none !important;
}

/* =========================================================
   PIED DE PAGE COMMUN — LIGNE INTERROMPUE DEVANT LE S
   La ligne est dessinée en deux segments, S intact.
   Aucun cache opaque ni modification du fichier SVG.
   ========================================================= */
.footer-premium.footer-signature .footer-bas {
    border-top: 0 !important;
    position: relative;
    background-image: linear-gradient(
        to right,
        rgba(201,179,148,.45) 0%,
        rgba(201,179,148,.45) 67%,
        transparent 67%,
        transparent 91%,
        rgba(201,179,148,.45) 91%,
        rgba(201,179,148,.45) 100%
    );
    background-repeat: no-repeat;
    background-size: 100% 1px;
    background-position: left top;
}

/* Ne jamais poser de cache sur le logo. */
.footer-premium.footer-signature .footer-bas::before,
.footer-premium.footer-signature .footer-bas::after {
    content: none !important;
}

@media (max-width: 900px) {
    .footer-premium.footer-signature .footer-bas {
        background-image: linear-gradient(
            to right,
            rgba(201,179,148,.45) 0%,
            rgba(201,179,148,.45) 59%,
            transparent 59%,
            transparent 100%
        );
    }
}

@media (max-width: 550px) {
    .footer-premium.footer-signature .footer-bas {
        background-image: linear-gradient(
            to right,
            rgba(201,179,148,.45) 0%,
            rgba(201,179,148,.45) 55%,
            transparent 55%,
            transparent 100%
        );
    }
}


/* =============================================================
   INFORMATIONS PRATIQUES — ligne de repères sans traverser le S
   Le trait s'arrête avant le filigrane, qui reste entier.
   ============================================================= */
.infos27-hero .infos27-hero-reperes {
    border-top: 0 !important;
    position: relative;
    background-image: linear-gradient(
        to right,
        rgba(201,179,148,.42) 0%,
        rgba(201,179,148,.42) 78%,
        transparent 78%,
        transparent 100%
    );
    background-position: left top;
    background-size: 100% 1px;
    background-repeat: no-repeat;
}
@media (max-width: 800px) {
    .infos27-hero .infos27-hero-reperes {
        background-image: linear-gradient(
            to right,
            rgba(201,179,148,.42) 0%,
            rgba(201,179,148,.42) 62%,
            transparent 62%,
            transparent 100%
        );
    }
}


/* PARCOURS — boutons premium sans flèches, en-tête vert forêt */
.entete-parcours .parcours-ancre {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.entete-parcours .parcours-ancre a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 43px;
    padding: 11px 19px;
    background: #C9B394;
    color: #203629;
    border: 1px solid #C9B394;
    text-decoration: none;
    font: 700 16px 'Barlow Condensed', sans-serif;
    letter-spacing: .3px;
    transition: background-color .22s ease, color .22s ease, transform .22s ease;
}
.entete-parcours .parcours-ancre a:hover,
.entete-parcours .parcours-ancre a:focus-visible {
    background: #F5F1E8;
    border-color: #F5F1E8;
    color: #203629;
    transform: translateY(-2px);
}
.entete-parcours .parcours-ancre a:focus-visible {
    outline: 2px solid #C9B394;
    outline-offset: 3px;
}
@media (max-width: 600px) {
    .entete-parcours .parcours-ancre a { min-height: 42px; padding: 10px 13px; font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) {
    .entete-parcours .parcours-ancre a { transition: none; }
}


/* Signature discrète du créateur — pied de page commun */
.footer-premium .footer-bas .footer-credit {
    flex-basis: 100%;
    display: block;
    margin-top: 0;
    text-align: right;
    color: rgba(201, 179, 148, .68);
    font-family: 'Barlow', Arial, sans-serif;
    font-size: 11px;
    font-weight: 400;
    letter-spacing: .1px;
    text-transform: none;
}
.footer-premium .footer-bas .footer-credit a {
    color: inherit;
    text-decoration: none;
    font-weight: 500;
    transition: color .2s ease;
}
.footer-premium .footer-bas .footer-credit a:hover,
.footer-premium .footer-bas .footer-credit a:focus-visible {
    color: #F5F1E8;
    text-decoration: underline;
    text-underline-offset: 3px;
}
@media (max-width: 550px) {
    .footer-premium .footer-bas .footer-credit {
        text-align: left;
        font-size: 11px;
    }
}

/* Signature du créateur — discrète et cliquable */
.footer-credit a {
    color: inherit;
    text-decoration: none !important;
    border: none !important;
    cursor: pointer;
    transition: color 0.25s ease;
}

.footer-credit a:hover,
.footer-credit a:focus-visible {
    color: #F5F1E8;
    text-decoration: none !important;
}

.footer-credit a:focus-visible {
    outline: 1px solid #C9B394;
    outline-offset: 4px;
}

/* HORAIRES DES DÉPARTS — CARTES ACCUEIL ET FICHES PARCOURS */
.section-parcours .course-infos .course-depart {
    background:#203629;
    color:#F5F1E8;
    font-weight:700;
    letter-spacing:.45px;
    white-space:nowrap;
}
.parcours-komoot-chiffres .parcours-depart strong {
    color:#203629;
}


/* Page Inscriptions : garder les visages visibles dans les cartes.
   Aucun changement du cadrage sur les autres pages. */
.inscription-fiche-visuel.photo-kids {
    background-position: center 30%;
}
.inscription-fiche-visuel.photo-six {
    background-position: center top;
}
.inscription-fiche-visuel.photo-long {
    background-position: center top;
}


/* Inscription : supprimer le contour après le clic sur S'INSCRIRE.
   Indication de focus discrète, sans contour, pour la navigation clavier. */
.navigation a.bouton-nav:focus,
.navigation a.bouton-nav:focus-visible,
.navigation a.bouton-nav:active {
    outline: none !important;
    box-shadow: none !important;
}
.navigation a.bouton-nav:focus-visible {
    filter: brightness(.92);
}

/* Niveaux de difficulté dans les trois cartes d'inscription. */
.inscription-fiche-corps > p.inscription-difficulte {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
    min-height: 0;
    margin: -9px 0 17px;
    color: #786B61;
    font-size: 13px;
    line-height: 1.35;
}
.inscription-badge-niveau {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 12px;
    min-height: 28px;
    border-radius: 0;
    font: 700 14px/1.2 'Barlow Condensed', sans-serif;
    letter-spacing: .8px;
}
.inscription-facile { background: #DCEBD7; color: #315236; }
.inscription-modere { background: #EAD8B7; color: #5E4A26; }
.inscription-difficile { background: #E7C9C4; color: #6A2F29; }


/* MARCHE DÉCOUVERTE — préinscription locale par e-mail */
.inscription-marche {
    margin: 24px 0 0;
    padding: 32px 36px;
    display: grid;
    grid-template-columns: minmax(0,1.7fr) minmax(265px,1fr);
    align-items: center;
    gap: 32px;
    background: #E8DCCB;
    border-left: 4px solid #C9B394;
}
.inscription-marche-surtitre,
.inscription-marche-statut {
    color: #80694D;
    font: 700 13px/1.3 'Barlow Condensed',sans-serif;
    letter-spacing: 1.5px;
}
.inscription-marche h2 {
    font: 700 clamp(34px,4vw,48px)/1 'Barlow Condensed',sans-serif;
    margin: 11px 0 12px;
    color: #203629;
}
.inscription-marche-entete > p {
    max-width: 650px;
    margin: 0 0 17px;
    font-size: 15px;
    line-height: 1.6;
}
.inscription-marche .inscription-marche-specs {
    margin-bottom: 15px;
}
.inscription-marche-entete > p.inscription-marche-dossard {
    margin-bottom: 0;
    font-size: 14px;
    color: #4F5549;
}
.inscription-marche-action {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}
.inscription-marche-bouton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 100%;
    min-height: 48px;
    padding: 14px 19px;
    background: #203629;
    color: #F5F1E8;
    border: 1px solid #203629;
    text-decoration: none;
    font: 700 17px/1.1 'Barlow Condensed',sans-serif;
    transition: background .2s,color .2s,transform .2s;
}
.inscription-marche-bouton:hover,
.inscription-marche-bouton:focus-visible {
    background: #F5F1E8;
    color: #203629;
    transform: translateY(-2px);
    text-decoration: none;
}
.inscription-marche-bouton:focus-visible {outline:2px solid #80694D;outline-offset:3px;}
.inscription-marche-action small {font-size:12px;color:#586050;line-height:1.5;}
@media(max-width:850px) {
  .inscription-marche {grid-template-columns:1fr;gap:24px;padding:26px;}
  .inscription-marche-action {max-width:440px;}
}
@media(max-width:620px) {.inscription-marche {padding:22px;}}
@media(prefers-reduced-motion:reduce) {.inscription-marche-bouton {transition:none;}}


/* Marche 2027 : tarifs sur place et accès depuis l'accueil */
.inscription-marche-tarifs{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;}
.inscription-marche-tarifs>div{display:flex;flex-direction:column;gap:2px;background:#F5F1E8;padding:13px 12px;min-width:0;}
.inscription-marche-tarifs strong{color:#203629;font:700 37px/1 'Barlow Condensed',sans-serif;}
.inscription-marche-tarifs strong small{font-size:20px;}
.inscription-marche-tarifs span{color:#6A5940;font:700 12px/1.25 'Barlow Condensed',sans-serif;letter-spacing:.5px;}
.accueil-actions-parcours{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:22px;}
.accueil-actions-parcours .bouton{margin-top:0;}
.accueil-actions-parcours .accueil-marche-lien{background:#203629;color:#F5F1E8;border:1px solid #203629;}
.accueil-actions-parcours .accueil-marche-lien:hover{background:#C9B394;color:#203629;}
@media(max-width:550px){.inscription-marche-tarifs{grid-template-columns:1fr 1fr;}.accueil-actions-parcours{align-items:stretch;}.accueil-actions-parcours .bouton{text-align:center;}}


/* MARCHE 2027 — quatrième épreuve, même présentation que les courses */
@media(min-width:1100px){
  .inscription-fiches{grid-template-columns:repeat(4,minmax(0,1fr));}
  .grille-parcours{grid-template-columns:repeat(4,minmax(0,1fr));}
  .grille-inscriptions{grid-template-columns:repeat(4,minmax(0,1fr));}
  .inscription-fiche-corps{padding:18px;}
  .inscription-fiche h3{font-size:clamp(26px,2.5vw,36px);}
}
@media(min-width:740px) and (max-width:1099px){
  .inscription-fiches,.grille-parcours,.grille-inscriptions{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:739px){
  .inscription-fiches,.grille-parcours,.grille-inscriptions{grid-template-columns:1fr;}
}
/* Marche : photo en plein cadre, comme les autres visuels,
   avec un cadrage adapté selon chaque bloc pour mieux voir les marcheurs. */
.course-image.marche,
.inscription-fiche-visuel.photo-marche,
.parcours-komoot-photo.photo-marche {
  background-image: url('images/marcheurs.jpg');
  background-repeat: no-repeat;
}

.course-image.marche {
  background-color: #203629;
  background-size: cover;
  background-position: center 58%;
}

.inscription-fiche-visuel.photo-marche {
  background-color: #203629;
  background-size: cover;
  background-position: center 42%;
}

.parcours-komoot-photo.photo-marche {
  background-color: #203629;
  background-size: cover;
  background-position: center 64%;
}
/* Badge du niveau de la marche dans la carte Parcours de l'accueil. */
.section-parcours .course .marche-niveau-accueil {
  min-height: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  margin: 10px 0 14px;
  color: #786B61;
  font-size: 12px;
  line-height: 1.4;
}
.section-parcours .course .marche-niveau-accueil .badge-niveau {
  display: inline-flex;
  margin: 0;
  color: #315236;
  background-color: #DCEBD7;
}
.inscription-marche-carte-action{
  display:block;text-align:center;padding:13px 11px;margin-top:12px;
  background:#203629;color:#F5F1E8;text-decoration:none;
  font:700 15px/1.2 'Barlow Condensed',sans-serif;letter-spacing:.3px;
}
.inscription-marche-carte-action:hover{background:#C9B394;color:#203629;}
.inscription-fiche-corps > p.inscription-marche-carte-note{
  min-height:0;font-size:12px;line-height:1.55;color:#685743;margin:12px 0 0;
}
.carte-inscription-bas a{color:inherit;text-decoration:underline;text-underline-offset:3px;}

/* Accueil — appel à la préinscription placé dans la carte Marche,
   plutôt qu'à côté du bouton « Voir tous les parcours ». */
.inscriptions-premium .carte-inscription-bas a.accueil-marche-preinscription {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 11px 13px;
    background: #203629;
    color: #F5F1E8;
    border: 1px solid #203629;
    text-decoration: none;
    font: 700 15px/1.15 'Barlow Condensed', sans-serif;
    letter-spacing: .35px;
    transition: background .2s ease, color .2s ease;
}
.inscriptions-premium .carte-inscription-bas a.accueil-marche-preinscription:hover {
    background: #C9B394;
    color: #203629;
}
.inscriptions-premium .carte-inscription-bas a.accueil-marche-preinscription:focus-visible {
    outline: 2px solid #C9B394;
    outline-offset: 3px;
}

/* 2027 : badge facile au même niveau que les données des cartes d'accueil. */
.section-parcours .course-infos .marche-badge-facile {
    display: inline-flex;
    align-items: center;
    background: #DCEBD7;
    color: #315236;
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700;
    letter-spacing: .65px;
}

/* Infos pratiques : quatrième départ en grand bandeau sur 3 colonnes. */
.infos27-horaires .infos27-horaire-marche {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(120px, 0.42fr) minmax(0, 1.55fr) auto;
    gap: 28px;
    align-items: center;
    background: #203629;
    color: #F5F1E8;
    padding: 27px 32px;
    border-top: 4px solid #C9B394;
}
.infos27-marche-depart {display:flex; flex-direction:column; gap:7px;}
.infos27-marche-depart strong {
    font: 700 clamp(44px, 4.5vw, 64px)/.95 'Barlow Condensed', sans-serif;
    color: #F5F1E8;
    white-space: nowrap;
}
.infos27-marche-depart span, .infos27-marche-etiquette {
    font: 700 12px/1.4 'Barlow Condensed', sans-serif;
    color: #C9B394;
    letter-spacing: 1.3px;
}
.infos27-marche-details h3 {
    font: 700 clamp(25px, 2.7vw, 37px)/1 'Barlow Condensed', sans-serif;
    color: #F5F1E8;
    margin: 7px 0 11px;
}
.infos27-horaires .infos27-horaire-marche p {
    color: #E4E3D9;
    line-height: 1.5;
    font-size: 14px;
    max-width: 610px;
}
.infos27-marche-cta {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
    padding: 17px 22px;
    border: 1px solid #C9B394;
    background: #C9B394;
    color: #203629;
    text-decoration: none;
    text-align: center;
    font: 700 17px/1.2 'Barlow Condensed', sans-serif;
    letter-spacing: .5px;
    white-space: nowrap;
    transition: background .2s ease, color .2s ease, transform .2s ease;
}
.infos27-marche-cta:hover {background: #F5F1E8; color: #203629; transform: translateY(-2px);}
.infos27-marche-cta:focus-visible {outline: 3px solid #F5F1E8; outline-offset: 4px;}
.infos27-marche-cta span {font-size:21px; color:inherit;letter-spacing:0;}
@media (max-width: 1050px) {
    .infos27-horaires .infos27-horaire-marche {
        grid-template-columns: auto minmax(0,1fr);
        gap: 16px 26px;
    }
    .infos27-marche-cta {grid-column: 1 / -1; justify-self: start;}
}
@media (max-width: 600px) {
    .infos27-horaires .infos27-horaire-marche {
        grid-template-columns: 1fr;
        padding: 24px 20px;
        gap: 16px;
    }
    .infos27-marche-cta {grid-column: 1; width: 100%; white-space: normal;}
}


/* Infos pratiques : quatre fiches de ravitaillements, marche incluse. */
@media (min-width: 1100px) {
  .infos27-ravitos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 651px) and (max-width: 1099px) {
  .infos27-ravitos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 650px) {
  .infos27-ravitos { grid-template-columns: 1fr; }
}


/* Crédits photographiques Unsplash — discrets, mais accessibles. */
.course-image.court,
.course-image.long,
.course-image.marche,
.inscription-fiche-visuel.photo-six,
.inscription-fiche-visuel.photo-long,
.inscription-fiche-visuel.photo-marche,
.parcours-komoot-photo.photo-six,
.parcours-komoot-photo.photo-long,
.parcours-komoot-photo.photo-marche {
    position: relative;
}
.credit-photo-unsplash {
    position: absolute;
    z-index: 5;
    right: 10px;
    bottom: 8px;
    display: inline-block;
    width: auto;
    padding: 1px 3px;
    border: none;
    background: rgba(24, 39, 29, .12);
    color: rgba(255,255,255,.86);
    font: 400 9px/1.25 'Barlow', Arial, sans-serif;
    letter-spacing: 0;
    text-decoration: none;
    text-shadow: 0 1px 3px rgba(0,0,0,.85);
    opacity: .55;
    transition: opacity .2s ease;
}
.credit-photo-unsplash:hover,
.credit-photo-unsplash:focus-visible {
    opacity: 1;
    color: #fff;
    text-decoration: underline;
    background: rgba(24,39,29,.55);
}
.credit-photo-unsplash:focus-visible {
    outline: 1px solid #F5F1E8;
    outline-offset: 2px;
}


/* ===========================================================================
   PAGE PARCOURS - MESSAGE AVANT PUBLICATION DES CARTES (J-30)
   ===========================================================================
   Ce petit encadré remplace uniquement les cartes et profils altimétriques
   Kids, Classic et Long tant que les cartes sont en commentaire dans parcours.html.
   Il ne masque pas les photographies, distances ni descriptions.
   La marche découverte conserve sa carte Komoot visible normalement.
   Le 27 août 2027, suivre les commentaires « KOMOOT » de parcours.html :
   ce bloc CSS peut rester en place même après publication des cartes.
   ========================================================================= */
.parcours-carte-attente {
    padding: 24px 28px;
    margin: 0 0 28px;
    border-top: 1px solid rgba(32, 54, 41, .16);
    border-bottom: 1px solid rgba(32, 54, 41, .16);
    background: #F5F1E8;
    color: #203629;
}

.parcours-carte-attente-sur-titre {
    display: block;
    margin-bottom: 7px;
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700;
    letter-spacing: 1.4px;
    font-size: 12px;
    color: #947B5C;
}

.parcours-carte-attente p {
    margin: 0;
    font-family: 'Barlow', sans-serif;
    font-size: 13px;
    line-height: 1.6;
}


/* ================================================================
   NAVIGATION 2027 — MENU DÉROULANT « INFOS PRATIQUES »
   ================================================================
   Le HTML est dans le menu de chaque page : voir « MENU INFOS PRATIQUES ».
   Le menu reprend les styles premium des autres listes déroulantes.
   Desktop : survol du titre, puis clic sur un lien du panneau.
   Mobile : toucher le titre pour ouvrir les cinq raccourcis.
   IMPORTANT : conserver le panneau relié au titre pour éviter les
   interruptions de survol entre le titre et ses liens.
*/
.navigation .nav-infos-pratiques > .nav-sous-menu {
    min-width: 225px;
}
/* L'intitulé de la page courante reste souligné grâce à aria-current="page". */
.navigation .nav-infos-pratiques > summary[aria-current="page"]::after {
    transform: scaleX(1);
}
