:root {
  color-scheme: dark;
  --bleu: #3DBDEE;
  --fond: #090f16;
  --surface: #111a24;
  --texte: #f4f8fb;
  --secondaire: #a9b7c5;
  --contour: rgba(170,210,232,.18);
  --largeur: 1050px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--fond);
  color: var(--texte);
  font-family: "Montserrat", "Segoe UI", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
body::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 450px;
  background: radial-gradient(ellipse 56% 85% at 50% -20%, rgba(61,189,238,.19), transparent 75%);
  pointer-events: none;
  z-index: -1;
}
a { color: inherit; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--bleu); outline-offset: 4px; }
main { flex: 1; }
.conteneur { width: min(calc(100% - 44px), var(--largeur)); margin-inline: auto; }
.entete {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 96px;
  border-bottom: 1px solid var(--contour);
}
.marque { display: inline-flex; align-items: center; text-decoration: none; flex-shrink: 0; }
.marque img { display: block; width: clamp(148px, 16vw, 192px); height: auto; }
.nav-principale { display: flex; align-items: center; justify-content: flex-end; gap: clamp(16px, 3vw, 34px); flex-wrap: wrap; }
.nav-principale a { text-decoration: none; font-size: 14px; font-weight: 600; color: var(--secondaire); transition: color .18s; }
.nav-principale a:hover, .nav-principale a[aria-current="page"] { color: var(--bleu); }
.nav-principale .contact-haut { font-size: 12px; border-bottom: 1px solid rgba(61,189,238,.35); padding-bottom: 4px; }
.intro { text-align: center; padding: 85px 12px 45px; }
h1 {
  font-size: clamp(33px, 4.8vw, 63px);
  letter-spacing: -.055em;
  font-weight: 900;
  line-height: 1.11;
  margin: 0 auto 19px;
  max-width: 1050px;
  text-wrap: balance;
}
h1 span { color: var(--bleu); }
.sous-titre {
  color: var(--secondaire);
  font-size: clamp(14px, 2vw, 17px);
  margin: 0 auto;
  line-height: 1.65;
  max-width: 690px;
}
.rubrique { margin-block: 28px 55px; }
.titre-section {
  margin: 0 0 18px;
  font-size: clamp(20px, 2.6vw, 26px);
  letter-spacing: -.035em;
  font-weight: 750;
}
.video-cadre {
  overflow: hidden;
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 1px solid var(--contour);
  border-radius: 13px;
  background: #060b12;
  box-shadow: 0 20px 60px rgba(0,0,0,.26);
}
video { display: block; width: 100%; height: 100%; object-fit: contain; }
.lien-prestations { display: flex; justify-content: center; padding: 0 0 86px; }
.bouton-lien {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 15px 23px;
  min-height: 50px;
  border-radius: 9px;
  border: 1px solid rgba(61,189,238,.55);
  background: rgba(61,189,238,.07);
  color: var(--bleu);
  text-decoration: none;
  font-size: 15px;
  font-weight: 750;
  transition: background .16s, border-color .16s;
}
.bouton-lien:hover { background: rgba(61,189,238,.15); border-color: var(--bleu); }
.bouton-lien .fleche-inline { font-size: 20px; line-height: 1; }
.intro-prestations { text-align: center; padding-top: 65px; padding-bottom: 28px; }
.intro-prestations h1 { font-size: clamp(32px, 4.3vw, 53px); }
.rubrique-carrousel { margin-top: 20px; margin-bottom: 80px; }
.carrousel { display: flex; flex-direction: column; align-items: center; gap: 20px; }
.carrousel-ligne {
  width: 100%;
  display: grid;
  grid-template-columns: 55px minmax(0, 510px) 55px;
  justify-content: center;
  align-items: center;
  gap: 18px;
}
.image-cadre {
  position: relative;
  width: 100%;
  aspect-ratio: 1122 / 1402;
  overflow: hidden;
  border-radius: 11px;
  border: 1px solid var(--contour);
  background: var(--surface);
  box-shadow: 0 22px 55px rgba(0,0,0,.35);
}
.image-cadre img { width: 100%; height: 100%; display: block; object-fit: contain; }
.fleche {
  width: 52px; height: 52px;
  display: grid; place-items: center;
  border-radius: 50%;
  border: 1px solid var(--contour);
  background: #101a24;
  color: white;
  font-size: 29px;
  font-weight: 400;
  cursor: pointer;
  transition: background .15s, border-color .15s, transform .15s;
}
.fleche:hover { background: #1b3142; border-color: var(--bleu); transform: translateY(-1px); }
.pagination { display: flex; gap: 11px; align-items: center; justify-content: center; }
.point { width: 9px; height: 9px; padding: 0; background: #546676; border: none; border-radius: 50%; cursor: pointer; transition: all .2s; }
.point[aria-current="true"] { width: 25px; border-radius: 12px; background: var(--bleu); }
.compteur { color: var(--secondaire); font-size: 13px; letter-spacing: .13em; font-variant-numeric: tabular-nums; }
/* Bandeau bas de page agrandi, qui donne un accès direct au contact */
.contact-bandeau {
  border-top: 1px solid var(--contour);
  background: linear-gradient(120deg, #101e2a 0%, #0d1923 62%, #122a39 100%);
}
.contact-contenu {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  padding-block: 42px;
}
.contact-copy { display: flex; flex-direction: column; gap: 9px; }
.contact-copy strong { font-size: clamp(21px, 2.7vw, 28px); font-weight: 800; letter-spacing: -.035em; }
.contact-copy span { color: var(--secondaire); font-size: 14px; line-height: 1.5; }
.contact-cta {
  color: #06101a;
  background: var(--bleu);
  border: 1px solid var(--bleu);
  padding: 17px 24px;
  border-radius: 10px;
  text-decoration: none;
  font-size: clamp(14px, 1.6vw, 17px);
  font-weight: 850;
  white-space: nowrap;
  transition: background .16s;
}
.contact-cta:hover { background: #77d5fa; }
.pied-legal { display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; color: #8e9fad; font-size: 12px; padding-block: 22px 28px; }
.pied-legal a { color: var(--secondaire); text-decoration: none; }
.pied-legal a:hover { color: var(--bleu); }
@media (max-width: 640px) {
  .conteneur { width: min(calc(100% - 28px), var(--largeur)); }
  .entete { min-height: 82px; gap: 12px; }
  .marque img { width: 115px; }
  .nav-principale { gap: 12px; }
  .nav-principale a { font-size: 12px; }
  .nav-principale .contact-haut { display: none; }
  .intro { padding: 55px 5px 25px; }
  h1 { font-size: clamp(29px, 7.3vw, 39px); }
  .rubrique { margin-block: 28px 40px; }
  .lien-prestations { padding-bottom: 58px; }
  .intro-prestations { padding-top: 58px; }
  .rubrique-carrousel { margin-bottom: 60px; }
  .carrousel-ligne { position: relative; grid-template-columns: minmax(0, 1fr); gap: 0; }
  .image-cadre { width: 100%; max-width: 510px; margin-inline: auto; }
  .fleche { position: absolute; top: 50%; z-index: 2; width: 36px; height: 46px; border-radius: 9px; font-size: 26px; background: rgba(9,15,22,.9); translate: 0 -50%; }
  #precedent { left: 5px; }
  #suivant { right: 5px; }
  .contact-contenu { flex-direction: column; align-items: stretch; padding-block: 31px; }
  .contact-cta { display: block; text-align: center; white-space: normal; }
  .pied-legal { padding-block: 18px 25px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; }
}


/* =========================================================
   V4 : aucune barre de défilement — tous les blocs sont
   calculés sur la hauteur disponible de la fenêtre.
   ========================================================= */
html, body { width:100%; height:100%; overflow:hidden; }
body { height:100vh; height:100dvh; min-height:0; }
body::before { position:fixed; height:55vh; }
body > main { flex:1 1 auto; min-height:0; }
body > footer { flex:0 0 auto; }
.entete { flex:0 0 auto; min-height:clamp(54px,8dvh,78px); }
.marque img { width:clamp(115px,10.5vw,158px); }
.nav-principale a { font-size:clamp(12px,1.1vw,14px); }

/* Contact visible sans avoir à descendre */
.contact-contenu { padding-block:clamp(12px,1.7dvh,19px); gap:16px; }
.contact-copy { gap:4px; }
.contact-copy strong { font-size:clamp(18px,2vw,23px); }
.contact-copy span { font-size:clamp(11px,1vw,13px); line-height:1.25; }
.contact-cta { padding:12px 17px; font-size:clamp(13px,1.2vw,15px); }
.pied-legal { padding-block:8px 10px; font-size:11px; }

/* ACCUEIL : la vidéo exploite exactement l'espace disponible */
.accueil-main { display:flex; flex-direction:column; align-items:stretch; }
.page-accueil .intro { flex:0 0 auto; padding:clamp(9px,1.8dvh,19px) 5px clamp(10px,1.7dvh,20px); }
.page-accueil h1 { font-size:clamp(27px,3.15vw,48px); margin-bottom:9px; line-height:1.08; }
.page-accueil .sous-titre { font-size:clamp(12px,1.16vw,15px); line-height:1.42; }
.page-accueil .rubrique { flex:1 1 0; display:flex; flex-direction:column; min-height:0; margin:0; }
.page-accueil .titre-section { font-size:clamp(17px,1.6vw,22px); margin:0 0 8px; flex:0 0 auto; }
.page-accueil .video-cadre {
  flex:1 1 0;
  min-height:0;
  height:100%;
  width:auto;
  max-width:100%;
  max-height:100%;
  align-self:center;
  aspect-ratio:16 / 9;
  border-radius:9px;
}
.page-accueil .lien-prestations { flex:0 0 auto; padding:clamp(8px,1.3dvh,14px) 0 clamp(9px,1.7dvh,20px); }
.page-accueil .bouton-lien { min-height:36px; padding:8px 17px; font-size:clamp(12px,1vw,14px); border-radius:7px; }
.page-accueil .bouton-lien .fleche-inline { font-size:17px; }

/* PRESTATIONS : la diapositive est dimensionnée par la
   hauteur libre, et non par une hauteur fixe excessive. */
.prestations-main { display:flex; flex-direction:column; align-items:stretch; }
.page-prestations .intro-prestations { flex:0 0 auto; padding:clamp(9px,1.8dvh,19px) 4px clamp(8px,1.4dvh,16px); }
.page-prestations .intro-prestations h1 { font-size:clamp(26px,3vw,44px); margin-bottom:8px; line-height:1.08; }
.page-prestations .sous-titre { font-size:clamp(12px,1.1vw,14px); line-height:1.4; }
.page-prestations .rubrique-carrousel { flex:1 1 0; min-height:0; margin:0 0 clamp(9px,1.4dvh,16px); }
.page-prestations .carrousel { height:100%; min-height:0; gap:8px; }
.page-prestations .carrousel-ligne {
  flex:1 1 0;
  min-height:0;
  width:100%;
  grid-template-columns:44px minmax(0,500px) 44px;
  gap:12px;
}
.page-prestations .image-cadre {
  height:100%;
  width:auto;
  max-width:100%;
  max-height:100%;
  justify-self:center;
  aspect-ratio:1122 / 1402;
  border-radius:9px;
}
.page-prestations .fleche { width:40px; height:40px; font-size:25px; }
.page-prestations .pagination { flex:0 0 auto; gap:9px; }
.page-prestations .point { width:8px; height:8px; }
.page-prestations .point[aria-current="true"] { width:20px; }
.page-prestations .compteur { flex:0 0 auto; font-size:11px; }

@media (max-width:640px) {
  .conteneur { width:min(calc(100% - 24px),var(--largeur)); }
  .entete { min-height:58px; gap:8px; }
  .marque img { width:95px; }
  .nav-principale { flex-wrap:nowrap; gap:13px; }
  .nav-principale a { font-size:12px; }
  .nav-principale .contact-haut { display:none; }
  .page-accueil .intro { padding:12px 2px 14px; }
  .page-accueil h1 { font-size:clamp(25px,6vw,32px); margin-bottom:7px; }
  .page-accueil .sous-titre { font-size:12px; line-height:1.35; }
  .page-accueil .titre-section { font-size:16px; margin-bottom:7px; }
  .page-accueil .video-cadre { flex:0 1 auto; width:100%; height:auto; aspect-ratio:16/9; }
  .page-accueil .rubrique { justify-content:center; }
  .page-accueil .lien-prestations { padding:10px 0 15px; }
  .page-prestations .intro-prestations { padding:12px 2px 9px; }
  .page-prestations .intro-prestations h1 { font-size:clamp(26px,6vw,32px); }
  .page-prestations .rubrique-carrousel { margin-bottom:8px; }
  .page-prestations .carrousel { justify-content:center; }
  .page-prestations .carrousel-ligne { position:relative; display:grid; grid-template-columns:minmax(0,1fr); gap:0; flex:0 1 auto; height:min(100%,calc((100vw - 24px)*1.24955)); }
  .page-prestations .image-cadre { height:100%; max-width:100%; width:auto; margin-inline:auto; }
  .page-prestations .fleche { position:absolute; top:50%; z-index:2; width:33px; height:40px; border-radius:7px; font-size:24px; translate:0 -50%; background:rgba(9,15,22,.9); }
  .page-prestations #precedent { left:0; }
  .page-prestations #suivant { right:0; }
  .contact-contenu { padding-block:12px; flex-direction:row; align-items:center; justify-content:space-between; gap:8px; }
  .contact-copy { flex:1 1 auto; gap:4px; }
  .contact-copy strong { font-size:16px; }
  .contact-copy span { display:none; }
  .contact-cta { flex:0 0 auto; font-size:11px; padding:10px 8px; border-radius:7px; }
  .pied-legal { gap:6px; padding-block:8px; font-size:9px; }
  .pied-legal a { display:none; }
}
@media (max-height:670px) and (min-width:641px) {
  .entete { min-height:53px; }
  .page-accueil .intro { padding-block:8px 10px; }
  .page-accueil h1 { font-size:clamp(26px,2.5vw,40px); }
  .page-accueil .sous-titre { font-size:12px; }
  .contact-contenu { padding-block:10px; }
  .contact-copy span { font-size:11px; }
  .contact-cta { padding:9px 14px; }
  .pied-legal { padding-block:6px; }
}
@media (max-height:600px) and (max-width:640px) {
  .entete { min-height:48px; }
  .page-accueil .intro { padding-block:7px 8px; }
  .page-accueil h1 { font-size:24px; }
  .page-accueil .sous-titre { font-size:11px; }
  .page-accueil .lien-prestations { padding:6px 0; }
  .contact-contenu { padding-block:7px; }
  .pied-legal { padding-block:5px; }
}


/* =========================================================
   V5 : page Prestations agrandie pour rendre les exemples
   plus lisibles à l’écran, sans revenir au défilement.
   ========================================================= */
.page-prestations .conteneur { width:min(calc(100% - 28px), 1320px); }
.page-prestations .entete { min-height:54px; gap:14px; }
.page-prestations .marque img { width:clamp(100px, 8.5vw, 132px); }
.page-prestations .nav-principale { gap:18px; }
.page-prestations .nav-principale a { font-size:12px; }
.page-prestations .nav-principale .contact-haut { font-size:11px; }
.page-prestations .intro-prestations { padding:6px 2px 6px; }
.page-prestations .intro-prestations h1 { font-size:clamp(22px, 2.4vw, 34px); margin-bottom:4px; }
.page-prestations .intro-prestations .sous-titre { font-size:11px; line-height:1.2; max-width:900px; }
.page-prestations .rubrique-carrousel { display:flex; align-items:center; justify-content:center; margin-bottom:6px; }
.page-prestations .carrousel { gap:6px; }
.page-prestations .carrousel-ligne {
  flex:1 1 auto;
  min-height:0;
  width:100%;
  grid-template-columns:44px auto 44px;
  gap:14px;
  justify-content:center;
}
.page-prestations .image-cadre {
  width:min(78vw, 640px, calc((100dvh - 165px) / 1.24955));
  height:auto;
  max-width:100%;
  max-height:none;
  aspect-ratio:1122 / 1402;
}
.page-prestations .image-cadre img { object-fit:contain; }
.page-prestations .fleche { width:40px; height:40px; font-size:24px; }
.page-prestations .pagination { gap:8px; }
.page-prestations .point { width:8px; height:8px; }
.page-prestations .point[aria-current="true"] { width:20px; }
.page-prestations .compteur { font-size:11px; }
.page-prestations .contact-contenu { padding-block:10px; gap:12px; }
.page-prestations .contact-copy { gap:3px; }
.page-prestations .contact-copy strong { font-size:16px; }
.page-prestations .contact-copy span { font-size:11px; line-height:1.2; }
.page-prestations .contact-cta { padding:9px 13px; font-size:12px; }
.page-prestations .pied-legal { justify-content:center; padding-block:5px 7px; font-size:10px; }
.page-prestations .pied-legal span { display:none; }

@media (max-width: 640px) {
  .page-prestations .conteneur { width:min(calc(100% - 18px), 1320px); }
  .page-prestations .entete { min-height:50px; }
  .page-prestations .marque img { width:88px; }
  .page-prestations .nav-principale { gap:10px; }
  .page-prestations .nav-principale a { font-size:11px; }
  .page-prestations .intro-prestations { padding:6px 0 6px; }
  .page-prestations .intro-prestations h1 { font-size:22px; }
  .page-prestations .intro-prestations .sous-titre { font-size:10px; }
  .page-prestations .carrousel { gap:5px; }
  .page-prestations .carrousel-ligne {
    height:auto;
    min-height:0;
  }
  .page-prestations .image-cadre {
    width:min(90vw, calc((100dvh - 150px) / 1.24955));
    max-width:100%;
  }
  .page-prestations .fleche { width:30px; height:36px; font-size:20px; }
  .page-prestations .contact-contenu { padding-block:8px; gap:6px; }
  .page-prestations .contact-copy strong { font-size:14px; }
  .page-prestations .contact-copy span { display:none; }
  .page-prestations .contact-cta { font-size:10px; padding:8px 6px; }
  .page-prestations .pied-legal { padding-block:4px 5px; }
}




/* ============================================================
   V7 — slides 3 et 4 reconstruits avec les 7 encarts extraits
   des pages 3–4 du PDF original. Aucun logo/titre répété.
   ============================================================ */
.page-prestations .conteneur { width:min(calc(100% - 32px), 1460px); }
.page-prestations .entete { min-height:clamp(48px,7.1dvh,68px); }
.page-prestations .intro-prestations { padding:5px 3px 7px; }
.page-prestations .intro-prestations h1 { font-size:clamp(22px, 2.6vw, 36px); margin-bottom:2px; }
.page-prestations .intro-prestations .sous-titre { font-size:clamp(10px,.8vw,12px); }
.page-prestations .rubrique-carrousel { margin:0 0 5px; overflow:hidden; }
.page-prestations .carrousel { gap:5px; }
.page-prestations .carrousel-ligne {
  width:100%; height:100%; flex:1 1 0; min-height:0; overflow:hidden;
  grid-template-columns:44px minmax(0,1fr) 44px;
  gap:clamp(8px,1.2vw,20px); align-items:center;
}
.page-prestations .image-cadre {
  width:auto;
  height:100%;
  max-height:100%;
  aspect-ratio:1122 / 1402;
  overflow:hidden; border-radius:9px;
}
.page-prestations .image-cadre.focus-slide-3,
.page-prestations .image-cadre.focus-slide-4 {
  width:100%; height:100%; max-width:100%; max-height:100%;
  aspect-ratio:auto; overflow:visible; border:0; background:transparent;
  box-shadow:none;
}
.page-prestations .image-cadre:has(.slide-panels:not([hidden])) { outline:none; }
.page-prestations #image-slide[hidden],
.page-prestations .slide-panels[hidden] { display:none !important; }
.page-prestations .slide-panels { width:100%; height:100%; display:grid; gap:clamp(10px,1.25vw,20px); }
.page-prestations .slide-panels-3 {
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-rows:minmax(0,1fr);
  justify-items:center; align-items:center;
}
.page-prestations .slide-panels-4 {
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:repeat(2,minmax(0,1fr));
  justify-items:center; align-items:center;
}
.page-prestations .panel-detail {
  display:flex; align-items:center; justify-content:center;
  width:auto; height:100%; max-width:100%; min-width:0; min-height:0;
  border:1px solid rgba(61,189,238,.54); border-radius:10px;
  padding:0; background:#0c1825; overflow:hidden;
  cursor:zoom-in; box-shadow:0 10px 34px rgba(0,0,0,.26);
  transition:border-color .18s, box-shadow .18s;
}
.page-prestations .panel-detail:hover {
  border-color:var(--bleu); box-shadow:0 0 22px rgba(61,189,238,.22);
}
.page-prestations .panel-detail img {
  display:block; width:100%; height:100%; max-width:100%; max-height:100%;
  object-fit:contain;
}
.page-prestations .slide-panels-3 .panel-detail { aspect-ratio:352 / 525; }
.page-prestations .slide-panels-4 .panel-detail { aspect-ratio:1.48; }
.page-prestations .slide-panels-4 .panel-detail img { object-fit:contain; }
.page-prestations .pagination { gap:8px; }
.page-prestations .compteur { font-size:11px; }
.page-prestations .contact-contenu { padding-block:clamp(8px,1.2dvh,15px); }
.page-prestations .contact-copy strong { font-size:clamp(16px,1.5vw,19px); }
.page-prestations .contact-copy span { font-size:11px; }
.page-prestations .contact-cta { padding:10px 14px; font-size:12px; }
.page-prestations .pied-legal { padding-block:5px 7px; }

#zoom-dialog {
  box-sizing:border-box; padding:12px; width:min(96vw, 1150px);
  max-height:96dvh; border:1px solid rgba(61,189,238,.6);
  border-radius:12px; background:#0b1420; color:white;
  box-shadow:0 30px 90px rgba(0,0,0,.85);
}
#zoom-dialog::backdrop { background:rgba(1,5,10,.88); }
#zoom-dialog .zoom-top { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:3px 4px 10px; font-size:17px; }
#zoom-dialog .zoom-fermer { color:white; background:rgba(61,189,238,.12); border:1px solid rgba(61,189,238,.5); border-radius:8px; font-size:20px; padding:5px 11px; cursor:pointer; }
#zoom-dialog img { display:block; max-width:100%; max-height:calc(96dvh - 85px); width:auto; height:auto; margin-inline:auto; object-fit:contain; }

@media (max-width: 640px) {
  .page-prestations .conteneur { width:min(calc(100% - 16px), 1460px); }
  .page-prestations .entete { min-height:48px; }
  .page-prestations .intro-prestations { padding:7px 2px 5px; }
  .page-prestations .intro-prestations h1 { font-size:22px; }
  .page-prestations .intro-prestations .sous-titre { font-size:10px; }
  .page-prestations .carrousel-ligne { grid-template-columns:minmax(0,1fr); }
  .page-prestations .slide-panels { gap:5px; }
  .page-prestations .slide-panels-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .page-prestations .slide-panels-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .page-prestations .panel-detail { border-radius:5px; }
  .page-prestations .slide-panels-3 .panel-detail { height:auto; width:100%; max-height:100%; }
  .page-prestations .slide-panels-4 .panel-detail { width:100%; max-height:100%; }
  .page-prestations .contact-contenu { padding-block:8px; }
  .page-prestations .contact-copy span { display:none; }
  .page-prestations .contact-copy strong { font-size:14px; }
  .page-prestations .contact-cta { padding:8px; font-size:10px; }
  .page-prestations .pied-legal { padding-block:4px; }
  #zoom-dialog { padding:8px; }
}

/* Dimensionnement explicite : les mosaïques restent DANS la hauteur
   disponible, avec pagination et bandeau contact toujours visibles. */
.page-prestations .slide-panels-3 .panel-detail {
  height:min(100%, calc(100dvh - 249px));
  width:auto;
  max-height:100%;
  aspect-ratio:352 / 525;
}
.page-prestations .slide-panels-4 .panel-detail {
  height:min(100%, calc((100dvh - 273px) / 2));
  width:auto;
  max-height:100%;
  aspect-ratio:1.48;
}
@media (max-width: 640px) {
  .page-prestations .slide-panels-3 .panel-detail,
  .page-prestations .slide-panels-4 .panel-detail {
    width:100%;
    height:auto;
    max-height:100%;
  }
}

/* Sur téléphone, regrouper les 4 vues en une vraie mosaïque compacte. */
@media (max-width: 640px) {
  .page-prestations .slide-panels-4 {
    grid-template-rows:repeat(2, auto);
    align-content:center;
    row-gap:12px;
  }
}
#zoom-dialog img {
  width:min(100%,1000px);
  height:auto;
  max-height:calc(96dvh - 85px);
  object-fit:contain;
}
