@font-face{font-family:"Inter";font-style:normal;font-weight:300;font-display:swap;src:url(inter-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url(inter-latin-700-normal.woff2) format("woff2")}
/* polices hébergées sur le site (plus rapide, et aucune adresse IP envoyée à Google) */










:root{
  --mark:url(logo-mamapalou.png);
  --ease:cubic-bezier(.25,.1,.25,1);--ease-out:cubic-bezier(0,0,.58,1);
  --navy:#1a2129;
  --navy-mid:#262e38;
  --navy-soft:#262e38;
  --gold:#1c69d4;
  --gold-pale:#bcd3f2;
  --paper:#ffffff;
  --ink:#1A1A18;
  --slate:#8794A4;
  --rule:rgba(28,105,212,.28);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  background:var(--navy);
  color:var(--paper);
  font-family:"Inter",system-ui,sans-serif;
  font-weight:300;
  overflow:hidden;
  -webkit-font-smoothing:antialiased;
}

/* ---------- stage ---------- */
#stage{position:fixed;inset:0;display:flex;align-items:center;justify-content:center}
.slide{
  position:absolute;inset:0;
  display:none;
  flex-direction:column;
  padding:6vh 7vw 6rem;
  overflow-y:auto;overflow-x:hidden;
  opacity:0;
  transition:opacity .7s ease;
}
.slide[data-hors-phase="1"]{display:none !important}
[data-des][hidden],[data-jusqua][hidden]{display:none !important}
.slide.on{display:flex;opacity:1}
.slide.paper{background:var(--paper);color:var(--ink)}

/* ---------- type ---------- */
h1,h2,h3{font-family:"Fraunces",Georgia,serif;font-weight:400;letter-spacing:-.01em;line-height:1.05}
h1{font-size:clamp(2.6rem,6.4vw,5.6rem);font-weight:300;letter-spacing:-.022em}
h2{font-size:clamp(1.9rem,3.9vw,3.4rem);margin-bottom:.5em;letter-spacing:-.014em}
h3{font-size:clamp(1.1rem,1.7vw,1.5rem);font-weight:600}
p{font-size:clamp(.95rem,1.25vw,1.18rem);line-height:1.65;max-width:62ch}
.slide p,.chrono .c,.rule-note,#resa .foot,.hintline{
  text-align:justify;text-justify:inter-word;
  hyphens:none;-webkit-hyphens:none;-ms-hyphens:none;
  word-spacing:normal;
}
.slide .kicker,.slide .cta,.contact p,.sitepics figcaption,.cadastre figcaption,
.chphotos figcaption,.plans figcaption,.gal figcaption,.scrollhint,.shmsg{
  text-align:left;
}
.contact p,.shmsg{text-align:center}
.lede{font-size:clamp(1.05rem,1.55vw,1.4rem);color:var(--gold-pale);font-weight:300}
.paper .lede{color:var(--navy-mid)}
.kicker{
  font-family:"Fraunces",serif;font-size:clamp(.85rem,1.1vw,1rem);
  color:var(--gold);font-weight:400;font-style:italic;margin-bottom:1.4rem;
}
.muted{color:var(--slate);font-size:.82rem;line-height:1.5}
.paper .muted{color:#6B7683}

/* ---------- médaillon ---------- */
.mark{
  width:clamp(90px,9.5vw,148px);aspect-ratio:1/1;display:block;
  background:var(--mark) center/contain no-repeat;
  margin-bottom:1.5rem;user-select:none;-webkit-user-drag:none;
}
.contact .mark{width:clamp(120px,13vw,200px);margin:0 auto 1.2rem}
/* nom MAMAPALOU cintré sur le haut du logo, première et dernière lettre à la même hauteur */
.mark{position:relative}
.mark .markarc{
  position:absolute;left:-22%;top:-22%;width:144%;height:144%;
  overflow:visible;pointer-events:none;
}
.mark .markarc text{
  font:500 17px "Inter","Arial Narrow",sans-serif;letter-spacing:.22em;
  fill:#C4A05A;
}
html[data-theme="etude"] .slide.cover .mark,.contact .mark{margin-top:clamp(14px,2.2vw,32px)!important}

@media (max-width:820px){.mark{width:84px;margin-bottom:1.1rem}}

/* ---------- arches motif (hérité) ---------- */
.arches{display:flex;gap:.45rem;align-items:flex-end;margin-bottom:2rem}
.arches span{
  width:clamp(22px,2.4vw,34px);height:clamp(30px,3.3vw,46px);
  border:1.5px solid var(--gold);
  border-bottom:none;
  border-radius:50% 50% 0 0 / 68% 68% 0 0;
}
.paper .arches span{border-color:var(--navy-mid)}
.arches span:nth-child(2){height:calc(clamp(30px,3.3vw,46px) * 1.22)}

/* ---------- cover ---------- */
.slide.cover{padding-bottom:6vh;overflow:hidden}

/* trois crans de resserrement, appliqués seulement si le contenu ne tient pas */
.cover.serre1{padding-top:4vh;padding-bottom:4vh}
.cover.serre1 .rule{margin:1.4rem 0 1.1rem}
.cover.serre1 .cta{margin-top:1.1rem}
.cover.serre1 .confiance{margin-top:.9rem}
.cover.serre2{padding-top:2.6vh;padding-bottom:2.6vh}
.cover.serre2 h1{font-size:clamp(1.6rem,3.4vw,2.6rem)}
.cover.serre2 .rule{margin:.9rem 0 .7rem}
.cover.serre2 .lede{font-size:clamp(.82rem,1.05vw,.95rem)}
.cover.serre2 .cta{margin-top:.7rem;font-size:clamp(.8rem,1vw,.92rem)}
.cover.serre2 .confiance li{padding:.22rem 0}
.cover.serre3 .confiance{display:none}
.cover.serre3 .loc{display:none}
.cover.serre4{padding-top:1.6vh;padding-bottom:1.6vh}
.cover.serre4 h1{font-size:clamp(1.35rem,2.8vw,2.1rem)}
.cover.serre4 .mark{transform:scale(.72);transform-origin:left top}
.cover.serre4 .meta{font-size:.78rem}
.cover{justify-content:center;align-items:flex-start;
  background:radial-gradient(120% 90% at 22% 12%,var(--navy-soft) 0%,var(--navy) 62%)}
.cover > *:not(.bg){position:relative;z-index:2}
.cover .bg{position:absolute;inset:0;border:none;background:none;min-height:0;z-index:0}
.cover .bg img{width:100%;height:100%;object-fit:cover;opacity:.5}
.cover .bg::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(95deg,rgba(26,33,41,.95) 18%,rgba(26,33,41,.5) 100%)}
.cover .bg .imgtools{z-index:5}
.cover .bg .hint{position:absolute;bottom:1.6rem;left:50%;transform:translateX(-50%);z-index:3}

.cover h1{margin-bottom:.35em}
.cover .rule{width:120px;height:1px;background:var(--gold);margin:2.2rem 0 1.8rem}
.cover .meta{display:flex;gap:2.2rem;flex-wrap:wrap;color:var(--gold-pale);font-size:clamp(.85rem,1.1vw,1rem)}
.cover .meta b{font-weight:600;color:#fff}
.loc{
  display:flex;align-items:center;gap:.85rem;margin-bottom:1.3rem;
}
.locmap{position:relative;width:clamp(58px,6vw,78px);flex:0 0 auto;line-height:0}
.locmap img{width:100%;height:auto;display:block;opacity:.92}
.locmap .pin{
  position:absolute;left:65.7%;top:23.6%;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;
  border-radius:50%;background:#C4A05A;box-shadow:0 0 0 3px rgba(196,160,90,.4);
}
.loctxt{
  font:600 clamp(.74rem,1vw,.86rem)/1.35 "Inter",sans-serif;
  letter-spacing:.16em;text-transform:uppercase;color:#C4A05A;
}
.loctxt b{display:block;font-weight:400;letter-spacing:.11em;color:#8794A4}
@media (max-width:820px){.loc{gap:.6rem;margin-bottom:1rem}}
.confiance{
  list-style:none;display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin:1.5rem 0 0;padding:0;
}
.confiance li{
  position:relative;padding-left:1.1rem;
  font:400 clamp(.74rem,1vw,.86rem)/1.4 "Inter",sans-serif;color:var(--gold-pale);
}
.confiance li::before{
  content:'';position:absolute;left:0;top:.42em;width:6px;height:6px;
  border-radius:50%;background:var(--gold);
}
@media (max-width:820px){.confiance{gap:.35rem 1rem;margin-top:1.1rem}}
.cover .cta{
  margin-top:1.8rem;font-size:clamp(.88rem,1.15vw,1.05rem);color:var(--paper);
  border-left:2px solid var(--gold);padding-left:.9rem;
}
.cover h1{line-height:1.02}
.cover h1 em{
  font-style:normal;color:var(--gold);
  font-size:.78em;display:inline-block;margin-top:.12em;
}

/* ---------- figures row ---------- */
.figs{display:flex;gap:clamp(2rem,5vw,5.5rem);flex-wrap:wrap;margin-top:auto;padding-top:2.5rem;border-top:1px solid var(--rule)}
.fig .n{font-family:"Fraunces",serif;font-size:clamp(2.4rem,5vw,4.2rem);font-weight:300;line-height:1;color:var(--gold)}
.paper .fig .n{color:var(--navy-mid)}
.fig .l{font-size:.86rem;color:var(--slate);margin-top:.5rem;max-width:20ch;line-height:1.4}

/* ---------- split layout ---------- */
.split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(2rem,4vw,4.5rem);flex:1;align-items:center;min-height:0}
.split.wide-left{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}

/* ---------- image slot ---------- */
.slot{
  position:relative;height:100%;min-height:200px;
  border:1px dashed var(--rule);border-radius:2px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;background:rgba(255,255,255,.03);
}
.paper .slot{background:#EDE9E1;border-color:#C9C2B4}
.slot img{width:100%;height:100%;object-fit:contain;display:block}
.slot.cover-fit img{object-fit:cover}
.slot.plan{flex:1;min-height:0;margin-top:1.1rem;border:none;background:none}
.slot .hint{text-align:center;padding:1.5rem;color:var(--slate);font-size:.82rem;line-height:1.6;pointer-events:none}
.imgtools{
  position:absolute;bottom:.7rem;right:.7rem;z-index:5;
  display:flex;gap:.35rem;opacity:0;transition:opacity .2s;
}
.imgtools label,.imgtools button{
  font:500 .7rem/1 "Inter",sans-serif;letter-spacing:.03em;
  background:var(--gold);color:var(--navy);
  padding:.4rem .7rem;border-radius:2px;cursor:pointer;border:none;
}
.imgtools label:hover,.imgtools button:hover{background:var(--gold-pale)}
.imgtools button:focus-visible,.imgtools label:focus-within{outline:2px solid var(--paper);outline-offset:1px}
.slot:hover .imgtools,.slot:focus-within .imgtools,
.gal figure:hover .imgtools{opacity:1}
body.editing .imgtools{opacity:1}
.imgtools .anno-add{}

/* ---------- annotations sur images ---------- */
.anno{
  position:absolute;z-index:6;transform:translate(-50%,-50%);
  background:rgba(26,33,41,.88);color:var(--paper);
  font:500 clamp(.62rem,1.02vw,.84rem)/1 "Inter",sans-serif;
  letter-spacing:.05em;padding:.36rem .58rem;border-radius:2px;
  border:1px solid rgba(28,105,212,.8);white-space:nowrap;
  pointer-events:none;box-shadow:0 2px 10px rgba(0,0,0,.4);
}
body.editing .anno{pointer-events:auto;cursor:move}
body.editing .anno:hover{border-color:var(--gold)}
.anno .x{display:none}
body.editing .anno .x{
  display:inline-block;margin-left:.45rem;padding:0 .12rem;
  border:none;background:none;color:var(--gold-pale);
  font:inherit;line-height:1;cursor:pointer;
}
body.editing .anno .x:hover{color:#fff}
.anno .txt:focus{outline:1px solid var(--gold);outline-offset:2px}
body.editing .slot.cover-fit img,
body.editing .cover .bg img,
body.editing .gal figure img{cursor:move;touch-action:none;user-select:none}
body.editing .slot.cover-fit img.dragging,
body.editing .cover .bg img.dragging,
body.editing .gal figure img.dragging{cursor:grabbing}
body.presenting .imgtools{display:none}
.slot input,.gal figure input{position:absolute;width:1px;height:1px;opacity:0}
body.presenting .slot{border-color:transparent}
body.presenting .slot .hint{opacity:0}

/* ---------- list ---------- */
.speclist{list-style:none;display:flex;flex-direction:column;gap:.1rem;max-width:52ch}
.speclist li{display:flex;gap:1.2rem;padding:.78rem 0;border-bottom:1px solid var(--rule);font-size:clamp(.88rem,1.12vw,1.05rem)}
.speclist li b{font-weight:500;color:var(--gold-pale);flex:0 0 42%}
.paper .speclist li b{color:var(--navy-mid)}

/* ---------- table ---------- */
.tbl{width:100%;border-collapse:collapse;font-size:clamp(.72rem,1.02vw,.92rem);font-variant-numeric:tabular-nums}
.tbl thead th{position:sticky;top:0;z-index:3;background:var(--paper);box-shadow:0 1px 0 var(--navy-mid)}
.paper .tbl thead th{background:var(--paper)}
.tbl th{
  text-align:left;font-weight:500;color:var(--gold);
  padding:.55rem .7rem;border-bottom:1px solid var(--gold);
  font-size:.78em;letter-spacing:.02em;
}
.paper .tbl th{color:var(--navy-mid);border-color:var(--navy-mid)}
.tbl td{padding:.5rem .7rem;border-bottom:1px solid rgba(135,148,164,.18);vertical-align:middle}
.tbl td.num{text-align:right}
.tbl tbody tr:hover{background:rgba(28,105,212,.07)}
.tbl .grp td{background:rgba(28,105,212,.1);font-weight:500;color:var(--gold-pale)}
.tbl .grp td span{font-weight:400;font-size:.88em;color:#6B7683;margin-left:.5rem}
.tbl td .duo{display:block;font-size:.82em;color:#9A6B12;font-weight:500;margin-top:.1rem}
.tbl tbody td:first-child{
  white-space:nowrap;
  display:flex;align-items:center;gap:.4rem;
}
.tbl tbody td:first-child .lotbtn{flex:0 0 auto}
.dupbadge{flex:0 0 auto}
.dupbadge{
  display:inline-flex;align-items:center;gap:.28rem;vertical-align:middle;
  font:500 .68rem/1 "Inter",sans-serif;letter-spacing:.04em;color:#7A5A12;
  background:#FBF3DF;border:1px solid rgba(28,105,212,.75);border-radius:2px;padding:.24rem .42rem;
}
.dupbadge .x{
  border:none;background:none;color:#A89778;cursor:pointer;
  font-size:.92rem;line-height:1;padding:0 .08rem;
}
.dupbadge .x:hover{color:#5A4A25}
.dupbadge.grow{
  color:#2E6B3E;background:#EEF5EF;border-color:rgba(46,107,62,.5);
}
.dupbadge.grow .x{color:#8FB199}
.dupbadge.grow .x:hover{color:#2E6B3E}
.paper .tbl .grp td{background:rgba(23,53,94,.07);color:var(--navy-mid)}
.tbl tfoot td{border-top:1px solid var(--gold);border-bottom:none;font-weight:500;padding-top:.7rem}

.slide.scrolly{overflow-y:auto;overflow-x:hidden}
.slide.scrolly::-webkit-scrollbar{width:9px}
.slide.scrolly::-webkit-scrollbar-thumb{background:rgba(23,53,94,.25);border-radius:5px}
.plans{display:flex;flex-direction:row;gap:clamp(.6rem,1.6vw,1.2rem);align-items:flex-start;flex:0 0 auto;margin-top:.7rem;padding-bottom:.6rem}
.plans .planfig{display:flex;flex-direction:column;flex:1 1 0;min-width:0}
.plans .slot.plan{flex:0 0 auto;min-height:0;margin-top:0;width:100%}
.slot.plan,.slot.degroupe{display:flex;align-items:center;justify-content:center}
.slot.degroupe{border:none;background:none}
.slot.degroupe img{width:100%;height:100%;object-fit:contain}
.hotwrap{position:relative;width:60%;margin:0 auto;line-height:0}
.slot .hotwrap{position:relative;width:100%;line-height:0;font-size:0}
.slot .hotwrap img{display:block;width:100%;height:auto;max-width:none;max-height:none;object-fit:fill}

.hotspot{
  position:absolute;z-index:5;border:1px solid transparent;background:transparent;
  display:flex;align-items:center;justify-content:center;
  transition:background .22s var(--ease), border-color .22s var(--ease);
}
.hotspot .hs{
  opacity:0;transition:opacity .22s var(--ease);pointer-events:none;white-space:nowrap;
  font:600 clamp(.66rem,1.25vw,.95rem)/1 "Inter",sans-serif;letter-spacing:.04em;
  color:#fff;background:rgba(26,33,41,.92);padding:.28rem .5rem;border-radius:2px;
}
.hotspot:hover,.hotspot.actif{background:rgba(28,105,212,.28);border-color:var(--gold)}
/* Une fois l'usage choisi, les lots qui lui conviennent prennent sa couleur.
   Dès qu'un lot est retenu, la couleur se resserre : le lot retenu en foncé,
   ses prolongements possibles en clair, tout le reste redevient neutre. */
body.us-commerce .hotspot.convient,
body.us-commerce .hotspot.zduo,body.us-commerce .hotspot.zgrow{
  background:rgba(46,107,62,.16);border-color:rgba(46,107,62,.65);border-style:dashed;border-width:1px;
}
body.us-commerce .hotspot.convient:hover,
body.us-commerce .hotspot.zduo:hover,body.us-commerce .hotspot.zgrow:hover{
  background:rgba(46,107,62,.32);border-color:#2E6B3E;
}
body.us-commerce .hotspot.zsel{
  background:rgba(46,107,62,.5);border-color:#1E4A2A;border-width:2px;border-style:solid;
}
body.us-commerce .hotspot.zduo .hs,body.us-commerce .hotspot.zgrow .hs,
body.us-commerce .hotspot.convient .hs{background:#2E6B3E;color:#fff}
body.us-commerce .hotspot.zsel .hs{background:#1E4A2A;color:#fff}
body.us-commerce .hotspot.zduo .sub,body.us-commerce .hotspot.zgrow .sub{background:#2E6B3E}
/* restauration : même logique que le commerce, en rez-de-chaussée seulement */
body.us-resto .hotspot.convient{background:rgba(184,84,8,.2);border-color:rgba(184,84,8,.65)}
body.us-resto .hotspot.convient:hover{background:rgba(184,84,8,.3)}
body.us-resto .hotspot.zsel{background:rgba(184,84,8,.42);border-color:#B85408;border-width:2px;border-style:solid}
body.us-resto .hotspot.zduo,body.us-resto .hotspot.zgrow{background:rgba(184,84,8,.18);border-color:rgba(184,84,8,.6)}
body.us-resto .hotspot.zsel .hs{background:#8A3F06;color:#fff}
body.us-resto .hotspot.zduo .hs,body.us-resto .hotspot.zgrow .hs{background:#B85408;color:#fff}
body.us-resto .hotspot.zsel .sub{background:#8A3F06}
body.us-resto .hotspot.zduo .sub,body.us-resto .hotspot.zgrow .sub{background:#B85408}
body.us-commerce .hotspot.zsel .sub{background:#1E4A2A}
/* sur le plan de réservation, un lot retenu est toujours vert : vert veut dire validé */
/* lot repéré sur la page d'information : en attente, en brun, jusqu'au clic qui le retient */
body #schema .hotspot.pressenti{background:rgba(138,101,22,.34);border-color:#0653b6;border-width:2px;border-style:dashed}
body #schema .hotspot.pressenti .hs{opacity:1;background:#0653b6;color:#fff}
.tbl tr.pressenti td{background:rgba(138,101,22,.12)}
.tbl tr.pressenti .lotbtn{border-color:#0653b6;color:#0653b6;font-weight:600}
body #schema .hotspot.zsel{background:rgba(46,107,62,.5);border-color:#1E4A2A;border-width:2px;border-style:solid}
body #schema .hotspot.zsel .hs{opacity:1;background:#1E4A2A;color:#fff}
body #schema .hotspot.zsel .sub{background:#1E4A2A}
/* les lots où l'on peut s'étendre gardent leur numéro affiché en permanence */
body #schema .hotspot.zgrow .hs,body #schema .hotspot.zduo .hs{opacity:1}

body.us-bureaux .hotspot.convient,body.us-liberale .hotspot.convient,
body.us-bureaux .hotspot.zduo,body.us-liberale .hotspot.zduo,
body.us-bureaux .hotspot.zgrow,body.us-liberale .hotspot.zgrow{
  background:rgba(23,53,94,.15);border-color:rgba(23,53,94,.6);border-style:dashed;border-width:1px;
}
body.us-bureaux .hotspot.convient:hover,body.us-liberale .hotspot.convient:hover,
body.us-bureaux .hotspot.zduo:hover,body.us-liberale .hotspot.zduo:hover,
body.us-bureaux .hotspot.zgrow:hover,body.us-liberale .hotspot.zgrow:hover{
  background:rgba(23,53,94,.32);border-color:#262e38;
}
body.us-bureaux .hotspot.zsel,body.us-liberale .hotspot.zsel{
  background:rgba(23,53,94,.46);border-color:#1a2129;border-width:2px;border-style:solid;
}
body.us-bureaux .hotspot.zduo .hs,body.us-liberale .hotspot.zduo .hs,
body.us-bureaux .hotspot.zgrow .hs,body.us-liberale .hotspot.zgrow .hs,
body.us-bureaux .hotspot.convient .hs,body.us-liberale .hotspot.convient .hs{
  background:#262e38;color:#fff;opacity:1;
}
body.us-bureaux .hotspot.zsel .hs,body.us-liberale .hotspot.zsel .hs{background:#1a2129;color:#fff}
body.us-bureaux .hotspot.zduo .sub,body.us-liberale .hotspot.zduo .sub,
body.us-bureaux .hotspot.zgrow .sub,body.us-liberale .hotspot.zgrow .sub{background:#262e38}
body.us-bureaux .hotspot.zsel .sub,body.us-liberale .hotspot.zsel .sub{background:#1a2129}

/* un lot indisponible garde son rouge, quel que soit l'usage */
body[class*="us-"] .hotspot.pris,body[class*="us-"] .hotspot.loue,
body[class*="us-"] .hotspot.zind{
  background:rgba(179,69,61,.22);border-color:#B3453D;border-style:dashed;
}

.hotspot .fanion{
  position:absolute;top:2px;right:2px;z-index:6;pointer-events:none;line-height:0;
  width:clamp(9px,1.05vw,14px);height:auto;
}
.hotspot .fanion svg{display:block;width:100%;height:auto;overflow:visible}
.miniplans .hotspot .fanion{width:clamp(8px,.85vw,11px);top:1px;right:1px}
.hotspot.lie,.hotspot.liefix{background:rgba(23,53,94,.16);border-color:#262e38;border-style:dashed}
.hotspot.lie .hs,.hotspot.liefix .hs{background:rgba(26,33,41,.92)}
.hotspot.actif{border-width:2px;border-style:solid}
.hotspot.zsel{background:rgba(46,107,62,.32);border-color:#2E6B3E;border-width:2px;border-style:solid}
.hotspot.zsel .hs{opacity:1;background:#2E6B3E}
.hotspot.zsel .hs::after{content:' \2713';font-weight:400}
.hotspot.zduo{background:rgba(23,53,94,.16);border-color:#262e38;border-style:dashed}
.hotspot.zduo .hs{opacity:1;background:rgba(26,33,41,.92)}
.hotspot.zduo .hs::after{content:' · en duplex';font-weight:400;opacity:.9}
.hotspot.pris.zduo,.hotspot.loue.zduo{background:rgba(179,69,61,.3);border-color:#B3453D;border-style:dashed}
.hotspot.pris.zduo .hs,.hotspot.loue.zduo .hs{background:#8E332C}
.hotspot.pris.zduo .hs::after{content:' · réservé'}
.hotspot.loue.zduo .hs::after{content:' · loué'}
.hotspot.zgrow{background:rgba(46,107,62,.08);border-color:rgba(46,107,62,.4);border-style:dashed}
.hotspot.zind{background:rgba(179,69,61,.22);border-color:#B3453D;border-style:dashed}
.hotspot.zind .hs{opacity:1;background:#8E332C;max-width:96%;white-space:normal;text-align:center;line-height:1.15}
.hotspot.zind .hs::after{content:'Réservé';display:block;font-weight:400;font-size:.85em;opacity:.9}
.hotspot.zgrow .hs{opacity:.3;background:rgba(74,146,94,.92);font-weight:600;transition:opacity .15s}
.hotspot.zgrow:hover{background:rgba(46,107,62,.2);border-color:#4A925E}
.hotspot.zgrow:hover .hs{opacity:1}
.hotspot.zgrow:hover .hs::after{content:''}

/* flèche accrochée au bord du lot retenu, pointant vers le voisin libre */
.hotspot.arr-l::before,.hotspot.arr-r::after{
  content:'';position:absolute;top:50%;margin-top:-6px;
  width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;
  opacity:.8;
}
.hotspot.arr-l::before{left:-13px;border-right:9px solid #2E6B3E}
.hotspot.arr-r::after{right:-13px;border-left:9px solid #2E6B3E}
.hotspot.pris:hover,.hotspot.pris.actif,.hotspot.pris.lie,.hotspot.pris.liefix{
  background:rgba(179,69,61,.3);border-color:#B3453D;
}
.hotspot.pris:hover .hs,.hotspot.pris.actif .hs,.hotspot.pris.lie .hs,.hotspot.pris.liefix .hs{background:#8E332C}
.hotspot.pris:hover .hs::after,.hotspot.pris.actif .hs::after{content:' · réservé';font-weight:400;opacity:.9}
.hotspot.loue:hover,.hotspot.loue.actif,.hotspot.loue.lie,.hotspot.loue.liefix{
  background:rgba(138,52,44,.4);border-color:#6E2A24;
}
.hotspot.loue:hover .hs,.hotspot.loue.actif .hs,.hotspot.loue.lie .hs,.hotspot.loue.liefix .hs{background:#6E2A24}
.hotspot.loue:hover .hs::after,.hotspot.loue.actif .hs::after{content:' · loué';font-weight:400;opacity:.9}
.hotspot.pris.lie,.hotspot.pris.liefix{background:rgba(179,69,61,.28);border-color:#B3453D;border-style:dashed}
.hotspot.pris.lie .hs,.hotspot.pris.liefix .hs{background:#8E332C}
.hotspot.pris.lie .hs::after,.hotspot.pris.liefix .hs::after{content:' · réservé';font-weight:400;opacity:.9}
.hotspot.loue.lie,.hotspot.loue.liefix{background:rgba(138,52,44,.34);border-color:#6E2A24;border-style:dashed}
.hotspot.loue.lie .hs,.hotspot.loue.liefix .hs{background:#6E2A24}
.hotspot.loue.lie .hs::after,.hotspot.loue.liefix .hs::after{content:' · loué';font-weight:400;opacity:.9}
.hotspot:hover .hs,.hotspot.lie .hs,.hotspot.liefix .hs,.hotspot.actif .hs{opacity:1}
/* aucune étiquette ne déborde de son lot : elle se replie sur plusieurs lignes */
.hotspot .hs{max-width:100%;white-space:normal;text-align:center;line-height:1.14}
.hotspot.lie,.hotspot.liefix{border-style:dashed}
.hotspot.lie .hs::after{content:' · duplex';font-weight:400;opacity:.85}
body.editing .hotspot{border-color:rgba(23,53,94,.6);border-style:dashed;cursor:move}
body.editing .hotspot .hs{opacity:1}
.hotspot .x,.hotspot .grip{display:none}
body.editing .hotspot .x{
  display:block;position:absolute;top:-10px;right:-10px;width:20px;height:20px;line-height:18px;
  text-align:center;border:none;border-radius:50%;background:#B3453D;color:#fff;
  font-size:13px;cursor:pointer;padding:0;
}
body.editing .hotspot .grip{
  display:block;position:absolute;right:-6px;bottom:-6px;width:13px;height:13px;
  background:var(--navy-mid);border:1px solid #fff;cursor:nwse-resize;
}
/* ---------- ascenseurs ---------- */
.lift{
  position:absolute;z-index:4;border:1.5px solid transparent;
  background:transparent;border-radius:2px;
  transition:background .22s var(--ease), border-color .22s var(--ease);
}
.lift:hover,.lift.on{border-color:#262e38;background:rgba(23,53,94,.22)}
.liftlab{
  opacity:0;pointer-events:none;transition:opacity .15s;
  position:absolute;z-index:6;transform:translate(-50%,-50%);
  display:flex;align-items:center;gap:.4rem;white-space:nowrap;
  background:var(--navy);color:var(--paper);border:1px solid var(--gold);border-radius:2px;
  font:600 clamp(.64rem,1vw,.78rem)/1 "Inter",sans-serif;letter-spacing:.04em;
  padding:.34rem .55rem;box-shadow:0 2px 9px rgba(0,0,0,.32);
}
.liftlab .pic{font-size:1.15em;line-height:1;color:var(--gold)}
.liftlab.on{opacity:1;pointer-events:auto}
body.editing .lift{border-color:rgba(23,53,94,.8);background:rgba(23,53,94,.14)}
body.editing .liftlab{opacity:1;pointer-events:auto}
.leaders{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}
.leaders line{stroke:#262e38;stroke-width:1;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;
  opacity:0;transition:opacity .15s}
.leaders line.on{opacity:.8}
body.editing .leaders line{opacity:.8}
body.editing .lift,body.editing .liftlab{cursor:move}
.lift .x,.lift .grip,.liftlab .x{display:none}
body.editing .lift .x,body.editing .liftlab .x{
  display:block;position:absolute;top:-10px;right:-10px;width:19px;height:19px;line-height:17px;
  text-align:center;border:none;border-radius:50%;background:#B3453D;color:#fff;
  font-size:12px;cursor:pointer;padding:0;
}
body.editing .lift .grip{
  display:block;position:absolute;right:-6px;bottom:-6px;width:13px;height:13px;
  background:var(--navy-mid);border:1px solid #fff;cursor:nwse-resize;
}
body.zoning .lift,body.zoning .liftlab{pointer-events:none}

/* ---------- contours libres ---------- */
.zones{position:absolute;inset:0;width:100%;height:100%;z-index:4}
.zones polygon{
  fill:rgba(28,105,212,.14);stroke:#B06A12;stroke-width:1.4;stroke-dasharray:5 4;
  vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .15s;
}
.zones polygon:hover,.zones polygon.on{fill:rgba(28,105,212,.34);stroke-width:2.2}
.polylab{
  position:absolute;z-index:6;transform:translate(-50%,-50%);white-space:nowrap;
  opacity:0;transition:opacity .15s;pointer-events:none;
  font:600 clamp(.64rem,1vw,.8rem)/1 "Inter",sans-serif;letter-spacing:.04em;
  color:#fff;background:#0A1A31;border:1px solid var(--gold);
  border-radius:2px;padding:.3rem .5rem;
}
.polylab.on{opacity:1;pointer-events:auto}
.polylab.vide{display:none}
body.editing .polylab.vide{display:inline-flex;opacity:.45;min-width:2.5rem;min-height:1.4rem}
body.editing .polylab{opacity:1;pointer-events:auto;cursor:move}
.polylab .x{display:none}
body.editing .polylab .x{
  display:inline-block;margin-left:.45rem;border:none;background:none;
  color:var(--gold-pale);font:inherit;line-height:1;cursor:pointer;padding:0 .1rem;
}
body.polying .hotwrap{cursor:crosshair}
.zones polyline.trace{fill:none;stroke:#B06A12;stroke-width:1.4;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}
.zones circle.pt{fill:#fff;stroke:#B06A12;stroke-width:1.4;vector-effect:non-scaling-stroke}
.zones circle.pt.first{fill:#B06A12}

.batzone{
  position:absolute;z-index:2;pointer-events:none;
  border:1px dashed rgba(23,53,94,.55);border-radius:3px;
  background:rgba(23,53,94,.07);
  display:flex;align-items:flex-start;justify-content:center;
  transition:opacity .18s;
}
.batzone span{
  transform:translateY(-118%);
  font:600 clamp(.6rem,.92vw,.76rem)/1 "Inter",sans-serif;
  letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;
  color:var(--paper);background:var(--navy-mid);
  padding:.28rem .5rem;border-radius:2px;
}
.hotwrap.sansbat .batzone{opacity:0}
body.editing .batzone{display:none}

body.zoning .hotwrap{cursor:crosshair}
body.zoning .hotspot{pointer-events:none}
#zoneGhost{position:absolute;z-index:8;border:1px dashed var(--navy-mid);background:rgba(28,105,212,.22);pointer-events:none}
body.presenting .hotspot{pointer-events:none}

.scrollhint{
  font-size:.74rem;color:#8A94A0;margin-top:.7rem;letter-spacing:.02em;
}
.plans .planfig{align-items:center}
.lotcard{
  position:absolute;z-index:140;width:min(320px,66vw);
  transform:translateX(-50%);
  background:var(--paper);color:var(--ink);
  border:1px solid var(--navy-mid);border-top:3px solid var(--navy-mid);
  border-radius:2px;padding:.85rem 2rem .9rem 1rem;
  box-shadow:0 14px 34px rgba(8,20,38,.34);
  animation:fichein .18s ease-out;
}
@keyframes fichein{from{opacity:0;transform:translateX(-50%) translateY(6px)}to{opacity:1;transform:translateX(-50%)}}
.lotcard::after{
  content:'';position:absolute;left:50%;margin-left:-7px;
  border:7px solid transparent;
}
.lotcard.bas::after{top:-14px;border-bottom-color:var(--navy-mid)}
.lotcard.haut::after{bottom:-14px;border-top-color:var(--navy-mid)}
.lotcard.resto{border-color:var(--gold);border-top-color:var(--gold);background:#FBF3DF}
.lotcard.resto.bas::after{border-bottom-color:var(--gold)}
.lotcard.resto.haut::after{border-top-color:var(--gold)}
.lotcard.pris{border-color:#8A8478;border-top-color:#8A8478;background:#F2EEE8}
.lotcard.pris.bas::after{border-bottom-color:#8A8478}
.lotcard.pris.haut::after{border-top-color:#8A8478}
.lotcard .t{font:600 .9rem/1.3 "Inter",sans-serif;color:var(--navy);margin-bottom:.35rem}
.lotcard.resto .t{color:#7A5A12}
.lotcard .c{font-size:.8rem;line-height:1.55;color:#4A535E}
.pairhint{
  color:#2E6B3E;font-weight:600;cursor:pointer;
  border-bottom:1px dashed #2E6B3E;padding-bottom:1px;
}
.pairhint::after{content:'\00a0▸';font-size:.85em}
.pairhint.ouvert::after{content:'\00a0▾'}
.pairhint:hover{background:rgba(46,107,62,.16)}
.lotcard .options[hidden]{display:none}
.lotcard .options{
  margin-top:.6rem;padding-top:.55rem;border-top:1px solid #DCD6C8;
  font:400 .74rem/1.5 "Inter",sans-serif;color:#4A535E;
}
.lotcard .options > b{
  display:block;font-weight:600;color:var(--navy);margin-bottom:.3rem;
  font-size:.72rem;letter-spacing:.03em;
}
.lotcard .opt{
  display:block;cursor:help;padding:.26rem .4rem;margin:.16rem 0;border-radius:2px;
  border:1px dashed rgba(46,107,62,.5);background:rgba(46,107,62,.06);
  transition:background .22s var(--ease), border-color .22s var(--ease);
}
.lotcard .opt:hover{background:rgba(46,107,62,.2);border-color:#2E6B3E}
.lotcard .opt.choisi{
  background:#2E6B3E;border-style:solid;border-color:#2E6B3E;color:#fff;font-weight:500;
}
.lotcard .opt.choisi i{color:#fff}
.lotcard .opt.choisi::after{content:'\00a0\2713';font-weight:700}
.lotcard .opt i{
  font-style:normal;font-weight:600;color:#2E6B3E;margin-right:.35rem;
}
.pairzone{
  position:absolute;z-index:9;pointer-events:none;border-radius:3px;
  border:2px dashed #2E6B3E;
  background:repeating-linear-gradient(45deg,
    rgba(46,107,62,.20) 0 7px, rgba(46,107,62,.06) 7px 14px);
  display:flex;align-items:flex-end;justify-content:center;
  animation:fichein .16s ease-out;
}
.pairzone span{
  transform:translateY(54%);
  font:600 clamp(.58rem,.9vw,.72rem)/1 "Inter",sans-serif;letter-spacing:.04em;
  white-space:nowrap;color:#fff;background:#2E6B3E;padding:.24rem .45rem;border-radius:2px;
}
.lotcard .quoi{
  font:400 .78rem/1.5 "Inter",sans-serif;color:#4A535E;margin:0 0 .55rem;max-width:none;
}
.lotcard .profils{display:flex;gap:.4rem;flex-wrap:wrap}
.lotcard .profils button{
  flex:1 1 auto;cursor:pointer;border-radius:2px;
  background:none;border:1px solid var(--navy-mid);color:var(--navy-mid);
  font:600 .76rem/1 "Inter",sans-serif;padding:.55rem .5rem;
}
.lotcard .profils button:hover{background:var(--navy-mid);color:#fff}
.lotcard .retourusage{
  margin-top:.55rem;background:none;border:none;cursor:pointer;padding:.2rem 0;
  font:400 .72rem/1 "Inter",sans-serif;color:#8A94A0;
  border-bottom:1px dotted #B6BDC6;
}
.lotcard .retourusage:hover{color:var(--navy-mid)}
.lotcard .opt.ko{
  border-style:solid;border-color:#DCD6C8;background:#F4F2EC;color:#8A94A0;cursor:default;
}
.lotcard .opt.ko i{color:#A6AEB8}
.lotcard .options.souligne .opt:not(.ko){
  border-color:#2E6B3E;border-width:2px;background:rgba(46,107,62,.22);
}
.lotcard .opt.duo{border-color:rgba(28,105,212,.75);background:rgba(28,105,212,.12)}
.lotcard .opt.duo:hover{background:rgba(28,105,212,.28);border-color:var(--gold)}
.lotcard .opt.duo i{color:#7A5A12}
.lotcard .lotref{
  font-weight:600;border-bottom:1px dotted currentColor;cursor:help;padding-bottom:1px;
}
.lotcard .lotref:hover{background:rgba(28,105,212,.35)}
.hotspot.vise{
  background:rgba(28,105,212,.42);border-color:var(--gold);border-width:2px;
  box-shadow:0 0 0 2px rgba(255,255,255,.55);
}
.hotspot.vise .hs{opacity:1}
.lotcard .opt em{
  font-style:normal;font-weight:600;color:#7A5A12;font-size:.92em;
}
.lotcard .opt.duo.choisi{background:#7A5A12;border-color:#7A5A12}
.lotcard .opt.duo.choisi i,.lotcard .opt.duo.choisi em{color:#fff}
.lotcard .mise{
  display:block;margin-top:.4rem;padding-top:.4rem;border-top:1px solid rgba(28,105,212,.5);
  font:400 .68rem/1.5 "Inter",sans-serif;color:#5C4A20;
}
.lotcard .opt.choisi .mise{color:#F6EEDC;border-top-color:rgba(255,255,255,.35)}
.lotcard .ficheact{margin-top:.7rem}
.lotcard .prendre{
  width:100%;background:#2E6B3E;border:1px solid #2E6B3E;color:#fff;cursor:pointer;
  font:600 .78rem/1 "Inter",sans-serif;padding:.6rem .7rem;border-radius:2px;
}
.lotcard .prendre:hover{background:#255733;border-color:#255733}
.lotcard .prendre.retire{background:none;color:#8E332C;border-color:#C7A9A5}
.lotcard .prendre.retire:hover{background:rgba(179,69,61,.1)}
.lotcard .notecom{
  margin-top:.65rem;padding:.65rem .7rem;border-radius:2px;
  background:#FDF4F3;border-left:3px solid #B3453D;
  font:400 .74rem/1.5 "Inter",sans-serif;color:#7A3029;
}
.lotcard .notecom strong{color:#B3453D;font-weight:600}
.lotcard .notecom .nw{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.7rem}
.lotcard .notecom .nw button{
  flex:1 1 auto;cursor:pointer;border-radius:2px;
  font:500 .72rem/1.25 "Inter",sans-serif;padding:.5rem .6rem;
}
.lotcard .notecom .ajouter{background:#2E6B3E;border:1px solid #2E6B3E;color:#fff}
.lotcard .notecom .ajouter:hover{background:#255733}
.lotcard .notecom .maintenir{background:none;border:1px solid #C7A9A5;color:#7A3029}
.lotcard .notecom .maintenir:hover{background:rgba(179,69,61,.1)}
.lotcard .conflit,.conflitbox .conflit{
  margin-top:.6rem;padding:.65rem .7rem;border-radius:2px;
  background:#FBF3DF;border:1px solid rgba(28,105,212,.7);
}
.lotcard .conflit p,.conflitbox .conflit p{
  font:400 .74rem/1.5 "Inter",sans-serif;color:#5C4A20;margin:0 0 .55rem;max-width:none;
}
.lotcard .conflit b,.conflitbox .conflit b{color:#7A5A12}
.lotcard .cboutons[hidden],.conflitbox .cboutons[hidden]{display:none}
.lotcard .motif[hidden],.conflitbox .motif[hidden]{display:none}
.lotcard .motif label,.conflitbox .motif label{
  display:block;font:500 .72rem/1.4 "Inter",sans-serif;color:#5C4A20;margin:.2rem 0 .3rem;
}
.lotcard .motif textarea,.conflitbox .motif textarea{
  width:100%;resize:vertical;border:1px solid #C4BCA8;border-radius:2px;padding:.45rem .5rem;
  font:400 .74rem/1.45 "Inter",sans-serif;color:var(--ink);background:#fff;
}
.lotcard .motif textarea.bad,.conflitbox .motif textarea.bad{border-color:#B3453D;background:#FDF4F3}
.lotcard .valmotif{background:var(--navy-mid);border:1px solid var(--navy-mid);color:#fff}
.lotcard .valmotif:hover{background:var(--navy)}
.lotcard .cboutons,.conflitbox .cboutons{display:flex;flex-wrap:wrap;gap:.4rem}
.lotcard .cboutons button,.conflitbox .cboutons button{
  flex:1 1 auto;cursor:pointer;border-radius:2px;
  font:500 .72rem/1 "Inter",sans-serif;padding:.5rem .6rem;
}
.lotcard .cboutons .oui,.conflitbox .cboutons .oui{background:var(--navy-mid);border:1px solid var(--navy-mid);color:#fff}
.lotcard .cboutons .oui:hover,.conflitbox .cboutons .oui:hover{background:var(--navy)}
.lotcard .cboutons .non,.conflitbox .cboutons .non{background:none;border:1px solid #C4BCA8;color:#5C4A20}
.lotcard .cboutons .non:hover,.conflitbox .cboutons .non:hover{background:rgba(28,105,212,.16)}
.lotcard .x{
  position:absolute;top:.35rem;right:.45rem;border:none;background:none;cursor:pointer;
  font-size:1.05rem;line-height:1;color:#8A94A0;padding:.2rem .3rem;
}
.lotcard .x:hover{color:var(--ink)}
@media (max-width:820px){.lotcard{width:min(280px,84vw);padding:.75rem 1.8rem .8rem .9rem}}
.plans .planfig,.plans .slot.plan,.plans .hotwrap{overflow:visible}
/* la fiche se pose par-dessus : la page de réservation ne doit pas descendre */
body.fichouverte .plans{padding-bottom:0}
@media (max-width:820px){body.fichouverte .plans{padding-bottom:0}}

#planMsg[hidden]{display:none}
#planMsg{
  position:relative;background:#EFEAE0;border-left:3px solid var(--navy-mid);
  padding:.85rem 2.2rem .85rem 1rem;margin:.2rem auto;width:60%;
}
#planMsg.resto{background:#FBF3DF;border-left-color:var(--gold)}
#planMsg.pris{background:#F2EEE8;border-left-color:#8A8478}
#planMsg .t{font:600 .92rem/1.35 "Inter",sans-serif;color:var(--navy);margin-bottom:.3rem}
#planMsg.resto .t{color:#7A5A12}
#planMsg .c{font-size:.84rem;line-height:1.55;color:#4A535E;max-width:none}
#planMsgX{
  position:absolute;top:.5rem;right:.6rem;border:none;background:none;cursor:pointer;
  font-size:1.1rem;line-height:1;color:#8A94A0;padding:.2rem .35rem;
}
#planMsgX:hover{color:var(--ink)}
@media (max-width:1100px){#planMsg{width:78%}}
@media (max-width:820px){#planMsg{width:100%}}
.sitepics{display:flex;flex-direction:column;gap:1.3rem;margin-top:1rem;padding-bottom:.5rem}
.sitepics figure img{margin:0 auto}
/* repères de distance : deux colonnes compactes au lieu d'une liste haute */
.reperes{
  list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.15rem 1.6rem;margin:.9rem 0 0;padding:0;max-width:58ch;
}
.reperes li{
  display:flex;flex-direction:column;gap:.05rem;padding:.42rem 0;
  border-bottom:1px solid var(--rule);
}
.reperes b{font-weight:500;font-size:clamp(.8rem,1.02vw,.94rem)}
.reperes span{font-size:clamp(.72rem,.92vw,.84rem);color:#5E6673}
@media (max-width:620px){.reperes{grid-template-columns:1fr}}
/* la situation se lit en deux colonnes : le texte à gauche, les vues à droite */
@media (min-width:1150px){
  .slide.situ{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
              column-gap:clamp(1.4rem,3vw,3rem);align-content:center}
  .slide.situ > .sitepics{grid-column:2;grid-row:1 / span 20;align-self:center;margin-top:0}
  .slide.situ .reperes{max-width:none}
}
.sitepics figure[hidden],
.sitepics.enchaine > figure[hidden],
.slide.immersif .sitepics.enchaine > figure[hidden]{display:none !important}
.sitepics.enchaine{flex-direction:column;gap:0}
.sitepics.grand{flex-direction:column;gap:1.6rem}
.sitepics.grand > figure{flex:1 1 100%;max-width:none;margin:0}
.sitepics.grand .slot.plan,.sitepics.grand .cadastre .hotwrap{max-width:100%;margin:0 auto}
.sitepics.grand .slot.cover-fit{height:clamp(260px,48vh,520px)}
.sitepics.enchaine > figure{flex:1 1 100%;max-width:none;margin:0}
.sitepics.enchaine .slot.plan,.sitepics.enchaine .cadastre .hotwrap{max-width:100%;margin:0 auto}
.sitepics.enchaine .slot.cover-fit{height:clamp(260px,46vh,520px)}
.sitepics.enchaine{margin-left:-2vw;margin-right:-2vw}
/* ---------- page situation : vue immersive ---------- */
.slide.immersif > .kicker,.slide.immersif > h2,.slide.immersif > p{display:none}
.slide.immersif{
  padding:1.2vh 1.6vw 4.6rem;display:flex;flex-direction:column;justify-content:center;overflow:hidden;
}
@media (max-width:820px){
  .slide.immersif{padding:1.5vh 2vw 1vh}
  .slide.immersif .sitepics.enchaine .slot.plan img,
  .slide.immersif .sitepics.enchaine .slot.cover-fit{max-height:calc(100vh - 13rem)}
}
.slide.immersif .sitepics{margin:0;flex:1;min-height:0;justify-content:center}
.slide.immersif .sitepics.enchaine{margin-left:0;margin-right:0;align-items:center}
.slide.immersif .sitepics.enchaine > figure{
  width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;
}
.slide.immersif .sitepics.enchaine .slot.plan{
  width:auto;max-width:100%;height:auto;min-height:0;flex:0 1 auto;margin:0 auto;
}
.slide.immersif .sitepics.enchaine .hotwrap{width:auto;max-width:100%}
.slide.immersif .sitepics.enchaine .slot.plan img{
  width:100%;max-width:100%;height:auto;object-fit:contain;display:block;
}
.slide.immersif .sitepics.enchaine .slot.cover-fit{
  height:auto;aspect-ratio:4/3;width:100%;margin:0 auto;
}
.slide.immersif .sitepics.enchaine .slot.cover-fit img{height:100%;width:100%;object-fit:cover}
.slide.immersif .sitepics figcaption{
  margin-top:.55rem;text-align:center;width:100%;
  font-size:clamp(.76rem,1vw,.9rem);
}
.slide.immersif #pnav{justify-content:center;margin-top:.5rem}
.slide.immersif .sitepics figcaption{margin-top:.4rem}
.sitepics.enchaine .slot.plan{width:100%;max-width:none}
.sitepics.enchaine .slot.plan img{width:100%;height:auto;max-height:72vh;object-fit:contain}
.sitepics.enchaine .hotwrap{width:100%;max-width:none}
#pnav[hidden]{display:none}
#pnav{
  display:flex;align-items:center;gap:.8rem;margin-top:.7rem;flex-wrap:wrap;
}
#pnav button{
  cursor:pointer;border-radius:2px;background:none;border:1px solid var(--gold);color:var(--gold-pale);
  font:500 .76rem/1 "Inter",sans-serif;padding:.5rem .8rem;
}
#pnav button:hover{background:rgba(28,105,212,.2);color:#fff}
#pnav button[disabled]{opacity:.35;cursor:default}
#pnav button[disabled]:hover{background:none;color:var(--gold-pale)}
#pcount{font:400 .76rem/1 "Inter",sans-serif;color:var(--slate)}
#pcount[hidden],#pprev[hidden]{display:none}

/* la zone qui mène à la vue suivante */
#sitepics.enchaine .zones polygon{pointer-events:auto;cursor:help}
#sitepics.enchaine .zones polygon[data-etape]{cursor:zoom-in}
#sitepics.enchaine .zones polygon:hover,#sitepics.enchaine .zones polygon.on{
  fill:rgba(28,105,212,.3);stroke:var(--gold);stroke-width:3;
}
.tapguide .onde{border-color:#C0392B}
#sitepics .zones polygon[data-etape]{
  pointer-events:auto;cursor:zoom-in;
  fill:#C0392B;fill-opacity:.62;stroke:#7E2A24;stroke-width:2.6;stroke-dasharray:none;
  animation:respire 2.6s ease-in-out infinite;
}
#sitepics .zones polygon[data-etape]:hover,#sitepics .zones polygon[data-etape].on{
  fill-opacity:.82;stroke-width:3.4;
}
@keyframes respire{0%,100%{opacity:.75}50%{opacity:1}}

/* doigt animé */
.tapguide{
  position:absolute;z-index:8;pointer-events:none;width:0;height:0;
  transition:opacity .25s;
}
.tapguide.off{opacity:0}
.tapguide svg{
  position:absolute;left:-14px;top:-6px;width:40px;height:52px;
  fill:rgba(255,255,255,.96);stroke:#262e38;stroke-width:2.2;
  stroke-linecap:round;stroke-linejoin:round;
  filter:drop-shadow(0 3px 7px rgba(0,0,0,.4));
  animation:doigt 4.2s ease-in-out infinite;
}
.tapguide .onde{
  position:absolute;left:-17px;top:-17px;width:34px;height:34px;border-radius:50%;
  border:2px solid var(--gold);opacity:0;
  animation:onde 4.2s ease-out infinite;
}
@keyframes doigt{
  0%{opacity:0;transform:translateY(150px)}
  14%{opacity:1}
  40%{opacity:1;transform:translateY(0)}
  48%{transform:translateY(5px) scale(.9)}
  56%{transform:translateY(0) scale(1)}
  64%{transform:translateY(5px) scale(.9)}
  72%{transform:translateY(0) scale(1)}
  92%{opacity:1;transform:translateY(0)}
  100%{opacity:0;transform:translateY(0)}
}
@keyframes onde{
  0%,46%{opacity:0;transform:scale(.3)}
  52%{opacity:.9;transform:scale(.5)}
  78%{opacity:0;transform:scale(1.9)}
  100%{opacity:0;transform:scale(1.9)}
}
/* une fois la zone approchée, le doigt reste en place et se contente de taper */
.tapguide.pose svg{animation:tape 2.4s ease-in-out infinite}
.tapguide.pose .onde{animation:onde2 2.4s ease-out infinite}
@keyframes tape{
  0%,54%,100%{opacity:1;transform:translateY(0) scale(1)}
  18%{transform:translateY(5px) scale(.9)}
  28%{transform:translateY(0) scale(1)}
  38%{transform:translateY(5px) scale(.9)}
  46%{transform:translateY(0) scale(1)}
}
@keyframes onde2{
  0%{opacity:0;transform:scale(.3)}
  16%{opacity:.9;transform:scale(.5)}
  46%{opacity:0;transform:scale(1.8)}
  100%{opacity:0;transform:scale(1.8)}
}

@media (prefers-reduced-motion:reduce){
  .tapguide svg,.tapguide .onde{animation:none}
  .tapguide svg{opacity:1;transform:none}
}
body.editing #sitepics .zones polygon[data-etape]{animation:none;cursor:pointer}

.ordrebox{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:60;
  background:var(--paper);color:var(--ink);border:1px solid var(--navy-mid);
  border-radius:2px;padding:.9rem 1rem;box-shadow:0 14px 34px rgba(8,20,38,.4);
}
.ordrebox p{
  font:600 .8rem/1.3 "Inter",sans-serif;color:var(--navy);margin:0 0 .55rem;max-width:none;
}
.ordrebox .ob{display:flex;gap:.35rem;flex-wrap:wrap}
.ordrebox button{
  cursor:pointer;border-radius:2px;border:1px solid var(--navy-mid);background:none;color:var(--navy-mid);
  font:600 .82rem/1 "Inter",sans-serif;padding:.5rem .7rem;min-width:2.2rem;
}
.ordrebox button:hover{background:var(--navy-mid);color:#fff}
.ordrebox .aucun{border-color:#C4BCA8;color:#7A8390;font-weight:400}
.sitepics figure{display:flex;flex-direction:column}
.sitepics .slot.plan{margin-top:0}
.sitepics .slot.cover-fit{height:clamp(190px,34vh,360px);border:none}
.cadastre{display:flex;flex-direction:column;margin-top:1.4rem}
.cadastre .slot.plan{margin-top:0;width:100%}
.cadastre figcaption{font:400 .74rem/1.4 "Inter",sans-serif;color:var(--slate);margin-top:.4rem}
.cadastre figcaption b{color:var(--gold);font-weight:600}
.cadastre figcaption b.parc{cursor:help;border-bottom:1px dotted var(--gold)}
.cadastre figcaption b.parc:hover{color:#fff;background:rgba(28,105,212,.28)}
@media (min-width:1100px){.cadastre .hotwrap{max-width:74%;margin:0 auto}}
.sitepics figcaption{
  font:400 .74rem/1.4 "Inter",sans-serif;color:var(--slate);margin-top:.4rem;
}
@media (min-width:1100px){
  .sitepics{flex-direction:row;align-items:flex-start}
  .sitepics figure{flex:1;min-width:0}
  .sitepics .slot.cover-fit{height:clamp(200px,30vh,330px)}
}
.plans figcaption{align-self:flex-start;
  font:600 clamp(.8rem,1.15vw,.98rem)/1.3 "Inter",sans-serif;
  color:var(--navy-mid);margin-bottom:.3rem;letter-spacing:.01em;
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;
}
.slide p b{font-weight:600;color:var(--gold-pale)}
.paper p b{color:var(--navy-mid)}
.plans figcaption span{
  font-weight:400;font-size:.82em;color:#6B7683;letter-spacing:.06em;
}
.planbox{margin:.5rem 0 .2rem}
.rule-note{
  background:#EFEAE0;border-left:3px solid var(--navy-mid);
  padding:.7rem .9rem;font-size:clamp(.78rem,1.05vw,.92rem);line-height:1.55;
  color:#3A4350;max-width:none;
}

.photojour{display:flex;flex-direction:column;margin:1.1rem 0 0}
.photojour .slot.cover-fit{
  position:relative;height:clamp(180px,30vh,320px);border:none;border-radius:2px;overflow:hidden;
}
.pjbadge{
  position:absolute;top:.7rem;left:.7rem;z-index:4;
  font:600 .62rem/1 "Inter",sans-serif;letter-spacing:.11em;text-transform:uppercase;
  color:var(--navy);background:var(--gold);padding:.35rem .6rem;border-radius:2px;
  box-shadow:0 2px 10px rgba(0,0,0,.35);
}
.photojour figcaption{
  font:400 .76rem/1.5 "Inter",sans-serif;color:var(--slate);margin-top:.45rem;
}
.photojour figcaption .pjdate{color:var(--gold-pale);font-weight:600}
@media (min-width:1100px){.photojour .slot.cover-fit{height:clamp(220px,32vh,340px)}}

.chantier{display:flex;gap:clamp(1.2rem,3vw,2.6rem);margin-top:1.2rem;flex-wrap:wrap;align-items:flex-start}
.chrono{list-style:none;margin:0;padding:0;flex:1 1 380px;min-width:0;position:relative}
.chrono::before{content:'';position:absolute;left:7px;top:8px;bottom:14px;width:1px;background:var(--rule)}
.chrono li{position:relative;padding:0 0 1.1rem 2rem}
.chrono li::before{
  content:'';position:absolute;left:0;top:5px;width:15px;height:15px;border-radius:50%;
  border:2px solid var(--gold);background:var(--navy);
}
.chrono li[data-etat="fait"]::before{background:#2E6B3E;border-color:#2E6B3E}
/* pastilles pleines : coche blanche sur vert pour le terminé, marron pour le reste */
.chrono li[data-etat]::before{display:flex;align-items:center;justify-content:center;box-sizing:border-box;
  font:700 9px/1 "Inter",Arial,sans-serif;color:#fff}
.chrono li[data-etat="fait"]::before{content:'\2713';background:#2E6B3E!important;border-color:#2E6B3E!important}
.chrono li[data-etat="encours"]::before{background:#0653b6!important;border-color:#0653b6!important}
.chrono li[data-etat="attente"]::before{background:#0653b6!important;border-color:#0653b6!important}
.chrono li[data-etat="avenir"]::before{background:#D9C29A!important;border-color:#B8862B!important}
.chrono li[data-etat="encours"]::before{background:var(--gold);border-color:var(--gold)}
.chrono li[data-etat="attente"]::before{background:#B8862B;border-color:#B8862B}
.chrono li[data-etat="avenir"]::before{background:transparent;border-color:rgba(28,105,212,.5)}
.chrono .date{
  display:block;font:600 .68rem/1.3 "Inter",sans-serif;letter-spacing:.11em;
  text-transform:uppercase;color:var(--gold);margin-bottom:.15rem;
}
.chrono .t{display:block;font-family:"Fraunces",Georgia,serif;font-size:clamp(1rem,1.5vw,1.2rem);
  color:var(--paper);line-height:1.2;margin-bottom:.25rem}
.chrono .c{display:block;font-size:.84rem;line-height:1.55;color:var(--slate);max-width:52ch}
.chrono li[data-etat="fait"] .t::after,
.chrono li[data-etat="encours"] .t::after,
.chrono li[data-etat="attente"] .t::after{
  font:500 .6rem/1 "Inter",sans-serif;letter-spacing:.08em;text-transform:uppercase;
  margin-left:.55rem;padding:.24rem .42rem;border-radius:2px;vertical-align:middle;
}
.chrono li[data-etat="fait"] .t::after{content:'terminé';background:rgba(46,107,62,.28);color:#8FD3A4}
.chrono li[data-etat="encours"] .t::after{content:'en cours';background:rgba(28,105,212,.28);color:var(--gold-pale)}
.chrono li[data-etat="attente"] .t::after{content:'en attente';background:rgba(184,134,43,.26);color:#E0BC7A}
body.editing .chrono li{cursor:pointer;outline:1px dashed rgba(28,105,212,.35);outline-offset:3px}

.chphotos{flex:0 1 320px;display:flex;flex-direction:column;gap:.7rem;min-width:0}
.chphotos .slot.cover-fit{height:clamp(120px,15vh,165px);border:none}
.chphotos figcaption{font:400 .7rem/1.35 "Inter",sans-serif;color:var(--slate);margin-top:.35rem}
.muted .maj{color:var(--gold-pale);font-weight:600}
@media (max-width:820px){
  .chantier{flex-direction:column;gap:1.4rem}
  .chphotos{flex-direction:row;width:100%}
  .chphotos figure{flex:1;min-width:0}
}

.faq{display:grid;grid-template-columns:1fr;gap:.2rem;margin-top:.6rem;max-width:80ch}
@media (min-width:1100px){.faq{grid-template-columns:1fr 1fr;gap:.2rem 2.4rem;max-width:none;align-items:start}}
.faq details{border-bottom:1px solid #DCD6C8}
.faq summary{
  cursor:pointer;list-style:none;padding:.72rem 1.6rem .72rem 0;position:relative;
  font:500 clamp(.86rem,1.15vw,1rem)/1.4 "Inter",sans-serif;color:var(--navy);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:'+';position:absolute;right:.2rem;top:.62rem;
  font:300 1.1rem/1 "Inter",sans-serif;color:var(--gold);
}
.faq details[open] summary::after{content:'\2212'}
.faq summary:hover{color:var(--navy-mid)}
.faq .faqin{overflow:hidden}
    .faq details p{
  font-size:clamp(.82rem,1.05vw,.92rem);line-height:1.6;color:#4A535E;
  margin:0 0 .85rem;max-width:none;
}
.faq a{color:var(--navy-mid)}

/* ---------- galerie ---------- */
.gal{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);
  gap:.6rem;flex:1;min-height:0;margin-top:.4rem}
.gal figure{position:relative;overflow:hidden;background:#E4DFD6;min-height:0}
.gal img{width:100%;height:100%;object-fit:cover;display:block}
.gal figcaption{position:absolute;left:0;right:0;bottom:0;
  padding:.5rem .7rem;font-size:.74rem;line-height:1.3;color:#fff;
  background:linear-gradient(transparent,rgba(26,33,41,.88))}
@media (max-width:820px){.gal{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,1fr)}}

/* ---------- mode édition ---------- */
body.editing [contenteditable]{outline:1px dashed rgba(28,105,212,.55);outline-offset:3px;border-radius:1px}
body.editing.has-paper [contenteditable]{}
body.editing .paper [contenteditable]{outline-color:rgba(23,53,94,.4)}
body.editing [contenteditable]:focus{outline:2px solid var(--gold);background:rgba(28,105,212,.12)}

.gal figure .imgtools{top:.5rem;right:.5rem;bottom:auto}
#editnote{
  position:fixed;top:1.1rem;left:50%;transform:translateX(-50%);z-index:60;
  display:none;background:var(--gold);color:var(--navy);
  font-size:.76rem;padding:.45rem .9rem;border-radius:2px;font-weight:500;
}
body.editing #editnote{display:block}


/* ---------- réservation ---------- */
.lotbtn{
  font:500 1em/1 "Inter",sans-serif;color:var(--navy-mid);
  background:rgba(23,53,94,.08);border:1px solid rgba(23,53,94,.25);
  padding:.28rem .6rem;border-radius:2px;cursor:pointer;min-width:3.2ch;
}
.lotbtn:hover{background:var(--navy-mid);color:var(--paper)}
.lotbtn:focus-visible{outline:2px solid var(--navy-mid);outline-offset:2px}
.lotbtn[disabled]{opacity:.4;cursor:not-allowed;background:none}
.tbl td.st{font-size:.92em;white-space:nowrap}
.tbl tr[data-status="reserve"] td{opacity:.62}
.tbl tr[data-status="loue"] td{opacity:.45}
.tbl td.dem{white-space:nowrap;font-size:.9em}
.tbl td.dem .badge{
  display:inline-block;background:#FBF3DF;border:1px solid rgba(28,105,212,.75);
  color:#0653b6;font-weight:600;font-size:.82em;padding:.18rem .42rem;border-radius:2px;
}
body.editing .tbl td.dem{cursor:pointer;outline:1px dashed rgba(23,53,94,.4);outline-offset:2px}
td.st[data-status="reserve"]{color:#9A6B12;font-weight:500}
td.st[data-status="loue"]{color:#8A3A3A;font-weight:500}
body.editing td.st{cursor:pointer;outline:1px dashed rgba(23,53,94,.4);outline-offset:2px}

#selbar[hidden]{display:none}
#selbar{
  position:fixed;left:50%;transform:translateX(-50%);bottom:4.4rem;z-index:120;
  display:flex;align-items:center;gap:.6rem;
  background:var(--navy);border:1px solid var(--gold);border-radius:2px;
  padding:.55rem .7rem;box-shadow:0 8px 28px rgba(0,0,0,.45);
}
#selCount{color:var(--gold-pale);font-size:.84rem;font-weight:500;padding:0 .4rem;white-space:nowrap}
#selCount.refus{color:#F0A9A2}
#selbar button{
  font:500 .82rem/1 "Inter",sans-serif;cursor:pointer;
  padding:.55rem .9rem;border-radius:2px;border:1px solid transparent;
}
#selGo{background:#2E6B3E;color:#fff}
#selGo:hover{background:#245631}
#selClear{background:none;color:var(--slate);border-color:rgba(135,148,164,.45)}
#selClear:hover{color:var(--paper);border-color:var(--paper)}
body.presenting #selbar,body.editing #selbar{display:none}
@media (max-width:620px){#selbar{bottom:4rem;width:calc(100% - 2rem);justify-content:space-between}}

.tbl tr.sel td{background:rgba(46,107,62,.13)}
.tbl tr.envoye td{background:rgba(46,107,62,.06)}
.tbl em.sent{
  display:block;font-style:normal;font-size:.78em;font-weight:600;
  color:#2E6B3E;letter-spacing:.02em;margin-top:.1rem;
}
.lotbtn.envoye{border-color:#2E6B3E;color:#2E6B3E}
.lotbtn.sel{background:#2E6B3E;border-color:#2E6B3E;color:#fff}
.tbl tr.hors,.tbl tr.grp.hors{display:none}
.miniplans{
  display:flex;gap:clamp(.6rem,1.6vw,1.2rem);margin-top:.9rem;align-items:flex-start;
}
.miniplans .mini{flex:1 1 0;min-width:0}
.miniplans .minicap{
  display:block;font:600 .66rem/1.3 "Inter",sans-serif;letter-spacing:.08em;
  text-transform:uppercase;color:var(--navy-mid);margin-bottom:.25rem;
}
.miniplans .hotwrap{width:100%}
.miniplans .mini,.miniplans .hotwrap{overflow:visible}
.usagecard{width:min(300px,78vw);z-index:150}
/* la question d'usage en fenêtre centrée */
.usagefond{
  position:fixed;inset:0;z-index:230;display:flex;align-items:center;justify-content:center;
  background:rgba(8,20,38,.55);padding:4vh 4vw;animation:usagevoile .18s ease-out;
}
.usagefond .lotcard.usagecard{
  position:relative!important;left:auto!important;top:auto!important;bottom:auto!important;
  transform:none!important;width:min(380px,92vw);margin:0;box-shadow:0 24px 60px rgba(0,0,0,.4);
}
.usagefond .lotcard.usagecard::before,.usagefond .lotcard.usagecard::after{display:none!important}
.usagefond .usagecard .quoi{font-size:.95rem}
/* avertissement sur la restauration */
.avertresto{margin-top:.8rem;padding:.75rem .8rem;border-left:3px solid #B85408;background:rgba(184,84,8,.1);border-radius:2px}
.avertresto p{margin:0 0 .6rem;font:400 .8rem/1.5 "Inter",sans-serif;color:#6B3208;text-align:left}
.avertresto b{font-weight:600}
.avbtns{display:flex;flex-direction:column;gap:.4rem}
.avertresto button{padding:.55rem .7rem;border-radius:2px;cursor:pointer;font:600 .76rem/1.3 "Inter",sans-serif}
.voirresto{background:#B85408;color:#fff;border:1px solid #B85408}
.voirresto:hover{background:#8E4305}
.autreusage{background:none;color:#6B3208;border:1px solid rgba(184,84,8,.5)}
html[data-theme="etude"] .avertresto *{font-family:"Inter",sans-serif}
/* retour à la réservation, comme la barre de sélection */
/* bandeau de retour : à la fin de la page des questions, avant le chantier */
#retourresa{
  position:relative;width:100%;margin:2rem 0 .4rem;padding:.9rem 1rem 1rem;
  background:rgba(43,88,150,.9);border:1px solid rgba(255,255,255,.3);border-radius:14px;
  box-shadow:0 10px 26px rgba(8,20,38,.18);
}
.flott.nomvu .flottnom{opacity:1;transform:translateX(-50%) translateY(0)}
#retourresa .rr-txt{
  margin:0;text-align:center!important;color:#fff;
  font:600 .86rem/1.3 "Inter",sans-serif;letter-spacing:.02em;max-width:none;
}
#retourresa .rr-choix{display:flex;gap:.7rem;justify-content:center;margin-top:.55rem;flex-wrap:wrap}
#retourresa .rr-choix button{
  flex:0 1 15rem;padding:.6rem 1rem;border-radius:2px;cursor:pointer;
  font:600 .78rem/1.2 "Inter",sans-serif;
}
#retourresa .rr-rester{background:#fff;color:#1B3A63;border:1px solid #fff}
#retourresa .rr-rester:hover{background:#F2D79A;border-color:#F2D79A}
#retourresa .rr-changer{background:none;color:#fff;border:1px solid rgba(255,255,255,.7)}
#retourresa .rr-changer:hover{background:rgba(255,255,255,.18)}
@media (max-width:520px){ #retourresa .rr-choix button{flex:1 1 100%} }
#retourresa b{font-weight:700;color:#F2D79A}
#retourresa .rr-fl{display:flex;flex-direction:column;align-items:center;line-height:0;margin-top:.35rem}
#retourresa .rr-fl svg{
  width:26px;height:17px;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;
  animation:rrdescend 3s ease-in-out infinite;
}
#retourresa .rr-fl svg:last-child{margin-top:-7px;animation-delay:.16s}
@keyframes rrdescend{
  0%,62%,100%{transform:translateY(0);opacity:.75}
  70%{transform:translateY(5px);opacity:1}
  78%{transform:translateY(0);opacity:.75}
  86%{transform:translateY(5px);opacity:1}
  94%{transform:translateY(0);opacity:.75}
}
#retourresa .rr-x{
  position:absolute;top:.4rem;right:.5rem;width:1.7rem;height:1.7rem;padding:0;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  background:#C0392B;color:#fff;border:1px solid rgba(255,255,255,.5);border-radius:50%;
  font:400 1.05rem/1 system-ui,sans-serif;
}
#retourresa .rr-x:hover{background:#9C2C20}
html[data-theme="etude"] #retourresa{font-family:"Inter",sans-serif}
@media (prefers-reduced-motion:reduce){ #retourresa .rr-fl svg{animation:none} }
@media (max-width:560px){ #retourresa .rr-go{font-size:.78rem} }
#retourresa[hidden]{display:none}
#retourresa:hover{background:var(--navy-mid)}
#retourresa span{font-size:1.1rem;line-height:1}
html[data-theme="etude"] #retourresa{font-family:"Inter",sans-serif}
.usagefond .usagecard .profils button{padding:.62rem .8rem}
@keyframes usagevoile{from{opacity:0}to{opacity:1}}
.miniplans .hotwrap img{display:block;width:100%;height:auto}
.miniplans .hotspot .hs{font-size:.58rem;padding:.16rem .28rem}
.plans .hotspot .hs{font-size:.58rem;padding:.16rem .28rem}
.legfanions{
  display:flex;flex-wrap:wrap;gap:.2rem 1.4rem;margin:.55rem 0 0;max-width:none;
  font:400 clamp(.7rem,.95vw,.8rem)/1.4 "Inter",sans-serif;color:#5A6472;
}
.legfanions .lf{display:inline-flex;align-items:center;gap:.4rem}
.legfanions .f{width:11px;flex:0 0 auto;line-height:0}
.legfanions .f svg{display:block;width:100%;height:auto;overflow:visible}
.miniplans .hotspot .hs::after,.miniplans .hotspot .hs::before{content:''}
#schemafaq .hotspot{border-color:transparent;background:transparent}
/* lot survolé dans la maquette 3D : même repère que le survol à la souris sur les plans */
#schemafaq .hotspot.hov3d .hs{opacity:1}

#schemafaq .hotspot:hover{border-color:var(--navy-mid);background:rgba(23,53,94,.14)}
/* phrase « stricte » : seuls les lots dont elle parle réagissent au survol */
#schemafaq.strict .hotspot:not(.illrouge):not(.illvert):not(.ill):hover{
  border-color:transparent;background:transparent;cursor:default;
}
#schemafaq.strict .hotspot:not(.illrouge):not(.illvert):not(.ill):hover .hs{opacity:0}
#schemafaq.rdcvert .hotspot.rdc:not(.illresto):not(.illresto2):hover{border-color:#2E6B3E;background:rgba(46,107,62,.2)}
#schemafaq.rdcvert .hotspot.rdc:not(.illresto):not(.illresto2):hover .hs{background:#2E6B3E}
#schemafaq .hotspot .hs{background:var(--navy-mid);opacity:0}
#schemafaq .hotspot:hover .hs{opacity:1}
#faqplans[hidden]{display:none}
#faqplans{animation:planapp .22s ease-out}
@keyframes planapp{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
#schemafaq .hotspot.ill{
  border-color:var(--navy-mid);background:rgba(23,53,94,.26);border-width:2px;
}
#schemafaq .hotspot.ill .hs{opacity:1;background:var(--navy-mid)}
#schemafaq .hotspot.illvert{
  border-color:#2E6B3E;background:rgba(46,107,62,.26);border-width:2px;
}
#schemafaq .hotspot.illvert .hs{opacity:1;background:#2E6B3E}
#schemafaq .hotspot.illvert.fonce{background:rgba(46,107,62,.52);border-color:#1E4A2A}
#schemafaq .hotspot.illvert.fonce .hs{background:#1E4A2A}
#schemafaq .grplab.vert{background:#2E6B3E}
#schemafaq .hotspot.illrouge,.miniplans .hotspot.illrouge{
  background:rgba(192,57,43,.2);border-color:#C0392B;border-width:2px;border-style:dashed;
}
#schemafaq .hotspot.illrouge .hs,.miniplans .hotspot.illrouge .hs{opacity:1;background:#C0392B;color:#fff}
#schemafaq .hotspot.illrouge.fonce,.miniplans .hotspot.illrouge.fonce{
  background:rgba(192,57,43,.58);border-color:#8E2A20;border-style:solid;
}
#schemafaq .hotspot.illrouge.fonce .hs,.miniplans .hotspot.illrouge.fonce .hs{background:#8E2A20}
#schemafaq .hotspot.illresto,.miniplans .hotspot.illresto{
  background:rgba(184,84,8,.26);border-color:#B85408;border-width:2px;
  box-shadow:none;
}
#schemafaq .hotspot.illresto .hs,.miniplans .hotspot.illresto .hs{opacity:1;background:#B85408;color:#fff;font-weight:700}
#schemafaq .hotspot.illresto.fonce,.miniplans .hotspot.illresto.fonce{background:rgba(184,84,8,.5);border-color:#8E4305}
#schemafaq .hotspot.illresto2.fonce,.miniplans .hotspot.illresto2.fonce{background:rgba(184,84,8,.5);border-color:#8E4305;border-style:solid}
#schemafaq .hotspot.illresto2.fonce .hs{background:#8E4305}
#schemafaq .hotspot.illresto2,.miniplans .hotspot.illresto2{
  background:rgba(184,84,8,.22);border-color:rgba(184,84,8,.7);border-style:dashed;border-width:2px;
}
#schemafaq .hotspot.illresto2 .hs,.miniplans .hotspot.illresto2 .hs{opacity:1;background:rgba(184,84,8,.85);color:#fff}
#schemafaq .chipduo{
  position:absolute;z-index:7;pointer-events:none;transform:translate(-50%,-125%);white-space:nowrap;
  font:600 clamp(.52rem,.8vw,.66rem)/1 "Inter",sans-serif;letter-spacing:.05em;
  color:#fff;background:rgba(184,84,8,.9);padding:.2rem .4rem;border-radius:2px;
}
#schemafaq .chipbas{
  position:absolute;z-index:7;pointer-events:none;transform:translate(-50%,28%);white-space:nowrap;
  font:600 clamp(.52rem,.8vw,.66rem)/1 "Inter",sans-serif;letter-spacing:.05em;
  color:#fff;background:#2E6B3E;padding:.2rem .4rem;border-radius:2px;
}
#schemafaq .hotspot.fonce{
  background:rgba(26,33,41,.5);border-color:var(--navy);border-width:2px;
}
#schemafaq .hotspot.fonce .hs{opacity:1;background:var(--navy)}
#schemafaq .hotspot.croix{background:rgba(192,57,43,.1);border-color:rgba(192,57,43,.45)}
#schemafaq .hotspot.croix::after{
  content:'\2715';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  color:#C0392B;font:700 clamp(.9rem,1.8vw,1.5rem)/1 "Inter",sans-serif;opacity:.9;
  text-shadow:0 1px 2px rgba(255,255,255,.7);
}
#schemafaq .hotspot.croix .hs{
  opacity:1;background:#C0392B;color:#fff;position:relative;z-index:3;
  transform:translateY(-135%);
}
#schemafaq .grplab{
  position:absolute;z-index:7;pointer-events:none;
  transform:translate(-50%,-125%);white-space:nowrap;
  font:600 clamp(.55rem,.85vw,.7rem)/1 "Inter",sans-serif;letter-spacing:.06em;
  color:var(--paper);background:var(--navy-mid);padding:.22rem .44rem;border-radius:2px;
}
#schemafaq .pasdup{
  position:absolute;z-index:8;pointer-events:none;transform:translate(-50%,-125%);
  white-space:nowrap;
  font:600 clamp(.52rem,.8vw,.66rem)/1 "Inter",sans-serif;letter-spacing:.05em;
  color:#fff;background:#C0392B;padding:.2rem .4rem;border-radius:2px;
}
/* Code visuel unique, sur tout le site, pour un mot qui déclenche quelque chose
   sur place plutôt que d'emmener ailleurs : couleur, soulignement en pointillés
   (le trait plein reste réservé aux liens qui font changer de page), curseur en
   main, et un état net au survol comme au clavier. Le soulignement est permanent :
   sur un écran tactile, il n'y a pas de survol pour le révéler. */
.faq .lien{
  color:var(--navy-mid);font-weight:600;cursor:pointer;
  text-decoration:underline dotted;text-decoration-thickness:1.5px;text-underline-offset:3px;
  border-radius:2px;padding:0 .1em;transition:background .15s var(--ease),color .15s var(--ease);
}
.faq .lien:hover,.faq .lien:focus-visible{
  background:rgba(23,53,94,.14);text-decoration-style:solid;outline:none;
}
.faq .lien:focus-visible{box-shadow:0 0 0 2px var(--gold)}
.faq .lien.fixe{background:rgba(23,53,94,.18);text-decoration-style:solid}
.faq .lien.resto{color:#B85408}
.faq .lien.resto:hover,.faq .lien.resto:focus-visible{background:rgba(184,84,8,.18)}
.faq .lien.resto.fixe{background:rgba(184,84,8,.28)}
/* les questions obéissent au même code */
.faq summary{cursor:pointer}
/* repère des questions illustrées sur les plans */
.faq summary .marqueur{
  display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;
  width:1.15em;height:1.15em;margin-left:.45em;flex:0 0 auto;
}
.faq summary .marqueur svg{
  width:100%;height:100%;fill:none;stroke:var(--navy-mid);stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;
}
html[data-theme="etude"] .faq summary .marqueur svg{stroke:#1B4C8C}
.faq details[open] summary .marqueur svg,.faq summary:hover .marqueur svg{stroke:#B8862B}
.faq summary:hover,.faq summary:focus-visible{text-decoration:underline;text-underline-offset:3px;outline:none}
.faq summary:focus-visible{box-shadow:0 0 0 2px var(--gold);border-radius:2px}
html[data-theme="etude"] .faq .lien{color:#1B4C8C;text-decoration-color:#1B4C8C}
html[data-theme="etude"] .faq .lien:hover,html[data-theme="etude"] .faq .lien:focus-visible{background:rgba(27,76,140,.14)}
html[data-theme="etude"] .faq .lien.fixe{background:rgba(27,76,140,.2)}
html[data-theme="etude"] .faq .lien.resto{color:#1B4C8C;text-decoration-color:#1B4C8C}
html[data-theme="etude"] .faq .lien.resto:hover,html[data-theme="etude"] .faq .lien.resto:focus-visible{background:rgba(27,76,140,.14)}
html[data-theme="etude"] .faq .lien.resto.fixe{background:rgba(27,76,140,.2)}
.miniplans .hotspot .sub{
  position:absolute;left:50%;top:50%;transform:translate(-50%,16px);
  font:500 .52rem/1 "Inter",sans-serif;letter-spacing:.03em;white-space:nowrap;
  color:#fff;background:rgba(26,33,41,.9);padding:.14rem .28rem;border-radius:2px;
  pointer-events:none;
}
.miniplans .hotspot .sub.resto{background:#C0605A}
.miniplans .hotspot .sub[hidden]{display:none}
.miniplans .hotspot.zind .sub{background:#8E332C}
.miniplans .hotspot.zduo .sub{background:rgba(26,33,41,.92)}
.miniplans .hotspot.zsel .sub,.miniplans .hotspot.zgrow .sub{background:#2E6B3E}
.miniplans .lift{border-width:1px}
.miniplans .liftlab{font-size:.5rem;padding:.16rem .3rem;gap:.2rem}
.miniplans .liftlab .x{display:none}
.miniplans .leaders line{stroke-width:1;stroke-dasharray:3 2}
.miniplans .hotspot.zduo{background:rgba(23,53,94,.14);border-color:rgba(23,53,94,.7);border-style:dashed}
.miniplans .hotspot.zduo .hs{opacity:1;background:rgba(26,33,41,.92);color:#fff}

.miniplans .hotspot.zsel .hs,.miniplans .hotspot.zgrow .hs,.miniplans .hotspot.zind .hs{opacity:1}
.miniplans .hotspot.zind{background:rgba(179,69,61,.26);border-color:#B3453D;border-style:dashed}
.miniplans .hotspot.zind .hs{background:#8E332C;color:#fff}


.miniplans .hotspot.hov{background:rgba(28,105,212,.34);border-color:var(--gold);border-width:2px;
  outline:2px solid #fff;outline-offset:2px}
#schemafaq .minicap{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
#schemafaq .destlab{
  font:600 .58rem/1 "Inter",sans-serif;letter-spacing:.04em;text-transform:none;
  color:#fff;padding:.2rem .4rem;border-radius:2px;
}
#schemafaq .destlab.com{background:#2E6B3E}
#schemafaq .destlab.bur{background:#262e38}
.miniplans .hotspot.hov .hs{opacity:1}
@media (max-width:820px){.miniplans{flex-direction:column}
      .plans{flex-direction:column;gap:.9rem}}
.tbl tr.vise td{background:rgba(28,105,212,.22);transition:background .4s}
.tbl tr.vise td:first-child{box-shadow:inset 3px 0 0 var(--gold)}
.lotbtn.sel:hover{background:#245631}

#resa .voies{display:flex;gap:.9rem;margin-top:1.1rem;flex-wrap:wrap}
#resa .voie{flex:1 1 200px;min-width:0;display:flex;flex-direction:column;gap:.45rem}
#resa .vt{
  font:600 .7rem/1.3 "Inter",sans-serif;letter-spacing:.06em;text-transform:uppercase;
  color:var(--navy-mid);margin:0;max-width:none;
}
#resa .voie button{width:100%}
#comWarn[hidden]{display:none}
#comWarn{
  background:#FBF3DF;border-left:3px solid var(--gold);
  padding:.8rem .95rem;margin-top:1rem;
}
#comWarn p{font:400 .82rem/1.55 "Inter",sans-serif;color:#5C4A20;max-width:none;margin:0}
#comWarn p+p{margin-top:.5rem}
#comWarn strong{color:#7A5A12}
#comWarn .cw{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.75rem}
#comWarn .cw button{
  flex:1 1 auto;cursor:pointer;border-radius:2px;
  font:500 .78rem/1 "Inter",sans-serif;padding:.55rem .7rem;
}
#comWarn .second{background:var(--navy-mid);border:1px solid var(--navy-mid);color:#fff}
#comWarn .second:hover{background:var(--navy)}
#comWarn .quand{background:none;border:1px solid #C4BCA8;color:#5C4A20}
#comWarn .quand:hover{background:rgba(28,105,212,.18)}

#bailWarn[hidden]{display:none}
#bailWarn{
  background:#FDF4F3;border-left:3px solid #B3453D;
  padding:.8rem .95rem;margin-top:1rem;
}
#bailWarn p{font-size:.84rem;line-height:1.55;color:#7A3029;max-width:none}
#bailWarn p+p{margin-top:.5rem}
#bailWarn strong{color:#B3453D}
#bailBack{
  margin-top:.7rem;font:500 .79rem/1 "Inter",sans-serif;cursor:pointer;
  background:none;color:#B3453D;border:1px solid #B3453D;border-radius:2px;padding:.45rem .8rem;
}
#bailBack:hover{background:#B3453D;color:#fff}

#fsgate[hidden]{display:none}
#fsgate{
  position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;
  background:rgba(8,20,38,.94);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
}
.fsbox{text-align:center;padding:2rem}
.fsbox .fst{
  font:400 clamp(.95rem,1.6vw,1.2rem)/1.5 "Inter",sans-serif;
  color:var(--gold-pale);margin-bottom:1.6rem;max-width:32ch;
}
.fsbox button{
  display:block;margin:.5rem auto;cursor:pointer;border-radius:2px;
  font:500 .88rem/1 "Inter",sans-serif;padding:.85rem 1.6rem;
}
#fsGo{background:var(--gold);color:var(--navy);border:1px solid var(--gold);font-weight:600}
#fsGo:hover{background:var(--gold-pale);border-color:var(--gold-pale)}
#fsNo{background:none;color:var(--slate);border:1px solid transparent;font-size:.8rem}
#fsNo:hover{color:var(--paper)}

#rdv[hidden]{display:none}
#rdv{
  position:fixed;inset:0;z-index:215;display:flex;align-items:center;justify-content:center;
  background:rgba(8,20,38,.72);padding:4vh 4vw;
}
#rdv .sheet{
  background:var(--paper);color:var(--ink);width:min(520px,100%);
  max-height:92vh;overflow:auto;padding:2rem 2.1rem 1.6rem;border-radius:2px;
  position:relative;box-shadow:0 24px 60px rgba(0,0,0,.4);
}
#rdv h3{font-size:1.4rem;margin-bottom:.3rem}
#rdv .close{
  position:absolute;top:1rem;right:1rem;border:none;background:none;cursor:pointer;
  font:400 .8rem/1 "Inter",sans-serif;color:#6B7683;padding:.4rem;
}
#rdvErr{font-size:.8rem;margin:.9rem 0 0;min-height:1.1em}
#rdvSend{background:var(--navy-mid);color:var(--paper);border-color:var(--navy-mid)}
#rdvSend:hover{background:var(--navy)}
#rdvGo{background:none;color:var(--navy-mid);border-color:var(--navy-mid)}
#rdvGo:hover{background:rgba(23,53,94,.09)}

#rdv[hidden]{display:none}
#rdv{
  position:fixed;inset:0;z-index:215;display:flex;align-items:center;justify-content:center;
  background:rgba(8,20,38,.72);padding:4vh 4vw;
}
#rdv .sheet{
  background:var(--paper);color:var(--ink);width:min(520px,100%);
  max-height:92vh;overflow:auto;padding:2rem 2.1rem 1.6rem;border-radius:2px;
  position:relative;box-shadow:0 24px 60px rgba(0,0,0,.4);
}
#rdv h3{font-size:1.4rem;margin-bottom:.3rem}
#rdv .close{
  position:absolute;top:1rem;right:1rem;border:none;background:none;cursor:pointer;
  font:400 .8rem/1 "Inter",sans-serif;color:#6B7683;padding:.4rem;
}
#rdvErr{font-size:.8rem;margin:.9rem 0 0;min-height:1.1em}
#rdvSend{background:var(--navy-mid);color:var(--paper);border-color:var(--navy-mid)}
#rdvSend:hover{background:var(--navy)}
#rdvGo{background:none;color:var(--navy-mid);border-color:var(--navy-mid)}
#rdvGo:hover{background:rgba(23,53,94,.09)}

#alerte[hidden]{display:none}
#alerte{
  position:fixed;inset:0;z-index:210;display:flex;align-items:center;justify-content:center;
  background:rgba(8,20,38,.72);padding:4vh 4vw;
}
#alerte .sheet{
  background:var(--paper);color:var(--ink);width:min(520px,100%);
  max-height:92vh;overflow:auto;padding:2rem 2.1rem 1.6rem;border-radius:2px;
  position:relative;box-shadow:0 24px 60px rgba(0,0,0,.4);
}
#alerte h3{font-size:1.4rem;margin-bottom:.3rem}
#alerte .close{
  position:absolute;top:1rem;right:1rem;border:none;background:none;cursor:pointer;
  font:400 .8rem/1 "Inter",sans-serif;color:#6B7683;padding:.4rem;
}
#alErr{font-size:.8rem;margin:.9rem 0 0;min-height:1.1em}
#alSend{background:var(--navy-mid);color:var(--paper);border-color:var(--navy-mid)}
#alSend:hover{background:var(--navy)}
.lienalerte{
  background:none;border:none;padding:0;cursor:pointer;
  font:inherit;color:var(--gold-pale);text-decoration:underline;text-underline-offset:3px;
}
.lienalerte:hover{color:var(--gold)}
.paper .lienalerte{color:var(--navy-mid)}

#resa[hidden]{display:none}
#resa{
  position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;
  background:rgba(8,20,38,.72);padding:4vh 4vw;
}
/* second choix : les deux plans à droite de la fiche de coordonnées */
#resa{gap:clamp(.6rem,1.6vw,1.4rem)}
#replipan{
  background:var(--paper);color:var(--ink);width:min(300px,34vw);
  max-height:92vh;overflow:auto;padding:1rem 1rem 1.1rem;border-radius:2px;
  box-shadow:0 24px 60px rgba(0,0,0,.4);
}
#replipan[hidden]{display:none}
#replipan h4{font:600 .82rem/1.3 "Inter",sans-serif;color:var(--navy);margin:0 0 .3rem}
#replipan .aide{font:400 .72rem/1.45 "Inter",sans-serif;color:#5A6472;margin:0 0 .7rem}
#replipan .compte{font:600 .72rem/1.4 "Inter",sans-serif;color:var(--navy-mid);margin:.5rem 0 0}
#replipan .repmini + .repmini{margin-top:.6rem}
#replipan .repcap{
  display:block;font:600 .6rem/1.3 "Inter",sans-serif;letter-spacing:.08em;
  text-transform:uppercase;color:var(--navy-mid);margin-bottom:.2rem;
}
#replipan .hotwrap{width:100%;position:relative}
#replipan .hotwrap img{display:block;width:100%;height:auto}
#replipan .hotspot{border:1px solid transparent;background:transparent;cursor:pointer}
#replipan .hotspot .hs{
  opacity:0;font-size:.52rem;padding:.14rem .24rem;max-width:100%;white-space:normal;
  text-align:center;line-height:1.1;
}
#replipan .hotspot:hover .hs{opacity:1}
#replipan .hotspot.indispo{background:rgba(179,69,61,.16);border-color:rgba(179,69,61,.5);cursor:not-allowed}
#replipan .hotspot.fixe{background:rgba(46,107,62,.3);border-color:#2E6B3E;border-width:2px;cursor:not-allowed}
#replipan .hotspot.fixe .hs{opacity:1;background:#2E6B3E;color:#fff}
#replipan .hotspot.zrepli{background:rgba(107,78,155,.34);border-color:#6B4E9B;border-width:2px}
#replipan .hotspot.zrepli .hs{opacity:1;background:#6B4E9B;color:#fff}
#replipan .sousrep{
  position:absolute;left:50%;top:50%;transform:translate(-50%,10px);pointer-events:none;
  font:600 .46rem/1.1 "Inter",sans-serif;letter-spacing:.02em;
  max-width:96%;white-space:normal;text-align:center;
  color:#fff;background:#6B4E9B;padding:.1rem .2rem;border-radius:2px;
}
#replipan .hotspot.fixe .sousrep{background:#2E6B3E}


/* ===== symboles d'activité qui flottent autour du texte d'accueil ===== */
/* la règle générale des enfants de la couverture les met en position relative :
   il faut donc être plus précis pour que le conteneur occupe tout l'écran */
.slide.cover .flottants{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:visible}
.flott{
  position:absolute;display:block;width:clamp(34px,3.4vw,50px);height:clamp(34px,3.4vw,50px);
  opacity:.5;pointer-events:auto;cursor:default;
  /* couche propre et stable : évite les traînées d'affichage sur les cartes graphiques */
  will-change:transform;backface-visibility:hidden;transform:translateZ(0);
  transition:opacity .25s var(--ease);
}
.flott:hover,.flott:focus-visible{opacity:1;outline:none}
.flottnom{
  position:absolute;left:50%;top:-1.5rem;transform:translateX(-50%) translateY(4px);
  white-space:nowrap;pointer-events:none;color:#fff;
  font:600 .64rem/1 "Inter",sans-serif;letter-spacing:.1em;text-transform:uppercase;
  text-shadow:0 1px 4px rgba(8,20,38,.75),0 0 10px rgba(8,20,38,.5);
  opacity:0;transition:opacity .2s var(--ease),transform .2s var(--ease);
}
.flott:hover .flottnom,.flott:focus-visible .flottnom{opacity:1;transform:translateX(-50%) translateY(0)}
html[data-theme="etude"] .flottnom{font-family:"Inter",sans-serif}
.flott svg{width:100%;height:100%;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.flott-bureau{left:8%;top:26%;animation:flotte 11s ease-in-out infinite}
.flott-commerce{left:13%;top:52%;animation:flotte 13s ease-in-out infinite .8s}
.flott-restaurant{left:6%;top:70%;animation:flotte 15s ease-in-out infinite 1.6s}
.flott-liberale{left:16%;top:82%;animation:flotte 12s ease-in-out infinite 2.4s}
.flott-sante{right:9%;top:24%;animation:flotte 14s ease-in-out infinite .4s}
.flott-notaire{right:14%;top:48%;animation:flotte 12s ease-in-out infinite 1.2s}
.flott-numerique{right:7%;top:68%;animation:flotte 16s ease-in-out infinite 2s}
.flott-atelier{right:17%;top:84%;animation:flotte 13s ease-in-out infinite 2.8s}
@keyframes flotte{
  0%,100%{transform:translate3d(0,0,0) rotate(0deg)}
  33%    {transform:translate3d(6px,-14px,0) rotate(3deg)}
  66%    {transform:translate3d(-5px,-6px,0) rotate(-3deg)}
}
@media (prefers-reduced-motion:reduce){ .flott{animation:none!important} }
@media (max-width:1100px){ .flott-liberale,.flott-atelier,.flott-restaurant,.flott-numerique{display:none} .flott{opacity:.3} }
@media (max-width:700px){ .flottants{display:none} }

/* ===== partager et situer, sur l'accueil ===== */
.covactions{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-top:1rem}
.covact{
  display:inline-flex;align-items:center;justify-content:center;gap:.45rem;
  width:13.5rem;max-width:72vw;padding:.55rem .9rem;cursor:pointer;
  background:rgba(26,33,41,.34);border:1px solid rgba(255,255,255,.5);border-radius:2px;color:#fff;
  font:600 .68rem/1 "Inter",sans-serif;letter-spacing:.11em;text-transform:uppercase;
  transition:background .2s var(--ease),border-color .2s var(--ease);
}
.covact svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.covact:hover,.covact:focus-visible{background:rgba(255,255,255,.22);border-color:#fff;outline:none}
html[data-theme="etude"] .covact{font-family:"Inter",sans-serif}
.covmsg{
  margin:.6rem 0 0;font:600 .74rem/1.4 "Inter",sans-serif;color:#fff;
  opacity:0;transition:opacity .25s var(--ease);
}
.covmsg.vu{opacity:1}

/* ===== photos du chantier : survol qui avance, clic qui agrandit ===== */
#chantier .photojour .slot.cover-fit,#chantier .chphotos figure,#chantier .cadastre figure{
  cursor:zoom-in;transition:transform .25s var(--ease),box-shadow .25s var(--ease);
  backface-visibility:hidden;transform:translateZ(0);
}
#chantier .photojour .slot.cover-fit:hover,#chantier .chphotos figure:hover,#chantier .cadastre figure:hover{
  transform:scale(1.015);box-shadow:0 16px 42px rgba(8,20,38,.28);z-index:3;position:relative;
}
#chantier .pjvig,#chantier .pjvig:hover{transform:none;box-shadow:none;cursor:pointer}
@media (prefers-reduced-motion:reduce){
  #chantier .photojour .slot.cover-fit,#chantier .chphotos figure,#chantier .cadastre figure{transition:none}
}
#loupe{
  position:fixed;inset:0;z-index:420;display:flex;align-items:center;justify-content:center;
  background:rgba(6,14,26,.93);padding:clamp(1rem,4vh,3rem) clamp(1rem,4vw,3rem);
  animation:loupeouvre .18s ease-out;
}
#loupe[hidden]{display:none}
/* ===== mentions légales ===== */
#legal{
  position:fixed;inset:0;z-index:445;display:flex;align-items:center;justify-content:center;
  background:rgba(6,14,26,.88);padding:clamp(.8rem,4vh,3rem) clamp(.8rem,4vw,3rem);
  animation:loupeouvre .18s ease-out;
}
#legal[hidden]{display:none}
.legalbox{
  position:relative;width:min(760px,100%);max-height:88vh;overflow-y:auto;background:#fff;
  border-radius:2px;padding:1.8rem clamp(1.1rem,3vw,2.4rem) 2rem;box-shadow:0 28px 70px rgba(0,0,0,.45);
}
.legalbox h3{margin:0 0 1.2rem;font:400 1.5rem/1.2 "Fraunces",Georgia,serif;color:var(--navy)}
.legalbox h4{margin:1.4rem 0 .35rem;font:600 .78rem/1.3 "Inter",sans-serif;letter-spacing:.09em;text-transform:uppercase;color:#0653b6}
.legalbox p{margin:0 0 .6rem;max-width:none;font:400 .84rem/1.65 "Inter",sans-serif;color:#2B2B2B;text-align:left;hyphens:none}
.legalbox b{font-weight:600;color:var(--navy)}
.legalx{
  position:absolute;top:.6rem;right:.6rem;width:2.1rem;height:2.1rem;border:0;border-radius:50%;
  background:#EFEAE0;color:#3C4450;cursor:pointer;
}
.legalx:hover{background:#DED8CB}
html[data-theme="etude"] .legalbox h3{font-family:"Inter","Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:.02em}
html[data-theme="etude"] .legalbox h4,html[data-theme="etude"] .legalbox p{font-family:"Inter",sans-serif}
#sitefoot #legalOuvrir{
  background:none;border:0;padding:0;cursor:pointer;color:inherit;font:inherit;
  text-decoration:underline;text-underline-offset:3px;
}
#sitefoot #legalOuvrir:hover{color:#fff}
/* croix de fermeture : un dessin plutôt qu'un caractère, centré au pixel près */
.rr-x svg,.loupex svg,.cartex svg,.ptx svg{
  width:46%;height:46%;display:block;fill:none;stroke:currentColor;
  stroke-width:2.2;stroke-linecap:round;
}
.rr-x,.loupex,.cartex,.ptx{display:flex;align-items:center;justify-content:center;line-height:0;padding:0}
/* ===== carte interactive ===== */
#carte{
  position:fixed;inset:0;z-index:430;display:flex;align-items:center;justify-content:center;
  background:rgba(6,14,26,.9);padding:clamp(.6rem,3vh,2rem) clamp(.6rem,3vw,2rem);
  animation:loupeouvre .18s ease-out;
}
#carte[hidden]{display:none}
/* ===== panneau de partage ===== */
#partagepan{
  position:fixed;inset:0;z-index:440;display:flex;align-items:center;justify-content:center;
  background:rgba(6,14,26,.86);padding:4vh 4vw;animation:loupeouvre .18s ease-out;
}
#partagepan[hidden]{display:none}
.partagebox{
  position:relative;width:min(380px,100%);background:#fff;border-radius:2px;
  padding:1.6rem 1.5rem 1.4rem;box-shadow:0 28px 70px rgba(0,0,0,.45);text-align:center;
}
.ptx{
  position:absolute;top:.5rem;right:.5rem;width:2rem;height:2rem;border:0;border-radius:50%;
  background:none;color:#5E6673;font:300 1.5rem/1 system-ui,sans-serif;cursor:pointer;
}
.ptx:hover{background:#EFEAE0}
.ptitre{margin:0 0 1.1rem;font:600 .68rem/1 "Inter",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#0653b6}
.pliens{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem}
.pliens a{
  padding:.75rem .4rem;border:1px solid #111;border-radius:2px;text-decoration:none;color:#111;
  font:600 .74rem/1 "Inter",sans-serif;
}
.pliens a:hover{background:#111;color:#fff}
.plien{margin:0 0 .8rem;word-break:break-all;font:400 .74rem/1.4 "Inter",sans-serif;color:#6A7383}
.p-copier{
  width:100%;padding:.75rem;border:0;border-radius:2px;cursor:pointer;background:#111;color:#fff;
  font:600 .76rem/1 "Inter",sans-serif;
}
.p-copier:hover{background:#333}
html[data-theme="etude"] .partagebox *{font-family:"Inter",sans-serif}
.cartebox{
  width:min(1180px,100%);height:min(86vh,100%);display:flex;flex-direction:column;
  background:#fff;border-radius:2px;overflow:hidden;box-shadow:0 28px 70px rgba(0,0,0,.5);
}
.cartehaut{
  display:flex;align-items:center;gap:1rem;padding:.7rem .9rem;background:var(--navy);color:#fff;
  font:600 .78rem/1.35 "Inter",sans-serif;
}
html[data-theme="etude"] .cartehaut{font-family:"Inter",sans-serif}
.cartex{
  margin-left:auto;width:2rem;height:2rem;flex:0 0 auto;border:0;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.16);color:#fff;font:300 1.4rem/1 system-ui,sans-serif;
}
.cartex:hover{background:rgba(255,255,255,.3)}
.cartecadre{flex:1 1 auto;min-height:0;background:#E9E5DC}
.cartecadre iframe{display:block;width:100%;height:100%;border:0}
.carteinfo{
  margin:0;padding:.55rem .9rem;background:#F4F1EA;color:#5E6673;
  font:400 .7rem/1.45 "Inter",sans-serif;
}
html[data-theme="etude"] .carteinfo{font-family:"Inter",sans-serif}
html.loupe-ouverte{overflow:hidden!important}
html.loupe-ouverte body{overflow:hidden!important}
@keyframes loupeouvre{from{opacity:0}to{opacity:1}}
#loupe figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:.8rem;max-width:100%;max-height:100%}
#loupe img{
  max-width:100%;max-height:82vh;width:auto;height:auto;display:block;
  backface-visibility:hidden;transform:translateZ(0);
  border-radius:2px;box-shadow:0 28px 70px rgba(0,0,0,.55);
}
#loupe figcaption{
  max-width:64ch;text-align:center;color:rgba(255,255,255,.88);
  font:400 .82rem/1.55 "Inter",sans-serif;
}
html[data-theme="etude"] #loupe figcaption{font-family:"Inter",sans-serif}
#loupe .loupex{
  position:absolute;top:clamp(.6rem,2vh,1.4rem);right:clamp(.6rem,2vw,1.4rem);
  width:2.6rem;height:2.6rem;border:0;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.14);color:#fff;font:300 1.7rem/1 system-ui,sans-serif;
}
#loupe .loupex:hover{background:rgba(255,255,255,.28)}

/* ===== barre d'avancement du chantier ===== */
.avancee{margin:0 0 1.7rem;max-width:none;padding-top:2.1rem}
.avtitre{display:flex;align-items:baseline;gap:.8rem;margin-bottom:.55rem;flex-wrap:wrap}
.avlabel{font:600 .66rem/1 "Inter",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#0653b6}
.avpct{margin-left:auto;font:600 .8rem/1 "Inter",sans-serif;color:#262e38}
.avdate{
  display:none;align-items:center;gap:.35rem;background:#B3453D;color:#fff;
  padding:.24rem .5rem;border-radius:2px;white-space:nowrap;
  font:600 .62rem/1.2 "Inter",sans-serif;
}
.avdate .avroue{width:13px;height:13px}
.avrail{position:relative;height:12px;border-radius:6px;background:#DED8CB;margin:2.6rem 0 0}
.avfait{
  position:absolute;left:0;top:0;bottom:0;border-radius:6px;
  background:linear-gradient(90deg,#2E6B3E,#4E9460);transition:width .8s var(--ease);
}
.avjour{
  position:absolute;top:-2.4rem;transform:translateX(-50%);z-index:3;
  display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap;
  background:#B3453D;color:#fff;padding:.26rem .55rem;border-radius:2px;
  font:600 .62rem/1.2 "Inter",sans-serif;
}
.avjour::after{content:'';position:absolute;left:50%;top:100%;width:2px;height:1.5rem;margin-left:-1px;background:#B3453D}
/* un marteau qui frappe : le geste du chantier, sobre et court */
.avroue{width:15px;height:15px;overflow:visible;flex:0 0 auto}
.avroue .tete{
  transform-box:view-box;transform-origin:5.2px 19px;
  animation:avfrappe 1.5s cubic-bezier(.4,0,.2,1) infinite;
}
.avroue .manche{fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round}
.avroue .fer{fill:currentColor}
.avroue .choc{
  fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;
  opacity:0;animation:avchoc 1.5s linear infinite;
}
@keyframes avfrappe{
  0%,30%{transform:rotate(-26deg)}
  42%   {transform:rotate(4deg)}
  50%   {transform:rotate(-8deg)}
  62%,100%{transform:rotate(-26deg)}
}
@keyframes avchoc{
  0%,40%{opacity:0;transform:scale(.7)}
  44%   {opacity:1;transform:scale(1)}
  56%   {opacity:0;transform:scale(1.25)}
  100%  {opacity:0}
}
@media (prefers-reduced-motion:reduce){
  .avroue .tete,.avroue .choc{animation:none}
  .avroue .tete{transform:rotate(-14deg)}
}
.avnoms{list-style:none;margin:0;padding:0;position:relative;height:5rem}
.avnoms li{position:absolute;top:0;transform:translateX(-50%);width:6.4rem;text-align:center}
/* aux deux bouts, l'étiquette se range vers l'intérieur au lieu de déborder */
.avnoms li:first-child{transform:none;text-align:left}
.avnoms li:nth-child(2){transform:translateX(-38%)}
.avnoms li:nth-last-child(2){transform:translateX(-62%)}
.avnoms li:last-child{transform:translateX(-100%);text-align:right}
.avnoms li .trait{display:block;width:1px;height:.75rem;margin:0 auto .25rem;background:#B9BFC8}
.avnoms li[data-etat="fait"] .trait{background:#2E6B3E}
.avnoms li[data-etat="encours"] .trait{background:#B8862B;width:2px}
.avnoms li .nom{display:block;font:600 .66rem/1.25 "Inter",sans-serif;color:#262e38;hyphens:none}
.avnoms li[data-etat="avenir"] .nom,.avnoms li[data-etat="attente"] .nom{color:#5E6673;font-weight:500}
.avnoms li[data-etat="encours"] .nom{color:#0653b6}
.avnoms li.bas{top:2.5rem}
.avnoms li.bas .trait{height:2.9rem;margin-top:-2.9rem}
html[data-theme="etude"] .avnoms li .nom{font-family:"Inter","Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:.02em;font-weight:400;font-size:.72rem}
@media (max-width:900px){
  .avrail{margin-top:.9rem}
  .avjour{display:none}
  .avdate{display:inline-flex}
  .avnoms{height:auto;display:flex;flex-direction:column;gap:.35rem;margin-top:.9rem}
  .avnoms li{position:static;transform:none!important;width:auto;text-align:left;display:flex;align-items:center;gap:.5rem}
  .avnoms li.bas{top:auto}
  .avnoms li .trait{width:8px;height:8px;border-radius:50%;margin:0;flex:0 0 auto}
  .avnoms li.bas .trait{height:8px;margin:0}
  .avpct{margin-left:0;flex:1 1 100%}
}
/* drapeau d'arrivée : livraison en septembre 2027 */
.avdrapeau{position:absolute;right:-1px;bottom:0;z-index:2;display:flex;flex-direction:column;align-items:flex-end;pointer-events:none}
.avdrapeau svg{width:24px;height:34px;display:block;margin-right:-3px}
.avdrapeau .mat{fill:none;stroke:#3A3F47;stroke-width:2;stroke-linecap:round}
.avdrapeau .toile{fill:#C8102E}
.avdl{font:700 .66rem/1 "Inter",sans-serif;color:#C8102E;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;margin-bottom:.25rem}
@media (max-width:900px){ .avrail{margin-top:3.4rem} }
.avfin{margin:.6rem 0 0;font:400 .74rem/1.5 "Inter",sans-serif;color:#5E6673}
html[data-theme="etude"] .avancee *{font-family:"Inter",sans-serif}
html[data-theme="etude"] .avseg .nom{font-family:"Inter","Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:.02em;font-weight:400;font-size:.74rem}
@media (max-width:900px){
  .avancee{padding-top:0}
  .avjauge{flex-direction:column;gap:2px;padding-top:0}
  .avseg{border-top:0;border-left:3px solid #CFC9BC;display:flex;align-items:baseline;gap:.5rem;padding:.5rem .6rem}
  .avseg[data-etat="fait"]{border-left-color:#2E6B3E}
  .avseg[data-etat="encours"]{border-left-color:#B8862B}
  .avseg .n{margin:0}
  .avseg .qd{margin:0 1.2rem 0 auto;text-align:right}
  .avseg .coche{top:50%;margin-top:-6px}
  .avjour{position:static;transform:none;order:-1;align-self:flex-start;margin:0 0 .5rem}
  .avjour::after{display:none}
  .avpct{margin-left:0;flex:1 1 100%}
}

.actcombo{position:relative}
.docaide{max-width:none!important;margin:.35rem 0 0;font:400 .72rem/1.5 "Inter",sans-serif;color:#6A7383;text-align:justify;hyphens:none}
html[data-theme="etude"] .docaide{font-family:"Inter",sans-serif;text-align:left}
.actliste{
  position:absolute;left:0;right:0;top:100%;z-index:30;margin:.2rem 0 0;padding:.25rem 0;list-style:none;
  max-height:15rem;overflow-y:auto;background:#fff;border:1px solid #C9CDD3;border-radius:2px;
  box-shadow:0 10px 26px rgba(8,20,38,.16);
}
.actliste[hidden]{display:none}
.actliste li{padding:.5rem .75rem;cursor:pointer;font:400 .86rem/1.3 "Inter",sans-serif;color:#1B2433}
.actliste li b{font-weight:700;color:var(--navy)}
.actliste li:hover,.actliste li.ici{background:#EEF2F7}
.actliste li.actvide{cursor:default;color:#6A7383;font-style:italic}
.actliste li.actvide:hover{background:none}
html[data-theme="etude"] .actliste li{font-family:"Inter",sans-serif}
.promesse{
  display:flex;align-items:flex-start;gap:.5rem;margin:.9rem 0 0;
  font:600 .8rem/1.45 "Inter",sans-serif;color:#2E6B3E;
}
.promesse .pastille{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:#2E6B3E;margin-top:.38em}
.rgpd{margin:.45rem 0 0;font:400 .72rem/1.5 "Inter",sans-serif;color:#5E6673;text-align:justify;hyphens:none}
.coords .siege{
  display:block;margin-top:.5rem;padding-top:.5rem;border-top:1px solid rgba(233,224,209,.16);
  font:400 .68rem/1.5 "Inter",sans-serif;color:rgba(233,224,209,.6);
}
.vuemer{
  display:inline-flex;align-items:center;gap:.4rem;margin:0 0 .55rem;padding:.26rem .55rem;
  border-radius:2px;background:rgba(23,90,140,.1);color:#17598C;
  font:600 .74rem/1.2 "Inter",sans-serif;
}
.vuemer svg{width:17px;height:17px;fill:none;stroke:#17598C;stroke-width:1.6;stroke-linecap:round}
.vuemer svg circle{fill:rgba(28,105,212,.5);stroke:#B8862B}
.cautions{
  list-style:none;margin:0 0 1.2rem;padding:0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:.55rem .9rem;
}
.cautions li{padding-left:.85rem;border-left:2px solid var(--gold)}
.cautions b{display:block;font:600 .76rem/1.3 "Inter",sans-serif;color:var(--paper)}
.cautions span{display:block;margin-top:.1rem;font:400 .7rem/1.4 "Inter",sans-serif;color:rgba(233,224,209,.68)}

/* ---- second choix : sur téléphone, le panneau passe sous la fiche ---- */
@media (max-width:1000px){
  #replipan{
    width:100%;max-width:none;max-height:none;
    margin:.9rem 0 0;box-shadow:none;border:1px solid var(--rule);
  }
  #resa{flex-direction:column;align-items:stretch;justify-content:flex-start;overflow-y:auto;padding:3vh 3vw}
  #resa .sheet{max-height:none;width:100%}
  #replipan .repmini{max-width:420px;margin-left:auto;margin-right:auto}
  #replipan .hotspot .hs{font-size:.6rem}
}
/* ===== porte d'accès des agents (phase 2) ===== */
#porte{
  position:fixed;inset:0;z-index:210;display:flex;align-items:center;justify-content:center;
  background:rgba(8,20,38,.82);padding:4vh 4vw;
}
#porte[hidden]{display:none}
.portebox{
  background:var(--paper);color:var(--ink);width:min(380px,100%);
  padding:1.7rem 1.7rem 1.4rem;border-radius:2px;box-shadow:0 24px 60px rgba(0,0,0,.45);
}
.portebox h3{margin:.1rem 0 .6rem;font:400 1.3rem/1.2 "Fraunces",Georgia,serif;color:var(--navy)}
.porteaide{margin:0 0 1.1rem;font:400 .76rem/1.5 "Inter",sans-serif;color:#5E6673;text-align:justify;hyphens:none}
.portebox label{display:block;margin:.55rem 0 .22rem;font:600 .72rem/1.3 "Inter",sans-serif;color:var(--navy)}
.portebox input{
  width:100%;padding:.55rem .6rem;border:1px solid var(--rule);border-radius:2px;
  font:400 .86rem/1.3 "Inter",sans-serif;background:#fff;color:var(--ink);
}
.portebox input.bad{border-color:#B3453D;background:#FDF4F3}
.porteerr{margin:.5rem 0 0;min-height:1.1em;font:500 .74rem/1.4 "Inter",sans-serif;color:#B3453D}
.porteacts{display:flex;gap:.5rem;margin-top:.8rem}
.porteacts button{flex:1 1 0;padding:.62rem .8rem;border-radius:2px;cursor:pointer;font:600 .82rem/1 "Inter",sans-serif}
#porteGo{background:var(--navy);color:var(--paper);border:1px solid var(--navy)}
#porteGo:hover{background:var(--navy-mid)}
#porteOut{background:transparent;color:var(--navy);border:1px solid var(--rule)}
.portepied{margin:.8rem 0 0;font:400 .68rem/1.4 "Inter",sans-serif;color:#8A929E}
.agentbar{
  display:flex;align-items:center;gap:.5rem;margin:0 0 .6rem;
  font:500 .74rem/1.4 "Inter",sans-serif;color:#2E6B3E;
}
.agentbar button{
  margin-left:auto;background:none;border:none;cursor:pointer;text-decoration:underline;
  font:400 .72rem/1.4 "Inter",sans-serif;color:#5E6673;
}

#resa .sheet{
  background:var(--paper);color:var(--ink);width:min(620px,100%);
  max-height:92vh;overflow:auto;padding:2rem 2.1rem 1.6rem;border-radius:2px;
  position:relative;box-shadow:0 24px 60px rgba(0,0,0,.4);
}
#resa h3{font-size:1.45rem;margin-bottom:.3rem}
#resa .lotline{color:var(--navy-mid);font-size:.95rem;margin-bottom:1.3rem;font-weight:500}
.lotnote{
  background:#FBF3DF;border-left:3px solid var(--gold);
  padding:.7rem .85rem;font-size:.84rem;line-height:1.5;color:#5A4A25;margin:-.6rem 0 1.3rem;
}
.lotnote[hidden]{display:none}
#resa .close{
  position:absolute;top:1rem;right:1rem;border:none;background:none;cursor:pointer;
  font:400 .8rem/1 "Inter",sans-serif;color:#6B7683;padding:.4rem;
}
#resa .close:hover{color:var(--ink)}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:.85rem 1rem}
.fields .full{grid-column:1/-1}
/* bouton et bloc des précisions : toute la largeur, et une grille à eux */
.fields .plusbtn{
  grid-column:1/-1;justify-self:start;align-self:start;margin:.1rem 0 0;padding:.3rem 0;
  background:none;border:0;cursor:pointer;color:var(--navy);
  font:600 .8rem/1.3 "Inter",sans-serif;text-decoration:underline;text-underline-offset:3px;
}
.fields .plusbtn:hover{color:var(--navy-mid)}
.fields .plusfields{
  grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:.85rem 1rem;
  padding:1rem;border:1px solid #E2DDD2;background:#FBF9F5;
}
.fields .plusfields[hidden]{display:none}
html[data-theme="etude"] .fields .plusbtn{font-family:"Inter",sans-serif;color:#111}
.fields label{display:block;font-size:.74rem;color:#5D6874;margin-bottom:.25rem}
.fields input,.fields select,.fields textarea{
  width:100%;font:300 .92rem/1.4 "Inter",sans-serif;color:var(--ink);
  background:#fff;border:1px solid #C9C2B4;border-radius:2px;padding:.52rem .6rem;
}
.fields input:focus,.fields select:focus,.fields textarea:focus{
  outline:2px solid var(--navy-mid);outline-offset:-1px;border-color:var(--navy-mid)}
.fields textarea{resize:vertical;min-height:88px}
.daterange{display:flex;align-items:center;gap:.55rem}
.daterange select{flex:1;min-width:0}
.daterange span{font-size:.85rem;color:#6B7683;flex:0 0 auto}
.fields label .wc{float:right;font-variant-numeric:tabular-nums;color:#8A94A0}
.fields label .wc.ok{color:#2E6B3E;font-weight:600}
.fields .bad{border-color:#B3453D;background:#FDF4F3}
#resaErr{color:#B3453D;font-size:.8rem;margin:.9rem 0 0;min-height:1.1em}
.acts{display:flex;gap:.6rem;margin-top:1.1rem;flex-wrap:wrap}
.acts button{
  font:500 .86rem/1 "Inter",sans-serif;cursor:pointer;
  padding:.72rem 1.2rem;border-radius:2px;border:1px solid var(--navy-mid);
}
#resaSend{background:var(--navy-mid);color:var(--paper)}
#resaSend:hover{background:var(--navy)}
#resaCopy{background:none;color:var(--navy-mid)}
#resaCopy:hover{background:rgba(23,53,94,.08)}
.hintline{
  font-size:.79rem;line-height:1.5;color:#5D6874;margin-top:.85rem;
  background:#F1EDE4;border-left:3px solid var(--gold);padding:.55rem .75rem;
}
.recap{background:#F1EDE4;border:1px solid #D9D2C4;border-radius:2px;padding:1rem 1.1rem}
.recap .big{font-family:"Fraunces",serif;font-size:clamp(1.6rem,3.4vw,2.2rem);color:var(--navy);line-height:1;margin-bottom:.7rem}
.recap dl{display:grid;grid-template-columns:auto 1fr;gap:.42rem 1.1rem;font-size:.9rem;margin:0}
.recap ul{list-style:none;margin:0;padding:0;max-height:34vh;overflow:auto}
.recap li{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0;border-bottom:1px solid #D9D2C4;font-size:.88rem}
.recap li b{font-weight:600;color:var(--navy);flex:0 0 3.5rem}
.recap li span{color:#5D6874;text-align:right}
.recap .tot{display:flex;justify-content:space-between;gap:1rem;margin-top:.8rem;padding-top:.7rem;border-top:1px solid var(--navy-mid);font-weight:600;color:var(--navy)}
.recap dt{color:#6B7683}
.recap dd{margin:0;font-weight:500;color:var(--ink)}
#step1[hidden],#step2[hidden]{display:none}
.acts .valider{background:#2E6B3E;border-color:#2E6B3E;color:#fff}
.acts .valider:hover{background:#245631;border-color:#245631}
#resaAutre{background:none;color:#6B7683;border-color:#C9C2B4}
#resaAutre:hover{background:#EDE9E1;color:var(--ink)}
#resa .foot{font-size:.78rem;color:#6B7683;line-height:1.5;margin:0 0 1.2rem;background:#F1EDE4;border-left:3px solid #C9C2B4;padding:.6rem .8rem}
@media (max-width:620px){.fields{grid-template-columns:1fr}
  .fields .plusfields{grid-template-columns:1fr}}

/* ---------- contact ---------- */
.contact{align-items:center;justify-content:center;text-align:center;
  background:radial-gradient(110% 80% at 50% 30%,var(--navy-soft) 0%,var(--navy) 65%)}
.contact .arches{justify-content:center}
.contact h2{font-size:clamp(1.5rem,3.2vw,2.5rem);margin-bottom:.5em}
.sharegrid{
  display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:2rem;max-width:620px;
}
.shbtn{
  font:500 .84rem/1 "Inter",sans-serif;cursor:pointer;
  padding:.72rem 1.1rem;border-radius:2px;
  border:1px solid rgba(28,105,212,.6);background:rgba(255,255,255,.05);color:var(--gold-pale);
  transition:background .22s var(--ease), color .22s var(--ease), border-color .22s var(--ease);
}
.shbtn:hover{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.shbtn.primaire{background:var(--gold);border-color:var(--gold);color:var(--navy);font-weight:600}
.shbtn.primaire:hover{background:var(--gold-pale);border-color:var(--gold-pale)}
.shmsg{font-size:.8rem;color:#8FD3A4;min-height:1.2em;margin-top:.9rem}
.sharefoot{
  display:flex;align-items:center;justify-content:center;gap:clamp(1.5rem,5vw,4rem);
  flex-wrap:wrap;margin-top:2.2rem;padding-top:1.8rem;border-top:1px solid var(--rule);
}
.qrbloc{display:flex;align-items:center;gap:.9rem}
.qrbloc img{width:clamp(88px,10vw,116px);height:auto;border-radius:2px;display:block}
.qrbloc span{font-size:.75rem;line-height:1.45;color:var(--slate);text-align:left}
.coords{display:flex;flex-direction:column;gap:.5rem;font-size:clamp(.85rem,1.2vw,1rem);text-align:left}
.coords .addr{color:var(--slate);font-size:.82em;line-height:1.5}
.contact .lines{margin-top:2.4rem;display:flex;flex-direction:column;gap:.85rem;font-size:clamp(1rem,1.5vw,1.3rem)}
.contact .lines .addr{color:var(--slate);font-size:clamp(.85rem,1.15vw,1rem)}
.contact a{color:var(--gold-pale);text-decoration:none;border-bottom:1px solid var(--rule)}

/* ---------- chrome ---------- */
#bar{
  position:fixed;left:0;right:0;bottom:0;height:3px;
  background:rgba(255,255,255,.08);z-index:40;
}
#bar i{display:block;height:100%;width:0;background:var(--gold);transition:width .25s linear}
.navarrow{
  position:fixed;top:50%;transform:translateY(-50%);z-index:150;width:38px;height:38px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(28,105,212,.65);border-radius:2px;
  background:rgba(26,33,41,.5);color:var(--gold);
  font:300 1.7rem/1 "Inter",sans-serif;cursor:pointer;
  -webkit-
  transition:background .15s,color .15s,opacity .25s;padding:0 0 3px;
}
#navNext.cta{
  width:auto;height:auto;padding:.72rem 1.05rem;border-radius:3px;
  background:#2E6B3E;border-color:#2E6B3E;color:#fff;
  font:600 clamp(.74rem,1vw,.84rem)/1 "Inter",sans-serif;letter-spacing:.02em;
  display:inline-flex;align-items:center;gap:.4rem;
  box-shadow:0 6px 18px rgba(46,107,62,.35);
}
#navNext.cta:hover{background:#255733;border-color:#255733;color:#fff}
#navNext .lbl{white-space:nowrap}
@media (max-width:820px){#navNext.cta{padding:.6rem .8rem;font-size:.72rem}}
#navPrev{left:.9rem}
#navNext{right:.9rem}
.navarrow[hidden]{display:none!important}
.navarrow:hover{background:var(--gold);color:var(--navy)}
.navarrow:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

#navbar{
  position:fixed;bottom:1rem;left:50%;transform:translateX(-50%);z-index:150;
  display:flex;flex-direction:column;align-items:center;gap:.3rem;
}
#navbar .count{
  font:400 .66rem/1 "Inter",sans-serif;color:var(--gold);
  letter-spacing:.1em;font-variant-numeric:tabular-nums;
  background:rgba(26,33,41,.5);padding:.22rem .45rem;border-radius:2px;
  -webkit-
}
#navPlay{
  width:40px;height:40px;border-radius:50%;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(28,105,212,.65);background:rgba(26,33,41,.5);
  color:var(--gold);font-size:.92rem;line-height:1;padding:0 0 0 2px;
  -webkit-
  transition:background .15s,color .15s;
}
#navPlay:hover{background:var(--gold);color:var(--navy)}
#navPlay.on{padding:0;font-size:.8rem}

body.presenting .navarrow{opacity:0}
body.presenting .navarrow:hover{opacity:1}

#ctrl{
  position:fixed;bottom:1rem;right:1rem;z-index:150;
  display:flex;gap:.25rem;align-items:center;
  background:rgba(26,33,41,.86);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border:1px solid var(--rule);border-radius:2px;padding:.3rem .4rem;
}
#ctrl button{
  font:400 .73rem/1 "Inter",sans-serif;color:var(--paper);background:none;
  border:none;padding:.4rem .6rem;cursor:pointer;border-radius:2px;
}
#ctrl button:hover{background:rgba(28,105,212,.2)}
#ctrl button:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
#ctrl .sep{width:1px;height:16px;background:var(--rule)}
body.presenting #ctrl{opacity:0;pointer-events:none}
body.presenting #ctrl:hover{opacity:1;pointer-events:auto}
@media print{
  html,body{height:auto;overflow:visible;background:#fff;color:#111}
  #stage{position:static;display:block}

  .slide{
    position:static;display:flex!important;opacity:1!important;
    page-break-after:always;break-after:page;
    height:185mm;padding:12mm 14mm;overflow:hidden;
  }
  .slide:last-child{page-break-after:auto}
  .slide.scrolly{height:auto;overflow:visible}
  .slide:not(.paper){background:var(--navy)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .slide.paper{background:#fff!important}
  #ctrl,#bar,#hint,#editnote,#resa,.imgtools,#rail{display:none!important}
  .lotbtn{border:none;background:none;color:inherit;padding:0}
  .tbl{font-size:8.5pt}
  .tbl td,.tbl th{padding:.22rem .4rem}
  .plans{gap:4mm}
  a{text-decoration:none;color:inherit}
}
@page{size:A4 landscape;margin:0}


/* ---- rail de navigation : logo d'accueil et raccourcis, sur toutes les pages sauf la couverture ---- */
/* ===== défilement au clic de molette ===== */
#molettepoint{
  position:fixed;z-index:400;width:32px;height:32px;margin:-16px 0 0 -16px;pointer-events:none;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.35));
}
#molettepoint[hidden]{display:none}
#molettepoint svg{display:block;width:100%;height:100%}
#molettepoint svg circle{fill:rgba(255,255,255,.92);stroke:#3C4450;stroke-width:1.2}
#molettepoint svg path{fill:#3C4450}
#molettepoint svg circle.c{fill:#3C4450;stroke:none}
html.molette,html.molette *{cursor:all-scroll!important;user-select:none!important}
html.molette.molette-haut,html.molette.molette-haut *{cursor:n-resize!important}
html.molette.molette-bas,html.molette.molette-bas *{cursor:s-resize!important}
@media print{#molettepoint{display:none!important}}
/* ===================== MODE SITE =====================
   Tout ce bloc ne s'applique qu'avec <html data-mode="site">.
   En mode présentation, le bandeau et le pied restent cachés. */
#sitehead,#sitefoot{display:none}
html[data-mode="site"]{scroll-behavior:smooth;scroll-padding-top:4.6rem}
html[data-mode="site"],html[data-mode="site"] body{height:auto;overflow-x:hidden;overflow-y:visible}
html[data-mode="site"] #stage{position:static;display:block}
html[data-mode="site"] .slide{
  position:relative;inset:auto;display:flex!important;opacity:1!important;
  overflow:visible!important;zoom:1!important;min-height:0;
  padding:clamp(4.4rem,11vh,7rem) 7vw clamp(3rem,8vh,5.5rem);
}
html[data-mode="site"] .slide[data-hors-phase="1"]{display:none!important}
@media (min-width:1150px){
  html[data-mode="site"] .slide.situ{display:grid!important}
  /* la colonne des vues commence exactement au milieu de l'écran et va
     jusqu'au bord droit, comme la photo de la page programme.
     La première colonne vaut donc la moitié de l'écran moins le retrait gauche. */
  html[data-mode="site"] .slide.situ{
    /* le retrait latéral des pages vaut 7vw : pour que la seconde colonne
       commence à la moitié de l'écran, la première doit valoir 46,24 % de la
       largeur restante, quelle que soit la taille de la fenêtre. */
    grid-template-columns:46.24% minmax(0,1fr);
    column-gap:0;padding-right:0;
  }
  html[data-mode="site"] .slide.situ > .sitepics{
    grid-column:2;grid-row:1 / span 20;align-self:center;
    margin:.9rem 0;padding:0;width:auto;
  }
  html[data-mode="site"] .slide.situ > .sitepics > figure{width:100%}
  html[data-mode="site"] .slide.situ > .sitepics figcaption{padding:0 clamp(1rem,2vw,2rem)}
  html[data-mode="site"] .slide.situ > *:not(.sitepics){padding-right:clamp(1.6rem,3.2vw,3.4rem)}
}
html[data-mode="site"] .slide.cover{min-height:100vh;min-height:100svh;overflow:hidden!important;justify-content:center}
html[data-mode="site"] .slide + .slide{border-top:1px solid rgba(28,105,212,.14)}
html[data-mode="site"] #rail,html[data-mode="site"] #bar,
html[data-mode="site"] #navbar,html[data-mode="site"] .navarrow{display:none!important}

/* bandeau fixe */
html[data-mode="site"] #sitehead{
  display:flex;align-items:center;gap:1.4rem;position:fixed;top:0;left:0;right:0;z-index:150;
  height:4.2rem;padding:0 clamp(1rem,4vw,3rem);
  background:rgba(14,35,64,.94);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(197,154,63,.25);
  transition:background .3s var(--ease),border-color .3s var(--ease);
}
html[data-mode="site"] #sitehead.sur-couverture{background:rgba(14,35,64,.25);border-bottom-color:transparent}
#sitehead .sh-logo{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:#F7F5F0;flex:0 0 auto}
#sitehead .sh-mark{width:38px;height:38px;background:var(--mark) center/contain no-repeat}
#sitehead .sh-nom{font:500 .95rem/1.05 "Fraunces",Georgia,serif;letter-spacing:.06em}
#sitehead .sh-nom small{display:block;margin-top:.14rem;font:400 .6rem/1 "Inter",sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#C4A05A}
#sitehead .sh-menu{display:flex;gap:clamp(.8rem,2vw,1.8rem);margin-left:auto}
#sitehead .sh-menu a{
  position:relative;padding:.3rem 0;text-decoration:none;color:rgba(233,224,209,.82);
  font:400 .84rem/1 "Inter",sans-serif;letter-spacing:.02em;white-space:nowrap;
}
#sitehead .sh-menu a:hover{color:#fff}
#sitehead .sh-menu a.ici{color:#C4A05A}
#sitehead .sh-menu a.ici::after{content:'';position:absolute;left:0;right:0;bottom:-.2rem;height:1px;background:#C4A05A}
#sitehead .sh-cta{
  flex:0 0 auto;padding:.62rem 1rem;border:1px solid #C4A05A;border-radius:2px;text-decoration:none;
  font:600 .8rem/1 "Inter",sans-serif;color:#0E2340;background:#C4A05A;
}
#sitehead .sh-cta:hover{background:#D8A43C;border-color:#D8A43C}
#sitehead .sh-burger{display:none;margin-left:auto;background:none;border:0;padding:.5rem;cursor:pointer}
#sitehead .sh-menu a.sh-mobile{display:none}
#sitehead .sh-burger i{display:block;width:22px;height:2px;margin:4px 0;background:#F7F5F0;transition:transform .2s}
@media (max-width:980px){
  #sitehead .sh-cta{display:none}
  #sitehead .sh-burger{display:block}
  #sitehead .sh-menu{
    display:none;position:fixed;top:4.2rem;left:0;right:0;flex-direction:column;gap:0;margin:0;
    background:rgba(14,35,64,.98);border-bottom:1px solid rgba(197,154,63,.3);padding:.4rem 0 1rem;
  }
  body.menu-ouvert #sitehead .sh-menu{display:flex}
  #sitehead .sh-menu a{padding:.9rem clamp(1rem,4vw,3rem);font-size:1rem}
  #sitehead .sh-menu a.sh-mobile{display:block;margin:.5rem clamp(1rem,4vw,3rem) 0;padding:.85rem 1rem;text-align:center;background:#C4A05A;color:#0E2340;font-weight:600;border-radius:2px}
  #sitehead .sh-menu a.ici::after{display:none}
  body.menu-ouvert #sitehead .sh-burger i:nth-child(1){transform:translateY(6px) rotate(45deg)}
  body.menu-ouvert #sitehead .sh-burger i:nth-child(2){opacity:0}
  body.menu-ouvert #sitehead .sh-burger i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
}

/* pied de page */
html[data-mode="site"] #sitefoot{
  display:block;background:#0A1A31;color:rgba(233,224,209,.78);
  padding:clamp(2.6rem,6vh,4rem) 7vw 1.6rem;border-top:1px solid rgba(28,105,212,.3);
}
#sitefoot .sf-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2rem;margin-bottom:2rem}
#sitefoot .sf-mark{display:block;width:54px;height:54px;margin-bottom:.8rem;background:var(--mark) center/contain no-repeat}
#sitefoot .sf-titre{margin:0 0 .5rem;font:500 .95rem/1.2 "Fraunces",Georgia,serif;color:var(--paper);letter-spacing:.03em}
#sitefoot p{margin:0 0 .6rem;max-width:none;font:400 .8rem/1.6 "Inter",sans-serif}
#sitefoot a{color:var(--gold-pale);text-decoration:none;border-bottom:1px solid rgba(28,105,212,.35)}
#sitefoot a:hover{color:#fff;border-bottom-color:var(--gold)}
#sitefoot .sf-legal{border-top:1px solid rgba(233,224,209,.12);padding-top:1.2rem}
#sitefoot .sf-legal p{font-size:.7rem;line-height:1.55;color:rgba(233,224,209,.55);text-align:justify;hyphens:none}
#sitefoot .sf-legal b{color:rgba(233,224,209,.8);font-weight:600}
#sitefoot .sf-copy{margin-top:.8rem;text-align:left!important}
@media print{ #sitehead,#sitefoot{display:none!important} }

/* ================= THÈME « ÉTUDE » =================
   Habillage :
   fond blanc, titres Oswald en capitales, texte Open Sans
   aligné à gauche, bandeau blanc à nom centré, vignettes à
   étiquette blanche. Ne s'applique qu'avec data-theme="etude". */
#sitehead .sh-menu-d{display:none}
.e-scroll,.e-haut{display:none}
html[data-theme="etude"]{--e-noir:#111;--e-texte:#2B2B2B;--e-gris:#626262;--e-clair:#F4F4F2}
html[data-theme="etude"] body{background:#fff;color:var(--e-texte);font-family:"Inter",system-ui,sans-serif;font-weight:400}
html[data-theme="etude"] .slide.paper{background:#fff;color:var(--e-texte)}
html[data-theme="etude"] .slide + .slide{border-top:0}

/* titres : Oswald, capitales, noir */
html[data-theme="etude"] h1,html[data-theme="etude"] h2,html[data-theme="etude"] h3,html[data-theme="etude"] .kicker{
  font-family:"Inter","Arial Narrow",sans-serif;text-transform:uppercase;font-style:normal;
  font-weight:400;letter-spacing:.015em;color:var(--e-noir);
}
html[data-theme="etude"] .slide h2{line-height:1.18;margin-bottom:.7em}
html[data-theme="etude"] .kicker{font-size:1.02rem;line-height:1.1;margin:0 0 .15rem;opacity:1}
html[data-theme="etude"] .slide h2 em,html[data-theme="etude"] .slide h1 em{font-style:normal;color:inherit}

/* texte courant : Open Sans, petit, aligné à gauche */
html[data-theme="etude"] .slide p,html[data-theme="etude"] .slide li,html[data-theme="etude"] .slide dd,html[data-theme="etude"] .slide dt,html[data-theme="etude"] .slide td,html[data-theme="etude"] .slide th,html[data-theme="etude"] details p,html[data-theme="etude"] .lede{
  font-family:"Inter",system-ui,sans-serif;text-align:left!important;hyphens:none;
}
html[data-theme="etude"] .slide p,html[data-theme="etude"] .lede,html[data-theme="etude"] details p{font-size:.9rem;line-height:1.75;color:var(--e-texte);font-weight:400}
html[data-theme="etude"] .slide a{color:var(--e-noir)}

/* bandeau blanc : nom au centre, menu de part et d'autre */
/* Bandeau flottant, détaché des bords : c'est le parti le plus répandu
   aujourd'hui sur les sites récents, et il règle le problème du bandeau
   collé en haut que l'on confond avec le navigateur. */
html[data-theme="etude"] #sitehead{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;
  top:clamp(.5rem,1.2vw,1rem);left:clamp(.6rem,2.5vw,2rem);right:clamp(.6rem,2.5vw,2rem);
  height:3.5rem;padding:0 clamp(.9rem,2.2vw,2rem);
  background:rgba(255,255,255,.88);border:1px solid rgba(17,17,17,.14);border-bottom:1px solid rgba(17,17,17,.14);
  border-radius:999px;box-shadow:0 10px 30px rgba(8,20,38,.16);
  backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);
  transition:background .3s var(--ease),box-shadow .3s var(--ease),height .3s var(--ease),
             top .3s var(--ease),left .3s var(--ease),right .3s var(--ease);
}
html[data-theme="etude"] #sitehead.sur-couverture{
  background:rgba(255,255,255,.72);box-shadow:0 8px 24px rgba(8,20,38,.12);
  border-color:rgba(255,255,255,.5);
}
/* une fois qu'on descend, il se resserre encore un peu */
html[data-theme="etude"] body.logo-entete #sitehead{height:3.2rem;box-shadow:0 12px 34px rgba(8,20,38,.2)}
T{scroll-padding-top:5rem}
html[data-theme="etude"] .slide.cover{padding-top:5rem}
html[data-theme="etude"] .e-scroll{top:calc(4.6rem + 1.2rem)}
html[data-theme="etude"] #sitehead .sh-logo{grid-column:2;grid-row:1;justify-self:center;flex-direction:row;align-items:center;gap:0;text-align:center}
html[data-theme="etude"] #sitehead .sh-mark{
  display:block;width:0;opacity:0;flex:0 0 auto;align-self:center;
  transition:width .28s var(--ease),opacity .28s var(--ease),margin-right .28s var(--ease);
}
html[data-theme="etude"] body.logo-entete #sitehead .sh-mark{width:clamp(30px,3.4vw,38px);height:clamp(30px,3.4vw,38px);opacity:1;margin-right:.6rem}
html[data-theme="etude"] #sitehead .sh-nom{
  font:600 .95rem/1.05 Georgia,"Times New Roman",serif;letter-spacing:.08em;color:var(--e-noir);text-transform:uppercase;
}
html[data-theme="etude"] #sitehead .sh-nom small{
  margin-top:.12rem;font:400 .66rem/1 Georgia,"Times New Roman",serif;letter-spacing:.1em;color:var(--e-noir);
}
html[data-theme="etude"] #sitehead .sh-menu{grid-column:1;grid-row:1;justify-self:start;align-items:center;margin:0;gap:clamp(.8rem,2vw,2rem)}
html[data-theme="etude"] #sitehead .sh-menu-d{display:flex;grid-column:3;grid-row:1;justify-self:end;align-items:center;gap:clamp(.8rem,2vw,2rem)}
html[data-theme="etude"] #sitehead .sh-menu a,html[data-theme="etude"] #sitehead .sh-menu-d a{
  font:700 .7rem/1 "Inter",sans-serif;letter-spacing:.09em;text-transform:uppercase;color:var(--e-noir);
  text-decoration:none;padding:.3rem 0;position:relative;white-space:nowrap;
}
html[data-theme="etude"] #sitehead .sh-menu a:hover,html[data-theme="etude"] #sitehead .sh-menu-d a:hover{color:var(--e-gris)}
html[data-theme="etude"] #sitehead .sh-menu a.ici,html[data-theme="etude"] #sitehead .sh-menu-d a.ici{color:var(--e-noir)}
html[data-theme="etude"] #sitehead .sh-menu a.ici::after,html[data-theme="etude"] #sitehead .sh-menu-d a.ici::after{
  content:'';position:absolute;left:0;right:0;bottom:-.25rem;height:1px;background:var(--e-noir);
}
html[data-theme="etude"] #sitehead .sh-plein{
  display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;flex:0 0 auto;grid-column:3;grid-row:1;align-self:center;
  border:1px solid rgba(17,17,17,.2);border-radius:50%;background:none;cursor:pointer;color:var(--e-noir);
}
html[data-theme="etude"] #sitehead .sh-plein:hover{background:rgba(17,17,17,.08)}
html[data-theme="etude"] #sitehead .sh-plein svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
html[data-theme="etude"] #sitehead .sh-plein .ferme{display:none}
html[data-theme="etude"] body.pleinecran #sitehead .sh-plein .ouvre{display:none}
html[data-theme="etude"] body.pleinecran #sitehead .sh-plein .ferme{display:block}
@media (max-width:980px){ html[data-theme="etude"] #sitehead .sh-plein{display:none} }
html[data-theme="etude"] #sitehead .sh-cta{
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  width:2rem;height:2rem;padding:0;border:1px solid rgba(17,17,17,.2);border-radius:50%;
  background:none;color:var(--e-noir);
}
html[data-theme="etude"] #sitehead .sh-cta:hover{background:rgba(17,17,17,.08);color:var(--e-noir)}
html[data-theme="etude"] #sitehead .sh-cta svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
html[data-theme="etude"] #sitehead .sh-cta::after{display:none}
html[data-theme="etude"] #sitehead .sh-burger i{background:var(--e-noir)}
html[data-theme="etude"]{scroll-padding-top:3.6rem}

/* accueil : grande photo, titre et bouton */
html[data-theme="etude"] .slide.cover{padding-top:3.6rem;justify-content:center;align-items:center;text-align:center}
html[data-theme="etude"] .slide.cover{background:var(--navy)}
html[data-theme="etude"] .slide.cover .bg img{opacity:.55}
html[data-theme="etude"] .slide.cover .bg::after{background:linear-gradient(180deg,rgba(26,33,41,.62) 0%,rgba(26,33,41,.48) 45%,rgba(26,33,41,.74) 100%)}
html[data-theme="etude"] .slide.cover .confiance,html[data-theme="etude"] .slide.cover .rule,html[data-theme="etude"] .slide.cover .lede{display:none!important}
html[data-theme="etude"] .slide.cover .mark{display:block!important;width:clamp(84px,8.5vw,128px);margin:0 auto 1.1rem;transform:none!important}
html[data-theme="etude"] .slide.cover .loc{justify-content:center;margin-bottom:1rem}

html[data-theme="etude"] .slide.cover .loctxt{color:#C4A05A;font:600 .72rem/1.5 "Inter",sans-serif;letter-spacing:.14em;text-transform:uppercase;text-align:left}
html[data-theme="etude"] .slide.cover .loctxt b{display:block;color:rgba(255,255,255,.85);font-weight:400}
html[data-theme="etude"] .slide.cover h1{
  color:#fff;font-size:clamp(2.2rem,5.4vw,4.6rem);line-height:1.2;letter-spacing:.02em;
  text-shadow:0 2px 24px rgba(0,0,0,.25);margin:0 auto .9rem;
}
html[data-theme="etude"] .slide.cover .meta{justify-content:center;color:#fff;margin-bottom:1.6rem}
html[data-theme="etude"] .slide.cover .meta *{color:#fff!important}
html[data-theme="etude"] .slide.cover .cta{text-align:center!important;color:#fff;font-family:"Inter",sans-serif;border:0;padding:0}
html[data-theme="etude"] .slide.cover .cta > span{display:none}
html[data-theme="etude"] .slide.cover .cta .lienalerte{
  display:inline-block;margin-top:.4rem;padding:.95rem 2.1rem;background:#fff;color:var(--e-noir);
  border:0;text-decoration:none;font:700 .72rem/1 "Inter",sans-serif;letter-spacing:.12em;text-transform:uppercase;
}
html[data-theme="etude"] .slide.cover .cta .lienalerte:hover{background:var(--e-noir);color:#fff}

/* mentions verticales */
html[data-theme="etude"] .e-scroll,html[data-theme="etude"] .e-haut{
  display:block;position:absolute;writing-mode:vertical-rl;transform:rotate(180deg);
  font:700 .66rem/1 "Inter",sans-serif;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;
}
html[data-theme="etude"] .e-scroll{right:clamp(1rem,2.4vw,2rem);top:calc(3.6rem + 1.2rem);color:#fff;transform:none;z-index:5}
html[data-theme="etude"] .e-haut{
  position:fixed;right:clamp(.8rem,2vw,1.6rem);bottom:1.6rem;z-index:140;color:var(--e-noir);
  padding-top:4.2rem;opacity:0;pointer-events:none;transition:opacity .3s;
}
html[data-theme="etude"] .e-haut::before{content:'';position:absolute;top:0;left:50%;width:1px;height:3.6rem;background:var(--e-noir)}
html[data-theme="etude"] .e-haut.visible{opacity:1;pointer-events:auto}

/* vignettes : photo et étiquette blanche qui déborde sur le bas */
html[data-theme="etude"] .gal{display:grid!important;grid-template-columns:1fr 1fr;gap:3.4rem 1rem;max-width:1120px;margin:1.4rem auto 2rem}
html[data-theme="etude"] .gal figure{position:relative;margin:0;border:0;background:none;box-shadow:none}
html[data-theme="etude"] .gal figure:first-child{grid-column:1 / -1}
html[data-theme="etude"] .gal figure img{display:block;width:100%;aspect-ratio:16/9;height:auto;object-fit:cover}
html[data-theme="etude"] .gal figure:first-child img{aspect-ratio:21/8}
html[data-theme="etude"] .gal figcaption{
  position:absolute;left:50%;bottom:-2.3rem;transform:translateX(-50%);
  width:max-content;max-width:78%;padding:.9rem 2rem .7rem;background:#fff;
  font:400 clamp(1rem,1.7vw,1.45rem)/1.15 "Inter",sans-serif;letter-spacing:.07em;text-transform:uppercase;
  text-align:center;color:var(--e-noir);
}
@media (max-width:760px){ html[data-theme="etude"] .gal{grid-template-columns:1fr} }

/* boutons et liens d'action, en noir et blanc */
html[data-theme="etude"] .slide button:not(.hotspot):not(.lotbtn):not(.shbtn){border-radius:0}
html[data-theme="etude"] .slide .btn,html[data-theme="etude"] .slide .sharegrid .shbtn{border-radius:0}

/* pied de page clair */
html[data-theme="etude"] #sitefoot{background:var(--e-clair);color:var(--e-texte);border-top:1px solid #DDD}
html[data-theme="etude"] #sitefoot .sf-mark{display:none}
html[data-theme="etude"] #sitefoot .sf-titre{font:400 1rem/1.2 "Inter",sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--e-noir)}
html[data-theme="etude"] #sitefoot p{font-family:"Inter",sans-serif;color:var(--e-texte)}
html[data-theme="etude"] #sitefoot a{color:var(--e-noir);border-bottom-color:#BBB}
html[data-theme="etude"] #sitefoot a:hover{color:var(--e-gris);border-bottom-color:var(--e-noir)}
html[data-theme="etude"] #sitefoot .sf-legal{border-top-color:#DDD}
html[data-theme="etude"] #sitefoot .sf-legal p{color:var(--e-gris)}
html[data-theme="etude"] #sitefoot .sf-legal b{color:var(--e-texte)}

@media (max-width:980px){
  html[data-theme="etude"] #sitehead{display:flex}
  html[data-theme="etude"] #sitehead .sh-logo{margin-right:auto}
  html[data-theme="etude"] #sitehead .sh-menu-d{display:none}
  html[data-theme="etude"] #sitehead .sh-menu{background:#fff;border-bottom:1px solid var(--e-noir);top:3.6rem}
  html[data-theme="etude"] #sitehead .sh-menu a{color:var(--e-noir)}
  html[data-theme="etude"] #sitehead .sh-menu a.sh-mobile{background:var(--e-noir);color:#fff}
}

html[data-theme="etude"] .qrbloc span{color:#555!important}
/* thème étude : textes conçus pour un fond sombre, remis en couleur lisible sur blanc
   (relevés par la mesure automatique du contraste) */
html[data-theme="etude"] .slide.paper figcaption,html[data-theme="etude"] #pnav span,html[data-theme="etude"] .pjtxt,html[data-theme="etude"] .calcsub,html[data-theme="etude"] .qrbox span,html[data-theme="etude"] .slide.contact .qr span{color:#555!important}
html[data-theme="etude"] #pnav button{border:1px solid #111!important;color:#111!important;background:#fff!important;border-radius:0!important}
html[data-theme="etude"] #pnav button:hover{background:#111!important;color:#fff!important}
html[data-theme="etude"] #pnav button[disabled]{opacity:.35}
html[data-theme="etude"] .chrono::before{background:#D5D5D5}
html[data-theme="etude"] .chrono .t{color:#111!important;font-family:"Inter","Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:.02em}
html[data-theme="etude"] .chrono .date{color:#7A5A12!important}
html[data-theme="etude"] .chrono .c{color:#555!important}
html[data-theme="etude"] .chrono li[data-etat="fait"] .t::after{background:rgba(46,107,62,.14)!important;color:#1E5A2E!important}
html[data-theme="etude"] .chrono li[data-etat="encours"] .t::after{background:rgba(28,105,212,.18)!important;color:#6B4E0E!important}
html[data-theme="etude"] .chrono li[data-etat="attente"] .t::after{background:rgba(184,134,43,.16)!important;color:#6B4E0E!important}
html[data-theme="etude"] .pjdate,html[data-theme="etude"] .pjvig span,html[data-theme="etude"] b.maj,html[data-theme="etude"] .maj{color:#7A5A12!important}
html[data-theme="etude"] .pjvig{border-color:#D5D5D5}
html[data-theme="etude"] .pjvig.actif,html[data-theme="etude"] .pjvig:hover{border-color:#111}
/* thème étude : corrections après relecture des captures */
@media (min-width:981px){ html[data-theme="etude"] #sitehead .sh-menu a.sh-cote-droit{display:none} }
@media (max-width:980px){
  html[data-theme="etude"] #sitehead .sh-menu{left:0!important;right:0!important;width:auto!important;justify-self:stretch!important;padding:.4rem 0 1.1rem!important}
  html[data-theme="etude"] #sitehead .sh-menu a{padding:.95rem clamp(1.2rem,5vw,3rem)!important;font-size:.8rem!important}
  html[data-theme="etude"] #sitehead .sh-menu a.sh-mobile{margin:.6rem clamp(1.2rem,5vw,3rem) 0!important;padding:.95rem 1rem!important;text-align:center}
}
html[data-theme="etude"] .gal figure{overflow:visible!important;background:none!important}
html[data-theme="etude"] .gal figcaption{right:auto!important;color:#111!important}
html[data-theme="etude"] .slide .kicker,html[data-theme="etude"] .slide.paper .kicker{font-family:"Inter","Arial Narrow",sans-serif!important;font-style:normal!important;color:#111!important;letter-spacing:.03em}
html[data-theme="etude"] .slide.cover .locmap{display:block!important;width:clamp(58px,5.5vw,76px)}
html[data-theme="etude"] .speclist b{color:#111!important;font-weight:600}
html[data-theme="etude"] .speclist span{color:#2B2B2B!important}
html[data-theme="etude"] .speclist li{border-color:#E2E2E2!important}
html[data-theme="etude"] details summary{color:#111!important;font-family:"Inter",sans-serif}
html[data-theme="etude"] summary::after{color:#111!important}
html[data-theme="etude"] .shbtn{border:1px solid #111!important;background:#fff!important;color:#111!important;border-radius:0!important;font-family:"Inter",sans-serif}
html[data-theme="etude"] .shbtn:hover,html[data-theme="etude"] .shbtn.primaire{background:#111!important;color:#fff!important}
html[data-theme="etude"] .cautions li{border-left-color:#111}
html[data-theme="etude"] .cautions b{color:#111!important}
html[data-theme="etude"] .cautions span{color:#555!important}
html[data-theme="etude"] .coords,html[data-theme="etude"] .coords .addr,html[data-theme="etude"] .coords a{color:#2B2B2B!important}
html[data-theme="etude"] .coords .siege{color:#777!important;border-top-color:#E2E2E2}
/* la page de contact remplit l'écran, jusque dans les coins */
html[data-theme="etude"] .slide.contact{min-height:100vh;min-height:100svh}
/* la page de contact reprend le bleu de la couverture */
html[data-theme="etude"] .slide.contact,html[data-theme="etude"] .slide.contact.paper{
  align-items:center;background:var(--navy);color:var(--paper);
}
html[data-theme="etude"] .slide.contact h2,html[data-theme="etude"] .slide.contact .kicker{color:#fff}
html[data-theme="etude"] .slide.contact p,html[data-theme="etude"] .slide.contact li,html[data-theme="etude"] .slide.contact span{color:rgba(233,224,209,.86)}
html[data-theme="etude"] .slide.contact .cautions b{color:#fff!important}
html[data-theme="etude"] .slide.contact .cautions span{color:rgba(233,224,209,.68)!important}
html[data-theme="etude"] .slide.contact .cautions li{border-left-color:var(--gold)}
html[data-theme="etude"] .slide.contact .coords,html[data-theme="etude"] .slide.contact .coords .addr,html[data-theme="etude"] .slide.contact .coords a{color:rgba(233,224,209,.9)!important}
html[data-theme="etude"] .slide.contact .coords .siege{color:rgba(233,224,209,.6)!important;border-top-color:rgba(233,224,209,.18)}
html[data-theme="etude"] .slide.contact .qrbloc span{color:rgba(233,224,209,.7)!important}
html[data-theme="etude"] .slide.contact .shbtn{border-color:rgba(233,224,209,.6)!important;background:transparent!important;color:var(--paper)!important}
html[data-theme="etude"] .slide.contact .shbtn:hover,html[data-theme="etude"] .slide.contact .shbtn.primaire{background:var(--gold)!important;color:#12243F!important;border-color:var(--gold)!important}
html[data-theme="etude"] .slide.contact .hintline,html[data-theme="etude"] .slide.contact .muted{color:rgba(233,224,209,.65)!important}
html[data-theme="etude"] #sitefoot{text-align:left}

/* ===== ÉCHELLE TYPOGRAPHIQUE =====================================
   Rapport de 1,25 (tierce majeure), le plus répandu sur le web.
   Deux tailles de titre seulement, déclarées une fois et appliquées
   partout : le titre de page et le titre de fenêtre. Le titre de la
   couverture reste l'unique exception, c'est l'enseigne du site.   */
:root{
  --t-titre: clamp(1.563rem, 2.8vw, 2.441rem);   /* 25 à 39 px : titre de page */
  --t-soustitre: 1.4rem;                          /* 22 px : titre de fenêtre */
}
.slide h2,.contact h2{font-size:var(--t-titre);line-height:1.1}
#rdv h3,#alerte h3,#resa h3{font-size:var(--t-soustitre)}

/* ===== feuille de route (page privée) ===== */
.slide.feuille{justify-content:flex-start;padding-top:4vh;overflow-y:auto}
.feuille .frintro{
  max-width:64em;margin:.2rem 0 1.4rem;
  font:400 .8rem/1.5 "Inter",sans-serif;color:#6A7383;
}
.feuille .frcols{display:flex;gap:clamp(1.2rem,3vw,2.6rem);align-items:flex-start;width:100%}
.feuille .frcol{flex:1 1 0;min-width:0}
.feuille .frcol h3{
  margin:0 0 .9rem;padding-bottom:.5rem;border-bottom:2px solid var(--gold);
  font:600 .96rem/1.3 "Inter",sans-serif;color:var(--navy);
}
.feuille .frcol h3 span{
  display:block;margin-top:.18rem;font-weight:400;font-size:.74rem;color:#5E6673;
}
.feuille .frvous h3{border-bottom-color:#B3453D}
.feuille .frliste{list-style:none;margin:0;padding:0;counter-reset:fr}
.feuille .frliste li{
  counter-increment:fr;display:flex;gap:.6rem;align-items:flex-start;
  padding:.62rem .5rem .62rem .2rem;border-bottom:1px solid var(--rule);cursor:pointer;
  transition:background .16s var(--ease);
}
.feuille .frliste li:hover{background:rgba(28,105,212,.09)}
.feuille .coche{
  flex:0 0 auto;width:1.15rem;height:1.15rem;margin-top:.1rem;border-radius:2px;
  border:1px solid #B9BFC8;background:#fff;position:relative;
}
.feuille .coche::before{
  content:counter(fr);position:absolute;inset:0;display:flex;
  align-items:center;justify-content:center;
  font:600 .62rem/1 "Inter",sans-serif;color:#8A929E;
}
.feuille .frvous .coche{border-color:#C79B96}
.feuille .frliste li b{
  display:block;font:600 .84rem/1.35 "Inter",sans-serif;color:var(--navy);
}
.feuille .frliste li span{
  display:block;margin-top:.16rem;
  font:400 .76rem/1.48 "Inter",sans-serif;color:#5E6673;
  text-align:justify;hyphens:none;
}
.feuille .frliste li.fait{opacity:.42}
.feuille .frliste li.fait b{text-decoration:line-through}
.feuille .frliste li.fait .coche{background:#2E6B3E;border-color:#2E6B3E}
.feuille .frliste li.fait .coche::before{content:'\2713';color:#fff;font-size:.72rem}
@media (max-width:900px){ .feuille .frcols{flex-direction:column;gap:1.8rem} }

.feuille .cycle{
  margin:0 0 1.8rem;padding:1.1rem 1.2rem;border:1px solid var(--gold);
  border-left-width:4px;border-radius:2px;background:#FBF9F5;
}
.feuille .cycle.phases{border-left-color:#262e38;border-color:#262e38}
.feuille .cycle.phases .cyetats li{border-top-color:#262e38}
.feuille .cycle.phases .cyetats li:first-child{border-top-color:#2E6B3E}
.feuille .cycle.phases .cyetats li:last-child{border-top-color:#B9BFC8}
.feuille code{font:600 .76em/1 ui-monospace,Menlo,Consolas,monospace;background:#EFEAE0;padding:.1em .3em;border-radius:2px}
.feuille .cycle h3{margin:0 0 .5rem;font:600 .98rem/1.3 "Inter",sans-serif;color:var(--navy)}
.feuille .cyintro,.feuille .cyalerte,.feuille .cynote{
  margin:0 0 .6rem;font:400 .78rem/1.5 "Inter",sans-serif;color:#5E6673;
  text-align:justify;hyphens:none;
}
.feuille .cyalerte{color:#8A3F38}
.feuille .cyalerte b,.feuille .cynote b{color:var(--navy)}
.feuille .cyetats{list-style:none;margin:.7rem 0 .9rem;padding:0;display:flex;gap:.5rem;flex-wrap:wrap}
.feuille .cyetats li{
  flex:1 1 150px;min-width:0;padding:.55rem .6rem;background:#fff;
  border:1px solid var(--rule);border-top:3px solid var(--gold);border-radius:2px;
}
.feuille .cyetats li:last-child{border-top-color:#2E6B3E}
.feuille .cyetats b{display:block;font:600 .76rem/1.3 "Inter",sans-serif;color:var(--navy)}
.feuille .cyetats span{display:block;margin-top:.22rem;font:400 .7rem/1.4 "Inter",sans-serif;color:#6A7383}
@media (max-width:760px){.feuille .cyetats{flex-direction:column}}

#rail{
  position:fixed;top:50%;left:1rem;transform:translateY(-50%);z-index:150;
  display:none;flex-direction:column;align-items:center;gap:.42rem;
}

/* ---- photo du jour : parcours des jours précédents ---- */
.photojour .slot{position:relative}
.pjnav{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:34px;height:34px;border-radius:50%;
  border:1px solid var(--rule);background:rgba(26,33,41,.55);color:var(--gold);font-size:1.15rem;line-height:1;
  cursor:pointer;display:none;align-items:center;justify-content:center;padding:0;
  transition:background .22s var(--ease),border-color .22s var(--ease),transform .22s var(--ease)}
.pjnav:hover{background:rgba(28,105,212,.28);border-color:var(--gold);color:var(--paper)}
.pjnav:active{transform:translateY(-50%) scale(.94)}
.pjnav.prec{left:.55rem}.pjnav.suiv{right:.55rem}
.photojour.aplusieurs .pjnav{display:flex}
.pjnav[disabled]{opacity:.28;cursor:default}
.pjnav[disabled]:hover{background:rgba(26,33,41,.55);border-color:var(--rule);color:var(--gold)}
.pjbadge.passe{background:rgba(26,33,41,.72);color:var(--gold-pale)}
.pjstrip{display:none;gap:.4rem;margin-top:.55rem;overflow-x:auto;scrollbar-width:thin;padding-bottom:.25rem;scroll-behavior:smooth}
.photojour.aplusieurs .pjstrip{display:flex}
.pjvig{flex:0 0 auto;width:62px;border:1px solid var(--rule);border-radius:7px;overflow:hidden;background:none;
  padding:0;cursor:pointer;opacity:.62;transition:opacity .22s var(--ease),border-color .22s var(--ease),transform .22s var(--ease)}
.pjvig img{display:block;width:100%;height:42px;object-fit:cover}
.pjvig span{display:block;font-size:.58rem;letter-spacing:.02em;padding:.16rem .1rem;color:var(--gold-pale);text-align:center}
.pjvig:hover{opacity:1;border-color:var(--gold)}
.pjvig:active{transform:scale(.95)}
.pjvig.actif{opacity:1;border-color:var(--gold)}
.pjarchive{display:none}
/* petit formulaire de la photo du jour, en mode administrateur */
.pjform{
  display:grid;grid-template-columns:minmax(150px,1fr) minmax(220px,2fr);gap:.6rem .9rem;
  align-items:end;margin:.7rem 0 .2rem;padding:.8rem .9rem;
  background:#FBF9F5;border:1px solid var(--gold);border-radius:2px;
}
.pjform label{display:block;font:600 .68rem/1.3 "Inter",sans-serif;color:var(--navy)}
.pjform input,.pjform textarea{
  width:100%;margin-top:.25rem;padding:.45rem .55rem;border:1px solid #C9C2B4;border-radius:2px;
  font:400 .84rem/1.4 "Inter",sans-serif;color:var(--ink);background:#fff;resize:vertical;
}
.pjfb{grid-column:1/-1;display:flex;gap:.5rem}
.pjform button{padding:.5rem .9rem;border-radius:2px;cursor:pointer;font:600 .76rem/1 "Inter",sans-serif}
.pjfok{background:var(--navy);color:var(--paper);border:1px solid var(--navy)}
.pjfno{background:none;color:var(--navy);border:1px solid var(--rule)}
@media (max-width:700px){.pjform{grid-template-columns:1fr}}
@media (max-width:820px){.pjvig{width:54px}.pjvig img{height:36px}}

/* ---- note de confidentialite du formulaire : etait sans style, donc a la taille des paragraphes de diapositive ---- */
#resa .rassure{font-size:.76rem;line-height:1.55;max-width:none;color:var(--navy-mid);
  margin:.7rem 0 .2rem;text-align:justify;text-justify:inter-word;hyphens:none}
/* ---- fleches de navigation masquees pendant un panneau plein ecran ---- */
body.panneau .navarrow{display:none!important}
/* ---- rail lisible sur les pages a fond clair ---- */
body.clair #rail:not(.accueil){background:rgba(255,255,255,.42);border-radius:22px;padding:.3rem .22rem;
  backdrop-filter:blur(6px);box-shadow:0 1px 10px rgba(23,53,94,.07)}
body.clair .railbtn{background:rgba(23,53,94,.92);border-color:rgba(23,53,94,.92)}
body.clair #btnHome{background:none;border:0}
body.clair .railbtn svg{stroke:var(--paper)}
body.clair .railbtn:hover{background:var(--gold);border-color:var(--gold)}
body.clair .railbtn:hover svg{stroke:var(--navy)}
body.clair .railbtn.ici{background:var(--gold);border-color:var(--gold)}
body.clair .railbtn.ici svg{stroke:var(--navy)}
body.clair .railsep{background:rgba(23,53,94,.28)}

/* ---- page programme : l'image occupe la moitie droite, pleine hauteur ---- */
.slide.demi{padding-right:0}
.slide.demi .split{display:block;flex:none;padding-right:calc(50% + clamp(1.6rem,3.2vw,3.4rem))}
.slide.demi .split > .slot.degroupe{
  position:absolute;top:0;right:0;bottom:0;width:50%;height:auto;
  min-height:0;margin:0;border:0;border-radius:0;background:none}
.slide.demi .split > .slot.degroupe img{width:100%;height:100%;object-fit:cover;object-position:center}
@media (max-width:820px){
  .slide.demi{padding-right:5.5vw}
  .slide.demi .split{padding-right:0}
  .slide.demi .split > .slot.degroupe{position:relative;width:auto;height:auto;min-height:180px}
  .slide.demi .split > .slot.degroupe img{height:auto;object-fit:contain}
}
@media print{
  .slide.demi{padding-right:14mm}
  .slide.demi .split{padding-right:0;display:grid;grid-template-columns:1.05fr 1fr;gap:8mm}
  .slide.demi .split > .slot.degroupe{position:relative;width:auto;height:auto}
  .slide.demi .split > .slot.degroupe img{object-fit:contain}
}

/* ---- photo du jour : coup d'oeil vertical, revient au centre au relachement ---- */
#photojour .slot.cover-fit img{cursor:grab}
#photojour .slot.cover-fit img.lorgne{cursor:grabbing}
#photojour .slot.cover-fit img.recentre{transition:object-position .42s var(--ease)}
#photojour /* poignée basse : on tire la photo vers le bas pour la voir entière */
.pjgrip{
  position:absolute;left:0;right:0;bottom:0;height:16px;z-index:5;
  display:flex;align-items:flex-end;justify-content:center;padding-bottom:3px;
  cursor:ns-resize;touch-action:none;
  background:linear-gradient(to bottom,rgba(26,33,41,0),rgba(26,33,41,.5));
  opacity:0;transition:opacity .2s var(--ease);
}
.slot.cover-fit:hover .pjgrip,.pjgrip:focus-visible,.pjgrip.tire{opacity:1}
.pjgrip i{
  display:block;width:46px;height:4px;border-radius:2px;
  background:rgba(255,255,255,.85);box-shadow:0 1px 3px rgba(0,0,0,.35);
}
.pjgrip:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.slot.cover-fit.entiere img{object-fit:contain;background:#1a2129}
.slot.cover-fit.entiere .pjhint{display:none}
.pjhint{position:absolute;left:50%;bottom:.5rem;transform:translateX(-50%);z-index:3;
  font:400 .6rem/1 "Inter",sans-serif;letter-spacing:.06em;text-transform:uppercase;
  color:rgba(255,255,255,.82);background:rgba(26,33,41,.5);border:1px solid var(--rule);
  border-radius:11px;padding:.25rem .55rem;pointer-events:none;
  opacity:0;transition:opacity .3s var(--ease)}
#photojour:hover .pjhint{opacity:1}
#photojour .slot.cover-fit img.lorgne ~ .pjhint{opacity:0}
@media (prefers-reduced-motion:reduce){#photojour .slot.cover-fit img.recentre{transition:none}}

/* ---- page programme : deux photos empilees sur la moitie droite ---- */
.slide.demi .split > .pilephotos{position:absolute;top:0;right:0;bottom:0;width:50%;
  display:flex;flex-direction:column;gap:2px}
.slide.demi .split > .pilephotos > .slot.degroupe{position:relative;width:auto;height:auto;
  flex:1 1 50%;min-height:0;margin:0;border:0;border-radius:0;background:none}
.slide.demi .split > .pilephotos > .slot.degroupe img{width:100%;height:100%;object-fit:cover;object-position:center}
@media (max-width:820px){
  .slide.demi .split > .pilephotos{position:relative;width:auto;flex-direction:column;gap:.6rem}
  .slide.demi .split > .pilephotos > .slot.degroupe{flex:none;min-height:170px}
  .slide.demi .split > .pilephotos > .slot.degroupe img{height:auto;object-fit:contain}
}
@media print{
  .slide.demi .split > .pilephotos{position:relative;width:auto;gap:4mm}
  .slide.demi .split > .pilephotos > .slot.degroupe{flex:none}
  .slide.demi .split > .pilephotos > .slot.degroupe img{object-fit:contain}
}

/* ---- annotation "Le projet" sur le plan de situation ---- */

.zoneanno{position:absolute;z-index:7;transform:translateY(-50%);white-space:nowrap;pointer-events:none;
  font:600 clamp(.6rem,.95vw,.76rem)/1 "Inter",sans-serif;letter-spacing:.04em;text-transform:uppercase;
  color:var(--paper);background:rgba(23,53,94,.92);border:1px solid var(--gold);border-radius:3px;
  padding:.3rem .5rem;box-shadow:0 2px 8px rgba(0,0,0,.28)}
.zonefleche{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:6}
.zonefleche polyline{fill:none;stroke:var(--gold);stroke-width:1.4;vector-effect:non-scaling-stroke;
  stroke-linecap:round;stroke-linejoin:round}
.zonepointe{position:absolute;z-index:7;width:0;height:0;pointer-events:none;
  border-left:8px solid var(--gold);border-top:4.5px solid transparent;border-bottom:4.5px solid transparent;
  transform-origin:center}
body.editing .zoneanno,body.editing .zonefleche,body.editing .zonepointe{display:none}
/* la navigation entre les vues est retirée : on avance en cliquant la zone */
#pnav{display:none!important}
/* la zone cliquable de la vue se signale d'elle-même */
#sitepics .zones polygon[data-etape]{
  cursor:pointer;
  animation:zoneclignote 5s linear infinite;
  stroke:var(--gold);stroke-width:.4;
}
/* une pastille qui bat au centre de la zone : visible même sans souris */
#sitepics .slot.plan .balise{
  position:absolute;width:26px;height:26px;margin:-13px 0 0 -13px;pointer-events:none;z-index:4;
}
#sitepics .slot.plan .balise::before,#sitepics .slot.plan .balise::after{
  content:'';position:absolute;inset:0;border-radius:50%;
}
#sitepics .slot.plan .balise::before{
  background:var(--gold);opacity:.95;transform:scale(.42);
  box-shadow:0 0 0 2px rgba(255,255,255,.9);
}
#sitepics .slot.plan .balise::after{
  border:2px solid var(--gold);animation:baliseonde 2.2s ease-out infinite;
}
@keyframes baliseonde{
  0%{transform:scale(.45);opacity:.9}
  70%{transform:scale(1.5);opacity:0}
  100%{opacity:0}
}
@media (prefers-reduced-motion:reduce){ #sitepics .slot.plan .balise::after{animation:none;opacity:.5} }
#sitepics .zones polygon[data-etape]:hover{
  animation:none;fill:rgba(28,105,212,.34);stroke:var(--gold);stroke-width:.5;
}
@keyframes zonepulse{
  0%,100%{fill:rgba(28,105,212,.08);stroke-opacity:.55}
  50%    {fill:rgba(28,105,212,.30);stroke-opacity:1}
}
/* repos quatre secondes, puis deux éclats dorés */
@keyframes zoneclignote{
  0%,80%,100%{fill:rgba(28,105,212,.08);stroke-opacity:.55;stroke-width:.25}
  84%        {fill:rgba(28,105,212,.55);stroke-opacity:1;stroke-width:.6}
  88%        {fill:rgba(28,105,212,.10);stroke-opacity:.6;stroke-width:.25}
  92%        {fill:rgba(28,105,212,.55);stroke-opacity:1;stroke-width:.6}
  96%        {fill:rgba(28,105,212,.08);stroke-opacity:.55;stroke-width:.25}
}
@media (prefers-reduced-motion:reduce){ #sitepics .zones polygon[data-etape]{animation:none;fill:rgba(28,105,212,.2)} }
#sitepics .slot.plan{position:relative}
#sitepics .indiceclic{
  position:absolute;right:.6rem;bottom:.6rem;z-index:6;pointer-events:none;
  display:flex;align-items:center;gap:.4rem;padding:.34rem .6rem;border-radius:2px;
  background:rgba(26,33,41,.86);color:#fff;
  font:600 .7rem/1 "Inter",sans-serif;letter-spacing:.02em;
}
#sitepics .indiceclic svg{width:14px;height:14px;fill:none;stroke:var(--gold);stroke-width:1.8}
/* l'étiquette cliquable doit recevoir le clic : la règle de base le bloquait */
.zoneanno[role=button]{pointer-events:auto;cursor:pointer}
.zoneanno[role=button]:hover,.zoneanno[role=button]:focus-visible{
  background:var(--gold);color:#12243F;border-color:var(--gold);outline:none;
}
@media (max-width:820px){.zoneanno{font-size:.56rem;padding:.24rem .4rem}}

/* ---- dialogue "lots non contigus" depuis le tableau ---- */
.conflitbox{position:fixed;z-index:190;width:min(340px,86vw);
  background:var(--paper);border:1px solid var(--rule);border-radius:3px;
  padding:.7rem;box-shadow:0 10px 30px rgba(26,33,41,.28)}
.conflitbox .conflit{margin-top:0}
#rail.on{display:flex}
.railbtn:active,#btnHome:active{transform:scale(.94)}
#rail.accueil #btnHome,#rail.accueil .railsep:first-of-type{display:none}
body.presenting #rail,body.panneau #rail{display:none}

#btnHome{
  background:none;border:0;padding:.2rem;cursor:pointer;position:relative;
  transition:opacity .22s var(--ease), transform .22s var(--ease);opacity:.88;
}
#btnHome .sigle{display:block;width:clamp(42px,3.6vw,54px);aspect-ratio:1/1;background:var(--mark) center/contain no-repeat}
#btnHome:hover{opacity:1;transform:scale(1.05)}

.railsep{display:block;width:16px;height:1px;background:var(--rule);opacity:.5;margin:.15rem 0}

.railbtn{
  position:relative;width:34px;height:34px;border-radius:50%;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  background:rgba(26,33,41,.55);border:1px solid var(--rule);
  -webkit-
  transition:background .22s var(--ease), border-color .22s var(--ease), transform .22s var(--ease);
}
.railbtn svg{
  width:17px;height:17px;fill:none;stroke:var(--gold);stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;
}
.railbtn:hover{background:rgba(28,105,212,.28);border-color:var(--gold);transform:scale(1.08)}
.railbtn:hover svg{stroke:var(--paper)}
.railbtn.ici{background:rgba(28,105,212,.32);border-color:var(--gold)}
.railbtn.ici svg{stroke:var(--paper)}

#rail .bulle{
  position:absolute;top:50%;left:calc(100% + .5rem);transform:translateY(-50%);
  font:400 .62rem/1 "Inter",sans-serif;letter-spacing:.06em;white-space:nowrap;
  color:var(--gold);background:rgba(26,33,41,.9);padding:.3rem .5rem;border-radius:2px;
  border:1px solid var(--rule);pointer-events:none;
  opacity:0;visibility:hidden;transition:opacity .15s;
  -webkit-
}
#rail button:hover .bulle,#rail button:focus-visible .bulle{opacity:1;visibility:visible}
#rail button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* le contenu des pages internes laisse la place au rail */
.slide{padding-left:calc(7vw + 58px)}
#navPrev{left:calc(1rem + 58px)}

@media (max-width:820px){
  #rail{
    top:auto;bottom:3.1rem;left:50%;transform:translateX(-50%);
    flex-direction:row;gap:.3rem;
    background:rgba(26,33,41,.62);padding:.3rem .45rem;border-radius:20px;
    -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  }
  #btnHome .sigle{width:30px}
  .railsep{width:1px;height:16px;margin:0 .1rem}
  .railbtn{width:29px;height:29px}
  .railbtn svg{width:15px;height:15px}
  #rail .bulle{top:auto;bottom:calc(100% + .45rem);left:50%;right:auto;transform:translateX(-50%)}
  .slide{padding-left:5.5vw}
  #navPrev{left:.4rem}
}

/* ================= AFFICHAGE TÉLÉPHONE ================= */
@media (max-width:820px){
  /* les flèches quittent le haut de page pour ne plus recouvrir les titres */
  .navarrow{width:32px;height:32px;font-size:1.3rem;background:rgba(26,33,41,.62);border-radius:50%}
  .paper .navarrow{background:rgba(26,33,41,.5)}
  #navPrev{left:.4rem}
  #navNext{right:.4rem}

  /* place réservée en bas pour le bouton de lecture */
  .slide{padding:4.5vh 5.5vw 7.5rem}
  /* bouton d'accueil : voir les regles generales, plus haut */
#navbar{bottom:1rem;gap:.25rem}
  #navbar .count{font-size:.62rem}
  #navPlay{width:36px;height:36px}

  /* barre de sélection : au-dessus du bouton de lecture, sur deux lignes si besoin */
  #selbar{
    bottom:5.4rem;width:calc(100% - 1.4rem);flex-wrap:wrap;justify-content:center;
    gap:.4rem .5rem;padding:.6rem;
  }
  #selCount{width:100%;text-align:center;padding:0;font-size:.78rem;white-space:normal}
  #selbar button{flex:1 1 auto;padding:.6rem .7rem;font-size:.8rem}

  /* le tableau garde sa forme, simplement resserré */
  .tbl{font-size:.74rem}
  .tbl th,.tbl td{padding:.4rem .45rem}
  .tbl tbody td:first-child{gap:.3rem}
  .lotbtn{padding:.26rem .5rem;font-size:.92em}
  .dupbadge{font-size:.62rem;padding:.2rem .34rem}

  /* la légende des plans passe sur deux lignes */
  .plans figcaption{flex-direction:column;gap:.1rem;align-items:flex-start}
}



@media (prefers-reduced-motion:reduce){.slide{transition:none}#bar i{transition:none}}
@media (max-width:1100px){.hotwrap{width:78%}}
@media (max-width:820px){
  .hotwrap{width:100%}
  #ctrl{bottom:.8rem;right:.7rem}
  .split{grid-template-columns:1fr;gap:1.5rem;align-items:start;overflow-y:auto}
  .slot{min-height:180px}
  .figs{gap:1.8rem}
  #hint{display:none}
}

/* ===== accessibilité : lisibilité ===== */
/* vignettes des photos du chantier : la date reste lisible, seule la photo s'estompe */
.pjvig{opacity:1}
.pjvig:not(.actif) img{opacity:.62;transition:opacity .22s}
.pjvig:not(.actif):hover img{opacity:1}
/* « Haut de page » lisible sur les sections claires comme sur les sections bleu nuit */
html[data-theme="etude"] .e-haut{color:#fff;mix-blend-mode:difference}
html[data-theme="etude"] .e-haut::before{background:#fff}
/* repère clavier bien visible */
a:focus-visible,button:focus-visible,[tabindex="0"]:focus-visible,summary:focus-visible{outline:2px solid #1c69d4;outline-offset:2px}

/* ===== barre d'action fixe sur téléphone ===== */
.barremobile{display:none}
@media (max-width:820px){
  .barremobile{
    display:flex;position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:130;gap:8px;
    padding:8px;background:rgba(255,255,255,.96);border:1px solid #E2DED6;border-radius:12px;
    box-shadow:0 6px 24px rgba(26,33,41,.18);
    transform:translateY(0);opacity:1;transition:transform .3s cubic-bezier(.25,.1,.25,1),opacity .3s;
  }
  .barremobile[hidden]{display:flex;transform:translateY(140%);opacity:0;pointer-events:none}
  .barremobile .bm-dossier{
    flex:1;min-height:46px;border:0;border-radius:8px;background:#1c69d4;color:#1a2129;cursor:pointer;
    font:600 .9rem/1 "Inter","Arial Narrow",sans-serif;letter-spacing:.08em;text-transform:uppercase;
  }
  .barremobile .bm-appel{
    display:flex;align-items:center;gap:.4rem;min-height:46px;padding:0 1rem;border-radius:8px;
    background:#1a2129;color:#fff;text-decoration:none;font:600 .85rem/1 "Inter",sans-serif;
  }
  .barremobile .bm-appel svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
  html.bm-visible[data-theme="etude"] .e-haut{bottom:calc(5.6rem + env(safe-area-inset-bottom))}
}
@media (prefers-reduced-motion:reduce){.barremobile{transition:none}}

/* ===== Pourquoi s'installer à Hope Hill ===== */
.pourquoi .pq-intro{max-width:62ch;font-size:clamp(.9rem,1.15vw,1.02rem);margin-bottom:1.6rem}
.pq-chiffres{list-style:none;margin:0 0 2rem;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:#E2DED6;border:1px solid #E2DED6}
.pq-chiffres li{background:#fff;padding:1.1rem 1rem 1rem;display:flex;flex-direction:column;gap:.45rem}
.pq-chiffres b{font:500 clamp(1.6rem,2.6vw,2.3rem)/1 "Inter","Arial Narrow",sans-serif;color:#1a2129;letter-spacing:.01em}
.pq-chiffres span{font:400 .8rem/1.45 "Inter",sans-serif;color:#4A535E}
.pq-cartes{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:0 0 2.4rem}
.pq-cartes article{border-top:3px solid #1c69d4;background:#ffffff;padding:1rem 1rem 1.1rem}
.pq-cartes h3{font:500 1rem/1.2 "Inter","Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:.04em;color:#1a2129;margin:0 0 .5rem}
.pq-cartes p{font:400 .84rem/1.55 "Inter",sans-serif;color:#3A424D;margin:0}
.pq-cartes p+p,.pq-cartes ul+p{margin-top:.5rem}
.pq-cartes .pq-etapes{list-style:none;margin:.45rem 0 0;padding:0;font:400 .84rem/1.5 "Inter",sans-serif;color:#3A424D}
.pq-cartes .pq-etapes li{position:relative;padding-left:.9rem;margin-top:.2rem}
.pq-cartes .pq-etapes li::before{content:"";position:absolute;left:0;top:.55em;width:.4rem;height:.4rem;background:#1c69d4;border-radius:50%}
.pq-cartes .pq-etapes li{font-size:inherit}
html[data-theme="etude"] .pq-cartes .pq-etapes{font-size:.9rem;line-height:1.65;color:var(--e-texte)}
.pq-cartes .pq-etapes b,.pq-cartes p b{font-weight:600;color:#1a2129}
.pq-titre{font:500 1.1rem/1.2 "Inter","Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:.05em;color:#1a2129;margin:0 0 .8rem}
.pq-risques,.pq-actu{list-style:none;margin:0 0 2.2rem;padding:0}
.pq-risques li{padding:.8rem 0;border-bottom:1px solid #E2DED6;font:400 .88rem/1.55 "Inter",sans-serif;color:#3A424D}
.pq-risques li b{color:#1a2129;margin-right:.3rem}
.pq-niv{display:inline-block;min-width:7.5rem;margin-right:.8rem;padding:.18rem .5rem;border-radius:2px;font:600 .68rem/1.3 "Inter",sans-serif;letter-spacing:.06em;text-transform:uppercase;text-align:center;vertical-align:.1em}
.pq-niv.faible{background:#E4EFE6;color:#1E4A2A}
.pq-niv.moyen{background:#F6EBD2;color:#6B4E10}
.pq-niv.eleve{background:#F4DEDB;color:#8E2A20}
.pq-actu li{display:grid;grid-template-columns:6.5rem 1fr;gap:1rem;padding:.7rem 0;border-bottom:1px solid #E2DED6;font:400 .88rem/1.55 "Inter",sans-serif;color:#3A424D}
.pq-actu time{font:500 .82rem/1.55 "Inter","Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:.05em;color:#0653b6}
.pq-actu a,.pq-sources a{color:#1a2129;text-decoration:underline;text-decoration-color:#1c69d4;text-underline-offset:2px}
.pq-sources{font:400 .74rem/1.6 "Inter",sans-serif;color:#5E6673;max-width:none}
@media (max-width:1100px){.pq-chiffres{grid-template-columns:repeat(3,1fr)}.pq-cartes{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){
  .pq-chiffres{grid-template-columns:1fr 1fr}
  .pq-chiffres li:last-child{grid-column:1 / -1}
  .pq-cartes{grid-template-columns:1fr}
  .pq-niv{display:block;width:max-content;margin:0 0 .35rem}
  .pq-actu li{grid-template-columns:1fr;gap:.2rem}
}

/* ===== accueil : atouts flottants (remplacent les symboles d'activité) ===== */
.slide.cover .atouts{position:absolute;inset:0;z-index:1;pointer-events:none}
.atout{
  position:absolute;display:flex;flex-direction:column;gap:.25rem;width:clamp(128px,11vw,168px);
  padding:.65rem .8rem .7rem;border-radius:10px;text-decoration:none;pointer-events:auto;
  background:rgba(26,33,41,.52);border:1px solid rgba(28,105,212,.55);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  box-shadow:0 8px 24px rgba(8,20,38,.25);
  will-change:transform;backface-visibility:hidden;transition:background .25s,border-color .25s;
}
.atout:hover,.atout:focus-visible{background:rgba(26,33,41,.78);border-color:#1c69d4}
.atout b{font:500 clamp(1.25rem,1.8vw,1.6rem)/1 "Inter","Arial Narrow",sans-serif;color:#bcd3f2;letter-spacing:.01em}
.atout span{font:600 .68rem/1.35 "Inter",sans-serif;color:#fff;letter-spacing:.01em}
.at-g1{left:5%;top:22%;animation:flotte 11s ease-in-out infinite}
.at-g2{left:9%;top:46%;animation:flotte 13s ease-in-out infinite .8s}
.at-g3{left:4%;top:70%;animation:flotte 15s ease-in-out infinite 1.6s}
.at-d1{right:6%;top:20%;animation:flotte 14s ease-in-out infinite .4s}
.at-d2{right:10%;top:45%;animation:flotte 12s ease-in-out infinite 1.2s}
.at-d3{right:5%;top:69%;animation:flotte 16s ease-in-out infinite 2s}
@media (prefers-reduced-motion:reduce){ .atout{animation:none!important} }
@media (max-width:1280px){ .at-g3,.at-d3{display:none} }
@media (max-width:1000px){ .slide.cover .atouts{display:none} }
.atouts-mob{display:none}
@media (max-width:1000px){
  .atouts-mob{display:flex;gap:.6rem;list-style:none;margin:1.2rem -1rem 0;padding:0 1rem .4rem;
    overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .atouts-mob::-webkit-scrollbar{display:none}
  .atouts-mob li{flex:0 0 auto;scroll-snap-align:start}
  .atouts-mob a{display:flex;flex-direction:column;gap:.2rem;width:9.5rem;padding:.6rem .75rem;border-radius:10px;text-decoration:none;
    background:rgba(26,33,41,.55);border:1px solid rgba(28,105,212,.55);text-align:left}
  .atouts-mob b{font:500 1.3rem/1 "Inter","Arial Narrow",sans-serif;color:#bcd3f2}
  .atouts-mob span{font:600 .68rem/1.35 "Inter",sans-serif;color:#fff;white-space:normal}
}

/* ===== Pourquoi : pictogrammes, simulateur ===== */
.pq-cartes .pq-ico{width:30px;height:30px;margin-bottom:.55rem;fill:none;stroke:#0653b6;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.pq-cartes article{transition:transform .25s cubic-bezier(.25,.1,.25,1),box-shadow .25s}
.pq-cartes article:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(26,33,41,.08)}
.pq-simu{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:1.2rem 2rem;align-items:start;
  margin:0 0 2.4rem;padding:1.4rem 1.5rem;background:#1a2129;color:#fff;border-top:3px solid #1c69d4}
.pq-simu .pq-titre{color:#fff}
.pq-simu-q{font:600 .9rem/1.4 "Inter",sans-serif;margin:0 0 .6rem;color:#bcd3f2}
.pq-nb{display:flex;gap:.45rem;flex-wrap:wrap}
.pq-nb button{width:3rem;height:3rem;border-radius:8px;border:1px solid rgba(226,203,152,.55);background:transparent;color:#fff;
  font:500 1.25rem/1 "Inter","Arial Narrow",sans-serif;cursor:pointer;transition:background .2s,color .2s}
.pq-nb button:hover{background:rgba(28,105,212,.18)}
.pq-nb button[aria-checked="true"]{background:#1c69d4;color:#1a2129;border-color:#1c69d4}
.pq-simu-note{font:400 .72rem/1.5 "Inter",sans-serif;color:#B8C0CC;margin:.8rem 0 0}
.pq-simu-r{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:0;background:rgba(255,255,255,.12)}
.pq-simu-r div{background:#1a2129;padding:.75rem .8rem}
.pq-simu-r dt{font:600 .66rem/1.3 "Inter",sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#B8C0CC;margin-bottom:.3rem}
.pq-simu-r dd{margin:0;font:400 .9rem/1.4 "Inter",sans-serif;color:#fff}
.pq-simu-r dd b{font:500 1.35rem/1.1 "Inter","Arial Narrow",sans-serif;color:#bcd3f2;display:block}
.pq-simu-go{grid-column:2;justify-self:end;min-height:44px;padding:0 1.3rem;border:0;border-radius:6px;background:#1c69d4;color:#1a2129;cursor:pointer;
  font:600 .85rem/1 "Inter","Arial Narrow",sans-serif;letter-spacing:.08em;text-transform:uppercase}
.pq-simu-go:hover{background:#bcd3f2}
@media (max-width:900px){
  .pq-simu{grid-template-columns:1fr}
  .pq-simu-r{grid-template-columns:1fr 1fr}
  .pq-simu-go{grid-column:1;justify-self:stretch}
}
/* correctifs : textes du simulateur lisibles sur le fond bleu nuit, bande mobile alignée à gauche */
html[data-theme="etude"] .pourquoi .pq-simu p.pq-simu-q{color:#bcd3f2!important}
html[data-theme="etude"] .pourquoi .pq-simu p.pq-simu-note{color:#B8C0CC!important}
html[data-theme="etude"] .pourquoi .pq-simu .pq-titre{color:#fff!important}
.atouts-mob{justify-content:flex-start!important}
.atouts-mob{max-width:calc(100% + 2rem);min-width:0;align-self:stretch;box-sizing:border-box;scroll-padding-left:1rem}

/* ===== espace agents, phase 2 ===== */
.portebox{width:min(440px,100%);max-height:92vh;overflow:auto}
.porteonglets{display:flex;gap:0;margin:0 0 .4rem;border-bottom:1px solid var(--rule)}
.porteonglets button{flex:1 1 0;padding:.55rem .4rem;background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;font:600 .76rem/1.25 "Inter",sans-serif;color:#5E6673}
.porteonglets button[aria-selected="true"]{color:var(--navy);border-bottom-color:#B8862B}
.porteonglets button:focus-visible{outline:2px solid #B8862B;outline-offset:2px}
.portebox form[hidden]{display:none}
.portedeux{display:grid;grid-template-columns:1fr 1fr;gap:0 .6rem}
@media (max-width:480px){.portedeux{grid-template-columns:1fr}}
.portebox label.portecase{display:flex;align-items:center;gap:.45rem;margin:.8rem 0 0;font:500 .76rem/1.3 "Inter",sans-serif;color:var(--ink);cursor:pointer}
.portebox label.portecase input{width:auto;margin:0;accent-color:var(--navy)}
.porteaide2{margin:.35rem 0 0;font:400 .7rem/1.45 "Inter",sans-serif;color:#5E6673}
.porteacts .portego{background:var(--navy);color:var(--paper);border:1px solid var(--navy)}
.porteacts .portego:hover{background:var(--navy-mid)}
.porteacts .portego:disabled{opacity:.7;cursor:wait}
.porteacts .porteout{background:transparent;color:var(--navy);border:1px solid var(--rule)}
.portepied{color:#5E6673}
.agentbar{position:fixed;left:1rem;bottom:1rem;z-index:150;margin:0;padding:.45rem .5rem .45rem .8rem;background:#fff;border:1px solid var(--rule);border-radius:999px;box-shadow:0 6px 20px rgba(8,20,38,.18)}
.agentbar[hidden]{display:none}
.agentbar span::before{content:"";display:inline-block;width:.5rem;height:.5rem;margin-right:.45rem;border-radius:50%;background:#2E6B3E;vertical-align:.05em}
.agentbar button{margin-left:.4rem}
@media (max-width:1000px){.agentbar{bottom:4.8rem;left:.6rem;right:.6rem;justify-content:space-between;font-size:.7rem}}
.etatmaj{display:block;margin-top:.2rem;font:400 .72rem/1.4 "Inter",sans-serif;color:#5E6673}
.etatmaj:empty{display:none}
.legalliste{margin:0 0 .6rem;padding-left:1.1rem;font:400 .84rem/1.65 "Inter",sans-serif;color:#2B2B2B}
.legalliste li{margin:0 0 .3rem}
/* tableau des lots : une cellule en flex sortait du tableau (colonne décalée, en-têtes de bâtiment coupés) */
.tbl tbody td:first-child{display:table-cell;white-space:nowrap}
.tbl tbody td:first-child > *{vertical-align:middle}
.tbl tbody td:first-child > * + *{margin-left:.4rem}
@media (max-width:1000px){.agentbar{display:none!important}}
.sh-menu a.sh-sortir[hidden]{display:none!important}
@media (max-width:1000px){html #sitehead .sh-menu a.sh-sortir{background:transparent!important;color:inherit!important;border:1px solid currentColor;font-weight:500}}
/* agent connecté : repère visible en haut de page (demande de l'agent 06) */
.agentbar{position:fixed;left:50%;right:auto;bottom:auto;top:calc(clamp(.5rem,1.2vw,1rem) + 3.5rem + .45rem);transform:translateX(-50%);
  z-index:149;max-width:calc(100% - 1.2rem);white-space:nowrap;padding:.38rem .45rem .38rem .85rem;
  background:var(--navy);color:#fff;border:1px solid rgba(28,105,212,.55);box-shadow:0 8px 24px rgba(8,20,38,.28)}
.agentbar span{color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}
.agentbar span::before{background:#6FCF8E}
.agentbar button{color:#bcd3f2;margin-left:.6rem}
@media (max-width:1000px){.agentbar{display:flex!important;font-size:.7rem;left:50%;right:auto;bottom:auto}.agentbar[hidden]{display:none!important}}
/* champ prérempli et verrouillé */
#f_ag[readonly]{background:#EEF1F5;color:#262e38;font-weight:600;cursor:not-allowed;border-style:dashed}
/* accusé de réception */
.accuse{margin:.4rem 0 0;padding:1rem;border:1px solid rgba(46,107,62,.35);background:#F3F8F4;border-radius:2px}
.accuse .ac-ok{margin:0 0 .4rem;font:600 .86rem/1.4 "Inter",sans-serif;color:#2E6B3E}
.accuse .ac-t{margin:0 0 .5rem;font:400 .8rem/1.45 "Inter",sans-serif;color:#1A1A18}
.accuse .ac-txt{max-height:14rem;overflow:auto;margin:0 0 .7rem;padding:.7rem;background:#fff;border:1px solid #DDE3EA;white-space:pre-wrap;font:400 .76rem/1.5 "Inter",sans-serif;color:#1A1A18}
.accuse .ac-acts{display:flex;flex-wrap:wrap;gap:.5rem}
.accuse .ac-acts a,.accuse .ac-acts button{padding:.55rem .9rem;border-radius:2px;font:600 .78rem/1 "Inter",sans-serif;cursor:pointer;text-decoration:none}
.accuse .ac-mail{background:var(--navy);color:#fff;border:1px solid var(--navy)}
.accuse .ac-copie,.accuse .ac-fin{background:#fff;color:var(--navy);border:1px solid #C9D1DB}
#resa .acts[hidden]{display:none!important}
#resaErr .accuse{max-width:none}
/* FAQ : les plans restent dans la page (ils pilotent les illustrations de la maquette), mais ne s'affichent plus */
#faqplans,#faqplans[hidden]{display:none!important}
/* v45 : demande de Louis, le plan réapparaît comme « en savoir plus » au clic sur une phrase interactive */
#faqplans.ouvert{display:block!important}
/* repères « en duplex » / « agrandir » : à côté du numéro du lot, jamais dessous
   (la classe .duo sert aussi à la mention de la colonne Destination, qui, elle, passe à la ligne) */
.tbl td .dupbadge,.tbl td .dupbadge.duo{display:inline-flex;margin-top:0;font-size:.68rem;color:#7A5A12;font-weight:500}
.tbl td .dupbadge.grow{color:#2E6B3E}
@media (max-width:1000px){.tbl td .dupbadge,.tbl td .dupbadge.duo{font-size:.62rem}}
/* compte de gestion : lien vers l'espace de gestion dans le bandeau */
.agentbar .agentgestion{margin-left:.7rem;padding:.28rem .6rem;border-radius:999px;background:#bcd3f2;color:var(--navy);font:600 .7rem/1 "Inter",sans-serif;text-decoration:none;white-space:nowrap}
.agentbar .agentgestion:hover{background:#fff}
.agentbar .agentgestion[hidden],.sh-menu a.sh-gestion[hidden]{display:none!important}
@media (max-width:1000px){html #sitehead .sh-menu a.sh-gestion{background:#E2CB98!important;color:#0E2340!important}}
/* tableau des lots : colonnes fixes. Les repères « en duplex » et « agrandir la surface »
   s'affichent dans la place réservée de la colonne Lot, sans jamais décaler les autres colonnes. */
.slide.lots .tbl{table-layout:fixed}
.slide.lots .tbl thead th:nth-child(1){width:17%}
.slide.lots .tbl thead th:nth-child(2){width:17%}
.slide.lots .tbl thead th:nth-child(3){width:10.7%}
.slide.lots .tbl thead th:nth-child(4){width:12.5%}
.slide.lots .tbl thead th:nth-child(5){width:21.3%}
.slide.lots .tbl thead th:nth-child(6){width:9.8%}
.slide.lots .tbl thead th:nth-child(7){width:11.7%}
.slide.lots .tbl tbody td:first-child{overflow:visible}
@media (max-width:1000px){
  .slide.lots .tbl{min-width:640px}
  .slide.lots .tbl thead th:nth-child(1){width:28%}
  .slide.lots .tbl thead th:nth-child(2){width:14.8%}
  .slide.lots .tbl thead th:nth-child(3){width:9.3%}
  .slide.lots .tbl thead th:nth-child(4){width:11%}
  .slide.lots .tbl thead th:nth-child(5){width:18.5%}
  .slide.lots .tbl thead th:nth-child(6){width:8.6%}
  .slide.lots .tbl thead th:nth-child(7){width:9.8%}
}

/* écrans moyens : la colonne Lot s'élargit un peu pour garder la place du repère */
@media (min-width:1101px) and (max-width:1300px){.slide.lots .tbl thead th:nth-child(1){width:20.5%}.slide.lots .tbl thead th:nth-child(2){width:16.3%}.slide.lots .tbl thead th:nth-child(3){width:10.2%}.slide.lots .tbl thead th:nth-child(4){width:12.0%}.slide.lots .tbl thead th:nth-child(5){width:20.4%}.slide.lots .tbl thead th:nth-child(6){width:9.4%}.slide.lots .tbl thead th:nth-child(7){width:11.2%}}
@media (min-width:1001px) and (max-width:1100px){.slide.lots .tbl thead th:nth-child(1){width:23.5%}.slide.lots .tbl thead th:nth-child(2){width:15.7%}.slide.lots .tbl thead th:nth-child(3){width:9.9%}.slide.lots .tbl thead th:nth-child(4){width:11.5%}.slide.lots .tbl thead th:nth-child(5){width:19.6%}.slide.lots .tbl thead th:nth-child(6){width:9.0%}.slide.lots .tbl thead th:nth-child(7){width:10.8%}}

/* déclaration des cartes professionnelles des agents (serveur v4) */
#cartesPro{position:fixed;inset:0;z-index:230;display:flex;align-items:center;justify-content:center;background:rgba(8,20,38,.88);padding:4vh 4vw}
#cartesPro[hidden]{display:none}
.cartesbox{width:min(460px,100%);max-height:92vh;overflow:auto}
.cartesbox label.portecase{align-items:flex-start;line-height:1.35}
.cartesbox label.portecase input{margin-top:.1rem}
.cartesnum{margin-top:.6rem;padding-top:.4rem;border-top:1px solid var(--rule)}
.cartesnum[hidden]{display:none}
.cartesconf{margin-top:.8rem;font-style:italic}
body.cartes-ouvert{overflow:hidden}

/* ===== accessibilité et pages légales (v14, 2026-10-08) ===== */
.evitement{
  position:absolute;left:.6rem;top:-4rem;z-index:10000;
  padding:.7rem 1.1rem;background:#111;color:#fff;font:600 .9rem/1.2 "Inter",sans-serif;
  text-decoration:none;border-radius:2px;outline:2px solid #fff;outline-offset:-4px;
}
.evitement:focus,.evitement:focus-visible{top:.6rem}
.vh{
  position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;
  overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;
}
.oblig-note{margin:.2rem 0 .8rem;font:400 .8rem/1.4 "Inter",sans-serif;color:#555}
.rgpd a{color:inherit;text-decoration:underline;text-underline-offset:2px}
#stage h1:focus{outline:2px solid currentColor;outline-offset:6px}
.cover .bg .cov-mention{position:absolute;right:1rem;bottom:.7rem;z-index:2;font:400 .68rem/1.2 "Inter",sans-serif;letter-spacing:.02em;color:rgba(255,255,255,.82);text-shadow:0 1px 2px rgba(0,0,0,.6);pointer-events:none}
@media (max-width:820px){.cover .bg .cov-mention{right:.6rem;bottom:.5rem;font-size:.6rem}}

/* v19 (2026-10-11) · nouvelles du chantier (S9) et liens par métier (S1) */
.fields .chk-news label.chk{display:flex;align-items:flex-start;gap:.55rem;font-size:.8rem;line-height:1.45;color:#2B2B2B;cursor:pointer}
.fields .chk-news input[type="checkbox"]{width:1.1rem;height:1.1rem;min-width:1.1rem;margin:.1rem 0 0;padding:0;accent-color:#1a2129}
.chnews{margin:1.4rem 0 0;padding:1rem 1.1rem;border:1px solid #DDD;background:#FAFAF8;max-width:760px}
.chnews .chn-titre{margin:0 0 .25rem;font:500 1rem/1.3 "Inter","Arial Narrow",sans-serif;letter-spacing:.04em;text-transform:uppercase;color:#111}
.chnews .chn-txt{margin:0 0 .7rem;font-size:.86rem;color:#2B2B2B}
.chnews .chn-champs{display:flex;flex-wrap:wrap;gap:.6rem .8rem;align-items:flex-end}
.chnews .chn-champs > div{flex:1 1 200px;min-width:0}
.chnews label{display:block;font-size:.74rem;color:#5D6874;margin-bottom:.25rem}
.chnews label .oblig{color:#5D6874}
.chnews input{width:100%;box-sizing:border-box;padding:.6rem .7rem;border:1px solid #C9CED4;background:#fff;font:inherit;font-size:.9rem;color:#111;border-radius:0}
.chnews input:focus{outline:2px solid #1a2129;outline-offset:1px}
.chnews input.bad{border-color:#B3453D}
.chnews #n_send{padding:.65rem 1.2rem;border:1px solid #1a2129;background:#1a2129;color:#fff;font:600 .8rem/1.2 "Inter",sans-serif;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}
.chnews #n_send:disabled{opacity:.6;cursor:wait}
.chnews #n_send:focus-visible{outline:2px solid #111;outline-offset:3px}
.chnews #n_err{margin:.5rem 0 0;font-size:.82rem;min-height:1em}
.chnews .chn-rgpd{margin:.35rem 0 0;font-size:.72rem;color:#5D6874}
#sitefoot .sf-metiers{margin:0 0 .6rem;font-size:.74rem;line-height:1.7}
#sitefoot .sf-metiers span{font-weight:600}

/* v20 · accueil : l'image reste fixe, le voile bleu et ses informations montent comme une page,
   puis un écran découvre l'image seule avant la page suivante (mode site uniquement) */
.cov-scene{display:contents}
html[data-mode="site"] .cov-scene{display:block;position:relative;clip-path:inset(0)}
html[data-mode="site"] .cov-revele{height:100vh;height:100svh}
html[data-mode="site"] .slide.cover{background:transparent!important}
html[data-mode="site"] .slide.cover .bg{position:fixed;inset:0;z-index:0}
html[data-mode="site"] .slide.cover .bg img{opacity:1!important}
html[data-mode="site"] .slide.cover .bg::after{display:none}
/* même teinte qu'avant : fond bleu, image à 55 %, puis dégradé, réunis en un seul voile */
html[data-mode="site"] .slide.cover::before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(95deg,rgba(26,33,41,.97) 18%,rgba(26,33,41,.73) 100%)}
html[data-mode="site"][data-theme="etude"] .slide.cover::before{
  background:linear-gradient(180deg,rgba(26,33,41,.791) 0%,rgba(26,33,41,.714) 45%,rgba(26,33,41,.857) 100%)}
html[data-mode="site"] .slide.cover + .cov-revele + * , html[data-mode="site"] .cov-scene + .slide{border-top:0}

/* v21 · fenêtre « Recevoir le dossier » : un tiers de l'écran au plus (fond crème d'origine, le gris a été retiré à la demande de Louis) */
#alerte .sheet{
  width:33.333vw;min-width:min(340px,100%);
  padding:1.4rem 1.5rem 1.1rem;
}
#alerte .sheet h3{font-size:clamp(1.05rem,1.35vw,1.3rem);margin-bottom:.25rem}
#alerte .sheet .lotline{font-size:clamp(.8rem,.95vw,.92rem);line-height:1.45;margin-bottom:.4rem}
#alerte .sheet .rgpd{font-size:.68rem;line-height:1.45}
#alerte .sheet .fields{gap:.55rem .8rem}
#alerte .sheet .acts{margin-top:.8rem}
@media (max-width:900px){ #alerte .sheet{width:100%;min-width:0} }
#alerte .close{color:#58616D}

/* v21 · trois ronds sur l'écran de l'image seule : situer, images, chantier (fond = blanc de la barre du haut) */
.rev-outils{display:none}
/* les ronds sont fixes comme l'image : la page bleue les découvre en remontant, la page suivante les recouvre */
html[data-mode="site"] .cov-revele{position:relative;clip-path:inset(0)}
html[data-mode="site"] .rev-outils{
  display:flex;flex-direction:column;gap:clamp(1.3rem,3.2vh,2rem);
  position:fixed;left:clamp(1rem,3vw,2.6rem);top:50%;transform:translateY(-50%);z-index:3}
.rev-rond{
  display:flex;align-items:center;justify-content:center;
  width:clamp(48px,4vw,58px);height:clamp(48px,4vw,58px);border-radius:50%;
  background:rgba(255,255,255,.88);border:1px solid rgba(17,17,17,.14);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  box-shadow:0 6px 18px rgba(26,33,41,.18);cursor:pointer;padding:0;color:#111;
  transition:transform .2s var(--ease),background .2s var(--ease)}
.rev-rond svg{width:46%;height:46%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.rev-rond:hover{transform:scale(1.06);background:#fff}
.rev-rond:focus-visible{outline:3px solid #1c69d4;outline-offset:3px}

/* ===================== v31 · nouveau design (Louis, 25/10/2026) =====================
   Inspiré du référentiel déposé par Louis (ENTREES\REFERENTIEL_DESIGN_BMW.md), sans rien reprendre de la marque :
   toile blanche, bandeaux sombres #1a2129, bleu #1c69d4 pour l'action, Inter 700 / 300, angles droits, sans ombre.
   Gardés comme avant à la demande de Louis : le menu du haut, le nom MAMAPALOU et « Saint-Martin » en or, le point or de la carte. */
:root{--navy:#1a2129;--navy-soft:#262e38;--navy-mid:#262e38;--gold:#1c69d4;--gold-pale:#bcd3f2;--ink:#262626;--paper:#ffffff;
  --rule:#e6e6e6;--slate:#6b6b6b;--e-noir:#262626;--e-texte:#3c3c3c;--e-gris:#6b6b6b;--e-clair:#f7f7f7}
html[data-theme="etude"]{--e-noir:#262626;--e-texte:#3c3c3c;--e-gris:#6b6b6b;--e-clair:#f7f7f7}
body{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
p,li,dd,td,.lead{font-weight:300}
b,strong,th,dt{font-weight:700}
h1,h2,h3,h4{font-family:"Inter",system-ui,sans-serif!important;font-weight:700!important;letter-spacing:0!important}
h2{text-transform:none!important}
.kicker,.avlabel,.chn-titre,dt{letter-spacing:1.5px}
*:not(#sitehead):not(#sitehead *):not(.rc-barre):not(.rc-barre *):not(.rc-vues *):not(.rev-rond):not(.sh-plein):not(.sh-cta):not(.pjnav):not(.railbtn):not(.navarrow):not(.pastille):not(.pin):not(.x):not(.rr-x):not(.legalx):not(.ptx):not(.cartex):not(.loupex):not(.trait):not(#navPlay):not(.onde):not(.agentbar){border-radius:0!important}
*:not(:focus-visible):not(#sitehead):not(#sitehead *):not(.rc-barre):not(.rc-vues *){box-shadow:none!important}
.shbtn.primaire,.pq-simu-go,.barremobile .bm-dossier,#fsGo,.pq-nb button[aria-checked="true"],.pjbadge,
html[data-theme="etude"] .slide.contact .shbtn.primaire{background:#1c69d4!important;color:#fff!important;border-color:#1c69d4!important;font-weight:700;letter-spacing:.5px}
.shbtn.primaire:hover,.pq-simu-go:hover,.barremobile .bm-dossier:hover{background:#0653b6!important}
.shbtn{font-weight:700;letter-spacing:.5px}
.mark .markarc text{fill:#C4A05A}
.locmap .pin{background:#C4A05A}
.loctxt,html[data-theme="etude"] .slide.cover .loctxt{color:#C4A05A}

/* ===================== v32 · la situation en 3D à la place de l'image (Louis, 25/10/2026) =====================
   L'écran qui suit l'accueil montre directement carte-3d.html (agent 02) en mode intégré.
   Titre en haut à gauche, deux vues en haut à droite, barre au style du menu en bas au centre.
   Éléments fixes découpés par .cov-revele : la page bleue les découvre, la page suivante les recouvre. */
.cov-carte{display:none}
html[data-mode="site"] .cover .bg .cov-carte{display:block;position:absolute;inset:0;width:100%;height:100%;border:0;opacity:0;transition:opacity .8s var(--ease);pointer-events:none}
html[data-mode="site"] .cover .bg .cov-carte.prete{opacity:1}
html[data-mode="site"] body.carte-active .cover .bg .cov-carte{pointer-events:auto}
html[data-mode="site"] .cov-revele{pointer-events:none}
html[data-mode="site"] .cov-revele .rev-outils,html[data-mode="site"] .cov-revele .rc-vues,html[data-mode="site"] .cov-revele .rc-barre{pointer-events:auto}
.rc-titre,.rc-vues,.rc-barre{display:none}
html[data-mode="site"] .rc-titre{display:block;position:fixed;z-index:3;left:clamp(1.2rem,4vw,3.2rem);top:calc(clamp(.5rem,1.2vw,1rem) + 3.5rem + clamp(1rem,3vh,2rem));
  font:700 clamp(2.6rem,5.4vw,5.2rem)/1 "Inter",system-ui,sans-serif;letter-spacing:0;color:#fff}
html[data-mode="site"] .rc-titre span{display:block;margin-top:.55rem;font:700 clamp(.7rem,.9vw,.82rem)/1.3 "Inter",sans-serif;letter-spacing:1.5px;text-transform:uppercase;color:#fff}
/* voile léger derrière le titre pour qu'il reste lisible sur la photo aérienne */
html[data-mode="site"] .cov-revele::before{content:"";position:fixed;left:0;top:0;width:min(60vw,46rem);height:min(48vh,26rem);z-index:2;pointer-events:none;
  background:radial-gradient(ellipse at 0 0,rgba(26,33,41,.55),rgba(26,33,41,0) 70%)}
/* boutons au style exact du menu du haut */
html[data-mode="site"] .rc-vues button,html[data-mode="site"] .rc-barre button,html[data-mode="site"] .rc-barre a{
  font:700 11.2px/1 "Inter",sans-serif;letter-spacing:1px;text-transform:uppercase;color:#262626;text-decoration:none;
  background:none;border:0;padding:.7rem .9rem;cursor:pointer;white-space:nowrap;border-radius:999px!important}
html[data-mode="site"] .rc-vues button:hover,html[data-mode="site"] .rc-barre button:hover,html[data-mode="site"] .rc-barre a:hover,
html[data-mode="site"] .rc-vues button.ici,html[data-mode="site"] .rc-barre button.ici{background:rgba(17,17,17,.08)}
html[data-mode="site"] .rc-vues button:focus-visible,html[data-mode="site"] .rc-barre button:focus-visible,html[data-mode="site"] .rc-barre a:focus-visible{outline:3px solid #C4A05A;outline-offset:2px}
html[data-mode="site"] .rc-barre,html[data-mode="site"] .rc-vues button{
  background:rgba(255,255,255,.72)!important;border:1px solid rgba(255,255,255,.5)!important;border-radius:999px!important;
  backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);box-shadow:0 8px 24px rgba(8,20,38,.12)!important}
html[data-mode="site"] .rc-barre{display:flex;justify-content:space-around;align-items:center;gap:.2rem;position:fixed;z-index:3;left:50%;transform:translateX(-50%);
  bottom:clamp(1.2rem,4vh,2.4rem);width:max(33.333vw,34rem);max-width:calc(100vw - 2rem);height:56px;padding:0 .8rem}
html[data-mode="site"] .rc-vues{display:flex;flex-direction:column;align-items:flex-end;gap:.6rem;position:fixed;z-index:3;
  right:clamp(1.2rem,4vw,3.2rem);top:calc(clamp(.5rem,1.2vw,1rem) + 3.5rem + clamp(1rem,3vh,2rem))}
html[data-mode="site"] .rc-vues button{height:44px;padding:0 1.2rem}
/* v32, précision de Louis : l'accueil garde sa photo sous le voile ; en défilant, la photo et le voile remontent
   ensemble comme une page et découvrent la 3D, fixe, comme si elle avait toujours été là. */
.cov-photo{display:none}
html[data-mode="site"] .slide.cover > .cov-photo{display:block;position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
html[data-mode="site"] .slide.cover > .cov-photo img{width:100%;height:100%;object-fit:cover;display:block}
html[data-mode="site"] .slide.cover > .cov-photo .cov-mention{position:absolute;right:1rem;bottom:.7rem;z-index:2;font:400 .68rem/1.2 "Inter",sans-serif;color:rgba(255,255,255,.82)}

/* v34 (Louis, 26/10) : la barre « connecté » de l'espace agents ne doit plus cacher le nom MAMAPALOU du logo :
   elle quitte le haut de l'écran pour le coin bas gauche (au-dessus de la barre d'action sur téléphone). */
html[data-mode="site"] .agentbar{top:auto!important;bottom:1.2rem;left:1.2rem!important;right:auto!important;transform:none!important}
@media (max-width:820px){html[data-mode="site"] .agentbar{bottom:calc(84px + env(safe-area-inset-bottom));left:.6rem!important;max-width:calc(100% - 1.2rem)}}

/* ================= v38 : parcours selon le visiteur (loi de Hick) ================= */
.lotspub .lp-lede{max-width:62ch}
.lotspub .lp-wrap{overflow:auto;max-width:920px;margin:.4rem 0 1.2rem}
.lp-tbl{width:100%;border-collapse:collapse;font-size:.92rem;background:#fff}
.lp-tbl th,.lp-tbl td{padding:.5rem .8rem;border-bottom:1px solid var(--rule,#e6e6e6);text-align:left;font-weight:400}
.lp-tbl thead th{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--slate,#6b6b6b);font-weight:700}
.lp-tbl tbody th{font-weight:700}
.lp-tbl tr.lp-reserve,.lp-tbl tr.lp-loue{color:var(--slate,#6b6b6b)}
.lp-tbl tr.lp-dispo td:last-child{color:#1c69d4;font-weight:700}
.lp-cap{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.lp-cta{margin:0 0 .8rem}
.lp-go,.ag-go{background:#1c69d4;color:#fff;border:0;padding:1rem 1.7rem;font:700 .8rem/1 "Inter",system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.lp-go:hover,.ag-go:hover{background:#1558b0}
.lp-note{max-width:62ch}
.ag-tableau{display:none;border:1px solid var(--rule,#e6e6e6);background:#fff;padding:1rem 1.2rem;margin:.6rem 0 1rem}
body.agent-connecte .ag-tableau{display:block}
.ag-bonjour{font-weight:700;margin:0 0 .4rem}
.ag-cond{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.5rem 1.6rem;margin:.4rem 0 .9rem}
.ag-cond dt{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--slate,#6b6b6b);font-weight:700}
.ag-cond dd{margin:.1rem 0 0;font-size:.86rem;line-height:1.4}
.ag-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.6rem}
.ag-lien,.pj-voir{background:none;border:0;color:#1c69d4;text-decoration:underline;text-underline-offset:3px;font:inherit;font-size:.9rem;cursor:pointer;padding:.35rem 0}
.ag-aide{margin:.7rem 0 0;font-size:.88rem;color:var(--ink,#262626)}
.pj-voir[hidden],.ag-aide[hidden],.pjstrip[hidden]{display:none!important}
details.pq-plus,details.ch-plus{margin-top:1.4rem;border-top:1px solid var(--rule,#e6e6e6);padding-top:.9rem}
details.pq-plus>summary,details.ch-plus>summary{cursor:pointer;color:#1c69d4;font-weight:700;font-size:.92rem;list-style-position:outside}
details.pq-plus[open]>summary,details.ch-plus[open]>summary{margin-bottom:1rem}
.pq-cartes.pq-trois{margin-bottom:1.4rem}
html[data-mode="site"] body.agent-connecte .slide.lotspub{display:none!important}
body.agent-connecte #sitehead a[href="#lots-public"]{display:none!important}
html.vue-client[data-mode="site"] body.agent-connecte .slide.lotspub{display:flex!important}
html.vue-client body.agent-connecte #sitehead a[href="#lots-public"]{display:inline-block!important}
html.vue-client[data-mode="site"] .slide.lots{display:none!important}
html.vue-client #agentbar,html.vue-client #sitehead a.sh-agents,html.vue-client #sitehead .sh-sortir{display:none!important}
.vc-quitter{position:fixed;left:1.2rem;bottom:1.2rem;z-index:80;background:#1a2129;color:#fff;border:0;padding:.75rem 1.1rem;font:700 .72rem/1 "Inter",system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.vc-quitter[hidden]{display:none}
@media (max-width:820px){.vc-quitter{bottom:calc(84px + env(safe-area-inset-bottom));left:.6rem}}
@media (min-width:1101px){.pq-cartes.pq-trois{grid-template-columns:repeat(3,1fr)}}
@media (max-width:600px){
  .lp-tbl th:nth-child(2),.lp-tbl td:nth-child(2){display:none}
  .lp-tbl th,.lp-tbl td{padding:.5rem .45rem;font-size:.86rem}
  .lp-tbl td:nth-child(3){white-space:nowrap}
}
/* v38 : contrastes du tableau des agents (WCAG AA) */
.tbl tr[data-status="reserve"] td,.tbl tr[data-status="loue"] td{opacity:1;color:#5e5e5e}
.tbl tr[data-status="reserve"] td .duo,.tbl tr[data-status="loue"] td .duo{color:#7A5A12}
.tbl .grp td span{color:#4f5964}

/* ================= v43 : lots en deux cartes, plans colorés, ordre des parties ================= */
.lp-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:2.4rem;align-items:start;margin-top:1rem;width:100%}
.lp-cartes{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.2rem}
.lp-carte{border-top:3px solid #1c69d4;background:#fff;padding:1rem 1.1rem 1.1rem;border-left:1px solid var(--rule,#e6e6e6);border-right:1px solid var(--rule,#e6e6e6);border-bottom:1px solid var(--rule,#e6e6e6)}
.lp-niv{font:700 1rem/1.2 "Inter",sans-serif;text-transform:uppercase;letter-spacing:.04em;color:#1a2129;margin:0 0 .4rem}
.lp-usage{font-size:.86rem;line-height:1.45;color:#3A424D;margin:0 0 .8rem}
.lp-compte{margin:0;font-size:.9rem;color:#1a2129}
.lp-compte .lp-n{font-size:2rem;font-weight:700;color:#1c69d4;margin-right:.2rem}
details.lp-detail{margin:1.2rem 0 .6rem;border-top:1px solid var(--rule,#e6e6e6);padding-top:.8rem}
details.lp-detail>summary{cursor:pointer;color:#1c69d4;font-weight:700;font-size:.92rem}
details.lp-detail[open]>summary{margin-bottom:.8rem}
details.lp-detail .lp-wrap{margin:0}
.lp-droite{position:sticky;top:6rem}
.lp-plan{margin:0}
.lp-planbox{position:relative;background:#fff}
.lp-planbox img{display:block;width:100%;height:auto}
.lp-z{position:absolute;display:flex;align-items:center;justify-content:center;border:2px solid transparent;font-size:.72rem}
.lp-z b{background:#fff;padding:0 .2rem;font-weight:700;line-height:1.3}
.lp-z.libre{background:rgba(28,105,212,.28);border-color:#1c69d4}
.lp-z.libre b{color:#1c69d4}
.lp-z.pris{background:rgba(26,33,41,.18);border-color:rgba(26,33,41,.35)}
.lp-z.pris b{color:#5e5e5e}
.lp-legende{margin:.35rem 0 1rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#5e5e5e;font-weight:700}
.lp-cle{font-size:.82rem;color:#3A424D;display:flex;align-items:center;gap:.4rem}
.lp-k{display:inline-block;width:.9rem;height:.9rem;border:2px solid #1c69d4;background:rgba(28,105,212,.28);margin-left:.6rem}
.lp-k:first-child{margin-left:0}
.lp-k.pris{border-color:rgba(26,33,41,.35);background:rgba(26,33,41,.18)}
.maqsec #faqplans .kicker{margin-top:.6rem!important}
@media (max-width:980px){
  .lp-grille{grid-template-columns:1fr;gap:1.4rem}
  .lp-droite{position:static}
}
@media (max-width:520px){.lp-cartes{grid-template-columns:1fr}}
/* bouton « Quitter la présentation » : en haut, sous le bandeau, plus discret */
.vc-quitter{top:5.4rem;bottom:auto!important;left:50%!important;transform:translateX(-50%);padding:.5rem .9rem;font-size:.66rem;opacity:.92}
@media (max-width:820px){.vc-quitter{top:4.6rem}}
html[data-mode="site"] .slide.situ{padding-bottom:clamp(1.6rem,4vh,2.6rem)}
html[data-mode="site"] .slide.demi#programme{padding-top:clamp(2.4rem,6vh,4rem)}
/* v45 : plans des lots interactifs, demande reçue */
button.lp-z{padding:0;font:inherit;cursor:pointer;border-radius:0}
button.lp-z.pris{cursor:default}
.lp-z.libre:hover,.lp-z.libre.hov,.lp-z.libre:focus-visible{background:rgba(28,105,212,.55);outline:none}
.lp-z.libre.hov b,.lp-z.libre:hover b{background:#1c69d4;color:#fff}
.lp-z.pris.hov{outline:2px solid #1a2129}
.lp-z.demande::after{content:"";position:absolute;top:-10px;right:-2px;width:14px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 15'%3E%3Cpath d='M2.4 1.4v12.2' stroke='%23fff' stroke-width='3.4' stroke-linecap='round'/%3E%3Cpath d='M3.4 2.2 11.4 5.1 3.4 8.6Z' fill='%23fff' stroke='%23fff' stroke-width='2.6' stroke-linejoin='round'/%3E%3Cpath d='M2.4 1.4v12.2' stroke='%23B8862B' stroke-width='1.7' stroke-linecap='round'/%3E%3Cpath d='M3.4 2.2 11.4 5.1 3.4 8.6Z' fill='%23B8862B' stroke='%23B8862B' stroke-width='.9' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/contain}
.lp-fan{display:inline-block;width:12px;height:14px;margin-left:.8rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 15'%3E%3Cpath d='M2.4 1.4v12.2' stroke='%23fff' stroke-width='3.4' stroke-linecap='round'/%3E%3Cpath d='M3.4 2.2 11.4 5.1 3.4 8.6Z' fill='%23fff' stroke='%23fff' stroke-width='2.6' stroke-linejoin='round'/%3E%3Cpath d='M2.4 1.4v12.2' stroke='%23B8862B' stroke-width='1.7' stroke-linecap='round'/%3E%3Cpath d='M3.4 2.2 11.4 5.1 3.4 8.6Z' fill='%23B8862B' stroke='%23B8862B' stroke-width='.9' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/contain;vertical-align:-2px}
.lp-info{margin:.2rem 0 .6rem;min-height:2.6em;font-size:.88rem;color:#1a2129;border-left:3px solid #1c69d4;padding:.35rem .7rem;background:#fff}
.lp-tbl tr.hov{background:#eef4fc}

/* ================= v46 : verre clair et transparent (« liquid glass »), seulement sur ce qui flotte (demande de Louis, 02/11) =================
   Barre du haut, barre des vues et boutons de la carte, boutons ronds, barre du bas du téléphone, bandeau agents,
   « Quitter la présentation ». Jamais sur le contenu, jamais de verre sur du verre. */
:root{
  --verre-clair:rgba(255,255,255,.16);       /* sur la photo et la carte : presque transparent */
  --verre-page:rgba(255,255,255,.42);        /* sur les pages blanches */
  --verre-reflet:linear-gradient(180deg,rgba(255,255,255,.38) 0%,rgba(255,255,255,.08) 46%,rgba(255,255,255,0) 54%,rgba(255,255,255,.10) 100%);
  --verre-flou:blur(22px) saturate(1.9) brightness(1.06);
  --verre-filet:rgba(255,255,255,.55);
  --verre-lumiere:inset 0 1px 0 rgba(255,255,255,.75),inset 0 -1px 0 rgba(255,255,255,.18),0 10px 30px rgba(8,20,38,.18);
}
html[data-mode="site"] #sitehead,
html[data-mode="site"] .rc-barre,
html[data-mode="site"] .rc-vues button,
.rev-rond,.barremobile,html[data-mode="site"] .agentbar,.vc-quitter{
  background-color:var(--verre-page)!important;background-image:var(--verre-reflet)!important;
  -webkit-backdrop-filter:var(--verre-flou)!important;backdrop-filter:var(--verre-flou)!important;
  border:1px solid var(--verre-filet)!important;color:#1a2129!important;
}
html[data-mode="site"] #sitehead,html[data-mode="site"] .rc-barre,html[data-mode="site"] .rc-vues button{box-shadow:var(--verre-lumiere)!important}
/* sur la photo d'accueil et la carte : verre clair, texte blanc */
html[data-mode="site"] #sitehead.sur-couverture,
html[data-mode="site"] .rc-barre,
html[data-mode="site"] .rc-vues button,
.rev-rond{background-color:var(--verre-clair)!important;color:#fff!important}
html[data-mode="site"] #sitehead.sur-couverture a,html[data-mode="site"] #sitehead.sur-couverture button,
html[data-mode="site"] #sitehead.sur-couverture .sh-nom,html[data-mode="site"] #sitehead.sur-couverture .sh-nom small,
html[data-mode="site"] .rc-barre button,html[data-mode="site"] .rc-barre a,html[data-mode="site"] .rc-vues button{color:#fff!important;text-shadow:0 1px 3px rgba(0,0,0,.45)}
html[data-mode="site"] #sitehead.sur-couverture svg,.rev-rond svg{stroke:#fff!important;color:#fff!important}
html[data-mode="site"] #sitehead.sur-couverture .sh-burger i{background:#fff!important}
html[data-mode="site"] #sitehead.sur-couverture a[aria-current],html[data-mode="site"] #sitehead.sur-couverture a.actif{border-color:#fff!important}
/* rien de flou à l'intérieur du verre */
#sitehead *,.rc-barre *,.barremobile *,.agentbar *{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html[data-mode="site"] body.menu-ouvert #sitehead .sh-menu{background:#fff!important}
html[data-mode="site"] body.menu-ouvert #sitehead .sh-menu a{color:#1a2129!important;text-shadow:none}
/* contenu : fonds pleins */
.atout{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#1a2129!important}
body.clair #rail:not(.accueil){-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#fff!important}
/* navigateurs sans flou : fond plein, lisible */
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  html[data-mode="site"] #sitehead,html[data-mode="site"] .rc-barre,html[data-mode="site"] .rc-vues button,
  .rev-rond,.barremobile,html[data-mode="site"] .agentbar,.vc-quitter{background:rgba(26,33,41,.92)!important;color:#fff!important}
}
html[data-mode="site"] .agentbar span,html[data-mode="site"] .agentbar button{color:#1a2129!important;text-shadow:none!important}
html[data-mode="site"] .agentbar{background-color:rgba(255,255,255,.62)!important}

/* v58 (demande de Louis du 12/11) : chaque page remplit au moins l'écran, quel qu'il soit ;
   un contenu plus court se centre dans la hauteur, on ne voit plus la page voisine */
html[data-mode="site"] .slide{min-height:100vh;min-height:100svh}
html[data-mode="site"] .slide:not(.cover){justify-content:center}
/* dernière page : la page de contact et le pied de page forment un seul écran,
   dans la même couleur ; --pied est la hauteur du pied de page, mise à jour par script.js */
html[data-theme="etude"] .slide.contact{min-height:calc(100vh - var(--pied,0px));min-height:calc(100svh - var(--pied,0px))}
html[data-theme="etude"] #sitefoot{background:var(--navy);color:rgba(233,224,209,.86);border-top:1px solid rgba(233,224,209,.12)}
html[data-theme="etude"] #sitefoot .sf-titre{color:#fff}
html[data-theme="etude"] #sitefoot p{color:rgba(233,224,209,.86)}
html[data-theme="etude"] #sitefoot a{color:#fff;border-bottom-color:rgba(233,224,209,.45)}
html[data-theme="etude"] #sitefoot a:hover{color:var(--gold-pale);border-bottom-color:#fff}
html[data-theme="etude"] #sitefoot .sf-legal{border-top-color:rgba(233,224,209,.18)}
html[data-theme="etude"] #sitefoot .sf-legal p{color:rgba(233,224,209,.72)}
html[data-theme="etude"] #sitefoot .sf-legal b{color:#fff}

/* v60 : plans détaillés des lots dans l'espace agents (servis par /api/plans-vente, session obligatoire) */
.ag-plans{border-top:1px solid var(--rule,#e6e6e6);margin-top:.9rem;padding-top:.9rem;display:flex;flex-direction:column;gap:.8rem}
.agp-intro{font-size:.9rem;margin:0;max-width:none}
.agp-lots{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.6rem 1.4rem}
.agp-bat{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}
.agp-nom{flex-basis:100%;font:700 .72rem/1.2 "Inter",system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#262626}
.agp-niv{font-size:.78rem;color:#6b6b6b;min-width:6.6rem}
.agp-lot{min-width:2.8rem;padding:.45rem .55rem;border:1px solid #c9ced6;background:#fff;color:#1a2129;font:600 .85rem/1 "Inter",system-ui,sans-serif;cursor:pointer}
.agp-lot:hover{border-color:#1c69d4;color:#1c69d4}
.agp-lot[aria-pressed="true"]{background:#1c69d4;border-color:#1c69d4;color:#fff}
.agp-lot:focus-visible{outline:3px solid #1c69d4;outline-offset:2px}
.agp-vue{margin:0;max-height:80vh;overflow:auto;border:1px solid #e6e6e6;background:#fff}
.agp-vue img{display:block;width:100%;height:auto}
.agp-vue figcaption{padding:.5rem .8rem;font-size:.8rem;color:#6b6b6b}
.agp-err{margin:0;padding:.6rem .8rem;background:#fbe7e8;color:#8a1c22;font-size:.9rem;max-width:none}
