/* FMG WP Kit - CSS commun minimal.
   Regle projet : preferer les reglages WordPress/Astra/Spectra avant d'ajouter du CSS.
   Polices chargees via Google Fonts dans fmg-wp-kit.php (voir TODO self-hosted prod). */

.fmg-section {
  margin-block: 3rem;
}

/* Parapente home v3 - corrections recette largeur/cascade.
   Ces regles gagnent volontairement contre Astra et les styles de blocs WP. */

html body:has(.fmg-parapente-home),
body:has(.fmg-parapente-home) {
  background: #f6f1e6 !important;
}

body:has(.fmg-parapente-home) .site-header,
body:has(.fmg-parapente-home) .entry-header,
body:has(.fmg-parapente-home) .site-footer {
  display: none !important;
}

body:has(.fmg-parapente-home) .site-content,
body:has(.fmg-parapente-home) .ast-container,
body:has(.fmg-parapente-home) .content-area,
body:has(.fmg-parapente-home) .site-main,
body:has(.fmg-parapente-home) .entry-content,
body:has(.fmg-parapente-home) article,
body:has(.fmg-parapente-home) .type-page {
  float: none !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

.entry-content > .fmg-parapente-home,
.fmg-parapente-home {
  --fmg-pvl-yellow: #ffd24d;
  --fmg-pvl-soft: #f6f1e6;
  box-sizing: border-box;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

.fmg-parapente-home *,
.fmg-parapente-home *::before,
.fmg-parapente-home *::after {
  box-sizing: border-box;
}

.fmg-parapente-home :where(a, a:hover, a:focus, a:visited) {
  text-decoration: none !important;
}

.fmg-parapente-home :where(p, li, input) {
  font-family: Inter, Arial, sans-serif;
  font-weight: 400;
}

.fmg-parapente-home :where(h1, h2, h3, .fmg-parapente-logo) {
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif;
  font-weight: 800;
  letter-spacing: 0;
}

.fmg-parapente-home :where(.wp-block-button__link, .fmg-link-arrow a, .fmg-view-all-link a) {
  font-family: Inter, Arial, sans-serif;
  font-weight: 700;
  letter-spacing: 0;
}

.fmg-parapente-home h2 {
  font-size: clamp(2.45rem, 3.4vw, 4rem);
  line-height: 0.95;
}

.fmg-parapente-home h3 {
  font-size: 1.55rem;
  line-height: 1.08;
}

.fmg-parapente-hero.wp-block-cover {
  width: 100vw !important;
  max-width: none !important;
  min-height: min(820px, 100vh) !important;
  margin-inline: calc(50% - 50vw) !important;
  background-color: #0d2b45;
}

.fmg-parapente-hero .wp-block-cover__inner-container {
  width: min(1680px, calc(100vw - 96px)) !important;
  max-width: none !important;
}

.fmg-parapente-hero-nav.wp-block-group {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center !important;
  column-gap: clamp(2rem, 5vw, 5rem);
  inset-block-start: clamp(40px, 6vw, 82px) !important;
  inset-inline: clamp(32px, 5vw, 88px) !important;
}

.fmg-parapente-hero-nav .fmg-parapente-logo {
  color: #ffffff !important;
  opacity: 1 !important;
}

.fmg-parapente-home-nav.wp-block-navigation {
  justify-self: end;
  justify-content: flex-end !important;
  gap: clamp(1.35rem, 2.6vw, 3.5rem) !important;
}

.fmg-parapente-home-nav :where(a, .wp-block-navigation-item__content) {
  color: #ffffff !important;
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif !important;
  font-size: clamp(1.05rem, 1.25vw, 1.45rem) !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}

.fmg-nav-subscribe .wp-block-button__link {
  background: #ffd24d !important;
  border-color: #ffd24d !important;
  color: #070707 !important;
  font-size: 1rem !important;
  padding: 0.72rem 1.25rem !important;
}

.fmg-parapente-hero-content.wp-block-group {
  max-width: 760px !important;
  margin-block-start: clamp(210px, 29vh, 310px) !important;
  margin-inline-start: clamp(56px, 8vw, 144px) !important;
}

.fmg-hero-kicker {
  color: #ffd24d !important;
  border-bottom-color: #ffd24d !important;
  font-size: 1.65rem !important;
}

.fmg-parapente-hero-content h1 {
  font-size: clamp(4.9rem, 6vw, 6.9rem) !important;
  line-height: 0.9 !important;
  max-width: 9ch;
}

.fmg-parapente-hero-content .fmg-parapente-script {
  color: #ffd24d !important;
  display: block;
  width: max-content;
  max-width: 100%;
  white-space: nowrap;
}

.fmg-parapente-slider-dots {
  display: flex !important;
  gap: 0.5rem !important;
}

.fmg-parapente-slider-dots span {
  width: 26px !important;
  height: 26px !important;
}

.fmg-hero-tear {
  width: 100vw !important;
  max-width: none !important;
  height: 92px !important;
  margin-block-start: -92px !important;
  margin-inline: calc(50% - 50vw) !important;
  background: #f6f1e6 !important;
  clip-path: polygon(0 36%, 4% 44%, 8% 34%, 12% 48%, 17% 40%, 22% 58%, 28% 45%, 34% 63%, 40% 49%, 47% 69%, 54% 55%, 61% 72%, 68% 48%, 75% 42%, 82% 56%, 89% 43%, 95% 50%, 100% 35%, 100% 100%, 0 100%) !important;
}

.fmg-parapente-section {
  width: min(1320px, calc(100vw - 150px)) !important;
  max-width: none !important;
  padding-block: 3.25rem !important;
}

.fmg-parapente-news {
  padding-block-start: 2.7rem !important;
}

.fmg-parapente-news-grid.wp-block-columns {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 2.2rem !important;
}

.fmg-parapente-news-grid > .wp-block-column {
  flex-basis: auto !important;
  width: auto !important;
}

.fmg-card {
  background: #ffffff;
}

.fmg-card-featured {
  min-height: 470px !important;
  padding-block-start: 15rem !important;
}

.fmg-card-featured .fmg-link-arrow a {
  color: #ffd24d !important;
  font-family: Inter, Arial, sans-serif !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}

.fmg-compact-list.wp-block-group {
  display: grid !important;
  grid-template-rows: repeat(3, 1fr);
  gap: 1.35rem !important;
  height: 100%;
}

.fmg-compact-card.wp-block-media-text {
  display: grid !important;
  grid-template-columns: 38% minmax(0, 1fr) !important;
  gap: 1.35rem !important;
  min-height: 0;
}

.fmg-compact-card h3 {
  font-size: 1.35rem !important;
}

.fmg-link-arrow a,
.fmg-view-all-link a {
  text-decoration: none !important;
}

.fmg-link-arrow a {
  color: #070707 !important;
  font-size: 1rem !important;
}

.fmg-card-grid.wp-block-columns {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 2.1rem !important;
}

.fmg-card-grid > .wp-block-column {
  min-width: 0 !important;
  width: auto !important;
}

.fmg-button-secondary .wp-block-button__link,
.fmg-parapente-home .fmg-button-secondary .wp-block-button__link {
  border: 3px solid #ffd24d !important;
  background: transparent !important;
  color: #070707 !important;
  font-family: Inter, Arial, sans-serif !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  padding: 0.82rem 2.1rem !important;
  text-decoration: none !important;
}

.fmg-gear-card {
  background: #ffec79 !important;
}

.fmg-view-all-link a {
  color: #ffd24d !important;
  font-size: 1rem !important;
}

.fmg-parapente-school-cta.wp-block-cover {
  width: min(1320px, calc(100vw - 150px)) !important;
  max-width: none !important;
  min-height: 300px !important;
  margin: 0 auto 2.8rem !important;
}

.fmg-parapente-school-cta .wp-block-cover__image-background {
  object-fit: cover !important;
  object-position: center 44% !important;
}

.fmg-parapente-school-cta .wp-block-cover__inner-container {
  display: flex !important;
  flex-direction: column;
  align-items: center !important;
  justify-content: center !important;
  min-height: 300px !important;
}

.fmg-parapente-school-cta h2 {
  text-align: center !important;
}

.fmg-magazine-subtitle {
  color: #070707 !important;
  font-family: Caveat, "Segoe Print", cursive !important;
  font-size: 1.7rem !important;
}

.fmg-magazine-grid.wp-block-columns {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 4rem !important;
}

.fmg-magazine-grid img {
  max-height: 380px !important;
}

.fmg-parapente-footer {
  width: 100vw !important;
  max-width: none !important;
  margin-inline: calc(50% - 50vw) !important;
  padding: 2.8rem max(64px, calc((100vw - 1320px) / 2)) !important;
  background: #f6f1e6 !important;
}

.fmg-parapente-footer-grid.wp-block-columns {
  display: grid !important;
  grid-template-columns: 1.35fr 0.85fr 0.85fr 1.4fr !important;
  align-items: start !important;
  gap: 4rem !important;
}

.fmg-parapente-footer-grid > .wp-block-column {
  width: auto !important;
  min-width: 0 !important;
}

.fmg-placeholder {
  outline: 1px dashed currentColor;
  padding: 1rem;
}

/* Parapente home v2.
   Styles strictement namespaces pour deployer la home test sans theme enfant. */

body.home,
body.page-id-83 {
  background: #ffffff;
}

body.home .site-header,
body.page-id-83 .site-header,
body.home .entry-header,
body.page-id-83 .entry-header,
body.home .site-footer,
body.page-id-83 .site-footer {
  display: none;
}

body.home .site-content .ast-container,
body.page-id-83 .site-content .ast-container {
  display: block;
  max-width: none;
  padding: 0;
}

body.home .content-area,
body.page-id-83 .content-area,
body.home .site-main,
body.page-id-83 .site-main,
body.home .entry-content,
body.page-id-83 .entry-content {
  margin: 0;
  padding: 0;
  width: 100%;
}

.fmg-parapente-home {
  --fmg-pvl-black: #070707;
  --fmg-pvl-ink: #0b1018;
  --fmg-pvl-yellow: #ffe24d;
  --fmg-pvl-soft: #f6f1e6;
  --fmg-pvl-white: #ffffff;
  background: var(--fmg-pvl-white);
  color: var(--fmg-pvl-black);
  overflow: hidden;
}

.fmg-parapente-home,
.fmg-parapente-home :where(p, a, li, input) {
  font-family: Inter, Arial, sans-serif;
}

.fmg-parapente-home :where(h1, h2, h3, .fmg-parapente-logo, .fmg-button-primary a, .fmg-button-secondary a, .fmg-link-arrow a) {
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.fmg-parapente-home a {
  text-decoration: none;
}

.fmg-parapente-home h1 {
  max-width: 8.5ch;
  font-size: clamp(4rem, 7vw, 7.6rem);
  line-height: 0.9;
  margin: 0;
  color: var(--fmg-pvl-white);
}

.fmg-parapente-home h2 {
  color: var(--fmg-pvl-black);
  font-size: clamp(3.25rem, 5vw, 5.7rem);
  line-height: 0.86;
  margin-block: 0 2rem;
}

.fmg-parapente-home h3 {
  color: var(--fmg-pvl-black);
  font-size: 2.05rem;
  line-height: 0.98;
  margin-block: 0.45rem 0.8rem;
}

.fmg-parapente-hero {
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  overflow: visible;
}

.fmg-parapente-hero .wp-block-cover__inner-container {
  width: min(1540px, calc(100vw - 96px));
  margin-inline: auto;
}

.fmg-parapente-hero-nav {
  position: absolute;
  inset-block-start: 58px;
  inset-inline: 48px;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 2rem;
  justify-content: space-between;
  margin-inline: auto;
  max-width: 1540px;
}

.fmg-parapente-logo {
  color: var(--fmg-pvl-white);
  font-size: clamp(4rem, 6vw, 6.6rem);
  line-height: 0.78;
  margin: 0;
  text-shadow: 0 2px 14px rgb(0 0 0 / 0.22);
}

.fmg-parapente-logo span {
  display: block;
  width: max-content;
  margin-inline: auto;
  padding: 0.08rem 0.65rem;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-family: Inter, Arial, sans-serif;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.22em;
}

.fmg-parapente-home-nav {
  gap: clamp(1.1rem, 2vw, 2.2rem);
  align-items: center;
}

.fmg-parapente-home-nav a,
.fmg-parapente-home-nav .wp-block-navigation-item__content {
  color: var(--fmg-pvl-white);
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif;
  font-size: 1.35rem;
  font-weight: 900;
  text-decoration: none;
  text-transform: uppercase;
  text-shadow: 0 2px 12px rgb(0 0 0 / 0.3);
}

/* Navbar (toutes les pages) : texte jaune #FFD24D au survol ET sur l'item de la
   page courante. !important pour battre la regle blanche (qui a !important).
   Memes selecteurs pour le markup menu classique (a.menu-link) et bloc nav. */
.fmg-parapente-home-nav a:hover,
.fmg-parapente-home-nav .wp-block-navigation-item__content:hover,
.fmg-parapente-home-nav .current-menu-item > a,
.fmg-parapente-home-nav .current_page_item > a,
.fmg-parapente-home-nav .current-menu-item .wp-block-navigation-item__content,
.fmg-parapente-home-nav .current_page_item .wp-block-navigation-item__content {
  color: #FFD24D !important;
  text-decoration: none !important;
}

.fmg-nav-subscribe .wp-block-button__link {
  padding: 0.65rem 1.2rem;
  min-width: 0;
  font-size: 1.05rem;
}

.fmg-parapente-hero-content {
  max-width: 640px;
  margin-block-start: 17.5rem;
  color: var(--fmg-pvl-white);
}

.fmg-parapente-kicker {
  color: var(--fmg-pvl-yellow);
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif;
  font-size: 1.45rem;
  font-weight: 900;
  line-height: 1;
  margin-block: 0 0.65rem;
  text-transform: uppercase;
}

.fmg-hero-kicker {
  display: inline-block;
  border-bottom: 3px solid var(--fmg-pvl-yellow);
  font-size: 2.15rem;
}

.fmg-parapente-script {
  color: var(--fmg-pvl-yellow);
  font-family: Caveat, "Segoe Print", cursive;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.15;
}

.fmg-button-primary .wp-block-button__link,
.fmg-parapente-home .fmg-button-primary .wp-block-button__link {
  border: 2px solid var(--fmg-pvl-yellow);
  border-radius: 0;
  background: var(--fmg-pvl-yellow);
  color: var(--fmg-pvl-black);
  font-size: 1.55rem;
  font-weight: 900;
  line-height: 1;
  padding: 0.78rem 1rem;
  text-transform: uppercase;
}

.fmg-button-secondary .wp-block-button__link,
.fmg-parapente-home .fmg-button-secondary .wp-block-button__link {
  border: 3px solid var(--fmg-pvl-yellow);
  border-radius: 0;
  background: transparent;
  color: var(--fmg-pvl-black);
  font-size: 1.35rem;
  font-weight: 900;
  line-height: 1;
  padding: 0.85rem 1.9rem;
  text-transform: uppercase;
}

.fmg-parapente-slider-dots {
  display: flex;
  gap: 0.55rem;
  margin-block-start: 2.4rem;
}

.fmg-parapente-slider-dots span {
  display: block;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: var(--fmg-pvl-white);
}

.fmg-hero-tear {
  position: relative;
  z-index: 2;
  height: 74px;
  margin-block-start: -74px;
  background: var(--fmg-pvl-white);
  clip-path: polygon(0 42%, 6% 50%, 11% 38%, 18% 44%, 23% 31%, 30% 43%, 36% 30%, 43% 48%, 50% 44%, 57% 61%, 64% 38%, 71% 34%, 78% 50%, 86% 35%, 93% 44%, 100% 31%, 100% 100%, 0 100%);
}

.fmg-parapente-section {
  width: min(1360px, calc(100vw - 128px));
  margin: 0 auto;
  padding-block: 4.8rem;
}

.fmg-section-heading-row,
.fmg-section-subrow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

.fmg-section-heading-row h2,
.fmg-section-subrow p {
  margin: 0;
}

.fmg-search-icon {
  flex: 0 0 auto;
  display: block;
  width: 34px;
  height: 34px;
  border: 3px solid var(--fmg-pvl-black);
  border-radius: 999px;
  position: relative;
  /* Lien vers la page Forum (la loupe est un <a>). */
  cursor: pointer;
  text-decoration: none;
}

.fmg-search-icon::after {
  position: absolute;
  right: -10px;
  bottom: -7px;
  width: 14px;
  height: 3px;
  background: var(--fmg-pvl-black);
  content: "";
  transform: rotate(45deg);
}

/* ===========================================================================
   RECHERCHE NAVBAR « loupe qui se deplie » (form role=search -> WP ?s=)
   La loupe est le <button> submit (garde .fmg-search-icon). En DOM le champ est
   AVANT le bouton, mais on inverse visuellement (flex-direction: row-reverse) :
   la LOUPE est a gauche (collee a « Forum ») et le champ se deplie a SA DROITE
   au clic (piloté par js/fmg-nav-search.js via la classe .is-open).
   Repli sans JS : le clic soumet le champ (recherche native, aucune regression).
   =========================================================================== */
.fmg-nav-search {
  display: inline-flex;
  align-items: center;
  flex-direction: row-reverse; /* loupe a gauche, champ a droite */
  gap: 0;                      /* pas d'ecart loupe/champ quand le champ est replie */
  flex: 0 0 auto;
  margin: 0;
}

/* Le bouton loupe : on neutralise les styles UA du <button>, il ne garde que le
   rond dessine par .fmg-search-icon (+ ::after la poignee). */
.fmg-nav-search button.fmg-search-icon {
  background: transparent;
  padding: 0;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}

/* Champ replie par defaut : largeur nulle, invisible, non focusable.
   Les !important battent la regle Astra `input[type="search"]{width:100%;
   padding:12px 16px}` (specificite 0,1,1) qui, sinon, garde le champ large a
   gauche de la loupe et cree l'ecart avec « Forum ». */
.fmg-nav-search__field {
  width: 0 !important;
  min-width: 0 !important;
  box-sizing: border-box;
  padding: 0 !important;
  border: 0 !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--fmg-pvl-black);
  font-family: Inter, Arial, sans-serif;
  font-size: 1.05rem;
  line-height: 1.2;
  opacity: 0;
  pointer-events: none;
  overflow: hidden;
  transition: width .35s ease, opacity .3s ease, padding .35s ease, margin .35s ease, border-color .3s ease;
}

.fmg-nav-search__field::placeholder {
  color: inherit;
  opacity: 0.7;
}

/* Champ deplie (classe posee par le JS au clic sur la loupe) : se deploie a
   DROITE de la loupe, avec un petit espace loupe -> champ. */
.fmg-nav-search.is-open .fmg-nav-search__field {
  width: clamp(150px, 20vw, 240px) !important;
  opacity: 1;
  pointer-events: auto;
  padding: 6px 8px !important;
  margin-inline-start: 12px;
  border-bottom-color: currentColor !important;
}

/* Variante claire (navbar posee sur image sombre) : texte + soulignement blancs. */
.fmg-nav-search--light .fmg-nav-search__field {
  color: var(--fmg-pvl-white);
}

.fmg-parapente-news-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.95fr);
  gap: 2.2rem;
  align-items: stretch;
}

.fmg-card {
  background: var(--fmg-pvl-white);
  min-height: 100%;
}

.fmg-card > :where(p, h3) {
  padding-inline: 1.7rem;
}

.fmg-card > :last-child {
  padding-block-end: 1.55rem;
}

.fmg-card figure {
  margin: 0;
}

.fmg-card img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.fmg-card-featured {
  position: relative;
  min-height: 520px;
  overflow: hidden;
  padding-block-start: 19rem;
  color: var(--fmg-pvl-white);
}

.fmg-card-featured::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 38%, rgb(0 0 0 / 0.78));
  content: "";
}

.fmg-card-featured > :not(figure) {
  position: relative;
  z-index: 1;
}

.fmg-card-featured figure {
  position: absolute;
  inset: 0;
}

.fmg-card-featured img {
  height: 100%;
  aspect-ratio: auto;
}

.fmg-card-featured h3,
.fmg-card-featured p,
.fmg-card-featured a {
  color: var(--fmg-pvl-white);
}

.fmg-card-featured .fmg-link-arrow a {
  color: var(--fmg-pvl-yellow);
  text-decoration: none;
}

.fmg-compact-list {
  display: grid;
  gap: 2.1rem;
}

.fmg-compact-card {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 2rem;
  align-items: center;
  background: transparent;
}

.fmg-compact-card img {
  width: 100%;
  aspect-ratio: 1.28;
  object-fit: cover;
}

.fmg-compact-card h3 {
  font-size: 2rem;
  margin-block: 0.2rem 0.35rem;
}

.fmg-compact-card p {
  margin: 0;
}

.fmg-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.2rem;
}

.fmg-card-grid .wp-block-column {
  min-width: 0;
}

.fmg-link-arrow a {
  color: var(--fmg-pvl-black);
  font-size: 1.2rem;
  font-weight: 900;
  text-decoration: none;
  text-transform: uppercase;
}

.fmg-section-subtitle {
  margin-block: -1.4rem 1.5rem;
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif;
  font-size: 1.25rem;
  font-weight: 900;
  text-transform: uppercase;
}

.fmg-view-all-link a {
  color: var(--fmg-pvl-yellow);
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif;
  font-size: 1.35rem;
  font-weight: 900;
  text-transform: uppercase;
}

.fmg-parapente-gear .fmg-card-grid {
  margin-block-start: 1.2rem;
}

.fmg-gear-card {
  background: #ffec79;
  padding-block: 1.35rem 1.8rem;
}

.fmg-gear-card img {
  max-height: 220px;
  aspect-ratio: 1.2;
  object-fit: contain;
  padding: 1rem;
}

.fmg-parapente-school-cta {
  width: min(1360px, calc(100vw - 128px));
  margin: 0 auto 2.8rem;
}

.fmg-parapente-school-cta .wp-block-cover__inner-container {
  display: grid;
  place-items: center;
  min-height: 100%;
  text-align: center;
}

.fmg-parapente-school-cta h2 {
  max-width: 978px;
  color: var(--fmg-pvl-white);
  margin: 0 auto 1.6rem;
}

.fmg-parapente-magazines .fmg-parapente-script {
  margin-block-start: -1.25rem;
}

.fmg-magazine-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4rem;
  align-items: start;
  margin-block: 2.5rem 3.2rem;
  text-align: center;
}

.fmg-magazine-grid img {
  max-height: 430px;
  width: auto;
  object-fit: contain;
}

.fmg-parapente-footer {
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  padding: 3rem max(48px, calc((100vw - 1360px) / 2));
  border-top: 1px solid #d5d5d5;
  background: var(--fmg-pvl-white);
}

.fmg-parapente-footer-grid {
  display: grid;
  grid-template-columns: 1.35fr 0.85fr 0.85fr 1.4fr;
  gap: 4rem;
}

.fmg-parapente-footer .fmg-parapente-logo {
  color: var(--fmg-pvl-black);
  font-size: 3.9rem;
  text-shadow: none;
}

.fmg-parapente-footer h3 {
  font-size: 1.25rem;
  margin: 0 0 1rem;
}

.fmg-parapente-footer p,
.fmg-parapente-footer a {
  color: var(--fmg-pvl-black);
  font-size: 0.98rem;
}

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

.fmg-newsletter-form {
  display: flex;
  margin-block-start: 1rem;
}

.fmg-newsletter-form input {
  flex: 1 1 auto;
  min-width: 0;
  border: 1px solid var(--fmg-pvl-yellow);
  padding: 0.7rem 0.85rem;
}

.fmg-newsletter-form button {
  border: 0;
  background: var(--fmg-pvl-yellow);
  color: var(--fmg-pvl-black);
  cursor: pointer;
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif;
  font-weight: 900;
  padding: 0.7rem 1rem;
  text-transform: uppercase;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
  min-width: max-content !important;
}

@media (max-width: 980px) {
  .fmg-parapente-hero .wp-block-cover__inner-container,
  .fmg-parapente-section,
  .fmg-parapente-school-cta {
    width: min(100% - 40px, 1360px);
  }

  .fmg-parapente-hero-nav {
    inset-inline: 20px;
  }

  .fmg-parapente-news-grid,
  .fmg-card-grid,
  .fmg-magazine-grid,
  .fmg-parapente-footer-grid {
    grid-template-columns: 1fr;
  }

  .fmg-card-featured {
    min-height: 420px;
  }
}

@media (max-width: 782px) {
  .fmg-parapente-hero {
    min-height: 660px !important;
  }

  .fmg-parapente-hero-nav {
    position: relative;
    inset: auto;
    padding-block-start: 1.5rem;
  }

  .fmg-parapente-home-nav {
    display: none;
  }

  .fmg-parapente-hero-content {
    margin-block-start: 5rem;
  }

  .fmg-parapente-section {
    padding-block: 3.2rem;
  }

  .fmg-compact-card {
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 1rem;
  }

  .fmg-compact-card h3 {
    font-size: 1.6rem;
  }

  .fmg-newsletter-form {
    display: grid;
  }
}

/* Parapente home v4 - typographies charte chargees localement. */

.fmg-parapente-home :where(h1, h2, .fmg-parapente-logo) {
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 800;
  font-style: normal;
  letter-spacing: 0;
}

.fmg-parapente-home :where(h3, .fmg-parapente-kicker, .fmg-section-subtitle) {
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 700;
  font-style: normal;
  letter-spacing: 0;
}

.fmg-parapente-home :where(p, li, input) {
  font-family: Inter, Arial, sans-serif;
  font-weight: 400;
  font-style: normal;
}

.fmg-parapente-home :where(a, .wp-block-button__link, button, .fmg-link-arrow a, .fmg-view-all-link a),
.fmg-newsletter-form button {
  font-family: Inter, Arial, sans-serif !important;
  font-weight: 500 !important;
  font-style: normal !important;
  letter-spacing: 0 !important;
}

.fmg-parapente-home :where(.fmg-parapente-script, .fmg-magazine-subtitle) {
  font-family: Caveat, cursive !important;
  font-weight: 600 !important;
  font-style: normal !important;
  letter-spacing: 0 !important;
}

/* Compatibilité Gutenberg : le bouton Gras génère strong/b. */
.fmg-parapente-home :where(strong, b),
.fmg-parapente-home .has-bold-font-weight {
  font-weight: 700 !important;
}

.fmg-parapente-home-nav :where(a, .wp-block-navigation-item__content) {
  font-family: "Barlow Condensed", sans-serif !important;
  font-weight: 700 !important;
}

.fmg-button-primary .wp-block-button__link,
.fmg-parapente-home .fmg-button-primary .wp-block-button__link,
.fmg-button-secondary .wp-block-button__link,
.fmg-parapente-home .fmg-button-secondary .wp-block-button__link {
  font-family: Inter, Arial, sans-serif !important;
  font-weight: 500;
}

/* Compatibilité Gutenberg : gras dans le libellé d'un bloc Bouton. */
.fmg-parapente-home .wp-block-button__link :where(strong, b),
.fmg-parapente-home .wp-block-button__link.has-bold-font-weight {
  font-weight: 700 !important;
}

/* Parapente home v5 - ajustements fins hero selon mockup client. */

.fmg-parapente-hero.wp-block-cover {
  min-height: 760px !important;
}

.fmg-parapente-hero .wp-block-cover__inner-container {
  width: 100% !important;
  max-width: none !important;
}

.fmg-parapente-hero-nav.wp-block-group {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto !important;
  width: calc(100vw - 96px) !important;
  max-width: none !important;
  margin: 0 !important;
  inset-block-start: 58px !important;
  inset-inline-start: 48px !important;
  inset-inline-end: 48px !important;
  column-gap: 4.6rem !important;
  align-items: start !important;
}

.fmg-parapente-hero-nav .fmg-parapente-logo {
  justify-self: start !important;
  color: #ffffff !important;
  font-family: "Barlow Condensed", sans-serif !important;
  font-size: clamp(5.2rem, 6.8vw, 7rem) !important;
  font-weight: 800 !important;
  line-height: 0.74 !important;
  letter-spacing: -0.01em !important;
  transform: scaleX(0.78);
  transform-origin: left top;
  white-space: nowrap !important;
}

.fmg-parapente-hero-nav .fmg-parapente-logo span {
  transform: scaleX(1.22);
}

.fmg-parapente-home-nav.wp-block-navigation,
.fmg-parapente-home-nav .wp-block-navigation__container {
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: clamp(1.6rem, 2.2vw, 3rem) !important;
  width: 100% !important;
}

.fmg-parapente-home-nav :where(a, .wp-block-navigation-item__content) {
  color: #ffffff !important;
  font-family: "Barlow Condensed", sans-serif !important;
  font-size: clamp(1.25rem, 1.45vw, 1.7rem) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}

.fmg-nav-subscribe {
  justify-self: end !important;
}

.fmg-nav-subscribe .wp-block-button__link {
  min-width: 148px !important;
  padding: 0.86rem 1.25rem !important;
  font-size: 1.03rem !important;
}

.fmg-parapente-hero-content.wp-block-group {
  max-width: 760px !important;
  margin-block-start: 255px !important;
  margin-inline-start: clamp(90px, 8.6vw, 150px) !important;
}

.fmg-hero-kicker {
  font-size: 1.85rem !important;
  line-height: 0.95 !important;
  border-bottom-width: 3px !important;
  padding-bottom: 0.08rem !important;
}

.fmg-parapente-hero-content h1 {
  max-width: none !important;
  margin-block: 1.55rem 1.25rem !important;
  color: #ffffff !important;
  font-family: "Barlow Condensed", sans-serif !important;
  font-size: clamp(5.45rem, 6.6vw, 7rem) !important;
  font-weight: 800 !important;
  line-height: 0.91 !important;
  letter-spacing: 0 !important;
  white-space: normal !important;
}

.fmg-parapente-hero-content .fmg-parapente-script {
  color: #ffd24d !important;
  font-family: Caveat, cursive !important;
  font-size: clamp(2.05rem, 2.25vw, 2.55rem) !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  margin-block: 0 2rem !important;
  white-space: nowrap !important;
}

.fmg-parapente-hero-content .fmg-button-primary .wp-block-button__link {
  padding: 1rem 1.25rem !important;
  font-size: 1.38rem !important;
  line-height: 1 !important;
}

.fmg-parapente-slider-dots {
  display: flex !important;
  visibility: visible !important;
  gap: 0.58rem !important;
  margin-block-start: 2.15rem !important;
  position: relative !important;
  z-index: 5 !important;
}

.fmg-parapente-slider-dots span {
  width: 30px !important;
  height: 30px !important;
  box-shadow: 0 1px 6px rgb(0 0 0 / 0.18);
}

.fmg-hero-tear {
  height: 116px !important;
  margin-block-start: -116px !important;
  background: #f6f1e6 !important;
  clip-path: polygon(0 46%, 5% 52%, 10% 45%, 15% 54%, 20% 47%, 25% 57%, 31% 48%, 36% 64%, 42% 51%, 48% 70%, 54% 58%, 60% 76%, 66% 50%, 72% 44%, 78% 61%, 84% 48%, 90% 56%, 96% 45%, 100% 38%, 100% 100%, 0 100%) !important;
}

/* Parapente home v6 - composition fluide et logo client.
   Le hero reste une composition éditoriale complète, mais ne dépend plus de
   la hauteur de la fenêtre : les écrans larges et peu hauts restent lisibles. */

.fmg-parapente-hero.wp-block-cover {
  min-height: clamp(560px, 44vw, 720px) !important;
}

.fmg-parapente-hero .wp-block-cover__image-background {
  object-position: 50% 50% !important;
}

.fmg-parapente-hero-nav.wp-block-group {
  width: min(1680px, calc(100vw - clamp(40px, 6vw, 120px))) !important;
  inset-inline-start: 50% !important;
  inset-inline-end: auto !important;
  inset-block-start: clamp(28px, 4vw, 64px) !important;
  margin: 0 !important;
  transform: translateX(-50%);
  column-gap: clamp(1.5rem, 3vw, 4rem) !important;
  align-items: center !important;
}

.fmg-parapente-logo-image {
  display: block !important;
  flex: 0 0 auto;
  width: clamp(180px, 16vw, 300px) !important;
  max-width: 300px !important;
  margin: 0 !important;
  line-height: 0 !important;
  transform: none !important;
}

.fmg-parapente-logo-image a,
.fmg-parapente-logo-image img {
  display: block;
}

.fmg-parapente-logo-image img {
  width: 100%;
  height: auto;
}

.fmg-parapente-logo-image--light img {
  filter: brightness(0) invert(1) drop-shadow(0 2px 10px rgb(0 0 0 / 0.24));
}

.fmg-parapente-hero-content.wp-block-group {
  width: min(760px, calc(100vw - clamp(48px, 12vw, 220px))) !important;
  max-width: 760px !important;
  margin-block-start: clamp(155px, 12vw, 200px) !important;
  margin-inline-start: clamp(24px, 8vw, 150px) !important;
}

.fmg-parapente-hero-content h1 {
  font-size: clamp(4.6rem, 6.2vw, 7rem) !important;
}

.fmg-parapente-hero-content .fmg-button-primary .wp-block-button__link {
  min-height: 58px;
  padding: 1rem 1.45rem !important;
}

.fmg-hero-tear {
  height: 108px !important;
  margin-block-start: -108px !important;
  background: #f5f5f2 !important;
}

.fmg-parapente-footer .fmg-parapente-logo-image {
  width: min(250px, 100%) !important;
}

@media (max-width: 900px) {
  .fmg-parapente-hero.wp-block-cover {
    min-height: 600px !important;
  }

  .fmg-parapente-hero-nav.wp-block-group {
    grid-template-columns: auto 1fr !important;
    width: calc(100vw - 40px) !important;
    column-gap: 1rem !important;
  }

  .fmg-nav-subscribe {
    display: none !important;
  }

  .fmg-parapente-home-nav.wp-block-navigation {
    justify-self: end !important;
    width: auto !important;
  }

  .fmg-parapente-home-nav .wp-block-navigation__container {
    gap: 1rem !important;
  }

  .fmg-parapente-home-nav :where(a, .wp-block-navigation-item__content) {
    font-size: 1.1rem !important;
  }

  .fmg-parapente-hero-content.wp-block-group {
    width: calc(100vw - 80px) !important;
    margin-block-start: 175px !important;
    margin-inline-start: 40px !important;
  }
}

@media (max-width: 620px) {
  .fmg-parapente-hero.wp-block-cover {
    min-height: 560px !important;
  }

  .fmg-parapente-hero-nav.wp-block-group {
    inset-block-start: 24px !important;
  }

  .fmg-parapente-logo-image {
    width: 170px !important;
  }

  .fmg-parapente-home-nav .wp-block-navigation__container {
    display: none !important;
  }

  .fmg-parapente-home-nav .wp-block-navigation__responsive-container-open {
    display: flex !important;
    color: #ffffff !important;
  }

  .fmg-parapente-hero-content.wp-block-group {
    width: calc(100vw - 48px) !important;
    margin-block-start: 140px !important;
    margin-inline-start: 24px !important;
  }

  .fmg-parapente-hero-content h1 {
    font-size: clamp(3.8rem, 17vw, 5.1rem) !important;
  }

  .fmg-parapente-hero-content .fmg-parapente-script {
    font-size: clamp(1.65rem, 8vw, 2.05rem) !important;
    white-space: normal !important;
  }

  .fmg-parapente-slider-dots span {
    width: 22px !important;
    height: 22px !important;
  }
}

/* Parapente home v7 - echelle desktop du header apres recette visuelle. */

@media (min-width: 901px) {
  .fmg-parapente-hero-nav.wp-block-group {
    position: absolute !important;
    grid-template-columns: minmax(300px, 420px) minmax(0, 1fr) auto !important;
    width: min(1720px, calc(100vw - clamp(48px, 7vw, 140px))) !important;
  }

  .fmg-parapente-hero-nav .fmg-parapente-logo-image {
    width: clamp(300px, 22vw, 420px) !important;
    max-width: 420px !important;
  }

  .fmg-parapente-home-nav :where(a, .wp-block-navigation-item__content) {
    font-size: clamp(1.35rem, 1.55vw, 1.9rem) !important;
  }

  .fmg-parapente-home-nav.wp-block-navigation,
  .fmg-parapente-home-nav .wp-block-navigation__container {
    gap: clamp(1.35rem, 2vw, 2.8rem) !important;
  }

  .fmg-nav-subscribe .wp-block-button__link {
    min-width: 164px !important;
    min-height: 56px;
    padding: 1rem 1.45rem !important;
    font-size: 1.12rem !important;
  }

  .fmg-parapente-hero-content.wp-block-group {
    margin-block-start: clamp(170px, 13vw, 225px) !important;
  }

  .fmg-hero-kicker {
    font-size: 2.05rem !important;
  }

  .fmg-parapente-hero-content h1 {
    font-size: clamp(5.15rem, 6.8vw, 7.6rem) !important;
  }

  .fmg-parapente-hero-content .fmg-parapente-script {
    font-size: clamp(2.2rem, 2.45vw, 2.75rem) !important;
  }

  .fmg-parapente-hero-content .fmg-button-primary .wp-block-button__link {
    min-height: 64px;
    padding: 1.1rem 1.65rem !important;
    font-size: 1.55rem !important;
  }
}

/* Parapente home v8 - logo sur l'axe du contenu hero, sans contraindre la nav. */

@media (min-width: 901px) {
  .fmg-parapente-hero-nav.wp-block-group {
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    width: 100vw !important;
    max-width: none !important;
  }

  .fmg-parapente-hero-nav .fmg-parapente-logo-image {
    position: absolute !important;
    inset-inline-start: clamp(24px, 8vw, 150px) !important;
    inset-block-start: 50% !important;
    width: clamp(400px, 25vw, 500px) !important;
    max-width: 500px !important;
    margin: 0 !important;
    transform: translateY(-50%) !important;
    transform-origin: left center !important;
  }

  .fmg-parapente-home-nav.wp-block-navigation {
    grid-column: 2 !important;
    justify-self: end !important;
  }

  .fmg-nav-subscribe {
    grid-column: 3 !important;
    justify-self: end !important;
    margin-inline-end: clamp(24px, 4vw, 80px) !important;
  }
}

/* Parapente home v9 - grille editoriale Actus lisible sur desktop. */

.fmg-parapente-news {
  width: min(1360px, calc(100vw - 96px)) !important;
  padding-block-start: calc(clamp(4rem, 6vw, 6rem) + 4rem) !important;
  padding-block-end: clamp(4rem, 6vw, 6rem) !important;
}

.fmg-parapente-news .fmg-section-heading-row {
  margin-block-end: clamp(2rem, 3vw, 3.25rem) !important;
}

.fmg-parapente-news-grid.wp-block-columns {
  grid-template-columns: minmax(0, 1.18fr) minmax(390px, 0.82fr) !important;
  gap: clamp(2rem, 3vw, 3.75rem) !important;
  align-items: stretch !important;
}

.fmg-parapente-news .fmg-card-featured {
  min-height: clamp(500px, 42vw, 610px) !important;
  padding-block-start: clamp(17rem, 26vw, 22rem) !important;
}

.fmg-parapente-news .fmg-card-featured h3 {
  font-size: clamp(1.85rem, 2.25vw, 2.5rem) !important;
}

.fmg-parapente-news .fmg-card-featured > :where(p, h3) {
  max-width: 28rem;
}

.fmg-parapente-news .fmg-compact-list.wp-block-group {
  gap: clamp(1.4rem, 2.2vw, 2.2rem) !important;
}

.fmg-parapente-news .fmg-compact-card.wp-block-media-text {
  grid-template-columns: minmax(145px, 34%) minmax(0, 1fr) !important;
  gap: clamp(1.15rem, 2vw, 2rem) !important;
}

.fmg-parapente-news .fmg-compact-card img {
  aspect-ratio: 1.08 !important;
}

.fmg-parapente-news .fmg-compact-card h3 {
  font-size: clamp(1.35rem, 1.75vw, 2rem) !important;
  line-height: 1.03 !important;
}

.fmg-parapente-news .fmg-compact-card .fmg-parapente-kicker {
  margin-block-end: 0.4rem !important;
}

.fmg-parapente-reportages .fmg-card-grid .wp-block-image {
  background: center / cover no-repeat url("/wp-content/uploads/parapente/ap-actus-parapente.png");
}

.fmg-parapente-reportages .fmg-card-grid .wp-block-image img {
  visibility: hidden;
}

@media (max-width: 840px) {
  .fmg-parapente-news {
    width: min(100% - 40px, 700px) !important;
    padding-block: 3.5rem !important;
  }

  .fmg-parapente-news-grid.wp-block-columns {
    grid-template-columns: 1fr !important;
  }

  .fmg-parapente-news .fmg-card-featured {
    min-height: 500px !important;
    padding-block-start: 16rem !important;
  }

  .fmg-parapente-news .fmg-compact-list.wp-block-group {
    gap: 1.5rem !important;
  }
}

@media (max-width: 620px) {
  .fmg-parapente-news .fmg-compact-card.wp-block-media-text {
    grid-template-columns: 120px minmax(0, 1fr) !important;
  }
}

/* Parapente home v10 - carte principale plein cadre et colonne Actus egale. */

@media (min-width: 841px) {
  .fmg-parapente-news {
    background: #f5f5f2;
    box-shadow: 0 0 0 100vmax #f5f5f2;
    clip-path: inset(0 -100vmax);
  }

  .fmg-parapente-news .fmg-section-heading-row h2 {
    font-size: clamp(3rem, 4vw, 4.5rem) !important;
  }

  .fmg-parapente-news-grid.wp-block-columns {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr) !important;
  }

  .fmg-parapente-news .fmg-card-featured {
    min-height: clamp(530px, 44vw, 640px) !important;
  }

  .fmg-parapente-news .fmg-card-featured figure {
    overflow: hidden;
  }

  .fmg-parapente-news .fmg-card-featured img {
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 52% !important;
    transform: scale(1.09);
  }

  .fmg-parapente-news .fmg-card-featured::after {
    background: linear-gradient(180deg, transparent 43%, rgb(0 0 0 / 0.18) 63%, rgb(0 0 0 / 0.64) 100%) !important;
  }

  .fmg-parapente-news-grid > .wp-block-column:last-child {
    display: flex !important;
  }

  .fmg-parapente-news .fmg-compact-list.wp-block-group {
    grid-template-rows: repeat(3, minmax(0, 1fr)) !important;
    width: 100% !important;
    height: 100% !important;
  }

  .fmg-parapente-news .fmg-compact-card.wp-block-media-text {
    grid-template-columns: 185px minmax(0, 1fr) !important;
    min-height: 0 !important;
  }

  .fmg-parapente-news .fmg-compact-card .wp-block-media-text__media {
    height: 100%;
  }

  .fmg-parapente-news .fmg-compact-card img {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center !important;
  }
}

/* Parapente home v11 - suppression du bandeau bas et lignes droite uniformes. */

@media (min-width: 841px) {
  .fmg-parapente-news .fmg-card-featured::after {
    background: linear-gradient(180deg, transparent 52%, rgb(0 0 0 / 0.08) 68%, rgb(0 0 0 / 0.38) 100%) !important;
  }

  .fmg-parapente-news .fmg-card-featured > :where(p, h3) {
    text-shadow: 0 2px 10px rgb(0 0 0 / 0.42);
  }

  .fmg-parapente-news .fmg-compact-list.wp-block-group {
    grid-auto-rows: minmax(0, 1fr) !important;
    align-content: stretch !important;
  }

  .fmg-parapente-news .fmg-compact-card.wp-block-media-text {
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden;
  }

  .fmg-parapente-news .fmg-compact-card .wp-block-media-text__media {
    block-size: 100% !important;
    min-block-size: 0 !important;
    overflow: hidden;
  }

  .fmg-parapente-news .fmg-compact-card .wp-block-media-text__content {
    min-width: 0;
    min-height: 0;
  }
}

/* Parapente home v12 - grille editoriale Reportages. */

.fmg-parapente-reportages {
  width: min(1320px, calc(100vw - 96px)) !important;
  background: #f5f5f2;
  box-shadow: 0 0 0 100vmax #f5f5f2;
  clip-path: inset(0 -100vmax);
  padding-block: clamp(4rem, 6vw, 6rem) !important;
}

.fmg-parapente-reportages .fmg-card-grid.wp-block-columns {
  display: grid !important;
  gap: clamp(1.75rem, 2.8vw, 2.75rem) !important;
  margin-block: 2.5rem 3rem !important;
}

.fmg-parapente-reportages .fmg-card {
  display: flex !important;
  min-height: 540px !important;
  flex-direction: column;
}

.fmg-parapente-reportages .fmg-card figure {
  flex: 0 0 auto;
}

.fmg-parapente-reportages .fmg-card img {
  min-height: 260px;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  object-position: center !important;
}

.fmg-parapente-reportages .fmg-card > :where(p, h3) {
  padding-inline: clamp(1.5rem, 2.1vw, 1.75rem) !important;
}

.fmg-parapente-reportages .fmg-card .fmg-parapente-kicker {
  margin-block: 1.55rem 0.65rem !important;
  color: #ffd24d !important;
  font-size: 1.15rem !important;
  font-weight: 700 !important;
}

.fmg-parapente-reportages .fmg-card h3 {
  margin-block: 0 1.1rem !important;
  font-size: clamp(1.8rem, 2.15vw, 2rem) !important;
  line-height: 1.02 !important;
}

.fmg-parapente-reportages .fmg-card > p:not(.fmg-parapente-kicker, .fmg-link-arrow) {
  font-size: 1.05rem !important;
  line-height: 1.45 !important;
}

.fmg-parapente-reportages .fmg-card .fmg-link-arrow {
  margin-block: auto 1.65rem !important;
}

.fmg-parapente-reportages .fmg-card .fmg-link-arrow a {
  font-size: 1.1rem !important;
  font-weight: 800 !important;
}

.fmg-parapente-reportages > .wp-block-buttons {
  margin-block-start: clamp(2.5rem, 4vw, 3.5rem) !important;
}

.fmg-parapente-reportages .fmg-button-secondary .wp-block-button__link {
  border-width: 3px !important;
  font-size: 1.2rem !important;
  font-weight: 800 !important;
  padding: 1rem 2.35rem !important;
}

@media (min-width: 1100px) {
  .fmg-parapente-reportages .fmg-card-grid.wp-block-columns {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 700px) and (max-width: 1099px) {
  .fmg-parapente-reportages {
    width: min(100% - 64px, 900px) !important;
  }

  .fmg-parapente-reportages .fmg-card-grid.wp-block-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .fmg-parapente-reportages .fmg-card {
    min-height: 520px !important;
  }
}

@media (max-width: 699px) {
  .fmg-parapente-reportages {
    width: min(100% - 40px, 600px) !important;
    padding-block: 3.5rem !important;
  }

  .fmg-parapente-reportages .fmg-card-grid.wp-block-columns {
    grid-template-columns: 1fr !important;
  }

  .fmg-parapente-reportages .fmg-card {
    min-height: 0 !important;
  }

  .fmg-parapente-reportages .fmg-card img {
    min-height: 0;
  }
}

/* Parapente home v13 - lever la contrainte Gutenberg et equilibrer les cartes. */

@media (min-width: 1100px) {
  .fmg-parapente-reportages {
    background: #f5f5f2;
    box-shadow: 0 0 0 100vmax #f5f5f2;
  }

  .fmg-parapente-reportages > :where(h2, .wp-block-columns, .wp-block-buttons) {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
  }

  .fmg-parapente-reportages .fmg-card {
    min-height: 570px !important;
    background: #ffffff !important;
  }

  .fmg-parapente-reportages .fmg-card img {
    width: 100% !important;
    height: clamp(260px, 21vw, 330px) !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
  }

  .fmg-parapente-reportages .fmg-button-secondary .wp-block-button__link {
    border-width: 3px !important;
    font-size: 1.3rem !important;
    font-weight: 800 !important;
    padding: 1.05rem 2.8rem !important;
  }
}

/* Parapente home v14 - images Reportages pleine largeur et contenu aligne. */

.fmg-parapente-reportages .fmg-card-grid .wp-block-image {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  background: center / cover no-repeat url("/wp-content/uploads/parapente/ap-actus-parapente.png") !important;
}

.fmg-parapente-reportages .fmg-card-grid .wp-block-image img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  opacity: 0 !important;
}

.fmg-parapente-reportages .fmg-card .fmg-parapente-kicker,
.fmg-parapente-reportages .fmg-card .fmg-link-arrow,
.fmg-parapente-reportages .fmg-card .fmg-link-arrow a {
  align-self: stretch !important;
  text-align: left !important;
}

.fmg-parapente-reportages .fmg-card .fmg-parapente-kicker {
  font-size: 1.2rem !important;
  font-weight: 800 !important;
}

.fmg-parapente-reportages .fmg-card .fmg-link-arrow a {
  font-weight: 900 !important;
}

@media (min-width: 700px) {
  .fmg-parapente-reportages .fmg-card-grid .wp-block-image {
    height: clamp(300px, 22vw, 330px) !important;
  }

  .fmg-parapente-reportages .fmg-card {
    min-height: 555px !important;
  }

  .fmg-parapente-reportages .fmg-card h3 {
    font-size: clamp(1.9rem, 2.2vw, 2.1rem) !important;
  }

  .fmg-parapente-reportages .fmg-button-secondary .wp-block-button__link {
    border-width: 3px !important;
    font-size: 1.3rem !important;
    font-weight: 800 !important;
    padding: 1.1rem 2.9rem !important;
  }
}

/* Parapente home v15 - neutraliser le centrage des blocs Gutenberg dans les cartes. */

.fmg-parapente-reportages .fmg-card > .fmg-parapente-kicker,
.fmg-parapente-reportages .fmg-card > .fmg-link-arrow {
  align-self: flex-start !important;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  text-align: left !important;
}

.fmg-parapente-reportages .fmg-card > .fmg-parapente-kicker {
  padding-inline: clamp(1.5rem, 2.1vw, 1.75rem) !important;
}

.fmg-parapente-reportages .fmg-card > .fmg-link-arrow a {
  display: inline-block !important;
  margin-inline: 0 !important;
  text-align: left !important;
}

/* Parapente home v16 - fond global, sans modifier les fonds propres aux blocs. */

body:has(.fmg-parapente-home),
.fmg-parapente-home {
  --fmg-pvl-soft: #f5f5f2;
  background: #f5f5f2 !important;
}

/* Parapente home v17 - fond commun des sections hors cartes. */

.fmg-parapente-gear,
.fmg-parapente-magazines,
.fmg-parapente-footer {
  background: #f5f5f2 !important;
}

/* Parapente home v18 - propager le fond aux wrappers et sections contraintes. */

html:has(.fmg-parapente-home),
body:has(.fmg-parapente-home),
body:has(.fmg-parapente-home) :where(.site, .site-content, .ast-container, .content-area, .site-main, .entry-content) {
  background-color: #f5f5f2 !important;
}

.fmg-parapente-gear,
.fmg-parapente-magazines {
  box-shadow: 0 0 0 100vmax #f5f5f2;
  clip-path: inset(0 -100vmax);
}

/* Parapente home v21 - libellés des cartes Matos sur fond jaune. */
.fmg-parapente-gear .fmg-gear-card .fmg-parapente-kicker {
  color: #070707 !important;
  font-weight: 800 !important;
  margin: 0 0 1rem !important;
}

/* Parapente home v23 - respirations internes des cartes Matos. */
.fmg-parapente-gear .fmg-gear-card {
  padding: 1.5rem 1.25rem 1.8rem !important;
}

/* Parapente home v24 - fond pleine largeur autour du CTA Ecoles et stages. */
.fmg-parapente-school-cta {
  background-color: #f5f5f2 !important;
  box-shadow: 0 0 0 100vmax #f5f5f2;
  clip-path: inset(0 -100vmax);
  margin-block-end: 0 !important;
}

/* Parapente home v27 - couvertures de la section Nos magazines. */
.fmg-parapente-magazines .fmg-magazine-grid .wp-block-image {
  width: clamp(155px, 14vw, 230px) !important;
  max-width: 100% !important;
  margin: 0 auto 1.5rem !important;
}

.fmg-parapente-magazines .fmg-magazine-grid img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  aspect-ratio: 163 / 234;
  object-fit: cover !important;
}

/* Parapente home v28 - CTA principal de la section Nos magazines. */
.fmg-parapente-magazines > .wp-block-buttons .fmg-button-secondary .wp-block-button__link {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 64px;
  max-width: 100%;
  padding: 1.05rem 2.8rem !important;
  border-width: 3px !important;
  font-size: clamp(1.12rem, 1.5vw, 1.35rem) !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

/* Parapente home 1b — profil de montagne SVG, dots et polices */

/* Remplacement du fmg-hero-tear par un SVG silhouette de montagne */
.fmg-hero-mountain {
  /* Hauteur proportionnelle a la largeur (viewBox 2840x260 de la maquette) pour
     garder la dechirure a l'echelle : ~9.15vw = 260/2840. Bornee pour eviter
     les extremes. La marge negative remonte la bande sur le bas du hero. */
  --mtn-h: clamp(100px, 9.15vw, 182px);
  position: relative;
  z-index: 2;
  width: 100vw !important;
  max-width: none !important;
  margin-inline: calc(50% - 50vw) !important;
  margin-block-start: calc(1px - var(--mtn-h)) !important;
  height: var(--mtn-h);
  pointer-events: none;
  overflow: visible;
}

.fmg-hero-mountain svg {
  display: block;
  width: 100%;
  height: 100%;
}

.fmg-parapente-news {
  border-top: none !important;
  outline: none !important;
}

/* Les ronds (slider dots) doivent apparaitre au-dessus du profil montagne.
   Cause du bug : le fmg-hero-tear a z-index:2 (v2 CSS) et l'inner container
   a z-index:1 (Gutenberg default) — la bordure passait devant les ronds.
   Fix : on passe l'inner container a z-index:3. */
.fmg-parapente-hero .wp-block-cover__inner-container {
  z-index: 3 !important;
}

/* Consolidation des graisses typographiques selon charte graphique */
.fmg-parapente-home :where(h1, h2) {
  font-weight: 800 !important;
}

.fmg-parapente-home :where(h3, .fmg-parapente-kicker, .fmg-section-subtitle) {
  font-weight: 700 !important;
}

.fmg-button-primary .wp-block-button__link,
.fmg-button-secondary .wp-block-button__link,
.fmg-parapente-home .fmg-button-primary .wp-block-button__link,
.fmg-parapente-home .fmg-button-secondary .wp-block-button__link {
  font-family: Inter, Arial, sans-serif !important;
  font-weight: 500 !important;
}

/* Parapente actus v1 - page liste Actus */

body:has(.fmg-parapente-actus) .site-header,
body:has(.fmg-parapente-actus) .entry-header,
body:has(.fmg-parapente-actus) .site-footer {
  display: none !important;
}

/* Reset complet Astra pour la page actus : calqué exactement sur les règles body.home */
body:has(.fmg-parapente-actus) {
  background: #f5f5f2 !important;
  overflow-x: clip !important;
}

/* Identique à body.home .site-content .ast-container { display: block; max-width: none; padding: 0; } */
body:has(.fmg-parapente-actus) .site-content .ast-container {
  display: block !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

body:has(.fmg-parapente-actus) :where(#page, .site, #content, .site-content, .ast-container) {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
}

body:has(.fmg-parapente-actus) :where(#primary, .content-area, #main, .site-main, article, .type-page, .entry-content) {
  float: none !important;
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

/* Parapente actus v2 — héro bannière pleine largeur écran.
   Le <main>.fmg-parapente-home a overflow: hidden par défaut (hérité des règles home).
   Sur la homepage ce n'est pas un problème car le main est déjà 100vw (marge = 0).
   Sur la page actus le main peut être légèrement contraint par Gutenberg/Astra,
   ce qui tronque le breakout 100vw du cover. Fix : main pleine largeur + overflow visible,
   le scroll horizontal est absorbé par overflow-x: clip sur le body (déjà défini). */
body:has(.fmg-parapente-actus) .fmg-parapente-home.wp-block-group,
.fmg-parapente-home.fmg-parapente-actus.wp-block-group {
  width: 100vw !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-inline: 0 !important;
  overflow: visible !important;
}

/* Image de fond du cover : forcer le remplissage total même si Astra surcharge les img.
   Double sélecteur pour la spécificité : body:has() + .wp-block-cover.fmg + img.wp-block-cover__image-background */
body:has(.fmg-parapente-actus) .wp-block-cover__image-background,
.wp-block-cover.fmg-parapente-hero img.wp-block-cover__image-background {
  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 center !important;
}

/* Hero actus : pleine largeur (même mécanique que le hero home) + hauteur.
   Le cover a class alignfull → exclu du sélecteur Gutenberg
   .is-layout-constrained > :where(:not(.alignfull)){margin-left:auto!important}.
   Belt-and-suspenders : on cible aussi le parent direct .is-layout-constrained
   pour annuler tout résidu de règle margin:auto sur ce child spécifique. */
body:has(.fmg-parapente-actus) .is-layout-constrained > .fmg-parapente-hero-inner,
body:has(.fmg-parapente-actus) .is-layout-constrained > .fmg-parapente-hero {
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  width: 100vw !important;
  max-width: none !important;
}

.fmg-parapente-actus .fmg-parapente-hero-inner.wp-block-cover {
  width: 100vw !important;
  max-width: none !important;
  margin-inline: calc(50% - 50vw) !important;
  min-height: clamp(580px, 52vw, 720px) !important;
  background-color: #0d2b45;
}

/* Force l'img Gutenberg à remplir le cover bannière actus, immune à Astra img { height: auto } */
.fmg-parapente-actus .fmg-parapente-hero-inner .wp-block-cover__image-background {
  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 center !important;
}

/* Titre et sous-titre positionnés dans la partie haute du hero */
.fmg-parapente-actus .fmg-parapente-hero-content.wp-block-group {
  margin-block-start: clamp(100px, 10vw, 155px) !important;
}

.fmg-parapente-actus .fmg-page-title {
  font-size: clamp(3.5rem, 5.5vw, 6rem) !important;
  max-width: none !important;
  margin-block: 0 0.5rem !important;
  color: #ffffff !important;
}

.fmg-page-subtitle {
  color: #ffffff !important;
  font-family: Inter, Arial, sans-serif !important;
  font-size: clamp(1.5rem, 1.3vw, 1.8rem);
  font-weight: 400;
  line-height: 1.4;
  margin: 0;
}

/* Carte à la une dans le hero : card left-alignée, image propre, texte contenu */
.fmg-actus-hero-alaune.wp-block-group {
  width: clamp(340px, 70%, 860px) !important;
  max-width: none !important;
  min-height: clamp(320px, 38vw, 500px) !important;
  margin-block-start: clamp(1rem, 2vw, 2rem) !important;
  margin-inline-end: auto !important;
  padding: 2rem 2.5rem !important;
  box-sizing: border-box !important;
  background:
    linear-gradient(to top, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 55%, transparent 100%),
    url("/wp-content/uploads/parapente/ap-actus-parapente.png") center / cover no-repeat !important;
  border-radius: 4px !important;
  overflow: hidden !important;
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
}

.fmg-actus-hero-alaune .fmg-hero-kicker {
  font-size: clamp(1.4rem, 1.9vw, 2rem) !important;
  width: fit-content !important;
  margin-block-start: 1.5rem !important;
}

.fmg-actus-hero-alaune h2 {
  font-size: clamp(3rem, 5vw, 5.8rem) !important;
  color: #ffffff !important;
  line-height: 0.92 !important;
  margin-block: 0.85rem 1rem !important;
  max-width: 14ch !important;
}

.fmg-actus-hero-alaune p:not(.fmg-parapente-kicker, .fmg-link-arrow) {
  color: #ffd24d !important;
  font-family: Caveat, cursive !important;
  font-size: clamp(1.2rem, 1.7vw, 1.6rem) !important;
  margin-block-end: 1.2rem !important;
}

.fmg-actus-hero-alaune .fmg-link-arrow {
  margin-block-end: 1.25rem !important;
}

.fmg-actus-hero-alaune .fmg-link-arrow a {
  color: #ffd24d !important;
  font-size: clamp(1.05rem, 1.3vw, 1.4rem) !important;
  font-weight: 700 !important;
}

/* Toute la carte "à la une" cliquable -> article (retour client). Lien étiré
   au-dessus du fond ; le texte reste visible, le clic (n'importe où) ouvre
   l'article. La carte est déjà position:relative + overflow:hidden. */
.fmg-actus-hero-alaune {
  cursor: pointer;
}

.fmg-actus-hero-alaune .fmg-alaune-link {
  position: absolute;
  inset: 0;
  z-index: 5;
  border-radius: inherit;
}

/* Section liste : fond fume pleine largeur (coherent avec Matos), sous le hero */
.fmg-parapente-actus-content {
  background: #f5f5f2;
  box-shadow: 0 0 0 100vmax #f5f5f2;
  clip-path: inset(0 -100vmax);
  padding-block: clamp(3.5rem, 5vw, 5rem) !important;
}

/* Navigation : supprimer les puces et séparateurs injectés par Astra */
.fmg-parapente-home-nav .wp-block-navigation__container {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.fmg-parapente-home-nav .wp-block-navigation-item::before,
.fmg-parapente-home-nav .wp-block-navigation-item::after,
.fmg-parapente-home-nav li::marker {
  content: none !important;
  display: none !important;
}

/* Article liste */
.fmg-actus-list .fmg-compact-card.wp-block-media-text {
  grid-template-columns: clamp(110px, 14vw, 175px) minmax(0, 1fr) !important;
  gap: 1.5rem !important;
  padding-block: 1.4rem !important;
  border-top: 1px solid #e0ddd6 !important;
  background: transparent !important;
  min-height: 0 !important;
}

.fmg-actus-list .fmg-compact-card img {
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
  width: 100% !important;
}

.fmg-actus-list .fmg-compact-card .wp-block-media-text__content {
  padding: 0 !important;
}

.fmg-actus-list .fmg-compact-card .fmg-parapente-kicker {
  font-size: 1rem !important;
  margin-block-end: 0.25rem !important;
}

.fmg-actus-list .fmg-compact-card h3 {
  font-size: clamp(1.35rem, 1.75vw, 1.85rem) !important;
  line-height: 1.02 !important;
  margin-block: 0 0.35rem !important;
}

.fmg-actus-list .fmg-compact-card h3 a {
  color: #070707 !important;
  text-decoration: none !important;
}

.fmg-actus-list .fmg-compact-card h3 a:hover {
  color: #ffd24d !important;
}

.fmg-article-date {
  color: #6b6b6b;
  font-family: Inter, Arial, sans-serif;
  font-size: 0.88rem;
  margin: 0;
}

/* Pagination */
.fmg-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  padding-block: 3rem;
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 700;
  font-size: 1.2rem;
}

.fmg-pagination-current,
.fmg-pagination-page {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  color: #070707;
  text-decoration: none;
}

.fmg-pagination-current {
  background: #ffd24d;
}

.fmg-pagination-page:hover {
  background: #f0ece2;
}

.fmg-pagination-ellipsis {
  color: #6b6b6b;
  padding-inline: 0.25rem;
}

@media (max-width: 620px) {
  .fmg-parapente-actus .fmg-parapente-hero-inner.wp-block-cover {
    min-height: 560px !important;
  }

  .fmg-actus-hero-alaune.wp-block-group {
    width: calc(100% - 48px) !important;
    margin-inline-start: 24px !important;
    margin-inline-end: 24px !important;
  }

  .fmg-actus-list .fmg-compact-card.wp-block-media-text {
    grid-template-columns: 100px minmax(0, 1fr) !important;
    gap: 1rem !important;
  }
}

/* ===================================================================
   Page Matos — banniere (hero deux colonnes : titre gauche / encart droite)
   =================================================================== */

/* Navigation Matos : rentrer le bloc menu + loupe depuis le bord droit.
   On agit uniquement a droite (padding-right) : le logo, en colonne 1 de
   la grille, n'est pas deplace. */
.fmg-parapente-matos .fmg-parapente-hero-nav.wp-block-group {
  padding-right: clamp(2rem, 8vw, 9rem) !important;
}

/* Loupe de recherche en version claire (sur fond image) */
.fmg-parapente-hero-nav .fmg-search-icon--light {
  border-color: var(--fmg-pvl-white) !important;
}

.fmg-parapente-hero-nav .fmg-search-icon--light::after {
  background: var(--fmg-pvl-white) !important;
}

/* Conteneur deux colonnes : gauche en haut, encart en bas a droite */
.fmg-matos-hero-grid.wp-block-group {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: clamp(1.5rem, 4vw, 3rem) !important;
  align-items: stretch !important;
  margin-block-start: clamp(7rem, 14vh, 11rem) !important;
  min-height: 420px;
}

/* Colonne gauche : titre MATOS + sous-titre, calee en haut */
.fmg-matos-hero-left.wp-block-group {
  align-self: start;
  max-width: 540px;
  color: var(--fmg-pvl-white);
}

.fmg-matos-hero-title {
  color: var(--fmg-pvl-white) !important;
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif !important;
  font-weight: 900 !important;
  font-size: clamp(3.5rem, 8vw, 6.6rem) !important;
  line-height: 0.92 !important;
  margin: 0 !important;
  text-transform: uppercase;
  text-shadow: 0 2px 16px rgb(0 0 0 / 0.28);
}

.fmg-matos-hero-subtitle {
  color: #FFD24D !important;
  font-family: Caveat, "Segoe Print", cursive !important;
  font-size: clamp(1.5rem, 3vw, 2.2rem) !important;
  font-weight: 700 !important;
  line-height: 1.1;
  margin-block: 0.4rem 0 !important;
}

/* Colonne droite : encart produit a la une, cale en bas a droite */
.fmg-matos-hero-feature.wp-block-group {
  align-self: end;
  justify-self: end;
  max-width: 440px;
  color: var(--fmg-pvl-white);
  text-align: left;
}

.fmg-matos-hero-feature h2 {
  color: var(--fmg-pvl-white) !important;
  font-size: clamp(2rem, 4vw, 3.1rem) !important;
  line-height: 1.02 !important;
  margin: 0 0 0.45rem !important;
}

/* Categorie "VOILE" : h2 jaune (surcharge la regle h2 ci-dessus, sans toucher Niviuk Artik 7) */
.fmg-parapente-matos .fmg-matos-hero-feature h2.fmg-matos-feature-cat {
  color: #FFD24D !important;
  font-size: clamp(4rem, 4vw, 3.1rem) !important;
  line-height: 1 !important;
  text-transform: uppercase;
  margin: 0 0 0.3rem !important;
}

.fmg-matos-feature-tagline {
  color: var(--fmg-pvl-white);
  font-weight: 700;
  font-size: clamp(2rem, 1vw, 3.1rem);
  margin: 0;
}

.fmg-matos-feature-desc {
  color: var(--fmg-pvl-white);
  font-weight: 400;
  font-size: clamp(0rem, 1.8vw, 1.35rem);
  margin: 0 0 1.3rem;
}

/* Neutraliser les surcharges Astra qui s'appliquaient aux <p> du hero Matos
   (scope limite a la page Matos, sans toucher au theme). */
/* Astra : body .wp-block-cover:not(.has-text-color.has-link-color) p { color: var(--ast-global-color-3) } */
.fmg-parapente-matos .wp-block-cover:not(.has-text-color.has-link-color) p {
  color: inherit;
}
/* Astra : .entry-content p { margin-bottom: 1.6em } -> on l'enleve dans l'encart */
.fmg-parapente-matos .fmg-matos-hero-feature p {
  margin-bottom: 0 !important;
}

/* Responsive : passage en une colonne, encart sous le titre */
@media (max-width: 980px) {
  .fmg-matos-hero-grid.wp-block-group {
    grid-template-columns: 1fr !important;
    margin-block-start: 6rem !important;
    gap: 2.5rem !important;
  }

  .fmg-matos-hero-feature.wp-block-group {
    justify-self: start;
    align-self: start;
    max-width: 100%;
  }
}

@media (max-width: 782px) {
  .fmg-matos-hero-grid.wp-block-group {
    margin-block-start: 3.5rem !important;
  }
}

/* ===================================================================
   Page Matos — listing produits (9 cartes 3x3)
   Fond de page = blanc fume #f5f5f2 (deja global) ; cartes blanches
   subtilement detachees. Scope limite a .fmg-parapente-matos.
   =================================================================== */
.fmg-parapente-matos .fmg-matos-grid.wp-block-columns {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 2rem !important;
}

.fmg-parapente-matos .fmg-matos-card {
  background: #ffffff;
  border: 1px solid #ececec;
  border-radius: 6px;
  box-shadow: 0 6px 18px rgb(0 0 0 / 0.05);
  padding: 2.2rem 2rem 2.3rem !important;
  height: 100%;
  text-align: left;
}

/* Categorie en haut a gauche, jaune #FFD24D */
.fmg-parapente-matos .fmg-matos-card .fmg-matos-card-cat {
  color: #FFD24D !important;
  font-weight: 800 !important;
  margin: 0 0 0.9rem !important;
  text-align: left;
}

/* Image produit centree */
.fmg-parapente-matos .fmg-matos-card figure {
  margin: 0 0 1.1rem !important;
  text-align: center;
}

.fmg-parapente-matos .fmg-matos-card img {
  max-height: 180px;
  width: auto;
  aspect-ratio: 1.2;
  object-fit: contain;
  margin-inline: auto;
}

/* Nom produit aligne a gauche */
.fmg-parapente-matos .fmg-matos-card h3 {
  color: #070707 !important;
  margin: 0 0 0.5rem !important;
  text-align: left;
}

/* Description alignee a gauche */
.fmg-parapente-matos .fmg-matos-card p:not(.fmg-matos-card-cat) {
  color: #444 !important;
  margin: 0 !important;
  text-align: left;
}

/* Responsive : 3 colonnes -> 2 -> 1, sans debordement */
@media (max-width: 980px) {
  .fmg-parapente-matos .fmg-matos-grid.wp-block-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 680px) {
  .fmg-parapente-matos .fmg-matos-grid.wp-block-columns {
    grid-template-columns: 1fr !important;
  }
}

/* ===================================================================
   Page Actus — hero : titre+sous-titre a gauche (alignes a gauche, milieu),
   carte "a la une" CENTREE. Titre et carte partagent la meme zone (overlay)
   pour que deplacer le titre ne deplace pas la carte. Logo + nav inchanges.
   =================================================================== */
.fmg-parapente-actus .fmg-actus-hero-grid.wp-block-group {
  display: grid !important;
  grid-template-columns: 1fr !important;
  align-items: center !important;
  min-height: clamp(420px, 40vw, 560px);
  margin-block-start: clamp(5rem, 9vw, 8rem) !important;
}

/* Titre et carte occupent la meme cellule (superposition) */
.fmg-parapente-actus .fmg-actus-hero-grid > .fmg-parapente-hero-content,
.fmg-parapente-actus .fmg-actus-hero-grid > .fmg-actus-hero-alaune {
  grid-area: 1 / 1;
}

/* Titre + sous-titre : positionnes en absolu, cales a gauche SOUS le logo
   (meme inset que la barre nav -> alignes verticalement avec le logo),
   avec un espacement sous le logo. Independant de la carte centree. */
.fmg-parapente-actus .fmg-actus-hero-grid .fmg-parapente-hero-content.wp-block-group {
  position: absolute;
  left: clamp(32px, 10vw, 268px);
  top: clamp(165px, 20vw, 260px);
  margin: 0 !important;
  max-width: 340px !important;
  text-align: left !important;
  z-index: 3;
}

/* Nav Actus : decoller la loupe du bord droit (on agit a droite seulement,
   le logo en colonne 1 ne bouge pas). */
.fmg-parapente-actus .fmg-parapente-hero-nav.wp-block-group {
  padding-right: clamp(1.5rem, 5vw, 6rem) !important;
}

.fmg-parapente-actus .fmg-page-title,
.fmg-parapente-actus .fmg-page-subtitle {
  text-align: left !important;
}

/* Carte a la une : recentree horizontalement ET verticalement (independante du
   titre). Retour client (option B) : un peu plus large (format paysage ~1.6,
   proche maquette) SANS toucher la hauteur -> reste a droite d'ACTUS, banniere
   inchangee, pas de chevauchement du titre. */
.fmg-parapente-actus .fmg-actus-hero-grid .fmg-actus-hero-alaune.wp-block-group {
  justify-self: center;
  /* Retour client : bas de la carte collé au bas de la bannière (au lieu d'être
     centré verticalement, ce qui laissait un écart sous la carte). */
  align-self: end;
  margin: 0 !important;
  width: clamp(340px, 56%, 820px) !important;
  max-width: 820px !important;
}

/* Responsive : on desuperpose -> titre puis carte empiles */
@media (max-width: 980px) {
  .fmg-parapente-actus .fmg-actus-hero-grid.wp-block-group {
    margin-block-start: 5rem !important;
    min-height: 0;
    row-gap: 2rem;
  }
  .fmg-parapente-actus .fmg-actus-hero-grid > .fmg-parapente-hero-content,
  .fmg-parapente-actus .fmg-actus-hero-grid > .fmg-actus-hero-alaune {
    grid-area: auto;
  }
  .fmg-parapente-actus .fmg-actus-hero-grid .fmg-parapente-hero-content.wp-block-group {
    position: static !important;
    left: auto !important;
    top: auto !important;
    max-width: 100% !important;
  }
  .fmg-parapente-actus .fmg-actus-hero-grid .fmg-actus-hero-alaune.wp-block-group {
    justify-self: stretch;
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* ===================================================================
   Home — retours client bannière
   =================================================================== */
/* Cadrage : descendre le point focal pour cadrer le parapente jaune ENTIER
   (voile + pilote). Scope home seule (pas Matos/Actus). */
.fmg-parapente-home:not(.fmg-parapente-actus):not(.fmg-parapente-matos) .fmg-parapente-hero .wp-block-cover__image-background {
  object-position: 50% 80% !important;
}

/* Dots du carrousel : reserver de l'espace en bas du hero pour qu'ils
   passent AU-DESSUS de la delimitation montagne (~120px d'intrusion). */
.fmg-parapente-home:not(.fmg-parapente-actus):not(.fmg-parapente-matos) .fmg-parapente-hero.wp-block-cover {
  padding-block-end: 150px !important;
}

.fmg-parapente-home:not(.fmg-parapente-actus):not(.fmg-parapente-matos) .fmg-parapente-slider-dots {
  position: relative !important;
  z-index: 6 !important;
}

/* ============================================================================
   PAGE REPORTAGES — Etape 1 : image de fond plein ecran (parapentiste centre).
   On pose l'image sur tout le body : pleine largeur ET pleine hauteur de la
   page, fixee a l'ecran pour garder le parapentiste centre au defilement.
   Place en fin de fichier pour gagner la cascade contre la regle de fond
   .fmg-parapente-home (#f6f1e6), a specificite egale.
   (Barre de filtres, carte a la une et grille de cartes ajoutees ensuite.)
   ============================================================================ */
html body:has(main.fmg-parapente-reportages),
body:has(main.fmg-parapente-reportages) {
  background-image: url('/wp-content/uploads/parapente/reportages-hero.png') !important;
  background-size: cover !important;
  /* Image portrait (6240x9000) sur ecran paysage : seule une bande horizontale
     est visible. Le couple voile+pilote est a ~45% de la hauteur de l'image, donc
     center 45% l'amene au centre de l'ecran (valeur peu sensible a la taille
     d'ecran, le sujet etant proche du milieu de l'image). A ajuster si besoin. */
  background-position: center 45% !important;
  background-repeat: no-repeat !important;
  background-attachment: fixed !important;
  background-color: #0d2b45 !important;
}

/* La page occupe au moins tout l'ecran pour que le fond fixe couvre le viewport.
   IMPORTANT : un style Reportages preexistant (v12 - grille editoriale) peint le
   main en #f5f5f2 avec un box-shadow de 100vmax qui inonde toute la page et
   MASQUE l'image du body. On neutralise ce fond pour l'etape 1 : le main doit
   etre transparent et pleine largeur, sinon l'image de fond ne se voit pas.
   IMPORTANT : cibler main.fmg-parapente-reportages (le <main> racine de la PAGE
   Reportages), PAS la classe seule — sinon on ecrase aussi la section teaser
   .fmg-parapente-reportages de la home (un <section>), qui doit rester contenue
   a width: min(1320px, ...) (voir regle "home v12" plus haut). */
main.fmg-parapente-reportages {
  min-height: 100vh;
  width: 100% !important;
  background: transparent !important;
  box-shadow: none !important;
  clip-path: none !important;
}

/* Surcharge ciblee Reportages UNIQUEMENT : la regle globale v18
   (body:has(.fmg-parapente-home) :where(.entry-content, .site-content, ...))
   peint les wrappers Astra en #f5f5f2 !important et masque l'image de fond.
   On les rend transparents sur la seule page Reportages (les autres pages —
   Home, Matos, Actus, Ecoles — gardent leur fond uni #f5f5f2 inchange). */
body:has(main.fmg-parapente-reportages) :where(.site, .site-content, .ast-container, .content-area, .site-main, .entry-content) {
  background-color: transparent !important;
}

/* Navbar reportages : pas de cover ici, on recentre/contraint la barre comme
   l'inner-container du hero des autres pages. */
/* Navbar Reportages : on garde EXACTEMENT la navbar standard du kit
   (.fmg-parapente-hero-nav : logo + menu + recherche), sans surcharge, pour ne
   pas casser le logo. Elle est en position:absolute -> le titre ci-dessous est
   simplement decale vers le bas pour passer dessous (meme principe que Actus). */

/* Titre de page Reportages : decale sous la navbar absolue, ET cale a gauche a
   l'aplomb du logo (le logo visible commence ~270px du bord sur grand ecran :
   inset navbar + inset logo + marge transparente du PNG). Valeur a ajuster. */
.fmg-reportages-hero {
  margin-block-start: clamp(150px, 13vw, 210px) !important;
  margin-inline-start: clamp(56px, 14vw, 270px) !important;
  margin-inline-end: auto !important;
  text-align: left !important;
}

.fmg-reportages-hero > * {
  text-align: left !important;
}

/* Loupe de recherche : sur les autres pages, le bouton "S'inscrire" apporte la
   marge droite ; absent ici, la loupe colle au bord. On la decolle (scope
   Reportages uniquement, n'affecte aucune autre page). */
.fmg-parapente-reportages .fmg-parapente-hero-nav .fmg-search-icon {
  margin-inline-end: clamp(24px, 4vw, 80px) !important;
}

/* ---- Barre de filtres decorative Reportages (V1 statique, sans JS) ----
   Onglets centres sur la page, champ de recherche visuel cale a droite. */
.fmg-reportages-filters-wrap {
  width: min(1680px, calc(100vw - 96px)) !important;
  max-width: none !important;
  margin-inline: auto !important;
  margin-block-start: clamp(1.75rem, 4vh, 3rem) !important;
}

/* Rangee : onglets repartis (space-between) sur toute la largeur restante,
   champ de recherche cale a droite. Les onglets occupent ainsi tout le centre. */
.fmg-reportages-filters {
  display: flex;
  align-items: center;
  gap: clamp(1.5rem, 3vw, 3.5rem);
  min-height: 56px;
}

.fmg-reportages-tabs {
  flex: 1 1 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: clamp(0.8rem, 1.5vw, 1.6rem);
}

.fmg-reportages-tab {
  color: #ffffff !important;
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif !important;
  font-weight: 800 !important;
  font-size: clamp(1.35rem, 1.7vw, 2rem) !important;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  text-decoration: none !important;
  text-shadow: 0 1px 10px rgb(0 0 0 / 0.45);
  transition: color 0.15s ease;
}

.fmg-reportages-tab:hover,
.fmg-reportages-tab.is-active {
  color: #ffd24d !important;
}

/* Champ de recherche visuel (readonly), cale a droite de la rangee */
.fmg-reportages-search {
  flex: 0 0 auto;
  position: relative;
  display: flex;
  align-items: center;
}

.fmg-reportages-search input {
  width: clamp(200px, 18vw, 300px);
  height: 48px;
  border: none !important;
  border-radius: 999px;
  padding: 0 2.8rem 0 1.2rem !important;
  background: #ffffff !important;
  color: #333333 !important;
  font-family: Inter, Arial, sans-serif !important;
  font-size: 1rem !important;
  box-shadow: 0 2px 12px rgb(0 0 0 / 0.18);
}

.fmg-reportages-search-icon {
  position: absolute;
  right: 1.05rem;
  width: 16px;
  height: 16px;
  border: 2.5px solid #333333;
  border-radius: 999px;
  pointer-events: none;
}

.fmg-reportages-search-icon::after {
  content: "";
  position: absolute;
  right: -6px;
  bottom: -4px;
  width: 9px;
  height: 2.5px;
  background: #333333;
  transform: rotate(45deg);
}

/* Mobile : onglets au-dessus, recherche dessous (plus de chevauchement) */
@media (max-width: 900px) {
  .fmg-reportages-filters {
    flex-direction: column;
    gap: 1.1rem;
  }
  .fmg-reportages-search {
    position: static;
    justify-content: center;
  }
}

/* ---- Carte "a la une" Reportages : largeur = barre de filtres, 3/4 image + 1/4 texte ---- */
.fmg-reportages-featured-wrap {
  width: min(1680px, calc(100vw - 96px)) !important;
  max-width: none !important;
  margin-inline: auto !important;
  margin-block-start: clamp(2rem, 4vh, 3.5rem) !important;
}

.fmg-reportages-featured {
  display: grid;
  grid-template-columns: 3fr 1fr; /* 3/4 image, 1/4 texte */
  align-items: stretch;
  height: 550px; /* hauteur fixe : l'image se recadre (cover), plus de boite geante */
  background: #ffffff;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 12px 40px rgb(0 0 0 / 0.22);
}

.fmg-reportages-featured-media {
  margin: 0;
  height: 550px;
  line-height: 0;
}

.fmg-reportages-featured-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.fmg-reportages-featured-body {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 0.6rem;
  padding: clamp(1.4rem, 1.8vw, 2.4rem);
}

.fmg-reportages-featured-cat {
  color: #FFD24D !important;
  font-size: clamp(2rem, 1.1vw, 1.25rem) !important;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  margin: 0 0 0.15rem 0 !important;
}

.fmg-reportages-featured-title {
  color: #0b1018 !important;
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif !important;
  font-weight: 800 !important;
  font-size: clamp(2.35rem, 1.7vw, 2.1rem) !important;
  line-height: 1.0 !important;
  margin: 0 !important;
}

.fmg-reportages-featured-text {
  color: #3a3f47 !important;
  font-family: Inter, Arial, sans-serif !important;
  font-weight: 400 !important;
  font-size: clamp(1.5rem, 3.95vw, 1.02rem) !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}

/* Lien pousse tout en bas de la carte a la une (Option A). */
.fmg-reportages-featured-link {
  margin: auto 0 0 0 !important;
}

.fmg-reportages-featured-link a {
  color: #0b1018 !important;
  font-weight: 700 !important;
  font-size: 1.7rem !important;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

/* Mobile : image au-dessus, texte en dessous (hauteur fixe relachee) */
@media (max-width: 781px) {
  .fmg-reportages-featured {
    grid-template-columns: 1fr;
    height: auto;
  }
  .fmg-reportages-featured-media {
    height: 220px;
  }
}

/* ---- Grille 3x2 de cartes Reportages (meme largeur que la une) ---- */
.fmg-reportages-grid-wrap {
  width: min(1680px, calc(100vw - 96px)) !important;
  max-width: none !important;
  margin-inline: auto !important;
  margin-block-start: clamp(1.5rem, 3vh, 2.5rem) !important;
  margin-block-end: clamp(3rem, 6vh, 5rem) !important;
}

.fmg-reportages-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.25rem, 1.8vw, 2rem);
}

.fmg-reportages-card {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 8px 28px rgb(0 0 0 / 0.20);
}

.fmg-reportages-card-media {
  margin: 0;
  height: 220px;
  line-height: 0;
}

.fmg-reportages-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.fmg-reportages-card-body {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  height: 340px;
  padding: clamp(1.1rem, 1.4vw, 1.5rem);
}

.fmg-reportages-card-cat {
  color: #FFD24D !important;
  font-size: clamp(1.6rem, 1.1vw, 1.3rem) !important;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  margin: 0 0 0.1rem 0 !important;
}

.fmg-reportages-card-title {
  color: #0b1018 !important;
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif !important;
  font-weight: 800 !important;
  font-size: clamp(1.6rem, 1.75vw, 2.05rem) !important;
  line-height: 1.02 !important;
  margin: 0 !important;
}

.fmg-reportages-card-text {
  color: #3a3f47 !important;
  font-family: Inter, Arial, sans-serif !important;
  font-weight: 400 !important;
  font-size: clamp(1.5rem, 1.05vw, 1.15rem) !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}

/* Lien pousse tout en bas du corps (Option A) : le contenu reste en haut,
   l'espace de la hauteur fixe se place entre le texte et le lien. */
.fmg-reportages-card-link {
  margin: auto 0 0 0 !important;
}

.fmg-reportages-card-link a {
  color: #0b1018 !important;
  font-weight: 700 !important;
  font-size: 1.5rem !important;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

@media (max-width: 1024px) {
  .fmg-reportages-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .fmg-reportages-grid {
    grid-template-columns: 1fr;
  }
}

.fmg-parapente-reportages .fmg-reportages-title {
  max-width: none !important;
  margin: 0 0 0.6rem 0 !important;
  font-size: clamp(3.5rem, 5.5vw, 6rem) !important;
  line-height: 0.95 !important;
  color: #ffffff !important;
  text-align: left !important;
  text-shadow: 0 2px 14px rgb(0 0 0 / 0.35);
}

.fmg-reportages-hero .fmg-page-subtitle {
  text-align: left !important;
  font-size: clamp(1.7rem, 1.55vw, 2.05rem) !important;
  text-shadow: 0 1px 10px rgb(0 0 0 / 0.35);
}

/* ============================================================================
   FOOTER TRANSPARENT (global) : le fond du footer devient transparent pour
   laisser voir le fond de chaque page (creme sur Matos/Actus, image sur
   Reportages). Place en fin de fichier pour battre la regle creme !important.
   ============================================================================ */
.fmg-parapente-footer {
  background: transparent !important;
}

/* Icones reseaux sociaux (colonne logo) */
.fmg-footer-social {
  display: flex;
  gap: 0.9rem;
  margin-block-start: 1.1rem;
}

.fmg-footer-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  color: #070707;
  border: 1.5px solid currentColor;
  transition: opacity 0.15s ease;
}

.fmg-footer-social a:hover {
  opacity: 0.7;
}

/* Reportages : fond image -> texte du footer en BLANC + ombre pour lisibilite. */
.fmg-parapente-reportages .fmg-parapente-footer :where(h3, p, a, li) {
  color: #ffffff !important;
  text-shadow: 0 1px 8px rgb(0 0 0 / 0.45);
}

.fmg-parapente-reportages .fmg-footer-social a {
  color: #ffffff;
  text-shadow: none;
}

/* Le bouton newsletter garde son fond jaune et son texte sombre. */
.fmg-parapente-reportages .fmg-newsletter-form button {
  color: #070707 !important;
  text-shadow: none;
}

/* ============================================================================
   PAGE ECOLES & STAGES — Banniere (etape 1 : navbar + titre + sous-titre).
   Meme banniere cover que Matos (.fmg-parapente-hero + .fmg-parapente-hero-nav,
   reutilises tels quels). Ici on ajoute seulement le bloc titre a gauche, cale
   comme le titre Matos. (Barre de recherche et listing de cartes ajoutes ensuite.)
   ============================================================================ */

/* Bloc titre + sous-titre : cale a GAUCHE a l'aplomb du logo (le layout
   "constrained" du cover applique margin-inline:auto -> on force
   margin-inline-start:0 pour coller au bord gauche du inner-container, comme le
   logo). width:max-content pour que le bloc epouse le texte le plus large et que
   les deux lignes (nowrap) ne soient pas contraintes par la content-width. */
.fmg-ecoles-hero-left.wp-block-group {
  max-width: none !important;
  width: max-content !important;
  /* Meme inset que la navbar/logo (inset-inline-start desktop) pour aligner le
     titre a l'aplomb du logo, et suivre le logo sur tous les breakpoints. */
  margin-inline-start: clamp(24px, 8vw, 150px) !important;
  margin-inline-end: auto !important;
  margin-block-start: clamp(7rem, 14vh, 11rem) !important;
  color: var(--fmg-pvl-white);
  text-align: left;
}

/* Titre sur UNE seule ligne. */
.fmg-ecoles-hero-title {
  color: var(--fmg-pvl-white) !important;
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif !important;
  font-weight: 900 !important;
  font-size: clamp(3.5rem, 8vw, 6.6rem) !important;
  line-height: 0.92 !important;
  margin: 0 !important;
  text-transform: uppercase;
  white-space: nowrap;
  text-shadow: 0 2px 16px rgb(0 0 0 / 0.28);
}

/* Sous-titre : script jaune, sur UNE ligne, aligne a GAUCHE a l'aplomb du bord
   gauche de la barre de recherche (padding = padding des champs pour caler le
   texte sur "OU PARTIR ?"). */
.fmg-ecoles-hero-subtitle {
  color: var(--fmg-pvl-yellow) !important;
  font-family: Caveat, "Segoe Print", cursive !important;
  font-size: clamp(2.5rem, 3vw, 2.2rem) !important;
  font-weight: 700 !important;
  line-height: 1.1;
  white-space: nowrap;
  text-align: left;
  padding-inline-start: clamp(1.1rem, 1.8vw, 1.8rem);
  margin: 0 0 clamp(1.1rem, 2vw, 1.6rem) !important;
}

/* Astra peint les <p> du cover en gris : on neutralise sur la seule page Ecoles. */
.fmg-parapente-ecoles .wp-block-cover:not(.has-text-color.has-link-color) p {
  color: inherit;
}

/* Loupe de recherche : pas de bouton "S'inscrire" ici pour apporter la marge
   droite, la loupe colle au bord -> on la decolle (scope Ecoles uniquement). */
.fmg-parapente-ecoles .fmg-parapente-hero-nav .fmg-search-icon {
  margin-inline-end: clamp(24px, 4vw, 80px) !important;
}

/* Banniere plus haute pour loger le titre EN HAUT + la barre de recherche
   centree PLUS BAS (surcharge le min-height standard 760px du hero). */
.fmg-ecoles-hero.wp-block-cover {
  min-height: 880px !important;
}

/* Bloc centre (sous-titre + barre de recherche), pousse vers le bas de la
   banniere et centre horizontalement. Largeur explicite pour que la barre
   remplisse le conteneur (sinon le <form> flex se reduit a son contenu). */
.fmg-ecoles-hero-search-wrap.wp-block-group {
  width: min(1180px, 92vw) !important;
  max-width: none !important;
  margin-inline: auto !important;
  margin-block-start: clamp(3.5rem, 11vh, 8.5rem) !important;
}

/* Barre de recherche : un seul bandeau blanc arrondi = 3 champs (decoratifs) +
   bouton jaune RECHERCHER. Statique en V1 (pas de JS). */
.fmg-ecoles-search {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  width: 100%;
  margin-inline: auto;
  background: var(--fmg-pvl-white);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 18px 46px rgb(0 0 0 / 0.24);
}

/* Champs (spans decoratifs facon menu deroulant) : texte gris, chevron a droite. */
.fmg-ecoles-search-field {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.9rem;
  padding: clamp(1.35rem, 1.9vw, 1.9rem) clamp(1.4rem, 2vw, 2.2rem);
  color: #6f6f6f;
  font-family: "Barlow Condensed", sans-serif;
  font-size: clamp(1.15rem, 1.35vw, 1.55rem);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  border-inline-end: 1px solid #e6e6e6;
  white-space: nowrap;
}

/* Chevron « v » du champ. */
.fmg-ecoles-search-field::after {
  content: "";
  flex: 0 0 auto;
  width: 0.55em;
  height: 0.55em;
  border-right: 2px solid #b7b7b7;
  border-bottom: 2px solid #b7b7b7;
  transform: translateY(-0.15em) rotate(45deg);
}

/* Bouton RECHERCHER : jaune de marque, texte sombre en gras. */
.fmg-ecoles-search-submit {
  flex: 0 0 auto;
  border: 0;
  padding: clamp(1.35rem, 1.9vw, 1.9rem) clamp(2.2rem, 3.5vw, 3.6rem);
  background: var(--fmg-pvl-yellow);
  color: #070707;
  font-family: "Barlow Condensed", sans-serif;
  font-size: clamp(1.2rem, 1.45vw, 1.7rem);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: background 0.15s ease;
}

.fmg-ecoles-search-submit:hover {
  background: #ffc61f;
}

/* Responsive : la barre passe en colonne, champs et bouton pleine largeur. */
@media (max-width: 720px) {
  .fmg-ecoles-search {
    flex-direction: column;
  }
  .fmg-ecoles-search-field {
    border-inline-end: 0;
    border-block-end: 1px solid #e6e6e6;
  }
}

/* ============================================================================
   PAGE ECOLES & STAGES — Listing : 4 cartes horizontales (image gauche / corps
   droite) empilees verticalement, sur le fond fume. Statique (V1).
   ============================================================================ */
.fmg-ecoles-cards {
  display: flex;
  flex-direction: column;
  gap: clamp(1.5rem, 2.5vw, 2.5rem);
}

.fmg-ecoles-card {
  display: flex;
  align-items: stretch;
  background: var(--fmg-pvl-white);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 12px 34px rgb(0 0 0 / 0.10);
  min-height: 300px;
}

/* Image a gauche, ~42% de la largeur, recadrage cover. */
.fmg-ecoles-card-media {
  flex: 0 0 42%;
  margin: 0;
  min-height: 100%;
}

.fmg-ecoles-card-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Corps a droite. La ligne meta est poussee en bas (margin-top:auto). */
.fmg-ecoles-card-body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  padding: clamp(1.6rem, 2.6vw, 2.8rem);
}

.fmg-ecoles-card-cat {
  margin-block: 0 0.6rem !important;
}

.fmg-ecoles-card-title {
  color: var(--fmg-pvl-black, #070707) !important;
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif !important;
  font-weight: 800 !important;
  font-size: clamp(1.9rem, 2.6vw, 2.8rem) !important;
  line-height: 1.02 !important;
  margin: 0 0 1rem !important;
}

.fmg-ecoles-card-desc {
  color: #4a4a4a !important;
  font-size: clamp(1rem, 1.2vw, 1.2rem) !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}

/* Ligne meta en bas : localisation a gauche, notation a droite. */
.fmg-ecoles-card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-block-start: auto;
  padding-block-start: clamp(1.4rem, 2.5vw, 2.2rem);
}

.fmg-ecoles-card-loc {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: #6f6f6f;
  font-size: clamp(0.95rem, 1.1vw, 1.15rem);
  font-weight: 600;
}

.fmg-ecoles-pin {
  width: 1.15em;
  height: 1.15em;
  flex: 0 0 auto;
  fill: var(--fmg-pvl-yellow);
}

.fmg-ecoles-card-rating {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--fmg-pvl-black, #070707);
  font-size: clamp(1rem, 1.2vw, 1.2rem);
}

.fmg-ecoles-stars {
  color: var(--fmg-pvl-yellow);
  font-size: 1.15em;
  letter-spacing: 0.05em;
}

.fmg-ecoles-card-rating strong {
  font-weight: 800;
}

/* Responsive : la carte passe en colonne (image au-dessus du corps). */
@media (max-width: 760px) {
  .fmg-ecoles-card {
    flex-direction: column;
    min-height: 0;
  }
  .fmg-ecoles-card-media {
    flex: 0 0 auto;
    height: clamp(180px, 45vw, 240px);
  }
  .fmg-ecoles-card-meta {
    flex-wrap: wrap;
    row-gap: 0.5rem;
  }
}

/* ============================================================================
   PAGE FORUM — Etape 1 : banniere (navbar + image), pleine largeur, hauteur =
   50% de l'ecran. Surcharge le min-height standard 760px du hero.
   (Encart stats, categories, sujets recents et regles ajoutes ensuite.)
   ============================================================================ */
.fmg-forum-hero.wp-block-cover {
  /* Banniere plus haute pour rester harmonieuse avec l'overlap de la carte
     Categories qui remonte d'environ 1/4 dans le bas de la banniere. */
  min-height: 68vh !important;
  /* Caler le contenu (donc la navbar) EN HAUT : sinon, sur un hero court, le
     cover centre verticalement l'inner-container et la navbar parait au milieu.
     La navbar garde son inset-block-start -> logo/menu juste sous la bordure. */
  align-items: flex-start !important;
  justify-content: flex-start !important;
}

/* Loupe decollee du bord droit (pas de bouton "S'inscrire" ici). */
.fmg-parapente-forum .fmg-parapente-hero-nav .fmg-search-icon {
  margin-inline-end: clamp(24px, 4vw, 80px) !important;
}

/* Hero en 2 colonnes : texte a gauche + encart stats a droite. La grille porte
   l'offset vertical (sous la navbar) et les insets lateraux (aplomb du logo a
   gauche, meme inset a droite que la navbar). */
.fmg-forum-hero-grid.wp-block-group {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: clamp(2rem, 5vw, 5rem);
  /* Debrider la largeur contrainte du cover, mais plafonner la grille pour que
     le texte et l'encart stats ne soient pas rejetes aux extremites : ecart
     modere entre les deux blocs, grille calee a gauche (sous le logo). */
  width: 100%;
  max-width: min(1500px, 100%);
  margin-inline: 0;
  box-sizing: border-box;
  padding-inline: clamp(24px, 8vw, 150px);
  margin-block-start: clamp(8.5rem, 18vh, 13rem) !important;
  /* Réserve sous l'encart stats la zone que la carte Catégories remonte
     (miroir du margin-block-start négatif de .fmg-parapente-forum-body) :
     le hero est dimensionné en vh, l'encart en hauteur de contenu — sur une
     fenêtre peu haute l'encart débordait sous la bannière et l'overlap
     recouvrait le bouton « Devenir membre ». */
  margin-block-end: calc(clamp(80px, 7.5vw, 140px) + 2.5rem);
}

/* Colonne gauche : titre + sous-titre + texte de bienvenue, alignes a gauche.
   Largeur calee pour un texte de bienvenue sur ~4 lignes. */
.fmg-forum-hero-left.wp-block-group {
  flex: 0 1 auto;
  width: min(560px, 100%);
  max-width: 560px;
  margin: 0 !important;
  color: var(--fmg-pvl-white);
  text-align: left;
}

/* Colonne droite : encart stats sombre. */
.fmg-forum-stats {
  flex: 0 0 auto;
  width: min(430px, 100%);
  box-sizing: border-box;
  background: #123a63;
  border-radius: 6px;
  padding: clamp(1.6rem, 2.4vw, 2.4rem);
  box-shadow: 0 20px 48px rgb(0 0 0 / 0.30);
  color: var(--fmg-pvl-white);
}

.fmg-forum-stats-row {
  display: flex;
  justify-content: space-between;
  gap: clamp(0.75rem, 1.5vw, 1.25rem);
}

.fmg-forum-stat {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.55rem;
  text-align: center;
}

.fmg-forum-stat-icon {
  width: clamp(2rem, 3vw, 2.9rem);
  height: auto;
  fill: none;
  stroke: var(--fmg-pvl-white);
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.fmg-forum-stat-num {
  font-family: "Barlow Condensed", Impact, sans-serif;
  font-weight: 800;
  font-size: clamp(1.5rem, 2.2vw, 2.25rem);
  line-height: 1;
}

.fmg-forum-stat-label {
  font-size: clamp(0.78rem, 0.95vw, 1rem);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgb(255 255 255 / 0.82);
}

/* Bouton "Nouveau sujet" : jaune de marque, pleine largeur, crayon. */
.fmg-forum-newtopic {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  margin-block-start: clamp(1.4rem, 2.4vw, 2rem);
  padding: clamp(0.9rem, 1.4vw, 1.25rem);
  background: var(--fmg-pvl-yellow);
  color: #070707;
  font-family: "Barlow Condensed", Impact, sans-serif;
  font-weight: 800;
  font-size: clamp(1.1rem, 1.35vw, 1.5rem);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  text-decoration: none;
  border-radius: 4px;
  transition: background 0.15s ease;
}

.fmg-forum-newtopic:hover {
  background: #ffc61f;
}

.fmg-forum-newtopic-icon {
  width: 1.2em;
  height: 1.2em;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Responsive : les 2 colonnes s'empilent, l'encart passe sous le texte. */
@media (max-width: 900px) {
  .fmg-forum-hero-grid.wp-block-group {
    flex-direction: column;
    gap: clamp(1.5rem, 4vw, 2.5rem);
    /* Miroir de l'overlap mobile de .fmg-parapente-forum-body. */
    margin-block-end: calc(clamp(70px, 14vw, 120px) + 2rem);
  }
  .fmg-forum-stats {
    width: min(430px, 100%);
  }
}

/* ---- Corps Forum : 2 colonnes, remonte pour chevaucher le bas de la banniere ---- */
.fmg-parapente-forum-body {
  /* Corps plus large ET cale un peu plus a gauche (au lieu de centre) : la carte
     Categories est plus grande et decalee vers la gauche. */
  width: min(1810px, calc(100vw - 36px)) !important;
  max-width: none !important;
  margin-inline: auto !important;
  /* Remonte la carte pour qu'environ 1/4 chevauche le bas de la banniere. */
  margin-block-start: clamp(-140px, -7.5vw, -80px) !important;
  padding-block-end: 3.5rem !important;
  position: relative;
  z-index: 4;
}

.fmg-forum-body-grid {
  display: grid;
  /* Debrider la largeur contrainte : la grille interne etait plafonnee a la
     content-width du theme et centree -> elle doit remplir la section pour que
     la carte Categories s'etire vers la gauche. */
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  /* Colonnes ~2:1 (comme le mockup), colonne droite avec largeur minimale
     confortable pour les titres et le texte des regles. Les deux colonnes sont
     calees en haut : gauche = Categories + Sujets recents, droite = Recherche +
     Regles, chacune a hauteur naturelle. */
  grid-template-columns: minmax(0, 2.1fr) minmax(330px, 1fr);
  gap: clamp(1.5rem, 2.4vw, 2.5rem);
  align-items: start;
}

/* Chaque colonne = UNE carte : les sous-blocs (Categories+Sujets recents a
   gauche, Recherche+Regles a droite) sont RELIES dans une meme carte, separes
   par un filet interne. */
.fmg-forum-body-main {
  display: flex;
  flex-direction: column;
  gap: 0;
  background: var(--fmg-pvl-white);
  border-radius: 6px;
  box-shadow: 0 16px 40px rgb(0 0 0 / 0.10);
}

/* Colonne droite : pile verticale des deux cartes, a HAUTEUR NATURELLE (calee
   en haut, PAS etiree pour remplir la hauteur de la carte Categories), les deux
   cartes collees ensemble (petit ecart). */
.fmg-forum-body-side {
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: 0;
  background: var(--fmg-pvl-white);
  border-radius: 6px;
  box-shadow: 0 16px 40px rgb(0 0 0 / 0.10);
}

/* Sous-blocs : plus de fond/ombre propres (portes par la colonne-carte). */
.fmg-forum-card {
  background: none;
  border-radius: 0;
  box-shadow: none;
}

/* Les deux colonnes demarrent exactement a la meme hauteur : neutralise toute
   marge heritee du theme sur les colonnes ou leur premiere carte. */
.fmg-forum-body-grid > *,
.fmg-forum-body-main > .fmg-forum-card:first-child,
.fmg-forum-body-side > .fmg-forum-card:first-child {
  margin-block-start: 0 !important;
}

/* Filet de separation entre les deux sous-blocs d'une meme colonne. */
.fmg-forum-body-main > .fmg-forum-card + .fmg-forum-card,
.fmg-forum-body-side > .fmg-forum-card + .fmg-forum-card {
  border-block-start: 1px solid #ececec;
  padding-block-start: clamp(1.5rem, 2.2vw, 2.2rem);
}

/* Carte blanche generique du forum (categories, regles, recherche...). */
.fmg-forum-card {
  background: var(--fmg-pvl-white);
  border-radius: 6px;
  box-shadow: 0 16px 40px rgb(0 0 0 / 0.10);
  padding: clamp(1.6rem, 2.6vw, 2.7rem) clamp(1.6rem, 2.8vw, 2.9rem);
}

.fmg-forum-card-title {
  color: #123a63 !important;
  font-family: "Barlow Condensed", Impact, sans-serif !important;
  font-weight: 800 !important;
  font-size: clamp(1.5rem, 2vw, 2.05rem) !important;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin: 0 0 1.1rem !important;
  padding-block-end: 1rem;
  border-block-end: 2px solid #ececec;
}

/* Ligne de categorie : icone | (titre + desc) | Sujets | Messages. */
.fmg-forum-cat-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  /* Aligne l'icone et les chiffres en HAUT, au niveau du titre (plutot que
     centres sur la ligne titre+description). */
  align-items: start;
  gap: clamp(1rem, 2vw, 2rem);
  padding-block: clamp(1.1rem, 1.7vw, 1.6rem);
  border-block-end: 1px solid #eaeaea;
}

/* Icone calee sur la hauteur de cap du titre. */
.fmg-forum-cat-icon {
  margin-block-start: -0.15em;
}

.fmg-forum-cat-row:last-child {
  border-block-end: 0;
  padding-block-end: 0;
}

/* Icone navy : le PNG (glyphe noir) sert de MASQUE sur un fond navy -> couleur
   exacte garantie quelle que soit la couleur source. */
.fmg-forum-cat-icon {
  flex: 0 0 auto;
  width: clamp(2.4rem, 3vw, 3.3rem);
  height: clamp(2.4rem, 3vw, 3.3rem);
  background-color: #123a63;
  -webkit-mask: var(--fmg-icon) center / contain no-repeat;
  mask: var(--fmg-icon) center / contain no-repeat;
}

.fmg-forum-cat-name {
  color: #123a63 !important;
  font-family: "Barlow Condensed", Impact, sans-serif !important;
  font-weight: 800 !important;
  font-size: clamp(1.2rem, 1.55vw, 1.6rem) !important;
  line-height: 1.05 !important;
  margin: 0 0 0.3rem !important;
}

.fmg-forum-cat-desc {
  color: #5b5b5b !important;
  font-size: clamp(0.92rem, 1.05vw, 1.08rem) !important;
  line-height: 1.4 !important;
  margin: 0 !important;
}

/* Colonnes chiffres (Sujets / Messages) : nombre + label, centrees. */
.fmg-forum-cat-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  min-width: clamp(70px, 8vw, 96px);
  text-align: center;
}

.fmg-forum-cat-stat-num {
  color: #123a63;
  font-family: "Barlow Condensed", Impact, sans-serif;
  font-weight: 800;
  font-size: clamp(1.2rem, 1.6vw, 1.7rem);
  line-height: 1;
}

.fmg-forum-cat-stat-label {
  color: #8a8a8a;
  font-size: clamp(0.72rem, 0.9vw, 0.9rem);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* ---- Colonne droite : carte Recherche ---- */
.fmg-forum-search {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.fmg-forum-search-input {
  flex: 1 1 140px;
  min-width: 0;
  padding: 0.75rem 0.9rem;
  border: 1px solid #d6d6d6;
  border-radius: 4px;
  font-size: 1rem;
  color: #333;
  background: #fff;
}

.fmg-forum-search-input:focus {
  outline: 2px solid #123a63;
  outline-offset: 1px;
}

.fmg-forum-search-btn {
  flex: 0 0 auto;
  border: 0;
  padding: 0.75rem 1.3rem;
  background: #123a63;
  color: var(--fmg-pvl-white);
  font-family: "Barlow Condensed", Impact, sans-serif;
  font-weight: 700;
  font-size: 1.05rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.15s ease;
}

.fmg-forum-search-btn:hover {
  background: #0d2b49;
}

/* ---- Colonne droite : carte Regles ---- */
.fmg-forum-rules-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-block-end: 1rem;
  margin-block-end: 1.2rem;
  border-block-end: 2px solid #ececec;
}

/* Le titre dans la tete de carte Regles : on retire son propre filet/marge. */
.fmg-forum-rules-title {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

.fmg-forum-rules-shield {
  flex: 0 0 auto;
  width: clamp(2rem, 2.6vw, 2.6rem);
  height: clamp(2rem, 2.6vw, 2.6rem);
  background-color: #123a63;
  -webkit-mask: var(--fmg-icon) center / contain no-repeat;
  mask: var(--fmg-icon) center / contain no-repeat;
}

.fmg-forum-rules-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(0.9rem, 1.5vw, 1.25rem);
}

.fmg-forum-rule {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 0.7rem;
  color: #4a4a4a;
  font-size: clamp(0.95rem, 1.05vw, 1.08rem);
  line-height: 1.4;
}

.fmg-forum-rule-icon {
  flex: 0 0 auto;
  width: 1.35em;
  height: 1.35em;
  margin-block-start: 0.05em;
  background-color: #123a63;
  -webkit-mask: var(--fmg-icon) center / contain no-repeat;
  mask: var(--fmg-icon) center / contain no-repeat;
}

/* ---- Colonne gauche : carte Sujets recents ---- */
.fmg-forum-topic-list {
  display: flex;
  flex-direction: column;
}

.fmg-forum-topic {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  /* Cale le bloc réponses/vues sur la ligne du titre (centré, la 1re ligne de
     la meta flottait au-dessus du titre et semblait appartenir au sujet
     précédent). Même logique que les lignes de catégories. */
  align-items: start;
  gap: clamp(1rem, 2.5vw, 2.5rem);
  padding-block: clamp(1rem, 1.6vw, 1.5rem);
  border-block-end: 1px solid #eaeaea;
}

.fmg-forum-topic:last-child {
  border-block-end: 0;
  padding-block-end: 0;
}

/* Titre + badge (le badge passe sous le titre si la place manque). */
.fmg-forum-topic-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem 1rem;
}

.fmg-forum-topic-title {
  color: #123a63 !important;
  font-family: "Barlow Condensed", Impact, sans-serif !important;
  font-weight: 700 !important;
  font-size: clamp(1.1rem, 1.4vw, 1.45rem) !important;
  line-height: 1.1 !important;
  margin: 0 !important;
}

/* Badge categorie colore (pilule). */
.fmg-forum-topic-badge {
  flex: 0 0 auto;
  padding: 0.35em 0.85em;
  border-radius: 999px;
  color: #ffffff;
  font-family: "Barlow Condensed", Impact, sans-serif;
  font-weight: 700;
  font-size: clamp(0.8rem, 0.95vw, 0.98rem);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.fmg-badge-materiel   { background: #17a2a2; }
.fmg-badge-ecoles     { background: #e8823c; }
.fmg-badge-rencontres { background: #7c5cd3; }
.fmg-badge-vols       { background: #6fae4e; }
.fmg-badge-debutants  { background: #2b6cb0; }
.fmg-badge-meteo      { background: #3c9ee8; }
.fmg-badge-securite   { background: #c0392b; }

/* Dynamisation forum : titres/catégories/badges cliquables (rendu par les
   shortcodes fmg_forum_*). Les liens héritent de la couleur/graisse du texte
   d'origine pour ne rien changer visuellement, avec un léger effet au survol. */
/* Le titre est enveloppé dans un <a> : Astra applique sa police de lien
   (.entry-content a) qui, à spécificité égale et chargée après, écrasait
   l'héritage. On monte la spécificité (scope .fmg-parapente-forum) et on
   réimpose explicitement le Barlow Condensed bold avec !important. */
.fmg-parapente-forum .fmg-forum-cat-name a,
.fmg-parapente-forum .fmg-forum-topic-title a {
  color: inherit;
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif !important;
  font-weight: inherit !important;
  font-size: inherit;
  letter-spacing: inherit;
  text-decoration: none;
}
.fmg-forum-cat-name a:hover,
.fmg-forum-cat-name a:focus,
.fmg-forum-topic-title a:hover,
.fmg-forum-topic-title a:focus {
  text-decoration: underline;
}
/* Le badge est maintenant un <a> : on neutralise le style de lien, il garde
   son pastillage (couleur de fond + texte blanc). */
a.fmg-forum-topic-badge {
  text-decoration: none;
  color: #fff;
}
a.fmg-forum-topic-badge:hover,
a.fmg-forum-topic-badge:focus {
  filter: brightness(0.93);
}

/* Bouton secondaire « Devenir membre » : même gabarit que « Nouveau sujet »,
   mais fond blanc / écriture jaune (cf. retour client). Placé juste dessous. */
.fmg-forum-becomemember {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  margin-block-start: clamp(0.5rem, 0.8vw, 0.7rem);
  /* Bouton secondaire : pleine largeur (identique à « Nouveau sujet ») mais
     nettement moins haut -> padding vertical et police réduits. */
  padding: clamp(0.5rem, 0.8vw, 0.72rem);
  background: #fff;
  color: var(--fmg-pvl-yellow);
  font-family: "Barlow Condensed", Impact, sans-serif;
  font-weight: 800;
  font-size: clamp(0.9rem, 1.05vw, 1.15rem);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  text-decoration: none;
  border-radius: 4px;
  transition: background 0.15s ease, color 0.15s ease;
}
.fmg-forum-becomemember:hover,
.fmg-forum-becomemember:focus {
  background: #f4f4f0;
  color: var(--fmg-pvl-yellow);
}

/* Meta (reponses / vues) : deux lignes empilees, alignees a droite. */
.fmg-forum-topic-meta {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  /* Alignement optique de la 1re ligne sur la hauteur de cap du titre. */
  margin-block-start: 0.2em;
  gap: 0.35rem;
}

.fmg-forum-topic-stat {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  color: #6f6f6f;
  font-size: clamp(0.8rem, 0.95vw, 0.95rem);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.fmg-forum-topic-stat strong {
  color: #123a63;
  font-family: "Barlow Condensed", Impact, sans-serif;
  font-weight: 800;
  font-size: 1.15em;
}

.fmg-forum-topic-icon {
  flex: 0 0 auto;
  width: 1.15em;
  height: 1.15em;
  background-color: #123a63;
  -webkit-mask: var(--fmg-icon) center / contain no-repeat;
  mask: var(--fmg-icon) center / contain no-repeat;
}

/* Responsive corps Forum. */
@media (max-width: 900px) {
  .fmg-parapente-forum-body {
    margin-block-start: clamp(-120px, -14vw, -70px) !important;
  }
  .fmg-forum-body-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .fmg-forum-topic {
    grid-template-columns: 1fr;
    row-gap: 0.75rem;
  }
  .fmg-forum-topic-meta {
    flex-direction: row;
    gap: 1.2rem;
  }
}

@media (max-width: 560px) {
  /* La ligne de categorie passe en 2 rangees : icone + texte en haut, chiffres
     dessous. */
  .fmg-forum-cat-row {
    grid-template-columns: auto 1fr;
    row-gap: 0.8rem;
  }
  .fmg-forum-cat-stat {
    grid-row: 2;
    align-items: flex-start;
    flex-direction: row;
    gap: 0.4rem;
  }
  .fmg-forum-cat-stat:nth-child(3) {
    grid-column: 2;
  }
  .fmg-forum-cat-stat:nth-child(4) {
    grid-column: 2;
  }
}

.fmg-forum-hero-title {
  color: var(--fmg-pvl-white) !important;
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif !important;
  font-weight: 900 !important;
  font-size: clamp(3.5rem, 8vw, 6.6rem) !important;
  line-height: 0.92 !important;
  margin: 0 !important;
  text-transform: uppercase;
  text-shadow: 0 2px 16px rgb(0 0 0 / 0.28);
}

.fmg-forum-hero-subtitle {
  color: var(--fmg-pvl-yellow) !important;
  font-family: Caveat, "Segoe Print", cursive !important;
  font-size: clamp(1.6rem, 3vw, 2.4rem) !important;
  font-weight: 700 !important;
  line-height: 1.1;
  margin: 0.5rem 0 0 !important;
}

.fmg-forum-hero-intro {
  color: var(--fmg-pvl-white) !important;
  font-family: "Barlow", sans-serif;
  font-weight: 600 !important;
  font-size: clamp(1.15rem, 1.5vw, 1.55rem) !important;
  line-height: 1.4 !important;
  margin: clamp(1.4rem, 2.5vw, 2.2rem) 0 0 !important;
  text-shadow: 0 1px 10px rgb(0 0 0 / 0.35);
}

/* Astra peint les <p> du cover en gris : on neutralise sur la seule page Forum. */
.fmg-parapente-forum .wp-block-cover:not(.has-text-color.has-link-color) p {
  color: inherit;
}

@media (max-width: 782px) {
  .fmg-ecoles-hero-left.wp-block-group {
    margin-block-start: 3.5rem !important;
  }
}

/* ============================================================
   Parapente home v13 — Section Actus DYNAMIQUE (Query Loop).
   Compat visuelle : les blocs post-* ont un DOM legerement
   different de wp:image / wp:media-text. On reproduit a
   l'identique le rendu de la section Actus statique d'origine.
   ============================================================ */

/* --- Wrappers Query Loop : neutraliser marges/list-style --- */
.fmg-parapente-news .fmg-actus-featured-query,
.fmg-parapente-news .fmg-actus-compact-query {
  margin: 0;
}

.fmg-parapente-news .wp-block-post-template {
  margin: 0;
  padding: 0;
  list-style: none;
}

.fmg-parapente-news .wp-block-post-template > li {
  margin: 0;
}

.fmg-parapente-news .fmg-actus-featured-query .wp-block-post-template > li {
  height: 100%;
}

/* --- Carte a la une (featured) : padding editorial des blocs post
       non couverts par `.fmg-card > :where(p,h3)` --- */
.fmg-parapente-news .fmg-card-featured > .wp-block-post-terms,
.fmg-parapente-news .fmg-card-featured > .wp-block-post-excerpt,
.fmg-parapente-news .fmg-card-featured > .wp-block-read-more {
  position: relative;
  z-index: 1;
  padding-inline: 1.7rem;
}

.fmg-parapente-news .fmg-card-featured > .wp-block-post-excerpt {
  max-width: 28rem;
  margin-block: 0;
  text-shadow: 0 2px 10px rgb(0 0 0 / 0.42);
}

.fmg-parapente-news .fmg-card-featured .wp-block-post-excerpt p {
  margin: 0;
  color: var(--fmg-pvl-white);
}

.fmg-parapente-news .fmg-card-featured .wp-block-post-terms,
.fmg-parapente-news .fmg-card-featured .wp-block-post-terms a {
  color: #ffd24d;
  text-decoration: none;
}

.fmg-parapente-news .fmg-card-featured .wp-block-read-more {
  display: inline-block;
  color: #ffd24d !important;
  font-family: Inter, Arial, sans-serif !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  text-decoration: none !important;
}

/* --- Cartes compactes : reproduire le media-text horizontal --- */
.fmg-parapente-news .fmg-actus-compact-query .wp-block-post-template.fmg-compact-list {
  display: grid;
  gap: clamp(1.4rem, 2.2vw, 2.2rem);
  height: 100%;
}

.fmg-parapente-news .fmg-compact-card {
  display: grid !important;
  grid-template-columns: minmax(145px, 34%) minmax(0, 1fr) !important;
  gap: clamp(1.15rem, 2vw, 2rem) !important;
  align-items: center;
  background: transparent;
  min-height: 0;
}

.fmg-parapente-news .fmg-compact-card .fmg-compact-card__media {
  margin: 0;
  height: 120px;
  overflow: hidden;
}

.fmg-parapente-news .fmg-compact-card .fmg-compact-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fmg-parapente-news .fmg-compact-card .fmg-compact-card__content {
  min-width: 0;
}

.fmg-parapente-news .fmg-compact-card h3 {
  font-size: clamp(1.35rem, 1.75vw, 2rem) !important;
  line-height: 1.03 !important;
  margin-block: 0.2rem 0.35rem;
}

.fmg-parapente-news .fmg-compact-card h3 a {
  color: var(--fmg-pvl-black);
  text-decoration: none;
}

.fmg-parapente-news .fmg-compact-card .fmg-parapente-kicker {
  margin-block-end: 0.4rem !important;
}

.fmg-parapente-news .fmg-compact-card .fmg-parapente-kicker a {
  color: inherit;
  text-decoration: none;
}

.fmg-parapente-news .fmg-compact-card .wp-block-post-date,
.fmg-parapente-news .fmg-compact-card .wp-block-post-date time {
  margin: 0;
}

/* --- Liste compacte : pile flex, vignettes a hauteur fixe (robuste) --- */
.fmg-parapente-news .fmg-actus-compact-query .wp-block-post-template.fmg-compact-list {
  display: flex;
  flex-direction: column;
  gap: clamp(1.4rem, 2.2vw, 2.2rem);
}

@media (min-width: 841px) {
  .fmg-parapente-news .fmg-actus-compact-query,
  .fmg-parapente-news .fmg-actus-compact-query .wp-block-post-template.fmg-compact-list {
    height: 100%;
  }

  .fmg-parapente-news .fmg-actus-compact-query .wp-block-post-template.fmg-compact-list {
    justify-content: space-between;
  }

  .fmg-parapente-news .fmg-compact-card {
    grid-template-columns: 185px minmax(0, 1fr) !important;
  }

  .fmg-parapente-news .fmg-compact-card .fmg-compact-card__media {
    height: 150px;
  }
}

@media (max-width: 620px) {
  .fmg-parapente-news .fmg-compact-card {
    grid-template-columns: 120px minmax(0, 1fr) !important;
  }
}

/* ============================================================
   Page Actus v2 — Liste DYNAMIQUE (Query Loop) + pagination reelle.
   Compat visuelle : reproduit le rendu .fmg-actus-list media-text
   d'origine (cartes horizontales, filet separateur, image 4/3).
   ============================================================ */

.fmg-parapente-actus .fmg-actus-query {
  margin: 0;
}

.fmg-parapente-actus .fmg-actus-list.wp-block-post-template {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.fmg-parapente-actus .fmg-actus-list.wp-block-post-template > li {
  margin: 0;
}

.fmg-parapente-actus .fmg-actus-card {
  display: grid !important;
  grid-template-columns: clamp(110px, 14vw, 175px) minmax(0, 1fr) !important;
  gap: 1.5rem !important;
  padding-block: 1.4rem !important;
  border-top: 1px solid #e0ddd6 !important;
  background: transparent !important;
  align-items: center;
  min-height: 0;
}

.fmg-parapente-actus .fmg-actus-card .fmg-compact-card__media {
  margin: 0;
}

.fmg-parapente-actus .fmg-actus-card .fmg-compact-card__media img {
  display: block;
  width: 100% !important;
  height: auto;
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
}

.fmg-parapente-actus .fmg-actus-card .fmg-compact-card__content {
  padding: 0 !important;
  min-width: 0;
}

.fmg-parapente-actus .fmg-actus-card .fmg-parapente-kicker {
  font-size: 1rem !important;
  margin-block-end: 0.25rem !important;
}

.fmg-parapente-actus .fmg-actus-card .fmg-parapente-kicker a {
  color: inherit;
  text-decoration: none;
}

.fmg-parapente-actus .fmg-actus-card h3 {
  font-size: clamp(1.35rem, 1.75vw, 1.85rem) !important;
  line-height: 1.02 !important;
  margin-block: 0 0.35rem !important;
}

.fmg-parapente-actus .fmg-actus-card h3 a {
  color: #070707 !important;
  text-decoration: none !important;
}

.fmg-parapente-actus .fmg-actus-card h3 a:hover {
  color: #ffd24d !important;
}

.fmg-parapente-actus .fmg-actus-card .wp-block-post-date {
  margin: 0;
}

/* Pagination reelle stylee comme l'ancienne .fmg-pagination */
.fmg-parapente-actus .wp-block-query-pagination.fmg-actus-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  padding-block: 3rem;
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 700;
  font-size: 1.2rem;
}

.fmg-parapente-actus .wp-block-query-pagination-numbers {
  display: flex;
  align-items: center;
  gap: 0.3rem;
}

.fmg-parapente-actus .fmg-actus-pagination .page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  color: #070707;
  text-decoration: none;
}

.fmg-parapente-actus .fmg-actus-pagination .page-numbers.current {
  background: #ffd24d;
}

.fmg-parapente-actus .fmg-actus-pagination a.page-numbers:hover {
  background: #f0ece2;
}

.fmg-parapente-actus .fmg-actus-pagination .page-numbers.dots {
  min-width: auto;
  color: #6b6b6b;
  padding-inline: 0.25rem;
}

.fmg-parapente-actus .wp-block-query-pagination-previous,
.fmg-parapente-actus .wp-block-query-pagination-next {
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 700;
  color: #070707;
  text-decoration: none;
}

@media (max-width: 620px) {
  .fmg-parapente-actus .fmg-actus-card {
    grid-template-columns: 100px minmax(0, 1fr) !important;
    gap: 1rem !important;
  }
}

/* ============================================================
   Home Reportages v14 — grille DYNAMIQUE (Query Loop).
   Compat visuelle : reproduit .fmg-card-grid / .fmg-card d'origine
   (wp:columns -> wp:query, blocs post-*).
   ============================================================ */

.fmg-parapente-reportages .fmg-reportages-home-query {
  margin: 0;
}

.fmg-parapente-reportages .fmg-card-grid.wp-block-post-template {
  display: grid !important;
  grid-template-columns: 1fr;
  gap: clamp(1.75rem, 2.8vw, 2.75rem) !important;
  margin: 0;
  padding: 0;
  list-style: none;
}

.fmg-parapente-reportages .fmg-card-grid.wp-block-post-template > li {
  margin: 0;
  display: flex;
}

.fmg-parapente-reportages .fmg-card-grid.wp-block-post-template > li > .fmg-card {
  width: 100%;
  height: 100%;
}

@media (min-width: 1100px) {
  .fmg-parapente-reportages .fmg-card-grid.wp-block-post-template {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 700px) and (max-width: 1099px) {
  .fmg-parapente-reportages .fmg-card-grid.wp-block-post-template {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Padding editorial des blocs post non couverts par `.fmg-card > :where(p,h3)` */
.fmg-parapente-reportages .fmg-card > .wp-block-post-terms,
.fmg-parapente-reportages .fmg-card > .wp-block-post-excerpt,
.fmg-parapente-reportages .fmg-card > .wp-block-read-more {
  padding-inline: clamp(1.5rem, 2.1vw, 1.75rem) !important;
}

.fmg-parapente-reportages .fmg-card .wp-block-post-terms a {
  color: inherit;
  text-decoration: none;
}

.fmg-parapente-reportages .fmg-card h3 a {
  color: inherit;
  text-decoration: none;
}

.fmg-parapente-reportages .fmg-card .wp-block-post-excerpt {
  margin: 0;
}

.fmg-parapente-reportages .fmg-card .wp-block-post-excerpt p {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.45;
}

.fmg-parapente-reportages .fmg-card a.fmg-link-arrow {
  display: inline-block;
  align-self: flex-start;
  margin-block: auto 1.65rem !important;
  color: var(--fmg-pvl-black);
  font-size: 1.1rem !important;
  font-weight: 800 !important;
  text-decoration: none;
  text-transform: uppercase;
}

/* Home Reportages v14b — image pleine largeur + cartes hauteur egale robuste */

/* Image a la une : pleine largeur de la carte (neutralise le layout contraint
   et la largeur intrinseque de l'image) */
.fmg-parapente-reportages .fmg-card .wp-block-post-featured-image {
  align-self: stretch;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

.fmg-parapente-reportages .fmg-card .wp-block-post-featured-image img {
  display: block;
  width: 100% !important;
}

/* Cartes a hauteur strictement egale (pour que "Lire l'article" soit vraiment
   tout en bas et aligne entre les 3 cartes) */
.fmg-parapente-reportages .fmg-card-grid.wp-block-post-template {
  align-items: stretch;
}

.fmg-parapente-reportages .fmg-card-grid.wp-block-post-template > li {
  align-self: stretch;
}

/* ============================================================
   Page Reportages v3 — featured + grille DYNAMIQUES (Query Loop).
   Compat : adapte le DOM des blocs post-* aux classes .fmg-reportages-*
   existantes (definies plus haut). Visuel inchange.
   ============================================================ */

/* Neutraliser les wrappers query / ul.post-template / li */
.fmg-parapente-reportages .fmg-reportages-featured-query,
.fmg-parapente-reportages .fmg-reportages-grid-query,
.fmg-parapente-reportages .fmg-reportages-featured-query .wp-block-post-template {
  margin: 0;
  padding: 0;
  list-style: none;
}
.fmg-parapente-reportages .wp-block-post-template > li {
  margin: 0;
}

/* Image cliquable (post-featured-image isLink) : le <a> doit remplir la figure */
.fmg-reportages-featured-media a,
.fmg-reportages-card-media a {
  display: block;
  height: 100%;
}

/* Categorie (post-terms) et titre (post-title) : le lien herite de la couleur */
.fmg-reportages-featured-cat a,
.fmg-reportages-card-cat a,
.fmg-reportages-featured-title a,
.fmg-reportages-card-title a {
  color: inherit;
  text-decoration: none;
}

/* Extrait (post-excerpt) : le <p> interne herite du style du conteneur */
.fmg-reportages-featured-text p,
.fmg-reportages-card-text p {
  margin: 0;
  font-size: inherit;
  line-height: inherit;
  color: inherit;
}

/* Lien "Lire l'article" : read-more EST le <a> (les regles `.classe a`
   d'origine ne s'appliquent donc pas -> on cible le <a> directement) */
a.fmg-reportages-featured-link {
  color: #0b1018 !important;
  font-weight: 700 !important;
  font-size: 1.7rem !important;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  text-decoration: none;
}
a.fmg-reportages-card-link {
  color: #0b1018 !important;
  font-weight: 700 !important;
  font-size: 1.5rem !important;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  text-decoration: none;
}

/* Grille : le ul.post-template PORTE la classe .fmg-reportages-grid (deja stylee
   en grid 3 col). Les li se comportent en cellules, la carte remplit la cellule. */
.fmg-parapente-reportages .fmg-reportages-grid.wp-block-post-template > li {
  display: flex;
}
.fmg-parapente-reportages .fmg-reportages-grid.wp-block-post-template > li > .fmg-reportages-card {
  width: 100%;
}

/* Pagination reelle (stylee comme celle d'Actus, adaptee au fond image) */
.fmg-parapente-reportages .wp-block-query-pagination.fmg-reportages-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  margin-block: clamp(2rem, 4vh, 3rem) clamp(3rem, 6vh, 5rem);
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 700;
  font-size: 1.3rem;
}
.fmg-parapente-reportages .fmg-reportages-pagination .wp-block-query-pagination-numbers {
  display: flex;
  gap: 0.35rem;
}
.fmg-parapente-reportages .fmg-reportages-pagination .page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  height: 46px;
  color: #ffffff;
  text-decoration: none;
  border-radius: 3px;
  text-shadow: 0 1px 3px rgb(0 0 0 / 0.5);
}
.fmg-parapente-reportages .fmg-reportages-pagination .page-numbers.current {
  background: #ffd24d;
  color: #0b1018;
  text-shadow: none;
}
.fmg-parapente-reportages .fmg-reportages-pagination a.page-numbers:hover {
  background: rgb(255 255 255 / 0.22);
}
.fmg-parapente-reportages .fmg-reportages-pagination .page-numbers.dots {
  min-width: auto;
}
.fmg-parapente-reportages .wp-block-query-pagination-previous,
.fmg-parapente-reportages .wp-block-query-pagination-next {
  color: #ffffff;
  text-decoration: none;
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 700;
  text-shadow: 0 1px 3px rgb(0 0 0 / 0.5);
}

/* ============================================================
   Home Matos v15 — grille DYNAMIQUE (Query Loop).
   Compat : reproduit .fmg-card-grid / .fmg-gear-card (cartes jaunes).
   ============================================================ */

.fmg-parapente-gear .fmg-matos-home-query {
  margin: 0;
}

.fmg-parapente-gear .fmg-card-grid.wp-block-post-template {
  margin-block-start: 1.2rem;
  margin-inline: 0;
  padding: 0;
  list-style: none;
}

.fmg-parapente-gear .fmg-card-grid.wp-block-post-template > li {
  margin: 0;
  display: flex;
}

.fmg-parapente-gear .fmg-card-grid.wp-block-post-template > li > .fmg-gear-card {
  width: 100%;
  height: 100%;
}

/* Kicker (post-terms) + extrait (post-excerpt) : meme retrait horizontal que le
   titre h3 (qui recoit deja `.fmg-card > :where(p,h3)`) */
.fmg-parapente-gear .fmg-gear-card > .wp-block-post-terms,
.fmg-parapente-gear .fmg-gear-card > .wp-block-post-excerpt {
  padding-inline: 1.7rem;
}

.fmg-parapente-gear .fmg-gear-card .wp-block-post-terms a,
.fmg-parapente-gear .fmg-gear-card h3 a {
  color: inherit;
  text-decoration: none;
}

.fmg-parapente-gear .fmg-gear-card .wp-block-post-excerpt p {
  margin: 0;
}

/* Image produit : centree, marges neutralisees (object-fit contain deja pose
   par `.fmg-gear-card img`) */
.fmg-parapente-gear .fmg-gear-card .wp-block-post-featured-image {
  margin: 0;
  text-align: center;
}

.fmg-parapente-gear .fmg-gear-card .wp-block-post-featured-image a {
  display: block;
}

/* Home Matos v15b — titre produit (post-title lien) en Barlow Condensed gras
   (le <a> heritait d'Inter -> trop large et pas gras) + description agrandie */
.fmg-parapente-gear .fmg-gear-card h3,
.fmg-parapente-gear .fmg-gear-card h3 a {
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif !important;
  font-weight: 900 !important;
  font-size: clamp(1.45rem, 1.7vw, 1.75rem) !important;
  line-height: 1.02 !important;
}

.fmg-parapente-gear .fmg-gear-card .wp-block-post-excerpt,
.fmg-parapente-gear .fmg-gear-card .wp-block-post-excerpt p {
  font-size: 1.02rem !important;
  line-height: 1.5 !important;
}

/* ============================================================
   Page Matos v4 — listing DYNAMIQUE (Query Loop) + pagination reelle.
   Compat : reproduit .fmg-matos-grid / .fmg-matos-card (cartes blanches).
   ============================================================ */

.fmg-parapente-matos .fmg-matos-query { margin: 0; }

/* La grille est portee par le ul.post-template (classe .fmg-matos-grid) */
.fmg-parapente-matos .fmg-matos-grid.wp-block-post-template {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 2rem !important;
  margin: 0;
  padding: 0;
  list-style: none;
}
.fmg-parapente-matos .fmg-matos-grid.wp-block-post-template > li {
  margin: 0;
  display: flex;
}
.fmg-parapente-matos .fmg-matos-grid.wp-block-post-template > li > .fmg-matos-card {
  width: 100%;
}

/* Titre produit (post-title lien) : Barlow Condensed gras (le <a> heritait
   d'Inter -> trop large et pas gras) */
.fmg-parapente-matos .fmg-matos-card h3,
.fmg-parapente-matos .fmg-matos-card h3 a {
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif !important;
  font-weight: 900 !important;
  font-size: clamp(1.45rem, 1.7vw, 1.75rem) !important;
  line-height: 1.02 !important;
  color: #070707 !important;
  text-decoration: none;
}

/* Categorie (post-terms) : lien herite du jaune */
.fmg-parapente-matos .fmg-matos-card .fmg-matos-card-cat a {
  color: inherit;
  text-decoration: none;
}

/* Extrait (post-excerpt) : le <p> interne prend le style de la description */
.fmg-parapente-matos .fmg-matos-card .wp-block-post-excerpt {
  margin: 0;
}
.fmg-parapente-matos .fmg-matos-card .wp-block-post-excerpt p {
  margin: 0;
  color: #444;
  font-size: 1.02rem;
  line-height: 1.5;
}

/* Image produit : figure post-featured-image centree (mimique wp-block-image) */
.fmg-parapente-matos .fmg-matos-card .wp-block-post-featured-image {
  margin: 0 0 1.1rem !important;
  text-align: center;
}

/* Responsive grille */
@media (max-width: 980px) {
  .fmg-parapente-matos .fmg-matos-grid.wp-block-post-template {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 680px) {
  .fmg-parapente-matos .fmg-matos-grid.wp-block-post-template {
    grid-template-columns: 1fr !important;
  }
}

/* Pagination reelle (fond clair : texte sombre, page active jaune) */
.fmg-parapente-matos .wp-block-query-pagination.fmg-matos-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  margin-block: clamp(2.5rem, 4vw, 3.5rem) 0;
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 700;
  font-size: 1.2rem;
}
.fmg-parapente-matos .fmg-matos-pagination .wp-block-query-pagination-numbers {
  display: flex;
  gap: 0.3rem;
}
.fmg-parapente-matos .fmg-matos-pagination .page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  color: #070707;
  text-decoration: none;
}
.fmg-parapente-matos .fmg-matos-pagination .page-numbers.current { background: #ffd24d; }
.fmg-parapente-matos .fmg-matos-pagination a.page-numbers:hover { background: #ececec; }
.fmg-parapente-matos .fmg-matos-pagination .page-numbers.dots { min-width: auto; }
.fmg-parapente-matos .wp-block-query-pagination-previous,
.fmg-parapente-matos .wp-block-query-pagination-next {
  color: #070707;
  text-decoration: none;
  font-family: "Barlow Condensed", sans-serif;
  font-weight: 700;
}

/* ============================================================
   Fix Matos v16 — images produit (home gear + page) trop grandes.
   Astra impose object-fit:cover / pleine taille sur .wp-post-image
   (et enrobe parfois dans .ast-single-post-featured-section).
   On re-force le rendu "contain" borne, quel que soit le wrapper.
   ============================================================ */

/* Neutraliser un eventuel wrapper Astra injecte dans la carte */
.fmg-parapente-gear .fmg-gear-card :where(.ast-single-post-featured-section, .post-thumb, .ast-article-image-container),
.fmg-parapente-matos .fmg-matos-card :where(.ast-single-post-featured-section, .post-thumb, .ast-article-image-container) {
  width: auto !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  text-align: center !important;
  overflow: visible !important;
}

/* Home (cartes jaunes) : figure a HAUTEUR FIXE, image centree dedans.
   On borne par la figure (que l'on maitrise) et non par l'img (qu'Astra
   force en height:auto/cover). */
.fmg-parapente-gear .fmg-gear-card .wp-block-post-featured-image,
.fmg-parapente-gear .fmg-gear-card figure {
  height: 210px !important;
  margin: 0 auto 0.9rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}

.fmg-parapente-gear .fmg-gear-card .wp-block-post-featured-image a {
  display: flex !important;
  height: 100% !important;
  align-items: center;
  justify-content: center;
}

.fmg-parapente-gear .fmg-gear-card img {
  width: auto !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 210px !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
}

/* Page Matos (cartes blanches) : meme principe, figure 180px */
.fmg-parapente-matos .fmg-matos-card .wp-block-post-featured-image,
.fmg-parapente-matos .fmg-matos-card figure {
  height: 180px !important;
  margin: 0 auto 1.1rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}

.fmg-parapente-matos .fmg-matos-card .wp-block-post-featured-image a {
  display: flex !important;
  height: 100% !important;
  align-items: center;
  justify-content: center;
}

.fmg-parapente-matos .fmg-matos-card img {
  width: auto !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 180px !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  margin-inline: auto !important;
}

/* Fix v17 — masquer l'image "mise en avant" injectee par Astra en tete de page
   (ast-single-post-featured-section) sur nos pages custom parapente : le visuel
   est porte par nos propres blocs (hero cover), pas par la featured image. */
body:has(.fmg-parapente-home) .ast-single-post-featured-section,
body:has(.fmg-parapente-home) .site-main > .post-thumb {
  display: none !important;
}

/* ===========================================================================
   HERO CARROUSEL « À la une » (Option 2 — Query Loop + JS de défilement)
   3 slides · rotation 6 s · ordre chronologique · transition glissement.
   Gabarit hero conservé : les slides réutilisent .fmg-parapente-hero-content
   (styles texte inchangés). On empile les slides sur toute la scène du hero et
   on habille l'image de l'article en fond plein cadre.
   =========================================================================== */

/* La scène doit remplir tout le cover. L'inner-container du hero est positionné
   par le cœur de WordPress (position:relative) et sert donc de référent aux
   slides absolues ; or, tous ses enfants étant désormais en position absolue,
   il s'effondre à la hauteur de la navbar (bug bandeau fin). On le force à
   occuper toute la hauteur du cover pour que les slides couvrent les 720 px. */
.fmg-parapente-hero.wp-block-cover {
  align-items: stretch;
}

.fmg-parapente-hero.wp-block-cover {
  padding-top: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* L'ancienne règle « home retours client » impose padding-block-end:150px au
   cover (réserve d'espace pour les dots de l'ancien hero statique). Avec le
   carrousel, ce padding réduit la scène à ~570px : l'image et le contenu (accroche
   + bouton) sont tronqués en bas. On l'annule (spécificité alignée sur la règle
   2500 + !important, placée plus loin dans la cascade → prioritaire). */
.fmg-parapente-home:not(.fmg-parapente-actus):not(.fmg-parapente-matos) .fmg-parapente-hero.wp-block-cover {
  padding-block-end: 0 !important;
}

.fmg-parapente-hero .wp-block-cover__inner-container {
  align-self: stretch;
  width: 100%;
  min-height: 100%;
  padding: 0 !important;
  max-width: none !important;
  /* Neutralise l'ancien z-index:3 (fix dots de l'ancien hero) : il créait un
     contexte d'empilement qui faisait passer l'image AU-DESSUS de la bordure
     montagne (z:2). En z:auto, la montagne repasse au-dessus de l'image, et les
     ronds (z:6) / navbar (z:5) restent au-dessus de la montagne. */
  z-index: auto !important;
}

/* Le reset z-index:auto ci-dessus ne concerne QUE le carrousel de la home (il
   evite que l'image passe au-dessus de la bordure montagne). Sur les heros
   internes SANS carrousel (Matos, Actus, Reportages, Ecoles, Forum), ce reset
   faisait retomber le contenu SOUS le voile .wp-block-cover__background (z:1),
   qui interceptait alors les clics -> le bouton « Lire le test » de la banniere
   Matos devenait incliquable (seule la navbar, en z:5, restait cliquable).
   On restaure donc un contexte d'empilement au-dessus du voile pour ces heros. */
.fmg-parapente-hero:not(:has(.fmg-hero-carousel)) .wp-block-cover__inner-container {
  z-index: 2 !important;
}

/* La navbar doit rester au-dessus des slides (qui remplissent toute la scène). */
.fmg-parapente-hero .fmg-parapente-hero-nav {
  position: relative;
  z-index: 5;
}

/* Query + post-template = la scène : ils remplissent tout le cover (720px).
   Conteneur de positionnement = .wp-block-cover (position:relative par défaut),
   l'inner-container restant statique. */
.fmg-parapente-hero .fmg-hero-carousel,
.fmg-parapente-hero .fmg-hero-slides {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow: hidden;
  /* Annule la contrainte de largeur du layout `constrained` du cover (max-width
     content-size + marges auto centrées), sinon la bannière est une boîte
     centrée avec des bandes vides à gauche/droite au lieu d'être plein cadre. */
  max-width: none !important;
  margin-inline: 0 !important;
}

/* Les <li> auto-générés par le post-template ne créent pas de boîte :
   chaque .fmg-hero-slide se positionne dans la scène (contourne la friction
   connue des wrappers <ul>/<li> du Query Loop). */
.fmg-parapente-hero .fmg-hero-slides > li {
  display: contents;
}

/* Chaque slide occupe toute la scène ; masquée par défaut, elle glisse depuis
   la droite quand elle devient active (transition « glissement »). */
.fmg-parapente-hero .fmg-hero-slide {
  position: absolute;
  inset: 0;
  margin: 0 !important;
  max-width: none !important;
  opacity: 0;
  visibility: hidden;
  transform: translateX(6%);
  transition: opacity .6s ease, transform .7s ease, visibility 0s linear .7s;
  z-index: 0;
}

.fmg-parapente-hero .fmg-hero-slide.is-active {
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
  transition: opacity .6s ease, transform .7s ease;
  z-index: 1;
}

/* Repli sans JS (ou avant exécution) : afficher la 1re slide. Dès que le JS
   est prêt il ajoute .is-ready au carrousel et pilote .is-active lui-même. */
.fmg-parapente-hero .fmg-hero-carousel:not(.is-ready) .fmg-hero-slides > li:first-child > .fmg-hero-slide {
  opacity: 1;
  visibility: visible;
  transform: none;
}

/* Image de l'article en fond plein cadre + voile sombre de lisibilité. */
.fmg-parapente-hero .fmg-hero-slide__media {
  position: absolute;
  inset: 0;
  margin: 0 !important;
  height: 100%;
}

.fmg-parapente-hero .fmg-hero-slide__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* Point focal vertical : ~80% pour centrer le parapente jaune entier (voile +
     pilote) dans la bannière, comme l'ancien hero validé. */
  object-position: center 80%;
}

.fmg-parapente-hero .fmg-hero-slide::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgb(10 20 30 / 0.62) 0%, rgb(10 20 30 / 0.30) 45%, rgb(10 20 30 / 0.10) 100%);
  z-index: 1;
}

/* Le contenu texte passe au-dessus de l'image et du voile. On le remonte un peu
   (vs le hero statique) pour dégager la place des ronds SOUS le bouton (sinon
   ils se superposent au bouton « Lire l'article »). */
.fmg-parapente-hero .fmg-hero-slide .fmg-parapente-hero-content {
  position: relative;
  z-index: 2;
  margin-block-start: clamp(208px, 10vw, 175px) !important;
}

/* Resserre l'écart « A LA UNE » → titre (le h1 a un margin-block 1.55rem qui
   crée un grand vide). Le kicker se rapproche ainsi du titre. */
.fmg-parapente-hero .fmg-hero-slide .fmg-hero-kicker {
  margin-bottom: 0.35rem !important;
}

/* Titre = post-title. Le bloc natif .wp-block-post-title prend la police du
   thème (la règle globale :where() a une spécificité nulle) → on force Barlow
   Condensed extra-bold, et on réduit la taille (le clamp hero d'origine ~7rem
   était trop gros pour ce carrousel). */
.fmg-parapente-hero .fmg-hero-slide .wp-block-post-title {
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif !important;
  font-weight: 800 !important;
  font-size: clamp(3rem, 4.4vw, 5rem) !important;
  line-height: 0.98 !important;
  margin-block: 0.4rem 1rem !important;
  text-transform: uppercase;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.fmg-parapente-hero .fmg-hero-slide .wp-block-post-title a {
  color: inherit;
  text-decoration: none;
  /* Le titre est un lien (isLink) : le theme applique sa police aux <a>, ce qui
     ecrase le Barlow herite du h1. On reforce Barlow Condensed extra-bold ici. */
  font-family: "Barlow Condensed", Impact, "Arial Narrow", sans-serif !important;
  font-weight: 800 !important;
}

/* Accroche = extrait de l'article (bloc post-excerpt). WordPress n'applique pas
   le className custom sur ce bloc dynamique → on cible la classe de base et on
   reproduit le style manuscrit jaune de .fmg-parapente-script. */
.fmg-parapente-hero .fmg-hero-slide .wp-block-post-excerpt {
  margin-top: .4rem;
  max-width: 34ch;
}

.fmg-parapente-hero .fmg-hero-slide .wp-block-post-excerpt__excerpt {
  margin: 0 !important;
  color: var(--fmg-pvl-yellow) !important;
  font-family: Caveat, "Segoe Print", cursive !important;
  font-size: 2rem !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Bouton « Lire l'article » = bloc read-more (className custom non appliqué non
   plus) → on cible la classe de base et on calque le bouton primaire. */
.fmg-parapente-hero .fmg-hero-slide .wp-block-read-more {
  display: inline-block;
  margin-top: 1.4rem;
  border: 2px solid var(--fmg-pvl-yellow);
  background: var(--fmg-pvl-yellow);
  color: var(--fmg-pvl-black);
  font-family: Inter, Arial, sans-serif;
  font-weight: 800;
  font-size: 1.3rem;
  line-height: 1;
  text-transform: uppercase;
  text-decoration: none;
  padding: 1rem 1.45rem;
}

/* Ronds du carrousel : contrôle partagé, en bas à gauche sous le contenu,
   au-dessus de la bordure montagne. On reprend le préfixe :not() de la règle
   2504 (position:relative !important, spécificité 0,4,0) + .fmg-parapente-hero
   → spécificité 0,5,0, prioritaire, sinon les ronds restent en position:relative
   et sortent de la zone visible. */
.fmg-parapente-home:not(.fmg-parapente-actus):not(.fmg-parapente-matos) .fmg-parapente-hero .fmg-parapente-slider-dots {
  position: absolute !important;
  left: clamp(24px, 8vw, 150px) !important;
  bottom: 145px !important;
  z-index: 6 !important;
  display: flex !important;
  gap: 14px !important;
  margin: 0 !important;
  width: auto !important;
  max-width: none !important;
}

.fmg-parapente-hero .fmg-slider-dot {
  width: 26px;
  height: 26px;
  padding: 0;
  border: 2px solid rgb(255 255 255 / 0.85);
  border-radius: 50%;
  background: rgb(255 255 255 / 0.28);
  cursor: pointer;
  box-shadow: 0 1px 6px rgb(0 0 0 / 0.18);
  transition: background .3s ease, transform .3s ease;
}

.fmg-parapente-hero .fmg-slider-dot.is-active {
  background: var(--fmg-pvl-yellow);
  border-color: var(--fmg-pvl-yellow);
  transform: scale(1.05);
}

/* ===========================================================================
   NAVBAR PAGES INTERNES — loupe collée à « Forum », champ qui se déplie à sa
   DROITE (retour client). Sur les 5 pages internes la navbar contient la
   recherche (.fmg-nav-search). On veut : logo à gauche · menu poussé à droite ·
   loupe juste après Forum · de l'espace libre à DROITE de la loupe pour que le
   champ s'y déploie sans chevaucher le menu.
   Mécanique (marges auto, qui priment sur l'ancien justify space-between) :
   - le menu reçoit margin-inline-start:auto → l'espace libre passe AVANT lui
     (entre logo et menu), le logo reste à gauche ;
   - le form reçoit margin-inline-end:auto → une part d'espace libre reste APRÈS
     lui → la loupe n'est pas épinglée au bord et le champ se déplie vers la
     droite dans cet espace.
   Scopé aux classes de page interne → la home (dont la recherche est dans la
   section Actus, pas la navbar) n'est pas touchée : bouton « S'abonner » intact.
   On annule les anciens décalages par page (padding-right actus/matos).
   =========================================================================== */
.fmg-parapente-actus .fmg-parapente-hero-nav.wp-block-group,
.fmg-parapente-reportages .fmg-parapente-hero-nav.wp-block-group,
.fmg-parapente-matos .fmg-parapente-hero-nav.wp-block-group,
.fmg-parapente-ecoles .fmg-parapente-hero-nav.wp-block-group,
.fmg-parapente-forum .fmg-parapente-hero-nav.wp-block-group {
  padding-right: 0 !important;
}

.fmg-parapente-actus .fmg-parapente-hero-nav > .fmg-parapente-home-nav,
.fmg-parapente-reportages .fmg-parapente-hero-nav > .fmg-parapente-home-nav,
.fmg-parapente-matos .fmg-parapente-hero-nav > .fmg-parapente-home-nav,
.fmg-parapente-ecoles .fmg-parapente-hero-nav > .fmg-parapente-home-nav,
.fmg-parapente-forum .fmg-parapente-hero-nav > .fmg-parapente-home-nav {
  margin-inline-start: auto !important;
}

.fmg-parapente-hero-nav .fmg-nav-search {
  align-self: center;
  /* Espace entre « Forum » et la loupe (décollée du menu à gauche) + léger
     inset du bord droit (décollée de la bordure). */
  margin-inline-start: clamp(28px, 3.5vw, 72px) !important;
  margin-inline-end: clamp(24px, 3vw, 56px) !important;
}

/* Plus de marge de bord sur la loupe elle-même (elle est collée à Forum ;
   l'espace de déploiement du champ vient du margin-inline-end:auto du form). */
.fmg-parapente-hero-nav .fmg-nav-search button.fmg-search-icon {
  margin-inline-end: 0 !important;
}
