:root{
  --teal:#0c5b5b; --teal-d:#063f3f; --sage:#9fbcae; --sage-l:#e7efe9;
  --coral:#e3a07a; --cream:#f6f1e7; --ink:#1d2b2b; --muted:#5d6f6f;
}
.reveal{ font-family: "Calibri","Segoe UI",Arial,sans-serif; color:var(--ink); }
.reveal .slides{ text-align:left; }
.reveal .slides section{
  background:#fff; padding:48px 56px 40px; box-sizing:border-box; height:720px; overflow:hidden;
}
.reveal h1{ color:var(--teal); font-size:46px; line-height:1.1; font-weight:700; }
.reveal h2{ color:var(--teal); font-size:30px; margin:0 0 18px; font-weight:700; }
.reveal h3{ color:var(--teal); }
.reveal p,.reveal li{ font-size:18px; line-height:1.4; }
.reveal .lead{ font-size:20px; color:var(--muted); }

/* footer commun */
.pb-foot{ position:absolute; left:0; right:0; bottom:0; height:34px; display:flex;
  justify-content:space-between; align-items:center; padding:0 56px;
  background:var(--teal); color:#fff; font-size:11px; }
.pb-foot .pg{ font-weight:700; }

/* cover / cloture pleine image */
.g-cover .slides section,.cover{ padding:0; }
.cover{ position:relative; height:720px; }
.cover .bleed{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cover-txt{ position:absolute; left:8%; top:55%; max-width:55%;
  background:rgba(255,255,255,.86); padding:26px 30px; border-radius:10px; }
.g-cloture{ background:var(--teal); color:#fff; }
.g-cloture h1,.g-cloture p{ color:#fff; } .cloture{ padding-top:120px; }

/* sommaire */
ol.sommaire{ columns:2; gap:48px; } ol.sommaire li{ margin:8px 0; }

/* grilles media génériques */
.media-grid{ display:grid; gap:12px; align-items:center; }
.media-grid.m1{ grid-template-columns:1fr; }
.media-grid.m2{ grid-template-columns:repeat(2,1fr); }
.media-grid.m3,.media-grid.m4,.media-grid.m5,.media-grid.m6{ grid-template-columns:repeat(3,1fr); }
.media-grid img{ width:100%; height:100%; object-fit:contain; max-height:300px; border-radius:8px; }
.content{ display:grid; grid-template-columns:1.3fr 1fr; gap:28px; }
.content .txt{ list-style:none; padding:0; }
.content .txt li{ padding:6px 0 6px 18px; position:relative; }
.content .txt li:before{ content:"›"; position:absolute; left:0; color:var(--coral); font-weight:700; }
.video-wrap{ margin-bottom:14px; } .video-wrap .feat{ width:100%; max-height:360px; border-radius:10px; }

/* gamme */
.prod-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.prod-grid .cell img{ width:100%; max-height:240px; object-fit:contain; }
.specs{ list-style:none; padding:0; columns:2; margin-top:14px; }
.specs li{ padding:4px 0 4px 16px; position:relative; font-size:15px; }
.specs li:before{ content:"•"; position:absolute; left:0; color:var(--teal); }

/* avant / après (perso réalisations) */
.aa-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.aa-grid figure{ margin:0; } .aa-grid img.aa{ width:100%; height:200px; object-fit:cover; border-radius:8px; }

/* swatch */
.g-swatch .media-grid{ grid-template-columns:repeat(5,1fr); }
.g-swatch .media-grid img{ max-height:120px; }

/* ===== Brique 2 : rendu GÉOMÉTRIE fidèle (positionnement absolu PPT) ===== */
.g-geo{ padding:0 !important; background:#fff; }
.geo-stage{ position:relative; width:1280px; height:720px; overflow:hidden;
  font-family:"Calibri","Segoe UI",Arial,sans-serif; }
.geo{ position:absolute; box-sizing:border-box; }
/* texte : centré verticalement dans la boîte comme dans PowerPoint */
.geo-text{ display:flex; flex-direction:column; justify-content:center; }
.geo-text p{ margin:0; font-size:18px; line-height:1.15; color:var(--ink); }
.geo-img img{ width:100%; height:100%; object-fit:contain; display:block; }
.geo-line{ position:absolute; }
/* hotspots : cliquables, feedback discret au survol */
.geo-hot{ text-decoration:none; cursor:pointer; border-radius:4px;
  transition:background .12s, box-shadow .12s; }
.geo-hot:hover{ background:rgba(12,91,91,.12) !important;
  box-shadow:0 0 0 2px rgba(12,91,91,.45); }
a.geo-img.geo-hot:hover, a.geo-img:hover{ box-shadow:0 0 0 2px rgba(12,91,91,.45); }

/* menu chapitres */
#pb-menu-btn{ position:fixed; top:14px; left:14px; z-index:60; background:var(--teal);
  color:#fff; border:0; border-radius:6px; padding:8px 14px; font-size:14px; cursor:pointer; }
#pb-menu{ position:fixed; inset:0 auto 0 0; z-index:59; width:360px; max-width:85vw;
  background:var(--cream); box-shadow:2px 0 18px rgba(0,0,0,.25); padding:64px 24px 24px; overflow:auto; }
#pb-menu h3{ margin:0 0 12px; } #pb-menu ul{ list-style:none; padding:0; margin:0; }
#pb-menu a{ display:block; padding:9px 10px; color:var(--ink); text-decoration:none; border-radius:6px; }
#pb-menu a:hover{ background:var(--sage-l); color:var(--teal); }

/* responsive : sur mobile, reveal scale déjà ; on assouplit les grilles denses */
@media (max-width:820px){
  .content{ grid-template-columns:1fr; } .specs{ columns:1; }
  .prod-grid,.aa-grid{ grid-template-columns:repeat(2,1fr); }
  .g-swatch .media-grid{ grid-template-columns:repeat(3,1fr); }
}
