/* ==========================================================================
   PGS Services — système de design « Éditorial » (maquette C)
   Une seule couche par composant. Tokens → base → composants → pages.
   Règles : minmax(0,1fr) pour les grilles, cibles 44 px, focus visible,
   aucun texte en dur dans les images, mesure de lecture ≤ 60ch.
   ========================================================================== */

/* ---------- 1. Tokens ---------- */
:root{
  /* Palette : bleu canard (dominante), cyan du logo, gris froids, pistache (accents) */
  --blue-950:#052f39; --blue-900:#07424f; --blue-800:#0a5666; --blue-700:#0e6e80; --blue-500:#387080; --blue-100:#d6e7eb; --blue-50:#eef3f4;
  --petrole:#0e6e80; --petrole-dark:#0a5666; --petrole-deep:#07424f; --night:#052f39;
  --turquoise:#3cc3d0; --turquoise-deep:#0e8fa0;
  --lime:#a9d36e; --lime-deep:#7ea33f;
  --ink:#10242a; --ink-soft:#55666e; --line:#d5dee1; --tint:#eef3f4; --paper:#ffffff;
  --gray-100:#eef3f4; --gray-300:#cfd8dc; --gray-500:#8a9aa1; --gray-700:#3d4e55;
  --on-dark:#eaf6f8; --on-dark-soft:#c3d6db;
  --display:'Space Grotesk',system-ui,sans-serif; --text:'Manrope',system-ui,sans-serif;
  --wrap:1240px; --pad:clamp(18px,4vw,44px);
  --sec:clamp(72px,9vw,128px);
  --r:4px;
}

/* ---------- 2. Base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
*{ margin:0; padding:0; }
html{ scroll-behavior:smooth; scroll-padding-top:100px; }
body{ font-family:var(--text); color:var(--ink); background:var(--paper); line-height:1.65;
  font-size:17px; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; }
ul,ol{ list-style:none; }
button,input,select,textarea{ font:inherit; color:inherit; }
h1,h2,h3{ font-family:var(--display); font-weight:700; text-transform:uppercase; line-height:1.06;
  letter-spacing:-.015em; text-wrap:balance; }
.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 var(--pad); }
.skip-link{ position:absolute; left:8px; top:-64px; z-index:1000; background:var(--lime); color:var(--petrole-deep);
  padding:12px 18px; font-weight:800; text-decoration:none; }
.skip-link:focus{ top:8px; }

/* focus visible : double anneau lisible sur clair et sur sombre */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:3px solid var(--night); outline-offset:2px; box-shadow:0 0 0 6px #fff; }
.on-dark a:focus-visible,.on-dark button:focus-visible,.on-dark input:focus-visible,.on-dark select:focus-visible,.on-dark textarea:focus-visible,
.site-header a:focus-visible,.site-header button:focus-visible,.site-footer a:focus-visible,.hero a:focus-visible,.page-hero a:focus-visible{
  outline-color:var(--lime); box-shadow:0 0 0 6px var(--night); }

/* ---------- 3. Étiquettes et textes ---------- */
.lab{ display:flex; align-items:center; gap:16px; margin-bottom:26px;
  font:700 12.5px var(--display); letter-spacing:.2em; text-transform:uppercase; color:var(--petrole); }
.lab::after{ content:''; width:56px; height:2px; background:currentColor; }
.on-dark .lab{ color:var(--lime); }
.lead{ font-size:clamp(17px,1.5vw,20px); max-width:58ch; }
.prose p{ max-width:60ch; margin-bottom:18px; color:var(--ink-soft); }
.prose p:first-of-type{ color:var(--ink); font-size:18.5px; }

/* ---------- 4. Boutons ---------- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:48px; padding:0 28px;
  border:2px solid transparent; border-radius:var(--r); font:700 13px var(--display); letter-spacing:.14em;
  text-transform:uppercase; text-decoration:none; cursor:pointer; transition:background .18s,color .18s,border-color .18s,transform .18s; }
.btn:active{ transform:translateY(1px); }
.btn-lime{ background:var(--lime); color:var(--petrole-deep); } .btn-lime:hover{ background:#fff; }
.btn-dark{ background:var(--night); color:var(--lime); } .btn-dark:hover{ background:var(--petrole-deep); }
.btn-ghost{ border-color:#fff; color:#fff; } .btn-ghost:hover{ background:#fff; color:var(--night); }
.btn-line{ border-color:var(--petrole-deep); color:var(--petrole-deep); } .btn-line:hover{ background:var(--petrole-deep); color:#fff; }
.link-arrow{ display:inline-flex; align-items:center; gap:10px; min-height:44px; font:700 13px var(--display);
  letter-spacing:.14em; text-transform:uppercase; text-decoration:none; color:var(--petrole-deep);
  border-bottom:2px solid var(--lime-deep); }
.link-arrow:hover{ color:var(--petrole); }
.on-dark .link-arrow{ color:#fff; border-bottom-color:var(--lime); }

/* ---------- 5. En-tête ---------- */
.site-header{ position:fixed; top:0; left:0; right:0; z-index:40; background:rgba(5,47,57,.72);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border-bottom:1px solid rgba(255,255,255,.12);
  transition:background .25s; }
.site-header.scrolled{ background:var(--night); }
.header-inner{ max-width:var(--wrap); margin:0 auto; padding:0 var(--pad); min-height:84px;
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:24px; }
.logo{ display:flex; align-items:center; gap:12px; text-decoration:none; color:#fff; justify-self:start; white-space:nowrap; }
.logo img{ height:62px; width:auto; }
.logo-text{ font:700 24px var(--display); letter-spacing:.06em; line-height:1.1; }
.logo-text span{ display:block; font-size:10px; letter-spacing:.2em; color:var(--on-dark-soft); font-weight:600; }
.nav{ display:flex; align-items:center; gap:28px; justify-self:center; }
.nav>a,.sub-toggle{ display:inline-flex; align-items:center; min-height:44px; padding:0; border:0; background:none;
  color:#fff; text-decoration:none; font:700 12.5px var(--display); letter-spacing:.14em; text-transform:uppercase;
  border-bottom:2px solid transparent; cursor:pointer; white-space:nowrap; }
.nav>a:hover,.sub-toggle:hover{ border-bottom-color:var(--lime); }
.nav>a[aria-current="page"],.sub-toggle.current{ color:var(--lime); border-bottom-color:var(--lime); }
.sub-toggle::after{ content:''; width:7px; height:7px; margin-left:9px; border-right:2px solid currentColor;
  border-bottom:2px solid currentColor; transform:translateY(-2px) rotate(45deg); }
.has-sub{ position:relative; }
.sub{ position:absolute; left:-18px; top:100%; min-width:340px; background:var(--night); border-top:3px solid var(--lime);
  padding:10px; display:none; box-shadow:0 24px 60px rgba(0,0,0,.4); }
.has-sub:hover .sub,.has-sub:focus-within .sub,.has-sub.open .sub{ display:block; }
.sub a{ display:block; padding:14px 16px; min-height:44px; text-decoration:none; color:#fff; }
.sub a:hover{ background:rgba(255,255,255,.07); }
.sub a[aria-current="page"] b{ color:var(--lime); }
.sub b{ display:block; font:700 14px var(--display); letter-spacing:.06em; text-transform:uppercase; }
.sub span{ font-size:13.5px; color:var(--on-dark-soft); }
.header-cta{ display:flex; align-items:center; gap:12px; justify-self:end; }
.header-cta .btn{ min-height:44px; padding:0 22px; font-size:12.5px; }
.burger{ display:none; width:44px; height:44px; border:1px solid rgba(255,255,255,.4); background:none; border-radius:var(--r);
  flex-direction:column; align-items:center; justify-content:center; gap:5px; cursor:pointer; }
.burger span{ display:block; width:20px; height:2px; background:#fff; transition:.2s; }
.burger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.burger.open span:nth-child(2){ opacity:0; }
.burger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ---------- 6. Héros ---------- */
.hero,.page-hero{ position:relative; display:flex; align-items:flex-end; background:var(--night); color:#fff; overflow:hidden; }
.hero{ min-height:min(100svh,880px); }
.page-hero{ min-height:clamp(440px,64vh,620px); }
.hero-media{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-veil{ position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(0deg,rgba(5,47,57,.96) 0%,rgba(5,47,57,.45) 48%,rgba(5,47,57,.6) 100%),
             linear-gradient(90deg,rgba(5,47,57,.7) 0%,rgba(5,47,57,0) 70%); }
.hero .wrap,.page-hero .wrap{ position:relative; width:100%; padding-top:120px; padding-bottom:clamp(44px,8vh,88px); }
.hero h1{ font-size:clamp(40px,7vw,104px); max-width:12ch; color:#fff; }
.page-hero h1{ font-size:clamp(34px,5.6vw,80px); max-width:16ch; color:#fff; }
.hero h1 em{ font-style:normal; color:var(--lime); white-space:nowrap; }
.hero .row{ display:flex; justify-content:space-between; align-items:flex-end; gap:32px; flex-wrap:wrap; margin-top:28px; }
.hero .lead{ color:var(--on-dark); }
.page-hero .lead{ color:var(--on-dark); margin-top:20px; }
.page-hero .btn{ margin-top:30px; }
.hero-actions{ display:flex; gap:12px; flex-wrap:wrap; }

/* ---------- 7. Sections ---------- */
.sec{ padding:var(--sec) 0; }
.sec h2{ font-size:clamp(30px,4.4vw,62px); max-width:17ch; }
.sec.dark{ background:linear-gradient(160deg,var(--blue-800) 0%,var(--blue-900) 60%,var(--blue-950) 100%); color:var(--on-dark); }
.sec.dark h2,.sec.dark h3{ color:#fff; }
.sec.tint{ background:var(--gray-100); }
.sec:not(.dark) h2,.sec:not(.dark) h3{ color:var(--petrole-deep); }
.sec-head{ margin-bottom:clamp(32px,5vw,56px); }
.sec-head p{ max-width:58ch; margin-top:20px; color:var(--ink-soft); font-size:18px; }
.dark .sec-head p{ color:var(--on-dark-soft); }

/* bloc texte + média */
.split{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(36px,6vw,88px); align-items:start; }
.split+.split{ margin-top:clamp(64px,8vw,112px); }
.split.reverse .split-media{ order:-1; }
.split-body h2{ font-size:clamp(28px,3.4vw,46px); margin-bottom:22px; }
.split-media img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.split.no-media{ grid-template-columns:minmax(0,5fr) minmax(0,7fr); }
.split.no-media .split-head{ position:sticky; top:110px; }
.split.no-media .split-head h2{ margin-bottom:0; }

/* liste libellé + détail */
.checklist{ margin-top:28px; border-bottom:1px solid var(--line); }
.checklist li{ position:relative; padding:16px 0 16px 28px; border-top:1px solid var(--line);
  font-weight:700; color:var(--petrole-deep); line-height:1.4; font-size:17px; }
.checklist li::before{ content:''; position:absolute; left:2px; top:24px; width:9px; height:9px; background:var(--lime-deep); }
.checklist .detail{ display:block; margin-top:4px; font-weight:400; color:var(--ink-soft); font-size:15.5px; line-height:1.6; }
.dark .checklist,.dark .checklist li{ border-color:rgba(255,255,255,.18); }
.dark .checklist li{ color:#fff; } .dark .checklist .detail{ color:var(--on-dark-soft); }

/* mosaïque d'images */
.mosaic{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.mosaic.two{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.mosaic img{ width:100%; aspect-ratio:16/10; object-fit:cover; }
.mosaic .wide{ grid-column:1/-1; aspect-ratio:21/8; }

/* frise numérotée (méthode) */
.time{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:2px solid var(--petrole-deep); }
.dark .time{ border-top-color:var(--turquoise); }
.time>li{ padding:28px 28px 8px 0; }
.time b{ display:block; font:700 clamp(44px,5vw,76px) var(--display); color:var(--turquoise-deep); opacity:.55; line-height:1; }
.dark .time b{ color:var(--turquoise); opacity:.75; }
.time h3{ font-size:21px; margin:14px 0 8px; }
.time p{ color:var(--ink-soft); font-size:16px; max-width:30ch; }
.dark .time p{ color:var(--on-dark-soft); }

/* cartes (piliers, configurations) */
.tiles{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; border-top:2px solid var(--petrole-deep); }
.tiles.four{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.tiles>li{ padding:28px 28px 12px 0; }
.tiles h3{ font-size:20px; margin-bottom:10px; }
.tiles p{ color:var(--ink-soft); font-size:16px; }
.dark .tiles{ border-top-color:var(--turquoise); } .dark .tiles p{ color:var(--on-dark-soft); }

/* ---------- 8. Domaines (accueil) ---------- */
.dom{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr); gap:clamp(28px,5vw,72px); align-items:stretch; }
.dom-tabs{ border-top:1px solid rgba(255,255,255,.2); }
.dom-tabs button{ width:100%; display:flex; align-items:baseline; gap:18px; padding:22px 4px; min-height:44px; text-align:left;
  border:0; border-bottom:1px solid rgba(255,255,255,.2); background:none; color:#fff; cursor:pointer;
  font:700 clamp(22px,2.6vw,34px) var(--display); text-transform:uppercase; }
.dom-tabs small{ font:700 13px var(--display); letter-spacing:.14em; color:var(--on-dark-soft); }
.dom-tabs button:hover,.dom-tabs button[aria-selected="true"]{ color:var(--lime); }
.dom-panes{ position:relative; min-height:440px; background:var(--blue-800); }
.dom-pane{ position:absolute; inset:0; display:none; }
.dom-pane.on{ display:block; }
.dom-pane img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.dom-cap{ position:absolute; left:0; right:0; bottom:0; padding:clamp(20px,3vw,36px); background:linear-gradient(0deg,rgba(5,47,57,.94),rgba(5,47,57,0)); }
.dom-cap p{ max-width:46ch; margin-bottom:16px; color:var(--on-dark); }
.no-js .dom-pane{ position:relative; display:block; min-height:320px; margin-bottom:16px; }
.no-js .dom-tabs{ display:none; }
.no-js .dom-panes{ background:none; min-height:0; }

/* ---------- 9. Formulaires ---------- */
.form{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.field{ display:flex; flex-direction:column; gap:7px; }
.field.wide,.form .btn,.form-note,.form-status{ grid-column:1/-1; }
.field label{ font:700 12px var(--display); letter-spacing:.12em; text-transform:uppercase; color:var(--petrole-deep); }
.req{ color:#b3261e; }
.field input,.field select,.field textarea{ width:100%; min-height:50px; padding:12px 14px; background:#fff; color:var(--ink);
  border:2px solid #b9c9cf; border-radius:var(--r); }
.field textarea{ min-height:130px; resize:vertical; }
.field input[aria-invalid="true"],.field select[aria-invalid="true"]{ border-color:#b3261e; }
.field .err{ color:#b3261e; font-size:14px; font-weight:600; min-height:0; }
.form .btn{ justify-self:start; }
.form .btn[disabled]{ opacity:.6; cursor:wait; }
.form-note{ font-size:14px; color:var(--ink-soft); }
.form-status{ padding:0; font-weight:600; }
.form-status.ok,.form-status.ko{ padding:14px 16px; border-left:5px solid; }
.form-status.ok{ background:#edf6e0; border-color:var(--lime-deep); color:var(--petrole-deep); }
.form-status.ko{ background:#fdeceb; border-color:#b3261e; color:#7a1610; }
.form-status a{ font-weight:800; }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.sec.contact-band{ position:relative; overflow:hidden; color:var(--on-dark); border-top:4px solid var(--lime);
  background:linear-gradient(135deg,var(--blue-800) 0%,var(--blue-900) 100%); }
.contact-band>.wrap{ position:relative; z-index:1; }
.sec.contact-band h2{ color:#fff; }
.sec.contact-band .lab{ color:var(--lime); }
.contact-grid{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(32px,6vw,88px); align-items:start; }
.contact-grid .lead{ margin-top:20px; }
.coords{ margin-top:30px; display:grid; gap:4px; }
.coords a,.coords span{ display:inline-flex; align-items:center; min-height:44px; font-weight:700; }
.coords .tel{ font:700 clamp(26px,3vw,40px) var(--display); text-decoration:none; }
.coords a:hover{ text-decoration:underline; }
.contact-band .form-note{ color:var(--on-dark-soft); }
.contact-band .field label{ color:#fff; }
.contact-band .req,.contact-band .field .err{ color:#ffb4ab; }
.contact-band .btn-dark{ background:var(--lime); color:var(--blue-900); }
.contact-band .btn-dark:hover{ background:#fff; }

/* ---------- 10. Navigation entre pages ---------- */
.next-nav{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.next-nav a{ display:block; padding:30px 8px; text-decoration:none; min-height:44px; }
.next-nav a:hover{ background:var(--tint); }
.next-nav a:last-child:not(:first-child){ text-align:right; }
.next-nav small{ display:block; font:700 12px var(--display); letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); }
.next-nav b{ font:700 clamp(18px,2vw,26px) var(--display); text-transform:uppercase; color:var(--petrole-deep); }
.next-nav a:only-child{ grid-column:1/-1; }

/* ---------- 11. Pied de page ---------- */
.site-footer{ background:var(--blue-950); color:var(--on-dark-soft); border-top:3px solid var(--lime); padding:72px 0 0; font-size:15px; }
.footer-top{ display:grid; grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr)); gap:40px; }
.site-footer .logo{ margin-bottom:16px; min-height:44px; }
.footer-brand p{ max-width:36ch; line-height:1.7; }
.site-footer h4{ font:700 12px var(--display); letter-spacing:.2em; text-transform:uppercase; color:#fff; margin-bottom:10px; display:flex; gap:12px; align-items:center; }
.site-footer h4::before{ content:''; width:22px; height:2px; background:var(--lime); }
.site-footer li a{ display:inline-flex; align-items:center; min-height:44px; text-decoration:none; }
.site-footer li a:hover{ color:#fff; text-decoration:underline; }
.site-footer li{ line-height:1.4; }
.footer-bottom{ margin-top:48px; padding:20px 0 28px; border-top:1px solid rgba(235,254,255,.14); display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; font-size:13px; }
.to-top{ display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; background:var(--lime); color:var(--petrole-deep); text-decoration:none; font-weight:800; }

/* ---------- 12. Responsive ---------- */
@media (max-width:1150px){
  .header-inner{ grid-template-columns:auto 1fr; }
  .burger{ display:flex; }
  .nav{ display:none; position:absolute; left:0; right:0; top:100%; justify-self:stretch; flex-direction:column; align-items:stretch; gap:0;
    background:var(--night); padding:8px var(--pad) 22px; border-bottom:3px solid var(--lime); max-height:calc(100svh - 76px); overflow:auto; }
  .nav.open{ display:flex; }
  .nav>a,.sub-toggle{ padding:14px 0; border-bottom:1px solid rgba(255,255,255,.12); width:100%; font-size:13.5px; }
  .sub-toggle{ pointer-events:none; }
  .sub-toggle::after{ display:none; }
  .sub{ display:block; position:static; min-width:0; background:none; border:0; box-shadow:none; padding:0 0 6px 14px; }
  .sub span{ display:none; }
  .sub a{ padding:10px 0; }
}
@media (max-width:900px){
  .split,.split.no-media,.dom,.contact-grid{ grid-template-columns:minmax(0,1fr); }
  .split.no-media .split-head{ position:static; }
  .split.reverse .split-media{ order:0; }
  .time,.tiles,.tiles.four{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer-top{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer-brand{ grid-column:1/-1; }
  .form{ grid-template-columns:minmax(0,1fr); }
  .dom-tabs{ display:none; }
  .dom-panes{ background:none; min-height:0; }
  .dom-pane{ position:relative; display:block; min-height:300px; margin-bottom:14px; }
}
@media (max-width:600px){
  body{ font-size:16.5px; }
  .time,.tiles,.tiles.four,.mosaic,.mosaic.two{ grid-template-columns:minmax(0,1fr); }
  .mosaic .wide{ aspect-ratio:16/10; }
  .header-cta .btn{ padding:0 14px; font-size:11.5px; letter-spacing:.08em; }
  .logo-text span{ display:none; }
  .next-nav{ grid-template-columns:minmax(0,1fr); }
  .next-nav a:last-child:not(:first-child){ text-align:left; }
  .footer-top{ grid-template-columns:minmax(0,1fr); }
  .hero-actions .btn{ flex:1 1 auto; }
}
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } *{ transition:none !important; } }

/* compléments de composition */
.hero .lab,.page-hero .lab{ color:var(--lime); }
.tiles li .link-arrow{ margin-top:16px; }
.sec.contact-band .coords a{ color:#fff; }
.split.no-media .split-head h2{ font-size:clamp(26px,2.8vw,40px); }
.contact-grid h2{ font-size:clamp(28px,3.4vw,48px); max-width:14ch; }
@media (min-width:901px){ .split:not(.no-media) .split-media{ position:sticky; top:110px; } }
.tiles>li{ display:flex; flex-direction:column; align-items:flex-start; }
.tiles>li .link-arrow{ margin-top:auto; }
.tiles>li p{ margin-bottom:16px; }

/* ---------- Héros de l'accueil : diaporama ---------- */
.hero-slides{ position:absolute; inset:0; }
.hero-slides .slide{ position:absolute; inset:0; opacity:0; transition:opacity .9s ease; }
.hero-slides .slide.active{ opacity:1; }
.hero .wrap{ padding-bottom:clamp(112px,16vh,160px); }
.hero-bar{ position:absolute; left:0; right:0; bottom:0; z-index:3; background:linear-gradient(0deg,rgba(5,47,57,.88),rgba(5,47,57,0)); border-top:1px solid rgba(255,255,255,.18); }
.hero .wrap.hero-bar-in{ display:flex; justify-content:space-between; align-items:center; gap:16px; padding-top:10px; padding-bottom:12px; }
.hero-now{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; font:700 12.5px var(--display); letter-spacing:.14em; text-transform:uppercase; color:#fff; }
.hero-now b{ color:var(--lime); font-size:20px; letter-spacing:.04em; }
.hero-lab{ color:var(--on-dark-soft); }
.hero-more{ display:inline-flex; align-items:center; min-height:44px; color:#fff; text-decoration:none; border-bottom:2px solid var(--lime); }
.hero-more[hidden]{ display:none; }
.hero-ctrl{ display:flex; gap:8px; flex:none; }
.hero-btn{ min-width:44px; min-height:44px; padding:0 14px; border:1.5px solid rgba(255,255,255,.55); background:rgba(5,47,57,.5);
  color:#fff; font:700 12.5px var(--display); letter-spacing:.1em; text-transform:uppercase; cursor:pointer; border-radius:var(--r); }
.hero-btn:hover{ border-color:var(--lime); color:var(--lime); }
.hero-progress{ height:3px; background:rgba(255,255,255,.18); }
.hero-progress i{ display:block; height:100%; width:0; background:var(--lime); }
@media (max-width:600px){
  .hero-lab{ display:none; }
  .hero-now{ gap:6px; }
}
.cta-actions{ display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.cta-actions .coords{ margin-top:14px; }
.footer-brand .logo-text span{ display:none; }

/* ---------- FAQ (balises <details>, accessibles au clavier sans JavaScript) ---------- */
.faq{ border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:20px;
  padding:20px 0; min-height:44px; font:700 18px var(--display); color:var(--petrole-deep); text-transform:none; letter-spacing:0; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:'+'; flex:none; width:32px; height:32px; display:grid; place-items:center; font-size:22px; line-height:1;
  color:var(--petrole-deep); border:1.5px solid var(--petrole-deep); transition:transform .2s; }
.faq details[open] summary::after{ content:'−'; background:var(--lime); border-color:var(--lime); }
.faq details p{ max-width:62ch; padding:0 52px 22px 0; color:var(--ink-soft); }

/* ---------- Entête sans photo (pages légales, 404) ---------- */
.page-head{ background:linear-gradient(160deg,var(--blue-800),var(--blue-950)); color:#fff; padding:clamp(120px,16vh,160px) 0 clamp(40px,6vh,64px); }
.page-head h1{ font-size:clamp(32px,5vw,68px); color:#fff; max-width:18ch; }
.page-head .lab{ color:var(--lime); }
.page-head .lead{ color:var(--on-dark); margin-top:18px; }
.notfound{ padding-bottom:clamp(56px,9vh,96px); }

/* ---------- Texte légal ---------- */
.legal{ max-width:68ch; }
.legal h2{ font-size:clamp(20px,2vw,26px); margin:40px 0 12px; max-width:none; }
.legal h2:first-child{ margin-top:0; }
.legal p{ color:var(--ink-soft); margin-bottom:14px; }
.legal a{ color:var(--petrole-dark); text-underline-offset:3px; }
.legal-link{ display:inline-flex; align-items:center; min-height:44px; color:var(--on-dark-soft); text-decoration:underline; text-underline-offset:3px; }
.legal-link:hover{ color:#fff; }

/* ---------- Logo mis en valeur ---------- */
.site-footer .logo img{ height:auto; width:124px; }
.site-footer .logo-text{ font-size:22px; }
.brand-mark{ width:clamp(150px,17vw,230px); height:auto; margin-top:32px; }
/* filigrane discret dans les héros, l'entête sans photo et le bandeau de contact */
.page-hero::after,.page-head::after{ content:''; position:absolute; right:clamp(18px,5vw,84px); bottom:clamp(24px,6vh,64px);
  width:clamp(96px,13vw,200px); aspect-ratio:1294/1205; background:url(logo-pgs-clair.svg) center/contain no-repeat;
  opacity:.38; pointer-events:none; z-index:1; }
.page-head{ position:relative; overflow:hidden; }
.page-hero .wrap,.page-head .wrap{ z-index:2; }
.contact-band::after{ content:''; position:absolute; right:-3%; bottom:-14%; width:clamp(220px,26vw,420px); aspect-ratio:1294/1205;
  background:url(logo-pgs-clair.svg) center/contain no-repeat; opacity:.16; pointer-events:none; }
@media (max-width:600px){
  .logo img{ height:48px; }
  .logo-text{ font-size:20px; }
  .page-hero::after,.page-head::after{ width:84px; opacity:.14; }
  }

/* ---------- Signature : logo incrusté, discret mais net, sur chaque bloc fort ---------- */
.hero::after{ content:''; position:absolute; right:clamp(18px,5vw,84px); bottom:clamp(104px,16vh,150px);
  width:clamp(110px,14vw,210px); aspect-ratio:1294/1205; background:url(logo-pgs-clair.svg) center/contain no-repeat;
  opacity:.42; pointer-events:none; z-index:2; }
.sec.dark,.sec.tint{ position:relative; overflow:hidden; }
.sec.dark>.wrap,.sec.tint>.wrap{ position:relative; z-index:1; }
.sec.dark::after{ content:''; position:absolute; right:clamp(18px,5vw,84px); top:clamp(56px,7vw,104px);
  width:clamp(90px,11vw,170px); aspect-ratio:1294/1205; background:url(logo-pgs-clair.svg) center/contain no-repeat;
  opacity:.28; pointer-events:none; }
.sec{ position:relative; }
.sec>.wrap{ position:relative; z-index:1; }
.sec:not(.dark):not(.contact-band):not(:has(.no-media))::after{ content:''; position:absolute; right:clamp(18px,5vw,84px); bottom:clamp(12px,2vw,24px);
  width:clamp(96px,9vw,140px); aspect-ratio:1294/1205; background:url(logo-pgs.svg) center/contain no-repeat;
  opacity:.55; pointer-events:none; }
/* colonne de titre sans contenu dessous : la signature s'y inscrit sous le titre */
.split.no-media .split-head::after{ content:''; display:block; width:clamp(88px,9vw,128px); aspect-ratio:1294/1205; margin-top:36px;
  background:url(logo-pgs.svg) center/contain no-repeat; opacity:.55; }
.split.no-media .split-head:has(.brand-mark)::after{ display:none; }
.dark .split.no-media .split-head::after{ background-image:url(logo-pgs-clair.svg); opacity:.3; }
@media (max-width:600px){
  .hero::after{ width:72px; opacity:.26; bottom:auto; top:104px; right:18px; }
  .sec.dark::after{ width:72px; opacity:.12; top:28px; }
  .sec:not(.dark):not(.contact-band):not(:has(.no-media))::after{ width:84px; opacity:.5; }
}

/* pas de double signature : une section sombre qui suit directement un hero ne répète pas le logo */
.hero+.sec.dark::after,.page-hero+.sec.dark::after,.page-head+.sec.dark::after{ display:none; }
