/*
Theme Name: Le Globe-Trotter
Theme URI: https://leglobetrotter.ch
Author: Le Globe-Trotter
Author URI: https://leglobetrotter.ch
Description: Thème WooCommerce sur-mesure pour Le Globe-Trotter — magasin outdoor & voyage à Genève. Construit avec Tailwind CSS, contenu piloté depuis l'admin (Personnaliser, menus, CPT FAQ), compatible Polylang.
Version: 2.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
WC requires at least: 7.0
WC tested up to: 8.8
Text Domain: leglobetrotter
Tags: woocommerce, e-commerce, outdoor, tailwind, custom-menu, featured-images, translation-ready
*/

/* ════════════════════════════════════════════════════════════════
   Le Globe-Trotter — feuille de style maison.

   Contient les VARIABLES de marque, les composants « socle » (définis en
   CSS pur pour fonctionner même sans build Tailwind), les animations, et
   les habillages qui ne s'expriment pas bien en utilitaires.
   Tailwind (build → assets/css/app.css, sinon CDN) fournit les utilitaires.
   ════════════════════════════════════════════════════════════════ */

:root {
  --lgt-olive:        #4E5C30;
  --lgt-olive-dark:   #3A4523;
  --lgt-olive-light:  #B9C48C;
  --lgt-gold:         #F0B321;
  --lgt-gold-dark:    #C7920F;
  --lgt-gold-darker:  #A6790C;
  --lgt-ink:          #111111;
  --lgt-cream:        #F0F0E3;
  --lgt-sand:         #FAF4E6;
  --lgt-mute:         #6B6B6B;
  --lgt-line:         #E0E0E0;
  --lgt-font-head: "Montserrat", system-ui, sans-serif;
  --lgt-font-body: "Inter", system-ui, sans-serif;
}

html { scroll-behavior: smooth; overflow-x: clip; }
body {
  margin: 0;
  max-width: 100%;
  overflow-x: clip; /* garde-fou anti-débordement horizontal (préserve position:sticky) */
  background: #ffffff;
  color: var(--lgt-ink);
  font-family: var(--lgt-font-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img { max-width: 100%; height: auto; }

/* Transition douce par défaut sur tous les liens (couleur, fond, opacité,
   ombre, transform) — garantit un survol animé partout sur le site. */
a {
  transition: color 0.2s ease, background-color 0.2s ease, opacity 0.2s ease,
              box-shadow 0.2s ease, transform 0.2s ease, background-size 0.3s ease;
}

/* Barre d'annonce : liens/emphase lisibles sur fond sombre */
.lgt-announcement a { color: #ffffff; text-decoration: underline; text-underline-offset: 2px; }
.lgt-announcement a:hover { color: var(--lgt-gold); }
.lgt-announcement strong, .lgt-announcement b { color: #ffffff; }

/* Logo : survol léger */
.custom-logo-link, .lgt-logo-link {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  transition: opacity 0.2s ease;
}
.custom-logo-link:hover, .lgt-logo-link:hover { opacity: 0.8; }

/* Bouton blanc de la bannière E-Shop — survol animé */
.lgt-banner-btn { transition: background-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease, gap 0.2s ease; }
.lgt-banner-btn:hover {
  background: #F0F0E3 !important;
  transform: translateY(-3px);
  box-shadow: 0 10px 26px rgba(17, 17, 17, 0.18);
  gap: 14px;
}
.lgt-banner-btn__arrow { transition: transform 0.25s ease; }
.lgt-banner-btn:hover .lgt-banner-btn__arrow { transform: translateX(4px); }

/* ─────────────────────────────────────────────
   LOGO (custom_logo WordPress + SVG)
   Force une taille visible : les SVG sans width/height intrinsèques
   sont rendus en 0×0 par le markup de WordPress.
   ───────────────────────────────────────────── */
.custom-logo-link { display: inline-flex; align-items: center; }
.custom-logo,
.custom-logo-link img,
#lgt-header .custom-logo,
#lgt-header .custom-logo-link img {
  height: clamp(20px, 2.2vw, 19px) !important;
  width: auto !important;
  max-width: 260px;
  display: block;
  margin-bottom: 9px;
}

/* Sous « xl » (menu réduit au burger) : logo plus compact pour laisser la place aux icônes.
   NB : hauteur EXPLICITE (les SVG sans dimensions intrinsèques valent 0 en height:auto). */
@media (max-width: 1279px) {
  #lgt-header .custom-logo,
  #lgt-header .custom-logo-link img,
  .lgt-logo-link img {
    height: 18px !important;
    width: auto !important;
    max-width: 170px !important;
  }
  .lgt-header-actions { 
	  gap: 12px !important;
	  width: 100%;
      justify-content: flex-end;
  }
}

/* ─────────────────────────────────────────────
   0 · COMPOSANTS SOCLE (CSS pur, toujours disponibles)
   ───────────────────────────────────────────── */
.lgt-container {
  max-width: 1800px;
  margin-inline: auto;
  padding: clamp(16px, 4vw, 64px);
}
.lgt-kicker {
  font-family: var(--lgt-font-head);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--lgt-olive);
}
.lgt-h2 {
  font-family: var(--lgt-font-head);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  color: var(--lgt-ink);
  font-size: clamp(28px, 4.5vw, 42px);
  line-height: 1.1;
}
.lgt-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--lgt-font-head);
  font-weight: 700;
  font-size: 12.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 17px 30px;
  border: 0;
  cursor: pointer;
  line-height: 1;
}
.lgt-btn-ghost {
  border: 2px solid var(--lgt-ink);
  color: var(--lgt-ink);
  background: transparent;
  padding: 15px 30px;
  transition: background .2s, color .2s, border-color .2s, transform .2s;
}
.lgt-btn-ghost:hover {
  background: var(--lgt-olive);
  color: #fff;
  border-color: var(--lgt-olive);
  transform: translateY(-3px);
}

/* Héros clair 40/60 */
.lgt-hero { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
.lgt-hero__text { padding: clamp(48px, 8vw, 110px) clamp(24px, 5vw, 72px); }
.lgt-hero__media { min-height: clamp(360px, 78vh, 760px); padding: 40px; }
.lgt-hero__logo { margin: 20px 0; }
@media (max-width: 900px) {
  .lgt-hero { grid-template-columns: 1fr; }
  .lgt-hero__media { min-height: 46vh; padding: 0; }
}
/* Garde-fou anti-débordement du contenu textuel sur petits écrans */
@media (max-width: 640px) {
  .lgt-hero__text { padding-left: 20px !important; padding-right: 20px !important; }
  .lgt-hero__text h1 { font-size: clamp(28px, 8vw, 40px) !important; }
  .lgt-hero__text p,
  .lgt-hero__text h1 { max-width: 100% !important; overflow-wrap: break-word; word-wrap: break-word; }
}

/* Lignes de catégories éditoriales */
.lgt-cat-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(16px, 3vw, 32px);
  padding: clamp(18px, 3vw, 26px) clamp(8px, 1.5vw, 16px);
  border-bottom: 1px solid var(--lgt-line);
  text-decoration: none;
  transition: background .2s;
}
.lgt-cat-row:nth-child(even) {
  flex-direction: row-reverse;
}

.lgt-cat-row:hover { background: #F5F5F5; }
.lgt-cat-row--gift { background: var(--lgt-sand); padding-right: 64px; }
.lgt-cat-row--gift:hover { background: #F3E8C9; }
.lgt-cat-thumb {
  width: 50vw;
  height: 400px;
  background-size: cover;
  background-position: center;
  background-color: white;
}
.lgt-cat-thumb--empty {
  background-image: repeating-linear-gradient(45deg, #ececec 0 10px, #f5f5f5 10px 20px);
}
@media (max-width: 900px) {
  .lgt-cat-thumb { 
	width: 80vw;
  }
}
@media (max-width: 900px) {
	.lgt-cat-thumb { 
		width: 100%;
		height: 300px;
	}
	svg.shrink-0 {
		display: none;
	}	
}

/* Marques */
.lgt-brand {
  color: rgba(17,17,17,0.5);
  transition: box-shadow .2s, transform .2s, color .2s;
}
.lgt-brand:hover {
  box-shadow: 0 6px 22px rgba(17,17,17,0.13);
  transform: translateY(-3px) scale(1.02);
  color: var(--lgt-ink);
}

/* Icônes réseaux sociaux (footer) */
.lgt-social {
  width: 36px; height: 36px;
  border: 1px solid rgba(255,255,255,0.25);
  color: rgba(255,255,255,0.6);
  transition: border-color .2s, color .2s;
}
.lgt-social:hover { border-color: var(--lgt-gold); color: var(--lgt-gold); }

/* Badge « Bon cadeau » flottant */
.lgt-gift-badge {
  right: 0; top: 50%;
  transform: translateY(-50%);
  z-index: 90;
  background: var(--lgt-gold-dark);
  color: #fff;
  padding: 16px 9px;
  border-radius: 8px 0 0 8px;
  box-shadow: 0 10px 28px rgba(17,17,17,0.28);
  transition: background .2s, transform .2s;
}
.lgt-gift-badge:hover {
  background: var(--lgt-gold-darker);
  transform: translateY(-50%) translateX(-6px);
}

/* Icônes info magasin */
.lgt-store-ic { width: 42px; height: 42px; }

/* Sélecteur de langue (Polylang) */
.lgt-lang ul { list-style: none; display: flex; gap: 10px; margin: 0; padding: 0; }
.lgt-lang li { margin: 0; }
.lgt-lang a {
  font-family: var(--lgt-font-head);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--lgt-mute);
  text-decoration: none;
  transition: color .2s;
}
.lgt-lang a:hover, .lgt-lang .current-lang a { color: var(--lgt-olive); }
.lgt-lang--mobile a { font-size: 14px; }

/* Barre de recherche déroulante (animée : max-height + opacité) */
.lgt-search-bar {
  border-top: 1px solid transparent;
  background: #fff;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.35s cubic-bezier(0.4,0.01,0.2,1), opacity 0.28s ease, border-color 0.2s ease;
}
.lgt-search-bar.is-open {
  max-height: 140px;
  opacity: 1;
  border-top-color: var(--lgt-line);
}
.lgt-search-bar form { display: flex; gap: 10px; max-width: 640px; margin-inline: auto; }
.lgt-search-bar input[type="search"],
.lgt-search-bar input[type="text"] {
  flex: 1 1 auto;
  border: 1px solid var(--lgt-line);
  padding: 14px 18px;
  font-size: 15px;
  outline: none;
}
.lgt-search-bar input:focus { border-color: var(--lgt-olive); }
.lgt-search-bar button {
  background: var(--lgt-olive);
  color: #fff; border: 0;
  padding: 0 24px; cursor: pointer;
  font-family: var(--lgt-font-head); font-weight: 700; text-transform: uppercase;
  font-size: 12px; letter-spacing: 0.1em;
}

/* Lien souligné (marques → voir toutes) */
.lgt-link-underline { border-bottom: 1px solid var(--lgt-ink); transition: color .2s, border-color .2s; }
.lgt-link-underline:hover { color: var(--lgt-olive); border-color: var(--lgt-olive); }

/* Cartes de blog + contenu éditorial */
.lgt-card { transition: box-shadow .25s, transform .25s; }
.lgt-card:hover { box-shadow: 0 16px 40px rgba(17,17,17,0.1); transform: translateY(-3px); }
.lgt-card__media img { aspect-ratio: 16/10; object-fit: cover; }

/* ═══════════════════════════════════════════════════════════════
   CONTENU ÉDITORIAL (.lgt-entry) — habillage de TOUS les blocs Gutenberg
   pour les pages, articles et actualités saisis dans l'éditeur.
   ═══════════════════════════════════════════════════════════════ */
.lgt-entry { font-size: 16.5px; line-height: 1.75; max-width: 1060px; color: var(--lgt-ink); }
/* Rythme vertical : entre les blocs de premier niveau, mais aussi à
   l'intérieur des conteneurs de flux (colonne, groupe, citation…) — sans
   quoi deux paragraphes imbriqués dans une même colonne se retrouvent collés. */
:where(.lgt-entry, .lgt-entry .wp-block-group, .lgt-entry .wp-block-column, .lgt-entry .wp-block-quote) > * + * {
  margin-top: 1.15em;
}

/* Titres */
.lgt-entry h1, .lgt-entry h2, .lgt-entry h3, .lgt-entry h4, .lgt-entry h5, .lgt-entry h6 {
  font-family: var(--lgt-font-head);
  color: var(--lgt-ink);
  letter-spacing: -0.01em;
  line-height: 1.15;
}
.lgt-entry h1 { font-weight: 900; text-transform: uppercase; font-size: clamp(28px,3.4vw,40px); margin-top: 1.4em; }
.lgt-entry h2 { font-weight: 800; text-transform: uppercase; font-size: clamp(23px,2.6vw,30px); margin-top: 1.7em; }
.lgt-entry h3 { font-weight: 800; font-size: clamp(19px,2vw,23px); margin-top: 1.5em; }
.lgt-entry h4 { font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; font-size: 16px; margin-top: 1.4em; }
.lgt-entry h5 { font-weight: 700; font-size: 15px; margin-top: 1.3em; }
.lgt-entry h6 { font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; font-size: 13px; color: var(--lgt-mute); margin-top: 1.3em; }
.lgt-entry :is(h1,h2,h3,h4,h5,h6):first-child { margin-top: 0; }

/* Paragraphes, liens, emphase */
.lgt-entry p, .lgt-entry .wp-block-paragraph { margin: 0 0 10px 0; }
.lgt-entry a { color: var(--lgt-olive); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.lgt-entry a:hover { color: var(--lgt-gold-dark); }
.lgt-entry strong, .lgt-entry b { font-weight: 700; }
.lgt-entry mark, .lgt-entry .has-inline-color { border-radius: 2px; }
.lgt-entry mark { background: var(--lgt-sand); padding: 0 3px; }

/* Réglages typographiques de la barre d'outils bloc (alignement, taille,
   fond) — s'appliquent à n'importe quel bloc (paragraphe, titre, liste…). */
.lgt-entry .has-text-align-left   { text-align: left; }
.lgt-entry .has-text-align-center { text-align: center; }
.lgt-entry .has-text-align-right  { text-align: right; }
.lgt-entry .has-small-font-size   { font-size: 0.85em; }
.lgt-entry .has-medium-font-size  { font-size: 1.1em; }
.lgt-entry .has-large-font-size   { font-size: 1.4em; line-height: 1.4; }
.lgt-entry .has-x-large-font-size,
.lgt-entry .has-huge-font-size    { font-size: 1.9em; line-height: 1.25; }
.lgt-entry .wp-block-paragraph.has-background { padding: 1em 1.3em; border-radius: 2px; }
.lgt-entry .has-drop-cap:first-letter { font-family: var(--lgt-font-head); font-weight: 900; font-size: 3.4em; line-height: 0.8; float: left; margin: 6px 10px 0 0; color: var(--lgt-olive); }
.lgt-entry code, .lgt-entry kbd {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.9em; background: #F2F2EC; padding: 2px 6px; border-radius: 3px;
}
.lgt-entry pre, .lgt-entry .wp-block-code, .lgt-entry .wp-block-preformatted {
  background: var(--lgt-ink); color: #F5F5EE; padding: 20px 22px; overflow: auto;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 14px; line-height: 1.6;
}
.lgt-entry pre code, .lgt-entry .wp-block-code code { background: none; color: inherit; padding: 0; }

/* Listes */
.lgt-entry ul, .lgt-entry ol { padding-left: 1.4em; margin: 0; }
.lgt-entry li { margin: 6px 0; }
.lgt-entry li > ul, .lgt-entry li > ol { margin-top: 6px; }
.lgt-entry ul { list-style: none; padding-left: 1.5em; }
.lgt-entry ul > li { position: relative; }
.lgt-entry ul > li::before {
  content: ""; position: absolute; left: -1.15em; top: 0.62em;
  width: 7px; height: 7px; background: var(--lgt-gold); border-radius: 1px;
}
.lgt-entry ol { list-style: decimal; }
.lgt-entry ol > li::marker { color: var(--lgt-olive); font-weight: 700; }

/* <address> (fiches d'adresse WooCommerce, etc.) : neutralise l'italique
   par défaut du navigateur, garde une ligne par ligne lisible. */
.lgt-entry address { font-style: normal; line-height: 1.7; margin: 0; }

/* Citations */
.lgt-entry blockquote, .lgt-entry .wp-block-quote {
  border-left: 3px solid var(--lgt-gold);
  padding: 4px 0 4px 22px; margin: 1.6em 0 1.6em 0;
  color: var(--lgt-ink); font-size: 1.12em; font-style: italic;
}
.lgt-entry blockquote cite, .lgt-entry .wp-block-quote cite {
  display: block; margin-top: 10px; font-size: 0.72em; font-style: normal;
  font-family: var(--lgt-font-head); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--lgt-mute);
}
.lgt-entry .wp-block-pullquote {
  border: 0; border-top: 3px solid var(--lgt-ink); border-bottom: 3px solid var(--lgt-ink);
  padding: 28px 0; text-align: center;
}
.lgt-entry .wp-block-pullquote p { font-family: var(--lgt-font-head); font-weight: 800; font-size: clamp(20px,2.4vw,28px); text-transform: uppercase; letter-spacing: -0.01em; font-style: normal; }

/* Images, figures, légendes */
.lgt-entry img { display: block; height: auto; }
.lgt-entry figure { margin: 1.6em 0; }
.lgt-entry figure img, .lgt-entry .wp-block-image img { width: 100%; }
.lgt-entry .wp-block-image.is-style-rounded img, .lgt-entry img.is-style-rounded { border-radius: 10px; }
.lgt-entry figcaption, .lgt-entry .wp-element-caption {
  margin-top: 10px; font-size: 13px; color: var(--lgt-mute); text-align: center; font-style: italic;
}
.lgt-entry .wp-block-image.alignleft, .lgt-entry .alignleft { float: left; margin: 6px 28px 18px 0; max-width: 50%; }
.lgt-entry .wp-block-image.alignright, .lgt-entry .alignright { float: right; margin: 6px 0 18px 28px; max-width: 50%; }
.lgt-entry .aligncenter { margin-inline: auto; text-align: center; }

/* Galerie */
.lgt-entry .wp-block-gallery { gap: 12px; }
.lgt-entry .wp-block-gallery img { border-radius: 4px; }

/* Séparateur */
.lgt-entry hr, .lgt-entry .wp-block-separator {
  border: 0; height: 1px; background: var(--lgt-line); margin: 2.4em 0; opacity: 1;
}
.lgt-entry .wp-block-separator.is-style-dots { background: none; text-align: center; }
.lgt-entry .wp-block-separator.is-style-wide { max-width: none; }

/* Tableaux */
.lgt-entry table, .lgt-entry .wp-block-table table {
  width: 100%; border-collapse: collapse; font-size: 15px; margin: 1.6em 0;
}
.lgt-entry th, .lgt-entry td { border: 1px solid var(--lgt-line); padding: 12px 14px; text-align: left; vertical-align: top; }
.lgt-entry thead th {
  background: var(--lgt-cream); font-family: var(--lgt-font-head); font-weight: 700;
  text-transform: uppercase; font-size: 12px; letter-spacing: 0.06em;
}
.lgt-entry tbody tr:nth-child(even) { background: #FAFAF6; }
.lgt-entry .wp-block-table.is-style-stripes td { border: 0; }
.lgt-entry .wp-block-table figcaption { text-align: left; }

/* Boutons */
.lgt-entry .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 14px; list-style: none; padding: 0; }
.lgt-entry .wp-block-button__link, .lgt-entry .wp-element-button {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--lgt-olive); color: #fff; border-radius: 0;
  font-family: var(--lgt-font-head); font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.1em; font-size: 12.5px; padding: 15px 28px; text-decoration: none;
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.lgt-entry .wp-block-button__link:hover, .lgt-entry .wp-element-button:hover {
  background: var(--lgt-olive-dark); transform: translateY(-2px); box-shadow: 0 10px 24px rgba(78,92,48,0.28);
}
.lgt-entry .wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent; color: var(--lgt-ink); border: 2px solid var(--lgt-ink);
}
.lgt-entry .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--lgt-olive); color: #fff; border-color: var(--lgt-olive); }

/* Colonnes, médias, embeds */
.lgt-entry .wp-block-columns { gap: clamp(20px,3vw,40px); margin: 1.6em 0; }
.lgt-entry .wp-block-embed, .lgt-entry .wp-block-video, .lgt-entry iframe { margin: 1.6em 0; max-width: 100%; }
.lgt-entry .wp-block-embed__wrapper { position: relative; }

/* Encadré / groupe coloré */
.lgt-entry .wp-block-group.has-background, .lgt-entry .is-style-lgt-note {
  padding: clamp(20px,3vw,32px);
}
.lgt-entry .wp-block-media-text { margin: 1.6em 0; gap: clamp(20px,3vw,40px); }

/* Pagination */
.lgt-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 42px; height: 42px; padding: 0 12px; margin: 0 3px;
  border: 1px solid var(--lgt-line); text-decoration: none;
  font-family: var(--lgt-font-head); font-weight: 700; color: var(--lgt-ink);
  transition: background .2s, color .2s, border-color .2s;
}
.lgt-pagination .page-numbers.current,
.lgt-pagination .page-numbers:hover { background: var(--lgt-olive); color: #fff; border-color: var(--lgt-olive); }
.lgt-pagination .screen-reader-text { position: absolute; clip: rect(1px,1px,1px,1px); height: 1px; width: 1px; overflow: hidden; }

/* ─────────────────────────────────────────────
   1 · SOULIGNEMENT DORÉ ANIMÉ (menu principal + footer)
   ───────────────────────────────────────────── */
.lgt-nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  font-family: var(--lgt-font-head);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--lgt-ink);
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0 0 4px;
  background-image: linear-gradient(var(--lgt-gold), var(--lgt-gold));
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 0% 2px;
  transition: color 0.25s ease, background-size 0.34s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.lgt-nav-link:hover,
.lgt-nav-link:focus-visible,
.lgt-nav-link[aria-expanded="true"] {
  color: var(--lgt-olive);
  background-size: 100% 2px;
  outline: none;
}
.lgt-nav-link.current-menu-item { color: var(--lgt-olive); background-size: 100% 2px; }

.lgt-foot-link {
  display: inline-block;
  font-family: var(--lgt-font-body);
  font-size: 13.5px;
  color: rgba(255, 255, 255, 0.55);
  text-decoration: none;
  background-image: linear-gradient(var(--lgt-gold), var(--lgt-gold));
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 0% 1px;
  padding-bottom: 1px;
  transition: color 0.2s ease, background-size 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.lgt-foot-link:hover, .lgt-foot-link:focus-visible { color: #fff; background-size: 100% 1px; outline: none; }
.lgt-foot-legal .lgt-foot-link { font-size: 12px; color: rgba(255,255,255,0.4); }

/* ─────────────────────────────────────────────
   1b · PIED DE PAGE (fond blanc, minimal)
   ───────────────────────────────────────────── */
.lgt-footer {
  background: #ffffff;
  color: var(--lgt-ink);
  padding: 0;
}
.lgt-footer__rule {
  height: 3px;
  background: var(--lgt-ink);
  margin: 0 0 clamp(36px, 5vw, 56px);
}
.lgt-footer__main {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: clamp(28px, 4vw, 56px);
}
@media (max-width: 860px) { .lgt-footer__main { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .lgt-footer__main { grid-template-columns: 1fr; } }

.lgt-footer__col {
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 2vw, 22px);
  align-items: flex-start;
}
.lgt-footer__link {
  font-family: var(--lgt-font-head);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--lgt-ink);
  text-decoration: none;
  transition: color 0.2s ease, padding-left 0.2s ease;
}
.lgt-footer__link:hover { color: var(--lgt-olive); padding-left: 3px; }

/* Élément « Bon cadeau » accentué (or foncé, lisible sur blanc) */
.lgt-footer .lgt-foot-gift {
  color: var(--lgt-gold-dark) !important;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.lgt-footer .lgt-foot-gift:hover { color: var(--lgt-gold-darker) !important; }

.lgt-footer__aside {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 3vw, 28px);
  align-items: flex-start;
}
.lgt-footer__socials { display: flex; align-items: center; gap: 18px; }
.lgt-social2 {
  color: var(--lgt-ink);
  display: inline-flex;
  transition: color 0.2s ease, transform 0.2s ease;
}
.lgt-social2:hover { color: var(--lgt-olive); transform: translateY(-2px); }

/* Coordonnées (adresse GMB, téléphone, e-mail) */
.lgt-footer__contact { display: flex; flex-direction: column; gap: 6px; }
.lgt-footer__contact p { margin: 0; font-family: var(--lgt-font-body); font-size: 14px; line-height: 1.6; color: var(--lgt-ink); }
.lgt-footer__contact-link { color: var(--lgt-ink); text-decoration: none; transition: color 0.2s ease; }
.lgt-footer__contact-link:hover { color: var(--lgt-olive); }

.lgt-footer__legal { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.lgt-footer__legal-link {
  font-family: var(--lgt-font-body);
  font-size: 14px;
  color: var(--lgt-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.2s ease;
}
.lgt-footer__legal-link:hover { color: var(--lgt-olive); }

.lgt-footer__copy {
  font-family: var(--lgt-font-body);
  font-size: 14px;
  color: var(--lgt-ink);
  margin: 0;
}

.lgt-footer__bottom {
  margin-top: clamp(48px, 8vw, 96px);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: 18px 24px;
}
.lgt-footer__tagline { margin-top: 0; }
.lgt-footer__tagline-line {
  display: block;
  width: 150px;
  height: 2px;
  background: var(--lgt-ink);
  margin-bottom: 14px;
}
.lgt-footer__tagline p {
  font-family: var(--lgt-font-body);
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.5;
  color: var(--lgt-mute);
  margin: 0;
}

/* Crédit développeur — discret, en bas à droite */
.lgt-footer__credit {
  margin: 0;
  font-family: var(--lgt-font-body);
  font-size: 11.5px;
  letter-spacing: 0.02em;
  color: rgba(17, 17, 17, 0.35);
}
.lgt-footer__credit a {
  color: rgba(17, 17, 17, 0.45);
  text-decoration: none;
  transition: color 0.2s ease;
}
.lgt-footer__credit a:hover { color: var(--lgt-olive); text-decoration: underline; text-underline-offset: 2px; }

.lgt-nav-link .lgt-chevron { transition: transform 0.2s ease; }
.lgt-nav-link[aria-expanded="true"] .lgt-chevron { transform: rotate(180deg); }

/* ─────────────────────────────────────────────
   2 · MENU DÉROULANT E-SHOP
   ───────────────────────────────────────────── */
.lgt-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  width: 280px;
  background: #ffffff;
  border-top: 2px solid var(--lgt-olive);
  box-shadow: 0 16px 40px rgba(17, 17, 17, 0.14);
  padding: 8px 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
  z-index: 60;
}
.lgt-has-dropdown:hover .lgt-dropdown,
.lgt-dropdown.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
.lgt-dropdown a {
  display: block;
  padding: 12px 24px;
  font-family: var(--lgt-font-body);
  font-size: 13px;
  font-weight: 500;
  color: var(--lgt-ink);
  text-decoration: none;
  transition: background 0.15s, color 0.15s, padding-left 0.15s, box-shadow 0.15s;
}
.lgt-dropdown a:hover {
  background: #F5F3EC;
  color: var(--lgt-olive);
  padding-left: 28px;
  box-shadow: inset 3px 0 0 var(--lgt-gold);
}

/* ─────────────────────────────────────────────
   3 · KEYFRAMES & ANIMATIONS
   ───────────────────────────────────────────── */
@keyframes lgtPulse  { 0%, 100% { opacity: 0.25; } 50% { opacity: 1; } }
@keyframes lgtFadeUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes lgtShimmer { 0% { background-position: -260% center; } 100% { background-position: 260% center; } }

.lgt-fade-up { animation: lgtFadeUp 0.7s ease both; }
.lgt-pulse { animation: lgtPulse 1.8s ease-in-out infinite; }

.lgt-btn-olive { transition: background 0.25s, transform 0.22s, box-shadow 0.22s, gap 0.2s; }
.lgt-btn-olive:hover {
  background: linear-gradient(105deg, #3A4523 0%, #4E5C30 32%, #8B9440 52%, #4E5C30 72%, #3A4523 100%);
  background-size: 260% auto;
  animation: lgtShimmer 1.5s linear infinite;
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(78, 92, 48, 0.38);
}

/* ─────────────────────────────────────────────
   4 · MENU MOBILE (bouton burger animé, panneau, voile)
   ───────────────────────────────────────────── */

/* Bouton burger → croix */
.lgt-burger {
  position: relative;
  width: 30px; height: 24px;
  background: none; border: 0; padding: 0; margin: 0;
  cursor: pointer;
  display: inline-flex; flex-direction: column; justify-content: center; align-items: center;
}
/* Cette règle (dans style.css, chargé après Tailwind) doit rétablir la
   disparition du burger sur desktop, car .lgt-burger ci-dessus surchargerait
   sinon l'utilitaire xl:hidden. Breakpoint aligné sur « xl » (1280px) : le menu
   complet (6 entrées) ne tient sur une ligne qu'à partir de cette largeur. */
@media (min-width: 1280px) {
  .lgt-burger { display: none !important; }
}
.lgt-burger__bar {
  position: absolute;
  left: 3px; right: 3px;
  height: 2px;
  background: var(--lgt-ink);
  border-radius: 2px;
  transition: transform 0.32s cubic-bezier(0.4,0.01,0.2,1), opacity 0.2s ease, top 0.32s ease;
}
.lgt-burger__bar:nth-child(1) { top: 6px; }
.lgt-burger__bar:nth-child(2) { top: 11px; }
.lgt-burger__bar:nth-child(3) { top: 16px; }
.lgt-burger[aria-expanded="true"] .lgt-burger__bar:nth-child(1) { top: 11px; transform: rotate(45deg); }
.lgt-burger[aria-expanded="true"] .lgt-burger__bar:nth-child(2) { opacity: 0; transform: scaleX(0.4); }
.lgt-burger[aria-expanded="true"] .lgt-burger__bar:nth-child(3) { top: 11px; transform: rotate(-45deg); }

/* Panneau mobile — position: fixed (hors du flux normal du document).
   Important : s'il restait dans le flux (position statique), son passage de
   max-height:0 à 78vh repousserait tout le contenu en dessous, et le
   « scroll anchoring » du navigateur compense ce changement de mise en page
   en décalant la position de défilement — d'où un menu qui semblait
   « se rouvrir en haut de page » au lieu de rester ancré sous le header.
   En fixed, son ouverture n'affecte plus jamais la mise en page ni le
   défilement. Le JS (main.js) positionne `top` dynamiquement sous le header. */
.lgt-mobile-panel {
  position: fixed;
  left: 0;
  right: 0;
  top: 100%; /* remplacé dynamiquement en JS par le bas réel du header */
  z-index: 95;
  border-top: 1px solid var(--lgt-line);
  background: #ffffff;
  overflow: hidden;
  overflow-anchor: none;
  max-height: 0;
  opacity: 0;
  visibility: hidden;
  transition: max-height 0.38s cubic-bezier(0.4,0.01,0.2,1), opacity 0.28s ease, visibility 0s linear 0.38s, padding 0.38s ease;
  padding: 0;
}
.lgt-mobile-panel.is-open {
  max-height: 78vh;
  opacity: 1;
  visibility: visible;
  overflow: auto;
  padding: 8px 0 16px;
  transition: max-height 0.42s cubic-bezier(0.4,0.01,0.2,1), opacity 0.3s ease, visibility 0s, padding 0.42s ease;
}
.lgt-mobile-sub {
  display: flex;
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height 0.32s ease, opacity 0.25s ease;
}
.lgt-mobile-sub.is-open { max-height: 600px; opacity: 1; }

/* Voile de fond */
.lgt-menu-overlay {
  position: fixed;
  inset: 0;
  background: rgba(17,17,17,0.45);
  z-index: 90;
  opacity: 0;
  transition: opacity 0.32s ease;
}
.lgt-menu-overlay.is-visible { opacity: 1; }

/* Verrouillage du scroll quand le menu est ouvert */
html.lgt-menu-open { overflow: hidden; }

/* Accent « Bon cadeau » dans les menus */
.lgt-dropdown__gift,
.lgt-mobile-gift {
  display: flex !important;
  align-items: center;
  gap: 9px;
  color: var(--lgt-gold-dark) !important;
  font-weight: 600;
}
.lgt-dropdown__gift {
  margin-top: 6px;
  border-top: 1px solid var(--lgt-line);
  padding-top: 13px !important;
}
.lgt-dropdown__gift:hover { background: #FAF4E6 !important; color: var(--lgt-gold-darker) !important; box-shadow: inset 3px 0 0 var(--lgt-gold) !important; }
.lgt-mobile-gift { color: var(--lgt-gold-dark) !important; }
.lgt-foot-gift { display: inline-flex; align-items: center; gap: 8px; color: var(--lgt-gold) !important; }
.lgt-foot-gift .lgt-gift-ic { flex: 0 0 auto; }

/* ─────────────────────────────────────────────
   4b · FIL D'ARIANE (Yoast / WooCommerce)
   ───────────────────────────────────────────── */
.lgt-breadcrumb, .lgt-breadcrumb.woocommerce-breadcrumb {
  font-family: var(--lgt-font-head);
  font-weight: 600;
  font-size: 11.5px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--lgt-mute);
  margin: 0 0 14px;
}
.lgt-breadcrumb a { color: var(--lgt-olive); text-decoration: none; }
.lgt-breadcrumb a:hover { color: var(--lgt-gold-dark); }
.lgt-breadcrumb .breadcrumb_last, .lgt-breadcrumb [aria-current="page"] { color: var(--lgt-ink); }
/* séparateur Yoast (»/›) discret */
.lgt-breadcrumb { --sep-color: var(--lgt-line); }

/* ─────────────────────────────────────────────
   4c · FAQ (bloc Yoast + section d'accueil)
   Le bloc FAQ de Yoast génère .schema-faq / .schema-faq-section
   avec micro-données. On l'habille comme un accordéon visuel.
   ───────────────────────────────────────────── */
/* Bloc FAQ Yoast : liste Q/R stylée qui remplit sa colonne (le nombre de
   colonnes du layout est géré dans l'éditeur : ex. colonne titre | colonne FAQ).
   Ajoutez la classe « lgt-faq-2col » au bloc FAQ pour scinder les questions
   elles-mêmes en deux colonnes. */
.wp-block-yoast-seo-faq-block,
.wp-block-yoast-faq-block,
.schema-faq { width: 100%; }

/* Option : questions sur deux colonnes (classe lgt-faq-2col sur le bloc) */
.schema-faq.lgt-faq-2col, .lgt-faq-2col .schema-faq {
  columns: 2;
  column-gap: clamp(32px, 5vw, 64px);
}
@media (max-width: 720px) {
  .schema-faq.lgt-faq-2col, .lgt-faq-2col .schema-faq { columns: 1; }
}

.schema-faq-section {
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  border-bottom: 1px solid var(--lgt-line);
  padding: 20px 0;
}
.schema-faq-section:first-child { border-top: 1px solid var(--lgt-line); }
.schema-faq-section .schema-faq-question {
  font-family: var(--lgt-font-head);
  font-weight: 700;
  font-size: 15.5px;
  line-height: 1.4;
  color: var(--lgt-ink);
  margin: 0 0 10px;
  position: relative;
  padding-left: 30px;
  display: inline-block;
}
.schema-faq-section .schema-faq-question::before {
  content: "";
  position: absolute; left: 0; top: 2px;
  width: 18px; height: 18px;
  background-image: url(/wp-content/themes/le-globe-trotter/assets/img/logo-icon.svg);
  background-repeat: no-repeat;
/*   background:
    linear-gradient(var(--lgt-gold),var(--lgt-gold)) center/12px 2px no-repeat,
    linear-gradient(var(--lgt-gold),var(--lgt-gold)) center/2px 12px no-repeat; */
}
.schema-faq-section .schema-faq-answer {
  font-family: var(--lgt-font-body);
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--lgt-mute);
  padding-left: 30px;
}
.schema-faq-section .schema-faq-answer a { color: var(--lgt-olive); }
.schema-faq-section .schema-faq-answer p { margin: 0 0 8px; }

/* En-tête de section « FAQ » optionnel avant le bloc Yoast */
.lgt-faq-heading {
  max-width: 1120px;
  margin: 0 auto clamp(20px,4vw,36px);
  font-family: var(--lgt-font-head);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  font-size: clamp(28px,4.5vw,42px);
  line-height: 1.1;
}

/* ─────────────────────────────────────────────
   4d · SECTION ACTUALITÉS (slider)
   ───────────────────────────────────────────── */
.lgt-news { padding: 0 0 clamp(48px,7vw,90px) 0; background: #ffffff; }
.lgt-news__head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 20px; margin-bottom: clamp(24px,4vw,44px);
}
.lgt-news__nav { display: flex; gap: 10px; flex-shrink: 0; }
.lgt-news__arrow {
  width: 46px; height: 46px; border-radius: 50%;
  border: 1px solid var(--lgt-line); background: #fff; color: var(--lgt-ink);
  display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease, opacity .2s ease;
}
.lgt-news__arrow:hover:not(:disabled) { background: var(--lgt-ink); color: #fff; border-color: var(--lgt-ink); transform: translateY(-2px); }
.lgt-news__arrow:disabled { opacity: 0.3; cursor: default; }
@media (max-width: 640px) { .lgt-news__nav { display: none; } }

.lgt-news__track {
  display: flex;
  gap: clamp(16px, 2vw, 28px);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  cursor: grab;
  padding-bottom: 4px;
}
.lgt-news__track::-webkit-scrollbar { display: none; }
.lgt-news__track.is-grabbing { cursor: grabbing; }
.lgt-news__card { flex: 0 0 auto; width: clamp(260px, 30%, 380px); scroll-snap-align: start; }
.lgt-news__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #EDEDED; }
.lgt-news__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.lgt-news__card:hover .lgt-news__media img { transform: scale(1.04); }
.lgt-news__ph { display: block; width: 100%; height: 100%; background: repeating-linear-gradient(45deg,#ececec 0 10px,#f5f5f5 10px 20px); }
.lgt-news__title {
  margin: 16px 0 0;
  font-family: var(--lgt-font-head); font-weight: 800; text-transform: uppercase;
  letter-spacing: -0.01em; font-size: clamp(15px,1.3vw,18px); line-height: 1.25;
}
.lgt-news__title a { color: var(--lgt-ink); text-decoration: none; }
.lgt-news__title a:hover { color: var(--lgt-olive); }
.lgt-news__foot { margin-top: clamp(24px,4vw,36px); }

/* Blocs éditoriaux isolés déposés sur la page d'accueil (hors sections) :
   la page d'accueil n'a pas de wrapper .lgt-entry (le_content y mélange
   les sections shortcode pleine largeur avec, potentiellement, n'importe
   quel bloc Gutenberg — ex. le bloc FAQ de Yoast, un paragraphe, une liste…).
   On les centre et on leur donne une largeur de lecture… */
.home #content > .wp-block-heading,
.home #content > .wp-block-paragraph,
.home #content > p,
.home #content > ul,
.home #content > ol,
.home #content > blockquote,
.home #content > figure,
.home #content > table,
.home #content > .wp-block-table,
.home #content > .wp-block-buttons,
.home #content > hr,
.home #content > .wp-block-group,
.home #content > .wp-block-columns,
.home #content > .wp-block-yoast-seo-faq-block,
.home #content > .schema-faq {
  max-width: 1120px;
  margin-inline: auto;
  margin-block: 1.15em;
  padding-inline: clamp(16px, 4vw, 64px);
}
.home #content > .wp-block-heading { margin-top: clamp(40px,6vw,72px); }

/* …et on leur applique la même typographie éditoriale que .lgt-entry
   (titres, paragraphes, listes, citations, tableaux, boutons), en ciblant
   uniquement les classes/balises propres aux blocs Gutenberg : les sections
   maison (héros, catégories, bannière…) n'utilisent ni classes wp-block-*
   ni balises ul/ol/blockquote/table/hr, donc rien ici ne peut interférer
   avec leur habillage Tailwind. */
.home #content .wp-block-heading { font-family: var(--lgt-font-head); color: var(--lgt-ink); letter-spacing: -0.01em; line-height: 1.15; }
.home #content h2.wp-block-heading { font-weight: 800; text-transform: uppercase; font-size: clamp(23px,2.6vw,30px); }
.home #content h3.wp-block-heading { font-weight: 800; font-size: clamp(19px,2vw,23px); }
.home #content h4.wp-block-heading { font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; font-size: 16px; }
.home #content .wp-block-paragraph, .home #content > p { font-size: 16.5px; line-height: 1.75; color: var(--lgt-ink); }
.home #content .wp-block-paragraph a, .home #content > p a,
.home #content ul a, .home #content ol a, .home #content blockquote a {
  color: var(--lgt-olive); text-decoration: underline; text-underline-offset: 3px;
}
.home #content .wp-block-paragraph a:hover, .home #content > p a:hover { color: var(--lgt-gold-dark); }
.home #content ul, .home #content ol { padding-left: 1.5em; margin: 0; list-style: none; }
.home #content ol { list-style: decimal; padding-left: 1.4em; }
.home #content li { margin: 6px 0; position: relative; }
.home #content ul > li::before {
  content: ""; position: absolute; left: -1.15em; top: 0.62em;
  width: 7px; height: 7px; background: var(--lgt-gold); border-radius: 1px;
}
.home #content blockquote {
  border-left: 3px solid var(--lgt-gold); padding: 4px 0 4px 22px;
  font-size: 1.12em; font-style: italic; color: var(--lgt-ink);
}
.home #content table, .home #content .wp-block-table table {
  width: 100%; border-collapse: collapse; font-size: 15px;
}
.home #content th, .home #content td { border: 1px solid var(--lgt-line); padding: 12px 14px; text-align: left; vertical-align: top; }
.home #content thead th { background: var(--lgt-cream); font-family: var(--lgt-font-head); font-weight: 700; text-transform: uppercase; font-size: 12px; letter-spacing: 0.06em; }
.home #content hr { border: 0; height: 1px; background: var(--lgt-line); }
.home #content .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 14px; list-style: none; padding: 0; }
.home #content .wp-block-button__link, .home #content .wp-element-button {
  display: inline-flex; align-items: center; gap: 8px; background: var(--lgt-olive); color: #fff;
  font-family: var(--lgt-font-head); font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em;
  font-size: 12.5px; padding: 15px 28px; text-decoration: none; transition: background .2s ease, transform .2s ease;
}
.home #content .wp-block-button__link:hover, .home #content .wp-element-button:hover { background: var(--lgt-olive-dark); transform: translateY(-2px); }

/* ─────────────────────────────────────────────
   5 · ACCESSIBILITÉ
   ───────────────────────────────────────────── */
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
#content:focus { outline: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}


.tnp-subscription form {
	display: flex;
	justify-content: center;
}

.tnp-subscription .tnp-field label {
	display: none;
}