:root{
  --bg:#ffffff;
  --bg-muted-section:#f7f7f8; /* bandeaux type figures, « Ils nous font confiance » */
  --bg-soft:#fbf7fc;
  --text:#2b1730;
  --muted:#6b7280;
  --primary:#7a3a88;
  --accent:#4b2057;
  --announcement-banner-bg:#a323c7;
  --border:transparent;
  --shadow:none;
  --radius:16px;
  --maxw:1265px;
  /* Hauteur barre nav seule (approx.) */
  --header-bar-h:72px;
  /*
    Bandeau d’annonce : hauteur réservée (scroll, menu mobile).
    → Mettre à 0 si vous supprimez le bloc HTML du bandeau (voir commentaire dans index.html).
  */
  /* Hauteur réservée au bandeau (spacer + scroll) : augmenter si le texte passe sur 2 lignes */
  --announcement-banner-h:52px;
  /* En-tête complet : bandeau + nav (sticky) */
  --site-top-h:calc(var(--announcement-banner-h) + var(--header-bar-h));
}
/*
  data-announcement-show :
  - "true"  : le bandeau .announcement-banner est affiché (défaut si attribut absent).
  - "false" : bandeau masqué (display:none), --announcement-banner-h forcé à 0 (:has) pour scroll-padding / cohérence avant JS.

  data-nav-sticky :
  - "true" : .site-top = fixed, bandeau + nav empilés dedans (aucun chevauchement). main padding-top = hauteur .site-top (JS).
  - "false" : .site-top en flux, bandeau défile, header sticky.
*/
:root:has(body[data-announcement-show="false"]) {
  --announcement-banner-h: 0px;
}
body[data-announcement-show="false"] .announcement-banner {
  display: none;
}
*{box-sizing:border-box}
html{
  scroll-behavior:smooth;
  /* Une seule règle (pas de scroll-margin sur les sections en plus) : hauteur .site-top uniquement */
  --scroll-anchor-padding:var(--site-top-h);
  scroll-padding-top:var(--scroll-anchor-padding);
}
html{
  min-height:100%;
  /* clip horizontal sans casser position:sticky sur les descendants (overflow-x:hidden sur body le casse) */
  overflow-x:clip;
}
body{
  margin:0;
  min-height:100%;
  font-family:'Plus Jakarta Sans',system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif;
  letter-spacing:-.02em;
  color:var(--text);
  background:#ffffff;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
a{color:inherit}
img{max-width:100%;display:block}
.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:24px}
header .container{padding:10px 24px}
main.container{padding-top:0}

/* Bloc haut : bandeau + header */
.site-top{
  width:100%;
}
body[data-nav-sticky="true"] .site-top{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:100;
  background:var(--bg);
}
body[data-nav-sticky="true"] main.container{
  padding-top:var(--site-top-h);
}
body[data-nav-sticky="true"] .site-top header{
  position:relative;
  top:auto;
  z-index:2;
}

/* Nav : sticky par défaut ; dans .site-top fixe le header est en flux (relative) */
header{
  position:sticky;
  top:0;
  z-index:100;
  width:100%;
  backdrop-filter:saturate(140%) blur(10px);
  background:rgba(255,255,255,.92);
  border-bottom:1px solid #e5e7eb;
}

/* Bandeau d’annonce */
.announcement-banner{
  position:relative;
  z-index:1;
  min-height:var(--announcement-banner-h);
  box-sizing:border-box;
  background:var(--announcement-banner-bg);
  color:#fff;
  font-size:.8125rem;
  line-height:1.45;
  /* Plus d’air entre les mots (le body a letter-spacing négatif) */
  letter-spacing:.025em;
  word-spacing:.12em;
  border-bottom:1px solid #8b1ba8;
  box-shadow:inset 0 1px 0 #c94ee0;
}
.announcement-banner__inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:6px 14px;
  max-width:var(--maxw);
  margin:0 auto;
  padding:10px 24px;
  text-align:center;
}
.announcement-banner__inner strong,
.announcement-banner__inner b{
  font-weight:700;
  letter-spacing:.04em;
}
.announcement-banner__inner a{
  color:#fff;
  font-weight:600;
  text-decoration:underline;
  text-decoration-color:#f0c8fb;
  text-underline-offset:3px;
  white-space:nowrap;
}
.announcement-banner__inner a:hover{
  text-decoration-color:#ffffff;
}

/* Picto « broadcast » : point source + ondes (animation sobre) */
.announcement-banner__lead{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.announcement-banner__broadcast{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.broadcast-ripple{
  position:relative;
  width:16px;
  height:16px;
  flex-shrink:0;
}
.broadcast-ripple__ring{
  position:absolute;
  inset:0;
  border:1px solid #f0c4f8;
  border-radius:50%;
  transform-origin:center center;
  animation:broadcast-pulse 2.2s cubic-bezier(.2,.8,.2,1) infinite;
  will-change:transform,border-color;
}
.broadcast-ripple__ring:nth-child(2){animation-delay:.55s}
.broadcast-ripple__ring:nth-child(3){animation-delay:1.1s}
.broadcast-ripple__dot{
  position:absolute;
  left:50%;
  top:50%;
  width:5px;
  height:5px;
  margin:-2.5px 0 0 -2.5px;
  background:#fff;
  border-radius:50%;
  box-shadow:0 0 0 1px #d966e8;
  z-index:1;
}
/* Ondes : couleurs pleines uniquement (bordure → même ton que le fond du bandeau = disparition sans opacity) */
@keyframes broadcast-pulse{
  0%{transform:scale(.45);border-color:#fde7ff}
  100%{transform:scale(2.35);border-color:var(--announcement-banner-bg)}
}
@media (prefers-reduced-motion:reduce){
  .broadcast-ripple__ring{
    animation:none;
    border-color:#e8aaf5;
    transform:scale(1.15);
  }
  .broadcast-ripple__ring:nth-child(2),
  .broadcast-ripple__ring:nth-child(3){display:none}
}

.header__inner{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  position:relative;flex-wrap:wrap;
}
.header__brand{display:flex;align-items:center;justify-content:flex-start;flex-shrink:0;min-width:0}
.header__brand a{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.brand__logo{
  height:50px;width:auto;display:block;border-radius:0;background:transparent;box-shadow:none;border:0;flex-shrink:0;
}
.brand__name{font-weight:700;letter-spacing:.2px;white-space:nowrap}
/* Nav desktop */
.nav--main{
  display:flex;gap:28px;align-items:center;margin-left:auto;
}
.nav--main a{
  text-decoration:none;color:var(--muted);font-weight:500;font-size:.95rem;
  transition:color .2s ease;
  white-space:nowrap;
}
.nav--main a:hover{color:var(--text)}
/* Bouton burger — masqué sur grand écran */
.nav-toggle{
  display:none;flex-direction:column;justify-content:center;align-items:center;
  gap:5px;width:44px;height:44px;padding:0;margin:0;
  border:none;background:transparent;cursor:pointer;border-radius:10px;
  color:var(--text);flex-shrink:0;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  transition:background .2s ease, box-shadow .2s ease;
}
.nav-toggle:hover{background:rgba(122,58,136,.08)}
.nav-toggle:active{background:rgba(122,58,136,.12)}
header.nav-open .nav-toggle{
  background:rgba(122,58,136,.1);
  box-shadow:inset 0 0 0 1px rgba(122,58,136,.15);
}
.nav-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.nav-toggle__line{
  display:block;width:22px;height:2px;background:currentColor;border-radius:1px;
  transform-origin:center;
  transition:transform .28s cubic-bezier(.4,.2,.2,1), opacity .2s ease;
}
header.nav-open .nav-toggle__line:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}
header.nav-open .nav-toggle__line:nth-child(2){
  opacity:0;transform:scaleX(0);
}
header.nav-open .nav-toggle__line:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}
@media (max-width: 767px){
  .nav-toggle{display:inline-flex}
  .header__brand{flex:1;min-width:0}
  /* Voile sous le menu (sous la barre, au-dessus du contenu) */
  body.nav-menu-open::before{
    content:'';
    position:fixed;left:0;right:0;
    top:var(--nav-dropdown-top, var(--site-top-h, 72px));
    bottom:0;
    z-index:100;
    background:rgba(43,23,48,.18);
    pointer-events:none;
  }
  .nav--main{
    display:none;flex-direction:column;align-items:stretch;gap:0;margin-left:0;
    position:fixed;top:var(--nav-dropdown-top, var(--site-top-h));left:0;right:0;z-index:101;
    max-height:var(--nav-dropdown-max-h, calc(100vh - var(--site-top-h)));overflow-y:auto;
    padding:6px 0 18px;
    background:rgba(255,255,255,.97);
    backdrop-filter:saturate(160%) blur(14px);
    -webkit-backdrop-filter:saturate(160%) blur(14px);
    border-bottom:1px solid #e8e5eb;
    border-radius:0 0 16px 16px;
    box-shadow:0 16px 40px rgba(43,23,48,.1);
  }
  .nav--main a{
    padding:15px 22px;font-size:1.02rem;white-space:normal;line-height:1.35;
    border-bottom:1px solid #f0eef2;
    transition:background .15s ease, color .15s ease;
  }
  .nav--main a:hover{background:rgba(122,58,136,.06);color:var(--text)}
  .nav--main a:focus-visible{
    outline:2px solid var(--primary);outline-offset:-4px;background:rgba(122,58,136,.06);
  }
  .nav--main a:last-child{border-bottom:none}
  header.nav-open .nav--main{display:flex}
}
@media (max-width: 767px) and (prefers-reduced-motion: reduce){
  .nav-toggle__line{transition-duration:.01ms}
}
body.nav-menu-open{overflow:hidden}
@media (min-width: 768px){
  body.nav-menu-open{overflow:auto}
}

/* Hero */
.hero{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:420px;
  padding:48px 24px;
  border:none;
  border-radius:0;
  box-shadow:none;
  background-size: cover;
  /* Décalage vertical : montre davantage le haut de la photo dans le cadre (ajuste 0%–50% si besoin) */
  background-position: center 90%;
  overflow:hidden;
  margin-left:calc(-50vw + 50%);
  margin-right:calc(-50vw + 50%);
  width:100vw;
}
.hero::after{
  content:'';position:absolute;inset:0;
  pointer-events:none;
  background:rgba(0,0,0,.2);
}
.hero__text h1{
  margin:6px 0 8px;font-size:clamp(42px,4.5vw,34px);line-height:1.45;
}
.hero__badge{
  display:inline-block;
  position:absolute;top:-14px;left:50%;transform:translateX(-50%);
  background:var(--accent);color:#fff;
  padding:6px 18px;border-radius:20px;
  font-size:.8rem;font-weight:600;letter-spacing:.03em;
  white-space:nowrap;z-index:2;
}
.hero__text{
  position:relative;z-index:1;
  background: rgba(255,255,255,.92);
  color:#2b1730;
  padding:32px 36px 24px;
  border-radius:8px;
  text-align:center;
  max-width:770px;
}
.hero__text h2{
  margin:8px 0;color:var(--muted);font-weight:500;
  font-size:clamp(16px,2.8vw,20px);
}

/* Hero étendu : même image sur « Vous êtes » — overlay inchangé (.hero::after = 20 % seulement) */
.hero--extended{
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  min-height:auto;
  padding:48px 24px 48px;
}
.hero__top{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:380px;
  padding-bottom:8px;
}
.hero__vous{
  position:relative;
  z-index:1;
  padding-top:16px;
  padding-bottom:8px;
}
.hero__vous .title{margin-bottom:20px}
.hero__vous .title h2{
  color:#fff !important;
  text-shadow:0 2px 12px rgba(0,0,0,.35);
}

/* Sections */
section{
  margin:0;
  background:#ffffff;
  border:none;
  border-radius:0;
  box-shadow:none;
  overflow:hidden;
  margin-left:calc(-50vw + 50%);
  margin-right:calc(-50vw + 50%);
  width:100vw;
}
section.hero{
  background-color:transparent;
}
/* Bloc chiffres — même fond que « Ils nous font confiance » */
#figures{
  background:var(--bg-muted-section);
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
#clients{
  background:var(--bg-muted-section);
}
#plateforme{
  background:#ffffff;
}
.figures__line{
  margin:0 0 28px;
  font-size:clamp(22px,4.2vw,38px);
  font-weight:700;
  line-height:1.28;
  letter-spacing:-.02em;
  color:var(--text);
  white-space:nowrap;
}
.figures__line:last-child{
  margin-bottom:0;
}
.figures__emph{
  font-style:normal;
  color:var(--primary);
  font-weight:700;
}
section .section__inner{padding:48px 28px;max-width:var(--maxw);margin:0 auto}
#figures .section__inner{
  padding:56px 28px;
  max-width:var(--maxw);
  width:100%;
  text-align:center;
}
@media (max-width:1100px){
  .figures__line{white-space:normal}
}
section h3{
  margin:4px 0 6px;font-size:clamp(18px,3.8vw,22px);
}
section h4{
  margin:0 0 12px;color:var(--muted);font-weight:400;
  font-size:clamp(14px,2.6vw,18px);
  text-align:center;
}
section h5{
  margin:4px 0 8px;color:var(--text);font-weight:600;
  font-size:clamp(14px,2.6vw,17px);
}
/* Titres des cartes « feature » ; sous-titre (h6) sur l’image — voir .feature__overlay */
.feature h5{margin-bottom:4px;text-align:center}
.feature--cta h5{color:#fff;font-size:clamp(16px,3vw,20px);margin:0 0 4px}
.feature--cta h6{
  color:rgba(255,255,255,.62);
  font-size:clamp(16px,3vw,20px);
  font-weight:400;
  margin:0 0 12px;
  text-align:center;
}

/* Grilles */
.title{
  margin:0 0 24px;
}
.title h2{
  margin:0;
  font-size:clamp(26px,5vw,32px);
  text-align:center;
}
.grid{
  display:grid;
  gap:20px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.card{
  background:#ffffff;
  border:1px solid var(--border);
  border-radius:8px;
  padding:10px 16px;
}
.card h3{
  margin:2px 0;
  font-size:clamp(14px,2.8vw,16px);
}
.card p{margin:0;color:var(--muted)}
.card a{
  color:var(--accent);
  text-decoration:none;font-weight:600;
}
.card a:hover{text-decoration:underline}

/* Cards "Vous êtes" — texte violet, fond blanc / cassé */
#vous-etes .card{
  background:#fff;
  color:var(--primary);
  border:1px solid #ead9ee;
  box-shadow:0 2px 12px rgba(75,32,87,.06);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
#vous-etes .card:hover{
  transform:translateY(-3px);
  box-shadow:0 6px 20px rgba(75,32,87,.12);
  border-color:var(--primary);
}
#vous-etes .card{text-align:center;text-decoration:none;cursor:pointer;display:block}
#vous-etes .card h3{color:var(--primary);font-weight:600}
#vous-etes .card p{color:var(--muted)}

/* Boutons */
.btn{border:1px solid #7a3a88;background:#4b2057;color:#fff;padding:8px 12px;border-radius:8px;font-weight:600;display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-size:.95rem}
.btn.btn-secondary{background:#fbf7fc;color:#2b1730;border-color:#ead9ee}
.btn:disabled{opacity:.5}

/* Footer */
.site-footer{
  background:var(--accent);
  color:#fff;
  margin-left:calc(-50vw + 50%);
  margin-right:calc(-50vw + 50%);
  width:100vw;
}
.footer__inner{
  max-width:var(--maxw);margin:0 auto;
  padding:48px 28px 32px;
  display:grid;grid-template-columns:1fr;gap:32px;
}
.footer__brand p{color:rgba(255,255,255,.6);margin:12px 0 0;line-height:1.6;font-size:.9rem}
.footer__links h4{color:#fff;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;margin:0 0 12px}
.footer__links ul{list-style:none;padding:0;margin:0}
.footer__links li{margin:0 0 8px}
.footer__links a{color:rgba(255,255,255,.7);text-decoration:none;font-size:.9rem;transition:color .2s}
.footer__links a:hover{color:#fff}
.footer__contact h4{color:#fff;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;margin:0 0 12px}
.footer__contact p{color:rgba(255,255,255,.7);margin:0 0 16px;font-size:.9rem;line-height:1.6}
.footer__social{display:flex;gap:12px;margin-top:8px}
.footer__social a{
  width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.12);
  display:grid;place-items:center;color:#fff;text-decoration:none;
  transition:background .2s;
}
.footer__social a:hover{background:rgba(255,255,255,.25)}
.footer__linkedin .icon-linkedin{width:20px;height:20px}
.footer__bottom{
  max-width:var(--maxw);margin:0 auto;
  padding:16px 28px;
  border-top:1px solid rgba(255,255,255,.12);
  display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;
  color:rgba(255,255,255,.45);font-size:.8rem;
}
@media (min-width: 720px){
  .footer__inner{grid-template-columns:2fr 1fr 1fr}
}

/* Carousel */
.carousel{
  position:relative;overflow:hidden;border-radius:14px;
  border:1px solid var(--border);
  background:#f2ecf6;
}
.carousel__track{
  display:flex;transition:transform .45s cubic-bezier(.22,.61,.36,1);
  will-change:transform;
}
.carousel__slide{
  min-width:100%;aspect-ratio:16/9;position:relative;user-select:none;
}
.carousel__slide img{width:100%;height:100%;object-fit:cover}
.carousel__btn{
  position:absolute;top:50%;transform:translateY(-50%);
  width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.14);
  background:rgba(9,13,25,.6);color:var(--text);
  display:grid;place-items:center;font-size:18px;cursor:pointer;
  box-shadow:0 8px 20px rgba(0,0,0,.35);
}
.carousel__btn:hover{background:rgba(9,13,25,.8)}
.carousel__btn[disabled]{opacity:.5;cursor:not-allowed}
.carousel__btn--prev{left:10px}
.carousel__btn--next{right:10px}
.carousel__dots{
  position:absolute;left:0;right:0;bottom:8px;display:flex;gap:8px;justify-content:center;
  padding:0 10px;pointer-events:none;
}
.carousel__dot{
  width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.35);
  border:1px solid rgba(255,255,255,.25);
  pointer-events:auto;
}
.carousel__dot[aria-current="true"]{background:var(--primary)}

/* Section CTA */
.cta-section{
  background:var(--accent);
  border-color:var(--primary);
  border-radius:0;
}
.cta-inner{
  padding:36px 28px;max-width:900px;margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
}
.cta-inner h3{margin:0 0 6px;color:#fff;font-size:clamp(18px,3.8vw,24px)}
.cta-inner p{margin:0;color:rgba(255,255,255,.8)}

/* Missions */
.missions-block{margin:28px 0 16px}
.missions-block h3{margin:0 0 6px;text-align:center}
.missions-block h4{margin:0 0 18px}
.features{
  display:grid;
  gap:20px;
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.feature{
  background:#ffffff;
  border:none;
  border-radius:14px;
  padding:8px;
  display:grid;
  gap:10px;
}
.feature__media{
  position:relative;
  border-radius:10px;
  overflow:hidden;
  background:#f2ecf6;
  aspect-ratio:4/3;
}
.feature__media img{
  width:100%;height:100%;object-fit:cover;display:block;
}
/* Bandeau bas sur l’image (comme les vignettes « Qui sommes-nous ») */
.feature__overlay{
  position:absolute;left:0;right:0;bottom:0;
  display:flex;align-items:flex-end;justify-content:center;
  background:linear-gradient(to top, rgba(0,0,0,.4) 0%, transparent 50%);
  pointer-events:none;
}
.feature__caption{
  width:100%;
  padding:10px 12px 12px;
  text-align:center;
  background:rgba(30,22,36,.82);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-radius:10px 10px 0 0;
}
.feature__caption h6{
  margin:0;
  color:rgba(255,255,255,.9);
  font-weight:400;
  font-size:clamp(12px,2.35vw,15px);
  line-height:1.4;
  text-align:center;
  letter-spacing:.01em;
}
.feature p{
  margin:0 0 8px;color:var(--muted);text-align:center;
}
.feature__actions{
  display:flex;justify-content:center;
}
.feature--cta{
  background:var(--accent);
  border-color:var(--primary);
  padding:28px 24px;
  justify-items:center;
  align-content:center;
  text-align:center;
  border-radius:14px;
}
.feature--cta p{color:rgba(255,255,255,.75);margin:0 0 20px;font-size:.95rem;line-height:1.5}
.btn--inv{
  background:#fff;
  color:var(--accent);
  border-color:#fff;
  padding:10px 20px;
  font-size:1rem;
}
.btn--inv:hover{background:#f0ecf2}
@media (min-width: 640px){
  .features{grid-template-columns: repeat(2, minmax(0, 1fr));}
}
@media (min-width: 1000px){
  .features{grid-template-columns: repeat(3, minmax(0, 1fr));}
}

/* Plateforme — sous-sections (h3) + lignes alternées (titres blocs en h4) */
.platform-subsection{margin-top:48px}
.title + .platform-subsection{margin-top:28px}
.platform-subsection > h3{
  margin:0 0 28px;
  text-align:center;
  /* Entre le h2 de section (.title h2) et les h4 des blocs — ne pas modifier section h3 ailleurs */
  font-size:clamp(21px,4vw,27px);
  line-height:1.3;
  color:var(--text);
}
.platform-rows{display:flex;flex-direction:column;gap:64px;max-width:900px;margin:0 auto}
.platform-row{
  display:grid;grid-template-columns:1fr;gap:24px;align-items:center;
}
.platform-row__text h4{
  margin:0 0 14px;
  font-size:clamp(19px,3.4vw,24px);
  line-height:1.3;
  color:var(--primary);
  font-weight:600;
  text-align:left;
}
.platform-row__text p{margin:0 0 20px;color:var(--muted);line-height:1.7;font-size:clamp(15px,2.6vw,17px)}
.platform-row__text ul{
  list-style:none;padding:0;margin:0 0 20px;
}
.platform-row__text li{
  position:relative;padding-left:20px;margin:0 0 8px;
  color:var(--muted);line-height:1.7;font-size:clamp(15px,2.6vw,17px);
}
.platform-row__text li::before{
  content:'';position:absolute;left:0;top:10px;
  width:6px;height:6px;border-radius:50%;
  background:var(--primary);
}
.platform-row__text .link{
  color:var(--primary);text-decoration:none;font-weight:600;font-size:.95rem;
  display:inline-flex;align-items:center;gap:6px;
}
.platform-row__text .link:hover{text-decoration:underline}
.platform-row__text .link::after{content:'→'}
.platform-row__actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.platform-row__media{
  border-radius:14px;overflow:hidden;background:#f8f6fa;
  border:1px solid var(--border);
}
.platform-row__media img{width:100%;display:block}
@media (min-width: 800px){
  .platform-row{grid-template-columns:1fr 1fr;gap:24px}
  .platform-row:nth-child(even) .platform-row__text{order:2}
  .platform-row:nth-child(even) .platform-row__media{order:1}
}

/* Témoignages (bloc texte + image) — id #testimonials */
.testimonials-section__row{
  display:grid;
  gap:32px;
  align-items:start;
  max-width:1100px;
  margin:0 auto;
}
@media (min-width: 800px){
  .testimonials-section__row{
    grid-template-columns:1fr 1fr;
    gap:40px;
    align-items:stretch;
  }
}
.testimonials-section__text h3{
  margin:0 0 18px;
  font-size:clamp(20px,3.6vw,26px);
  line-height:1.28;
  color:var(--text);
  font-weight:600;
  text-align:left;
}
.testimonials-section__body p{
  margin:0 0 16px;
  color:var(--muted);
  line-height:1.7;
  font-size:clamp(15px,2.6vw,17px);
}
.testimonials-section__body p:last-child{margin-bottom:0}
.testimonials-section__body ul{
  margin:0 0 16px;
  padding-left:1.25em;
  color:var(--muted);
  line-height:1.7;
  font-size:clamp(15px,2.6vw,17px);
}
.testimonials-section__body li{margin:0 0 10px}
.testimonials-section__body li:last-child{margin-bottom:0}
.testimonials-section__media{
  border-radius:14px;
  overflow:hidden;
  background:#f8f6fa;
  border:1px solid var(--border);
  min-height:220px;
}
.testimonials-section__media img{
  width:100%;
  height:100%;
  min-height:260px;
  object-fit:cover;
  display:block;
}

/* Section Clients */
.testimonials{display:grid;grid-template-columns:1fr;gap:24px}
.testimonial{
  text-align:center;padding:24px;
}
.testimonial__avatar{
  width:72px;height:72px;border-radius:50%;object-fit:cover;
  margin:0 auto 16px;display:block;
  background:#e5e5e5;
}
.testimonial__name{font-weight:700;margin:0 0 2px;font-size:1rem}
.testimonial__company{color:var(--primary);font-weight:500;font-size:.9rem;margin:0 0 12px}
.testimonial__quote{
  color:var(--muted);font-style:italic;line-height:1.6;font-size:.95rem;
  max-width:320px;margin:0 auto;
}
.testimonial__quote::before{content:'\201C'}
.testimonial__quote::after{content:'\201D'}
@media (min-width: 640px){
  .testimonials{grid-template-columns:repeat(3,1fr)}
}

/* Section Équipe */
.team-grid{
  display:grid;grid-template-columns:1fr;gap:28px;
  max-width:960px;margin:0 auto;
}
.team-member{
  display:flex;flex-direction:column;align-items:center;gap:12px;
}
.team-member__linkedin{
  display:inline-flex;align-items:center;gap:8px;
  color:#0a66c2;text-decoration:none;font-weight:600;font-size:.9rem;
  transition:color .2s ease, opacity .2s ease;
}
.team-member__linkedin:hover{color:#004182;text-decoration:underline}
.team-member__linkedin .icon-linkedin{flex-shrink:0}
.team-member__media{
  position:relative;width:70%;max-width:392px;margin:0 auto;
  aspect-ratio:3/4;
  overflow:hidden;
  background:#e5e5e5;
}
.team-member__photo{
  width:100%;height:100%;object-fit:cover;display:block;
}
.team-member__overlay{
  position:absolute;left:0;right:0;bottom:0;
  padding:0;
  display:flex;align-items:flex-end;justify-content:center;
  background:linear-gradient(to top, rgba(0,0,0,.35) 0%, transparent 45%);
}
.team-member__caption{
  width:100%;
  padding:14px 16px 16px;
  text-align:center;
  background:rgba(30,22,36,.82);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-radius:10px 10px 0 0;
}
.team-member__name{
  font-weight:700;font-size:clamp(1.1rem,2.6vw,1.45rem);
  margin:0 0 5px;color:#fff;
  letter-spacing:.01em;
}
.team-member__role{
  color:rgba(255,255,255,.9);font-weight:500;font-size:clamp(.88rem,1.8vw,1.02rem);margin:0;
  line-height:1.35;
}
@media (min-width: 640px){
  .team-grid{grid-template-columns:repeat(2,1fr);gap:24px}
}

/* Layout responsive */
@media (min-width: 900px){
  section .section__inner{padding:56px 32px}
}
@media (min-width: 720px){ .card{padding:24px} }

/* Page documentation — iframe (src à définir dans le HTML) */
.documentation-main{
  padding-top:24px;
  padding-bottom:48px;
  min-height:40vh;
}
.documentation-frame{
  display:block;
  width:100%;
  min-height:min(70vh, 720px);
  border:0;
  border-radius:12px;
  background:#f8f6fa;
}
