/* ============================================================
   LVM Global (v3.3.0) - chargé sur TOUTES les pages
   Correctifs d'ergonomie et d'accessibilité du thème OceanWP +
   en-tête Elementor/ElementsKit, communs à tous les gabarits.
   ============================================================ */

/* ── Bouton hamburger : cible tactile 44 x 44 px sur tous les gabarits
      (il ne mesurait 44 px que sur les articles, 29 px ailleurs). ── */
@media (max-width: 1024px) {
  button.elementskit-menu-hamburger {
    min-width: 44px !important;
    min-height: 44px !important;
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    padding: 8px 10px !important;
    box-sizing: border-box !important;
  }
  button.elementskit-menu-hamburger .elementskit-menu-hamburger-icon {
    display: block !important;
    margin: 0 !important;
  }
  .elementskit-menu-close {
    min-width: 44px !important;
    min-height: 44px !important;
  }
}

/* ── Lien d'évitement : visible au focus clavier (il restait masqué,
      couleur orange 2:1). ── */
a.skip-link.screen-reader-text:focus,
a.skip-link:focus-visible {
  position: fixed !important;
  top: 12px !important;
  left: 12px !important;
  width: auto !important;
  height: auto !important;
  clip: auto !important;
  clip-path: none !important;
  overflow: visible !important;
  z-index: 100000 !important;
  padding: 12px 18px !important;
  border-radius: 8px !important;
  background: #1a1814 !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  box-shadow: 0 8px 24px rgba(0,0,0,.25) !important;
}

/* ── Couleur de lien du thème (orange rgba(255,165,0,.9), 1,97:1 sur blanc)
      dans les zones rendues par OceanWP : remplacée par la terra AA. ── */
.error404 #main a:not([class]),
.search-no-results #main a:not([class]),
#main .tax-desc a,
#main .blog-entry-title a,
#main .blog-entry-readmore a,
#comments a:not([class]),
.page-numbers { color: #A6603C; }

/* ── Focus visible cohérent sur les éléments interactifs custom ── */
.lvm-blog-archive a:focus-visible,
.lvm-blog-archive button:focus-visible,
.lvm-post-sticky-cta a:focus-visible,
.lvm-post-sticky-cta button:focus-visible,
.lvm-toc-toggle:focus-visible {
  outline: 3px solid #A6603C;
  outline-offset: 2px;
}

/* ── Images de contenu : jamais de débordement horizontal ── */
#main img { max-width: 100%; height: auto; }

/* ── Tableaux dans les pages Elementor (guides « page ») : jamais de débordement
      horizontal. Le conteneur du widget défile, le <table> reste display:table
      (cf. règle « tableaux d'article : conteneur défilant »). ── */
.elementor-widget-text-editor .elementor-widget-container:has(table),
.elementor-widget-html .elementor-widget-container:has(table),
.elementor-widget-container:has(> table),
.elementor-widget-container:has(> figure > table) {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

/* ── Carrousels Elementor (pages véhicules) : flèches 44 px, puces 12 px avec
      zone tactile élargie (mesuré 25 px et 6 px). ── */
.elementor-swiper-button {
  min-width: 44px !important;
  min-height: 44px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.swiper-pagination-bullet {
  width: 12px !important;
  height: 12px !important;
  margin: 0 8px !important;
  position: relative;
}
.swiper-pagination-bullet::after {
  content: '';
  position: absolute;
  inset: -12px;
}

/* ── Tableaux comparatifs des guides (section.lvm-compare-block dans le contenu,
      9 pages) : 800-970 px sans conteneur défilant, police 9,5 px (rem). Le
      défilement est porté par la section, le <table> reste display:table. ── */
.entry-content .lvm-compare-block {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  max-width: 100%;
}
.entry-content .lvm-compare-block table { font-size: 14px !important; }
.entry-content .lvm-compare-block th,
.entry-content .lvm-compare-block td { white-space: normal; min-width: 120px; }

/* ── Formulaire de contact (MetForm chargé en REST après le rendu) : hauteur
      réservée pour éviter le saut de page (CLS 0,31 mesuré), champs 16 px
      (pas de zoom iOS) et 44 px de haut. ── */
.elementor-widget-metform,
.elementor-element-bbf23d1.elementor-widget { min-height: 700px; }
@media (max-width: 767px) {
  .elementor-widget-metform,
  .elementor-element-bbf23d1.elementor-widget { min-height: 1100px; }
}
.mf-input, .mf-input-select, textarea.mf-input { font-size: 16px !important; min-height: 44px; }
.mf-input-label { min-height: 24px; display: inline-block; }

/* ── Fil d'Ariane Rank Math dans les articles construits avec Elementor : liens 24 px min. ── */
.rank-math-breadcrumb a, .site-breadcrumbs a, nav.rank-math-breadcrumb p a { display: inline-block; padding: 4px 0; }

/* ── Sections Elementor « étirées » (stretch section) : Elementor les élargit en
      JS plusieurs secondes après le rendu (hero contact 324 -> 360 px, texte
      recomposé, CLS 0,26). On leur donne d'emblée la largeur finale ; le JS
      pose ensuite les mêmes valeurs en inline, sans décalage. Limité aux
      écrans sans barre de défilement verticale (100vw exact). ── */
@media (max-width: 1024px) {
  .elementor-section-stretched:not([style*="width"]) {
    position: relative;
    width: 100vw;
    left: calc(50% - 50vw);
  }
}

/* ============================================================
   v3.4.0 — Bloc GetYourGuide (activités et visites guidées)
   Chargé partout (lvm-global.css) : road trips, hub, accueil, guides.
   ============================================================ */
.lvm-gyg {
  font-family: 'DM Sans', 'Poppins', 'Open Sans', system-ui, sans-serif;
  color: #1a1814;
  padding: clamp(36px, 5vw, 64px) 0;
  background: #FAF7F2;
  border-top: 1px solid rgba(26,24,20,.08);
  border-bottom: 1px solid rgba(26,24,20,.08);
}
.single-post .lvm-gyg,
.page .entry-content .lvm-gyg { margin: 44px 0 8px; border-radius: 16px; border: 1px solid rgba(26,24,20,.08); padding: 28px 20px 24px; }
.lvm-gyg-inner { max-width: 1200px; margin: 0 auto; padding: 0 clamp(16px, 4vw, 32px); }
.single-post .lvm-gyg .lvm-gyg-inner,
.page .entry-content .lvm-gyg .lvm-gyg-inner { padding: 0; }
.lvm-gyg-head { max-width: 760px; margin-bottom: 20px; }
.lvm-gyg-eyebrow {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #A6603C;
  margin-bottom: 8px;
}
.lvm-gyg h2.lvm-gyg-title {
  font-family: 'Instrument Serif', Georgia, serif;
  font-weight: 400;
  font-size: clamp(24px, 3vw, 34px);
  line-height: 1.15;
  letter-spacing: -.01em;
  color: #1a1814;
  margin: 0 0 10px;
  text-wrap: balance;
}
.lvm-gyg-intro { font-size: 16px; line-height: 1.6; color: rgba(26,24,20,.78); margin: 0; text-wrap: pretty; }
.lvm-gyg-widget { min-height: 470px; } /* hauteur mesurée de l'iframe 3 activités : 495 px desktop, 1 090 à 1 150 px mobile */
@media (max-width: 767px) { .lvm-gyg-widget { min-height: 1060px; } }
/* Le widget copie la couleur des liens de la page hôte (jaune du thème à 2:1) : on lui donne la terra AA. */
.lvm-gyg a, .lvm-gyg-widget a { color: #A6603C; }
.lvm-gyg-widget iframe { max-width: 100% !important; }
.lvm-gyg-fallback {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: #A6603C;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.lvm-gyg-widget iframe ~ .lvm-gyg-fallback,
.lvm-gyg-widget[data-gyg-rendered] .lvm-gyg-fallback { display: none; }
.lvm-gyg-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 24px;
  margin-top: 18px;
}
.lvm-gyg-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  padding: 0 24px;
  border-radius: 100px;
  background: #A6603C;
  color: #fff !important;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none !important;
  box-shadow: 0 6px 18px rgba(166,96,60,.28);
  transition: background .2s, transform .15s;
}
.lvm-gyg-btn:hover, .lvm-gyg-btn:focus-visible { background: #8F5434; transform: translateY(-1px); }
.lvm-gyg-disclosure { font-size: 12.5px; color: #6B665C; }
@media (max-width: 640px) {
  .lvm-gyg-btn { width: 100%; justify-content: center; }
}
