/*
Theme Name : Workshop SAE
Author : Rojhat Yilmaz
*/

@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');

*{
    box-sizing: border-box;
}

/* Variables */
:root {
    --max-width: 1440px;
    --spacing-xs: 0.5rem;   /* 8px */
    --spacing-sm: 1rem;     /* 16px */
    --spacing-md: 1.5rem;   /* 24px */
    --spacing-lg: 2rem;     /* 32px */
    --spacing-xl: 3rem;     /* 48px */
    --spacing-xxl: 4rem;    /* 64px */
}

html{
    margin-top: 0 !important;
    font-size: 16px; /* Base pour les rem */
}

#wpadminbar{
    position: fixed;
    top: 0;
    left: 0;
}

/* Reset */
body {
    margin: 0;
    padding: 0;
}

/* Container 1440px pour le contenu */
.container {
    max-width: var(--max-width);
    width: 100%;
    margin: 0 auto;
    padding: 0 2%;
}

/* Boutons */
.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  height: 3.4375rem; /* 55px */
  padding: 0;
  width: fit-content;
  font-size: 1rem;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
  background-repeat: repeat-x;
  background-size: auto 100%;
  background-position: center;
  z-index: 1;
}

.btn span {
    background-size: auto 3.4375rem; /* 55px */
    height: 100%;
    align-items: center;
    display: flex;
}

.btn::before,
.btn::after {
  content: "";
  top: 0;
  width: 3rem; /* 48px */
  height: 100%;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-position: center;
  z-index: -1;
}

.btn::before {
  left: -3rem; /* -48px */
}

.btn::after {
  right: -3rem; /* -48px */
}

.btn.btn-black span {
  background-image: url("img/buttons/BoutonNoir-Centre.svg");
  color: #000;
  text-align: center;
  font-family: Roboto;
  font-size: 1rem;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
}

.btn.btn-black::before {
  background-image: url("img/buttons/BoutonNoir-Gauche.svg");
}

.btn.btn-black::after {
  background-image: url("img/buttons/BoutonNoir-Droit.svg");
}

.btn.btn-white span {
  background-image: url("img/buttons/BoutonBlanc-Centre.svg");
  color: #FFF;
  text-align: center;
  font-family: Roboto;
  font-size: 1rem;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
}

.btn.btn-white::before {
  background-image: url("img/buttons/BoutonBlanc-Gauche.svg");
}

.btn.btn-white::after {
  background-image: url("img/buttons/BoutonBlanc-Droit.svg");
}

.btn.btn-fill span {
  background-image: url("img/buttons/BoutonPlein-Centre.svg");
  color: #FFF;
  text-align: center;
  font-family: Roboto;
  font-size: 1rem;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
}

.btn.btn-fill::before {
  background-image: url("img/buttons/BoutonPlein-Gauche.svg");
}

.btn.btn-fill::after {
  background-image: url("img/buttons/BoutonPlein-Droit.svg");
}



.hero-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; 
    z-index: 1;
    overflow: hidden;
}

.hero-image img {
    width: 100%;
    height: 100vh;
    object-fit: cover;
    object-position: center 30%;
}

/* Overlay dégradé noir */
.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.24) 0%, rgba(0, 0, 0, 0.24) 100%);
    z-index: 2;
}

/* Header toujours fixe */
.header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    background: rgba(0, 0, 0, 0.3);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 1.25rem 0; /* 20px */
    transition: all 0.3s ease;
}

/* Header content layout */
.header-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    padding: 0 2%; /* ← AJOUT : Espacement sur les côtés */
}

.logo {
    margin: 0;
    flex-shrink: 0;
    max-width: clamp(80px, 10vw, 150px);
    /* Force le rendu propre sur Safari */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
   
}


/* Menu centré avec espace flexible */
/* Menu centré avec espace flexible */
/* Menu centré avec espace flexible */
.main-nav {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 0;
    max-width: 60%;
    overflow: visible; /* ← AJOUT : Permet aux sous-menus de sortir */
}

.nav-menu {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: clamp(0.5rem, 1.2vw, 1.5625rem);
    flex-wrap: nowrap;
    justify-content: center;
    /* ← ENLÈVE overflow: hidden */
}

.nav-menu li {
    margin: 0;
    flex-shrink: 1;
    position: relative; /* ← IMPORTANT : Pour que les sous-menus se positionnent */
}

.nav-menu a {
    color: #FFF;
    text-align: center;
    font-family: Roboto;
    font-size: clamp(0.75rem, 1vw, 1rem);
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    text-decoration: none;
    transition: color 0.3s ease;
    white-space: nowrap;
    padding: 0 clamp(0.25rem, 0.5vw, 0.5rem);
}

/* Style pour le lien actif */
.nav-menu .current-menu-item a {
    font-weight: 700;
}

/* Image à droite */
.header-right-image {
    margin-top: 0;
    margin-right: 0; /* ← CHANGEMENT : Enlève le margin fixe */
    flex-shrink: 0;
    max-width: clamp(100px, 12vw, 180px); /* ← AJOUT : Taille flexible */
}

.header-right-image img {
    max-width: 100%;
    height: auto;
}

.btn-contact {
    position: relative;
    display: inline-block;
    text-decoration: none;
}

.btn-contact img {
    display: block;
    max-width: 100%;
    height: auto;
}

.btn-contact span {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #FFF;
    text-align: center;
    font-family: Roboto, sans-serif;
    font-size: clamp(0.75rem, 1.1vw, 1rem); /* ← CHANGEMENT : Taille flexible */
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    white-space: nowrap;
}



.hero-title {
    color: #FFF;
    text-align: center;
    font-family: Montserrat, sans-serif;
    font-size: clamp(2rem, 4.4vw, 4rem); /* Responsive: 32px → 64px */
    font-style: normal;
    font-weight: 800;
    line-height: normal;
    align-self: stretch;
    margin: 0;
}

.hero-subtitle {
    color: #FFF;
    text-align: center;
    font-family: Roboto, sans-serif;
    font-size: clamp(1.125rem, 1.67vw, 1.5rem); /* 18px → 24px */
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    align-self: stretch;
    padding-top: 7.5rem; /* 120px */
}

.hero-buttons {
    display: flex;
    justify-content: center;
    gap: 1.25rem;
    margin-top: 1.25rem;
    flex-wrap: wrap; /* ← AJOUT */
}

.hero-arrow {
    position: absolute;
    bottom: 3.1875rem; /* 51px */
    left: 50%;
    transform: translate(-50%, 0);
}

.hero-arrow img {
    display: inline-block;
}

/* Section intro */
.intro-section {
    padding-top: 5rem;    /* 80px */
    padding-bottom: 7rem; /* 112px */
}

.intro-title {
    color: #000;
    text-align: center;
    font-family: Montserrat, sans-serif;
    font-size: clamp(2rem, 3.8vw, 3.4375rem); /* 32px → 55px */
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    margin: 0;
}

.intro-description {
    color: #616161;
    text-align: center;
    font-family: Roboto, sans-serif;
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: 166%;
    margin: 5rem auto 0; /* 80px */
    max-width: 62.5rem;  /* 900px */
    padding: 0 5%;
}

.intro-description strong {
    font-weight: 700;
}

.intro-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.25rem;
    margin-top: 6.25rem; /* 100px */
}

.cta-dot-left,
.cta-dot-right {
    display: block;
}

.btn-cta {
    position: relative;
    display: inline-block;
    text-decoration: none;
}

.btn-cta img {
    display: block;
}

.btn-cta span {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #FFF;
    text-align: center;
    font-family: Roboto, sans-serif;
    font-size: 1rem;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    white-space: nowrap;
}

.blue-section {
    width: 100vw;
    background: rgba(77, 175, 225, 0.40);
    padding: 4rem 15%;  /* 64px vertical, 216px → 15% horizontal */
}

.blue-section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.blue-section-title {
    color: #000;
    font-family: Montserrat, sans-serif;
    font-size: clamp(1.5rem, 2.2vw, 2rem); /* 24px → 32px */
    font-style: normal;
    font-weight: 700;
    line-height: normal;
}

.blue-section-dot {
    display: block;
}

.paysages-gallery {
    display: flex;
    gap: 50px; /* ← RETOUR EN PX : Gap fixe */
    margin-top: 1.25rem;
    overflow-x: auto; /* ← AJOUT : Scroll horizontal si les images débordent */
    overflow-y: hidden;
    scroll-behavior: smooth;
    scrollbar-width: thin; /* ← Style de scrollbar discret */
}

.paysages-gallery::-webkit-scrollbar {
    height: 8px;
}

.paysages-gallery::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.3);
    border-radius: 4px;
}

.paysages-gallery::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.1);
}

.paysage-item {
    flex: 0 0 auto; /* ← CHANGEMENT : Taille fixe, pas de rétrécissement */
    width: 300px; /* ← AJOUT : Largeur fixe */
}

.paysage-placeholder {
    width: 100%; /* Prend la largeur du parent (384px) */
    height: 384px; /* ← Garde la hauteur fixe */
    border-radius: 10px;
    object-fit: cover;
}

.paysage-label {
    color: #000;
    font-family: Roboto, sans-serif;
    font-size: 1.25rem;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    margin: 0.75rem 0 0 0;
}

.paysage-description {
    color: #616161;
    font-family: Roboto, sans-serif;
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    margin: 0.25rem 0 0 0;
}

.paysages-cta {
    text-align: center;
    margin-top: 3.125rem; /* 50px */
}

.btn-paysage {
    position: relative;
    display: inline-block;
    text-decoration: none;
}

.btn-paysage img {
    display: block;
}

.btn-paysage span {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #000;
    text-align: center;
    font-family: Roboto, sans-serif;
    font-size: 1rem;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    white-space: nowrap;
}

.guide-text-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3.625rem; /* 58px */
    margin-top: 4.5625rem; /* 73px */
}



.guide-dot-left,
.guide-dot-right {
    flex-shrink: 0;
}

/* GUIDE SECTION - Structure 3 colonnes EN FLEXBOX */
.guide-section {
    padding-top: 6.6875rem;   /* 107px */
    padding-bottom: 9.5625rem; /* 153px */
}

.guide-grid {
    display: flex;
    align-items: stretch; /* ← CHANGEMENT : colonnes de même hauteur */
    margin-left: clamp(4%, 8.33vw, 8.33%);
    margin-right: clamp(4%, 8.33vw, 8.33%);
    gap: clamp(1.5rem, 4.44vw, 4.44%);
    flex-wrap: wrap;
}

/* Forcer toutes les colonnes à avoir la même hauteur */
.guide-column-image,
.guide-column-stats,
.guide-column-content {
    align-self: stretch; /* ← AJOUT */
}

/* COLONNE 1 - Image */
.guide-column-image {
    flex-shrink: 1; /* ← AJOUT : Peut rétrécir */
}

.guide-column-image .guide-image {
    width: 100%;
    max-width: clamp(180px, 25vw, 350px);
    height: 100%; /* ← CHANGEMENT : prend toute la hauteur */
    border-radius: 10px;
    object-fit: cover;
}

/* COLONNE 2 - Stats */
.guide-column-stats {
    display: flex;
    flex-direction: column;
    gap: clamp(1.5rem, 3.6vw, 3.25rem); /* ← CHANGEMENT : 24px → 52px */
    padding-top: clamp(1rem, 2.4vw, 2.4375rem); /* ← CHANGEMENT : Padding flexible */
    flex-shrink: 1; /* ← AJOUT : Peut rétrécir */
}

.guide-stat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.guide-stat-number {
    display: flex;
    align-items: baseline;
    gap: clamp(0.5rem, 1.4vw, 1.25rem); /* ← CHANGEMENT : 8px → 20px */
}



.guide-number {
    color: #EF4F4F;
    font-family: Montserrat, sans-serif;
    font-size: clamp(1.5rem, 3.33vw, 3rem); /* 24px → 48px */
    font-style: normal;
    font-weight: 700;
    line-height: normal;
}

.guide-text {
    color: #000;
    font-family: Montserrat, sans-serif;
    font-size: clamp(0.875rem, 1.4vw, 1.25rem); /* ← CHANGEMENT : 14px → 20px */
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    text-align: center;
    margin-top: clamp(0.25rem, 0.5vw, 0.5rem); /* ← AJOUT : Espacement adaptatif */
}

/* COLONNE 3 - Contenu */
.guide-column-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: clamp(1.25rem, 2.8vw, 2.5rem); /* ← CHANGEMENT : 20px → 40px */
    padding-top: clamp(1.5rem, 3.75vw, 3.375rem); /* ← CHANGEMENT : 24px → 54px */
    flex-shrink: 1; /* ← AJOUT : Peut rétrécir */
}

.guide-title {
    color: #000;
    font-family: Montserrat, sans-serif;
    font-size: clamp(1.25rem, 2.22vw, 2rem); /* 20px → 32px */
    font-style: normal;
    font-weight: 700;
    line-height: clamp(1.5rem, 2.5vw, 2.25rem); /* ← CHANGEMENT : Line-height flexible */
    margin: 0;
}

.guide-bio {
    color: #000;
    font-family: Roboto, sans-serif;
    font-size: clamp(0.875rem, 1.11vw, 1rem); /* ← CHANGEMENT : 14px → 16px */
    font-style: normal;
    font-weight: 400;
    line-height: clamp(1.25rem, 1.67vw, 1.5rem); /* ← CHANGEMENT : 20px → 24px */
    margin: 0;
}

.guide-bio strong {
    font-weight: 700;
}

.guide-buttons {
    display: flex;
    gap: clamp(0.75rem, 1.4vw, 1.25rem); /* ← CHANGEMENT : 12px → 20px */
    flex-wrap: wrap;
}

.guide-text-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(2rem, 4vw, 3.625rem);
    margin-top: 4rem; /* ← CHANGEMENT : 64px fixe */
}

.guide-description {
    color: #000;
    text-align: center;
    font-family: Roboto, sans-serif;
    font-size: clamp(0.875rem, 1.11vw, 1rem); /* ← CHANGEMENT : 14px → 16px */
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    max-width: 50rem;
    margin: 0;
}





.aventure {
    padding-top: 7.5rem;    /* 120px */
    padding-bottom: 7.5rem;
    width: 100vw;
    overflow: hidden;
    position: relative;
}

.aventure-line-bg {
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 1.8125rem; /* 29px */
    background-repeat: repeat-x;
    background-position: center;
    background-size: auto 1.8125rem;
    transform: translateY(-50%);
    z-index: 1;
    pointer-events: none;
    background-image: url('img/Accueil/attacher.svg');
}

.aventure-content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10;
}

.aventure-slider {
    width: 100%;
    overflow: hidden;
    position: relative;
    z-index: 2;
}

.aventure-track {
    display: flex;
    align-items: center;
    gap: 52px; /* ← RETOUR EN PX */
    animation: scroll 30s linear infinite;
    width: fit-content;
}

.aventure-photo {
    width: 540px;      /* ← RETOUR EN PX */
    height: 402px;     /* ← RETOUR EN PX */
    flex-shrink: 0;
    object-fit: cover;
    border-radius: 10px;
}

@keyframes scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

.aventure-box {
    display: flex;
    width: 343px;       /* ← RETOUR EN PX */
    height: 286px;      /* ← RETOUR EN PX */
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.25rem;
    border-radius: 10px;
    background: #F3EDED;
    padding: 1.65625rem;
    box-sizing: border-box;
}

.aventure-title {
    color: #000;
    text-align: center;
    font-family: Montserrat, sans-serif;
    font-size: clamp(1.5rem, 2.22vw, 2rem);
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    letter-spacing: 0.04rem;
    margin: 0;
}

.aventure-box .btn {
    margin: 0;
}

.btn-aventure {
    position: relative;
    display: inline-block;
    text-decoration: none;
    margin-top: 1.25rem;
}

.btn-aventure img {
    display: block;
}

.btn-aventure span {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #FFF;
    text-align: center;
    font-family: Roboto, sans-serif;
    font-size: 1rem;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    white-space: nowrap;
}

.btn-aventure-2 {
    position: relative;
    display: inline-block;
    text-decoration: none;
    margin-top: 1.5625rem;
}

.btn-aventure-2 img {
    display: block;
}

.btn-aventure-2 span {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #000;
    text-align: center;
    font-family: Roboto, sans-serif;
    font-size: 1rem;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    white-space: nowrap;
}



/* FOOTER */
.site-footer {
    overflow: hidden;
}

.footer-container {
    display: grid;
    grid-template-columns: 1fr auto auto 1fr;
    align-items: stretch;
}

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

.footer-left {
    background: #BE7856;
    padding: 4.25rem 5.14%; /* 68px 74px */
    gap: 1.25rem;
}

.footer-logo {
    max-width: 13.89rem; /* 200px */
    height: auto;
    margin-bottom: 2.875rem;
}

.footer-legal {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.footer-legal a {
    color: #000;
    font-family: 'Roboto', sans-serif;
    font-size: 0.875rem;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.footer-copyright {
    color: #000;
    font-family: 'Roboto', sans-serif;
    font-size: 0.875rem;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    margin: 0;
}

.footer-separator {
    width: 1.875rem; /* 30px */
    background: linear-gradient(to right, #BE7856 50%, #F3DAB0 50%);
    position: relative;
    display: flex;
    align-items: stretch;
}

.footer-separator::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('img/Accueil/attacher-haut.svg') repeat-y center;
    background-size: contain;
    pointer-events: none;
}

.footer-separator img {
    display: none;
}

.footer-center,
.footer-right {
    background: #F3DAB0;
}

.footer-center {
    position: relative;
    padding-top: 5.25rem;
    padding-left: 8.13%;
    align-items: flex-start;
    overflow: visible; /* ← AJOUT : Permet au border-radius de dépasser */
}

.footer-guide-image {
   width: 8.93rem;
   height: 14.125rem;
   overflow: hidden;
   margin-left: 80px;
   z-index: 10; /* ← AJOUT : Met l'image au-dessus */
   position: relative;
}

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

.footer-right {
    background: #F3DAB0;
    padding-top: 6.6875rem;
    padding-left: calc(6.94% + 50px); /* ← Une seule ligne */
    padding-right: 8.13%;
    gap: 1.8125rem;
    position: relative; /* ← AJOUT pour le z-index */
    z-index: 1; /* ← AJOUT : en dessous de l'image */
}

.footer-contact-title {
    color: #000;
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(1.5rem, 2.22vw, 2rem);
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.9375rem;
}

.footer-contact-title span {
    white-space: nowrap;
}

.footer-icon-left,
.footer-icon-right {
   width: 1.25rem;
   height: 0.89rem;
    flex-shrink: 0;
}

.footer-contact-info {
    display: flex;
    flex-direction: column;
    gap: 1.0625rem;
}

.footer-contact-item {
    display: flex;
    align-items: center;
    color: #000;
    text-align: center;
    font-family: 'Roboto', sans-serif;
    gap: 1.25rem;
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.footer-contact-info a[href^="tel:"] {
    gap: 0.9375rem;
}

.footer-contact-item:first-child .footer-contact-icon {
    width: 1.875rem;
    height: 1.4375rem;
}

.footer-contact-item:last-child .footer-contact-icon {
    width: 2.3125rem;
    height: 2.3125rem;
}

.footer-contact-icon {
    flex-shrink: 0;
}

.footer-warning {
    color: #000;
    font-family: 'Roboto', sans-serif;
    font-size: 0.75rem;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    margin: 0;
    max-width: 21.875rem; /* 350px */
}

.hero-stats-wrapper {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 3.61%;  /* 52px / 1440px */
    margin-top: 7.5rem;
}

.hero-stats-block {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.hero-number {
    color: #FCC;
    text-align: center;
    font-family: Montserrat, sans-serif;
    font-size: clamp(2rem, 3.33vw, 3rem);
    font-style: normal;
    font-weight: 700;
    line-height: normal;
}

.hero-km {
    color: #FFF;
    text-align: center;
    font-family: Montserrat, sans-serif;
    font-size: 1.25rem;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
}

/* ESPRIT DU TREK - Cacher la flèche sur mobile/tablette */
@media (max-width: 1023px) {
    .esprit-trek .hero-arrow {
        display: none !important;
    }
}

.image-section {
    padding-top: 6.4375rem;  /* 103px */
    padding-bottom: 6.9375rem;
}

.image-section .container {
    padding-left: 7.08%; /* 102px / 1440px */
}

.image-section-wrapper {
    display: flex;
    gap: 5.14%;  /* 74px / 1440px */
    align-items: flex-start;
}

.image-section-left {
    position: sticky;
    top: 6.25rem; /* 100px */
    flex-shrink: 0;
}

.houssaine-sticky-img {
    display: block;
    max-width: 100%;
    height: auto;
}

.image-section-right {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6.6875rem; /* 107px */
}

.image-section-title {
    color: #252525;
    font-family: Montserrat;
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 700;
    line-height: 1.5rem;
    margin: 0;
}

.image-section-description {
    color: #252525;
    font-family: Roboto;
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5rem;
    margin-top: 1.9375rem;
}

.image-section-description strong {
    font-weight: 700;
}

.image-section-bottom-img {
    display: block;
    max-width: 100%;
    height: auto;
    margin-top: 1.9375rem;
}

/* PAGE CIRCUIT 4X4 */
.hero-4x4-wrapper {
    position: relative;
    width: 100vw;
    height: 60vh;
    overflow: hidden;
}

.hero-4x4-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 60vh;
    z-index: 1;
    overflow: hidden;
}

.hero-4x4-image img {
    width: 100%;
    height: 60vh;
    object-fit: cover;
    object-position: center;
}

.hero-4x4-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.20) 0%, rgba(0, 0, 0, 0.20) 100%);
}



.hero-4x4-title {
    color: #FFF;
    text-align: center;
    font-family: Montserrat, sans-serif;
    font-size: clamp(2rem, 4.44vw, 4rem);
    font-style: normal;
    font-weight: 800;
    line-height: normal;
    margin: 0;
}

.hero-4x4-subtitle {
    color: #FFF;
    text-align: center;
    font-family: Montserrat, sans-serif;
    font-size: 1.25rem;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    margin-top: 3.6875rem;
    margin-bottom: 0;
}

.section-4x4 {
    padding-top: 7.8125rem;   /* 125px */
    padding-bottom: 6.625rem; /* 106px */
    position: relative;
}

.section-4x4-title {
    color: #000;
    text-align: center;
    font-family: Montserrat, sans-serif;
    font-size: 1.875rem;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    margin: 0;
}

.section-4x4-content {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-top: 7.8125rem;
    margin-bottom: 6.25rem;
    position: relative;
}

.section-4x4-content:first-of-type {
    margin-top: 7.8125rem;
    z-index: 2;
}

.section-4x4-content:last-child {
    margin-bottom: 0;
    z-index: 2;
}

.section-4x4-text {
    flex: 1;
    margin-top: 0.875rem;
}

.section-4x4-jour-wrapper {
    display: flex;
    align-items: center;
    gap: 1.5rem; /* 32px / 1440px */
    position: relative;
    z-index: 3;
}

.section-4x4-icon {
    display: block;
    margin-left: 6.25%; /* 90px / 1440px */
    flex-shrink: 0;
    position: relative;
    z-index: 3;
}

.section-4x4-jour {
    margin-left: 15.32%; /* 163px / 1440px */
    color: #000;
    font-family: Montserrat, sans-serif;
    font-size: 1.6rem;
    font-style: normal;
    font-weight: 700;
    line-height: 121.705%;
    margin-top: 0;
    margin-bottom: 0;
}

.section-4x4-jour-wrapper .section-4x4-jour {
    margin-left: 0;
}

.section-4x4-description {
    margin-top: 2.1875rem;
    margin-left: 17%; /* ← CHANGEMENT : de 12.01% à 0 */
    color: #000;
    font-family: Roboto, sans-serif;
    font-size: 1.25rem;
    font-style: normal;
    font-weight: 400;
    line-height: 117%;
    max-width: 80%; /* 600px / 1440px */
}
.section-4x4-image {
    display: block;
    margin-right: 10.21%; /* 147px / 1440px */
    max-width: 45%;
    height: auto;
    border-radius: 10px;
    flex-shrink: 0;
}

.section-4x4-avion {
    position: absolute;
    left: 5.28%; /* 76px / 1440px */
    top: 1.9375rem;
    z-index: 3;
}

.section-4x4-avion-8 {
    position: absolute;
    left: 5.28%;
    top: 4.3125rem;
    z-index: 3;
}

.section-4x4-ligne-avion {
    position: absolute;
    left: calc(5.28% + 2.29%); /* 76px + 33px */
    top: calc(1.9375rem + 2.1875rem);
    width: 0;
    height: 199.375rem; /* 3190px */
    border-left: 3px dashed #000;
    z-index: 1;
}

.circuit-4x4 .avis {
    padding-top: 4.375rem;
    padding-bottom: 4.375rem;
}

.circuit-4x4 .avis-image {
   margin-top: 3.75rem;
    margin-left: 20.83%; /* 300px / 1440px */
}

.circuit-4x4 .avis-feu {
    margin-top: -10.999rem;
    margin-left: 6.6%;
}

.avis-arc {
    position: absolute;
    top: 11.04rem;
    left: calc(20.83% + 28.55% + 6.04%);
    display: block;
}

.avis-description {
    position: absolute;
    top: 11.04rem;
    left: calc(20.83% + 28.55% + 6.04% + 5.56% + 6.04%);
    color: #000;
    font-family: Montserrat, sans-serif;
    font-size: 1.25rem;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
    margin: 0;
    max-width: 27.78%;
}

.circuit-randonnee .section-4x4-ligne-avion {
    height: 140.75rem; /* 2300px */
}

.circuit-randonnee .avis-image {
   margin-top: 3.75rem;
    margin-left: 20.83%;
}

.circuit-randonnee .avis-feu {
    margin-top: -10.999rem;
    margin-left: 6.6%;
}

.circuit-randonnee .avis {
    padding-top: 4.375rem;
    padding-bottom: 4.375rem;
}

.circuit-ski .avis-image {
   margin-top: 3.75rem;
    margin-left: 20.83%;
}

.circuit-ski .avis-feu {
    margin-top: -10.999rem;
    margin-left: 6.6%;
}

.circuit-ski .avis {
    padding-top: 4.375rem;
    padding-bottom: 4.375rem;
}

.circuit-ski .hero-4x4-overlay {
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.20) 0%, rgba(0, 0, 0, 0.20) 100%);
}

/* PAGE MENTIONS LÉGALES */
.page-mentions-legales .hero-section {
    padding-top: 23.25rem; /* 372px */
}

.partie-legale {
  color: #000;
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  margin: 0;
}

.contenu-legal {
  color: #000;
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
}

.contenu-legal p {
  margin: 0;
}

.contenu-legal ul {
  list-style-type: "∙ ";
  padding-left: 1.5rem;
  margin: 0;
}

.colone-legale {
    display: flex;
    flex-direction: column;
    gap: 0;
    max-width: 62.01%; /* 893px / 1440px */
    margin: 0 auto;
    padding-top: 8.25rem;
    padding-bottom: 8.25rem;
}

.date-maj {
    margin-bottom: 0.875rem;
}

.mentions-legales-section {
    display: flex;
    flex-direction: column;
    gap: 1.875rem;
    margin-bottom: 5rem;
}

.mentions-legales-section:last-child {
    margin-bottom: 0;
}

.page-confidentialite .hero-section {
    padding-top: 23.25rem;
}

.contenu-legal a {
    color: #000;
    font-family: 'Montserrat', sans-serif;
    font-size: 1rem;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    text-decoration-line: underline;
}

.page-404 .hero-section {
    padding-top: 17.375rem; /* 278px */
}

body.page-id-482 .header {
    display: none !important;
    visibility: hidden !important;
}

body.page-id-482 .hero-section {
    padding-top: 17.375rem;
}

.logo-404 {
    position: absolute;
    top: 4.6875rem;
    left: 50%;
    transform: translateX(-50%);
}

.logo-404 img {
    display: block;
}

.zero-404 {
    text-align: center;
    margin-top: 1.25rem;
}

.zero-404 img {
    display: inline-block;
    vertical-align: middle;
}

.text-404 {
    color: #FFF;
    text-align: center;
    font-family: 'Montserrat', sans-serif;
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 800;
    line-height: normal;
    margin: 3.75rem 0 0 0;
}

.section-404-bivouac {
    padding-top: 6.25rem;
    padding-bottom: 6.25rem;
}

.titre-404-bivouac {
    color: #000;
    text-align: center;
    font-family: 'Montserrat', sans-serif;
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 800;
    line-height: normal;
    margin: 0;
}

.btn-404-wrapper {
    text-align: center;
    margin-top: 2.5rem;
}

.btn-404-wrapper .btn span {
    text-transform: uppercase;
}

.maison-404 {
    text-align: center;
    margin-top: 3.375rem;
}

.maison-404 img {
    display: inline-block;
}

/* Hero Famille */
.hero-famille {
    position: relative;
    z-index: 3;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-famille-content {
    text-align: center;
}

.hero-famille-title {
    color: #FFF;
    text-align: center;
    font-family: Montserrat;
    font-size: clamp(2rem, 3.82vw, 3.4375rem);
    font-style: normal;
    font-weight: 800;
    line-height: normal;
    margin-bottom: 2.75rem;
}

.hero-famille-subtitle {
    color: #FFF;
    text-align: center;
    font-family: Roboto;
    font-size: clamp(1.125rem, 1.67vw, 1.5rem);
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    margin: 0;
}

.famille-section-2col {
    padding-top: 4rem;
    padding-left: 1.11%; /* 16px / 1440px */
}

.famille-2col-wrapper {
    display: flex;
    gap: 2.78%; /* 40px / 1440px */
}

.famille-col-image {
    flex: 1;
}

.famille-image {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 10px;
}

.famille-col-text {
    flex: 1;
}

.famille-text-title {
    color: #000;
    font-family: Montserrat;
    font-size: clamp(1.75rem, 2.78vw, 2.5rem);
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    margin: 8.625rem 0 1.3125rem 0;
}

.famille-text-description {
    color: #000;
    font-family: Roboto;
    font-size: 1.25rem;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    margin: 0;
}

.famille-text-description strong {
    color: #000;
    font-family: Roboto;
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
}

.famille-trait-wrapper {
    margin-top: 6.0625rem;
    margin-left: -2.78%;
    overflow: hidden;
}

.famille-trait {
    display: block;
    width: calc(100% + 2.78%);
    max-width: 100%;
}

.famille-text-bloc2 {
    margin-top: 6.0625rem;
}

.famille-image-full {
    width: 100vw;
    margin-top: 4rem;
    height: 31.25rem; /* 500px */
    overflow: hidden;
}

.famille-full-image {
    display: block;
    height: 100%;
    width: 100%;
    object-fit: cover;
    object-position: center;
}

.famille-section-3col {
    padding-top: 6.25rem;
}

.famille-3col-wrapper {
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

.famille-col {
    text-align: center;
}

.famille-col:nth-child(2) {
    margin: 0 5.14%; /* 74px / 1440px */
}

.famille-col-title {
    color: #000;
    font-family: Montserrat;
    font-size: 1.25rem;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    text-align: left;
    margin: 0 0 1rem 0;
}

.famille-col-description {
    color: #000;
    font-family: Montserrat;
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    text-align: left;
    margin: 0;
}

.famille-col-description strong {
    color: #000;
    font-family: Montserrat;
    font-size: 1rem;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
}

.famille-blue-section {
    width: 100vw;
    background: rgba(77, 175, 225, 0.40);
    padding: 1.375rem 8.33% 0.84rem; /* 22px vertical, 120px horizontal */
    margin-top: 6.25rem;
}

.famille-blue-title {
    color: #000;
    font-family: Montserrat;
    font-size: clamp(1.5rem, 2.22vw, 2rem);
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    margin: 0;
}

.famille-blue-gallery {
    display: flex;
    gap: 1.11%; /* 16px / 1440px */
    margin-top: 2.22rem;
}

.famille-blue-item {
    flex: 1;
}

.famille-blue-image {
    width: 100%;
    height: 24rem;
    border-radius: 10px;
    object-fit: cover;
}

.famille-blue-item-title {
  color: #000;
  font-family: Roboto;
  font-size: 1.25rem;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  margin-top: 0.75rem;
}

.famille-blue-item-description {
   color: #616161;
   font-family: Roboto;
   font-size: 1rem;
   font-style: normal;
   font-weight: 400;
   line-height: normal;
   margin-top: 0.25rem;
}

.famille-blue-cta {
    text-align: center;
    margin-top: 1.875rem;
}

.famille-blue-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.famille-blue-dot {
    display: block;
}

.famille-envie-section {
    padding-top: 3.875rem;
    padding-bottom: 6.8rem;
}

.famille-envie-title {
    color: #000;
    text-align: center;
    font-family: Montserrat;
    font-size: clamp(2rem, 3.82vw, 3.4375rem);
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    margin: 0;
}

.famille-envie-description {
    color: #616161;
    text-align: center;
    font-family: Roboto;
    font-size: 1rem;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    margin: 1.375rem auto 0;
}

.famille-envie-cta {
    text-align: center;
    margin-top: 2.3rem;
}

.haut-atlas-decouverte {
    padding-top: 7.8125rem;
    padding-bottom: 7.8125rem;
}

.haut-atlas-decouverte-title {
    color: #000;
    text-align: center;
    font-family: Montserrat;
    font-size: 1.875rem;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    margin: 0;
}

.haut-atlas-2col {
    display: flex;
    gap: 8.13%; /* 117px / 1440px */
    margin-top: 7.8125rem;
    align-items: center;
}

.haut-atlas-text {
    color: #000;
    font-family: Roboto;
    font-size: 2.1875rem;
    font-style: normal;
    font-weight: 400;
    line-height: 117%;
}

.haut-atlas-paysages {
    width: 100vw;
    background: rgba(77, 175, 225, 0.40);
    padding: 6.09rem 8.33%; /* 97.5px vertical, 120px horizontal */
}

.haut-atlas-paysages-title {
    color: #000;
    font-family: Montserrat;
    font-size: clamp(1.5rem, 2.22vw, 2rem);
    font-style: normal;
    font-weight: 700;
    line-height: normal;
}

.haut-atlas-paysages-grid {
    display: flex;
    gap: 1.74%; /* 25px / 1440px */
    margin-top: 3.59rem;
}

.haut-atlas-paysages-item {
    flex: 1;
}

.haut-atlas-paysages-item img {
    width: 100%;
    height: 24rem;
    object-fit: cover;
    border-radius: 10px;
}

.haut-atlas-paysages-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.haut-atlas-paysages-dot {
    display: block;
}

.haut-atlas-carte-wrapper {
    position: relative;
    display: inline-block;
    margin-left: 6.74%; /* 97px / 1440px */
}

.haut-atlas-carte-base {
    display: block;
    width: 100%;
    height: auto;
}

.haut-atlas-point {
    position: absolute;
    cursor: pointer;
    transition: transform 0.2s ease;
}

.haut-atlas-point:hover {
    transform: scale(1.2);
}

.haut-atlas-point-toubkal {
    top: 10%;
    left:62%;
}

.haut-atlas-point-region2 {
    top: 52%;
    left: 41%;
}

.haut-atlas-point-region3 {
    top: 20%;
    left: 39%;
}

.haut-atlas-instruction {
    color: #616161;
    font-family: 'Roboto', sans-serif;
    font-size: 0.875rem;
    text-align: center;
    margin-top: 2.5rem;
    font-style: italic;
}

.page-sahara .haut-atlas-point-region2 {
    top: 45%;
    left: 40%;
}

.page-sahara .haut-atlas-point-toubkal {
    top: 15%;
    left: 65%;
}

.page-cote-atlantique .haut-atlas-point-region3 {
    top: 13%;
    left: 36%;
}

.page-cote-atlantique .haut-atlas-point-toubkal {
    top: 15%;
    left: 65%;
}

.page-faq .hero-section {
    padding-top: 23.25rem;
}

.faq-guide-section {
    padding-top: 5.3125rem;
    padding-bottom: 5.3125rem;
}

.faq-guide-title {
    color: #000;
    text-align: center;
    font-family: Montserrat;
    font-size: clamp(2rem, 3.82vw, 3.4375rem);
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    margin: 0;
}

.faq-guide-description {
    color: #616161;
    text-align: center;
    font-family: Roboto;
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: 166%;
    margin: 2.875rem auto 0;
}

.faq-guide-description strong {
    color: #616161;
    font-family: Roboto;
    font-size: 1rem;
    font-style: normal;
    font-weight: 700;
    line-height: 166%;
}

.faq-guide-cta {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.25rem;
    margin-top: 2.875rem;
}

.faq-sections {
    padding-bottom: 5.3125rem;
}

.faq-sections .container {
    text-align: center;
}

.faq-section-item {
    margin-bottom: 4rem;
}

.faq-section-item:last-child {
    margin-bottom: 0;
}

.faq-section-content {
    display: inline-block;
    text-align: left;
    width: 100%;
    max-width: 46.25rem; /* 666px */
}

.faq-section-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.64%; /* 38px / 1440px */
    margin-bottom: 2rem;
}

.faq-section-dot {
    display: block;
    flex-shrink: 0;
}

.faq-section-title {
    color: #000;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #000;
    font-family: Montserrat;
    font-size: clamp(1.75rem, 2.78vw, 2.5rem);
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    margin: 0;
    white-space: nowrap;
}

.faq-accordion {
    margin-top: 1.875rem;
}

.faq-accordion-item {
    margin-bottom: 2rem;
}

.faq-accordion-item:last-child {
    margin-bottom: 0;
}

.faq-accordion-wrapper {
    border-radius: 10px;
    overflow: hidden;
    background: rgba(140, 160, 50, 0.40);
    transition: background 0.3s ease;
}

.faq-accordion-wrapper:hover {
    background: rgba(140, 160, 50, 0.60);
}

.faq-accordion-button {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 2rem 3rem;
    background: transparent;
    border: none;
    cursor: pointer;
    color: #000;
    font-family: Montserrat;
    font-size: 1.25rem;
    font-style: normal;
    font-weight: 700;
    line-height: 166%;
    text-align: left;
}

.faq-accordion-icon {
    transition: transform 0.3s ease;
    flex-shrink: 0;
}

.faq-accordion-item.active .faq-accordion-icon {
    transform: rotate(180deg);
}

.faq-accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, padding 0.3s ease;
    padding: 0 3rem;
}

.faq-accordion-content p {
    color: #000;
    font-family: Roboto;
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    margin: 0;
}

.faq-section-item:nth-child(2) .faq-accordion-wrapper {
    background: rgba(225, 162, 57, 0.40);
}

.faq-section-item:nth-child(2) .faq-accordion-wrapper:hover {
    background: rgba(225, 162, 57, 0.60);
}

.faq-section-item:nth-child(3) .faq-accordion-wrapper {
    background: rgba(77, 175, 225, 0.40);
}

.faq-section-item:nth-child(3) .faq-accordion-wrapper:hover {
    background: rgba(77, 175, 225, 0.60);
}

.faq-section-item:nth-child(4) .faq-accordion-wrapper {
    background: #FCC;
}

.faq-section-item:nth-child(4) .faq-accordion-wrapper:hover {
    background: #FFBBBB;
}

.faq-accordion-content::before {
    content: '';
    display: block;
    width: 100%;
    height: 4px;
    background: #8CA032;
    margin-bottom: 2rem;
    border-radius: 1000px;
}

.faq-accordion-item.active .faq-accordion-content::before {
    display: block;
}

.faq-section-item:nth-child(2) .faq-accordion-content::before {
    background: #E1A239;
}

.faq-section-item:nth-child(3) .faq-accordion-content::before {
    background: #4DAFE1;
}

.faq-section-item:nth-child(4) .faq-accordion-content::before {
    background: #A00F0F;
}

.faq-accordion-content strong {
    color: #000;
    font-family: Roboto;
    font-size: 1rem;
    font-style: normal;
    font-weight: 700;
    line-height: 166%;
}

.faq-accordion-content ul {
    margin: 1rem 0;
    padding-left: 1.25rem;
    list-style-type: disc;
    list-style-position: outside;
}

.faq-accordion-content li::marker {
    color: #000;
}

.faq-accordion-content li {
    color: #000;
    font-family: Roboto;
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: 166%;
    margin-bottom: 1rem;
}

.faq-accordion-content > *:last-child {
    margin-bottom: 1rem;
}

.faq-contact-section {
    padding-bottom: 6.8125rem;
    text-align: center;
}

.faq-contact-text {
    color: #000;
    text-align: center;
    font-family: Roboto;
    font-size: 1.375rem;
    font-style: normal;
    font-weight: 700;
    line-height: 166%;
    margin: 0;
}

/* Header sur fond blanc */
.header.header-on-white {
    background: transparent;
}

.header.header-on-white .nav-menu a {
    color: #000 !important;
}

.header.header-on-white .btn-white::before,
.header.header-on-white .btn-white::after {
    filter: invert(1);
}

.header.header-on-white .btn-white span {
    filter: invert(1);
    color: #FFF;
}

.header.header-on-white .logo img {
    filter: invert(1);
}

.hero-4x4-section-centered {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 60vh;
    padding-top: 0;
}

.hero-4x4-section-centered .hero-4x4-title,
.hero-4x4-section-centered .hero-4x4-subtitle {
    text-align: center;
}

.contact-parlons-section {
    padding-top: 4rem;
    padding-bottom: 4rem;
}

.contact-parlons-title {
    color: #000;
    text-align: center;
    font-family: Montserrat;
    font-size: clamp(2rem, 3.82vw, 3.4375rem);
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    margin: 0;
}

.contact-parlons-description {
    color: #616161;
    text-align: center;
    font-family: Roboto;
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: 166%;
    margin: 2.875rem auto 0;
    max-width: 62.5rem;
}

.contact-3col-wrapper {
    display: flex;
    gap: 6.67%; /* 96px / 1440px */
    padding-left: 10.56%; /* 152px / 1440px */
    padding-right: 10.56%;
    padding-bottom: 4.31rem;
}

.contact-col {
    flex: 1;
}

.contact-col-box {
    height: auto;
    padding: clamp(1.5rem, 4vw, 2rem) clamp(1rem, 3vw, 1.5rem);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: clamp(9rem, 22vw, 12rem); /* ← AJOUT : Hauteur minimale */
}

.contact-col-title {
    font-size: clamp(0.875rem, 2.5vw, 1.5rem); /* ← RÉDUIT : Taille plus petite */
    margin-bottom: clamp(0.5rem, 1.5vw, 0.75rem);
    word-wrap: break-word; /* ← AJOUT */
    overflow-wrap: break-word; /* ← AJOUT */
    text-align: center;
    width: 100%; /* ← AJOUT */
    max-width: 100%; /* ← AJOUT */
}

.contact-col-text {
    font-size: clamp(0.75rem, 2vw, 1rem); /* ← RÉDUIT : Taille plus petite */
    word-wrap: break-word; /* ← AJOUT */
    overflow-wrap: break-word; /* ← AJOUT */
    text-align: center;
    width: 100%; /* ← AJOUT */
    max-width: 100%; /* ← AJOUT */
}

.contact-col-link {
    text-decoration: none;
    display: block;
    transition: transform 0.3s ease, opacity 0.3s ease;
    width: 100%; /* ← AJOUT : Force la largeur */
}



.contact-col-box {
    border-radius: 10px;
    background: rgba(77, 175, 225, 0.40);
    height: 10.5rem; /* 168px */
    padding: 1rem;
}

.contact-col-link {
    text-decoration: none;
    display: block;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.contact-col-link:hover {
    transform: translateY(-5px);
    opacity: 0.9;
}

.contact-col-link:hover .contact-col-box {
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.contact-col-icon {
    width: 2rem;
    height: 2rem;
    display: block;
    margin: 0 auto 1rem;
}

.contact-col-title {
    color: #000;
    font-family: Roboto;
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 500;
    line-height: 1.5rem;
    margin: 0 0 1rem 0;
    text-align: center;
}

.contact-col-text {
    color: #000;
    font-family: Roboto;
    font-size: 1rem;
    font-style: normal;
    font-weight: 300;
    line-height: 1.5rem;
    margin: 0;
    text-align: center;
}

.contact-2col-section {
    padding-bottom: 4.25rem;
    padding-left: 6.94%; /* 100px / 1440px */
    padding-right: 6.94%;
}

.contact-2col-wrapper {
    display: flex;
    gap: 5.35%; /* 77px / 1440px */
    align-items: flex-start;
}

.contact-2col-left {
    flex: 1;
}

.contact-2col-image {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 10px;
}

.contact-2col-right {
    flex: 1;
}

.contact-form {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.contact-form-row {
    display: flex;
    gap: 6.25%; /* 90px / 1440px */
}

.contact-form-field {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.contact-form-field label {
    color: #252525;
    font-family: Montserrat;
    font-size: 1.25rem;
    font-style: normal;
    font-weight: 700;
    line-height: 2.25rem;
}

.contact-form-field input,
.contact-form-field textarea {
    width: 100%;
    padding: 0.75rem 1rem;
    border: none;
    border-radius: 10px;
    background: rgba(93, 93, 93, 0.40);
    font-family: Roboto;
    font-size: 1rem;
    color: #000;
}

.contact-form-field input:focus,
.contact-form-field textarea:focus {
    outline: none;
    background: rgba(93, 93, 93, 0.60);
}

.contact-form-field textarea {
    resize: vertical;
    min-height: 12.5rem;
}

.contact-form-submit {
    align-self: flex-start;
    margin-top: 0;
}

button.btn {
    border: none;
    background: none;
    padding: 0;
    cursor: pointer;
}

button.btn:focus {
    outline: none;
}

.contact-form-submit.btn {
    border: none;
    background: none;
    padding: 0;
    cursor: pointer;
}

.contact-form-submit.btn:focus {
    outline: none;
}

.contact-2col-right .contact-form-row {
    display: flex;
    gap: 2.85%; /* 41px / 1440px */
}

/* ============================================
   PAGE CARNET DE VOYAGE - LISTE DES ALBUMS (SIMPLIFIÉ)
   ============================================ */

.carnet-title-section {
    padding: 7.1875rem 0 11.375rem 0;
}

.carnet-main-title {
    color: #000;
    text-align: center;
    font-family: Montserrat, sans-serif;
    font-size: clamp(2rem, 3.82vw, 3.4375rem);
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    margin: 0;
}

.albums-list-section {
    padding: 0 0 15.4375rem 0;
}

.albums-list-section .container {
    max-width: var(--max-width);
    width: 100%;
    margin: 0 auto;
    padding: 0 2%;
}

.albums-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 7.5rem 4rem;
    justify-items: center;
    align-items: start;
    grid-auto-rows: auto;
}

.album-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 29.17rem;
    padding-top: 11rem;
    min-height: fit-content;
    padding-bottom: 1rem;
}

.album-card-link {
    text-decoration: none;
    width: 100%;
    transition: opacity 0.3s ease;
}

.album-card-link:hover {
    opacity: 0.85;
}

/* LES IMAGES - Positionnement proportionnel */
.album-image-main,
.album-image-overlay {
    width: 15.75rem;
    height: 8.75rem;
    object-fit: cover;
    border-radius: 26px;
    position: absolute;
}

.album-image-main {
    top: 50%; /* ← Centre vertical */
    left: 50%; /* ← Centre horizontal */
    transform: translate(-50%, -50%) rotate(-1.69deg); /* ← Moins à gauche */
     transform: translate(-80%, -70%) rotate(-1.69deg); /* ← Monte plus haut */
    z-index: 1;
}

.album-image-overlay {
    top: 50%; /* ← Centre vertical */
    left: 50%; /* ← Centre horizontal */
    transform: translate(-40%, -100%) rotate(3.041deg); /* ← Décalage proportionnel + rotation */
    z-index: 2;
}

.album-card-content {
    text-align: center;
    width: 100%;
    max-width: 100%;
    margin-top: 6rem;
    padding: 0 1rem 1rem;
    box-sizing: border-box;
}

.album-card-title {
    color: #000;
    text-align: center;
    font-family: Montserrat, sans-serif;
    font-size: 1.25rem;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
    margin: 0 0 0.625rem 0;
    width: 100%;
}

.album-card-description {
    color: #616161;
    text-align: center;
    font-family: Roboto, sans-serif;
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: 166%;
    margin: 0;
    width: 100%;
    max-width: 100%;
    word-wrap: break-word;
    overflow-wrap: break-word;
    white-space: normal;
    hyphens: auto;
}
/* SINGLE ALBUM */
.album-title-section {
    padding-top: 3.625rem;
    padding-bottom: 7.3125rem;
}

.album-main-title {
    color: #000;
    text-align: center;
    font-family: Montserrat, sans-serif;
    font-size: clamp(2rem, 3.82vw, 3.4375rem);
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    margin: 0 0 2.875rem 0;
}

.album-main-description {
    color: #616161;
    text-align: center;
    font-family: Roboto, sans-serif;
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: 166%;
    margin: 0;
    max-width: 55.56rem; /* 800px */
    margin-left: auto;
    margin-right: auto;
}

.album-gallery-section {
    padding: 0 0 5.25rem 0;
}

.album-carousel-wrapper {
    overflow: hidden;
    width: 100%;
}

.album-carousel {
    display: flex;
    gap: 1.875rem;
    overflow-x: scroll;
    scroll-behavior: smooth;
    padding: 0 2.36%; /* 34px / 1440px */
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.album-carousel::-webkit-scrollbar {
    display: none;
}

.album-photo {
    flex-shrink: 0;
    width: 39.79%;  /* 573px / 1440px */
    height: 22.375rem; /* 358px */
}

.album-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 10px;
}

.album-carousel-arrow {
    display: grid;
    grid-template-columns: 3.125rem 1fr 3.125rem; /* 50px */
    padding: 3.125rem 2.36% 0 2.36%;
}

.album-arrow-left {
    grid-column: 1;
    justify-self: start;
}

.album-arrow-right {
    grid-column: 3;
    justify-self: end;
}

.album-arrow-left,
.album-arrow-right {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    transition: transform 0.3s ease;
}

.album-arrow-left:hover {
    transform: translateX(-5px);
}

.album-arrow-right:hover {
    transform: translateX(5px);
}

.album-arrow-left img,
.album-arrow-right img {
    width: 3.125rem;
    height: 3.125rem;
}

.album-gallery-title-wrapper {
    padding: 3.125rem 2.36% 0 2.36%;
}

.album-gallery-title {
    color: #252525;
    font-family: Montserrat, sans-serif;
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 700;
    line-height: 1.5rem;
    margin: 0;
    text-align: left;
}

.album-info-list {
    padding: 1.9375rem 2.36% 0 2.36%;
}

.album-info-list ul {
    margin: 0;
    padding-left: 1.25rem;
    list-style-type: disc;
}

.album-info-list li {
   color: #252525;
   font-family: Roboto;
   font-size: 1rem;
   font-style: normal;
   font-weight: 400;
   line-height: 1.5rem;
}

.album-description-wrapper {
    padding: 1.9375rem 2.36% 0 2.36%;
}

.album-description-text {
    color: #252525;
    font-family: Roboto, sans-serif;
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5rem;
    margin: 0;
}

.album-full-width-section {
    background: #FCC;
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    margin-bottom: 5.25rem;
    padding: 2.625rem 9.24%; /* 42px 133px */
}

.album-fullwidth-title {
    color: #252525;
    text-align: center;
    font-family: Montserrat, sans-serif;
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 700;
    line-height: 1.5rem;
    margin: 0;
}

.album-fullwidth-image {
    margin-top: 1.25rem;
    text-align: center;
}

.album-fullwidth-image img {
    width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

.album-description-text ul {
    margin: 0 0 0.9375rem 0;
    padding-left: 1.25rem;
    list-style-type: disc;
}

.album-description-text li {
    color: #252525;
    font-family: Roboto, sans-serif;
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: 1.5rem;
    margin-bottom: 0.3125rem;
}

.album-description-text ol {
    margin: 0 0 0.9375rem 0;
    padding-left: 1.25rem;
    list-style-type: decimal;
}

.album-description-text p {
    margin-bottom: 0.9375rem;
}

.album-description-text p:last-child {
    margin-bottom: 0;
}

.album-gallery-section:last-of-type {
    padding-bottom: 0;
}

/* Hero Image Slideshow */
.hero-image-slideshow {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.hero-image-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 1.5s ease-in-out;
    pointer-events: none;
}

.hero-image-slide.active {
    opacity: 1;
    pointer-events: auto;
}

.hero-image-slide img {
    width: 100%;
    height: 100vh;
    object-fit: cover;
    object-position: center 30%;
}

.hero-image-slide .hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.24) 0%, rgba(0, 0, 0, 0.24) 100%);
    z-index: 2;
}

/* SOUS-MENU / DROPDOWN */
.nav-menu li {
    position: relative;
}

.nav-menu .sub-menu,
.nav-menu .children {
    display: none;
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.95);
    backdrop-filter: blur(10px);
    min-width: 13.75rem; /* 220px */
    list-style: none;
    margin: 0;
    border-radius: 10px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
    z-index: 1000;
}

.nav-menu li:hover > .sub-menu,
.nav-menu li:hover > .children,
.nav-menu li.menu-item-has-children:hover > .sub-menu {
    display: block !important;
}

.nav-menu li.current-menu-parent > .sub-menu,
.nav-menu li.current-menu-ancestor > .sub-menu,
.nav-menu li.current-page-ancestor > .sub-menu {
    display: block !important;
}

.nav-menu .sub-menu li,
.nav-menu .children li {
    margin: 0;
    position: relative;
}

.nav-menu .sub-menu li::after,
.nav-menu .children li::after {
    content: '';
    display: inline-block;
    width: 15rem; /* 240px */
    height: 0.9375rem;
    background: 
        url('img/Accueil/trait.svg') left center no-repeat,
        url('img/Accueil/trait.svg') right center no-repeat;
    background-size: 50% auto;
    filter: brightness(0) invert(1);
    transform: scaleY(-1);
}

.nav-menu .sub-menu li:last-child::after,
.nav-menu .children li:last-child::after {
    display: none;
}

.header.header-on-white .nav-menu .sub-menu li::after,
.header.header-on-white .nav-menu .children li::after {
    filter: brightness(0) invert(0);
    transform: scaleY(-1);
}

.nav-menu .sub-menu a,
.nav-menu .children a {
    color: #FFF;
    text-align: center;
    font-family: 'Montserrat', sans-serif;
    font-size: 1rem;
    font-style: normal;
    font-weight: 800;
    line-height: normal;
    padding: 0 1.5625rem;
    display: flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    transition: background 0.3s ease;
    height: 2.5rem; /* 40px */
}

.nav-menu .sub-menu a:hover,
.nav-menu .children a:hover {
    background: rgba(255, 255, 255, 0.1);
}

.nav-menu li.menu-item-has-children > a {
    cursor: pointer;
}

.nav-menu li.menu-item-has-children {
    cursor: pointer;
}

.nav-menu li.menu-item-has-children > a::after {
    content: '';
    display: inline-block;
    width: 0.75rem;
    height: 0.75rem;
    margin-left: 0.5rem;
    background: url('img/Accueil/fleche-bas.svg') center no-repeat;
    background-size: contain;
    pointer-events: none;
    transition: transform 0.3s ease;
}

.nav-menu li.menu-item-has-children:hover > a::after {
    transform: rotate(180deg);
}

.header.header-on-white .nav-menu li.menu-item-has-children > a::after {
    filter: brightness(0);
}

.header.header-on-white .nav-menu .sub-menu,
.header.header-on-white .nav-menu .children {
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.header.header-on-white .nav-menu .sub-menu a,
.header.header-on-white .nav-menu .children a {
    color: #000;
}

.header.header-on-white .nav-menu .sub-menu a:hover,
.header.header-on-white .nav-menu .children a:hover {
    background: rgba(0, 0, 0, 0.05);
}

.nav-menu .sub-menu,
.nav-menu .children {
    transition: opacity 0.15s ease, visibility 0.15s ease;
}

.nav-menu li:not(:hover) .sub-menu,
.nav-menu li:not(:hover) .children {
    opacity: 0;
    visibility: hidden;
    display: none !important;
}

/* MENU BURGER */
.burger-menu {
    display: none;
    width: 3.125rem;
    height: 3.125rem;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 1001;
    position: relative;
}

.burger-icon {
    width: 100%;
    height: 100%;
    display: block;
    transition: opacity 0.3s ease;
    filter: brightness(0) invert(1);
}

.burger-close {
    position: absolute;
    top: 10%;
    right: 15%;
    width: 80%;
    height: 80%;
    opacity: 0;
    transition: opacity 0.3s ease;
    background: url('img/Accueil/croix.svg') center no-repeat;
    background-size: contain;
    filter: brightness(0) invert(1);
}

.burger-menu.active .burger-icon {
    opacity: 0;
}

.burger-menu.active .burger-close {
    opacity: 1;
}

.header.header-on-white .burger-icon {
    filter: brightness(0);
}

.header.header-on-white .burger-close {
    filter: brightness(0);
}

body.menu-open {
    overflow: auto;
}

/* ============================================
   HEADER - RESPONSIVE
   ============================================ */

/* MOBILE & TABLETTE - Jusqu'à 1023px */
@media (max-width: 1023px) {
    
    .header {
        padding: clamp(0.75rem, 2vw, 1.25rem) 0;
    }
    
    .header-content {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 0 4%;
        position: relative;
    }
    
    /* LOGO - Taille adaptative */
    .logo {
        margin: 0;
        flex-shrink: 0;
        max-width: clamp(70px, 15vw, 120px);
        z-index: 1002;
    }
    
    .logo img {
        max-width: 100%;
        height: auto;
        display: block;
    }
    
    /* CACHE le bouton Contact desktop */
    .header-right-image {
        display: none !important;
    }
    
    /* AFFICHE le burger */
    .burger-menu {
        display: block;
        width: clamp(2.5rem, 6vw, 3.125rem);
        height: clamp(2.5rem, 6vw, 3.125rem);
        background: none;
        border: none;
        cursor: pointer;
        padding: 0;
        z-index: 1001;
        position: relative;
        flex-shrink: 0;
    }
    
    .burger-icon {
        width: 100%;
        height: 100%;
        display: block;
        transition: opacity 0.3s ease;
        filter: brightness(0) invert(1);
    }
    
    .burger-close {
        position: absolute;
        top: 10%;
        right: 15%;
        width: 80%;
        height: 80%;
        opacity: 0;
        transition: opacity 0.3s ease;
        background: url('img/Accueil/croix.svg') center no-repeat;
        background-size: contain;
        filter: brightness(0) invert(1);
    }
    
    .burger-menu.active .burger-icon {
        opacity: 0;
    }
    
    .burger-menu.active .burger-close {
        opacity: 1;
    }
    
    /* Header on white - Inversions couleurs */
    .header.header-on-white .burger-icon {
        filter: brightness(0);
    }
    
    .header.header-on-white .burger-close {
        filter: brightness(0);
    }
    
    .header.header-on-white .logo img {
        filter: invert(1);
    }
    
    /* NAVIGATION MOBILE */
    .main-nav {
        position: fixed !important;
        top: calc(100% + clamp(0.75rem, 2vw, 1.25rem)) !important;
        right: 0 !important;
        left: auto !important;
        width: clamp(18rem, 75vw, 24rem) !important;
        max-width: 90% !important;
        height: auto !important;
        max-height: calc(85vh - 7.875rem) !important;
        background: rgba(0, 0, 0, 0.95) !important;
        backdrop-filter: blur(10px) !important;
        padding: 0 !important;
        transition: opacity 0.3s ease, visibility 0.3s ease !important;
        z-index: 1000 !important;
        overflow: hidden !important;
        border-bottom-left-radius: 12px !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
        transform: none !important;
        margin: 0 !important;
    }
    
    .main-nav.active {
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }
    
    /* MENU WRAPPER */
    .nav-menu-wrapper {
        display: flex !important;
        transition: transform 0.3s ease !important;
        width: 200% !important;
        height: 100% !important;
    }
    
    .nav-menu-main,
    .nav-menu-sub {
        width: 50% !important;
        flex-shrink: 0 !important;
        overflow-y: auto !important;
        max-height: calc(85vh - 7.875rem) !important;
    }
    
    .nav-menu-wrapper.submenu-active {
        transform: translateX(-50%) !important;
    }
    
    .nav-menu-wrapper.no-transition {
        transition: none !important;
    }
    
    /* BOUTON RETOUR */
    .submenu-back {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        padding: 0 clamp(1rem, 3vw, 1.25rem) !important;
        height: 3rem !important;
        background: rgba(255, 255, 255, 0.1) !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
        cursor: pointer !important;
        color: #FFF !important;
        font-family: 'Montserrat', sans-serif !important;
        font-size: clamp(0.75rem, 2vw, 0.875rem) !important;
        font-weight: 800 !important;
    }
    
    .submenu-back::before {
        content: '' !important;
        display: inline-block !important;
        width: 1.875rem !important;
        height: 1.875rem !important;
        background: url('img/Accueil/fleche-retour.svg') center no-repeat !important;
        background-size: contain !important;
        filter: brightness(0) invert(1) !important;
    }
    
    /* MENU ITEMS */
    .nav-menu {
        flex-direction: column !important;
        gap: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        list-style: none !important;
    }
    
    .nav-menu li {
        width: 100% !important;
        margin: 0 !important;
        position: relative !important;
    }
    
    .nav-menu li:not(:last-child)::after {
        content: '' !important;
        display: block !important;
        width: 100% !important;
        height: 10px !important;
        background: url('img/Accueil/trait.svg') center repeat-x !important;
        background-size: contain !important;
        margin: 0 !important;
        filter: brightness(0) invert(1) !important;
    }
    
    .nav-menu a {
        padding: clamp(0.75rem, 2.5vw, 1rem) clamp(1rem, 3vw, 1.25rem) !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        color: #FFF !important;
        font-family: 'Montserrat', sans-serif !important;
        font-size: clamp(0.875rem, 2.5vw, 1rem) !important;
        font-weight: 800 !important;
        text-decoration: none !important;
    }
    
    .nav-menu .sub-menu,
    .nav-menu .children {
        display: none !important;
    }
    
    .nav-menu li.menu-item-has-children > a::after {
        display: none !important;
    }
    
    /* HEADER ON WHITE - Menu mobile */
    .header.header-on-white .main-nav {
        background: rgba(255, 255, 255, 0.95) !important;
    }
    
    .header.header-on-white .nav-menu a,
    .header.header-on-white .submenu-back {
        color: #000 !important;
    }
    
    .header.header-on-white .submenu-back {
        background: rgba(0, 0, 0, 0.05) !important;
        border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important;
    }
    
    .header.header-on-white .submenu-back::before {
        filter: brightness(0) !important;
    }
    
    .header.header-on-white .nav-menu li:not(:last-child)::after {
        filter: brightness(0) !important;
    }
}

/* DESKTOP - 1024px et plus */
@media (min-width: 1024px) {
    
    .header {
        padding: 1.25rem 0;
    }
    
    .header-content {
        display: flex;
        justify-content: space-between;
        align-items: center;
        position: relative;
        padding: 0 2%;
    }
    
    .logo {
        margin: 0;
        flex-shrink: 0;
        max-width: clamp(80px, 10vw, 150px);
    }
    
    /* CACHE le burger */
    .burger-menu {
        display: none !important;
    }
    
    /* AFFICHE la navigation desktop */
    .main-nav {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        margin-top: 0;
        max-width: 60%;
        overflow: visible;
        visibility: visible !important;
        opacity: 1 !important;
    }
    
    .nav-menu {
        display: flex;
        list-style: none;
        margin: 0;
        padding: 0;
        gap: clamp(0.5rem, 1.2vw, 1.5625rem);
        flex-wrap: nowrap;
        justify-content: center;
    }
    
    .nav-menu li {
        margin: 0;
        flex-shrink: 1;
        position: relative;
    }
    
    .nav-menu a {
        color: #FFF;
        text-align: center;
        font-family: Roboto;
        font-size: clamp(0.75rem, 1vw, 1rem);
        font-style: normal;
        font-weight: 400;
        line-height: normal;
        text-decoration: none;
        transition: color 0.3s ease;
        white-space: nowrap;
        padding: 0 clamp(0.25rem, 0.5vw, 0.5rem);
    }
    
    .nav-menu .current-menu-item a {
        font-weight: 700;
    }
    
    /* AFFICHE le bouton Contact desktop */
    .header-right-image {
        display: block;
        margin: 0;
        flex-shrink: 0;
        max-width: clamp(100px, 12vw, 180px);
    }
    
    .header-right-image .btn {
        height: clamp(2.5rem, 3.4375rem, 3.4375rem);
    }
    
    .header-right-image .btn span {
        font-size: clamp(0.875rem, 1vw, 1rem);
    }
}

@media (max-width: 1023px) {
    
    /* NAVIGATION MOBILE */
    .main-nav {
        position: fixed !important;
        top: 100% !important; /* ← CHANGEMENT : Enlève le calc() */
        right: 0 !important;
        left: auto !important;
        width: clamp(18rem, 75vw, 24rem) !important;
        max-width: 90% !important;
        height: auto !important;
        max-height: calc(85vh - 7.875rem) !important;
        background: rgba(0, 0, 0, 0.95) !important;
        backdrop-filter: blur(10px) !important;
        padding: 0 !important;
        margin-top: 0 !important; /* ← AJOUT : Force à 0 */
        transition: opacity 0.3s ease, visibility 0.3s ease !important;
        z-index: 1000 !important;
        overflow: hidden !important;
        border-bottom-left-radius: 12px !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
        transform: none !important;
    }
}


/* ============================================
   CSS RESPONSIVE - PAGE D'ACCUEIL
   Breakpoints: 320px, 576px, 768px, 1024px
   ============================================ */

/* ============================================
   MOBILE & TABLETTE - Jusqu'à 1023px
   ============================================ */
@media (max-width: 1023px) {
    
    /* CONTAINER */
    .container {
        padding: 0 4%;
    }
    
    /* HERO SECTION */
    .hero-section {
        padding-top: 8rem;
        height: auto;
        min-height: 70vh;
    }
    
    .hero-title {
        font-size: clamp(1.75rem, 5vw, 3rem);
        line-height: 1.2;
        padding: 0 2%;
    }
    
    .hero-subtitle {
        font-size: clamp(1rem, 3vw, 1.5rem);
        padding-top: clamp(2rem, 5vw, 4rem);
        padding: 0 2%;
    }
    
    /* HERO BUTTONS - Toujours en ligne, tailles adaptatives */
    .hero-buttons {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: clamp(0.75rem, 2vw, 1.25rem);
        margin-top: clamp(2rem, 4vw, 3rem);
    }
    
    .hero-buttons .btn {
        height: clamp(2.5rem, 6vw, 3.4375rem);
        font-size: clamp(0.75rem, 2vw, 1rem);
        min-width: clamp(100px, 25vw, 150px);
    }
    
    .hero-buttons .btn span {
        background-size: auto clamp(2.5rem, 6vw, 3.4375rem);
        font-size: clamp(0.75rem, 2vw, 1rem);
        padding: 0 clamp(0.5rem, 2vw, 1rem);
    }
    
    .hero-buttons .btn::before,
    .hero-buttons .btn::after {
        width: clamp(2rem, 5vw, 3rem);
    }
    
    .hero-buttons .btn::before {
        left: clamp(-2rem, -5vw, -3rem);
    }
    
    .hero-buttons .btn::after {
        right: clamp(-2rem, -5vw, -3rem);
    }
    
    /* Hero Arrow */
    .hero-arrow {
        bottom: clamp(1.5rem, 3vw, 2rem);
        display: none; /* ← Cache sur mobile/tablette */
    }
    
    /* HERO STATS */
    .hero-stats-wrapper {
        margin-top: clamp(3rem, 6vw, 5rem);
        gap: clamp(1.5rem, 4vw, 3rem);
        flex-wrap: wrap;
        justify-content: center;
    }
    
    .hero-number,
    .hero-plus {
        font-size: clamp(1.5rem, 4vw, 2.5rem);
    }
    
    .hero-km {
        font-size: clamp(0.875rem, 2.5vw, 1.25rem);
    }
    
    /* INTRO SECTION */
    .intro-section {
        padding-top: clamp(3rem, 6vw, 5rem);
        padding-bottom: clamp(3rem, 6vw, 5rem);
    }
    
    .intro-title {
        font-size: clamp(1.5rem, 4vw, 2.5rem);
        padding: 0 2%;
    }
    
    .intro-description {
        font-size: clamp(0.875rem, 2.5vw, 1rem);
        margin-top: clamp(2rem, 4vw, 3rem);
        padding: 0 3%;
        max-width: 100%;
    }
    
    .intro-cta {
        margin-top: clamp(2.5rem, 5vw, 4rem);
        gap: clamp(0.75rem, 2vw, 1.25rem);
        flex-wrap: wrap;
    }
    
    .cta-dot-left,
    .cta-dot-right {
        display: none; /* ← Cache les points sur mobile */
    }
    
    /* BLUE SECTION (PAYSAGES) */
    .blue-section {
        padding: clamp(2rem, 4vw, 3rem) 4%;
    }
    
    .blue-section-title {
        font-size: clamp(1.25rem, 3.5vw, 2rem);
    }
    
    .blue-section-dot {
        display: none; /* ← Cache le point */
    }
    
    .paysages-gallery {
        gap: 20px;
        margin-top: clamp(1rem, 3vw, 2rem);
        padding-bottom: 0.5rem;
        overflow-x: auto;
    }
    
    .paysage-item {
        width: clamp(180px, 45vw, 260px);
        flex-shrink: 0;
    }
    
    .paysage-placeholder {
        height: clamp(180px, 45vw, 260px);
    }
    
    .paysage-label {
        font-size: clamp(1rem, 2.5vw, 1.25rem);
        margin-top: 0.5rem;
    }
    
    .paysage-description {
        font-size: clamp(0.875rem, 2vw, 1rem);
    }
    
    .paysages-cta {
        margin-top: clamp(2rem, 4vw, 3rem);
    }
    
    /* GUIDE SECTION */
    .guide-section {
        padding-top: clamp(3rem, 6vw, 5rem);
        padding-bottom: clamp(3rem, 6vw, 5rem);
    }
    
    .guide-grid {
        display: flex;
        flex-direction: column;
        margin-left: 0;
        margin-right: 0;
        gap: clamp(2rem, 5vw, 3rem);
    }
    
    /* Image en premier */
    .guide-column-image {
        order: 1;
        width: 100%;
        text-align: center;
    }
    
    .guide-column-image .guide-image {
        max-width: clamp(60%, 70vw, 80%);
        margin: 0 auto;
    }
    
    /* Stats en deuxième */
    .guide-column-stats {
        order: 2;
        padding-top: 0;
        gap: clamp(1.5rem, 4vw, 2.5rem);
    }
    
    .guide-plus,
    .guide-number {
        font-size: clamp(1.5rem, 5vw, 2.5rem);
    }
    
    .guide-text {
        font-size: clamp(0.875rem, 2.5vw, 1.25rem);
    }
    
    /* Contenu en troisième */
    .guide-column-content {
        order: 3;
        padding-top: 0;
        gap: clamp(1.25rem, 3vw, 2rem);
    }
    
    .guide-title {
        font-size: clamp(1.25rem, 4vw, 2rem);
        text-align: center;
    }
    
    .guide-bio {
        font-size: clamp(0.875rem, 2.5vw, 1rem);
        text-align: center;
    }
    
    .guide-buttons {
        flex-direction: column;
        align-items: center;
        gap: clamp(0.75rem, 2vw, 1.25rem);
    }
    
    /* Guide text wrapper */
    .guide-text-wrapper {
        margin-top: clamp(2rem, 4vw, 3rem);
        gap: 1rem;
        flex-direction: column;
    }
    
    .guide-dot-left,
    .guide-dot-right {
        display: none; /* ← Cache les points */
    }
    
    .guide-description {
        font-size: clamp(0.875rem, 2.5vw, 1rem);
        padding: 0 3%;
    }



    
    /* AVENTURE SECTION */
    .aventure {
        padding-top: clamp(4rem, 8vw, 6rem);
        padding-bottom: clamp(4rem, 8vw, 6rem);
    }
    
    .aventure-line-bg {
        height: clamp(1rem, 3vw, 1.8125rem);
        background-size: auto clamp(1rem, 3vw, 1.8125rem);
    }
    
    .aventure-box {
        width: 90%;
        max-width: clamp(260px, 70vw, 320px);
        height: auto;
        padding: clamp(1.5rem, 4vw, 2rem) clamp(1rem, 3vw, 1.5rem);
        gap: clamp(1rem, 3vw, 1.5rem);
    }
    
    .aventure-title {
        font-size: clamp(1.25rem, 4vw, 2rem);
    }
    
    .aventure-track {
        gap: 30px;
    }
    
    .aventure-photo {
        width: clamp(260px, 70vw, 420px);
        height: clamp(195px, 52.5vw, 315px);
    }
}

/* DESKTOP - 1024px et plus */
@media (min-width: 1024px) {
    /* Les styles desktop sont déjà dans le CSS principal */
    .paysages-gallery {
        overflow-x: visible;
        gap: clamp(20px, 3vw, 50px);
    }
    
    .paysage-item {
        flex: 1 1 0;
        width: auto;
        min-width: 0;
    }
    
    .paysage-placeholder {
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
    }
}

/* ============================================
   CORRECTIONS GÉNÉRALES POUR TOUS MOBILES/TABLETTES
   ============================================ */
@media (max-width: 1023px) {
    
    /* Boutons généraux plus petits */
    .btn {
        height: 2.75rem;
    }
    
    .btn span {
        background-size: auto 2.75rem;
        font-size: 0.875rem;
    }
    
    .btn::before,
    .btn::after {
        width: 2.25rem;
    }
    
    .btn::before {
        left: -2.25rem;
    }
    
    .btn::after {
        right: -2.25rem;
    }
    
    /* Images hero */
    .hero-image img,
    .hero-image-slide img {
        object-position: center center;
    }
    
    /* Stats hero */
    .hero-stats-wrapper {
        margin-top: 4rem;
        gap: 2rem;
    }
}

/* ============================================
   CORRECTIONS SPÉCIFIQUES TRÈS PETITS ÉCRANS
   ============================================ */
@media (max-width: 374px) {
    
    .hero-title {
        font-size: 1.5rem;
    }
    
    .hero-subtitle {
        font-size: 0.875rem;
    }
    
    .hero-buttons .btn {
        height: 2.25rem;
        min-width: 100px;
    }
    
    .hero-buttons .btn span {
        background-size: auto 2.25rem;
        font-size: 0.625rem;
        padding: 0 0.375rem;
    }
    
    .hero-buttons .btn::before,
    .hero-buttons .btn::after {
        width: 1.75rem;
    }
    
    .hero-buttons .btn::before {
        left: -1.75rem;
    }
    
    .hero-buttons .btn::after {
        right: -1.75rem;
    }
    
    .intro-title {
        font-size: 1.25rem;
    }
    
    .paysage-item {
        width: 180px;
    }
    
    .paysage-placeholder {
        height: 180px;
    }
    
    .guide-title {
        font-size: 1.125rem;
    }
    
    .avis-title {
        font-size: 1.125rem;
    }
    
    .aventure-box {
        width: 95%;
        max-width: 260px;
    }
    
    .aventure-title {
        font-size: 1.125rem;
    }
    
    .aventure-photo {
        width: 260px;
        height: 195px;
    }
}

/* Desktop - Tout sur une ligne sans scroll */
@media (min-width: 1024px) {
    .paysages-gallery {
        overflow-x: visible; /* Pas de scroll */
        gap: clamp(20px, 3vw, 50px); /* Gap adaptatif */
    }
    
    .paysage-item {
        flex: 1 1 0; /* Taille égale pour chaque item */
        width: auto;
        min-width: 0;
    }
    
    .paysage-placeholder {
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1; /* Garde le ratio carré */
    }

    .guide-column-stats {
        display: flex;
        flex-direction: column;
        justify-content: center; /* ← Centre verticalement */
    }


}



/* ============================================
   FOOTER - RESPONSIVE
   ============================================ */

/* MOBILE & TABLETTE - Jusqu'à 1023px */
@media (max-width: 1023px) {
    
    .footer-container {
        display: flex !important;
        flex-direction: column !important;
        gap: 0 !important;
        width: 100%;
    }
    
    /* Cache le séparateur vertical */
    .footer-separator {
        display: none !important;
    }
    
    /* COLONNE CENTRE (Photo guide) - En premier sur mobile */
    .footer-center {
        order: 1 !important;
        width: 100% !important;
        background: #F3DAB0;
        padding: clamp(1.5rem, 4vw, 2.5rem) 0 !important;
        text-align: center;
        margin: 0 !important;
    }
    
    .footer-guide-image {
        width: 100% !important;
        height: auto !important;
        overflow: visible !important;
        margin: 0 auto !important;
        text-align: center;
    }
    
    .footer-guide-image img {
        width: clamp(6rem, 20vw, 10rem) !important;
        height: auto !important;
        display: inline-block !important;
        margin: 0 auto !important;
        border-radius: 10px;
    }
    
    /* COLONNE DROITE (Contact) - En deuxième */
    .footer-right {
        order: 2 !important;
        width: 100% !important;
        background: #F3DAB0;
        padding: clamp(2rem, 5vw, 3rem) 5% !important;
        margin: 0 !important;
        text-align: center;
    }
    
    .footer-contact-title {
        font-size: clamp(1.25rem, 3.5vw, 1.75rem) !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        margin-bottom: clamp(1rem, 3vw, 1.5rem) !important;
        gap: 0.5rem;
    }
    
    .footer-contact-title span {
        white-space: nowrap;
    }
    
    .footer-icon-left,
    .footer-icon-right {
        width: clamp(1rem, 2.5vw, 1.25rem) !important;
        height: auto !important;
    }
    
    .footer-contact-info {
        flex-direction: column !important;
        align-items: center !important;
        gap: clamp(1rem, 3vw, 1.5rem) !important;
    }
    
    .footer-contact-item {
        font-size: clamp(0.875rem, 2.5vw, 1rem) !important;
        justify-content: center;
        text-align: center;
    }
    
    .footer-contact-icon {
        max-width: clamp(1.25rem, 3vw, 1.5rem) !important;
        height: auto !important;
    }
    
    .footer-warning {
        font-size: clamp(0.625rem, 2vw, 0.75rem) !important;
        margin-top: clamp(1rem, 3vw, 1.5rem) !important;
        line-height: 1.4 !important;
        max-width: 100% !important;
        text-align: center;
    }
    
    /* COLONNE GAUCHE (Logo + Mentions) - En troisième */
    .footer-left {
        order: 3 !important;
        width: 100% !important;
        background: #BE7856;
        padding: clamp(2rem, 5vw, 3rem) 5% !important;
        margin: 0 !important;
        position: relative !important;
        text-align: center;
    }
    
    /* Trait décoratif en haut */
    .footer-left::before {
        content: '' !important;
        position: absolute !important;
        top: -0.3rem !important;
        left: 0 !important;
        width: 100% !important;
        height: clamp(0.75rem, 2vw, 1.25rem) !important;
        background: url('img/Accueil/trait.svg') center repeat-x !important;
        background-size: contain !important;
    }
    
    .footer-logo {
        max-width: clamp(6rem, 20vw, 10rem) !important;
        height: auto !important;
        margin: 0 auto clamp(1.5rem, 4vw, 2rem) !important;
        display: block !important;
    }
    
    .footer-legal {
        flex-direction: column !important;
        gap: clamp(0.75rem, 2vw, 1rem) !important;
        align-items: center !important;
        text-align: center !important;
        margin-bottom: clamp(1rem, 3vw, 1.5rem) !important;
    }
    
    .footer-legal a {
        font-size: clamp(0.75rem, 2vw, 0.875rem) !important;
        text-align: center !important;
        display: block !important;
    }
    
    .footer-copyright {
        font-size: clamp(0.75rem, 2vw, 0.875rem) !important;
        text-align: center !important;
        margin: 0 !important;
    }
}

/* DESKTOP - 1024px et plus */
@media (min-width: 1024px) {
    
    .footer-container {
        display: grid;
        grid-template-columns: 1fr auto auto 1fr;
        align-items: stretch;
    }
    
    .footer-left {
        order: 1;
        background: #BE7856;
        padding: 4.25rem 5.14%;
    }
    
    .footer-separator {
        order: 2;
        width: 1.875rem;
        background: linear-gradient(to right, #BE7856 50%, #F3DAB0 50%);
        position: relative;
        display: flex;
        align-items: stretch;
    }
    
    .footer-separator::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: url('img/Accueil/attacher-haut.svg') repeat-y center;
        background-size: contain;
        pointer-events: none;
    }
    
    .footer-center {
        order: 3;
        background: #F3DAB0;
        padding-top: 5.25rem;
        padding-left: 8.13%;
    }
    
    .footer-right {
        order: 4;
        background: #F3DAB0;
        padding-top: 6.6875rem;
        padding-left: calc(6.94% + 50px);
        padding-right: 8.13%;
    }
}
/* Cacher tous les points SVG sur mobile/tablette */
@media (max-width: 1023px) {
    .cta-dot-left,
    .cta-dot-right,
    .blue-section-dot,
    .guide-dot-left,
    .guide-dot-right,
    .famille-blue-dot,
    .faq-section-dot,
    .haut-atlas-paysages-dot,
    .footer-icon-left,
    .footer-icon-right {
        display: none !important;
    }
}

/* ============================================
   MOBILE SMALL (320px - 575px)
   ============================================ */
@media (max-width: 575px) {
    
    /* HERO IMAGE - Hauteur adaptée */
    .hero-wrapper {
        height: 60vh; /* ← Au lieu de 100vh */
    }
    
    .hero-image,
    .hero-image-slideshow {
        height: 60vh;
    }
    
    .hero-image img,
    .hero-image-slide img {
        height: 60vh;
    }
    
    .hero-overlay {
        height: 60vh;
    }
    
    .hero-section {
        height: 60vh;
        min-height: auto;
    }
}

/* ============================================
   MOBILE MEDIUM (576px - 767px)
   ============================================ */
@media (min-width: 576px) and (max-width: 767px) {
    
    .hero-wrapper {
        height: 70vh;
    }
    
    .hero-image,
    .hero-image-slideshow {
        height: 70vh;
    }
    
    .hero-image img,
    .hero-image-slide img {
        height: 70vh;
    }
    
    .hero-overlay {
        height:70vh;
    }
    
    .hero-section {
        height: 70vh;
        min-height: auto;
    }
}

/* ============================================
   TABLET (768px - 1023px)
   ============================================ */
@media (min-width: 768px) and (max-width: 1023px) {
    
    .hero-wrapper {
        height: 70vh;
    }
    
    .hero-image,
    .hero-image-slideshow {
        height: 70vh;
    }
    
    .hero-image img,
    .hero-image-slide img {
        height: 70vh;
    }
    
    .hero-overlay {
        height: 70vh;
    }
    
    .hero-section {
        height: 70vh;
        min-height: auto;
    }
}

@media (max-width: 1360px) {
    .section-4x4-icon {
        display: none !important;
    }
}


/* ============================================
   CSS RESPONSIVE - TOUTES LES AUTRES PAGES
   Breakpoints: 320px, 576px, 768px, 1024px
   Page d'accueil, header et footer déjà faits séparément
   ============================================ */

/* ============================================
   PAGES CIRCUIT (4X4, RANDONNÉE, SKI)
   ============================================ */

/* MOBILE SMALL (320px - 575px) */
@media (max-width: 1360px) {
    
    /* HERO 4X4 */
    .hero-4x4-wrapper {
        height: 50vh;
    }
    
    .hero-4x4-image {
        height: 50vh;
    }
    
    .hero-4x4-image img {
        height: 50vh;
        object-position: center center;
    }
    
    .hero-4x4-section {
        height: 50vh;
        padding-top: 8rem;
    }
    
    .hero-4x4-title {
        font-size: 1.75rem;
    }
    
    .hero-4x4-subtitle {
        font-size: 1rem;
        margin-top: 2rem;
    }
    
    /* SECTION 4X4 */
    .section-4x4 {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }
    
    .section-4x4-title {
        font-size: 1.25rem;
        padding: 0 5%;
    }
    
    .section-4x4-content {
        flex-direction: column-reverse;
        margin-top: 2rem;
        margin-bottom: 2rem;
        padding: 0 5%;
    }
    
    .section-4x4-image {
        margin: 0 0 2rem 0;
        max-width: 100%;
    }
    
    .section-4x4-jour-wrapper {
        gap: 1rem;
        margin-bottom: 1rem;
    }
    
    .section-4x4-icon {
        margin-left: 0;
        width: 2rem;
    }
    
    .section-4x4-jour {
        margin-left: 0;
        font-size: 1.25rem;
    }
    
    .section-4x4-description {
        margin-top: 1rem;
        margin-left: 0;
        font-size: 1rem;
        max-width: 100%;
    }
    
    .section-4x4-avion,
    .section-4x4-avion-8 {
        display: none;
    }
    
    .section-4x4-ligne-avion {
        display: none;
    }
    
    /* AVIS CIRCUIT */
    .circuit-4x4 .avis,
    .circuit-randonnee .avis,
    .circuit-ski .avis {
        padding: 2rem 0;
    }
    
    .circuit-4x4 .avis-image,
    .circuit-randonnee .avis-image,
    .circuit-ski .avis-image {
        position: relative;
        margin-top: 2rem;
        margin-left: 10%;
        width: 50.17%;
        height: 15.625rem;
    }
    
    .circuit-4x4 .avis-feu,
    .circuit-randonnee .avis-feu,
    .circuit-ski .avis-feu {
        position: absolute;
        margin-top: 4rem;
        margin-left: -10%;
        width: 50.17%;
        height: 15.625rem;
    }
    
    .avis-arc {
        display: none;
    }
    
    .avis-description {
        position: relative;
        top: auto;
        left: auto;
        max-width: 90%;
        margin: 3rem auto 0;
        text-align: center;
        font-size: 0.875rem;
    }
}


/* ============================================
   PAGE FAMILLE
   ============================================ */

@media (max-width: 575px) {
    
    /* HERO FAMILLE */
    .hero-famille {
        padding-top: 8rem;
    }
    
    .hero-famille-title {
        font-size: 1.75rem;
        margin-bottom: 1.5rem;
    }
    
    .hero-famille-subtitle {
        font-size: 1rem;
    }
    
    /* SECTION 2 COLONNES */
    .famille-section-2col {
        padding-top: 2rem;
        padding-left: 5%;
        padding-right: 5%;
    }
    
    .famille-2col-wrapper {
        flex-direction: column;
        gap: 2rem;
    }
    
    .famille-text-title {
        margin: 0 0 1rem 0;
        font-size: 1.5rem;
    }
    
    .famille-text-description {
        font-size: 1rem;
    }
    
    .famille-text-description strong {
        font-size: 1.125rem;
    }
    
    .famille-trait-wrapper {
        margin-top: 3rem;
        margin-left: -5%;
    }
    
    .famille-text-bloc2 {
        margin-top: 3rem;
    }
    
    /* IMAGE FULL */
    .famille-image-full {
        height: 18.75rem;
        margin-top: 2rem;
    }
    
    /* SECTION 3 COLONNES */
    .famille-section-3col {
        padding: 3rem 5%;
    }
    
    .famille-3col-wrapper {
        flex-direction: column;
        gap: 2rem;
    }
    
    .famille-col:nth-child(2) {
        margin: 0;
    }
    
    .famille-col-title {
        font-size: 1.125rem;
    }
    
    .famille-col-description {
        font-size: 0.875rem;
    }
    
    /* SECTION BLEUE */
    .famille-blue-section {
        padding: 1.5rem 5% 1rem 5%;
        margin-top: 3rem;
    }
    
    .famille-blue-title {
        font-size: 1.25rem;
    }
    
    .famille-blue-gallery {
        flex-direction: column;
        gap: 1.5rem;
        margin-top: 1.5rem;
    }
    
    .famille-blue-image {
        height: 18rem;
    }
    
    .famille-blue-item-title {
        font-size: 1rem;
    }
    
    .famille-blue-item-description {
        font-size: 0.875rem;
    }
    
    .famille-blue-cta {
        margin-top: 1.5rem;
    }
    
    /* SECTION ENVIE */
    .famille-envie-section {
        padding-top: 3rem;
        padding-bottom: 4rem;
    }
    
    .famille-envie-title {
        font-size: 1.75rem;
        padding: 0 5%;
    }
    
    .famille-envie-description {
        font-size: 0.875rem;
        margin: 1rem 5% 0;
    }
    
    .famille-envie-cta {
        margin-top: 1.5rem;
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    
    .hero-famille {
        padding-top: 9rem;
    }
    
    .hero-famille-title {
        font-size: 2rem;
        margin-bottom: 2rem;
    }
    
    .hero-famille-subtitle {
        font-size: 1.125rem;
    }
    
    .famille-section-2col {
        padding-top: 2.5rem;
        padding-left: 5%;
        padding-right: 5%;
    }
    
    .famille-2col-wrapper {
        flex-direction: column;
        gap: 2.5rem;
    }
    
    .famille-text-title {
        margin: 2rem 0 1rem 0;
        font-size: 1.75rem;
    }
    
    .famille-text-description {
        font-size: 1.125rem;
    }
    
    .famille-image-full {
        height: 22rem;
        margin-top: 2.5rem;
    }
    
    .famille-section-3col {
        padding: 4rem 5%;
    }
    
    .famille-3col-wrapper {
        flex-direction: column;
        gap: 2.5rem;
    }
    
    .famille-blue-section {
        padding: 2rem 6% 1.5rem 6%;
        margin-top: 4rem;
    }
    
    .famille-blue-gallery {
        flex-direction: column;
        gap: 2rem;
    }
    
    .famille-blue-image {
        height: 20rem;
    }
    
    .famille-envie-section {
        padding-top: 3.5rem;
        padding-bottom: 5rem;
    }
    
    .famille-envie-title {
        font-size: 2rem;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    
    .famille-section-2col {
        padding-left: 4%;
        padding-right: 4%;
    }
    
    .famille-2col-wrapper {
        gap: 3rem;
    }
    
    .famille-text-title {
        margin: 4rem 0 1rem 0;
    }
    
    .famille-image-full {
        height: 28rem;
    }
    
    .famille-section-3col {
        padding: 5rem 4%;
    }
    
    .famille-3col-wrapper {
        justify-content: space-between;
        gap: 2rem;
    }
    
    .famille-col {
        flex: 1;
    }
    
    .famille-col:nth-child(2) {
        margin: 0 2%;
    }
    
    .famille-blue-section {
        padding: 2.5rem 7% 1.5rem 7%;
    }
    
    .famille-blue-gallery {
        gap: 2%;
    }
    
    .famille-blue-image {
        height: 22rem;
    }
}

/* ============================================
   PAGES RÉGIONS (HAUT ATLAS, SAHARA, CÔTE)
   ============================================ */

@media (max-width: 575px) {
    
    .haut-atlas-decouverte {
        padding: 3rem 5%;
    }
    
    .haut-atlas-decouverte-title {
        font-size: 1.25rem;
    }
    
    .haut-atlas-2col {
        flex-direction: column;
        gap: 2rem;
        margin-top: 3rem;
    }
    
    .haut-atlas-text {
        font-size: 1.25rem;
    }
    
    .haut-atlas-carte-wrapper {
        margin-left: 0;
        text-align: center;
    }
    
    .haut-atlas-carte-base {
        max-width: 100%;
    }
    
    .haut-atlas-instruction {
        font-size: 0.75rem;
        margin-top: 1.5rem;
        padding: 0 5%;
    }
    
    .haut-atlas-paysages {
        padding: 3rem 5%;
    }
    
    .haut-atlas-paysages-title {
        font-size: 1.25rem;
    }
    
    .haut-atlas-paysages-grid {
        flex-direction: column;
        gap: 1.5rem;
        margin-top: 2rem;
    }
    
    .haut-atlas-paysages-item img {
        height: 18rem;
    }
}

@media (min-width: 576px) and (max-width: 1023px) {
    
    .haut-atlas-decouverte {
        padding: 4rem 5%;
    }
    
    .haut-atlas-decouverte-title {
        font-size: 1.5rem;
    }
    
    .haut-atlas-2col {
        flex-direction: column;
        gap: 2.5rem;
        margin-top: 4rem;
    }
    
    .haut-atlas-text {
        font-size: 1.5rem;
    }
    
    .haut-atlas-paysages {
        padding: 4rem 6%;
    }
    
    .haut-atlas-paysages-grid {
        flex-direction: column;
        gap: 2rem;
        margin-top: 2.5rem;
    }
    
    .haut-atlas-paysages-item img {
        height: 20rem;
    }
}


/* ============================================
   PAGE FAQ
   ============================================ */

@media (max-width: 575px) {
    
    .page-faq .hero-section {
        padding-top: 10rem;
    }
    
    .faq-guide-section {
        padding: 3rem 5%;
    }
    
    .faq-guide-title {
        font-size: 1.70rem;
    }
    
    .faq-guide-description {
        font-size: 0.875rem;
        margin: 1.5rem auto 0;
        padding: 0 2%;
    }
    
    .faq-guide-cta {
        flex-direction: column;
        gap: 1rem;
        margin-top: 1.5rem;
    }
    
    .faq-sections {
        padding-bottom: 3rem;
    }
    
    .faq-section-item {
        margin-bottom: 2.5rem;
    }
    
    .faq-section-content {
        max-width: 100%;
        padding: 0 5%;
    }
    
    .faq-section-header {
        flex-direction: column;
        gap: 1rem;
        margin-bottom: 1.5rem;
    }
    
    .faq-section-dot {
        width: 2rem;
    }
    
    .faq-section-title {
        font-size: 1.5rem;
        white-space: normal;
        text-align: center;
    }
    
    .faq-accordion-button {
        padding: 1.25rem 1.5rem;
        font-size: 1rem;
    }
    
    .faq-accordion-icon {
        width: 1.5rem;
    }
    
    .faq-accordion-content {
        padding: 0 1.5rem;
    }
    
    .faq-accordion-content p,
    .faq-accordion-content li {
        font-size: 0.875rem;
        line-height: 1.5;
    }
    
    .faq-accordion-content::before {
        margin-bottom: 1rem;
    }
    
    .faq-accordion-content > *:last-child {
        margin-bottom: 1rem;
    }
    
    .faq-contact-section {
        padding: 0 5% 4rem 5%;
    }
    
    .faq-contact-text {
        font-size: 1.125rem;
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    
    .page-faq .hero-section {
        padding-top: 12rem;
    }
    
    .faq-guide-section {
        padding: 4rem 5%;
    }
    
    .faq-guide-title {
        font-size: 2rem;
    }
    
    .faq-guide-description {
        font-size: 0.9375rem;
        margin: 2rem auto 0;
    }
    
    .faq-guide-cta {
        gap: 1rem;
        margin-top: 2rem;
    }
    
    .faq-sections {
        padding-bottom: 4rem;
    }
    
    .faq-section-item {
        margin-bottom: 3rem;
    }
    
    .faq-section-content {
        max-width: 95%;
    }
    
    .faq-section-title {
        font-size: 1.75rem;
    }
    
    .faq-accordion-button {
        padding: 1.5rem 2rem;
        font-size: 1.125rem;
    }
    
    .faq-accordion-content {
        padding: 0 2rem;
    }
    
    .faq-accordion-content p,
    .faq-accordion-content li {
        font-size: 0.9375rem;
    }
    
    .faq-contact-section {
        padding-bottom: 5rem;
    }
    
    .faq-contact-text {
        font-size: 1.25rem;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    
    .page-faq .hero-section {
        padding-top: 15rem;
    }
    
    .faq-guide-section {
        padding: 4.5rem 4%;
    }
    
    .faq-guide-title {
        font-size: 2.5rem;
    }
    
    .faq-sections {
        padding-bottom: 4.5rem;
    }
    
    .faq-section-content {
        max-width: 85%;
    }
    
    .faq-section-title {
        font-size: 2rem;
    }
    
    .faq-accordion-button {
        padding: 1.75rem 2.5rem;
    }
    
    .faq-accordion-content {
        padding: 0 2.5rem;
    }
    
    .faq-contact-section {
        padding-bottom: 6rem;
    }
}

/* ============================================
   ALIGNEMENT AVION / TRAIT / POINT NOIR
   ============================================ */

/* Point noir (jour normal) - Inchangé */
.section-4x4-icon {
    display: block;
    margin-left: 6.25%; /* 90px / 1440px */
    flex-shrink: 0;
    position: relative;
    z-index: 3;
}

/* Avion (Jour 1) - Plus à gauche, taille d'origine */
.section-4x4-avion {
    position: absolute;
    left: 2.3%; /* ← Plus à gauche que le point */
    top: 0rem;
    z-index: 3;
    /* Pas de width/height → garde sa taille naturelle */
}

/* Avion (Jour 8) - Plus à gauche, taille d'origine */
.section-4x4-avion-8 {
    position: absolute;
    left: 2.3%; /* ← Plus à gauche que le point */
    top: -0.3125rem;
    z-index: 3;
    /* Pas de width/height → garde sa taille naturelle */
}

/* Trait pointillé - Aligné au centre de l'avion */
.section-4x4-ligne-avion {
    position: absolute;
    left: calc(3.5% + 1rem); /* ← Centre approximatif de l'avion SVG */
    top: calc(1.9375rem + 2.1875rem); /* ← Commence après l'avion */
    width: 0;
    height: 196rem; /* 3190px */
    border-left: 3px dashed #000;
    z-index: 1;
}

/* ============================================
   PAGE CONTACT - RESPONSIVE
   ============================================ */

/* MOBILE & TABLETTE - Jusqu'à 1023px */
@media (max-width: 1023px) {
    
    /* Cache la flèche */
    .page-contact .hero-arrow {
        display: none !important;
    }
    
    /* Hero */
    .page-contact .hero-4x4-title {
        font-size: clamp(1.75rem, 5vw, 2.5rem);
        padding: 0 5%;
    }
    
    .page-contact .hero-4x4-subtitle {
        font-size: clamp(1rem, 3vw, 1.25rem);
        margin-top: clamp(1.5rem, 4vw, 2.5rem);
        padding: 0 5%;
    }
    
    /* Section Parlons */
    .contact-parlons-section {
        padding: clamp(2rem, 5vw, 4rem) 5%;
    }
    
    .contact-parlons-title {
        font-size: clamp(1.75rem, 5vw, 2.5rem);
        padding: 0 2%;
    }
    
    .contact-parlons-description {
        font-size: clamp(0.875rem, 2.5vw, 1rem);
        margin: clamp(1.5rem, 4vw, 2.875rem) auto 0;
        padding: 0 2%;
        max-width: 100%;
    }
    
    /* Section 3 colonnes - En colonne sur mobile/tablette */
    .contact-3col-section {
        padding-bottom: clamp(2rem, 5vw, 4rem);
    }
    
    .contact-3col-wrapper {
        flex-direction: column;
        gap: clamp(1.5rem, 4vw, 2.5rem);
        padding: 0 5%;
    }
    
    .contact-col {
        width: 100%;
        max-width: 100%;
    }
    
    .contact-col-box {
        height: auto;
        padding: clamp(1.5rem, 4vw, 2rem) clamp(1rem, 3vw, 1.5rem);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
    
    .contact-col-icon {
        width: clamp(1.5rem, 4vw, 2rem);
        height: clamp(1.5rem, 4vw, 2rem);
        margin-bottom: clamp(0.75rem, 2vw, 1rem);
    }
    
    .contact-col-title {
        font-size: clamp(1rem, 3vw, 1.5rem);
        margin-bottom: clamp(0.75rem, 2vw, 1rem);
    }
    
    .contact-col-text {
        font-size: clamp(0.875rem, 2.5vw, 1rem);
    }
    
    /* Section 2 colonnes - En colonne sur mobile/tablette */
    .contact-2col-section {
        padding: 0 5% clamp(2rem, 5vw, 4rem) 5%;
    }
    
    .contact-2col-wrapper {
        flex-direction: column;
        gap: clamp(2rem, 5vw, 3rem);
    }
    
    .contact-2col-left,
    .contact-2col-right {
        width: 100%;
    }
    
    .contact-2col-image {
        max-width: 100%;
        width: 100%;
        height: auto;
    }
    
    /* Formulaire */
    .contact-form {
        gap: clamp(1rem, 3vw, 1.5rem);
    }
    
    .contact-form-row {
        flex-direction: column;
        gap: clamp(1rem, 3vw, 1.25rem);
    }
    
    .contact-form-field {
        width: 100%;
    }
    
    .contact-form-field label {
        font-size: clamp(1rem, 2.5vw, 1.25rem);
        line-height: 1.5;
    }
    
    .contact-form-field input,
    .contact-form-field textarea {
        font-size: clamp(0.875rem, 2.5vw, 1rem);
        padding: clamp(0.625rem, 2vw, 0.875rem);
        width: 100%;
    }
    
    .contact-form-field textarea {
        min-height: clamp(8rem, 20vw, 12rem);
    }
    
    /* Bouton */
    .contact-form-submit {
        align-self: center;
        margin-top: clamp(0.5rem, 2vw, 1rem);
    }
    
    .contact-form-submit.btn {
        height: clamp(2.5rem, 6vw, 3rem);
    }
    
    .contact-form-submit.btn span {
        background-size: auto clamp(2.5rem, 6vw, 3rem);
        font-size: clamp(0.875rem, 2.5vw, 1rem);
    }
    
    .contact-form-submit.btn::before,
    .contact-form-submit.btn::after {
        width: clamp(2rem, 5vw, 2.5rem);
    }
    
    .contact-form-submit.btn::before {
        left: clamp(-2rem, -5vw, -2.5rem);
    }
    
    .contact-form-submit.btn::after {
        right: clamp(-2rem, -5vw, -2.5rem);
    }
}

/* DESKTOP - 1024px et plus */
@media (min-width: 1024px) {
    
    .contact-3col-wrapper {
        flex-direction: row;
        gap: 6.67%;
        padding-left: 10.56%;
        padding-right: 10.56%;
    }
    
    .contact-col {
        flex: 1;
    }
    
    .contact-col-box {
        height: 10.5rem;
    }
    
    .contact-2col-wrapper {
        flex-direction: row;
        gap: 5.35%;
    }
    
    .contact-2col-left,
    .contact-2col-right {
        flex: 1;
    }
    
    .contact-form-row {
        flex-direction: row;
        gap: 2.85%;
    }
    
    .contact-form-submit {
        align-self: flex-start;
    }
}

/* ============================================
   PAGE CARNET DE VOYAGE - RESPONSIVE
   ============================================ */

/* MOBILE & TABLETTE - 1 COLONNE jusqu'à 768px */
@media (max-width: 767px) {
    
    .carnet-title-section {
        padding: 4rem 5% 6rem 5%;
    }
    
    .carnet-main-title {
        font-size: clamp(1.75rem, 4vw, 2.5rem); /* ← Taille adaptative */
    }
    
    .albums-list-section {
        padding: 0 5% 8rem 5%;
    }
    
    .albums-grid {
        grid-template-columns: 1fr; /* ← 1 SEULE COLONNE */
        gap: 5rem 0; /* ← Gap vertical seulement */
    }
    
    .album-card {
        padding-top: 10rem; /* ← Espace pour les images */
        max-width: 25rem; /* ← Limite la largeur sur grand écran */
        margin: 0 auto; /* ← Centre la carte */
    }
    
    .album-image-main,
    .album-image-overlay {
        width: clamp(12rem, 50vw, 15rem); /* ← Taille adaptative */
        height: clamp(7rem, 29vw, 8.75rem); /* ← Hauteur proportionnelle */
    }
    
    .album-image-main {
        top: 2rem; /* ← Position fixe depuis le haut */
        left: 50%;
        transform: translate(-70%, 0) rotate(-1.69deg); /* ← Alignement horizontal uniquement */
        z-index: 1;
    }
    
    .album-image-overlay {
        top: 0; /* ← Position fixe depuis le haut */
        left: 50%;
        transform: translate(-30%, 0) rotate(3.041deg); /* ← Alignement horizontal uniquement */
        z-index: 2;
    }
    
    .album-card-content {
        margin-top: 2.5rem; /* ← Espace entre images et texte */
    }
    
    .album-card-title {
        font-size: clamp(1.125rem, 3vw, 1.25rem);
    }
    
    .album-card-description {
        font-size: clamp(0.875rem, 2.5vw, 1rem);
    }
}

/* TABLETTE & DESKTOP - 2 COLONNES à partir de 769px */
@media (min-width: 768px) and (max-width: 1439px) {
    
    .carnet-title-section {
        padding: 6rem 4% 9rem 4%;
    }
    
    .carnet-main-title {
        font-size: 2.5rem;
    }
    
    .albums-list-section {
        padding: 0 4% 12rem 4%;
    }
    
    .albums-grid {
        grid-template-columns: repeat(2, 1fr); /* ← 2 COLONNES */
        gap: 6rem 3rem;
    }
    
    .album-card {
        padding-top: 11rem;
    }
    
    .album-image-main,
    .album-image-overlay {
        width: 14rem;
        height: 8rem;
    }
    
    .album-image-main {
        top: 2rem;
        left: 50%;
        transform: translate(-60%, 0) rotate(-1.69deg);
        z-index: 1;
    }
    
    .album-image-overlay {
        top: 0;
        left: 50%;
        transform: translate(-30%, 0) rotate(3.041deg);
        z-index: 2;
    }
    
    .album-card-content {
        margin-top: 3rem;
    }
}

/* ============================================
   PAGE SINGLE ALBUM
   ============================================ */

@media (max-width: 575px) {
    
    .album-title-section {
        padding: 2rem 5% 4rem 5%;
    }
    
    .album-main-title {
        font-size: 1.75rem;
        margin-bottom: 1.5rem;
    }
    
    .album-main-description {
        font-size: 0.875rem;
    }
    
    .album-gallery-section {
        padding: 0 0 3rem 0;
    }
    
    .album-carousel {
        gap: 1rem;
        padding: 0 5%;
    }
    
    .album-photo {
        width: 85%;
        height: 16rem;
    }
    
    .album-carousel-arrow {
        padding: 2rem 5% 0 5%;
    }
    
    .album-arrow-left img,
    .album-arrow-right img {
        width: 2.5rem;
        height: 2.5rem;
    }
    
    .album-gallery-title-wrapper {
        padding: 2rem 5% 0 5%;
    }
    
    .album-gallery-title {
        font-size: 1.25rem;
    }
    
    .album-info-list {
        padding: 1.5rem 5% 0 5%;
    }
    
    .album-info-list li {
        font-size: 0.875rem;
        line-height: 1.4rem;
    }
    
    .album-description-wrapper {
        padding: 1.5rem 5% 0 5%;
    }
    
    .album-description-text {
        font-size: 0.875rem;
        line-height: 1.4rem;
    }
    
    .album-full-width-section {
        padding: 2rem 5%;
        margin-bottom: 3rem;
    }
    
    .album-fullwidth-title {
        font-size: 1.25rem;
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    
    .album-title-section {
        padding: 2.5rem 5% 5rem 5%;
    }
    
    .album-main-title {
        font-size: 2rem;
        margin-bottom: 2rem;
    }
    
    .album-main-description {
        font-size: 0.9375rem;
    }
    
    .album-gallery-section {
        padding: 0 0 4rem 0;
    }
    
    .album-carousel {
        gap: 1.25rem;
    }
    
    .album-photo {
        width: 75%;
        height: 18rem;
    }
    
    .album-carousel-arrow {
        padding: 2.5rem 5% 0 5%;
    }
    
    .album-gallery-title-wrapper {
        padding: 2.5rem 5% 0 5%;
    }
    
    .album-info-list {
        padding: 1.75rem 5% 0 5%;
    }
    
    .album-description-wrapper {
        padding: 1.75rem 5% 0 5%;
    }
    
    .album-full-width-section {
        padding: 2.5rem 7%;
        margin-bottom: 4rem;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    
    .album-title-section {
        padding: 3rem 4% 6rem 4%;
    }
    
    .album-main-title {
        font-size: 2.5rem;
    }
    
    .album-gallery-section {
        padding: 0 0 4.5rem 0;
    }
    
    .album-photo {
        width: 60%;
        height: 20rem;
    }
    
    .album-carousel-arrow {
        padding: 3rem 4% 0 4%;
    }
    
    .album-gallery-title-wrapper {
        padding: 3rem 4% 0 4%;
    }
    
    .album-info-list {
        padding: 2rem 4% 0 4%;
    }
    
    .album-description-wrapper {
        padding: 2rem 4% 0 4%;
    }
    
    .album-full-width-section {
        padding: 2.75rem 8%;
        margin-bottom: 4.5rem;
    }
}

/* ============================================
   PAGES MENTIONS LÉGALES / CONFIDENTIALITÉ
   ============================================ */

@media (max-width: 575px) {
    
    .page-mentions-legales .hero-section,
    .page-confidentialite .hero-section {
        padding-top: 10rem;
    }
    
    .colone-legale {
        max-width: 95%;
        padding: 3rem 5% 3rem 5%;
    }
    
    .partie-legale {
        font-size: 0.875rem;
    }
    
    .contenu-legal {
        font-size: 0.875rem;
    }
    
    .contenu-legal a {
        font-size: 0.875rem;
    }
    
    .mentions-legales-section {
        gap: 1.5rem;
        margin-bottom: 3rem;
    }
    
    .date-maj {
        margin-bottom: 0.5rem;
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    
    .page-mentions-legales .hero-section,
    .page-confidentialite .hero-section {
        padding-top: 12rem;
    }
    
    .colone-legale {
        max-width: 90%;
        padding: 4rem 5%;
    }
    
    .partie-legale,
    .contenu-legal,
    .contenu-legal a {
        font-size: 0.9375rem;
    }
    
    .mentions-legales-section {
        gap: 1.75rem;
        margin-bottom: 4rem;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    
    .page-mentions-legales .hero-section,
    .page-confidentialite .hero-section {
        padding-top: 15rem;
    }
    
    .colone-legale {
        max-width: 80%;
        padding: 5rem 5%;
    }
}

/* ============================================
   PAGE 404 - RESPONSIVE COMPLET
   ============================================ */

/* MOBILE & TABLETTE - Jusqu'à 1023px */
@media (max-width: 1023px) {
    
    /* Cache la flèche sur mobile/tablette */
    .page-404 .hero-arrow,
    body.page-id-482 .hero-arrow {
        display: none !important;
    }
    
    .page-404 .hero-section,
    body.page-id-482 .hero-section {
        padding-top: clamp(10rem, 20vw, 15rem); /* ← CHANGEMENT : Plus d'espace en haut */
        padding-bottom: 3rem;
    }
    
    /* Logo adaptatif */
    .logo-404 {
        top: 2rem;
    }
    
    .logo-404 img {
        max-width: clamp(80px, 15vw, 120px);
    }
    
    /* Titre hero adaptatif */
    .page-404 .hero-title,
    body.page-id-482 .hero-title {
        font-size: clamp(1.5rem, 5vw, 2.5rem) !important;
        padding: 0 5%;
        line-height: 1.2;
    }
    
    /* SVG "404" toujours en ligne et adaptatif */
    .zero-404 {
        margin-top: clamp(1rem, 3vw, 2rem);
        display: flex;
        justify-content: center;
        align-items: center;
        gap: clamp(0.25rem, 1vw, 0.5rem); /* ← Petit espace entre les chiffres */
        flex-wrap: nowrap;
    }
    
    .zero-404 img {
        width: clamp(50px, 16vw, 120px); /* ← Taille adaptative pour chaque chiffre */
        height: auto;
        flex-shrink: 0;
    }
    
    /* Texte 404 adaptatif */
    .text-404 {
        font-size: clamp(1rem, 3vw, 1.5rem);
        margin: clamp(2rem, 5vw, 3rem) 5% 0;
        padding: 0 2%;
        line-height: 1.4;
    }
    
    /* Section bivouac */
    .section-404-bivouac {
        padding: clamp(3rem, 6vw, 5rem) 5%;
    }
    
    /* Titre bivouac adaptatif */
    .titre-404-bivouac {
        font-size: clamp(1.125rem, 3.5vw, 1.5rem);
        padding: 0 2%;
        line-height: 1.3;
    }
    
    /* Bouton adaptatif */
    .btn-404-wrapper {
        margin-top: clamp(1.5rem, 4vw, 2.5rem);
    }
    
    .btn-404-wrapper .btn {
        height: clamp(2.5rem, 6vw, 3.4375rem);
        font-size: clamp(0.875rem, 2.5vw, 1rem);
    }
    
    .btn-404-wrapper .btn span {
        background-size: auto clamp(2.5rem, 6vw, 3.4375rem);
        font-size: clamp(0.875rem, 2.5vw, 1rem);
        padding: 0 clamp(0.5rem, 2vw, 1rem);
    }
    
    .btn-404-wrapper .btn::before,
    .btn-404-wrapper .btn::after {
        width: clamp(2rem, 5vw, 3rem);
    }
    
    .btn-404-wrapper .btn::before {
        left: clamp(-2rem, -5vw, -3rem);
    }
    
    .btn-404-wrapper .btn::after {
        right: clamp(-2rem, -5vw, -3rem);
    }
    
    /* Maison SVG adaptatif */
    .maison-404 {
        margin-top: clamp(2rem, 5vw, 3.375rem);
    }
    
    .maison-404 img {
        max-width: clamp(180px, 45vw, 350px);
        height: auto;
    }
}



/* ============================================
   IMAGE SECTION (PAGE À PROPOS)
   ============================================ */

@media (max-width: 575px) {
    
    .image-section {
        padding: 3rem 5%;
    }
    
    .image-section .container {
        padding-left: 0;
    }
    
    .image-section-wrapper {
        flex-direction: column;
        gap: 2rem;
    }
    
    .image-section-left {
        position: relative;
        top: 0;
    }
    
    .houssaine-sticky-img {
        max-width: 80%;
        margin: 0 auto;
        display: block;
    }
    
    .image-section-right {
        gap: 3rem;
    }
    
    .image-section-title {
        font-size: 1.25rem;
    }
    
    .image-section-description {
        font-size: 0.875rem;
        margin-top: 1rem;
        line-height: 1.4rem;
    }
    
    .image-section-bottom-img {
        margin-top: 1rem;
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    
    .image-section {
        padding: 4rem 5%;
    }
    
    .image-section-wrapper {
        flex-direction: column;
        gap: 2.5rem;
    }
    
    .image-section-left {
        position: relative;
        top: 0;
    }
    
    .houssaine-sticky-img {
        max-width: 70%;
        margin: 0 auto;
        display: block;
    }
    
    .image-section-right {
        gap: 4rem;
    }
    
    .image-section-description {
        font-size: 0.9375rem;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    
    .image-section {
        padding: 5rem 4%;
    }
    
    .image-section .container {
        padding-left: 0;
    }
    
    .image-section-wrapper {
        flex-direction: column; /* ← Passe en colonne */
        gap: 3rem;
        align-items: center; /* ← AJOUT : Centre tous les enfants */
    }
    
    .image-section-left {
        position: relative; /* ← Plus sticky */
        top: 0;
        text-align: center; /* ← Centre l'image */
        width: 100%; /* ← AJOUT */
    }
    
    .houssaine-sticky-img {
        max-width: 60%; /* ← Taille réduite */
        margin: 0 auto; /* ← Centre l'image */
        display: block;
    }
    
    .image-section-right {
        gap: 4rem;
        width: 100%; /* ← AJOUT : Prend toute la largeur */
        text-align: center; /* ← AJOUT : Centre le texte */
    }
    
    .image-section-title {
        font-size: 1.5rem;
        text-align: center; /* ← AJOUT : Titre centré */
    }
    
    .image-section-description {
        font-size: 1rem;
        line-height: 1.5rem;
        text-align: center; /* ← AJOUT : Texte centré */
    }
    
    .image-section-bottom-img {
        margin: 1.5rem auto 0; /* ← AJOUT : Image du bas centrée */
        display: block;
        max-width: 80%; /* ← AJOUT : Limite la largeur */
    }
}

@media (min-width: 1024px)  {

    .houssaine-sticky-img {
        max-width: 80%; /* ← Taille réduite */
        margin: 0 auto; /* ← Centre l'image */
        display: block;
    }


    }


/* PAGE FAQ - Titre centré VERTICALEMENT dans le hero */
.page-faq .hero-section {
    height: 100vh; /* ou 60vh selon votre choix */
    display: flex;
    align-items: center; /* ← Centre verticalement */
    justify-content: center;
    padding-top: 0 !important;
}

.page-faq .hero-section .container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.page-faq .hero-title {
    margin: 0;
    text-align: center;
}

/* Flèche en bas */
.page-faq .hero-arrow {
    position: absolute;
    bottom: 3rem;
    left: 50%;
    transform: translateX(-50%);
}

/* RESPONSIVE */
@media (max-width: 575px) {
    .page-faq .hero-section {
        height: 40vh;
    }
    
    .page-faq .hero-arrow {
        bottom: 1.5rem;
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    .page-faq .hero-section {
        height: 60vh;
    }
    
    .page-faq .hero-arrow {
        bottom: 2rem;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .page-faq .hero-section {
        height: 65vh;
    }
    
    .page-faq .hero-arrow {
        bottom: 2.5rem;
    }
}

@media (min-width: 1024px) {
    .page-faq .hero-section {
        height: 100vh;
    }
    
    .page-faq .hero-arrow {
        bottom: 3rem;
    }
}

/* PAGES CIRCUIT 4X4 - Titre hero centré verticalement */
.hero-4x4-wrapper {
    position: relative;
    width: 100vw;
    height: 60vh;
    overflow: hidden;
}

.hero-4x4-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 60vh;
    z-index: 1;
    overflow: hidden;
}

.hero-4x4-image img {
    width: 100%;
    height: 60vh;
    object-fit: cover;
    object-position: center;
}

.hero-4x4-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.20) 0%, rgba(0, 0, 0, 0.20) 100%);
    z-index: 2;
}

.hero-4x4-section {
    position: relative;
    z-index: 3;
    height: 60vh;
    display: flex;
    align-items: center; /* ← Centre verticalement */
    justify-content: center;
    padding-top: 0 !important;
}

.hero-4x4-section .container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.hero-4x4-title {
    color: #FFF;
    text-align: center;
    font-family: Montserrat, sans-serif;
    font-size: clamp(2rem, 4.44vw, 4rem);
    font-style: normal;
    font-weight: 800;
    line-height: normal;
    margin: 0;
}

.hero-4x4-subtitle {
    color: #FFF;
    text-align: center;
    font-family: Montserrat, sans-serif;
    font-size: 1.25rem;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    margin-top: 2rem;
    margin-bottom: 0;
}

/* RESPONSIVE */
@media (max-width: 575px) {
    .hero-4x4-wrapper {
        height: 50vh;
    }
    
    .hero-4x4-image,
    .hero-4x4-image img {
        height: 50vh;
    }
    
    .hero-4x4-section {
        height: 50vh;
        padding-top: 0 !important;
    }
    
    .hero-4x4-title {
        font-size: 1.75rem;
    }
    
    .hero-4x4-subtitle {
        font-size: 1rem;
        margin-top: 1.5rem;
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    .hero-4x4-wrapper {
        height: 55vh;
    }
    
    .hero-4x4-image,
    .hero-4x4-image img {
        height: 55vh;
    }
    
    .hero-4x4-section {
        height: 55vh;
        padding-top: 0 !important;
    }
    
    .hero-4x4-title {
        font-size: 2rem;
    }
    
    .hero-4x4-subtitle {
        font-size: 1.125rem;
        margin-top: 1.75rem;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .hero-4x4-section {
        padding-top: 0 !important;
    }
    
    .hero-4x4-title {
        font-size: 2.5rem;
    }
}

@media (min-width: 1024px) {
    .hero-4x4-section {
        padding-top: 0 !important;
    }
}



@media (max-width: 1023px) {
    .page-faq .hero-arrow {
    display: none !important;
}
}



/* Cacher la flèche uniquement sur Mentions Légales et Confidentialité */
.page-mentions-legales .hero-arrow,
.page-confidentialite .hero-arrow {
    display: none !important;
}


/* HERO PRINCIPAL - Hauteurs adaptatives */
.hero-wrapper {
    position: relative;
    width: 100vw;
    height: 100vh; /* Desktop par défaut */
    overflow: hidden;
    padding-top: 0;
}

.hero-image,
.hero-image-slideshow {
    height: 100vh;
}

.hero-image img,
.hero-image-slide img {
    height: 100vh;
}

.hero-overlay {
    height: 100vh;
}

.hero-section {
    position: relative;
    z-index: 3;
    height: 100vh;
    display: flex;
    align-items: center;
    padding-top: 0;
}

/* HERO 4X4 - Déjà à 60vh, c'est bien */
.hero-4x4-wrapper {
    height: 60vh;
}

.hero-4x4-image,
.hero-4x4-image img {
    height: 60vh;
}

.hero-4x4-section {
    height: 60vh;
    display: flex;
    align-items: center;
    padding-top: 0;
}

/* ============================================
   RESPONSIVE - Hauteurs adaptées par écran
   ============================================ */

/* TRÈS PETITS ÉCRANS (320px - 575px) - Hero plus court */
@media (max-width: 575px) {
    /* Hero principal - 70vh au lieu de 100vh */
    .hero-wrapper {
        height: 70vh;
    }
    
    .hero-image,
    .hero-image-slideshow {
        height: 70vh;
    }
    
    .hero-image img,
    .hero-image-slide img {
        height: 70vh;
    }
    
    .hero-overlay {
        height: 70vh;
    }
    
    .hero-section {
        height: 70vh;
        min-height: auto;
        padding-top: 0;
    }
    
    /* Hero 4x4 - 50vh */
    .hero-4x4-wrapper {
        height: 50vh;
    }
    
    .hero-4x4-image,
    .hero-4x4-image img {
        height: 50vh;
    }
    
    .hero-4x4-section {
        height: 50vh;
        padding-top: 0;
    }
    
    /* Hero Famille - 70vh */
    .hero-famille {
        height: 70vh;
        padding-top: 0;
    }
    
    /* Page FAQ - 50vh */
    .page-faq .hero-wrapper {
        height: 50vh;
    }
    
    .page-faq .hero-image,
    .page-faq .hero-image-slideshow {
        height: 50vh;
    }
    
    .page-faq .hero-image img,
    .page-faq .hero-image-slide img {
        height: 50vh;
    }
    
    .page-faq .hero-overlay {
        height: 50vh;
    }
    
    .page-faq .hero-section {
        height: 50vh;
        padding-top: 0;
    }
    
    /* Mentions légales / Confidentialité - 40vh */
    .page-mentions-legales .hero-wrapper,
    .page-confidentialite .hero-wrapper {
        height: 40vh;
    }
    
    .page-mentions-legales .hero-image,
    .page-confidentialite .hero-image,
    .page-mentions-legales .hero-image-slideshow,
    .page-confidentialite .hero-image-slideshow {
        height: 40vh;
    }
    
    .page-mentions-legales .hero-image img,
    .page-confidentialite .hero-image img,
    .page-mentions-legales .hero-image-slide img,
    .page-confidentialite .hero-image-slide img {
        height: 40vh;
    }
    
    .page-mentions-legales .hero-overlay,
    .page-confidentialite .hero-overlay {
        height: 40vh;
    }
    
    .page-mentions-legales .hero-section,
    .page-confidentialite .hero-section {
        height: 40vh;
        padding-top: 0;
    }
    
    /* Page 404 - 60vh */
    .page-404 .hero-wrapper,
    body.page-id-482 .hero-wrapper {
        height: 60vh;
    }
    
    .page-404 .hero-image,
    body.page-id-482 .hero-image {
        height: 60vh;
    }
    
    .page-404 .hero-image img,
    body.page-id-482 .hero-image img {
        height: 60vh;
    }
    
    .page-404 .hero-section,
    body.page-id-482 .hero-section {
        height: 60vh;
        padding-top: clamp(10rem, 20vw, 15rem); /* ← CHANGEMENT : Plus d'espace en haut */
        padding-bottom: 3rem;
    }
}

/* MOBILE MEDIUM (576px - 767px) */
@media (min-width: 576px) and (max-width: 767px) {
    /* Hero principal - 80vh */
    .hero-wrapper {
        height: 80vh;
    }
    
    .hero-image,
    .hero-image-slideshow {
        height: 80vh;
    }
    
    .hero-image img,
    .hero-image-slide img {
        height: 80vh;
    }
    
    .hero-overlay {
        height: 80vh;
    }
    
    .hero-section {
        height: 80vh;
        padding-top: 0;
    }
    
    /* Hero 4x4 - 55vh */
    .hero-4x4-wrapper {
        height: 55vh;
    }
    
    .hero-4x4-image,
    .hero-4x4-image img {
        height: 55vh;
    }
    
    .hero-4x4-section {
        height: 55vh;
        padding-top: 0;
    }
    
    /* Hero Famille - 80vh */
    .hero-famille {
        height: 80vh;
        padding-top: 0;
    }
    
    /* Page FAQ - 60vh */
    .page-faq .hero-wrapper {
        height: 60vh;
    }
    
    .page-faq .hero-image,
    .page-faq .hero-image-slideshow {
        height: 60vh;
    }
    
    .page-faq .hero-image img,
    .page-faq .hero-image-slide img {
        height: 60vh;
    }
    
    .page-faq .hero-overlay {
        height: 60vh;
    }
    
    .page-faq .hero-section {
        height: 60vh;
        padding-top: 0;
    }
    
    /* Mentions / Confidentialité - 50vh */
    .page-mentions-legales .hero-wrapper,
    .page-confidentialite .hero-wrapper {
        height: 50vh;
    }
    
    .page-mentions-legales .hero-image,
    .page-confidentialite .hero-image,
    .page-mentions-legales .hero-image-slideshow,
    .page-confidentialite .hero-image-slideshow {
        height: 50vh;
    }
    
    .page-mentions-legales .hero-image img,
    .page-confidentialite .hero-image img,
    .page-mentions-legales .hero-image-slide img,
    .page-confidentialite .hero-image-slide img {
        height: 50vh;
    }
    
    .page-mentions-legales .hero-overlay,
    .page-confidentialite .hero-overlay {
        height: 50vh;
    }
    
    .page-mentions-legales .hero-section,
    .page-confidentialite .hero-section {
        height: 50vh;
        padding-top: 0;
    }
    
    /* Page 404 - 65vh */
    .page-404 .hero-wrapper,
    body.page-id-482 .hero-wrapper {
        height: 65vh;
    }
    
    .page-404 .hero-image,
    body.page-id-482 .hero-image {
        height: 65vh;
    }
    
    .page-404 .hero-image img,
    body.page-id-482 .hero-image img {
        height: 65vh;
    }
    
    .page-404 .hero-section,
    body.page-id-482 .hero-section {
        height: 65vh;
        padding-top: clamp(10rem, 20vw, 15rem); /* ← CHANGEMENT : Plus d'espace en haut */
        padding-bottom: 3rem;
    }
}

/* TABLET (768px - 1023px) */
@media (min-width: 768px) and (max-width: 1023px) {
    /* Hero principal - 85vh */
    .hero-wrapper {
        height: 85vh;
    }
    
    .hero-image,
    .hero-image-slideshow {
        height: 85vh;
    }
    
    .hero-image img,
    .hero-image-slide img {
        height: 85vh;
    }
    
    .hero-overlay {
        height: 85vh;
    }
    
    .hero-section {
        height: 85vh;
        padding-top: 0;
    }
    
    /* Hero 4x4 - garde 60vh */
    .hero-4x4-section {
        padding-top: 0;
    }
    
    /* Hero Famille - 85vh */
    .hero-famille {
        height: 85vh;
        padding-top: 0;
    }
    
    /* Page FAQ - 65vh */
    .page-faq .hero-wrapper {
        height: 65vh;
    }
    
    .page-faq .hero-image,
    .page-faq .hero-image-slideshow {
        height: 65vh;
    }
    
    .page-faq .hero-image img,
    .page-faq .hero-image-slide img {
        height: 65vh;
    }
    
    .page-faq .hero-overlay {
        height: 65vh;
    }
    
    .page-faq .hero-section {
        height: 65vh;
        padding-top: 0;
    }
    
    /* Mentions / Confidentialité - 55vh */
    .page-mentions-legales .hero-wrapper,
    .page-confidentialite .hero-wrapper {
        height: 55vh;
    }
    
    .page-mentions-legales .hero-image,
    .page-confidentialite .hero-image,
    .page-mentions-legales .hero-image-slideshow,
    .page-confidentialite .hero-image-slideshow {
        height: 55vh;
    }
    
    .page-mentions-legales .hero-image img,
    .page-confidentialite .hero-image img,
    .page-mentions-legales .hero-image-slide img,
    .page-confidentialite .hero-image-slide img {
        height: 55vh;
    }
    
    .page-mentions-legales .hero-overlay,
    .page-confidentialite .hero-overlay {
        height: 55vh;
    }
    
    .page-mentions-legales .hero-section,
    .page-confidentialite .hero-section {
        height: 55vh;
        padding-top: 0;
    }
    
    /* Page 404 - 70vh */
    .page-404 .hero-wrapper,
    body.page-id-482 .hero-wrapper {
        height: 70vh;
    }
    
    .page-404 .hero-image,
    body.page-id-482 .hero-image {
        height: 70vh;
    }
    
    .page-404 .hero-image img,
    body.page-id-482 .hero-image img {
        height: 70vh;
    }
    
    .page-404 .hero-section,
    body.page-id-482 .hero-section {
        height: 70vh;
        padding-top: clamp(10rem, 20vw, 15rem); /* ← CHANGEMENT : Plus d'espace en haut */
        padding-bottom: 5rem;
    }
}

/* DESKTOP (1024px+) - Garde 100vh pour hero principal */
@media (min-width: 1024px) {
    .page-mentions-legales .hero-wrapper,
    .page-confidentialite .hero-wrapper {
        height: 60vh;
    }
    
    .page-mentions-legales .hero-image,
    .page-confidentialite .hero-image,
    .page-mentions-legales .hero-image-slideshow,
    .page-confidentialite .hero-image-slideshow {
        height: 60vh;
    }
    
    .page-mentions-legales .hero-image img,
    .page-confidentialite .hero-image img,
    .page-mentions-legales .hero-image-slide img,
    .page-confidentialite .hero-image-slide img {
        height: 60vh;
    }
    
    .page-mentions-legales .hero-overlay,
    .page-confidentialite .hero-overlay {
        height: 60vh;
    }
    
    .page-mentions-legales .hero-section,
    .page-confidentialite .hero-section {
        height: 60vh;
        padding-top: 0;
    }
}

/* DESKTOP (1024px+) - Garde 100vh pour hero principal */
@media (min-width: 1024px) {
    /* Mentions / Confidentialité - 60vh */
    .page-mentions-legales .hero-wrapper,
    .page-confidentialite .hero-wrapper {
        height: 60vh;
    }
    
    .page-mentions-legales .hero-image,
    .page-confidentialite .hero-image,
    .page-mentions-legales .hero-image-slideshow,
    .page-confidentialite .hero-image-slideshow {
        height: 60vh;
    }
    
    .page-mentions-legales .hero-image img,
    .page-confidentialite .hero-image img,
    .page-mentions-legales .hero-image-slide img,
    .page-confidentialite .hero-image-slide img {
        height: 60vh;
    }
    
    .page-mentions-legales .hero-overlay,
    .page-confidentialite .hero-overlay {
        height: 60vh;
    }
    
    .page-mentions-legales .hero-section,
    .page-confidentialite .hero-section {
        height: 60vh;
        padding-top: 0;
    }
    
    /* PAGE FAQ - 100vh sur desktop */
    .page-faq .hero-wrapper {
        height: 100vh;
    }
    
    .page-faq .hero-image,
    .page-faq .hero-image-slideshow {
        height: 100vh;
    }
    
    .page-faq .hero-image img,
    .page-faq .hero-image-slide img {
        height: 100vh;
    }
    
    .page-faq .hero-overlay {
        height: 100vh;
    }
    
    .page-faq .hero-section {
        height: 100vh;
        padding-top: 0;
    }
    
    /* PAGE 404 - 100vh sur desktop */
    .page-404 .hero-wrapper,
    body.page-id-482 .hero-wrapper {
        height: 100vh;
    }
    
    .page-404 .hero-image,
    body.page-id-482 .hero-image {
        height: 100vh;
    }
    
    .page-404 .hero-image img,
    body.page-id-482 .hero-image img {
        height: 100vh;
    }
    
    .page-404 .hero-section,
    body.page-id-482 .hero-section {
        height: 100vh;
        padding-top: clamp(10rem, 20vw, 15rem); /* ← CHANGEMENT : Plus d'espace en haut */
        padding-bottom: 10rem;
    }
}

/* ============================================
   HERO - HAUTEURS ADAPTÉES
   ============================================ */

/* HERO PRINCIPAL (Toutes les pages) - Par défaut */
.hero-wrapper {
    position: relative;
    width: 100vw;
    height: 70vh;
    overflow: hidden;
    padding-top: 0;
}

.hero-image,
.hero-image-slideshow {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 70vh;
    z-index: 1;
    overflow: hidden;
}

.hero-image img,
.hero-image-slide img {
    width: 100%;
    height: 70vh;
    object-fit: cover;
    object-position: center 30%;
}

.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 70vh;
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.24) 0%, rgba(0, 0, 0, 0.24) 100%);
    z-index: 2;
}

.hero-section {
    position: relative;
    z-index: 3;
    height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 0;
}

/* HERO 4X4 / CIRCUITS / CONTACT */
.hero-4x4-wrapper {
    position: relative;
    width: 100vw;
    height: 70vh;
    overflow: hidden;
}

.hero-4x4-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 70vh;
    z-index: 1;
    overflow: hidden;
}

.hero-4x4-image img {
    width: 100%;
    height: 70vh;
    object-fit: cover;
    object-position: center;
}

.hero-4x4-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.20) 0%, rgba(0, 0, 0, 0.20) 100%);
    z-index: 2;
}

.hero-4x4-section {
    position: relative;
    z-index: 3;
    height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 0;
}

/* HERO FAMILLE */
.hero-famille {
    position: relative;
    z-index: 3;
    height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 0;
}

/* ============================================
   RESPONSIVE - MOBILE SMALL (320px - 575px)
   ============================================ */
@media (max-width: 575px) {
    
    /* Toutes les pages - 40vh (BAISSÉ) */
    .hero-wrapper,
    .hero-4x4-wrapper,
    .page-faq .hero-wrapper,
    .page-mentions-legales .hero-wrapper,
    .page-confidentialite .hero-wrapper,
    .page-404 .hero-wrapper,
    body.page-id-482 .hero-wrapper {
        height: 65vh;
    }
    
    .hero-image,
    .hero-image-slideshow,
    .hero-4x4-image,
    .page-faq .hero-image,
    .page-faq .hero-image-slideshow,
    .page-mentions-legales .hero-image,
    .page-confidentialite .hero-image,
    .page-mentions-legales .hero-image-slideshow,
    .page-confidentialite .hero-image-slideshow,
    .page-404 .hero-image,
    body.page-id-482 .hero-image {
        height: 65vh;
    }
    
    .hero-image img,
    .hero-image-slide img,
    .hero-4x4-image img,
    .page-faq .hero-image img,
    .page-faq .hero-image-slide img,
    .page-mentions-legales .hero-image img,
    .page-confidentialite .hero-image img,
    .page-mentions-legales .hero-image-slide img,
    .page-confidentialite .hero-image-slide img,
    .page-404 .hero-image img,
    body.page-id-482 .hero-image img {
        height: 65vh;
        object-position: center center;
    }
    
    .hero-overlay,
    .hero-4x4-overlay,
    .page-faq .hero-overlay,
    .page-mentions-legales .hero-overlay,
    .page-confidentialite .hero-overlay {
        height: 65vh;
    }
    
    .hero-section,
    .hero-4x4-section,
    .hero-famille,
    .page-faq .hero-section,
    .page-mentions-legales .hero-section,
    .page-confidentialite .hero-section,
    .page-404 .hero-section,
    body.page-id-482 .hero-section {
        height: 65vh;
    }
    
    /* Page 404 - padding spécifique */
    .page-404 .hero-section,
    body.page-id-482 .hero-section {
        padding-top: clamp(6rem, 12vw, 10rem);
        padding-bottom: 1.5rem;
    }
}

/* ============================================
   RESPONSIVE - MOBILE MEDIUM (576px - 767px)
   ============================================ */
@media (min-width: 576px) and (max-width: 767px) {
    
    /* Toutes les pages - 50vh (BAISSÉ) */
    .hero-wrapper,
    .hero-4x4-wrapper,
    .page-faq .hero-wrapper,
    .page-mentions-legales .hero-wrapper,
    .page-confidentialite .hero-wrapper,
    .page-404 .hero-wrapper,
    body.page-id-482 .hero-wrapper {
        height: 70vh;
    }
    
    .hero-image,
    .hero-image-slideshow,
    .hero-4x4-image,
    .page-faq .hero-image,
    .page-faq .hero-image-slideshow,
    .page-mentions-legales .hero-image,
    .page-confidentialite .hero-image,
    .page-mentions-legales .hero-image-slideshow,
    .page-confidentialite .hero-image-slideshow,
    .page-404 .hero-image,
    body.page-id-482 .hero-image {
        height: 70vh;
    }
    
    .hero-image img,
    .hero-image-slide img,
    .hero-4x4-image img,
    .page-faq .hero-image img,
    .page-faq .hero-image-slide img,
    .page-mentions-legales .hero-image img,
    .page-confidentialite .hero-image img,
    .page-mentions-legales .hero-image-slide img,
    .page-confidentialite .hero-image-slide img,
    .page-404 .hero-image img,
    body.page-id-482 .hero-image img {
        height: 70vh;
    }
    
    .hero-overlay,
    .hero-4x4-overlay,
    .page-faq .hero-overlay,
    .page-mentions-legales .hero-overlay,
    .page-confidentialite .hero-overlay {
        height: 70vh;
    }
    
    .hero-section,
    .hero-4x4-section,
    .hero-famille,
    .page-faq .hero-section,
    .page-mentions-legales .hero-section,
    .page-confidentialite .hero-section,
    .page-404 .hero-section,
    body.page-id-482 .hero-section {
        height:70vh;
    }
    
    /* Page 404 - padding spécifique */
    .page-404 .hero-section,
    body.page-id-482 .hero-section {
        padding-top: clamp(7rem, 14vw, 11rem);
        padding-bottom: 2rem;
    }
}

/* ============================================
   RESPONSIVE - TABLET (768px - 1023px)
   ============================================ */
@media (min-width: 768px) and (max-width: 1023px) {
    
    /* Toutes les pages - 55vh (BAISSÉ) */
    .hero-wrapper,
    .hero-4x4-wrapper,
    .page-faq .hero-wrapper,
    .page-mentions-legales .hero-wrapper,
    .page-confidentialite .hero-wrapper,
    .page-404 .hero-wrapper,
    body.page-id-482 .hero-wrapper {
        height: 80vh;
    }
    
    .hero-image,
    .hero-image-slideshow,
    .hero-4x4-image,
    .page-faq .hero-image,
    .page-faq .hero-image-slideshow,
    .page-mentions-legales .hero-image,
    .page-confidentialite .hero-image,
    .page-mentions-legales .hero-image-slideshow,
    .page-confidentialite .hero-image-slideshow,
    .page-404 .hero-image,
    body.page-id-482 .hero-image {
        height: 80vh;
    }
    
    .hero-image img,
    .hero-image-slide img,
    .hero-4x4-image img,
    .page-faq .hero-image img,
    .page-faq .hero-image-slide img,
    .page-mentions-legales .hero-image img,
    .page-confidentialite .hero-image img,
    .page-mentions-legales .hero-image-slide img,
    .page-confidentialite .hero-image-slide img,
    .page-404 .hero-image img,
    body.page-id-482 .hero-image img {
        height: 80vh;
    }
    
    .hero-overlay,
    .hero-4x4-overlay,
    .page-faq .hero-overlay,
    .page-mentions-legales .hero-overlay,
    .page-confidentialite .hero-overlay {
        height: 80vh;
    }
    
    .hero-section,
    .hero-4x4-section,
    .hero-famille,
    .page-faq .hero-section,
    .page-mentions-legales .hero-section,
    .page-confidentialite .hero-section,
    .page-404 .hero-section,
    body.page-id-482 .hero-section {
        height: 80vh;
    }
    
    /* Page 404 - padding spécifique */
    .page-404 .hero-section,
    body.page-id-482 .hero-section {
        padding-top: clamp(8rem, 16vw, 12rem);
        padding-bottom: 3rem;
    }
}

/* ============================================
   RESPONSIVE - DESKTOP (1024px+)
   ============================================ */
@media (min-width: 1024px) {
    
    /* PAGE D'ACCUEIL + ESPRIT DU TREK - 100vh */
    .home .hero-wrapper,
    .esprit-trek .hero-wrapper {
        height: 100vh;
    }
    
    .home .hero-image,
    .home .hero-image-slideshow,
    .esprit-trek .hero-image,
    .esprit-trek .hero-image-slideshow {
        height: 100vh;
    }
    
    .home .hero-image img,
    .home .hero-image-slide img,
    .esprit-trek .hero-image img,
    .esprit-trek .hero-image-slide img {
        height: 100vh;
    }
    
    .home .hero-overlay,
    .esprit-trek .hero-overlay {
        height: 100vh;
    }
    
    .home .hero-section,
    .esprit-trek .hero-section {
        height: 100vh;
    }
    
    /* TOUTES LES AUTRES PAGES - 70vh */
    .hero-wrapper,
    .hero-4x4-wrapper,
    .page-faq .hero-wrapper,
    .page-mentions-legales .hero-wrapper,
    .page-confidentialite .hero-wrapper,
    .page-404 .hero-wrapper,
    body.page-id-482 .hero-wrapper {
        height: 80vh;
    }
    
    .hero-image,
    .hero-image-slideshow,
    .hero-4x4-image,
    .page-faq .hero-image,
    .page-faq .hero-image-slideshow,
    .page-mentions-legales .hero-image,
    .page-confidentialite .hero-image,
    .page-mentions-legales .hero-image-slideshow,
    .page-confidentialite .hero-image-slideshow,
    .page-404 .hero-image,
    body.page-id-482 .hero-image {
        height: 80vh;
    }
    
    .hero-image img,
    .hero-image-slide img,
    .hero-4x4-image img,
    .page-faq .hero-image img,
    .page-faq .hero-image-slide img,
    .page-mentions-legales .hero-image img,
    .page-confidentialite .hero-image img,
    .page-mentions-legales .hero-image-slide img,
    .page-confidentialite .hero-image-slide img,
    .page-404 .hero-image img,
    body.page-id-482 .hero-image img {
        height: 80vh;
    }
    
    .hero-overlay,
    .hero-4x4-overlay,
    .page-faq .hero-overlay,
    .page-mentions-legales .hero-overlay,
    .page-confidentialite .hero-overlay {
        height: 80vh;
    }
    
    .hero-section,
    .hero-4x4-section,
    .hero-famille,
    .page-faq .hero-section,
    .page-mentions-legales .hero-section,
    .page-confidentialite .hero-section,
    .page-404 .hero-section,
    body.page-id-482 .hero-section {
        height: 80vh;
    }
    
    /* Page 404 - padding spécifique */
    .page-404 .hero-section,
    body.page-id-482 .hero-section {
        padding-top: clamp(10rem, 20vw, 15rem);
        padding-bottom: 8rem;
    }
}

/* HERO SUBTITLE - CORRECTION RESPONSIVE */

.hero-subtitle {
    color: #FFF;
    text-align: center;
    font-family: Roboto, sans-serif;
    font-size: clamp(1.125rem, 1.67vw, 1.5rem);
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    align-self: stretch;
    padding-top: 7.5rem; /* Desktop par défaut */
}

/* RESPONSIVE - Ajustement du padding-top du sous-titre */

/* MOBILE SMALL (320px - 575px) */
@media (max-width: 575px) {
    .hero-subtitle {
        padding-top: 2rem; /* ← AJUSTÉ : Plus bas */
    }
    
    .hero-buttons {
        margin-top: 0.5rem; /* ← AJUSTÉ : Moins d'espace après */
    }
    .hero-section {
        padding-top: 2rem; /* ← AJOUT */
    }
    
    .hero-title {
        margin-top: 1rem; /* ← AJOUT */
    }
    .hero-buttons .btn:nth-child(3) {
        grid-column: 1 / -1;
        margin: 0 auto;
        width: auto;
        transform: translateX(-10%); /* ← AJOUT : Décale vers la gauche */
    }
}

/* MOBILE MEDIUM (576px - 767px) */
@media (min-width: 576px) and (max-width: 767px) {
    .hero-subtitle {
        padding-top: 2.5rem; /* ← AJUSTÉ */
    }
    
    .hero-buttons {
        margin-top: 1.75rem;
    }
}

/* TABLET (768px - 1023px) */
@media (min-width: 768px) and (max-width: 1023px) {
    .hero-subtitle {
        padding-top: 3rem; /* ← AJUSTÉ */
    }
    
    .hero-buttons {
        margin-top: 2rem;
    }
}

/* DESKTOP (1024px+) */
@media (min-width: 1024px) {
    .hero-subtitle {
        padding-top: 7.5rem; /* Garde l'original sur desktop */
    }
}

/* ============================================
   RESPONSIVE - HAUTEURS HERO PAGE HOME
   ============================================ */

/* MOBILE SMALL (320px - 575px) */
@media (max-width: 575px) {
    
    /* PAGE HOME - Hauteur plus grande */
    .home .hero-wrapper {
        height: 60vh; /* ← AUGMENTÉ (au lieu de 40vh) */
    }
    
    .home .hero-image,
    .home .hero-image-slideshow {
        height: 60vh;
    }
    
    .home .hero-image img,
    .home .hero-image-slide img {
        height: 60vh;
    }
    
    .home .hero-overlay {
        height: 60vh;
    }
    
    .home .hero-section {
        height: 60vh;
    }
    
   
}

/* MOBILE MEDIUM (576px - 767px) */
@media (min-width: 576px) and (max-width: 767px) {
    
    /* PAGE HOME - Hauteur plus grande */
    .home .hero-wrapper {
        height: 70vh; /* ← AUGMENTÉ (au lieu de 50vh) */
    }
    
    .home .hero-image,
    .home .hero-image-slideshow {
        height: 70vh;
    }
    
    .home .hero-image img,
    .home .hero-image-slide img {
        height: 70vh;
    }
    
    .home .hero-overlay {
        height: 70vh;
    }
    
    .home .hero-section {
        height: 70vh;
    }
    
   
}

/* TABLET (768px - 1023px) */
@media (min-width: 768px) and (max-width: 1023px) {
    
    /* PAGE HOME - Hauteur plus grande */
    .home .hero-wrapper {
        height: 80vh; /* ← AUGMENTÉ (au lieu de 55vh) */
    }
    
    .home .hero-image,
    .home .hero-image-slideshow {
        height: 80vh;
    }
    
    .home .hero-image img,
    .home .hero-image-slide img {
        height: 80vh;
    }
    
    .home .hero-overlay {
        height: 80vh;
    }
    
    .home .hero-section {
        height: 80vh;
    }
    
   
}



.avis {
    width: 100vw;
    background: rgba(143, 164, 51, 0.40);
    padding: 2.1875rem 0; /* 35px */
}

.avis .container {
    position: relative;
}

.avis-title {
    color: #252525;
    font-family: Montserrat, sans-serif;
    font-size: clamp(1.5rem, 2.22vw, 2rem);
    font-style: normal;
    font-weight: 700;
    line-height: 2.25rem;
    margin: 0;
    text-align: center;
}

.avis-carousel {
    position: relative;
    width: 100%;
    min-height: 25rem; /* 400px */
    overflow: hidden;
}

.avis-slides-wrapper {
    display: flex;
    transition: transform 0.5s ease-in-out;
}

.avis-slide {
    min-width: 100%;
    flex-shrink: 0;
    position: relative;
}

.avis-image {
    margin-top: 3.75rem;     /* 60px */
    margin-left: 28.75%;     /* 414px / 1440px */
    display: block;
    width: 29.17%;           /* 420px / 1440px */
    height: 15.625rem;       /* 250px */
    transform: rotate(3.041deg);
    border-radius: 26px;
    position: relative;
    z-index: 2;
}


.famille-blue-image,
.footer-guide-image img,
.image-section-bottom-img,
.houssaine-sticky-img {
    border-radius: 10px;
}

.avis-feu {
    margin-top: -12.24rem;   /* -195.98px */
    margin-left: 14.51%;     /* 209px / 1440px */
    width: 29.17%;           /* 420px / 1440px */
    height: 15.625rem;       /* 250px */
    transform: rotate(-1.69deg);
    border-radius: 26px;
    display: block;
    z-index: 1;
}

.avis-text {
    position: absolute;
    top: calc(3.75rem + 9.22rem);           /* 60px + 147.46px */
    left: calc(28.75% + 28.55% + 2.5%);    /* 414px + 411.147px + 36px */
    color: #000;
    font-family: Roboto, sans-serif;
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 0.02rem;
    max-width: 27.78%;  /* 400px / 1440px */
    margin: 0;
}



.avis-author {
    position: absolute;
    top: calc(3.75rem + 19.97rem);
    left: calc(28.75% + 28.55% + 2.5%);
    color: #000;
    font-family: Roboto, sans-serif;
    font-size: 1rem;
    font-style: normal;
    font-weight: 600;
    line-height: 1.25rem;
    letter-spacing: 0.02rem;
    margin: 0;
}

.avis-arrow-left,
.avis-arrow-right {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 10;
}

.avis-arrow-left {
    left: 5.56%; /* 80px / 1440px */
}

.avis-arrow-right {
    right: 5.56%;
}

.avis-arrow-left img,
.avis-arrow-right img {
    display: block;
}

.avis-dots {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    margin-top: 1.5625rem;
    position: relative;
    z-index: 10;
}

.avis-dot {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    position: relative;
}

.avis-dot .dot-active {
    display: none;
}

.avis-dot .dot-inactive {
    display: block;
}

.avis-dot.active .dot-active {
    display: block;
}

.avis-dot.active .dot-inactive {
    display: none;
}

/* ============================================
   SECTION AVIS - RESPONSIVE AVEC IMAGES RÉDUITES
   ============================================ */

/* ============================================
   MOBILE SMALL (320px - 575px)
   ============================================ */
@media (max-width: 575px) {
    
    .avis {
        padding: 2rem 0;
    }
    
    .avis-title {
        font-size: 1.25rem;
        margin-bottom: 1.5rem;
    }
    
    .avis-carousel {
        min-height: 380px; /* ← RÉDUIT */
        overflow: hidden;
    }
    
    .avis-slide {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 0 5%;
        position: relative;
        height: 380px; /* ← RÉDUIT */
    }
    
    /* Image principale (superposée au-dessus) - PLUS PETITE */
    .avis-image {
        position: absolute;
        top: 5px;
        left: 60%;
        transform: translateX(-50%) rotate(3.041deg);
        margin: 0;
        width: 55%; /* ← RÉDUIT : 65% → 55% */
        max-width: 180px; /* ← RÉDUIT : 220px → 180px */
        height: 110px; /* ← RÉDUIT : 140px → 110px */
        z-index: 2;
        object-fit: cover;
    }
    
    /* Image feu (en dessous) - PLUS PETITE */
    .avis-feu {
        position: absolute;
        top: 25px;
        left: 40%;
        transform: translateX(-50%) rotate(-1.69deg);
        margin: 0;
        width: 55%; /* ← RÉDUIT : 65% → 55% */
        max-width: 180px; /* ← RÉDUIT : 220px → 180px */
        height: 110px; /* ← RÉDUIT : 140px → 110px */
        z-index: 1;
        object-fit: cover;
    }
    
    /* Texte en dessous des images - LARGEUR RÉDUITE */
    .avis-text {
        position: absolute;
        top: 170px;
        left: 50%;
        transform: translateX(-50%);
        max-width: 75%; /* ← RÉDUIT : 90% → 75% */
        width: 75%; /* ← RÉDUIT : 90% → 75% */
        text-align: center;
        font-size: 0.875rem;
        line-height: 1.4;
        margin: 0;
    }
    
    /* Auteur en bas */
    .avis-author {
        position: absolute;
        top: 340px;
        left: 50%;
        transform: translateX(-50%);
        text-align: center;
        font-size: 0.875rem;
        font-weight: 600;
        margin: 0;
        max-width: 75%; /* ← AJOUT : Limite aussi la largeur */
    }
    
    /* Flèches centrées verticalement */
    .avis-arrow-left,
    .avis-arrow-right {
        top: 50%;
        transform: translateY(-50%);
    }
    
    .avis-arrow-left {
        left: 2%;
    }
    
    .avis-arrow-right {
        right: 2%;
    }
    
    .avis-arrow-left img,
    .avis-arrow-right img {
        width: 2rem;
        height: auto;
    }
    
    .avis-dots {
        margin-top: 1rem;
    }
}

/* ============================================
   MOBILE MEDIUM (576px - 767px)
   ============================================ */
@media (min-width: 576px) and (max-width: 767px) {
    
    .avis {
        padding: 2.5rem 0;
    }
    
    .avis-title {
        font-size: 1.5rem;
        margin-bottom: 2rem;
    }
    
    .avis-carousel {
        min-height: 440px; /* ← RÉDUIT */
        overflow: hidden;
    }
    
    .avis-slide {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 0 5%;
        position: relative;
        height: 440px; /* ← RÉDUIT */
    }
    
    /* Image principale - PLUS PETITE */
    .avis-image {
        position: absolute;
        top: 20px;
        left: 60%;
        transform: translateX(-50%) rotate(3.041deg);
        margin: 0;
        width: 50%; /* ← RÉDUIT : 60% → 50% */
        max-width: 220px; /* ← RÉDUIT : 260px → 220px */
        height: 135px; /* ← RÉDUIT : 160px → 135px */
        z-index: 2;
        object-fit: cover;
    }
    
    /* Image feu - PLUS PETITE */
    .avis-feu {
        position: absolute;
        top: 35px;
        left: 40%;
        transform: translateX(-50%) rotate(-1.69deg);
        margin: 0;
        width: 50%; /* ← RÉDUIT : 60% → 50% */
        max-width: 220px; /* ← RÉDUIT : 260px → 220px */
        height: 135px; /* ← RÉDUIT : 160px → 135px */
        z-index: 1;
        object-fit: cover;
    }
    
    /* Texte */
    .avis-text {
        position: absolute;
        top: 205px;
        left: 50%;
        transform: translateX(-50%);
        max-width: 70%; /* ← RÉDUIT : 85% → 70% */
        width: 70%; /* ← RÉDUIT : 85% → 70% */
        text-align: center;
        font-size: 0.9375rem;
        line-height: 1.5;
        margin: 0;
    }
    
    /* Auteur */
    .avis-author {
        position: absolute;
        top: 360px;
        left: 50%;
        transform: translateX(-50%);
        text-align: center;
        font-size: 0.9375rem;
        font-weight: 600;
        margin: 0;
        max-width: 70%; /* ← AJOUT */
    }
    
    /* Flèches centrées verticalement */
    .avis-arrow-left,
    .avis-arrow-right {
        top: 50%;
        transform: translateY(-50%);
    }
    
    .avis-arrow-left {
        left: 3%;
    }
    
    .avis-arrow-right {
        right: 3%;
    }
    
    .avis-arrow-left img,
    .avis-arrow-right img {
        width: 2.5rem;
        height: auto;
    }
    
    .avis-dots {
        margin-top: 1.25rem;
    }
}

/* ============================================
   TABLET (768px - 1023px)
   ============================================ */
@media (min-width: 768px) and (max-width: 1360px) {
    
    .avis {
        padding: 3rem 0;
    }
    
    .avis-title {
        font-size: 1.75rem;
        margin-bottom: 2.5rem;
    }
    
    .avis-carousel {
        min-height: 500px; /* ← RÉDUIT */
        overflow: hidden;
    }
    
    .avis-slide {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 0 5%;
        position: relative;
        height: 500px; /* ← RÉDUIT */
    }
    
    /* Image principale - PLUS PETITE */
    .avis-image {
        position: absolute;
        top: 20px;
        left: 60%;
        transform: translateX(-50%) rotate(3.041deg);
        margin: 0;
        width: 45%; /* ← RÉDUIT : 55% → 45% */
        max-width: 280px; /* ← RÉDUIT : 320px → 280px */
        height: 170px; /* ← RÉDUIT : 200px → 170px */
        z-index: 2;
        object-fit: cover;
    }
    
    /* Image feu - PLUS PETITE */
    .avis-feu {
        position: absolute;
        top: 45px;
        left: 40%;
        transform: translateX(-50%) rotate(-1.69deg);
        margin: 0;
        width: 45%; /* ← RÉDUIT : 55% → 45% */
        max-width: 280px; /* ← RÉDUIT : 320px → 280px */
        height: 170px; /* ← RÉDUIT : 200px → 170px */
        z-index: 1;
        object-fit: cover;
    }
    
    /* Texte */
   .avis-text {
        position: absolute;
        top: 250px;
        left: 50%;
        transform: translateX(-50%);
        max-width: 65%; /* ← RÉDUIT : 80% → 65% */
        width: 65%; /* ← RÉDUIT : 80% → 65% */
        text-align: center;
        font-size: 1rem;
        line-height: 1.6;
        margin: 0;
    }
    
    /* Auteur */
    .avis-author {
        position: absolute;
        top: 410px;
        left: 50%;
        transform: translateX(-50%);
        text-align: center;
        font-size: 1rem;
        font-weight: 600;
        margin: 0;
        max-width: 65%; /* ← AJOUT */
    }
    
    /* Flèches centrées verticalement */
    .avis-arrow-left,
    .avis-arrow-right {
        top: 50%;
        transform: translateY(-50%);
    }
    
    .avis-arrow-left {
        left: 4%;
    }
    
    .avis-arrow-right {
        right: 4%;
    }
    
    .avis-arrow-left img,
    .avis-arrow-right img {
        width: 3rem;
        height: auto;
    }
    
    .avis-dots {
        margin-top: 1.5rem;
    }
}



/* ============================================
   FORMULAIRE CONTACT FORM 7 - ADAPTATION
   ============================================ */

/* Réinitialisation des styles par défaut de CF7 */
.contact-2col-right .wpcf7 {
    width: 100%;
}

.contact-2col-right .wpcf7 form {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

/* Utilise vos classes contact-form-row existantes */
.contact-2col-right .wpcf7 .contact-form-row {
    display: flex;
    gap: 2.85%;
}

.contact-2col-right .wpcf7 .contact-form-field {
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Labels - hérite de votre style existant */
.contact-2col-right .wpcf7 .contact-form-field label {
    color: #252525;
    font-family: Montserrat, sans-serif;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 2.25rem;
    display: flex;
    flex-direction: column;
}

/* Inputs - utilise votre style existant */
.contact-2col-right .wpcf7 input.contact-input,
.contact-2col-right .wpcf7 textarea.contact-textarea {
    width: 100%;
    padding: 0.75rem 1rem;
    border: none;
    border-radius: 10px;
    background: rgba(93, 93, 93, 0.40);
    font-family: Roboto, sans-serif;
    font-size: 1rem;
    color: #000;
    margin-top: 0.5rem;
    box-sizing: border-box;
}

.contact-2col-right .wpcf7 input.contact-input:focus,
.contact-2col-right .wpcf7 textarea.contact-textarea:focus {
    outline: none;
    background: rgba(93, 93, 93, 0.60);
}

.contact-2col-right .wpcf7 textarea.contact-textarea {
    resize: vertical;
    min-height: 12.5rem;
}

/* Bouton submit - utilise vos classes .btn .btn-black existantes */
.contact-2col-right .wpcf7 input[type="submit"].contact-form-submit {
    align-self: flex-start;
    margin-top: 0;
}

/* Messages d'erreur de validation */
.contact-2col-right .wpcf7-not-valid-tip {
    color: #dc3545;
    font-size: 0.875rem;
    margin-top: 0.25rem;
    display: block;
}

/* Messages de confirmation/erreur globaux */
.contact-2col-right .wpcf7-response-output {
    border: 2px solid #000;
    border-radius: 10px;
    padding: 1rem;
    margin: 1.5rem 0 0 0;
    font-family: Roboto, sans-serif;
    font-size: 1rem;
}

.contact-2col-right .wpcf7-mail-sent-ok {
    border-color: #28a745;
    background: rgba(40, 167, 69, 0.1);
    color: #28a745;
}

.contact-2col-right .wpcf7-mail-sent-ng,
.contact-2col-right .wpcf7-validation-errors,
.contact-2col-right .wpcf7-acceptance-missing {
    border-color: #dc3545;
    background: rgba(220, 53, 69, 0.1);
    color: #dc3545;
}

/* Spinner de chargement */
.contact-2col-right .wpcf7-spinner {
    margin-left: 1rem;
}

/* Cache les messages de validation pendant l'envoi */
.contact-2col-right .wpcf7 form.invalid .wpcf7-response-output,
.contact-2col-right .wpcf7 form.unaccepted .wpcf7-response-output,
.contact-2col-right .wpcf7 form.submitting .wpcf7-response-output {
    display: none;
}

/* Ajustements spécifiques pour le wrapper de formulaire CF7 */
.contact-2col-right .wpcf7 > form > p {
    margin: 0;
}

/* ============================================
   RESPONSIVE CONTACT FORM 7
   ============================================ */

@media (max-width: 1023px) {
    .contact-2col-right .wpcf7 .contact-form-row {
        flex-direction: column;
        gap: clamp(1rem, 3vw, 1.25rem);
    }
    
    .contact-2col-right .wpcf7 .contact-form-field {
        width: 100%;
    }
    
    .contact-2col-right .wpcf7 .contact-form-field label {
        font-size: clamp(1rem, 2.5vw, 1.25rem);
        line-height: 1.5;
    }
    
    .contact-2col-right .wpcf7 input.contact-input,
    .contact-2col-right .wpcf7 textarea.contact-textarea {
        font-size: clamp(0.875rem, 2.5vw, 1rem);
        padding: clamp(0.625rem, 2vw, 0.875rem);
    }
    
    .contact-2col-right .wpcf7 textarea.contact-textarea {
        min-height: clamp(8rem, 20vw, 12rem);
    }
    
    .contact-2col-right .wpcf7 input[type="submit"].contact-form-submit {
        align-self: center;
        width: auto;
    }
}

@media (min-width: 1024px) {
    .contact-2col-right .wpcf7 .contact-form-row {
        flex-direction: row;
        gap: 2.85%;
    }
    
    .contact-2col-right .wpcf7 input[type="submit"].contact-form-submit {
        align-self: flex-start;
    }
}

/* ============================================
   BOUTON CONTACT FORM 7 - AVEC STYLE SVG
   ============================================ */

/* Wrapper pour le bouton avec les points */
.contact-2col-right .wpcf7 .wpcf7-submit-wrapper {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 2.5rem;
    margin-top: 1rem;
    position: relative;
}

/* Bouton submit - style identique à .btn.btn-black */
.contact-2col-right .wpcf7 input[type="submit"] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 3.4375rem;
    padding: 0;
    font-size: 1rem;
    font-family: Roboto, sans-serif;
    font-weight: 500;
    color: #000;
    background: transparent;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 1;
}

/* Background SVG sur le bouton */
.contact-2col-right .wpcf7 input[type="submit"]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 55'%3E%3Cpath d='M10,0 L190,0 Q200,0 200,10 L200,45 Q200,55 190,55 L10,55 Q0,55 0,45 L0,10 Q0,0 10,0 Z' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat;
    z-index: -1;
    padding: 0 3rem;
    min-width: max-content;
}

.contact-2col-right .wpcf7 input[type="submit"]:hover {
    transform: translateY(-2px);
}

.contact-2col-right .wpcf7 input[type="submit"]:hover::before {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* Points blancs avant et après le bouton */
.contact-2col-right .wpcf7 .wpcf7-submit-wrapper::before,
.contact-2col-right .wpcf7 .wpcf7-submit-wrapper::after {
    content: '';
    width: 2.5rem;
    height: 2.5rem;
    background: url('<?php echo get_template_directory_uri(); ?>/img/Accueil/point blanc.svg') center/contain no-repeat;
    flex-shrink: 0;
}

/* Point gauche */
.contact-2col-right .wpcf7 .wpcf7-submit-wrapper::before {
    order: -1;
}

/* Point droit */
.contact-2col-right .wpcf7 .wpcf7-submit-wrapper::after {
    order: 1;
}

/* Responsive */
@media (max-width: 1023px) {
    .contact-2col-right .wpcf7 .wpcf7-submit-wrapper {
        justify-content: center;
        gap: 1.5rem;
    }
    
    .contact-2col-right .wpcf7 .wpcf7-submit-wrapper::before,
    .contact-2col-right .wpcf7 .wpcf7-submit-wrapper::after {
        width: 2rem;
        height: 2rem;
    }
}



.logo img {
    max-width: 100%;
    height: auto;
    display: block;
    
    /* Logo BLANC par défaut */
    filter: brightness(0) invert(1);
    -webkit-filter: brightness(0) invert(1);
    /* Force le rendu propre sur Safari */
    mix-blend-mode: screen; /* ← IMPORTANT : Rend le fond transparent */
}

/* Logo NOIR sur fond blanc */
.header.header-on-white .logo img {
    filter: brightness(0);
    -webkit-filter: brightness(0);
    mix-blend-mode: multiply; /* ← Change le mode de fusion */
}

@media (min-width: 1024px) {
/* FIX : Limite la largeur du texte pour ne pas qu'il touche la carte */
.haut-atlas-col-text {
    flex: 1;
    max-width: 50%; /* ← Limite la largeur du texte à 50% */
}

.haut-atlas-text {
    color: #000;
    font-family: Roboto;
    font-size: 2.1875rem;
    font-style: normal;
    font-weight: 400;
    line-height: 117%;
    word-wrap: break-word; /* ← Force le retour à la ligne automatique */
    overflow-wrap: break-word; /* ← Compatibilité */
}

}