/* =====================================================================
   EOS Technologie — feuille de style principale
   Reconstitution fidèle du thème Divi (sans CMS).
   Sommaire : 1. Polices  2. Variables  3. Base  4. Mise en page
              5. Typographie  6. Boutons  7. En-tête  8. Pied de page
              9. Composants communs  10. Accueil  11+. Pages (voir plus bas)
   ===================================================================== */

/* 1. Polices ----------------------------------------------------------- */
/* Les polices « Marlin » et « Avenir » sont déclarées sans graisse, exactement
   comme dans Divi : les graisses 700/900 demandées sont donc simulées par le
   navigateur, ce qui reproduit le rendu d'origine. */
@font-face { font-family: "Marlin"; src: url("../fonts/marlin.otf") format("opentype"); font-display: swap; }
@font-face { font-family: "Avenir 95"; src: url("../fonts/avenir-95-black.otf") format("opentype"); font-display: swap; }
@font-face { font-family: "Avenir 55"; src: url("../fonts/avenir-55-roman.otf") format("opentype"); font-display: swap; }
@font-face {
  font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../fonts/inter-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../fonts/inter-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Open Sans"; font-style: normal; font-weight: 300 800; font-display: swap;
  src: url("../fonts/open-sans-latin.woff2") format("woff2");
}

/* 2. Variables --------------------------------------------------------- */
:root {
  --blue: #033bff;
  --red: #f01161;
  --navy: #00001a;
  --ink: #111111;
  --grey: #505050;
  --light: #f7f7f7;
  --panel: #eaecef;
  --pale: #f2f5fa;
  --gold: #e9c46c;
  --gap: 1vw;               /* marge latérale des sections « carte » */
  --radius: 20px;
  --f-display: "Marlin", Helvetica, Arial, Lucida, sans-serif;
  --f-avenir: "Avenir 95", Helvetica, Arial, Lucida, sans-serif;
  --f-avenir55: "Avenir 55", Helvetica, Arial, Lucida, sans-serif;
  --f-body: "Inter", Helvetica, Arial, Lucida, sans-serif;
  --f-open: "Open Sans", Arial, sans-serif;
  --header-h: 77px;
}

/* 3. Base -------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body {
  margin: 0;
  background: #000;
  color: #666;
  font-family: var(--f-body);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
img, svg, video { max-width: 100%; height: auto; }
img { border: 0; vertical-align: middle; }
a { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: none; }
h1, h2, h3, h4, h5, h6 { margin: 0; padding-bottom: 10px; line-height: 1em; font-weight: 500; color: #333; }
b, strong { font-weight: 700; }
p { margin: 0; padding-bottom: 1em; }
p:last-child { padding-bottom: 0; }
ul, ol { margin: 0; padding: 0; }
button { font: inherit; cursor: pointer; }
.icon { width: 1em; height: 1em; display: inline-block; vertical-align: middle; fill: currentColor; flex-shrink: 0; }
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 1000; background: #fff; color: #000; padding: 8px 14px; }
.skip-link:focus { left: 8px; top: 8px; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.center { text-align: center; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* 4. Mise en page ------------------------------------------------------ */
.sec { position: relative; padding: 4% 0; }
.sec--black { background: #000; color: #fff; }
.sec--dark { background-color: #000; color: #fff; }
.sec--light { background: var(--light); }
.sec--white { background: #fff; }
.sec--panel { background: var(--panel); }
.sec--card { margin: 0 var(--gap); border-radius: var(--radius); overflow: hidden; }
.sec--gap { margin-top: var(--gap); margin-bottom: var(--gap); }
.sec--honeycomb { background-image: url("../../medias/2023/06/Nid-dabeille-copie-3.svg"); background-position: center; background-size: cover; }
/* Images de fond posées en <img> décoratif : aucun attribut style dans le HTML (compatible avec une CSP stricte) */
.has-bgimg { position: relative; isolation: isolate; }
img.bgimg.bgimg { position: absolute; inset: 0; z-index: -1; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; border-radius: inherit; pointer-events: none; }
img.bgimg.bgimg--contain { object-fit: contain; }
img.bgimg.bgimg--pos-center-top { object-position: center top; }
img.bgimg.bgimg--pos-right-top { object-position: right top; }
img.bgimg.bgimg--pos-center-bottom { object-position: center bottom; }
img.bgimg.bgimg--pos-50-66 { object-position: 50% 66%; }
/* Mises en forme reprises du contenu d'origine (ex-attributs style) */
.hl { color: #0000ff; }
.justify { text-align: justify; }

.wrap { width: 80%; max-width: 1080px; margin: 0 auto; position: relative; }
.wrap--1200 { width: 90%; max-width: 1200px; } /* lignes Divi « 90 % / 1200 px » */
.wrap--full { width: 100%; max-width: none; }
.cols { display: grid; gap: 5.5%; }
.cols--2 { grid-template-columns: 1fr 1fr; }
.cols--3 { grid-template-columns: repeat(3, 1fr); gap: 3%; }
.cols--4 { grid-template-columns: repeat(4, 1fr); gap: 0; }

/* 5. Typographie ------------------------------------------------------- */
.display {
  font-family: var(--f-display);
  font-size: 42px;
  font-weight: 700;
  line-height: 1.2em;
  text-transform: uppercase;
  color: #fff;
  padding-bottom: 10px;
}
.display--900 { font-weight: 900; }
.display--ink { color: var(--ink); }
.display--black { color: #000; }
/* Titres H2 : rendu du site de référence, où Marlin ne se charge pas et laisse place au repli
   Helvetica / Arial gras (choix validé). Le titre des pages légales est un H2 sur l'original. */
h2.display, .legal h1.display { font-family: Helvetica, Arial, Lucida, sans-serif; }
.eyebrow { font-family: var(--f-body); font-size: 16px; font-weight: 500; line-height: 1.8em; color: var(--blue); padding-bottom: 0; }
.eyebrow--upper { text-transform: uppercase; }
.lead, .lead p { font-family: var(--f-body); font-size: 16px; font-weight: 300; line-height: 1.8em; color: inherit; }
.sec--light .lead { color: var(--ink); }

/* 6. Boutons ----------------------------------------------------------- */
.btn {
  display: inline-block;
  position: relative;
  padding: .3em 1em;
  border: 12px solid rgba(24, 30, 45, .03);
  border-radius: 100px;
  background: var(--blue);
  color: #fff;
  font-family: var(--f-body);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.7em;
  letter-spacing: 1px;
  transition: all .3s ease;
  cursor: pointer;
}
.btn:hover { background-color: #0030d6; color: #fff; }
.btn--upper { text-transform: uppercase; }
.btn--wide { padding: 0 24px .3em; }
.btn--square {
  border: 1px solid transparent;
  border-radius: 4px;
  padding: 16px 24px;
  font-family: var(--f-avenir);
  font-weight: 700;
  font-size: 14px;
  line-height: 1.7em;
  text-transform: uppercase;
  background: var(--blue);
}
.btn--square:hover { background: #0030d6; }
/* « LEARN MORE » / « Découvrir » (station sol) : au survol, fond sombre translucide et liseré blanc
   (réglage Divi d'origine, transition 0,3 s) */
.btn--square.btn--veil:hover, .btn--square.btn--veil:focus-visible { background: rgba(0, 1, 26, .43); border-color: #fff; }
.link-more { display: inline-block; color: var(--blue); font-size: 14px; font-weight: 600; text-transform: uppercase; padding: 4px 14px; }

/* 7. En-tête ----------------------------------------------------------- */
/* Mesures relevées sur le site d'origine (DiviMenus) : pilule centrée de 53 px,
   largeur ajustée au contenu (760 px max), éléments alignés à droite, 20 px d'écart.
   L'en-tête démarre sous la marge des sections « carte » (1vw) puis se colle en haut au défilement. */
.site-header { position: fixed; z-index: 100; top: 0; left: 0; right: 0; height: 0; }
body:has(#main > .sec--card:first-child) .site-header:not(.is-scrolled) { top: var(--gap); }
.site-header__logo { position: absolute; top: 15px; left: 40px; display: block; line-height: 0; }
.site-header__logo img { width: 60px; height: auto; display: block; }
/* Accueil : fin liseré blanc qui suit le contour du logo noir, lisible sur la vidéo */
.page-home .site-header__logo img, .page-home .mobilebar__logo img { filter: drop-shadow(1px 0 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 1px 0 #fff) drop-shadow(0 -1px 0 #fff); }
.mainnav { position: absolute; top: 10px; left: 0; right: 0; pointer-events: none; }
.mainnav__list {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 20px;
  width: fit-content;
  max-width: 760px;
  height: 53px;
  margin: 0 auto;
  padding: 0 0 0 22.5px;
  border-radius: 200px;
  background: rgba(0, 0, 0, .2);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  pointer-events: auto;
}
.mainnav__item { position: relative; display: flex; align-items: center; flex-shrink: 0; }
.mainnav__link {
  display: flex; align-items: center;
  height: 50px;
  padding: 15px;
  border: 0; border-radius: 0; background: transparent;
  color: #fff;
  font-family: var(--f-body);
  font-size: 15px;
  font-weight: 400;
  line-height: 15px;
  white-space: nowrap;
}
.mainnav__chev { width: 20px; height: 20px; margin-left: 6px; color: #ddd; transition: color .2s; }
.mainnav__item:hover > .mainnav__link .mainnav__chev, .mainnav__item.is-open > .mainnav__link .mainnav__chev { color: #fff; }
.mainnav__lang { height: 53px; padding: 15px 30px; border-radius: 200px; background: #000; color: #ddd; transition: transform .3s, color .2s; }
.mainnav__lang .icon { width: 28.75px; height: 23px; }
.mainnav__item--lang:hover .mainnav__lang, .mainnav__item--lang.is-open .mainnav__lang { transform: translateX(6px); color: #fff; }
.mainnav__sub {
  list-style: none;
  position: absolute;
  top: calc(100% + 8.5px);
  left: 0;
  width: 201px;
  padding: 0;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  opacity: 0;
  visibility: hidden;
  transition: opacity .2s, visibility .2s;
}
.mainnav__sub::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.mainnav__item:hover > .mainnav__sub, .mainnav__item:focus-within > .mainnav__sub, .mainnav__item.is-open > .mainnav__sub { opacity: 1; visibility: visible; }
.mainnav__sub a {
  display: flex; align-items: center; gap: 5px;
  padding: 10px 15px;
  background: rgba(0, 0, 0, .2);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  color: #fff; font-size: 15px; font-weight: 400; line-height: 19.5px;
  transition: background .2s;
}
.mainnav__sub a:hover, .mainnav__sub a[aria-current] { background: #000; }
.mainnav__item--lang .mainnav__sub { width: 240px; top: calc(100% + 10px); }
.mobilebar { display: none; }

/* 8. Pied de page ------------------------------------------------------ */
.site-footer { background: #000; color: #fff; padding: 40px 0 0; }
.site-footer__top, .site-footer__mid, .site-footer__bottom { width: 83.33%; max-width: 1200px; margin: 0 auto; }
.site-footer__top { display: grid; grid-template-columns: repeat(5, 1fr); gap: 5.5%; padding: 27px 0 28.8px; }
.site-footer h3 { font-size: 16px; font-weight: 300; color: var(--pale); }
.footer-brand__logo img { width: 60px; height: auto; margin-bottom: 20px; }
.footer-brand h3 { line-height: 1.4; padding-bottom: 10px; }
.footer-brand p { font-size: 14px; font-weight: 300; color: var(--pale); line-height: 14px; padding-bottom: 14px; }
.footer-brand p:last-child { padding-bottom: 0; }
.footer-menu h3 { line-height: 2; }
.footer-menu ul { list-style: none; }
.footer-menu li { font-size: 14px; line-height: 14px; padding-bottom: 14px; }
.footer-menu li:last-child { padding-bottom: 0; }
.footer-menu a { color: #3d3d3d; font-weight: 300; transition: color .2s; }
.footer-menu a:hover { color: #fff; }
.site-footer__mid { display: grid; grid-template-columns: 300px 1fr; }
.footer-contact { padding-top: 32px; }
.social { list-style: none; display: flex; gap: 8px; margin-bottom: 14px; }
.social a { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--blue); color: #fff; }
.social .icon { width: 14px; height: 14px; }
.footer-contact .social { margin-bottom: 17px; }
.footer-contact p { font-size: 14px; font-weight: 300; color: #fff; line-height: 1.7; padding-bottom: 14px; }
.footer-contact p.footer-contact__link { line-height: 14px; padding-bottom: 0; }
.footer-contact a { color: inherit; }
.footer-contact__link a { color: #7b7b7b; }
.footer-recruit {
  display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
  min-height: 214px; padding-top: 29px;
  border: 1px solid var(--ink); border-radius: var(--radius);
  background-size: cover; background-position: center;
  text-align: center;
}
.footer-recruit h3 { line-height: 32px; padding-bottom: 35px; }
.site-footer__bottom { display: flex; align-items: center; justify-content: space-between; min-height: 52px; margin-top: 40px; padding: 0; }
.footer-legal { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 14px; font-weight: 300; padding: 0; }
.footer-legal a { color: #fff; }
.footer-legal span { color: #fff; }
.badge-fr { width: 194px; max-width: 100%; height: auto; }

/* 9. Composants communs ----------------------------------------------- */
/* Calque de fond Divi : image (parallaxe) + dégradé superposé */
.has-bgl { position: relative; isolation: isolate; }
.bgl { position: absolute; inset: 0; z-index: -1; overflow: hidden; border-radius: inherit; pointer-events: none; }
.bgl > img.bgl__img { position: absolute; left: 0; right: 0; bottom: 0; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; will-change: transform; }
.bgl > img.bgl__img--bottom { object-position: center bottom; }
/* Fonds en parallaxe : Divi les cale en haut (background-position 50 % 0 %) */
.bgl > img.bgl__img.js-parallax { object-position: center top; }
.bgl__grad { position: absolute; inset: 0; }
.bgl__grad--dark { background-image: linear-gradient(180deg, #000 20%, rgba(0, 0, 0, .71) 45%, rgba(255, 255, 255, 0) 100%); }
.bgl__grad--panel { background-image: linear-gradient(180deg, #eaecef 0%, rgba(234, 236, 239, .7) 28%, rgba(234, 236, 239, .4) 100%); }
.bgl__grad--pack { background-image: linear-gradient(180deg, #eaecef 30%, rgba(234, 236, 239, .7) 55%, rgba(234, 236, 239, .4) 100%); }

/* Liseré tricolore (« E O S » des pages d'origine) */
.tricolor { position: absolute; left: 50%; transform: translateX(-50%); display: flex; width: 260px; z-index: 3; pointer-events: none; }
.tricolor span { flex: 1; height: 2px; }
.tricolor span:nth-child(1) { background: var(--blue); }
.tricolor span:nth-child(2) { background: #fff; }
.tricolor span:nth-child(3) { background: var(--red); }
.tricolor--top { top: 0; }
.tricolor--bottom { bottom: 0; }
.tricolor--page { position: fixed; top: 0; z-index: 101; }

/* Liste de « blurbs » icône + titre + texte */
.blurbs { list-style: none; display: grid; gap: 30px; }
.blurb { display: grid; grid-template-columns: 50px 1fr; column-gap: 30px; align-items: start; }
.blurb__icon { width: 50px; height: 50px; object-fit: contain; }
.blurb__title { font-family: var(--f-body); font-size: 22px; font-weight: 500; line-height: 1.45; color: #333; padding-bottom: 6px; }
.blurb__text { font-size: 14px; font-weight: 300; color: var(--ink); line-height: 1.7; }

/* Puce verre dépoli */
.chip { display: flex; align-items: flex-start; gap: 15px; padding: 16px 20px 10px; border-radius: 8px; background: rgba(255, 255, 255, .25); }
.chip h3 { font-family: var(--f-body); font-size: 20px; font-weight: 500; line-height: 1.2; color: #000; padding: 0 0 10px; }
.chip__icon { width: 36px; height: 36px; color: #000; }

/* Bandeau « Demander une démo » (style 2025) */
.cta-band { margin-top: var(--gap); padding: 4% 0; text-align: center; background-color: #000; }
.cta-band__inner { z-index: 2; }
.cta-band .display { font-weight: 900; padding-bottom: 21px; }
.cta-band__text { font-size: 16px; font-weight: 300; line-height: 1.8; color: #fff; padding-bottom: 19px; }

/* Carrousel d'actualités */
.news-slider { position: relative; padding: 30px 30px 0; }
.news-slider__viewport {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 2 * 50px) / 3);
  gap: 50px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding: 0 0 30px;
}
.news-slider__viewport::-webkit-scrollbar { display: none; }
.news-slider__nav {
  position: absolute; top: 50%; z-index: 2;
  display: grid; place-items: center;
  width: 40px; height: 40px;
  border: 0; border-radius: 50%;
  background: #000; color: #fff;
  font-size: 20px;
  transform: translateY(-50%);
  transition: opacity .2s;
}
.news-slider__nav:disabled { opacity: .35; cursor: default; }
.news-slider__nav--prev { left: -66px; }
.news-slider__nav--next { right: -66px; }
.news-card { scroll-snap-align: start; display: flex; flex-direction: column; background: #fff; border-radius: 20px; overflow: hidden; box-shadow: 0 12px 18px -6px #eaeff7; }
.news-card__media { position: relative; display: block; height: 280px; overflow: hidden; }
.news-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.news-card:hover .news-card__media img { transform: scale(1.04); }
.news-card__date {
  position: absolute; top: 9px; right: 10px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: 70px; height: 70px; border-radius: 50%;
  background: #000; color: #fff;
  font-size: 11px; font-weight: 500; line-height: 9.9px;
}
.news-card__date strong { font-size: 24px; font-weight: 500; line-height: 24px; }
.news-card__body { display: flex; flex-direction: column; flex: 1; padding: 8px 20px 20px; }
.news-card__cats { font-size: 14px; font-weight: 500; line-height: 23.8px; letter-spacing: 1px; color: var(--blue); padding-bottom: 3px; }
.news-card__cats a { color: var(--blue); }
.news-card__title { font-family: var(--f-body); font-size: 16px; font-weight: 800; line-height: 1.4; color: var(--ink); padding-bottom: 10px; }
.news-card__title a { color: inherit; }
.news-card__excerpt { font-size: 14px; font-weight: 500; line-height: 1.8; color: #666; padding-bottom: 20px; }
.news-card__more { align-self: flex-start; margin: auto 0 0 -12px; padding: 4.2px 14px; color: var(--blue); font-size: 14px; font-weight: 600; line-height: 23.8px; text-transform: uppercase; }

/* Pastille « French manufacturer » */
.badge-fr--hero { position: absolute; z-index: 3; }

/* 10. Accueil ---------------------------------------------------------- */
/* Vidéo d'accueil jamais rognée : le cadre suit le ratio de la vidéo (16:9, 1920 × 1080) sur toute la largeur
   et peut dépasser le bas de l'écran ; « contain » ajoute des bandes noires si le ratio diffère (affiche, autre fichier). */
.hero-video { margin: var(--gap); padding: 0; aspect-ratio: 16 / 9; background: #000; }
@supports not (aspect-ratio: 1) { .hero-video { height: 56.25vw; } }
.hero-video__media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: #000; }
.home-intro { padding: 0; }
.home-intro__head { display: grid; grid-template-columns: 60% 40%; padding-top: 27px; }
.home-intro__head .lead { color: #fff; }
.home-intro__badge { justify-self: end; margin: 0 14px 0 0; }
.home-range { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 29px; }
.home-range__item { display: block; padding: 20px 10px; border-radius: var(--radius); }
.home-range__img { display: block; background-size: contain; background-position: center; background-repeat: no-repeat; transition: transform .3s ease; }
.home-range__item:hover .home-range__img { transform: scale(1.05); }
.home-range__img img { display: block; width: 100%; }
.home-range__label { display: block; padding: 15px 0 10px; margin-bottom: 10px; font-size: 23px; font-weight: 300; line-height: 1; color: #fff; text-transform: uppercase; }
.home-range__label strong { font-weight: 700; }
.home-about { padding: 57px 0 86.4px; background-color: #000; }
.home-about .wrap:first-of-type { padding-bottom: 27px; }
.home-about__body { align-items: start; margin-top: 14px; min-height: 282px; }
.home-about__body .lead { color: #fff; padding-bottom: 19px; }
.home-about__body .lead p { padding-bottom: 1em; }
.home-about__body .lead p:last-child { padding-bottom: 0; }
.home-about__img { align-self: end; }
.home-about__img img { width: 100%; aspect-ratio: 510 / 282; object-fit: contain; }
.home-benefits { padding: 72px 0 43.2px; margin-top: 0; }
.home-benefits .wrap:first-of-type { padding-bottom: 38px; }
.home-benefits__body { padding: 27px 0; align-items: start; }
.home-benefits .blurbs { padding: 0 0 0 20px; gap: 29.7px; }
.home-benefits .blurb { padding-right: 19px; }
.home-benefits .blurb__title { line-height: 22px; padding-bottom: 10px; }
.home-benefits__img { display: flex; justify-content: flex-start; }
.home-benefits__img img { width: 300px; max-width: 100%; border-radius: 16px; box-shadow: 0 2px 18px 0 #eaecef; }
.home-dna { margin: var(--gap); padding: 43px 0 14.4px; background-color: var(--light); }
.home-dna__plane { display: flex; justify-content: center; padding-bottom: 27px; }
.home-dna__plane img { width: 324px; height: auto; }
.home-dna__chips { margin-top: 29px; padding-bottom: 27px; }
.home-dna__foot { margin-top: 29px; text-align: center; padding-bottom: 27px; }
.home-dna__foot p { font-size: 16px; font-weight: 500; line-height: 1.8; color: #000; padding-bottom: 42px; }
.home-dna__foot img { width: 90px; }
.home-solutions { padding: 28.8px 0; }
.home-solutions .wrap:first-of-type { margin-top: 43px; padding: 27px 0; }
.product-cards { display: grid; grid-template-columns: repeat(2, 480px); justify-content: center; align-items: start; gap: 87px 60px; margin-top: 43px; padding: 30px 0 57px; }
.product-card { background: #fff; border: 1px solid #ccc; border-radius: var(--radius); box-shadow: 0 12px 18px -6px rgba(28, 27, 58, .11); overflow: hidden; align-self: start; }
.product-card__media { position: relative; height: 262px; background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; }
.product-card__media img { width: 92%; max-height: 100%; object-fit: contain; }
.product-card__ribbon { position: absolute; top: 15px; right: 20px; padding: 2px 10px; border-radius: 30px; background: #000; color: #fff; font-size: 14px; font-weight: 400; line-height: 1.5; }
.product-card__head { padding: 22px 20px 20px; text-align: center; border-bottom: 1px solid #ccc; }
.product-card__head h3 { font-family: var(--f-display); font-size: 22px; font-weight: 900; line-height: 2; color: var(--navy); text-transform: uppercase; padding-bottom: 21px; }
.product-card__stats { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); }
.product-card__stats li { display: flex; flex-direction: column; align-items: center; gap: 24px; padding: 26px 20px 10px; text-align: center; }
.product-card__stats li + li { border-left: 1px solid rgba(28, 27, 58, .11); }
.product-card__stats img { width: 54px; height: 54px; }
.product-card__stats p { font-size: 14px; font-weight: 300; color: #000; line-height: 1.7; }
.recruit-banner {
  display: grid; grid-template-columns: 1fr 1fr; align-items: center;
  padding: 60px; margin-top: 43px; margin-bottom: 0;
  border-radius: 16px; background-color: #000; background-size: cover; background-position: center;
}
.recruit-banner__text { text-align: center; }
.recruit-banner__text h3 { font-size: 16px; font-weight: 600; line-height: 16px; letter-spacing: 1px; text-transform: uppercase; color: #fff; padding: 14px 0 10px; margin-bottom: 37px; }
.recruit-banner__logo { justify-self: end; width: 80px; margin-right: 10%; }
.wrap--slider { margin-top: 43px; padding: 27px 0; }

/* Bandeau cookies -------------------------------------------------------- */
.cookiebar {
  position: fixed; z-index: 200; left: 20px; bottom: 20px;
  width: min(420px, calc(100vw - 40px));
  padding: 20px 22px 16px;
  border-radius: 12px;
  background: #fff; color: #222;
  box-shadow: 0 10px 40px rgba(0, 0, 0, .35);
  font-size: 13px; font-weight: 400; line-height: 1.55;
}
.cookiebar[hidden] { display: none; }
.cookiebar__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-bottom: 8px; }
.cookiebar__title { font-size: 16px; font-weight: 700; color: #000; padding: 0; }
.cookiebar__close { border: 0; background: none; font-size: 22px; line-height: 1; color: #555; padding: 0 4px; }
.cookiebar__text { padding-bottom: 12px; color: #333; }
.cookiebar__prefs { display: grid; gap: 6px; padding-bottom: 12px; }
.cookiebar__prefs[hidden] { display: none; }
.cookiebar__opt { display: flex; align-items: center; justify-content: space-between; padding: 8px 12px; border-radius: 6px; background: #f2f2f2; font-weight: 600; cursor: pointer; }
.cookiebar__opt em { font-style: normal; font-weight: 500; color: #1a8f3a; font-size: 12px; }
.cookiebar__opt input { width: 18px; height: 18px; accent-color: var(--blue); }
.cookiebar__actions { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
.cookiebar__btn { padding: 9px 8px; border: 1px solid #d0d0d0; border-radius: 6px; background: #f5f5f5; color: #111; font-size: 13px; font-weight: 600; }
.cookiebar__btn:hover { background: #e9e9e9; }
.cookiebar__btn--primary { background: var(--blue); border-color: var(--blue); color: #fff; }
.cookiebar__btn--primary:hover { background: #0030d6; }
.cookiebar__btn[hidden] { display: none; }
.cookiebar__links { padding: 10px 0 0; font-size: 12px; text-align: center; }
.cookiebar__links a { color: #333; text-decoration: underline; }
.cookietab {
  position: fixed; z-index: 150; left: 22px; bottom: 0;
  padding: 7px 14px; border: 0; border-radius: 8px 8px 0 0;
  background: #fff; color: #222; font-size: 11px; font-weight: 500;
  box-shadow: 0 0 12px rgba(0, 0, 0, .25);
}
.cookietab[hidden] { display: none; }

/* Parallaxe de l'accueil : l'avion reste dans sa section */
.home-dna__plane img { will-change: transform; }

/* Vidéos YouTube (chargées après consentement) ---------------------------- */
.video-embed { position: relative; aspect-ratio: 16 / 9; background: #000; overflow: hidden; }
.video-embed__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; z-index: 2; }
.consent-embed__accept {
  position: absolute; inset: 0; z-index: 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px;
  border: 0; background: transparent; color: #fff;
}
.video-embed__play { display: grid; place-items: center; width: 96px; height: 68px; border-radius: 14px; background: rgba(255, 255, 255, .92); color: #555; font-size: 34px; transition: transform .2s; }
.consent-embed__accept:hover .video-embed__play { transform: scale(1.06); }
.consent-embed__msg { max-width: 300px; padding: 10px; background: rgba(0, 0, 0, .5); border: 2px solid #000; font-family: var(--f-open); font-size: 14px; font-weight: 400; line-height: 23px; color: #fff; opacity: 0; transition: opacity .2s; }
.consent-embed__accept:hover .consent-embed__msg, .consent-embed__accept:focus-visible .consent-embed__msg { opacity: 1; }
.consent-embed.is-active .consent-embed__accept { display: none; }

/* Points d'intérêt (hotspots) — module « Image Hotspot » de Divi Pixel :
   le coin haut-gauche de l'icône (cible ETmodules 24 px, marge droite 15 px) est posé sur la position en %,
   l'info-bulle (300 px) s'ouvre à gauche, centrée verticalement, 15 px avant le point. */
.hotspots { position: relative; }
.hotspots > img { display: block; width: 100%; border-radius: 20px; }
.hotspot { position: absolute; z-index: 2; line-height: 0; }
.hotspot:hover, .hotspot.is-open, .hotspot:focus-within { z-index: 6; }
.hotspots:not(.is-ready) .hotspot { visibility: hidden; }
.hotspot > button {
  display: block; width: 39px; height: 24px; padding: 0 15px 0 0;
  border: 0; background: none; color: var(--blue); font-size: 24px; line-height: 1; cursor: pointer;
}
.hotspot > button .icon { display: block; }
.hotspot__tip {
  position: absolute; right: 100%; top: 50%; margin-right: 15px;
  width: 300px; padding: 20px 10px 0; transform: translateY(-50%);
  border-radius: 10px; background: #fff; text-align: center; overflow: hidden; line-height: normal;
  opacity: 0; visibility: hidden; transition: opacity .6s, visibility .6s; pointer-events: none;
}
.hotspot:hover .hotspot__tip, .hotspot.is-open .hotspot__tip, .hotspot > button:focus-visible + .hotspot__tip { opacity: 1; visibility: visible; }
.hotspot__tip h3 { font-family: var(--f-avenir); font-size: 22px; font-weight: 700; line-height: 1; color: #111; padding-bottom: 10px; }
.hotspot__tip p { font-family: var(--f-open); font-size: 14px; font-weight: 500; line-height: 1.7; color: #505050; padding-bottom: 15px; }

/* Galerie (grande image + vignettes) -------------------------------------- */
.gallery { background: var(--panel); border-radius: 0 0 20px 20px; overflow: hidden; }
.gallery--rounded .gallery { border-radius: 20px; }
.gallery__main { position: relative; height: 698px; background: var(--panel); }
/* hauteur de la grande image selon le module Divi Pixel de chaque page */
.gallery__main--h888 { height: 888px; }
.gallery__main--h690 { height: 690px; }
.gallery__main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gallery__arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .35); color: #000; font-size: 36px; display: grid; place-items: center; opacity: 0; transition: opacity .2s; }
.gallery__main:hover .gallery__arrow, .gallery__arrow:focus-visible { opacity: 1; }
.gallery__arrow--prev { left: 20px; }
.gallery__arrow--next { right: 20px; }
.gallery__thumbs { display: flex; align-items: center; justify-content: center; gap: 30px; padding: 20px 10px 22px; }
.gallery__strip { display: flex; gap: 20px; width: min(690px, 100%); overflow-x: auto; scrollbar-width: none; padding: 0; }
.gallery__strip::-webkit-scrollbar { display: none; }
.gallery__thumb { flex: 0 0 calc((100% - 4 * 20px) / 5); height: 80px; padding: 0; border: 0; border-radius: 10px; overflow: hidden; background: none; opacity: .75; transition: opacity .2s; }
.gallery__thumb.is-active, .gallery__thumb:hover { opacity: 1; }
.gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.gallery__nav { flex: 0 0 auto; display: grid; place-items: center; width: 40px; height: 40px; border: 0; border-radius: 50%; background: #000; color: #fff; font-size: 20px; }

/* 11. Pages UAV (2025) ---------------------------------------------------- */
.sec--flat { padding-top: 0; padding-bottom: 0; }
.uav-hero {
  margin: var(--gap); padding: 324px 0 120px; min-height: 900px;
  background-color: #000;
}
/* visuel moins haut (iSTAR : 720 × 414) : la section raccourcit d'autant */
.uav-hero--h414 { min-height: 864px; }
.uav-hero__dots { position: absolute; left: 10%; right: 10%; top: -50px; bottom: -50px; background: url("../../medias/2023/06/Fond-transparant-nid-dabeille-copie-3.webp") center / contain no-repeat; pointer-events: none; }
.uav-hero__grid { display: grid; grid-template-columns: 40% 60%; align-items: start; padding: 27px 0; z-index: 2; }
.uav-hero__visual { margin-top: -250px; } /* marge Divi d'origine ; le défilement ajoute ensuite son décalage */
.uav-hero__text .lead { color: #fff; padding-bottom: 20px; }
.uav-hero__text .display { padding-bottom: 10px; }
.uav-hero__badge { position: absolute; left: 0; right: 0; bottom: 40px; display: flex; justify-content: flex-end; z-index: 2; }
.uav-hero__badge .badge-fr { width: 224px; margin-right: 8px; }
.uav-dist { margin-top: 0; border-radius: 20px 20px 0 0; padding: 58px 0 43.2px; }
.uav-head { padding-bottom: 14.4px; }
.uav-head > * { max-width: 884px; }
.uav-pack .uav-head, .uav-features .uav-head { max-width: 1200px; }
.uav-pack .uav-head .display, .uav-features .uav-head .display { max-width: 800px; }
.uav-head .display { padding-bottom: 10px; margin-bottom: 10px; }
.uav-text { font-size: 16px; font-weight: 300; line-height: 1.8; color: var(--ink); padding: 0 0 20px; max-width: 500px; }
.uav-text--justify { text-align: justify; max-width: none; }
.uav-text--just { text-align: justify; }
.uav-features .uav-text, .uav-pack .uav-text { max-width: 600px; }
.uav-dist__grid { display: grid; grid-template-columns: 420px 1fr; gap: 33px; padding: 27px 0 27px 100px; }
.uav-dist__media { position: relative; padding-bottom: 16px; }
.uav-dist__bg { width: 350px; height: 496px; object-fit: cover; border-radius: 20px; display: block; }
.uav-dist__plane { position: absolute; left: 72px; top: 108px; width: 348px; }
.uav-dist__list { list-style: none; display: grid; gap: 16.5px; padding-left: 49px; align-content: start; }
.uav-dist__list li { display: grid; grid-template-columns: 64px 1fr; gap: 29px; align-items: start; min-height: 64px; }
.uav-dist__list img { width: 64px; height: 64px; }
.uav-dist__list h3 { font-family: var(--f-body); font-size: 22px; font-weight: 500; line-height: 1.45; color: #333; padding: 0; }
.uav-dist__list p { font-size: 14px; font-weight: 300; line-height: 1.7; color: var(--ink); }
.uav-specs, .uav-features, .uav-payload, .uav-gallery-sec { border-radius: 0; }
.uav-specs { padding: 43.2px 0; }
.uav-split { display: grid; grid-template-columns: 1fr 440px; gap: 66px; align-items: start; padding-bottom: 29px; }
.uav-split__aside { text-align: right; }
.uav-split__aside .uav-text { text-align: justify; padding-bottom: 34px; }
.uav-specs__blocks { display: flex; flex-direction: column; }
.uav-video { border-radius: 20px 20px 0 0; }
.uav-specs__blocks > .uav-video ~ .uav-video { border-radius: 0 0 20px 20px; }
.figures { display: grid; grid-template-columns: repeat(4, 1fr); padding: 28.8px 0 27px; background: var(--panel); }
.figures--2 { grid-template-columns: repeat(2, 1fr); }
.figure { text-align: center; }
.figure h3 { font-family: var(--f-body); font-size: 16px; font-weight: 500; line-height: 1; color: var(--blue); padding-bottom: 10px; }
.figure__value { font-family: var(--f-body); font-size: 2.6em; font-weight: 500; line-height: 1; color: #000; }
.gauges {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 35px; padding: 25px 0 35px;
  background: var(--panel);
  border-radius: 0 0 20px 20px;
}
.uav-specs__blocks > .gauges:not(:last-child) { border-radius: 0; }
.gauge { position: relative; display: flex; flex-direction: column; align-items: center; padding: 40px 20px; text-align: center; }
.gauge svg { width: 206px; max-width: 100%; height: auto; overflow: visible; }
.gauge__track, .gauge__bar { fill: none; stroke-width: 24; stroke-linecap: square; }
.gauge__track { stroke: #000; }
.gauge__bar { stroke: var(--blue); stroke-dasharray: 100 100; stroke-dashoffset: calc(100 - var(--p, 0) * 100); }
.gauge__value { position: absolute; top: 86px; left: 0; right: 0; font-size: 2.6em; font-weight: 500; line-height: 1.1; color: #000; padding-bottom: 6px; }
.gauge__value small { font-size: .6em; }
.gauge--plain { justify-content: center; }
.gauge--plain .gauge__value { position: static; margin-top: 92px; }
.gauge__label { margin-top: 4px; font-size: 16px; font-weight: 500; color: var(--blue); line-height: 1.4; }
.gauge--plain .gauge__label { margin-top: 6px; }
.uav-features { padding: 43.2px 0 28.8px; }
.uav-features .btn { margin-top: 0; }
.uav-features .uav-text { padding-bottom: 19px; }
.uav-features__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 66px; padding: 28.8px 0; }
.uav-features__cols--2 { grid-template-columns: repeat(2, 1fr); }
.uav-feature { border-bottom: 1px solid var(--ink); padding-bottom: 13px; }
.uav-feature h3 { font-family: var(--f-body); font-size: 22px; font-weight: 500; line-height: 22px; color: var(--ink); padding-bottom: 10px; margin-bottom: 10px; }
.uav-feature p { font-size: 16px; font-weight: 300; line-height: 1.8; color: var(--ink); padding-bottom: 16px; }
.uav-payload__box { background: #000; border-radius: 20px 20px 0 0; padding: 210px 20px 87px; }
.uav-payload__inner { display: grid; grid-template-columns: 1fr 1fr; max-width: 820px; min-height: 454px; margin: 0 auto; align-items: start; }
.uav-payload__text .display { font-weight: 700; padding-bottom: 15px; }
.uav-payload__text h3 { font-family: var(--f-body); font-size: 18px; font-weight: 500; line-height: 1; color: var(--blue); padding: 10px 0 10px; }
.uav-payload__text .eyebrow { color: var(--blue); font-size: 16px; font-weight: 500; }
.uav-payload__text p { font-size: 14px; font-weight: 300; line-height: 1.7; color: #fff; padding-bottom: 6px; }
.uav-payload__text .btn { margin-top: 18px; }
.uav-payload__img { display: flex; justify-content: center; }
.uav-payload__img img { width: 369px; }
.uav-pack { padding: 57.6px 0; border-radius: 0 0 20px 20px; }
.uav-pack .uav-head { padding-bottom: 28.8px; }
.uav-pack__box { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; background: var(--panel); border-radius: 20px; }
.uav-pack__list { padding: 40px; }
.pack-list { list-style: none; display: grid; gap: 15.5px; align-content: start; }
.pack-item { display: grid; grid-template-columns: 32px 1fr; gap: 15px; align-items: start; padding: 16px 20px 14px; border-radius: 14px; background: var(--light); }
.pack-item__icon { width: 32px; height: 32px; color: #000; }
.pack-item h4 { font-family: var(--f-avenir); font-size: 16px; font-weight: 800; line-height: 1; color: var(--ink); text-transform: uppercase; padding-bottom: 10px; }
.pack-item p { font-family: var(--f-open); font-size: 14px; font-weight: 500; line-height: 1.7; color: var(--ink); }
.uav-pack__list .btn { margin-top: 20px; }
.uav-pack__media { position: relative; padding: 40px 0; display: flex; justify-content: center; align-items: flex-start; }
.uav-pack__bg { width: 400px; height: 566px; object-fit: cover; border-radius: 20px; }
.uav-pack__plane { position: absolute; left: 2px; right: 0; top: 150px; width: 100%; }
.uav-signature { display: grid; grid-template-columns: 50% 145px 1fr; justify-content: center; align-items: center; padding: 57px 0 0; }
.uav-signature .display { text-align: right; padding: 0 15px 0 0; border-right: 1px solid var(--ink); line-height: 75px; }
.uav-signature img { width: 70px; margin-left: 14px; }
.uav-signature p { font-size: 16px; font-weight: 500; color: var(--ink); line-height: 1.8; }

/* 12. Pages « 2023 » : en-tête pleine largeur, charges utiles ------------- */
.page-hero, .pl-hero {
  position: relative; overflow: hidden;
  padding: 180px 0 120px; min-height: 741px;
  background-color: #000; color: #fff;
}
.page-hero__dots, .pl-hero__dots { position: absolute; left: 10%; right: 10%; top: calc(50% - 500px); height: 1000px; background: url("../../medias/2023/06/Fond-transparant-nid-dabeille-copie-3.webp") center / contain no-repeat; pointer-events: none; }
.page-hero__text { position: relative; z-index: 2; padding: 171px 0 27px; }
.page-hero__text > * { max-width: 480px; }
.page-hero .display, .pl-hero .display { padding-bottom: 10px; }
.page-hero:not(.page-hero--card), .page-hero.page-hero--card { min-height: 0; padding-bottom: 0; }
/* texte à 10vw du haut (+ 27 px de marge interne) et espace dessous proportionnel, comme la rangée Divi */
.page-hero:not(.page-hero--card) .page-hero__text, .page-hero.page-hero--card .page-hero__text { padding-top: calc(10vw + 27px); margin-bottom: var(--hero-mb, 8vw); }
.page-hero--news, .page-hero--antennas, .page-hero--logistics, .page-hero--gcs { --hero-mb: 14vw; }
.page-hero--news.page-hero--card .page-hero__dots { display: none; } /* pas de nid d'abeille sur l'en-tête News (EN) */
.hero-sub { font-family: var(--f-body); font-size: 16px; font-weight: 700; line-height: 1.8; text-transform: uppercase; color: #fff; padding-bottom: 14px; }
.pl-sub { font-family: var(--f-avenir); font-size: 16px; font-weight: 700; line-height: 1.8; text-transform: uppercase; color: #fff; padding-bottom: 9px; }
.page-hero__badge, .pl-hero__badge { position: absolute; z-index: 2; left: 0; right: 0; bottom: 40px; margin: 0 auto; display: flex; justify-content: flex-end; }
.page-hero__badge .badge-fr, .pl-hero__badge .badge-fr { width: 224px; margin-right: 8px; }
.btn--square.btn--inter { font-family: var(--f-body); }

.pl-hero { min-height: 943px; padding-bottom: 0; }
.pl-hero__grid { position: relative; z-index: 2; display: grid; grid-template-columns: 300px 1fr 300px; padding: 27px 0; }
.pl-hero__text, .pl-hero__stats { padding-top: 115px; }
.pl-hero .display { padding-bottom: 10px; }
.pl-hero__img { display: flex; justify-content: center; margin-top: -25px; }
.pl-hero__img img { width: 600px; height: auto; }
.pl-hero__stats { text-align: center; }
.pl-hero__stats h3 { font-family: var(--f-avenir); font-size: 20px; font-weight: 500; line-height: 1; text-transform: uppercase; color: #fff; padding-bottom: 10px; }
.pl-stat { font-family: var(--f-avenir); font-size: 36.4px; font-weight: 700; line-height: 47px; color: #fff; margin-top: 19px; padding-bottom: 40px; }
.pl-stat small { font-size: .6em; line-height: 0; margin-left: 4px; }
.pl-hero__badge { position: absolute; left: 0; right: 0; bottom: 66px; margin: 0 auto; padding: 0; }

.pl-eyebrow { font-family: var(--f-avenir); font-size: 16px; font-weight: 700; line-height: 1.8; text-transform: uppercase; color: var(--blue); padding: 0; }
.pl-specs { padding: 54px 0; }
.pl-specs .wrap:first-of-type { padding: 27px 0; }
.pl-specs .display { font-weight: 700; color: var(--ink); }
.pl-specs__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; padding: 27px 0; }
.spec-cards { list-style: none; display: grid; gap: 16.75px; padding: 40px 20px 30px; align-content: start; }
.spec-card { display: grid; grid-template-columns: 32px 1fr; gap: 15px; align-items: start; padding: 20px; background: #fff; border-radius: 14px; box-shadow: 0 2px 18px 0 #eaecef; }
.spec-card__icon { width: 26px; height: 26px; margin: 3px; color: #000; }
.spec-card h4 { font-family: var(--f-avenir); font-size: 16px; font-weight: 800; line-height: 1; text-transform: uppercase; color: var(--ink); padding: 0 0 10px; }
.spec-card p { font-family: var(--f-open); font-size: 14px; font-weight: 500; line-height: 1.7; color: var(--ink); }

.pl-toggle { padding: 230px 0 138px; }
.pl-toggle__switch { display: flex; align-items: center; justify-content: center; gap: 12px; padding-bottom: 111px; font-size: 16px; font-weight: 700; text-transform: uppercase; color: #fff; }
.switch { position: relative; display: inline-block; width: 62px; height: 31px; }
.switch input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; z-index: 2; }
.switch__track { position: absolute; inset: 0; border-radius: 31px; background: var(--blue); transition: background .2s; }
.switch__track::after { content: ""; position: absolute; top: 4px; left: 4px; width: 23px; height: 23px; border-radius: 50%; background: #fff; transition: transform .25s; }
.switch input:checked + .switch__track::after { transform: translateX(31px); }
.switch input:focus-visible + .switch__track { outline: 2px solid #fff; outline-offset: 2px; }
.pl-toggle__panel { display: grid; grid-template-columns: 396px 1fr; gap: 60px; align-items: start; padding: 0; }
.pl-toggle__panel[hidden] { display: none; }
.pl-toggle__list { list-style: none; display: grid; gap: 10px; }
.pl-toggle__list li { display: grid; grid-template-columns: 30px 1fr; gap: 16px; align-items: start; }
.pl-toggle__list img { width: 30px; height: auto; }
.pl-toggle__list h4 { font-family: var(--f-avenir); font-size: 16px; font-weight: 700; line-height: 25.6px; text-transform: uppercase; color: var(--blue); padding: 0 0 10px; }
.pl-toggle__list p { font-family: var(--f-avenir55); font-size: 18px; font-weight: 500; line-height: 23.8px; color: #fff; padding-bottom: 18px; }
.pl-toggle__list p:last-child { padding-bottom: 0; }
.pl-toggle__video { aspect-ratio: auto; border: 1px solid #fff; border-radius: 20px; }
.pl-toggle__video .video-embed__poster { position: static; display: block; height: auto; }
.pl-toggle__video.video-embed--overlay { aspect-ratio: 16 / 9; }
.pl-toggle__video.video-embed--overlay .video-embed__poster { position: absolute; height: 100%; }

.pl-compat { padding: 54px 0 110px; }
.pl-compat .wrap:first-of-type { padding: 27px 0 66px; }
.pl-compat__cards { display: flex; justify-content: center; }
.compat-card { width: 500px; max-width: 100%; background: #fff; border: 1px solid #ccc; border-radius: 20px; box-shadow: 0 12px 18px -6px rgba(28, 27, 58, .11); overflow: hidden; }
.compat-card__media { position: relative; height: 334px; }
.compat-card__media img { width: 100%; height: 100%; object-fit: cover; }
.compat-card__ribbon { position: absolute; top: 0; right: 0; padding: 4px 12px; background: #000; color: #fff; font-family: var(--f-avenir); font-size: 13px; font-weight: 700; text-transform: uppercase; }
.compat-card__head { padding: 28px 20px 26px; text-align: center; border-bottom: 1px solid #ccc; }
.compat-card__head h3 { font-family: var(--f-avenir); font-size: 22px; font-weight: 800; text-transform: uppercase; color: #000; padding-bottom: 24px; }
.compat-card__head a { font-family: var(--f-avenir); font-size: 14px; font-weight: 700; text-transform: uppercase; color: var(--blue); letter-spacing: .5px; }
.compat-card__head a:hover { color: #ccc; }
.compat-card__stats { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); }
.compat-card__stats li { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 22px 12px; text-align: center; }
.compat-card__stats li + li { border-left: 1px solid #ccc; }
.compat-card__stats img { width: 44px; height: 40px; object-fit: contain; }
.compat-card__stats p { font-size: 14px; font-weight: 400; line-height: 1.8; color: #333; }

.pl-range { padding: 14.4px 0; }
.pl-range__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; padding: 27px 0; }
.range-card {
  display: flex; flex-direction: column; align-items: center; gap: 28px;
  padding: 30px 20px 40px; border-radius: 20px;
  background: transparent url("../../medias/2023/06/Fond-transparant-nid-dabeille-copie-3.webp") center / cover;
  transition: transform .3s;
}
.range-card--dark { background-color: #000; }
a.range-card:hover { transform: scale(1.04); }
.range-card img { width: 186px; height: 220px; object-fit: contain; }
.range-card h3 { font-family: var(--f-display); font-size: 14px; font-weight: 900; line-height: 14px; text-transform: uppercase; color: #000; padding: 0 0 10px; }
.range-card--dark h3 { color: #fff; }

.cta-square { padding: 57.6px 0; text-align: center; background-color: rgba(0, 0, 0, .48); background-blend-mode: soft-light; background-size: cover; background-position: center; }
.cta-square__inner { padding: 27px 0 60px; }
.cta-square > .bgimg { mix-blend-mode: soft-light; }
.cta-square .display { padding: 30px 0 0; }
.cta-square .btn--square { margin-top: 68px; }
.cta-square .btn--square:hover { background: rgba(0, 0, 0, .5); border-color: #fff; }

/* 13. Antennes, station sol, logistique ---------------------------------- */
.page-hero--card { margin: var(--gap); border-radius: var(--radius); }
.page-hero--card .page-hero__text .lead { color: #fff; padding-bottom: 20px; }
.page-hero--card .page-hero__text > * { max-width: 720px; }
/* Visuels superposés : position « au repos » des modules Divi d'origine, calée sur la rangée
   (90 % de la section, 1200 px maxi) et non sur la largeur d'écran. Le script y ajoute le zoom et
   le glissement au défilement (effet « Scroll » Divi) puis les fait apparaître. */
.page-hero { --row: min(90%, 1200px); }
.hero-ov { position: absolute; z-index: 1; pointer-events: none; max-width: none; height: auto; }
.hero-ov[data-ov-fx] { opacity: 0; transition: opacity .4s ease; }
.hero-ov.is-placed { opacity: 1; }
@media (scripting: none) { .hero-ov[data-ov-fx] { opacity: 1; } }
.hero-ov--antennas-0, .hero-ov--news-0 { left: calc((100% - var(--row)) / 2 + var(--row) * .36); top: 197px; width: calc(var(--row) * .64); border-radius: 20px; }
.hero-ov--gcs-0 { left: calc((100% - var(--row)) / 2 + var(--row) / 3); top: 227px; width: calc(var(--row) / 3); }
.hero-ov--gcs-1 { left: calc((100% - var(--row)) / 2); top: 217px; width: calc(var(--row) * .46); }
.hero-ov--gcs-2 { left: calc((100% - var(--row)) / 2 + var(--row) * .54); top: 307px; width: calc(var(--row) * .46); }
.hero-ov--logistics-0 { left: 37.5px; top: 397px; width: 675px; z-index: 2; }
.hero-ov--logistics-1 { left: 0; top: 237px; width: 900px; z-index: 1; }
/* sous-titre propre à la tablette / au téléphone, visuel affiché seulement sur téléphone (News EN) */
.only-mobile, .page-hero__pic { display: none; }
.page-hero__text { z-index: 3; }
.page-hero__badge { z-index: 3; }

.c2-eyebrow { font-family: var(--f-body); font-size: 16px; font-weight: 700; line-height: 1.8; text-transform: uppercase; color: var(--blue); padding: 0; }
.c2-sec { padding: 28.8px 0; }
.c2-sec .wrap:first-of-type { padding: 27px 0; }
.c2-sec .display { font-weight: 700; }
.c2-sec--card { margin-top: 0; }
.wrap--panel { width: 80%; max-width: 1152px; }

/* Curseur S / M / L / XL */
.range-slider { display: grid; grid-template-columns: 40px 1fr 40px; align-items: start; gap: 18px; max-width: 1000px; padding: 27px 0 40px; }
.range-slider__arrow { width: 40px; height: 40px; border: 0; border-radius: 50%; background: #000; color: #fff; display: grid; place-items: center; font-size: 20px; }
.range-slider__arrow:first-child { background: #777; }
.range-slider__track { position: relative; display: flex; justify-content: space-between; padding-top: 14px; --p: 0; }
.range-slider__track::before { content: ""; position: absolute; left: 0; right: 0; top: 18px; height: 8px; border-radius: 8px; background: #ccc; }
.range-slider__bar { position: absolute; left: 0; top: 18px; height: 8px; border-radius: 8px; width: calc(var(--p) * 100%); background: #ccc; }
.range-slider__stop { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 10px; min-width: 60px; padding: 0; border: 0; background: none; font-family: var(--f-body); font-size: 12px; font-weight: 700; color: #333; }
.range-slider__stop::before { content: ""; width: 16px; height: 16px; border-radius: 50%; background: transparent; border: 3px solid transparent; }
.range-slider__stop::after { content: ""; position: absolute; top: 24px; width: 1px; height: 10px; background: var(--blue); }
.range-slider__stop span { padding-top: 12px; }
.range-slider__stop.is-active::before { background: #000; border-color: #fff; box-shadow: 0 0 0 2px #000; }
.range-slider__stop:first-child { align-items: flex-start; }
.range-slider__stop:last-child { align-items: flex-end; text-align: right; }

/* Fiche technique (carte blanche + carte sombre) */
.spec-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 30px minmax(0, 1fr); gap: 0; }
.spec-panel__card { display: contents; }
.spec-panel__col { margin: 0; display: block; padding: 50px 30px 50px 54px; background: #fff; border: 2px solid var(--spec-border, #eaecef); border-radius: 15px 0 0 15px; }
.spec-panel__col:first-child { border-right: 0; }
.spec-panel__col + .spec-panel__col { padding: 50px 30px 50px 45px; border-left: 0; border-radius: 0 15px 15px 0; }
.spec-panel__col > div { margin-bottom: 51px; }
.spec-panel__col dt { font-family: var(--f-body); font-size: 20px; font-weight: 700; line-height: 20px; letter-spacing: -.5px; color: var(--ink); padding-bottom: 10px; }
.spec-panel__col dd { margin: 0; font-size: 14px; font-weight: 700; line-height: 1.8; color: rgba(0, 0, 0, .5); }
.spec-panel__dark { grid-column: 4; min-height: 418px; margin-left: 0; padding: 40px 30px 50px; border-radius: 20px; background-color: #000; background-repeat: no-repeat; }
.spec-panel__dark > .bgimg { mix-blend-mode: screen; }
.spec-panel--faint { --spec-border: rgba(24, 30, 45, .03); }
.spec-panel__eyebrow { font-family: var(--f-avenir); font-size: 16px; font-weight: 700; text-transform: uppercase; color: var(--blue); padding: 0; }
.spec-panel__dark h3 { font-family: var(--f-body); font-size: 37px; font-weight: 700; line-height: 1.2; letter-spacing: -.4px; color: #fff; padding: 0; }
.compat-banner {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-height: 144px; margin: 29px 0 0 30px; padding: 40px 30px 50px;
  border-radius: 20px; background-color: transparent;
  background-image: linear-gradient(180deg, rgba(0, 0, 0, .65) 0%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, .65) 100%);
  text-align: center; color: #fff;
  transition: transform .3s ease;
}
/* Survol : léger agrandissement (réglage Divi d'origine : échelle 102 %, transition 0,3 s) */
.compat-banner:hover, .compat-banner:focus-visible { transform: scale(1.02); }
.compat-banner > .bgimg { mix-blend-mode: overlay; }
.compat-banner h3 { font-family: var(--f-body); font-size: 37px; font-weight: 700; line-height: 1.2; letter-spacing: -.4px; color: #fff; padding: 0; text-shadow: 0 1px 12px rgba(0, 0, 0, .35); }
.compat-banner__link { display: inline-flex; align-items: center; gap: 6px; font-size: 18px; font-weight: 500; line-height: 1.7; text-decoration: underline; color: #fff; }
.compat-banner__link .icon { font-size: 14px; }
.spec-gallery { margin-top: 30px; }
.spec-gallery .gallery { border-radius: 0; background: none; }
.spec-gallery .gallery__main { height: 390px; }
.spec-gallery .gallery__thumbs { background: none; }

/* Onglets image (logistique) */
.img-tabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: 1096px; padding: 73px 0 30px; }
.c2-sec .wrap.img-tabs { padding: 73px 0 30px; }
.img-tabs__tab { position: relative; display: grid; place-items: center; height: 140px; padding: 10px; border: 1px solid transparent; border-radius: 10px; background: var(--panel); transition: background .2s; }
.img-tabs__tab img { max-height: 100px; width: auto; }
.img-tabs__tab.is-active { background: #fff; border-color: var(--blue); }
.img-tabs__tab.is-active::after { content: ""; position: absolute; left: 50%; top: 100%; transform: translateX(-50%); border: 12px solid transparent; border-top-color: var(--blue); }
.c2-sec--logistics .wrap--panel { margin-top: 16px; padding-left: 20px; }
.c2-sec--logistics { padding-bottom: 137px; }

/* Station sol (FR) */
.gcs-tabs { background: var(--pale); padding: 82px 0 80px; }
.gcs-tabs__list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; max-width: 1080px; }
.gcs-tab { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 104px; padding: 22px; border: 0; border-radius: 20px; background: #fff; font-family: var(--f-avenir); font-size: 15px; font-weight: 400; line-height: 15px; text-transform: uppercase; color: #000; transition: background .2s; }
.gcs-tab.is-active { background: #eaeff7; }
.gcs-tab .icon { font-size: 23px; margin-bottom: 3px; }
.gcs-pack { padding: 57.6px 0; }
.gcs-pack > .wrap:not(:last-child) { width: 90%; max-width: 1200px; }
.gcs-pack .compat-banner { margin-left: 0; }
.gcs-pack > .wrap:last-child { max-width: 1152px; }
.gcs-pack .pack-item { padding: 20px; }
.gcs-pack[hidden] { display: none; }
.gcs-pack__card { padding: 40px; border-radius: 20px; background: #fff; box-shadow: 0 2px 18px 0 #eaecef, 0 12px 18px -6px #eaecef; }
.gcs-pack__head { display: grid; grid-template-columns: 1fr 1fr; gap: 116px; align-items: start; }
.gcs-pack__head .display { font-weight: 700; padding-bottom: 20px; }
.pack-item--white { background: var(--light); }
.gcs-pack__more { display: flex; justify-content: center; padding: 18px 0 0; font-size: 50px; color: #111; }
.gcs-pack__img { width: 100%; border-radius: 16px; }
.gcs-pack__list { display: grid; grid-template-columns: 1fr 1fr; gap: 116px; padding-top: 82px; }
.gcs-extra { display: grid; grid-template-columns: 1fr 48.5%; align-items: stretch; min-height: 136px; margin-top: 32px; border: 1px solid transparent; border-radius: 20px; background: var(--pale); overflow: hidden; }
.gcs-extra__text { padding: 40px; align-self: center; }
.gcs-extra h4, .gcs2-row h4, .gcs2-station h4 { font-family: var(--f-avenir); font-size: 16px; font-weight: 800; line-height: 1; text-transform: uppercase; color: var(--ink); padding-bottom: 10px; }
.gcs-extra p, .gcs2-row p, .gcs2-station p { font-family: var(--f-open); font-size: 14px; font-weight: 500; color: var(--ink); }
.gcs-extra__img { position: relative; display: flex; align-items: center; justify-content: flex-end; padding: 40px; border-radius: 0; background-size: cover; background-position: center; }
.gcs-pack .compat-banner { margin: 32px 0 0; }

/* Ground Control Station (EN) */
.gcs2 { padding: 0; margin-top: 0; border-radius: 0; }
.gcs2-head { background: var(--light); border-radius: 20px 20px 0 0; }
.gcs2-tabs { display: flex; justify-content: space-around; align-items: flex-end; height: 348px; padding: 0 0 89px; }
.gcs2-tab { display: flex; flex-direction: column; align-items: center; gap: 8px; color: #000; font-size: 25px; font-weight: 700; line-height: 25px; transition: transform .2s; }
.gcs2-tab:hover { transform: translateY(-4px); }
.gcs2-tab img { width: 150px; height: auto; }
/* une section Divi par pack : coins bas arrondis, fond clair (blanc pour le dernier) */
.gcs2-pack { padding: 85px 0 57.6px; background: var(--light); border-radius: 0 0 20px 20px; }
.gcs2-pack--white { background: #fff; }
.gcs2-pack .display { font-weight: 700; padding-bottom: 10px; margin-bottom: 38px; }
.gcs2-row { display: grid; grid-template-columns: 1fr 48.5%; min-height: 138px; margin-bottom: 31px; border-radius: 16px; background: #fff; overflow: hidden; }
.gcs2-row__text { padding: 40px; align-self: center; }
.gcs2-row__img { display: flex; align-items: center; justify-content: flex-end; padding: 20px 30px; background-size: cover; background-position: center; }
.gcs2-station { padding: 42px 30px 28px; border-radius: 16px; background: #fff; }
.gcs2-station > .gcs2-row__text { padding: 0 10px 46px; }
.gcs2-pack--white .gcs2-station { border: 1px solid #f0f0f0; }
.gcs2-items { list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); gap: 34px; }
.gcs2-items li { display: flex; flex-direction: column; align-items: center; padding: 40px 20px 30px; border-radius: 16px; background: var(--light); text-align: center; min-height: 204px; }
.gcs2-items img { width: 50px; height: auto; margin-bottom: 14px; }
.gcs2-items h4 { padding-bottom: 8px; }
.gcs2-antenna { display: flex; align-items: center; justify-content: space-between; margin-top: 27px; padding: 45px 30px; border-radius: 12px; background-color: rgba(255, 255, 255, .75); background-size: cover; background-position: center; background-blend-mode: overlay; }
.gcs2-pack--white .gcs2-antenna { background-color: rgba(255, 255, 255, .5); }
.gcs2-antenna > .bgimg { mix-blend-mode: overlay; }
.gcs2-antenna > div { display: flex; flex-direction: column; gap: 10px; }
.gcs2-antenna img { width: 40px; height: 40px; }
.gcs2 .compat-banner { max-width: none; margin: 31px 35px 0 66px; }
.gcs2 .compat-banner h3, .gcs-pack .compat-banner h3 { padding-bottom: 10px; }
.gcs2 .compat-banner__link, .gcs-pack .compat-banner__link { margin: -21px 0 -20px; padding: 5.4px 0; }

.c2-sec--logistics .spec-panel__dark { min-height: 418px; }
.c2-sec--logistics .spec-panel__card { min-height: 418px; }

/* 14. À propos ------------------------------------------------------------ */
.about-story { padding: 54px 0; }
.about-story .wrap:first-of-type { padding: 29px 0 37px; }
.about-story .display { font-weight: 700; }
.about-story__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 5.5%; padding-bottom: 27px; }
.about-story__text > * { max-width: 500px; }
.about-story__text p { font-size: 16px; font-weight: 300; line-height: 1.8; color: #fff; }
.about-stats {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 2vw; margin-bottom: 2vw; padding: 40px;
  border-radius: 20px; background-color: var(--blue); background-blend-mode: soft-light; background-size: cover; background-position: 50% 66%;
}
.about-stats > .bgimg { mix-blend-mode: soft-light; }
.about-stat { display: flex; flex-direction: column; align-items: center; text-align: center; }
.about-stat--value { flex-direction: column-reverse; }
.about-stat h4 { font-family: var(--f-body); font-size: 14px; font-weight: 700; line-height: 1.5; letter-spacing: 1px; text-transform: uppercase; color: #fff; padding: 0 0 10px; }
.about-stat h3 { font-family: var(--f-body); font-size: 25px; font-weight: 700; line-height: 1.4; color: #fff; padding: 0 0 10px; }

/* 15. Contact & formulaires ---------------------------------------------- */
.contact { display: grid; grid-template-columns: 40% 60%; background: var(--light); }
.contact__info { background: #fff; padding: 200px 0 140px; }
.contact__inner { width: 70%; margin: 0 auto; padding-top: 115px; }
.contact__inner .display { padding-bottom: 10px; }
.contact__sub { font-family: var(--f-avenir); font-size: 16px; font-weight: 700; line-height: 1.8; text-transform: uppercase; color: var(--ink); padding-bottom: 14px; }
.contact__text { font-family: var(--f-open); font-size: 16px; font-weight: 500; line-height: 1.8; text-align: justify; color: var(--grey); padding-bottom: 57px; }
.contact__label { font-family: var(--f-avenir); font-size: 16px; font-weight: 500; line-height: 28.8px; text-transform: uppercase; color: var(--blue); padding: 0; }
.contact__addr { font-family: var(--f-open); font-size: 16px; font-weight: 500; line-height: 1.8; color: var(--grey); padding: 0 0 14px; }
.social--square a { border-radius: 6px; width: 32px; height: 32px; }
.contact__form { padding: 354px 0 80px; }
.contact__form .form, .contact__form .form-notice { width: 69.33%; margin: 0 auto; }
.form--contact .form__row { gap: 19px; }
.form--contact input[type=text], .form--contact input[type=email], .form--contact input[type=tel], .form--contact select, .form--contact textarea { box-shadow: 0 2px 18px 0 #eaecef; }
.form--contact select { height: 48px; padding: 0 36px 0 16px; appearance: none; -webkit-appearance: none; cursor: pointer;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 6'%3E%3Cpath d='M0 0h12L6 6z' fill='%23666'/%3E%3C/svg%3E") right 20px center / 12px 6px no-repeat; }
.form--contact .check-field { display: block; margin-top: 1px; }
.form--contact .check-field__title { display: block; margin-bottom: 7px; font-size: 14px; font-weight: 600; line-height: 23.8px; color: #666; }
.form--contact .check { grid-template-columns: 18px 1fr; gap: 8px; min-height: 48px; font-size: 14px; font-weight: 500; line-height: 23.8px; color: var(--grey); }
.form--contact .check input { appearance: none; -webkit-appearance: none; width: 18px; height: 18px; margin: 3px 0 0; border-radius: 9px; background: #fff center / 12px no-repeat; box-shadow: 0 2px 18px 0 #eaecef; cursor: pointer; }
.form--contact .check input:checked { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.5l2.5 2.5L10 3.5' fill='none' stroke='%23033bff' stroke-width='2'/%3E%3C/svg%3E"); }
.form--contact .check input:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.form--contact .form__submit { margin-top: -9px; }

.form { display: grid; gap: 18px; font-family: var(--f-open); }
.form__row { display: grid; gap: 18px; }
.form__row--2 { grid-template-columns: 1fr 1fr; }
.field { display: grid; gap: 6px; font-size: 14px; font-weight: 500; color: #666; }
.form input[type=text], .form input[type=email], .form input[type=tel], .form select, .form textarea {
  width: 100%; padding: 16px; border: 0; border-radius: 9px; background: #fff;
  font-family: var(--f-open); font-size: 14px; color: var(--grey); outline-color: var(--blue);
}
.form textarea { resize: vertical; min-height: 150px; }
.form select { appearance: auto; }
.form ::placeholder { color: var(--grey); opacity: 1; }
.check { display: grid; grid-template-columns: 18px 1fr; gap: 10px; align-items: start; font-size: 14px; line-height: 1.7; color: var(--grey); cursor: pointer; }
.check input { width: 16px; height: 16px; margin-top: 4px; accent-color: var(--blue); }
.form__submit { display: flex; justify-content: flex-end; }
.btn--submit { padding: 16px 50px; border: 0; }
.field-error { display: block; font-size: 13px; color: #c4002b; }
.form-notice { padding: 14px 18px; border-radius: 9px; font-family: var(--f-open); font-size: 15px; margin-bottom: 18px; }
.form-notice--ok { background: #e7f6ec; color: #145c2c; border: 1px solid #9ad3ad; }
.form-notice--error { background: #fdecef; color: #8a0020; border: 1px solid #f2a7b6; }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Administration de la messagerie (/admin/messagerie/) */
.admin-mail { min-height: 100vh; padding: 60px 0; background: var(--light); font-family: var(--f-body); color: var(--ink); }
.admin-mail__inner { width: 90%; max-width: 760px; margin: 0 auto; }
.admin-mail h1 { font-family: var(--f-body); font-size: 32px; font-weight: 700; padding-bottom: 6px; }
.admin-mail h2 { font-size: 20px; font-weight: 700; padding-bottom: 12px; }
.admin-mail h3 { font-size: 16px; font-weight: 600; padding: 22px 0 8px; }
.admin-mail__lead { padding-bottom: 22px; }
.admin-mail__card { margin-bottom: 20px; padding: 26px 28px; border-radius: 14px; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .06); }
.admin-mail__card p { padding-bottom: 14px; line-height: 1.6; }
.admin-mail__list > div { display: grid; grid-template-columns: 190px 1fr; gap: 12px; padding: 8px 0; border-top: 1px solid #eef0f3; }
.admin-mail__list > div:first-child { border-top: 0; }
.admin-mail__list dt { font-weight: 600; }
.admin-mail__list dd { margin: 0; overflow-wrap: anywhere; }
.admin-mail .is-ok { color: #145c2c; }
.admin-mail .is-warn { color: #8a0020; }
.admin-mail__muted { color: #6b7280; font-size: 14px; }
.admin-mail__uri, .admin-mail__form label { display: grid; gap: 6px; font-size: 14px; color: #4b5563; }
.admin-mail input[type=text], .admin-mail input[type=email] { width: 100%; padding: 10px 12px; border: 1px solid #d9dbdd; border-radius: 8px; font: 14px/1.4 var(--f-body); color: var(--ink); background: #fff; }
.admin-mail__form { display: grid; gap: 12px; justify-items: start; padding-bottom: 18px; }
.admin-mail__form label { justify-self: stretch; }
.admin-mail__danger { background: #8a0020; }
.admin-mail__danger:hover { background: #6c0019; }
.admin-mail__log { max-height: 320px; overflow: auto; padding: 12px; border-radius: 8px; background: #0f172a; color: #e2e8f0; font: 12px/1.6 ui-monospace, Consolas, monospace; white-space: pre-wrap; }
@media (max-width: 600px) { .admin-mail__list > div { grid-template-columns: 1fr; gap: 2px; } }

/* Formulaire de candidature (style Contact Form 7) */
.form--apply { gap: 34px 0; }
.form--apply .form__row { gap: 20px; }
.form--apply .field--label { display: block; padding-top: 2px; line-height: 22px; color: #666; }
.form--apply .field--label > input, .form--apply .field--label > textarea { display: block; }
.form--apply input[type=text], .form--apply input[type=email], .form--apply input[type=tel], .form--apply select, .form--apply textarea {
  padding: 8px; border: 1px solid #d9dbdd; border-radius: 8px; font-size: 16px; color: #33415c;
}
.form--apply textarea { height: 238px; min-height: 120px; margin-bottom: 7px; }
.field--file input { margin-top: 1px; font-size: 13.33px; }
.field--file small { font-size: 12px; color: #888; }
.check--small { display: block; margin-left: 14px; padding-top: 2px; font-size: 10px; line-height: 23.8px; color: #666; }
.check--small input { display: inline-block; width: 13px; height: 13px; margin: 3px 3px 3px 4px; vertical-align: -2px; }
.check--small a { color: #0693e3; }
.btn--apply { justify-self: start; min-width: 260px; margin: 20px 0 31px; line-height: normal; padding: 15px 25px; border: 0; border-radius: 100px; font-family: var(--f-open); font-size: 20px; font-weight: 700; letter-spacing: 0; color: #e8eaed; }

/* 16. Actualités ---------------------------------------------------------- */
.news-sec { padding: 57.6px 0; }
.news-sec > .wrap { padding: 27px 0 39px; }
.news-sec--card { margin-top: 0; }
.news-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 20px; margin: 0 0 30px; padding: 10px 0; border-radius: 198px; background: #fff; box-shadow: 0 2px 18px 0 #eaecef; }
.news-filters a { padding: 10px; border-radius: 134px; font-family: var(--f-avenir); font-size: 14px; font-weight: 500; line-height: 23.8px; text-transform: uppercase; color: #505050; transition: background .2s, color .2s; }
.news-filters a.is-active { padding: 10px 15px; }
.news-filters a.is-active, .news-filters a:hover { background: #000; color: #fff; }
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: start; }
.news-grid__col { display: grid; gap: 20px; align-content: start; }
.news-grid__col[hidden] { display: none; }
.grid-card { background: #fff; border-radius: 20px; overflow: hidden; box-shadow: 0 12px 18px -6px #eaeff7; }
.grid-card__img { display: block; }
.grid-card__img img { width: 100%; height: auto; display: block; }
.grid-card__body { padding: 0; }
.grid-card__meta { margin: 10px 10px 10px 16px; font-size: 14px; font-weight: 500; line-height: 23.8px; color: #666; padding: 0; }
.grid-card__meta span { color: #666; }
.grid-card__meta a { color: var(--blue); }
.grid-card__title { margin: 10px 15px; font-family: var(--f-body); font-size: 18px; font-weight: 500; line-height: 25.2px; color: #111; padding-bottom: 10px; }
.grid-card__title a { color: inherit; }
.grid-card__foot { padding: 0; line-height: 0; }
.grid-card__more { display: inline-block; margin: 10px 10px 10px 2px; padding: 4.2px 14px; border-radius: 3px; font-size: 14px; font-weight: 500; line-height: 23.8px; color: var(--blue); }
.news-sec--2023 .grid-card__title { font-family: var(--f-open); font-weight: 700; }
.news-sec--2023 .grid-card__more { font-family: var(--f-avenir); text-transform: uppercase; }
.news-sec--2023 .grid-card__meta { font-family: var(--f-open); }
.news-empty { text-align: center; padding: 60px 0; font-size: 16px; color: #555; }
.pager { display: flex; justify-content: center; align-items: center; gap: 5px; padding-top: 42px; }
.pager a, .pager span { min-width: 32px; height: 34px; padding: 5px 12px; display: grid; place-items: center; border-radius: 6px; font-family: var(--f-avenir); font-size: 14px; font-weight: 700; line-height: 23.8px; color: #505050; }
.pager .is-current { background: var(--blue); color: #fff; }
.news-sec--card .pager .is-current { border-radius: 50%; }
.pager .is-disabled { color: #505050; }
.pager a:hover { background: #e6e6e6; }

/* 17. Article -------------------------------------------------------------- */
.post-hero { padding: 54px 0; min-height: 454px; display: flex; align-items: flex-end; background-color: rgba(0, 0, 0, .5); background-blend-mode: darken; background-size: cover; background-position: center; }
.post-hero > .bgimg { mix-blend-mode: darken; }
.post-hero__inner { padding: 85px 0 0; }
.post-hero .display { padding-bottom: 37px; }
.post-hero .post-meta { padding-bottom: 37px; }
.post-meta { list-style: none; display: flex; flex-wrap: wrap; gap: 0; }
.post-meta li { display: flex; align-items: flex-start; gap: 18px; width: 200px; color: #fff; }
.post-meta .icon { width: 18px; height: 18px; margin-top: 2px; }
.post-meta span { font-family: var(--f-avenir55); font-size: 18px; font-weight: 500; line-height: 1; color: #fff; }
.post-meta a { color: #fff; }
.post-body { padding: 54px 0; }
.post-card { padding: 29px 72px; background: #fff; border-radius: 20px; box-shadow: 0 12px 18px -6px rgb(234, 239, 247); }
.post-content { padding: 0; }
.post-content p { font-family: var(--f-open); font-size: 16px; font-weight: 500; line-height: 1.8; text-align: justify; color: rgba(28, 27, 58, .41); padding-bottom: 1em; min-height: 1px; }
.post-content p:empty { padding-bottom: 0; min-height: 1em; }
.post-content strong { color: rgba(28, 27, 58, .55); }
.post-content a { color: var(--blue); word-break: break-word; }
.post-content img { max-width: 100%; height: auto; border-radius: 10px; }
.post-more { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 125px; margin: 12px 0 48px; padding: 25px 5%; border: 2px solid #eaeff7; border-radius: 10px; background-color: var(--pale); text-align: center; color: #fff; }
.post-more h3 { font-family: var(--f-avenir); font-size: 37px; font-weight: 600; line-height: 1.2; letter-spacing: -.4px; color: #fff; padding: 0; }
.post-more span { font-family: var(--f-avenir); font-size: 18px; font-weight: 700; text-decoration: underline; }
.post-nav { display: flex; justify-content: space-between; padding: 14px 10px 10px; }
.post-nav a { font-size: 14px; font-weight: 600; text-transform: uppercase; color: var(--blue); }
.post-related { padding-top: 27px; }
.post-related.wrap { margin-top: 0; }
.post-related .news-card__title { font-family: var(--f-open); font-size: 18px; font-weight: 700; }
.post-related .news-card__more { font-family: var(--f-avenir); font-weight: 500; }

/* 18. Recrutement, fiches de poste, candidature --------------------------- */
.job-hero { position: relative; overflow: hidden; min-height: 815px; padding: 180px 0 120px; background-color: #000; background-size: cover; background-position: center; text-align: center; color: #fff; }
.job-hero--careers { min-height: 743px; background-color: var(--light); }
.job-hero--careers > .bgimg { mix-blend-mode: darken; }
.job-hero__inner { position: relative; z-index: 2; padding-top: 171px; max-width: 1080px; }
.job-hero--careers .job-hero__inner { padding-top: 144px; }
.job-hero--careers .job-hero__logo { width: 65px; margin-top: 30px; }
.job-hero .page-hero__badge { width: 90%; max-width: none; bottom: 39px; }
.job-hero--careers .page-hero__badge { bottom: 38px; }
.job-hero .badge-fr { width: 200px; margin-right: 0; }
.job-hero h1 { font-family: var(--f-body); font-size: 60px; font-weight: 600; line-height: 1; letter-spacing: -2px; color: #fff; padding: 0 0 10px; max-width: 972px; margin: 0 auto; }
.job-hero p { font-size: 16px; font-weight: 500; line-height: 1.8; color: #fff; padding-bottom: 0; }
.job-hero .btn { margin-top: 20px; }
.job-hero__logo { display: block; width: 70px; margin: 28px auto 0; }
.careers-values { padding: 54px 0; text-align: center; }
.careers-values__head { max-width: 520px; padding: 43px 0; }
.careers-values h2 { font-family: var(--f-body); font-size: 42px; font-weight: 700; line-height: 1.2; letter-spacing: -2px; color: #fff; padding-bottom: 20px; }
.careers-values p { font-size: 16px; font-weight: 300; line-height: 1.8; color: #fff; }
.hl { color: var(--blue); }
.careers-values__pills { display: flex; justify-content: space-around; max-width: 660px; padding: 30px 30px 20px; border-radius: 1904px; background-color: var(--blue); background-blend-mode: overlay; background-size: cover; background-position: center; }
.careers-values__pills > .bgimg { mix-blend-mode: overlay; }
.careers-values__pills h3 { flex: 1 1 0; font-family: var(--f-body); font-size: 20px; font-weight: 800; line-height: 20px; letter-spacing: -1px; color: #fff; padding: 0 0 10px; }
.careers-values .careers-values__pills { gap: 17.5px; margin-top: 30px; margin-bottom: 28.8px; }
.careers-about { padding: 54px 0; }
.careers-about > .wrap, .careers-jobs > .wrap { padding-top: 43.2px; }
.careers-about > .wrap { padding-bottom: 43.2px; }
.careers-about .job-text { padding-bottom: 0; }
.careers-about .job-text p { padding-bottom: 16px; }
.careers-about .job-text p:last-child { padding-bottom: 0; }
.job-eyebrow { font-size: 16px; font-weight: 500; line-height: 1.8; text-transform: uppercase; color: var(--blue); padding: 0; }
.job-title { font-family: var(--f-body); font-size: 42px; font-weight: 700; line-height: 1.2; letter-spacing: -2px; color: #000; padding-bottom: 10px; margin-bottom: 11px; }
.job-title .hl { color: #0000ff; }
.job-text, .job-text p { font-size: 16px; font-weight: 300; line-height: 1.8; color: #000; }
.job-text { padding-bottom: 20px; }
.map-embed { position: relative; height: 452px; margin-top: 29px; border: 1px solid #eaecef; border-radius: 16px; overflow: hidden; background: #eee; }
.map-embed:not(.is-active) { height: auto; }
.map-embed:not(.is-active) .video-embed__poster { position: static; display: block; height: auto; }
.map-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; z-index: 2; }
.consent-embed__msg--visible { opacity: 1; }
.careers-jobs { padding: 54px 0 115.2px; border-top: 1px solid #eaecef; }
.careers-jobs .job-text { padding-bottom: 0; }
.job-cards { display: grid; gap: 28.8px; padding: 28.8px 0; }
.job-card {
  display: flex; flex-direction: column; justify-content: center; min-height: 249px; padding: 30px;
  border: 1px solid #eaecef; border-radius: 16px;
  background-color: transparent;
  background-image: linear-gradient(90deg, #000 20%, rgba(0, 0, 0, 0) 100%);
}
.job-card--plain { background-color: #fff; background-image: none; }
.job-card > .bgimg { mix-blend-mode: overlay; }
.job-card--plain > .bgimg { mix-blend-mode: normal; }
.job-card h2 { font-family: var(--f-body); font-size: 42px; font-weight: 700; line-height: 1.2; letter-spacing: -2px; color: #fff; padding-bottom: 30px; }
.job-card .btn { align-self: flex-start; }
.job-missions { padding: 54px 0 43.2px; }
.job-missions > .wrap { padding-top: 43.2px; }
.job-missions .job-text { padding-bottom: 0; }
.job-mission { max-width: 1000px; margin: 0 auto; padding: 27px 0; }
.job-mission h3 { font-family: var(--f-body); font-size: 22px; font-weight: 800; line-height: 22px; letter-spacing: -1px; color: #000; padding-bottom: 10px; margin-bottom: 10px; }
.job-mission h3 .hl, .job-box h3 .hl { color: #0000ff; }
.job-mission h3 strong { font-weight: 800; }
.job-mission ul, .job-box ul { padding: 0 0 16px 16px; }
.job-mission li, .job-box li { font-size: 16px; font-weight: 300; line-height: 26px; color: #000; }
.job-profile { padding: 54px 0 43.2px; border-top: 1px solid #eaecef; }
.job-profile > .wrap { padding-top: 64px; }
.job-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3%; padding-top: 14px; }
.job-box { padding: 30px; border: 1px solid #eaecef; border-radius: 16px; background: #fff; }
.job-box h3 { font-family: var(--f-body); font-size: 22px; font-weight: 800; line-height: 22px; letter-spacing: -1px; color: #000; padding-bottom: 10px; margin-bottom: 10px; }
.job-box p { font-size: 16px; font-weight: 300; line-height: 1.8; color: #000; }
.job-box--wide { margin-top: 17px; }
.job-photo { width: 100%; height: 100%; min-height: 260px; object-fit: cover; }
.apply-card { max-width: 600px; margin: 57.6px auto 115.2px; padding: 30px; border: 1px solid #eaecef; border-radius: 16px; background: #fff; }
.apply-card .job-title { margin-bottom: 10px; }
.apply-card .job-text { padding-bottom: 22px; }
.apply-page { padding: 180px 0 0; }
.apply-page__head { text-align: center; padding: 144px 0 43.2px; }
.apply-page__head h1 { font-family: var(--f-body); font-size: 60px; font-weight: 700; line-height: 1; letter-spacing: -2px; color: #000; padding-bottom: 10px; }
.apply-page__head p { font-size: 16px; font-weight: 500; line-height: 28.8px; color: #000; padding-bottom: 0; }
.apply-page__head img { width: 65px; margin: 30px auto 0; }
.apply-page .apply-card { margin-top: 57.6px; }

/* 19. Pages légales -------------------------------------------------------- */
.legal { padding: 172.8px 0 115.2px; }
.legal__card { padding: 57.6px; background: #fff; border-radius: 20px; box-shadow: 0 12px 18px -6px rgb(234, 239, 247); }
.legal .display { font-weight: 700; padding-bottom: 10px; }
.legal__body { padding-top: 61px; }
.legal__body h3 { font-family: var(--f-avenir); font-size: 22px; font-weight: 800; line-height: 22px; text-transform: uppercase; color: var(--ink); padding: 0 0 10px; }
.legal__body h4 { font-family: var(--f-avenir); font-size: 17px; font-weight: 700; color: var(--ink); padding: 14px 0 6px; }
.legal__body p, .legal__body li, .legal__body div { font-family: var(--f-open); font-size: 14px; font-weight: 500; line-height: 1.7; color: var(--grey); }
.legal__body p { padding-bottom: 1em; }
.legal__body ul { padding: 0 0 1em 1.4em; }
.legal__body a { color: var(--blue); word-break: break-word; }

/* 20. Page 404 -------------------------------------------------------------- */
.notfound { margin-top: 144px; padding: 0 0 37px; background: #fff; text-align: center; }
.notfound__inner.wrap { width: 100%; max-width: none; }
.notfound h1 { font-family: "Varela", var(--f-body); font-size: 44px; font-weight: 900; line-height: 44px; color: #333; padding-bottom: 10px; }
.notfound h2 { margin-top: 28px; font-family: var(--f-display); font-size: 26px; font-weight: 500; line-height: 26px; text-transform: uppercase; color: #00001a; padding-bottom: 10px; }
.notfound__logo { display: inline-block; margin-top: 38px; }
.notfound__logo img { width: 300px; height: auto; }

/* Visionneuse */
.lightbox { position: fixed; inset: 0; z-index: 300; display: grid; place-items: center; background: rgba(0, 0, 0, .88); }
.lightbox img { max-width: 92vw; max-height: 90vh; border-radius: 8px; }
.lightbox__close { position: absolute; top: 16px; right: 22px; border: 0; background: none; color: #fff; font-size: 40px; }

/* =====================================================================
   21. Adaptation tablette (≤ 980 px) et téléphone (≤ 767 px)
   Reprend les comportements Divi de l'ancien site : colonnes empilées,
   menu « pilule » remplacé par une barre avec bouton menu, titres réduits.
   ===================================================================== */
@media (max-width: 980px) {
  /* Visuel en pleine largeur : l'info-bulle s'ouvre sous le point pour rester dans l'écran */
  .hotspot__tip { right: auto; left: 12px; top: 100%; margin: 15px 0 0; transform: translateX(-50%); width: min(300px, 80vw); }
  /* En-tête mobile (barre « pilule » 90 %, logo 50 px, bouton rond 53 px) */
  .site-header__logo, .mainnav { display: none; }
  .mobilebar {
    display: flex; align-items: center; justify-content: space-between;
    position: absolute; top: 10px; left: 5%; width: 90%; height: 53px; padding: 0 0 0 20px;
    border-radius: 200px; background: rgba(0, 0, 0, .2);
    -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  }
  .mobilebar__logo { line-height: 0; }
  .mobilebar__logo img { width: 50px; height: auto; display: block; }
  .mobilebar__toggle { display: grid; place-items: center; width: 53px; height: 53px; padding: 0; border: 0; border-radius: 200px; background: #000; color: #fff; }
  .mobilebar__toggle .icon { width: 23px; height: 23px; }
  .mobilemenu {
    position: absolute; top: calc(100% + 10px); left: 0; right: 0;
    max-height: calc(100vh - 90px); overflow-y: auto;
    opacity: 0; visibility: hidden; transition: opacity .2s, visibility .2s;
  }
  .mobilemenu.is-open { opacity: 1; visibility: visible; }
  .mobilemenu ul { list-style: none; }
  .mobilemenu a, .mobilemenu__group > button {
    display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%;
    padding: 10px 15px; border: 0; border-radius: 0; background: #2b2b2b; text-align: left;
    color: #eee; font-family: var(--f-body); font-size: 15px; font-weight: 400; line-height: 19.5px;
  }
  .mobilemenu a:hover, .mobilemenu__group > button:hover { background: #000; color: #fff; }
  .mobilemenu__group > button .icon { width: 15px; height: 15px; transition: transform .2s; }
  .mobilemenu__group > button[aria-expanded="true"] .icon { transform: rotate(180deg); }
  .mobilemenu__group ul a { padding-left: 30px; }
  .mobilemenu img { width: 16px; height: 11px; }

  /* Grilles génériques */
  .display { font-size: 32px; }
  .cols--2, .cols--3 { grid-template-columns: 1fr; gap: 30px; }
  .wrap--1200 { width: 80%; }

  /* Pied de page */
  .site-footer__top { grid-template-columns: repeat(3, 1fr); row-gap: 30px; }
  .site-footer__mid { grid-template-columns: 1fr; gap: 30px; }

  /* Accueil */
  .home-intro__head { grid-template-columns: 1fr; }
  .home-intro__badge { justify-self: start; order: -1; margin: 0 0 14px; }
  .home-range { grid-template-columns: repeat(3, 1fr); }
  .home-about__img { justify-self: center; max-width: 420px; }
  .home-benefits .blurbs { padding-left: 0; }
  .product-cards { grid-template-columns: minmax(0, 480px); }
  .recruit-banner { grid-template-columns: 1fr; gap: 30px; padding: 50px 30px; }
  .recruit-banner__logo { justify-self: center; margin: 0; }
  .news-slider__viewport { grid-auto-columns: calc((100% - 30px) / 2); gap: 30px; }
  .news-slider__nav--prev { left: -50px; }
  .news-slider__nav--next { right: -50px; }

  /* Pages UAV */
  .uav-hero { padding: 140px 0 100px; min-height: 0; }
  .uav-hero__grid { grid-template-columns: 1fr; gap: 30px; text-align: center; }
  .uav-hero__visual { margin-top: 0; }
  .uav-hero__text .btn { margin: 0 auto; }
  .uav-dist__grid { grid-template-columns: 1fr; padding-left: 0; }
  /* Distinctions : photo centrée (450 px), avion à 58 px du haut qui déborde jusqu'au bord droit, comme l'original */
  .wrap.uav-dist__grid { width: 90%; gap: 60px; }
  .uav-dist__media { justify-self: stretch; padding-bottom: 0; }
  .uav-dist__bg { width: 450px; max-width: 100%; height: auto; aspect-ratio: 350 / 496; margin: 0 auto; }
  .uav-dist__plane { top: 58px; width: calc(100% - 72px); }
  .uav-dist__list { padding-left: 0; }
  .uav-split { grid-template-columns: 1fr; gap: 20px; }
  .uav-split__aside { text-align: center; }
  .figures { grid-template-columns: repeat(2, 1fr); row-gap: 30px; }
  .gauges { grid-template-columns: repeat(2, 1fr); gap: 0; }
  .uav-features__cols, .uav-features__cols--2 { grid-template-columns: 1fr; gap: 30px; }
  .uav-payload__inner { grid-template-columns: 1fr; gap: 30px; }
  .gallery__main { height: 520px; }
  .uav-pack__box { grid-template-columns: 1fr; }
  .uav-pack__media { display: none; }
  .uav-signature { grid-template-columns: auto auto; justify-content: center; }
  .uav-signature p { display: none; }

  /* Pages 2023 */
  .page-hero, .pl-hero { padding-top: 140px; min-height: 0; padding-bottom: 110px; }
  .page-hero__text { padding-top: 60px; }
  /* En-têtes à visuels : rangée de texte 90 %, à 20vw du haut, visuels plus haut et resserrés */
  .page-hero.page-hero--ov { padding: 40px 0 0; }
  .page-hero.page-hero--ov .page-hero__text { width: 90%; padding: 30px 0; margin-top: 20vw; margin-bottom: 20vw; }
  .page-hero.page-hero--ov .page-hero__text > * { max-width: none; }
  .page-hero.page-hero--card .page-hero__text { text-align: center; }
  .only-desktop { display: none; }
  .only-mobile { display: inline; }
  .hero-ov--antennas-0, .hero-ov--news-0 { left: 14%; top: 80px; width: 81%; }
  .hero-ov--gcs-0 { left: calc(50% - 300px); top: 85px; width: 400px; }
  .hero-ov--gcs-1 { left: 5%; top: 220px; width: 45%; }
  .hero-ov--logistics-0 { left: 4.5%; top: 230px; width: 81%; }
  .hero-ov--gcs-2, .hero-ov--logistics-1 { display: none; }
  .pl-hero__grid { grid-template-columns: 1fr; gap: 20px; }
  .pl-hero__text, .pl-hero__stats { padding-top: 0; }
  .pl-hero__stats { display: none; }
  .pl-hero__img img { width: 380px; }
  .pl-specs__cols { grid-template-columns: 1fr; gap: 0; }
  .pl-toggle { padding-top: 90px; }
  .pl-toggle__panel { grid-template-columns: 1fr; gap: 40px; }
  .pl-range__grid { grid-template-columns: repeat(2, 1fr); gap: 0; }
  .range-card { border-radius: 0; }
  .range-card:first-child { border-top-left-radius: 20px; }
  .range-card:nth-child(2) { border-top-right-radius: 20px; }
  .range-card:nth-last-child(2) { border-bottom-left-radius: 20px; }
  .range-card:last-child { border-bottom-right-radius: 20px; }
  /* Caractéristiques : colonnes empilées ; les deux blanches forment une seule carte, le panneau sombre passe dessous */
  .spec-panel { grid-template-columns: minmax(0, 1fr); }
  .spec-panel__col, .spec-panel__col:first-child { padding: 50px 30px; border: 2px solid var(--spec-border, #eaecef); border-bottom: 0; border-radius: 15px 15px 0 0; }
  .spec-panel__col + .spec-panel__col { padding: 0 30px 50px; border: 2px solid var(--spec-border, #eaecef); border-top: 0; border-radius: 0 0 15px 15px; }
  .spec-panel .spec-panel__dark { grid-column: auto; min-height: 0; padding: 40px 60px 200px; }
  .compat-banner { margin-left: 0; }
  .img-tabs__tab { height: 100px; }
  .gcs-pack__head, .gcs-pack__list { grid-template-columns: 1fr; gap: 30px; }
  .gcs-extra, .gcs2-row { grid-template-columns: 1fr; }
  .gcs-extra__img, .gcs2-row__img { min-height: 160px; }
  .gcs2-items { grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .gcs2-tabs { gap: 20px; }

  /* Autres pages */
  .about-story__cols { grid-template-columns: 1fr; gap: 0; }
  .about-stats { grid-template-columns: 1fr; gap: 24px; }
  .contact { grid-template-columns: 1fr; min-height: 0; }
  .contact__info { padding: 120px 0 50px; }
  .contact__inner { padding-top: 0; width: 80%; }
  .contact__form { padding: 50px 0 80px; }
  .contact__form .form, .contact__form .form-notice { width: 80%; }
  .news-grid { grid-template-columns: repeat(2, 1fr); }
  .news-grid__col:nth-child(3) { grid-column: 1 / -1; grid-template-columns: repeat(2, 1fr); align-items: start; }
  .post-card { padding: 29px 36px; }
  .post-meta li { width: auto; margin-right: 34px; margin-bottom: 12px; }
  .job-hero h1, .apply-page__head h1 { font-size: 46px; }
  .job-grid { grid-template-columns: 1fr; }
  .careers-values__pills { flex-wrap: wrap; gap: 14px 24px; justify-content: center; border-radius: 40px; }
  .legal { padding: 140px 0 80px; }
  .legal__card { padding: 40px 30px; }
}

@media (max-width: 767px) {
  /* Accueil : sur téléphone, l'original recentre l'image « EOS recrute » */
  .recruit-banner > img.bgimg.bgimg--pos-center-top { object-position: center; }
  /* Réglages « téléphone » des modules Divi : titres 20/24, sous-titres et chapôs 12/21,6, boutons 10/17 */
  .display { font-size: 20px; line-height: 24px; }
  .sec { padding: 50px 0; }
  .wrap, .wrap--1200, .wrap--panel { width: 90%; }
  .lead, .lead p, .eyebrow, .c2-eyebrow, .pl-eyebrow, .hero-sub, .pl-sub { font-size: 12px; line-height: 21.6px; }
  .btn { font-size: 10px; line-height: 17px; }
  .spec-card h4 { font-size: 12px; line-height: 12px; }

  /* Pied de page centré, une colonne */
  .site-footer__top { grid-template-columns: 1fr; text-align: center; }
  .footer-brand__logo img { margin: 0 auto 20px; }
  .footer-contact { text-align: center; }
  .social { justify-content: center; }
  .site-footer__bottom { flex-direction: column; gap: 22px; text-align: center; }
  .footer-legal { justify-content: center; }

  /* Accueil */
  .home-intro { text-align: center; }
  .home-intro__badge { justify-self: center; }
  .home-intro .display { font-size: 20px; text-align: left; }
  .home-range { grid-template-columns: repeat(2, 1fr); text-align: left; }
  .home-range__label { font-size: 22px; }
  .home-about__body, .home-about { text-align: center; }
  .home-about .wrap:first-of-type { text-align: left; }
  .blurb__title { font-size: 22px; }
  .home-dna__chips { gap: 12px; }
  .home-dna__foot p { font-size: 12px; line-height: 21.6px; }
  .product-card__stats { grid-template-columns: 1fr; }
  .product-card__stats li + li { border-left: 0; border-top: 1px solid #ddd; }
  .news-slider { padding: 20px 30px; }
  .news-slider__viewport { grid-auto-columns: 100%; gap: 20px; }
  .news-slider__nav--prev { left: -16px; }
  .news-slider__nav--next { right: -16px; }
  .cta-band { padding: 50px 0 60px; }

  /* UAV */
  .uav-hero { padding: 120px 0 90px; }
  .uav-hero__text .lead { font-size: 12px; }
  .hotspot { display: none; }
  .uav-dist__media { padding-bottom: 0; }
  .uav-dist__bg { width: 100%; }
  .uav-dist__list h3 { font-size: 22px; line-height: 22px; }
  .figures, .figures--2 { grid-template-columns: 1fr; }
  .figure__value { font-size: 2em; }
  .gauges { grid-template-columns: 1fr; }
  .uav-video { border-radius: 16px 16px 0 0; }
  .gallery__main { height: 300px; }
  .gallery__thumbs { gap: 10px; }
  .gallery__thumb { flex-basis: calc((100% - 20px) / 3); height: 60px; }
  .uav-payload__box { padding: 80px 20px 40px; }
  .uav-pack__list { padding: 20px; }
  .uav-signature .display { font-size: 20px; line-height: 1.2; }

  /* 2023 */
  .page-hero__text, .pl-hero__text { text-align: left; }
  .page-hero.page-hero--ov .page-hero__text { margin-top: 30vw; margin-bottom: 30vw; }
  .page-hero.page-hero--card .page-hero__text { margin-top: 20vw; }
  .page-hero--ov .hero-sub { padding-bottom: 10px; }
  .page-hero--ov .btn--square { padding: 10px 14px; }
  .page-hero__pic { display: block; width: 100%; height: auto; margin: -10vw 0 10vw; border-radius: 20px; }
  .hero-ov--antennas-0, .hero-ov--news-0 { left: 5%; top: 80px; width: 90%; }
  .hero-ov--gcs-0 { left: calc(50% - 210px); top: 85px; width: 200px; }
  .hero-ov--gcs-1 { left: 18.5%; top: 220px; width: 63%; }
  .page-hero__badge, .pl-hero__badge { justify-content: center; bottom: 24px; }
  .pl-hero { padding-top: 120px; }
  .pl-hero__img img { width: 280px; }
  .spec-cards { padding: 10px 0; }
  .pl-toggle__list p { font-size: 16px; }
  .compat-card__stats { grid-template-columns: 1fr; }
  .compat-card__stats li + li { border-left: 0; border-top: 1px solid #ddd; }
  .compat-card__media { height: 220px; }
  .range-slider { grid-template-columns: 32px 1fr 32px; gap: 8px; }
  .range-slider__arrow { width: 32px; height: 32px; }
  .range-slider__stop { min-width: 0; font-size: 11px; }
  .spec-panel__col, .spec-panel__col:first-child { padding: 30px 15px; }
  .spec-panel__col + .spec-panel__col { padding: 0 15px 30px; }
  .spec-panel__col dt { font-size: 18px; line-height: 18px; }
  .spec-panel .spec-panel__dark { padding: 40px 20px 200px; }
  .spec-panel__dark h3 { font-size: 25px; line-height: 30px; }
  .compat-banner h3 { font-size: 28px; }
  .img-tabs { gap: 8px; }
  .img-tabs__tab { height: 70px; padding: 6px; }
  .img-tabs__tab img { max-height: 54px; }
  .gcs-pack__card { padding: 24px; }
  .gcs-extra__text, .gcs2-row__text { padding: 24px; }
  .gcs2-items { grid-template-columns: repeat(2, 1fr); }
  .gcs2-antenna { flex-direction: column; align-items: flex-start; gap: 20px; }
  .gcs2-tabs { flex-wrap: wrap; justify-content: center; }
  .gcs2-tab { font-size: 16px; }
  .cta-square .btn--square { margin-top: 30px; }

  /* Autres pages */
  .news-filters { border-radius: 24px; }
  .news-grid, .news-grid__col:nth-child(3) { grid-template-columns: 1fr; }
  .post-hero { min-height: 380px; }
  .post-card { padding: 20px; }
  .post-more h3 { font-size: 26px; }
  .job-hero { min-height: 0; padding: 130px 0 110px; }
  .job-hero__inner { padding-top: 30px; }
  .job-hero h1, .apply-page__head h1 { font-size: 34px; letter-spacing: -1px; }
  .careers-values h2, .job-title, .job-card h2 { font-size: 30px; letter-spacing: -1px; }
  .job-card { min-height: 200px; }
  .map-embed { height: 320px; }
  .apply-page { padding: 120px 0 80px; }
  .form__row--2 { grid-template-columns: 1fr; }
  .btn--apply { width: 100%; }
  .legal { padding: 110px 0 60px; }
  .legal__card { padding: 30px 20px; }
  .notfound h2 { font-size: 20px; line-height: 1.3; }
  .notfound { margin-top: 80px; }
  .cookiebar { left: 10px; right: 10px; bottom: 10px; width: auto; }
  .cookiebar__actions { grid-template-columns: 1fr; }
}

@media (max-width: 479px) {
  .home-range { grid-template-columns: repeat(2, 1fr); }
  .gcs2-items { grid-template-columns: 1fr; }
  .post-meta span { font-size: 15px; }
}

@media print {
  .site-header, .cookiebar, .cookietab, .news-slider__nav { display: none !important; }
  body { background: #fff; }
}
