/*
Theme Name: Inaeri
Template: twentytwentyone
Version: 1.2
*/

/* ---------------------------------------------------------------------------- */

/* ============================= */
/* CTA — PRIMARY (global)        */
/* ============================= */

.inaeri-cta{
  display: inline-block;
  padding: 14px 18px;

  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;

  border-radius: 6px;
  border: none;

  cursor: pointer;

  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    background-color 0.15s ease;
}

.inaeri-cta:active{
  transform: translateY(1px);
}

/* Gold */
.inaeri-cta--gold{
  background: #f2c94c;
  color: #111;
  box-shadow: 0 0 0 1px #d4b23c;
}

/* Dark */
.inaeri-cta--dark{
  background: #111;
  color: #fff;
  box-shadow: 0 0 0 1px #111;
}

/* ============================= */
/* GLOBAL FOCUS FIX — SAFE       */
/* ============================= */

/* 1) On enlève UNIQUEMENT les outlines moches */
:where(
  a,
  button,
  summary,
  [role="button"],
  [tabindex]
):focus {
  outline: none !important;
}

/* 2) Focus souris → rien */
:where(
  a,
  button,
  summary,
  [role="button"],
  [tabindex]
):focus:not(:focus-visible) {
  outline: none !important;
}

/* 3) Focus clavier → focus visible propre */
:where(
  a,
  button,
  summary,
  [role="button"],
  [tabindex]
):focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}


.home-hero,
.home-reviews,
.home-signature,
.home-tours {
  margin-bottom: 1rem !important;
}

.home-reviews,
.home-signature,
.home-tours,
.home-manifesto {
  margin-top: 1rem !important;
}

/* ==================================================
   HOME — SECTION ALIGNMENT (UTIL)
   ================================================== */

.home-section--centered {
  text-align: center;
}

.home-section--centered .home-section__content {
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}

.home-section--left {
  text-align: left;
}

/* ---------------------- HEADER --------------------------------------- */
/* =========================================================
   1. RESET — HEADER ONLY
   ========================================================= */

.inaeri-header,
.inaeri-header * {
  box-sizing: border-box;
}

.inaeri-header ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.inaeri-header a {
  text-decoration: none !important;
  color: inherit;
}

/* =========================================================
   2. HEADER STRUCTURE
   ========================================================= */

.inaeri-header {
  width: 100%;
  position: sticky;
  top: 0;
  z-index: 1000;

  background-color: rgba(207, 227, 217, 0.9);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);

  border-bottom: 1px solid rgba(0,0,0,0.06);

  transition:
    background-color 0.25s ease,
    box-shadow 0.25s ease;
}

.inaeri-header__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* =========================================================
   3. LOGO
   ========================================================= */

.inaeri-logo,
.inaeri-logo img {
  margin: 0;
  padding: 0;
  line-height: 1;
}

.inaeri-logo {
  display: flex;
  align-items: center;
  font-size: 1.2rem;
  font-weight: 600;
}

.inaeri-logo img,
.custom-logo {
  height: 92px;
  width: auto;
  display: block;
  filter:
    drop-shadow(0 1px 0 rgba(255,255,255,0.85))
    drop-shadow(0 3px 10px rgba(0,0,0,0.12));
}

/* =========================================================
   4. NAV — BASE STRUCTURE
   ========================================================= */

.inaeri-header__nav {
  display: block;
}

.inaeri-menu {
  display: flex;
  gap: 32px;
}

.inaeri-menu li {
  position: relative;
}

.inaeri-menu a {
  margin: 0;
  padding: 0;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  height: 100%;
  position: relative;
  transition: opacity 0.2s ease;
}

.inaeri-menu a:hover {
  opacity: 0.75;
}

/* =========================================================
   5. BURGER
   ========================================================= */

.inaeri-burger {
  display: none;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}

.inaeri-burger span {
  display: block;
  width: 22px;
  height: 2px;
  background: currentColor;
  margin: 4px 0;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

/* =========================================================
   6. DROPDOWN — CORE SYSTEM
   ========================================================= */

.inaeri-menu .sub-menu {
  padding-left: 16px;
}

@media (max-width: 768px) {
  .inaeri-menu .sub-menu {
    display: none;
  }
}

.inaeri-menu li.is-open > .sub-menu {
  display: block;
}

@media (min-width: 769px) {

  .inaeri-menu .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background: #fff;
    padding: 16px 0;
    min-width: 260px;
    box-shadow: 0 12px 28px rgba(0,0,0,0.08);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition:
      opacity 0.25s ease,
      transform 0.25s ease,
      visibility 0.25s ease;
    z-index: 999;
  }

  .inaeri-menu li.is-open > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

  .inaeri-menu .sub-menu li {
    padding: 0 24px;
  }

  .inaeri-menu .sub-menu a {
    display: block;
    padding: 8px 0;
    font-size: 0.95rem;
    line-height: 1.4;
  }

  .inaeri-menu .sub-menu .sub-menu {
    top: 0;
    left: 100%;
    right: auto;
  }

  .inaeri-menu .sub-menu .sub-menu.open-left {
    left: auto;
    right: 100%;
  }
}

.inaeri-header__nav .sub-menu {
  border: none;
}

/* =========================================================
   7. RESPONSIVE LAYOUT
   ========================================================= */

@media (max-width: 768px) {

  .inaeri-burger {
    display: block;
  }

  .inaeri-header__nav {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    padding: 24px;
    background: #fff;
    z-index: 1001;
    opacity: 0;
    transform: translateY(-12px);
    pointer-events: none;
    transition:
      opacity 0.35s ease-out,
      transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
  }

  .inaeri-menu {
    flex-direction: column;
    gap: 16px;
  }

  .inaeri-menu a {
    font-size: 1.1rem;
  }

  .inaeri-logo img,
  .custom-logo {
    height: 72px;
  }
}

@media (min-width: 769px) {
  .inaeri-burger {
    display: none;
  }
}

/* =========================================================
   8. STATES
   ========================================================= */

.inaeri-header.is-open .inaeri-header__nav {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.inaeri-header.is-open .inaeri-burger span:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}

.inaeri-header.is-open .inaeri-burger span:nth-child(2) {
  opacity: 0;
}

.inaeri-header.is-open .inaeri-burger span:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

body:not(.home) .inaeri-header,
body.home.scrolled .inaeri-header {
  box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}

/* =========================================================
   9. MENU ITEM INDICATOR (Stronger & cleaner)
   ========================================================= */

.inaeri-menu .menu-item-has-children > a::after {
  content: "▾";
  font-size: 0.85rem;
  margin-left: 8px;
  opacity: 0.75;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.inaeri-menu .menu-item-has-children > a:hover::after {
  opacity: 1;
}

.inaeri-menu li.is-open > a::after {
  transform: rotate(180deg);
}

/* =========================================================
   Premium link styling (desktop + mobile)
   ========================================================= */

.inaeri-menu > li > a::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s ease;
}

/* Hover (desktop) */
@media (min-width: 769px) {
  .inaeri-menu > li > a:hover::before {
    transform: scaleX(1);
  }
}

/* Active state (desktop + mobile) */
.inaeri-menu > li.current-menu-item > a::before {
  transform: scaleX(1);
}

/* =========================================================
   LANG SWITCH — Desktop refined capsule
   ========================================================= */

.inaeri-lang-switch {
  margin-left: 32px;
  display: flex;
  align-items: center;
}

.inaeri-lang-switch a {
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  padding: 6px 12px;
  border: 1px solid rgba(0,0,0,0.12);
  border-radius: 999px;
  background: rgba(255,255,255,0.6);
  transition: 
    background 0.2s ease,
    border-color 0.2s ease,
    transform 0.15s ease;
}

/* Désactive le soulignement premium */
.inaeri-lang-switch a::before {
  display: none !important;
}

.inaeri-lang-switch a:hover {
  background: rgba(255,255,255,0.9);
  border-color: rgba(0,0,0,0.25);
  transform: translateY(-1px);
}

@media (max-width: 768px) {
  .inaeri-lang-switch {
    margin-left: 0;
  }

  .inaeri-lang-switch a {
    border: none;
    background: transparent;
    padding: 0;
    font-size: 0.95rem;
  }
}


/* ---------------------------------------------------------------------------- */


/* ==================================================
   HOME – LAYOUT
   ================================================== */

.home-container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px;
}

.home-hero,
.home-tours,
.home-values {
  padding: 80px 0;
}

/* ---------------------------------------------------------------------------- */

/* ==================================================
   TOUR CARD (COMPONENT)
   ================================================== */

article.tour-card{
  display: flex;
  flex-direction: column;
  padding: 24px;

  border: none !important;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.12);
  background: #fff;
  border-radius: 3px;

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

article.tour-card--featured{
  box-shadow: 0 0 0 2px rgba(0,0,0,0.18);
}

/* TITRE */
article.tour-card .tour-card__title{
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1.35;
  margin: 10px 0 14px;
}

/* Lien titre — éditorial */
article.tour-card .tour-card__title a{
  color: inherit;
  text-decoration: none;
}

/* 🔑 UNDERLINE UNIQUEMENT AU FOCUS CLAVIER */
article.tour-card .tour-card__title a:focus-visible{
  text-decoration: underline;
  outline: none;
}

.tour-card__desc{
  flex-grow: 1;
  opacity: 0.85;
  margin-bottom: 20px;
}

.tour-card__footer{
  margin-top: auto;
}

.tour-card__price-original{
  margin-right: 8px;
  font-weight: 400;
  text-decoration: line-through;
  opacity: 0.6;
}

.tour-card__price-current{
  font-weight: 600;
  font-size: 1.05rem;
}

.tour-card__price-from {
  font-size: 0.8em;
  font-weight: 400;
  opacity: 0.55;
  margin-right: 0.25rem;
}



/* ============================= */
/* HOVER + FOCUS (DESKTOP ONLY)  */
/* ============================= */

@media (hover: hover) and (pointer: fine){

  article.tour-card:hover{
    transform: translateY(-2px);
    box-shadow:
      0 6px 18px rgba(0,0,0,0.12),
      0 0 0 1px rgba(0,0,0,0.18);
  }

  article.tour-card:focus-within{
    box-shadow: 0 0 0 2px #111;
  }
}

/* ==================================================
   TOUR CARD — COMPACT VARIANT
   ================================================== */

article.tour-card--compact{
  padding: 16px;
}

article.tour-card--compact .tour-card__media{
  margin: -16px -16px 12px;
}

article.tour-card--compact .tour-card__title{
  font-size: 1.1rem;
  margin: 8px 0 10px;
}

article.tour-card--compact .tour-card__desc{
  font-size: 0.95rem;
  margin-bottom: 14px;
}

/* ==================================================
   TOURS — GRID / COLLECTION
   ================================================== */

.home-tours__grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 32px;
  margin-top: 40px;
}


/* ==================================================
   TOURS — RELATED
   ================================================== */

.related-tours {
  margin-top: 64px;
  padding-bottom: 64px;
}

/* Cadre carré identique sur chaque carte */
.related-tours article.tour-card--home .tour-card__media {
  flex: none;
  overflow: hidden;
}

.related-tours .tour-card__media > a {
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

.related-tours article.tour-card--home .tour-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Prix et bouton alignés au bas des cartes */
.related-tours article.tour-card--home .tour-card__footer {
  margin-top: auto;
  padding-top: 16px;
  flex-wrap: wrap;
}

.related-tours__card {
  min-width: 0;
}

.tour-card__editorial-group {
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 0.4rem;
  opacity: 0.7;
}



/* ==================================================
   TOUR CARD — MEDIA
   ================================================== */

.tour-card__media{
  position: relative;
  margin: -24px -24px 16px;
  overflow: hidden;
  border-radius: 6px 6px 0 0;
}

.tour-card__media img{
  display: block;
  width: 100%;
  height: auto;
}

/* BADGES — media */
.tour-card__badge{
  position: absolute;
  z-index: 3;

  padding: 6px 10px;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1;

  background: rgba(255,255,255,0.9);
  color: #111;
  border-radius: 999px;

  opacity: 1; /* empêche tout effet hover existant */
}

/* PROMO BADGE */
.tour-card__promo{
  position: absolute;
  top: 12px;
  left: 12px;

  padding: 8px 12px;          
  font-size: 0.85rem;         
  font-weight: 600;
  line-height: 1;

  background: #f2c94c;
  color: #111;
  border-radius: 999px;

  z-index: 2;
  opacity: 1;
}

/* Duration */
.tour-card__badge--duration{
  bottom: 12px;
  left: 12px;

  background: rgba(17,17,17,0.85);
  color: #fff;
}

/* Mobile : on laisse respirer le badge */
@media (max-width: 900px){
  .tour-card__media{
    overflow: visible;
  }
}

/* ==================================================
   TOUR CARD — HOME (MOBILE FIRST)
   ================================================== */

article.tour-card--home {
  padding: 12px; /* plus dense */
}

/* Image quasi carrée, dominante */
article.tour-card--home .tour-card__media {
  margin: -12px -12px 12px;
}

article.tour-card--home .tour-card__media img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

/* On enlève le résumé sur la home */
article.tour-card--home .tour-card__desc {
  display: none;
}

/* Titre plus compact */
article.tour-card--home .tour-card__title {
  font-size: 1.15rem;
  font-weight: 500;
  line-height: 1.35;
  margin: 0.75rem 0 0.5rem;
}

/* Footer plus serré */
article.tour-card--home .tour-card__footer {
   margin-top: auto;
}

.tour-card--home .tour-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.tour-card--home .tour-card__price {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  white-space: nowrap;
}

.tour-card__duration {
  font-size: 0.85rem;
  opacity: 0.7;
  margin: 0 0 0.75rem;
}

/* ---------------------------------------------------------------------------- */

/* SECTION */
.home-experiences {
  padding: clamp(4rem, 6vw, 6rem) 0;
}

/* GRID */
.home-experiences__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 28px;
  margin-top: 48px;
}

/* CARD */
.experience-card {
  padding: 28px;
  background: #fff;

  /* 👉 plus premium */
  border: 1px solid rgba(0,0,0,0.06);
  border-radius: 8px;

  text-align: left; /* 🔑 important */

  transition: all 0.2s ease;
}

/* HOVER subtil */
@media (hover: hover) {
  .experience-card:hover {
    transform: translateY(-2px);
    border-color: rgba(0,0,0,0.12);
  }
}

/* TITLE = label */
.experience-card h3 {
  font-size: 0.95rem;
  font-weight: 500;
  opacity: 0.6;
  margin-bottom: 18px;
}

/* LINK = CTA principal */
.experience-link,
.experience-link:link,
.experience-link:visited,
.experience-link:hover,
.experience-link:active,
.experience-link:focus {
  display: inline;
  text-decoration-line: underline !important;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.22em;
  text-decoration-skip-ink: auto;
}

/* HOVER CTA */
.experience-link:hover {
  opacity: 0.7;
}

/* COMING SOON */
.experience-card.is-coming {
  opacity: 0.45;
}

.experience-soon {
  font-size: 0.9rem;
  font-style: italic;
}



/* ---------------------------------------------------------------------------- */


/* ==================================================
   VALUES
   ================================================== */

.home-values ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 16px;
}

.home-values li {
  padding: 16px;
  border: 1px solid currentColor;
  text-align: center;
}

/* ---------------------------------------------------------------------------- */


/* ==================================================
   HERO – CMS IMAGE (VERSION UNIQUE)
   ================================================== */

.home-hero {
  position: relative;
  min-height: 80vh;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  overflow: hidden;
}

.home-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.home-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-hero .home-container {
  position: relative;
  z-index: 2;
  color: #fff;
}

.home-hero h1 {
  font-size: 2.2rem;
  line-height: 1.2;
  letter-spacing: -0.01em;
  margin-bottom: 16px;
}

.home-hero p {
  font-size: 1.1rem;
  max-width: 640px;
  opacity: 0.85;
}

/* CTA */

.home-hero__cta {
  margin-top: 32px;
}

.home-cta {
  display: inline-block;
  padding: 12px 24px;
  border: 2px solid #fff;
  color: #fff;
  text-decoration: none;
  font-weight: 500;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.home-cta:hover {
  background: #fff;
  color: #000;
}

/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 768px) {

  .home-hero {
    min-height: 65vh;
  }

  .home-hero h1 {
    font-size: 1.8rem;
  }

  .home-hero,
  .home-tours,
  .home-values {
    padding: 60px 0;
  }
}

/* ==================================================
   HERO – HEIGHT CONTROL (SOLUTION A)
   ================================================== */

.home-hero {
  min-height: 70vh;
}

/* Large screens */
@media (min-width: 1200px) {
  .home-hero {
    min-height: 75vh;
  }
}

/* Mobile */
@media (max-width: 768px) {
  .home-hero {
    min-height: 60vh;
  }
}

/* === FIX FEATURED IMAGE HOME HERO === */

/* Empêcher WP d’imposer des tailles/layout */
.home-hero img.wp-post-image {
  display: none;
}

.home-hero {
  position: relative;
  min-height: 80vh;
  overflow: hidden;
}

.home-hero__media {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  z-index: 0;
}

.home-hero .home-container {
  position: relative;
  z-index: 1;
}

/* HERO — refined overlay (better readability) */
.home-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.25) 0%,
    rgba(0, 0, 0, 0.35) 45%,
    rgba(0, 0, 0, 0.45) 100%
  );
  z-index: 1;
}

.home-cta {
  color: #ffffff;
  border-color: rgba(255,255,255,0.9);
}

.home-cta:hover {
  background: rgba(255,255,255,0.15);
}

.home-hero h1 {
  color: #ffffff;
  font-weight: 600;
  letter-spacing: -0.02em;
  text-shadow: 0 3px 10px rgba(0,0,0,0.35);
}

.home-hero p {
  color: rgba(255,255,255,0.95);
  font-weight: 400;
  text-shadow: 0 2px 8px rgba(0,0,0,0.35);
}

/* ============================= */
/* HOME — remove top padding before HERO */
/* ============================= */

/* ✅ Make it win over TwentyTwentyOne defaults without impacting other pages */
body.home.page .site-main {
  padding-top: 0 !important;
}

/* Optional safety: avoid any inherited first-child margin pushing content */
body.home.page .site-main > *:first-child {
  margin-top: 0;
}

/* ============================= */
/* HERO CTA — micro-contraste */
/* ============================= */

.home-cta {
  position: relative;
  transition: 
    background-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s ease;
}

/* Hover / focus */
.home-cta:hover,
.home-cta:focus-visible {
  background-color: rgba(255, 255, 255, 0.15);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
  transform: translateY(-1px);
}

/* Active (clic) */
.home-cta:active {
  transform: translateY(0);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);
}

/* ============================= */
/* HERO CTA — micro-contraste */
/* ============================= */

.home-cta {
  display: inline-block;
  padding: 14px 28px;
  border: 2px solid rgba(255,255,255,0.9);
  color: #fff;
  font-weight: 500;
  letter-spacing: 0.01em;

  background: rgba(0,0,0,0.15); 
  backdrop-filter: blur(2px);

  transition:
    background-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s ease;
}

.home-cta:hover,
.home-cta:focus-visible {
  background: rgba(255,255,255,0.9);
  color: #000;

  box-shadow: 0 10px 28px rgba(0,0,0,0.25);
  transform: translateY(-2px);
}

.home-cta:active {
  transform: translateY(0);
  box-shadow: 0 4px 12px rgba(0,0,0,0.25);
}

/* ---------------------------------------------------------------------------- */

/* ============================= */
/* HOME — Choose your experience */
/* ============================= */

.home-experiences {
  padding: 80px 0;
}

.home-experiences__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 32px;
  margin-top: 40px;
}

.experience-card {
  padding: 24px;
  border: 1px solid rgba(0,0,0,0.12);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.experience-card h3 {
  font-size: 1.2rem;
  margin-bottom: 12px;
}

.experience-card p {
  flex-grow: 1;
  opacity: 0.85;
}

.experience-link {
  margin-top: 24px;
  font-weight: 500;
  text-decoration: underline;
  align-self: flex-start;
}

.experience-card.is-coming {
  opacity: 0.6;
}

.experience-soon {
  margin-top: 24px;
  font-size: 0.85rem;
  font-style: italic;
}

/* Mobile spacing */
@media (max-width: 768px) {
  .home-experiences {
    padding: 60px 0;
  }
}

/* ---------------------------------------------------------------------------- */

/* ============================= */
/* HOME — REVIEWS */
/* ============================= */

.home-reviews {
  padding: clamp(4rem, 6vw, 6rem) 0;
  background: var(--global--color-background);
}

.home-reviews__header {
  margin: 0 auto 3rem;
}

.home-reviews__header h2 {
  margin-bottom: 0.75rem;
}

.home-reviews__summary {
  font-size: 1.1rem;
  color: var(--global--color-secondary);
}

.review-platform img {
  max-height: 44px;
  opacity: 0.85;
  transition: opacity 0.2s ease;
}

.review-platform img:hover {
  opacity: 1;
}

/* Quotes */
.home-reviews__quotes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 2rem;
  max-width: 1100px;
  margin: 0 auto;
}

.review-quote {
  background: #fff;
  padding: 1.5rem 1.75rem;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.04);
  font-size: 0.95rem;
  line-height: 1.6;
  display: flex;
  flex-direction: column;
  height: 90%;
}

.review-quote p {
  margin-bottom: 1.25rem;
}

/* Meta (author / date / platform) */
.review-meta {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  row-gap: 0.25rem;
  column-gap: 0.75rem;
  align-items: center;

  /* IMPORTANT: neutralise home-section--centered */
  text-align: left;
  margin-top: auto; /* pousse le meta en bas */
}

/* Line 1: author (full width, left) */
.review-author {
  grid-column: 1 / -1;
  justify-self: start;
  font-weight: 600;
  color: var(--global--color-primary);
}

/* Line 2: date (left) */
.review-date {
  grid-column: 1;
  justify-self: start;
  font-size: 0.85rem;
  color: #777;
}

/* Line 2: platform (right) */
.review-platform {
  grid-column: 2;
  justify-self: end;
  display: flex;
  align-items: center;
}

/* Platform icon */
.review-platform__icon {
  height: 15px;
  width: auto;
  opacity: 0.65;
}

/* Remove parent theme quote mark */
.home-reviews blockquote::before {
  content: none !important;
}

/* Mobile */
@media (max-width: 768px) {
  .home-reviews {
    padding: 3.5rem 0;
  }

  .review-platform img {
    max-height: 36px;
  }
}

/* Space before logo slider */
.logo-slider {
  margin-top: 2rem;
}

/* ==================================================
   LOGO SLIDER — CONTINUOUS
   ================================================== */

.logo-slider {
  overflow: hidden;
  width: 100%;
}

.logo-slider__track {
  display: flex;
  width: max-content;
  animation: logo-scroll 30s linear infinite;
}

.logo-slider__list {
  display: flex;
  gap: 2.5rem;
  align-items: center;
  list-style: none;
  padding: 0;
  margin: 0;
}

.logo-slider__item img {
  max-height: 44px;
  opacity: 0.85;
  transition: opacity 0.2s ease;
}

.logo-slider__item img:hover {
  opacity: 1;
}

@keyframes logo-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

/* Accessibilité : respect du motion preference */
@media (prefers-reduced-motion: reduce) {
  .logo-slider__track {
    animation: none;
  }
}



/* ---------------------------------------------------------------------------- */

/* ============================= */
/* HOME — MANIFESTO */
/* ============================= */

.home-manifesto {
  padding: clamp(4rem, 6vw, 6rem) 0;
  background: var(--global--color-background);
}

.home-manifesto h2 {
  margin-bottom: 0.75rem;
}

.home-manifesto p {
  color: var(--global--color-secondary);
  line-height: 1.6;
}

/* ---------------------------------------------------------------------------- */

/* ============================= */
/* FOOTER */
/* ============================= */

.site-footer {
  background: #0f0f0f;
  color: #eaeaea;
  padding: 4.5rem 0 2.5rem;
  font-size: 1rem; /* ↑ lisibilité */
}

.site-footer a {
  color: inherit;
  text-decoration: none;
}

.site-footer a:hover {
  text-decoration: underline;
}

/* ============================= */
/* CONTAINER */
/* ============================= */

.footer-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;

  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 3.5rem; /* ↑ respiration */
}

/* ============================= */
/* TITLES */
/* ============================= */

.footer-title {
  font-size: 0.95rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 1.25rem;
  color: #ffffff;
}

/* ============================= */
/* BRAND */
/* ============================= */

.footer-brand__name {
  font-size: 1.35rem;
  font-weight: 600;
  display: block;
  margin-bottom: 1rem;
}

.footer-brand__tagline {
  max-width: 340px;
  line-height: 1.65;
  color: #c5c5c5;
  margin-bottom: 1.5rem;
}

/* ============================= */
/* SOCIAL LINKS */
/* ============================= */

.footer-socials {
  display: flex;
  gap: 1.25rem;
  margin-top: 0.5rem;
}

.footer-socials a {
  font-size: 0.95rem;
  opacity: 0.75;
  transition: opacity 0.2s ease;
}

.footer-socials a:hover {
  opacity: 1;
}

/* ============================= */
/* NAV */
/* ============================= */

.footer-nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-nav li {
  margin-bottom: 0.7rem;
}

.footer-nav a {
  font-size: 0.95rem;
  opacity: 0.9;
}

.footer-nav a:hover {
  opacity: 1;
}

/* ============================= */
/* BOTTOM */
/* ============================= */

.footer-bottom {
  margin-top: 3.5rem;
  padding-top: 1.75rem;
  border-top: 1px solid rgba(255,255,255,0.08);
  text-align: center;
  font-size: 0.85rem;
  color: #9a9a9a;
}

/* ============================= */
/* MOBILE */
/* ============================= */

@media (max-width: 768px) {

  .footer-container {
    grid-template-columns: 1fr;
    gap: 2.75rem;
  }

  .footer-brand__tagline {
    max-width: none;
  }

  .footer-bottom {
    margin-top: 2.5rem;
  }
}

/* ============================= */
/* TT1 override — FULL WIDTH OK */
/* ============================= */

body .site-footer {
  max-width: none;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

body .site-footer .footer-container {
  margin-left: auto;
  margin-right: auto;
}

body .site-footer .footer-bottom {
  width: 100%;
}

/* ---------------------------------------------------------------------------- */


/* ============================= */
/* INFO BANNER */
/* ============================= */

.inaeri-banner {
  background: #111;
  color: #fff;
  font-size: 0.9rem;
}

.inaeri-banner__content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 10px 24px;

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

.inaeri-banner__close {
  background: none;
  border: none;
  color: inherit;
  font-size: 1.2rem;
  cursor: pointer;
}

.inaeri-banner {
  display: block !important;
}

/* ---------------------------------------------------------------------------- */


/* ============================= */
/* HOME — Signature Ride */
/* ============================= */

.home-signature {
  padding: 80px 0;
  background: #f6f8f7; /* très léger contraste */
}

.home-signature__label {
  display: inline-block;
  margin-bottom: 12px;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  opacity: 0.6;
}

.home-signature__title {
  font-size: 1.8rem;
  margin-bottom: 16px;
  line-height: 1.25;
}

.home-signature__desc {
  max-width: 640px;
  font-size: 1rem;
  opacity: 0.85;
}

.home-signature__cta {
  margin-top: 32px;
}

/* CTA variant for light background */
.home-cta--dark {
  border-color: #000;
  color: #000;
}

.home-cta--dark:hover {
  background: #000;
  color: #fff;
}


/* ============================= */
/* SIGNATURE RIDE — BADGE */
/* ============================= */

.home-signature__badge {
  display: inline-block;
  margin-bottom: 12px;
  padding: 6px 12px;

  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;

  color: #111;
  background: #f2c94c;
  border-radius: 999px;
}

/* ============================= */
/* SIGNATURE RIDE – STRUCTURE    */
/* ============================= */

.home-signature{
  position: relative;
  padding: 96px 0;
  overflow: hidden;
  background: #f8f7f3;
}

/* Image colonne gauche (≈ 65%) */
.home-signature::before{
  content: "";
  position: absolute;
  inset: 0;
  width: 65%;
  background-image: var(--signature-bg);
  background-size: cover;
  background-position: center left;
  z-index: 0;
}

/* Dégradé de transition image → clair */
.home-signature::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;

  background: linear-gradient(
    90deg,
    rgba(248,247,243,0) 30%,
    rgba(248,247,243,0.35) 45%,
    rgba(248,247,243,0.75) 55%,
    rgba(248,247,243,1) 65%,
    rgba(248,247,243,1) 100%
  );

  z-index: 1;
}

/* ============================= */
/* CONTENU — DESKTOP             */
/* ============================= */

.home-signature__content > *{
  max-width: 520px;
}

.home-signature__content{
  position: relative;
  z-index: 2;

  display: block;

  margin-left: 65%;
  padding-left: 48px;
}

/* ============================= */
/* DESKTOP — AÉRATION TEXTE      */
/* ============================= */

@media (min-width: 901px){

  .home-signature__desc{
    margin-bottom: 28px;
  }

  .home-signature__price{
    margin-top: 0;
    margin-bottom: 24px;
  }

  .home-signature .inaeri-cta{
    margin-top: 8px;
  }
}

/* ============================= */
/* DESKTOP — ALIGNEMENT LABEL + BADGE */
/* ============================= */

@media (min-width: 901px){

  .home-signature__label{
    display: inline-block;
    margin-right: 12px;
    vertical-align: middle;
  }

  .home-signature__badge{
    vertical-align: middle;
    white-space: nowrap;
  }
}

/* ============================= */
/* MOBILE                         */
/* ============================= */

@media (max-width: 900px){

  .home-signature{
    padding: 0;
    padding-top: 30vh;
    background: #f8f7f3;
  }

  .home-signature::before{
    position: absolute;
    top: 0;
    left: 0;
    right: 0;

    width: 100%;
    height: 30vh;

    background-position: center;
    background-size: cover;
  }

  .home-signature::after{
    display: none;
  }

  .home-signature__content{
    margin-left: 0;
    padding: 32px 20px 48px;
    color: #111;
    display: block;
    background: #f8f7f3;
  }

  .home-signature__content > *{
    max-width: 100%;
  }

  .home-signature__badge{
    background: #f2c94c;
    color: #111;
  }

  /* --- PRICE --- */

  .home-signature__price{
    margin-top: 24px;
    margin-bottom: 16px;
    font-weight: 600;
    font-size: 1rem;
  }

  /* --- CTA (layout only) --- */

  .home-signature .inaeri-cta{
    display: block;
    width: 100%;
    margin-top: 4px;
  }
}
/* ============================= */
/* SIGNATURE RIDE — BADGE */
/* ============================= */

.home-signature__badge {
  display: inline-block;
  margin-bottom: 12px;
  padding: 6px 12px;

  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;

  color: #111;
  background: #f2c94c;
  border-radius: 999px;
}

/* ============================= */
/* SIGNATURE RIDE – STRUCTURE    */
/* ============================= */

.home-signature{
  position: relative;
  padding: 96px 0;
  overflow: hidden;
  background: #f8f7f3;
}

/* Image colonne gauche (≈ 65%) */
.home-signature::before{
  content: "";
  position: absolute;
  inset: 0;
  width: 65%;
  background-image: var(--signature-bg);
  background-size: cover;
  background-position: center left;
  z-index: 0;
}

/* Dégradé de transition image → clair */
.home-signature::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;

  background: linear-gradient(
    90deg,
    rgba(248,247,243,0) 30%,
    rgba(248,247,243,0.35) 45%,
    rgba(248,247,243,0.75) 55%,
    rgba(248,247,243,1) 65%,
    rgba(248,247,243,1) 100%
  );

  z-index: 1;
}

/* ============================= */
/* CONTENU — DESKTOP             */
/* ============================= */

.home-signature__content > *{
  max-width: 520px;
}

.home-signature__content{
  position: relative;
  z-index: 2;

  display: block;

  margin-left: 65%;
  padding-left: 48px;
}

/* ============================= */
/* DESKTOP — AÉRATION TEXTE      */
/* ============================= */

@media (min-width: 901px){

  .home-signature__desc{
    margin-bottom: 28px;
  }

  .home-signature__price{
    margin-top: 0;
    margin-bottom: 24px;
  }

  .home-signature .inaeri-cta{
    margin-top: 8px;
  }
}

/* ============================= */
/* DESKTOP — ALIGNEMENT LABEL + BADGE */
/* ============================= */

@media (min-width: 901px){

  .home-signature__label{
    display: inline-block;
    margin-right: 12px;
    vertical-align: middle;
  }

  .home-signature__badge{
    vertical-align: middle;
    white-space: nowrap;
  }
}

/* ============================= */
/* MOBILE                         */
/* ============================= */

@media (max-width: 900px){

  .home-signature{
    padding: 0;
    padding-top: 30vh;
    background: #f8f7f3;
  }

  .home-signature::before{
    position: absolute;
    top: 0;
    left: 0;
    right: 0;

    width: 100%;
    height: 30vh;

    background-position: center;
    background-size: cover;
  }

  .home-signature::after{
    display: none;
  }

  .home-signature__content{
    margin-left: 0;
    padding: 32px 20px 48px;
    color: #111;
    display: block;
    background: #f8f7f3;
  }

  .home-signature__content > *{
    max-width: 100%;
  }

  .home-signature__badge{
    background: #f2c94c;
    color: #111;
  }

  /* --- PRICE --- */

  .home-signature__price{
    margin-top: 24px;
    margin-bottom: 16px;
    font-weight: 600;
    font-size: 1rem;
  }

  /* --- CTA (layout only) --- */

  .home-signature .inaeri-cta{
    display: block;
    width: 100%;
    margin-top: 4px;
  }
}

/* -------------------------------  PRODUCT PAGE   ----------------------- */

html {
  overflow-x: hidden;
}

body {
  overflow-x: visible;
}


/* =========================
   Product page — layout
========================= */

.product-page {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem 1.25rem;
  font-size: 1.1rem;
    line-height: 1.6;
}

/* H2 — sections */
.product-page h2 {
  font-size: clamp(30px, 4.2vw, 42px);
  font-weight: 600;
  line-height: 1.2;
}

/* H3 — sous-sections */
.product-page h3 {
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.35;
}

/* H4 — labels structurants */
.product-page h4 {
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.3;
}


/* ---------   PRODUCT HERO ------------------------------ */
/* =========================
   PRODUCT HERO — FULL WIDTH
========================= */

.product-hero {
  position: relative;
  width: 100vw;
  height: 100vh;
  min-height: 100svh;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: -2rem;
  overflow: hidden;
  background-color: var(--global--color-background);

  /* viewport height + espace texte */
  padding-bottom: clamp(120px, 22vh, 320px);
}

/* =========================
   HERO SLIDER
========================= */

.product-hero__slider {
  position: relative;
  width: 100%;
  height: 100%;
  background: #000;
}

.product-hero__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 900ms ease;
  overflow: hidden;
}

.product-hero__slide.is-active {
  opacity: 1;
  z-index: 1;
}

.product-hero__slide img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  transform: scale(1.03);
}

.product-hero__slide.is-kenburns img {
  transform: scale(1.12);
  transition: transform 7s ease;
}

/* =========================
   HERO OVERLAYS
========================= */

.product-hero::before,
.product-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.product-hero::after {
  z-index: 3;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0.05) 20%,
    rgba(0, 0, 0, 0.35) 30%,
    rgba(0, 0, 0, 0.50) 45%,
    rgba(0, 0, 0, 0.15) 55%,
    rgba(0, 0, 0, 0) 60%
  );
}

/* =========================
   HERO CONTENT
========================= */

.product-hero__content {
  position: absolute;
  z-index: 4;
  left: clamp(20px, 6vw, 96px);
  bottom: clamp(24px, 7vh, 120px);
  max-width: 760px;
  color: #f9f9f9;
}

.product-hero__title {
  margin: 0 0 12px 0;
  font-size: clamp(28px, 5vw, 56px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  text-shadow:
    0 2px 6px rgba(0, 0, 0, 0.45),
    0 12px 32px rgba(0, 0, 0, 0.35);
}

.product-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  font-size: 0.92rem;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 18px;
}

.product-hero__meta-sep {
  opacity: 0.45;
}

.product-hero__reviews {
  font-size: 0.95rem;
  color: rgba(255,255,255,0.85);
}

.product-hero__reviews .star {
  color: #f5a623;
}


/* =========================
   HERO CTA
========================= */

.product-hero__cta {
  display: flex;
  gap: 16px;
  align-items: center;
}

/* Variante contextuelle du CTA global */
.product-hero__button {
  /* hérite de .inaeri-cta */
  padding: 14px 18px;      
  border-radius: 6px;     

  background: rgba(255, 255, 255, 0.95);
  color: #111;

  box-shadow:
    0 8px 24px rgba(0,0,0,0.18),
    0 0 0 1px rgba(0,0,0,0.05);

  backdrop-filter: blur(2px);

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

.product-hero__button:hover {
  transform: translateY(-1px);
  box-shadow:
    0 12px 32px rgba(0,0,0,0.22),
    0 0 0 1px rgba(0,0,0,0.06);
}

.product-hero__button:active {
  transform: translateY(1px); 
}

/* =========================
   OPTIONAL SCROLL LINK
========================= */

.product-hero__scroll {
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  font-weight: 500;
}

/* =========================
   HERO DOTS
========================= */

.product-hero__dots {
  position: absolute;
  z-index: 5;
  left: 50%;
  transform: translateX(-50%);
  bottom: 18px;
  display: flex;
  gap: 10px;
}

.product-hero__dot {
  width: 9px;
  height: 9px;
  border-radius: 999px;
  border: 0;
  background: rgba(0, 0, 0, 0.45);
  cursor: pointer;
  opacity: 1;
  transition: background 0.2s ease, transform 0.2s ease;
}

.product-hero__dot.is-active {
  background: rgba(0, 0, 0, 0.9);
}

.product-hero__dot:hover {
  background: rgba(0, 0, 0, 0.75);
  transform: scale(1.15);
}

.product-hero__dot:focus,
.product-hero__dot:focus-visible {
  outline: none;
}

/* =========================
   MOBILE HERO
========================= */

@media (max-width: 768px) {
  .product-hero__content {
    left: 16px;
    right: 16px;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 96px);
    max-width: 520px;
  }

  .product-hero__title {
    font-size: 1.8rem;
  }

  .product-hero::after {
    background: linear-gradient(
      to top,
      rgba(0, 0, 0, 0) 0%,
      rgba(0, 0, 0, 0.20) 20%,
      rgba(0, 0, 0, 0.60) 25%,
      rgba(0, 0, 0, 0.45) 45%,
      rgba(0, 0, 0, 0.2) 60%,
      rgba(0, 0, 0, 0) 80%
    );
  }

  .product-hero__meta,
  .product-hero__cta {
    justify-content: flex-start;
  }
}

/* ---------  FIN PRODUCT HERO --------------------------- */


/* =========================
   CONTENT + BOOKING LAYOUT
========================= */

.product-content-layout {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.25rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 3rem;
  align-items: start;
}



/* =========================
   POST HERO — CLEAN TRANSITION
========================= */

/* Hide duplicate SEO header (keep for crawlers) */
.product-header {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

/* Intro becomes true editorial entry point */
.product-intro {
  position: relative;
  z-index: 6;
  margin: -100px auto clamp(64px, 12vh, 120px);

  max-width: 720px;
  padding: 2.5rem 2.5rem;

  background: rgba(255, 255, 255, 0.45);
  border-radius: 20px;

  font-size: 1.15rem;
  line-height: 1.65;
  color: #222;

  box-shadow:
    0 20px 60px rgba(0, 0, 0, 0.08),
    0 6px 18px rgba(0, 0, 0, 0.06);
}

/* Intro text rhythm */
.product-intro p {
    margin: 0 0 1.2em 0;
}

.product-intro p:last-child {
    margin-bottom: 0;
}


/* Mobile adjustments */
@media (max-width: 768px) {
  .product-intro {
    margin: -96px 16px 3rem;
    padding: 1.75rem 1.5rem;
    border-radius: 16px;
  }
}

/* ---------  EXPERIENCE TIMELINE------------------- */

/* =========================
   EXPERIENCE TIMELINE
========================= */

.product-timeline {
    margin-bottom: clamp(64px, 12vh, 120px);
    counter-reset: step;
}

.product-timeline > h2 {
    margin-top: clamp(48px, 10vh, 96px);
    margin-bottom: clamp(40px, 8vh, 72px);
    letter-spacing: -0.02em;
}

/* One step */
.timeline-step {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: clamp(28px, 4vw, 56px);
    align-items: start;
    margin-bottom: clamp(56px, 10vh, 120px);

    counter-increment: step;
}

/* Force placement: text left, image right */
.timeline-step h3,
.timeline-step p {
    grid-column: 1;
}

.timeline-step h3 {
    grid-row: 1;
    margin: 0 0 8px 0;
    display: flex;
    align-items: baseline;
    gap: 14px;
}

.timeline-step p {
    grid-row: 2;
    margin: 0;
    line-height: 1.6;
    color: #333;
    max-width: 520px;
}

/* Step number */
.timeline-step__index::before {
    content: counter(step, decimal-leading-zero);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    color: rgba(0,0,0,0.35);
}

/* Images */
.timeline-images {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: start;
}

.timeline-images img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 14px;
}

/* =========================
   MOBILE — STACKED FLOW
========================= */

@media (max-width: 768px) {

    .timeline-step {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .timeline-step h3,
    .timeline-step p,
    .timeline-images {
        grid-column: 1;
        grid-row: auto;
        max-width: none;
    }

    .timeline-step:nth-child(even) h3,
    .timeline-step:nth-child(even) p,
    .timeline-step:nth-child(even) .timeline-images {
        grid-column: 1;
    }
}

/* =========================
   TIMELINE — SCROLL FADE IN
========================= */

.timeline-step {
    opacity: 0;
    transform: translateY(32px);
    transition:
        opacity 0.6s ease-out,
        transform 0.6s ease-out;
    will-change: opacity, transform;
}

/* Visible state */
.timeline-step.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Slight stagger feel */
.timeline-step:nth-child(2) { transition-delay: 0.05s; }
.timeline-step:nth-child(3) { transition-delay: 0.04s; }
.timeline-step:nth-child(4) { transition-delay: 0.03s; }

/* Mobile — faster */
@media (max-width: 768px) {
    .timeline-step {
        transform: translateY(20px);
        transition-duration: 0.45s;
    }
}

/* =========================
   TIMELINE IMAGE ZOOM 
========================= */

.timeline-images img {
  cursor: zoom-in;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
  will-change: transform;
}


/* Overlay actif → croix partout */
[data-timeline-zoom],
[data-timeline-zoom] * {
  cursor: url("/wp-content/themes/inaeri/assets/images/ui/close_24dp.png") 12 12, auto;
}




/* ---------FIN EXPERIENCE TIMELINE------------------- */

/* ---------  HIGHLIGHTS TIMELINE------------------- */


/* =========================
   PRODUCT — HIGHLIGHTS
========================= */

.product-highlights {
    margin-bottom: clamp(64px, 10vh, 120px);
}

.product-highlights h2 {
    margin-top: clamp(48px, 10vh, 96px);
    margin-bottom: clamp(40px, 8vh, 72px);
    letter-spacing: -0.02em;
}

/* List layout */
.highlights-list {
    list-style: none;
    margin: 0;
    padding: 0;

    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 40px;
}

/* Item */
.highlights-list li {
    position: relative;
    padding-left: 28px;
    color: #222;
}

/* Check icon (CSS only, no SVG) */
.highlights-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0.15em;

    font-size: 0.9rem;
    font-weight: 600;
    color: #5aa18f; /* cohérent avec ton vert */
}

/* Strong inside item */
.highlights-list strong {
    font-weight: 500;
}

/* =========================
   MOBILE
========================= */

@media (max-width: 768px) {
    .highlights-list {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}

/* =========================
   HIGHLIGHTS — SCROLL FADE
========================= */

.highlights-list li {
    opacity: 0;
    transform: translateY(20px);
    transition:
        opacity 0.45s ease-out,
        transform 0.45s ease-out;
    will-change: opacity, transform;
}

/* Visible */
.product-highlights.is-visible .highlights-list li {
    opacity: 1;
    transform: translateY(0);
}

/* Stagger (léger, naturel) */
.product-highlights.is-visible .highlights-list li:nth-child(2) { transition-delay: 0.04s; }
.product-highlights.is-visible .highlights-list li:nth-child(3) { transition-delay: 0.08s; }
.product-highlights.is-visible .highlights-list li:nth-child(4) { transition-delay: 0.12s; }
.product-highlights.is-visible .highlights-list li:nth-child(5) { transition-delay: 0.16s; }
.product-highlights.is-visible .highlights-list li:nth-child(6) { transition-delay: 0.2s; }

/* Mobile = un peu plus rapide */
@media (max-width: 768px) {
    .highlights-list li {
        transition-duration: 0.35s;
        transform: translateY(14px);
    }
}

/* =========================
   PRODUCT GALLERY — INLINE ZOOM (CINEMA)
========================= */

.product-gallery {
    column-count: 2;
    column-gap: clamp(16px, 3vw, 32px);
    margin: clamp(64px, 12vh, 120px) 0;
}

/* Item */
.product-gallery-item {
    position: relative;
    margin-bottom: clamp(16px, 3vw, 32px);
    break-inside: avoid;
    cursor: zoom-in;
    transition: opacity 0.45s ease;
}

/* Image */
.product-gallery-image {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 14px;

    transition:
        transform 0.7s cubic-bezier(0.16, 1, 0.3, 1),
        box-shadow 0.6s cubic-bezier(0.22, 1, 0.36, 1);

    will-change: transform;
}

/* =========================
   ZOOMED STATE
========================= */

.product-gallery-item.is-zoomed {
    z-index: 20;
}

.product-gallery-item.is-zoomed .product-gallery-image {
    transform: scale(1.9);
    box-shadow: 0 36px 110px rgba(0,0,0,0.45);
}

/* =========================
   ATTENUATION — OTHER IMAGES
========================= */

/* When one image is zoomed, soften the others */
.product-gallery:has(.product-gallery-item.is-zoomed)
.product-gallery-item:not(.is-zoomed) {
    opacity: 0.35;
    pointer-events: none;
}

/* Keep hovered zoomed image crisp */
.product-gallery-item.is-zoomed {
    opacity: 1;
    pointer-events: auto;
}

/* =========================
   VERY LARGE SCREENS
========================= */

@media (min-width: 1400px) {
    .product-gallery {
        column-count: 3;
    }
}

/* =========================
   MOBILE — SAFER ZOOM
========================= */

@media (max-width: 768px) {
    .product-gallery {
        column-count: 1;
        margin: 64px 0;
    }

    .product-gallery-item.is-zoomed .product-gallery-image {
        transform: scale(1.45);
    }

    .product-gallery:has(.product-gallery-item.is-zoomed)
    .product-gallery-item:not(.is-zoomed) {
        opacity: 0.45;
    }
}


/* Quand zoomé : curseur croix (sur item + sur l'image + sur descendants) */
.product-gallery-item.is-zoomed,
.product-gallery-item.is-zoomed .product-gallery-image,
.product-gallery-item.is-zoomed * {
  cursor: url("/wp-content/themes/inaeri/assets/images/ui/close_24dp.png") 12 12, auto;
}

/* État normal : loupe (sur item + sur image) */
.product-gallery-item,
.product-gallery-item .product-gallery-image {
  cursor: zoom-in;
}

/* -------------------------------  PRACTICAL INFO -----------------------------*/

/* =========================
   PRODUCT — PRACTICAL INFO
========================= */

.product-practical {
  max-width: 900px;
  margin: clamp(64px, 12vh, 120px) auto;
  padding: clamp(32px, 5vw, 48px);

  background: rgba(255, 255, 255, 0.45);
  border-radius: 20px;
  color: rgba(0, 0, 0, 0.75);
}

/* =========================
   SECTION TITLES
========================= */

.product-practical > h2 {
    margin-bottom: clamp(40px, 8vh, 72px);
    letter-spacing: -0.02em;
 }

.product-practical h3 {
  color: #111;
  margin: 2.75rem 0 0.75rem;
}


.product-practical h4 {
  margin: 0 0 0.4rem;
 color: #111;
}

/* =========================
   TEXT CONTENT
========================= */

.product-practical p,
.product-practical ul,
.product-practical ol {
  margin: 0 0 1.1em;
  max-width: 640px;
}

.product-practical ul {
  padding-left: 1.2em;
}

.product-practical li {
  margin-bottom: 0.6em;
}

.product-practical strong {
  font-weight: 500;
  color: rgba(0, 0, 0, 0.85);
}

/* =========================
   MICRO FACTS — BENEFITS STRIP
   Participants / Languages / Free cancellation
========================= */

/* Base */
.product-facts {
  display: grid;
  gap: 16px;
  margin: clamp(32px, 6vh, 56px) 0;
}

/* One fact = one clear message */
.product-fact {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/* Main value (primary information) */
.product-fact strong {
  font-size: 1rem;
  font-weight: 600;
  color: #111;
}

/* Secondary hint / clarification */
.product-fact__hint {
  font-size: 0.85rem;
  line-height: 1.4;
  color: rgba(0, 0, 0, 0.55);
}

/* Highlighted reassurance (conversion driver) */
.product-fact--highlight strong {
  color: var(--inaeri-green);
}

/* Mobile tightening */
@media (max-width: 768px) {
  .product-facts {
    gap: 14px;
  }
}


/* =========================
   MEETING
========================= */

.product-meeting__grid {
  padding-top: 2.25rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, 4vw, 48px);
  margin-top: 1.5rem;
}

@media (max-width: 768px) {
  .product-meeting__grid {
    grid-template-columns: 1fr;
  }
}

.product-meeting__col h4 {
  margin-bottom: 0.75rem;
}

/* Meeting point – practical details */
.product-meeting__details {
  margin-top: 0.35rem;
  margin-bottom: 1.35rem;
}

.product-end-point__details {
  margin-top: 0.35rem;
}

/* =========================
   INCLUDED / NOT INCLUDED
========================= */


.practical-included {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, 4vw, 48px);
}

.practical-included > div {
  background: transparent;
  border-radius: 16px;
}

.practical-included h3 {
  margin-top: 0;
}

@media (max-width: 768px) {
  .practical-included {
    grid-template-columns: 1fr;
  }
}


/* =========================
   MOBILE ADJUSTMENTS
========================= */

@media (max-width: 768px) {
  .product-practical {
    padding: 24px;
  }

 .product-facts--benefits {
    gap: 1.5rem;
  }
}


/* =========================
    MAP MODAL
========================= */

.map-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(2px);
  z-index: 9999;
  display: grid;
  place-items: center;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.map-modal-overlay.is-visible {
  opacity: 1;
}

.map-modal {
  width: min(92vw, 900px);
  height: min(70vh, 520px);
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  position: relative;
}

.map-modal iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.map-modal-close {
  position: absolute;
  top: 10px;
  right: 14px;
  font-size: 28px;
  background: none;
  border: none;
  cursor: pointer;
}

/* --------------------------------- FIN PRACTICAL INFO ------------------------------*/

/* ---------------------------------- BOOKING STICKY --------------------------------*/

/* ==============================================
   BOOKING WIDGET & CTA BOOKING  
============================================== */

/* ==============================
   BOOKING WIDGET — SMART STICKY
============================== */

.product-booking {
  position: sticky;
  top: 96px;
  align-self: start;
  max-height: calc(100vh - 120px);
  overflow: auto;
  border-radius: 14px;
  padding-top: 2.25em;
}

/* Mobile = no sticky */
@media (max-width: 1023px) {
  .product-content-layout {
    grid-template-columns: 1fr;
  }

  .product-booking {
    position: static;
    max-height: none;
    margin-top: 3rem;
  }
}


/* =================================
   BOOKING CTA STICKY — MOBILE ONLY
================================= */

/* 🔒 ÉTAT INITIAL — INVISIBLE */
.product-cta-mobile {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;

  display: inline-grid;
  grid-template-columns: auto auto;
  align-items: center;
  gap: 12px;
  justify-content: center;

  padding: 14px 16px calc(16px + env(safe-area-inset-bottom));

  background: linear-gradient(
    to top,
    rgba(245, 250, 247, 0.98),
    rgba(245, 250, 247, 0.90)
  );

  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);

  box-shadow:
    0 -12px 40px rgba(0,0,0,0.14),
    0 -1px 0 rgba(0,0,0,0.06);

  z-index: 120;

  /* 🔒 INVISIBLE */
  opacity: 0;
  transform: translateY(110%);
  pointer-events: none;

  transition:
    transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.4s ease;
}

/* ✅ Visible après premier scroll */
.product-cta-mobile.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}


/* =========================
   PRICE — REASSURANCE, NOT FOCUS
========================= */

.product-cta-mobile__price {
  display: flex;
  flex-direction: column;
  justify-content: center;
  line-height: 1.05;
  white-space: nowrap;
}

.product-cta-mobile__meta .price-prefix {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.55;
}

.product-cta-mobile__meta strong {
  font-size: 1.2rem;
  font-weight: 600;
}

.price-currency {
  font-size: 1em;
  margin-left: 0.05em;
}


/* =========================
   BUTTON — PRIMARY ACTION
========================= */

.product-cta-mobile__button {
  width: auto;
  min-width: 260px;
  max-width: 340px;
  padding: 16px 26px;
  white-space: nowrap;
  text-align: center;
}


/* =========================
   CTA MOBILE — TABLET
========================= */

@media (min-width: 600px) and (max-width: 1023px) {

  .product-cta-mobile__button {
    min-width: 320px;
    max-width: 420px;
    margin-inline: auto;
  }

  .product-cta-mobile {
    justify-content: center;
  }

  /* Safe space */
  body:has(.product-cta-mobile) {
    padding-bottom: calc(72px + env(safe-area-inset-bottom));
  }
}


/* =============================
   DESKTOP LARGE — DISABLED CTA
========================= */

@media (min-width: 1024px) {
  .product-cta-mobile {
    display: none;
  }
}

/*--------------------------------------- Page all-reviews - bloc reviews page produit -----------------------------------------*/

/* ============================= */
/* ALL REVIEWS — LAYOUT & RHYTHM */
/* ============================= */

/* Shared — reviews list layout */
.all-reviews__list,
.product-reviews__list {
  display: grid;
  row-gap: 2.5rem;
}

.all-reviews {
  max-width: 760px;
  margin: 0 auto;
  padding: 2.5rem 1.5rem 0;
}

/* ============================= */
/* RATING */
/* ============================= */

/* Shared — rating line */
.all-review__rating,
.product-review__rating {
  font-size: 1.1rem;
  margin-bottom: 0.25rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

/* ============================= */
/* META */
/* ============================= */

.all-review__meta {
  font-size: 0.85rem;
  color: #666;
  margin-bottom: 0.75rem;
}

/* Meta secondaire — plateforme / verified */
.all-review__meta-secondary {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  font-size: 0.85rem;
  color: #666;
  margin: 0.25rem 0 0.75rem;
}

/* Plateforme */
.all-review__platform {
  font-weight: 500;
}

/* Badge — Verified booking */
.all-review__verified {
  background: #f0f0f0;
  padding: 0.15rem 0.4rem;
  border-radius: 3px;
  font-size: 0.75rem;
  line-height: 1.2;
  white-space: nowrap;
}

/* ============================= */
/* EXCERPT */
/* ============================= */

/* Shared — review text */
.all-review__excerpt,
.product-review__text {
  font-style: italic;
  margin-bottom: 0.75rem;
}

/* Toggle links */
.all-review__toggle,
.all-review__response-toggle {
  font-size: 0.8rem;
  color: #555;
  text-decoration: underline;
  cursor: pointer;
  display: inline-block;
  margin-top: 0.25rem;
}

/* Neutralise le style bouton global pour les toggles reviews */
.all-review__toggle,
.all-review__response-toggle {
  background: none !important;
  box-shadow: none !important;
  border: none !important;
  border-radius: 0 !important;

  padding: 0 !important;

  font-size: 0.8rem;
  font-weight: 400;

  color: #111 !important;           /* ← lisible, éditorial */
  text-decoration: underline;

  cursor: pointer;
}

/* Hover / focus — discret */
.all-review__toggle:hover,
.all-review__toggle:focus,
.all-review__response-toggle:hover,
.all-review__response-toggle:focus {
  color: #000 !important;
  text-decoration: underline;
}


/* ============================= */
/* OWNER RESPONSE */
/* ============================= */

.all-review__response {
  margin-top: 1.25rem;
  padding-left: 0.75rem;
  border-left: 2px solid #ddd;
}

.all-review__response-label {
  font-size: 0.75rem;
  color: #666;
  margin-bottom: 0.25rem;
}

/* ============================= */
/* PAGINATION (ALL REVIEWS ONLY) */
/* ============================= */

.all-reviews__pagination {
  margin: 3rem auto 0;
  display: flex;
  gap: 0.75rem;
  justify-content: center;
  flex-wrap: wrap;
  font-size: 0.9rem;
}

.all-reviews__pagination a {
  text-decoration: underline;
}

.all-reviews__pagination .is-active {
  font-weight: 600;
  text-decoration: none;
}

/* ============================= */
/* SUMMARY */
/* ============================= */

.all-reviews__summary {
  margin-top: 0.5rem;
  margin-bottom: 2.5rem;
  font-size: 1rem;
  color: #555;
}

.all-reviews__summary .star {
  color: #f5a623;
}

.all-reviews h1 {
  margin-bottom: 1rem;
  font-size: clamp(28px, 5vw, 56px);
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.all-review__rating-meta,
.product-review__rating-meta {
  font-size: 0.85rem;
  color: #555;
}

/* ============================= */
/* PRODUCT REVIEWS — PAGE PRODUIT */
/* ============================= */

.product-reviews h2 {
  margin-bottom: 0.5rem;
}

.product-reviews__subtitle {
  display: block;
  font-size: 0.9rem;
  font-weight: 400;
  opacity: 0.75;
  margin-top: 0.25rem;
}

.product-reviews__summary {
  margin-bottom: 2rem;
  font-size: 1rem;
  color: #555;
}

.product-reviews__summary .star {
  color: #f5a623;
}

/* Extended reviews spacing (align with all-reviews UX) */
.product-reviews__extended {
  margin-top: 2.5rem;
}

.product-reviews__load-more-wrapper {
  margin-top: 2.5rem;
  text-align: center;
}

/* ============================= */
/* MOBILE */
/* ============================= */

@media (max-width: 768px) {

  .all-reviews {
    padding-top: 1.5rem;
  }

  .all-reviews h1 {
    font-size: 1.8rem;
  }

  .all-review__rating,
  .product-review__rating {
    flex-wrap: wrap;
    row-gap: 0.25rem;
  }

  .all-review__rating-meta,
  .product-review__rating-meta {
    font-size: 0.85rem;
    line-height: 1.3;
  }

  .all-review__excerpt,
  .product-review__text {
    margin-top: 0.75rem;
  }

  .all-review__meta {
    margin-top: 0.25rem;
    font-size: 0.85rem;
    line-height: 1.4;
  }

  .all-review__meta-secondary {
    flex-wrap: wrap;
    row-gap: 0.25rem;
  }

  .all-review__toggle,
  .all-review__response-toggle {
    margin-top: 0.5rem;
    padding: 0.25rem 0;
  }

  .all-review__response {
    margin-top: 1.25rem;
  }
}

/* Direct reviews summary — Google structured data */
.product-reviews .product-reviews__summary {
  margin-bottom: 4px;
}

.product-reviews .product-reviews__direct-summary {
  margin: 0 0 24px;
  font-size: 12px;
  line-height: 1.5;
  font-weight: 400;
  font-style: normal;
  color: #59635f;
}


/*--------------------------------------- Fin Page all-reviews -----------------------------------------*/


/*--------------------------------------- TEAM BUILDING PAGE  -----------------------------------------*/


/* =========================================================
   TEAM BUILDING PAGE (tb-*)
   ========================================================= */

.tb-page {
  background: var(--global--color-background);
}

.tb-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.25rem;
}

.tb-hero {
  position: relative;
  width: 100vw;
  height: 85vh;
  min-height: 85svh;

  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);

  overflow: hidden;
}

.tb-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
}

.tb-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;

  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0.15) 20%,
    rgba(0, 0, 0, 0.55) 35%,
    rgba(0, 0, 0, 0.35) 55%,
    rgba(0, 0, 0, 0.05) 70%,
    rgba(0, 0, 0, 0) 100%
  );
}

.tb-hero__content {
  position: absolute;
  z-index: 3;

  left: clamp(20px, 6vw, 96px);
  bottom: clamp(24px, 7vh, 120px);

  max-width: 760px;
  color: #f9f9f9;
}

.tb-hero__title {
  margin: 0 0 12px 0;
  font-size: clamp(28px, 5vw, 56px);
  line-height: 1.05;
  letter-spacing: -0.02em;

  text-shadow:
    0 2px 6px rgba(0, 0, 0, 0.45),
    0 12px 32px rgba(0, 0, 0, 0.35);
}

.tb-hero__subtitle {
  margin: 0 0 1.25rem;
  max-width: 62ch;
  opacity: 0.92;
  font-size: 1.05rem;
}

.tb-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  font-size: 0.95rem;
  opacity: 0.95;
}

.tb-hero__meta-sep { opacity: 0.6; }

.tb-meta__label { font-weight: 600; }
.tb-meta__hint { opacity: 0.85; margin-left: 0.25rem; }

.tb-hero__cta { margin-top: 1.5rem; }

.tb-section--intro { 
  background: #fff;
  padding-top: clamp(64px, 12vh, 120px);
  padding-bottom: clamp(48px, 10vh, 96px);
}

.tb-section--intro .tb-rich {
  max-width: 720px;
}

.tb-bullets {
  padding-left: 1.25rem;
  display: grid;
  gap: 0.6rem;

  margin-top: 2.5rem;
  margin-bottom: clamp(72px, 12vh, 140px);
}

.tb-h2 {
  font-size: clamp(30px, 4.2vw, 42px);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.02em;
  margin-bottom: clamp(32px, 6vh, 64px);
  margin-top: clamp(64px, 10vh, 120px);
}

.tb-rich p { margin: 0 0 1rem; }
.tb-rich p:last-child { margin-bottom: 0; }

.tb-block {
  display: grid;
  gap: 1.5rem;
  align-items: start;
  grid-template-columns: 1.15fr 0.85fr;
  padding: 1.75rem 0;
  border-top: 1px solid rgba(0,0,0,0.08);
}

.tb-block:first-child { 
  border-top: 0; 
  padding-top: 1.75rem; 
}

.tb-block.is-image-left { grid-template-columns: 0.85fr 1.15fr; }
.tb-block.is-image-left .tb-block__media { order: -1; }

.tb-block.is-text-only { grid-template-columns: 1fr; }

.tb-block__media img {
  width: 100%;
  height: auto;
  border-radius: 16px;
  display: block;
}

.tb-section--cta {
  background: rgba(207, 227, 217, 0.35);
  padding-top: clamp(64px, 10vh, 120px);
  padding-bottom: clamp(64px, 10vh, 120px);
}

.tb-ctaBox {
  display: flex;
  gap: 1.5rem;
  align-items: center;
  justify-content: space-between;
  border-radius: 18px;
  padding: 2.25rem 1.5rem;
}

.tb-muted { margin: 0; opacity: 0.85; max-width: 70ch; }

.tb-section--meeting {
  padding-top: clamp(64px, 10vh, 120px);
  padding-bottom: clamp(96px, 14vh, 160px);
}

.tb-map {
  margin-top: 2.5rem;
}

.tb-map iframe {
  width: 100%;
  height: 420px;
  border: 0;
  border-radius: 16px;
  margin-top: 1.5rem;
}

@media (max-width: 820px) {
  .tb-block { grid-template-columns: 1fr; }
  .tb-block.is-image-left .tb-block__media { order: 0; }
  .tb-ctaBox { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 768px) {
  .tb-hero__content {
    left: 16px;
    right: 16px;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 96px);
    max-width: 520px;
  }

  .tb-hero__title {
    font-size: 1.8rem;
  }
}

/* =========================================================
   EDITORIAL PAGES (editorial-*)
   ========================================================= */

.editorial-page {
  background: var(--global--color-background);
}

/* Shared wrap (same rhythm as product) */
.editorial-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.25rem;
}

/* HERO (compact, not cinematic) */
.editorial-hero {
  position: relative;
  width: 100vw;
  height: 42vh;
  min-height: 42svh;

  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);

  overflow: hidden;
  background: rgba(0,0,0,0.04);
}

.editorial-hero__bg,
.editorial-hero__bg img {
  width: 100%;
  height: 100%;
}

.editorial-hero__bg img {
  object-fit: cover;
  display: block;
}

.editorial-hero__overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(to top, rgba(0,0,0,0.45), rgba(0,0,0,0.05));
}

.editorial-hero__content {
  position: absolute;
  left: clamp(20px, 6vw, 96px);
  bottom: clamp(18px, 4vh, 56px);
  z-index: 2;

  max-width: 760px;
  color: #f9f9f9;
}

.editorial-hero__title {
  margin: 0 0 10px;
  font-size: clamp(28px, 5vw, 56px);
  line-height: 1.05;
  letter-spacing: -0.02em;

  text-shadow:
    0 2px 6px rgba(0, 0, 0, 0.45),
    0 12px 32px rgba(0, 0, 0, 0.35);
}

.editorial-hero__subtitle {
  margin: 0;
  max-width: 62ch;
  opacity: 0.92;
  font-size: 1.05rem;
}

/* Sections spacing */
.editorial-section {
  padding-top: clamp(56px, 7vh, 96px);
}

.editorial-section + .editorial-section {
  padding-top: 0;
}

.editorial-section--legal_text .editorial-legal {
  max-width: 820px;
}

/* Text + image blocks */
.editorial-block {
  display: grid;
  gap: clamp(20px, 4vw, 48px);
  align-items: start;
  grid-template-columns: 1.15fr 0.85fr;
}

.editorial-block.is-image-left {
  grid-template-columns: 0.85fr 1.15fr;
}

.editorial-block.is-image-left .editorial-block__media {
  order: -1;
}

.editorial-block__media img {
  width: 100%;
  height: auto;
  border-radius: 16px;
  display: block;
}

/* Full image */
.editorial-fullImage img {
  width: 100%;
  height: auto;
  border-radius: 16px;
  display: block;
  margin-bottom: 1.5rem;
}

/* Guides grid */
.editorial-guidesGrid {
  margin-top: 2rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.editorial-guideCard {
  background: rgba(255,255,255,0.55);
  border-radius: 18px;
  overflow: hidden;
  box-shadow:
    0 20px 60px rgba(0, 0, 0, 0.06),
    0 6px 18px rgba(0, 0, 0, 0.05);
}

.editorial-guideCard__photo img {
  width: 100%;
  height: auto;
  display: block;
}

.editorial-guideCard__body {
  padding: 1.25rem 1.25rem 1.4rem;
}

.editorial-guideCard__name {
  margin: 0 0 6px;
  font-size: 1.15rem;
  font-weight: 600;
}

.editorial-guideCard__meta {
  margin: 0 0 6px;
  opacity: 0.75;
  font-size: 0.95rem;
}

/* Contact block */
.editorial-contact {
  margin-top: 2rem;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 24px;
  align-items: start;
}

.editorial-contact__map iframe {
  width: 100%;
  height: 420px;
  border: 0;
  border-radius: 16px;
}

/* Mobile */
@media (max-width: 980px) {
  .editorial-guidesGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .editorial-contact {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .editorial-hero {
    height: 36vh;
    min-height: 36svh;
  }
  .editorial-hero__content {
    left: 16px;
    right: 16px;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 28px);
    max-width: 520px;
  }
  .editorial-hero__title {
    font-size: 1.8rem;
  }
  .editorial-block {
    grid-template-columns: 1fr;
  }
  .editorial-block.is-image-left .editorial-block__media {
    order: 0;
  }
  .editorial-guidesGrid {
    grid-template-columns: 1fr;
  }
}

/*--------------------------------------- BLOG  -----------------------------------------*/


/* =========================================================
   BLOG — INDEX & CARDS
   ========================================================= */

.inaeri-container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px;
}

.inaeri-blog {
  padding: clamp(48px, 8vh, 96px) 0;
}

.inaeri-blog__header {
  margin-bottom: clamp(32px, 6vh, 56px);
}

.inaeri-blog__header h1 {
  font-size: clamp(28px, 5vw, 48px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

/* Grid */
.inaeri-blog__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 32px;
}

/* Card */
.inaeri-blog-card {
  background: #fff;
  border-radius: var(--border-radius-lg, 12px);
  box-shadow: 0 0 0 1px rgba(0,0,0,0.10);
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.inaeri-blog-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.10), 0 0 0 1px rgba(0,0,0,0.12);
}

.inaeri-blog-card > a {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none !important;
  color: inherit;
}

/* Image */
.inaeri-blog-card__image {
  overflow: hidden;
  aspect-ratio: 3 / 2;  /* plus carré = mieux pour des visuels de blog */
  background: #f0f0f0;  /* placeholder pendant le chargement */
}

.inaeri-blog-card__image img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  transition: transform 0.4s ease;
}

.inaeri-blog-card:hover .inaeri-blog-card__image img {
  transform: scale(1.04);
}

/* Content */
.inaeri-blog-card__content {
  padding: 20px 24px 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.inaeri-blog-card__title {
  font-size: 1.15rem;
  font-weight: 500;
  line-height: 1.35;
  margin: 0 0 10px;
  color: #111;
}

.inaeri-blog-card__excerpt {
  font-size: 0.95rem;
  line-height: 1.6;
  opacity: 0.75;
  margin: 0 0 16px;
  flex: 1;
}

.inaeri-blog-card__date {
  font-size: 0.8rem;
  opacity: 0.5;
  margin: 0;
  letter-spacing: 0.02em;
}

/* Mobile */
@media (max-width: 768px) {
  .inaeri-blog__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}


/* =========================================================
   BLOG — ARTICLE
   ========================================================= */

.inaeri-blog-article {
  padding: clamp(48px, 8vh, 96px) 0;
}

/* Container plus étroit pour la lecture */
.inaeri-blog-article .inaeri-container {
  max-width: 760px;
}

/* Header */
.inaeri-blog-article__header {
  margin-bottom: clamp(24px, 4vh, 40px);
}

.inaeri-blog-article__title {
  font-size: clamp(28px, 5vw, 48px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0 0 12px;
}

.inaeri-blog-article__date {
  font-size: 0.85rem;
  opacity: 0.5;
  margin: 0;
  letter-spacing: 0.02em;
}

/* Image hero */
.inaeri-blog-article__image {
  margin-bottom: clamp(32px, 6vh, 56px);
  border-radius: 12px;
  overflow: hidden;
}

.inaeri-blog-article__image img {
  width: 100%;
  height: auto;
  display: block;
}

/* Contenu éditorial */
.inaeri-blog-article__content {
  font-size: 1.1rem;
  line-height: 1.75;
  color: #222;
}

.inaeri-blog-article__content h2 {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  margin: 2.5rem 0 1rem;
}

.inaeri-blog-article__content h3 {
  font-size: 1.25rem;
  font-weight: 600;
  margin: 2rem 0 0.75rem;
}

.inaeri-blog-article__content p {
  margin: 0 0 1.4em;
}

.inaeri-blog-article__content ul,
.inaeri-blog-article__content ol {
  padding-left: 1.4em;
  margin: 0 0 1.4em;
}

.inaeri-blog-article__content li {
  margin-bottom: 0.5em;
}

.inaeri-blog-article__content a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.inaeri-blog-article__content a:hover {
  opacity: 0.7;
}

.inaeri-blog-article__content strong {
  font-weight: 600;
}

.inaeri-blog-article__content blockquote {
  margin: 2rem 0;
  padding: 1.25rem 1.5rem;
  border-left: 3px solid rgba(0,0,0,0.15);
  font-style: italic;
  opacity: 0.8;
}

.inaeri-blog-article__content img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  margin: 1.5rem 0;
}

/* Mobile */
@media (max-width: 768px) {
  .inaeri-blog-article__content {
    font-size: 1rem;
  }
}

/* =========================================================
   TEMPLATE — CATALOGUE
   ========================================================= */

/* CATALOGUE — ALL TOURS */

.inaeri-catalogue {
  padding: 140px 0 80px;
}

.inaeri-catalogue__header {
  max-width: 850px;
}

.inaeri-catalogue__header h1 {
  margin: 0 0 24px;
}

.inaeri-catalogue__intro {
  max-width: 740px;
}

.inaeri-catalogue .home-tours__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.inaeri-catalogue .tour-card {
  min-width: 0;
}

@media (max-width: 1023px) {
  .inaeri-catalogue .home-tours__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 599px) {
  .inaeri-catalogue {
    padding: 110px 0 56px;
  }

  .inaeri-catalogue .home-tours__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}