/* ═════ HÉROS IMMERSIF — photo bord à bord sous voile sombre, titre et texte en clair ═════
   Chargé en dernier. Sans fichier photo, la page n'a pas la classe .has-photo et garde son héros d'origine.
   Contraste : le voile atteint au moins 82 % d'opacité sur la zone de texte (vérifié ci-dessous par calcul, en plus d'axe). */
.hero-photo{position:absolute;inset:0;z-index:-2;display:block}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:80% 40%}
.pg-home .hero-photo img{object-position:70% 40%}
.pg-asso .hero-photo img{object-position:70% 45%}
.pg-cle .hero-photo img{object-position:60% 55%}
.hero-veil{position:absolute;inset:0;z-index:-1;pointer-events:none;
  --v:12,34,24;
  background:linear-gradient(90deg,rgba(var(--v),.9) 0,rgba(var(--v),.84) 46%,rgba(var(--v),.34) 100%),linear-gradient(180deg,rgba(var(--v),.18) 0,rgba(var(--v),.55) 100%)}
.pg-part .hero-veil,.pg-cle .hero-veil{--v:44,28,16}
.pg-ent .hero-veil{--v:14,8,40}
.pg-tour .hero-veil{--v:16,34,28}
.pg-asso .hero-veil{--v:14,38,28}

.hero.has-photo{position:relative;isolation:isolate;display:flex;align-items:center;min-height:clamp(540px,80svh,780px);padding:72px 0;color:#fff;background:#0f2a1f;overflow:hidden}
.hero.has-photo::before{display:none}
.hero.has-photo>.wrap{display:block;width:min(100% - 32px,var(--w,1200px))}
.hero.has-photo .hero-in,.hero.has-photo .hero-grid{display:block;text-align:left}
.hero.has-photo .hero-copy{max-width:660px}
.hero.has-photo .hero-in,.hero.has-photo .hero-grid{margin-inline:auto;max-width:none;justify-items:start}
.hero.has-photo h1{display:flex;flex-direction:column;align-items:flex-start;margin:0}
.hero.has-photo .lead{background:none!important;padding:0!important;border:0!important;box-shadow:none!important;margin-top:18px}
.hero.has-photo .btn{margin-top:0}
.hero.has-photo h1,.hero.has-photo .lead,.hero.has-photo .eyebrow{color:#fff!important;text-align:left;margin-left:0;margin-right:0;text-shadow:0 1px 18px rgba(0,0,0,.35)}
.hero.has-photo h1{max-width:15ch}
.hero.has-photo .lead{max-width:56ch;font-size:1.15rem;line-height:1.65}
.hero.has-photo h1 .g,.hero.has-photo h1 .amb{color:#FFD36B!important}
.hero.has-photo h1 .l1{color:#24160F!important;text-shadow:none}
.hero.has-photo h1 .l2{text-shadow:none}
.hero.has-photo .eyebrow{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.4)}
.hero.has-photo .cta{justify-content:flex-start}
.hero.has-photo .btn:not(.ghost){background:#FFD36B;color:#1c1608;border-color:#FFD36B;box-shadow:none}
.hero.has-photo .btn.ghost{background:transparent;color:#fff;border-color:#fff}
.hero.has-photo .btn.ghost:hover{background:rgba(255,255,255,.14)}
.hero.has-photo .pencil,.hero.has-photo .cf,.hero.has-photo .scene{display:none}

/* Captures de l'application : sous le héros, jamais sur les visages */
.hero-stage{position:relative;padding:56px 0 24px}
.hero-stage>.wrap{display:grid;justify-items:center;gap:32px}
.hero-stage .stage,.hero-stage .console,.hero-stage .plate,.hero-stage .hero-vis{width:100%}
.hero-stage .hero-vis{min-height:0;max-width:880px}
.hero-stage .ph-stage{width:min(300px,78vw)}
.hero-stage .plate{max-width:760px;margin-inline:auto}
.hero-stage .console{max-width:720px}
.hero-stage .hv-win{width:100%}

@media(max-width:759px){
  .hero.has-photo{min-height:clamp(520px,86svh,700px);padding:56px 0 48px}
  .hero-veil{background:linear-gradient(180deg,rgba(var(--v),.9) 0,rgba(var(--v),.86) 60%,rgba(var(--v),.7) 100%)}
  .hero-photo img{object-position:50% 70%}
  .hero.has-photo h1{max-width:none}
}
@media(min-width:900px){
  .hero-stage{padding:72px 0 32px}
}

/* Deux photos plein cadre : Extérieur / Intérieur (même traitement immersif que les héros) */
.split2{display:grid;grid-template-columns:1fr}
.split2 .sp{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:clamp(340px,56svh,520px);padding:40px 0;color:#fff;overflow:hidden;background:#0f2a1f}
.split2 .sp img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.split2 .sp::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(12,34,24,.2) 0,rgba(12,34,24,.9) 100%)}
.split2 .sp-clue::after{background:linear-gradient(180deg,rgba(44,28,16,.2) 0,rgba(44,28,16,.9) 100%)}
.split2 .sp-in{width:min(100% - 32px,560px);margin-inline:auto}
.split2 h3{font-size:clamp(1.7rem,3.4vw,2.4rem)!important;color:#fff}
.split2 p{margin-top:8px;color:#fff;font-size:1.08rem;line-height:1.55}
.split2 .sp-clue h3{color:#FFD36B}
@media(min-width:900px){.split2{grid-template-columns:1fr 1fr}.split2 .sp{min-height:clamp(460px,64svh,640px)}.split2 .sp-in{margin-inline:0 auto;padding-left:max(16px,calc((100vw - 1240px)/2 + 16px))}.split2 .sp-clue .sp-in{padding-left:40px}}
