/* Conciergerie Lumiere — feuille unique */
:root{
  --ink:#0A0C11; --ink2:#0E1118; --card:#141821; --card2:#1A1F2A;
  --brass:#D8A54C; --brass2:#F1D199; --brass3:#8A6A2C;
  --cream:#F7F3EA; --muted:#A3AAB8; --muted2:#737B8A;
  --line:rgba(216,165,76,.16); --line2:rgba(247,243,234,.08);
  --max:1180px; --r:16px;
  --d:"Fraunces",Georgia,"Times New Roman",serif;
  --s:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:var(--cream);font-family:var(--s);
  font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--brass2);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.eyebrow{font:600 12px/1 var(--s);letter-spacing:.18em;text-transform:uppercase;color:var(--brass);margin:0 0 18px}
h1,h2,h3{font-family:var(--d);font-weight:600;letter-spacing:-.015em;line-height:1.08;margin:0}
h1{font-size:clamp(2.35rem,6.4vw,4.6rem)}
h2{font-size:clamp(1.85rem,4vw,3rem);margin-bottom:18px}
h3{font-size:1.2rem;line-height:1.3}
p{margin:0 0 18px}
.lead{font-size:clamp(1.05rem,2vw,1.3rem);color:#D9DEE8;max-width:62ch}
.sub{color:var(--muted);max-width:66ch}
section{padding:clamp(72px,10vw,130px) 0;position:relative}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;z-index:999;background:var(--brass);color:#1A1203;padding:10px 16px;border-radius:8px}

/* ---------- barre ---------- */
header.bar{position:sticky;top:0;z-index:60;backdrop-filter:blur(14px);
  background:rgba(10,12,17,.82);border-bottom:1px solid var(--line2)}
.bar .wrap{display:flex;align-items:center;gap:28px;height:70px;position:relative}
.logo{display:flex;align-items:center;gap:11px;font-family:var(--d);font-size:1.12rem;
  font-weight:600;color:var(--cream);letter-spacing:-.01em;white-space:nowrap}
.logo:hover{text-decoration:none}
.logo .lamp{width:26px;height:26px;flex:0 0 26px}
nav.main{margin-left:auto;display:flex;gap:26px;font-size:14.5px}
nav.main a{color:var(--muted);font-weight:500}
nav.main a:hover{color:var(--cream);text-decoration:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font:600 15px/1 var(--s);padding:14px 24px;border-radius:999px;border:1px solid transparent;
  cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,background .2s ease}
.btn:hover{text-decoration:none;transform:translateY(-1px)}
.btn-p{background:linear-gradient(180deg,var(--brass2),var(--brass));color:#201604;
  box-shadow:0 10px 30px -10px rgba(216,165,76,.55)}
.btn-p:hover{box-shadow:0 16px 38px -12px rgba(216,165,76,.7)}
.btn-s{border-color:var(--line);color:var(--cream);background:rgba(247,243,234,.03)}
.btn-s:hover{border-color:rgba(216,165,76,.4);background:rgba(216,165,76,.07)}
.bar .btn{padding:11px 19px;font-size:14px}
.burger{display:none;margin-left:auto;background:none;border:1px solid var(--line2);
  border-radius:10px;padding:9px 11px;color:var(--cream);cursor:pointer}

/* ---------- hero ---------- */
.hero{padding-top:clamp(56px,8vw,96px);padding-bottom:0;overflow:hidden;
  background:
    radial-gradient(1000px 540px at 50% -14%,rgba(216,165,76,.20),transparent 68%),
    radial-gradient(700px 400px at 88% 8%,rgba(216,165,76,.08),transparent 70%),
    linear-gradient(180deg,var(--ink),var(--ink2))}
.hero:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(247,243,234,.028) 1px,transparent 1px),
    linear-gradient(90deg,rgba(247,243,234,.028) 1px,transparent 1px);
  background-size:68px 68px;
  -webkit-mask-image:radial-gradient(760px 420px at 50% 0%,#000 25%,transparent 78%);
  mask-image:radial-gradient(760px 420px at 50% 0%,#000 25%,transparent 78%)}
.hero .wrap{position:relative;z-index:2}
.hero h1{max-width:19ch}
.hero h1 em{font-style:normal;
  background:linear-gradient(180deg,var(--brass2),var(--brass));-webkit-background-clip:text;
  background-clip:text;-webkit-text-fill-color:transparent;color:var(--brass2)}
.hero .lead{margin:26px 0 34px}
.cta{display:flex;flex-wrap:wrap;gap:14px}
.proof{display:flex;flex-wrap:wrap;gap:10px 26px;margin:38px 0 0;padding:0;list-style:none;
  font-size:14px;color:var(--muted)}
.proof li{display:flex;align-items:center;gap:9px}
.proof svg{flex:0 0 16px;color:var(--brass)}
.skyline{margin-top:clamp(48px,7vw,86px);width:100%;display:block}

/* ---------- bandeaux photo ---------- */
.band{margin:clamp(44px,7vw,80px) 0 0;position:relative;border-radius:var(--r) var(--r) 0 0;
  overflow:hidden;border:1px solid var(--line);border-bottom:0}
.band img{width:100%;height:clamp(240px,34vw,460px);object-fit:cover;object-position:center 58%}
.band:after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,12,17,.55),rgba(10,12,17,.06) 42%,rgba(10,12,17,.42))}
.band-wide{margin:0;border-radius:0;border-left:0;border-right:0;border-bottom:1px solid var(--line)}
.band-wide img{height:clamp(220px,30vw,400px)}

/* image encadree dans une colonne */
.shot{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);position:relative;
  box-shadow:0 30px 70px -40px rgba(0,0,0,.9)}
.shot img{width:100%;height:100%;object-fit:cover;display:block}
.shot:after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(200deg,rgba(216,165,76,.1),transparent 45%)}
.split{display:grid;grid-template-columns:1.25fr .85fr;gap:clamp(28px,4vw,56px);align-items:start}
.split .shot{aspect-ratio:4/3}

/* ---------- bloc de marque (bandeau reproduit en HTML) ---------- */
.brandblock{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--r);
  border:1px solid rgba(184,139,58,.35);margin:clamp(44px,7vw,80px) 0 clamp(40px,6vw,72px);
  box-shadow:0 40px 90px -50px #000}
.brandblock .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:72% 55%;z-index:-2}
.brandblock:before{content:"";position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(100deg,rgba(255,248,235,.95) 0%,rgba(255,246,230,.88) 38%,
      rgba(255,240,218,.5) 56%,rgba(255,236,208,.12) 72%,transparent 86%),
    linear-gradient(180deg,rgba(255,250,240,.35),transparent 30%)}
.brandblock .inner{padding:clamp(34px,5vw,62px) clamp(26px,5vw,66px);
  max-width:min(640px,86%);color:#20343A}

.lockup{display:flex;align-items:center;gap:13px;margin-bottom:clamp(26px,4vw,42px)}
.lockup svg{width:44px;height:44px;flex:0 0 44px}
.lockup p{margin:0;display:flex;flex-direction:column;gap:5px}
.lockup .nom{font-family:var(--d);font-weight:500;letter-spacing:.11em;text-transform:uppercase;
  font-size:clamp(.98rem,2vw,1.26rem);color:#1D3238;line-height:1}
.lockup .base{font:500 clamp(9.5px,1.3vw,11.5px)/1 var(--s);letter-spacing:.2em;
  text-transform:uppercase;color:#B88B3A}

.btitre{font-family:var(--d);font-weight:500;color:#1C3035;margin:0 0 16px;
  font-size:clamp(1.9rem,4.6vw,3.1rem);line-height:1.1;letter-spacing:-.01em}
.bsub{font-size:clamp(.92rem,1.7vw,1.06rem);color:#4A5C60;margin:0 0 clamp(24px,3.6vw,34px);
  line-height:1.6}

.picto{display:flex;list-style:none;margin:0 0 clamp(26px,4vw,38px);padding:0;flex-wrap:wrap}
.picto li{display:flex;flex-direction:column;align-items:center;text-align:center;gap:9px;
  padding:0 clamp(12px,2.2vw,22px);border-left:1px solid rgba(184,139,58,.4);color:#B88B3A}
.picto li:first-child{border-left:0;padding-left:0}
.picto svg{width:clamp(22px,3vw,28px);height:clamp(22px,3vw,28px)}
.picto span{font:500 clamp(10.5px,1.4vw,12.5px)/1.35 var(--s);color:#38494E}

.btn-brand{background:linear-gradient(180deg,#C9A05A,#B08436);color:#fff;
  box-shadow:0 12px 28px -12px rgba(176,132,54,.75);padding:15px 28px}
.btn-brand:hover{box-shadow:0 18px 36px -14px rgba(176,132,54,.9)}
.btn-brand svg{width:19px;height:13px}

@media (max-width:760px){
  .brandblock .inner{max-width:100%}
  .brandblock:before{background:
    linear-gradient(170deg,rgba(255,248,235,.96) 0%,rgba(255,246,230,.93) 62%,rgba(255,240,218,.78) 100%)}
  .picto li{padding:0 10px}
}
@media (max-width:460px){
  .picto{gap:16px 0}
  .picto li{width:50%;border-left:0;padding:0}
}

/* ---------- bandeau ---------- */
.strip{border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);
  background:var(--ink2);padding:0}
.strip .wrap{display:grid;grid-template-columns:repeat(3,1fr)}
.strip .cell{padding:38px 28px 36px;border-left:1px solid var(--line2)}
.strip .cell:first-child{border-left:0;padding-left:0}
.strip b{display:block;font-family:var(--d);font-size:clamp(1.5rem,3.2vw,2.15rem);
  font-weight:600;color:var(--brass2);line-height:1.15;margin-bottom:10px}
.strip span{font-size:14.5px;color:var(--muted);display:block;max-width:36ch}

/* ---------- cartes ---------- */
.grid{display:grid;gap:22px}
.g3{grid-template-columns:repeat(3,1fr)}
.g2{grid-template-columns:repeat(2,1fr)}
.card{background:linear-gradient(180deg,var(--card),var(--ink2));border:1px solid var(--line2);
  border-radius:var(--r);padding:30px 28px;position:relative;overflow:hidden}
.card:before{content:"";position:absolute;inset:0 0 auto;height:1px;
  background:linear-gradient(90deg,transparent,rgba(216,165,76,.5),transparent)}
.card h3{margin-bottom:12px;color:var(--cream)}
.card p{color:var(--muted);font-size:15.5px;margin:0}
.card .ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;
  background:rgba(216,165,76,.1);border:1px solid var(--line);color:var(--brass);margin-bottom:20px}
.card .ico svg{width:22px;height:22px}

/* ---------- tableau ---------- */
.tscroll{overflow-x:auto;border:1px solid var(--line2);border-radius:var(--r);background:var(--ink2)}
table{border-collapse:collapse;width:100%;min-width:760px;font-size:15px}
th,td{padding:16px 18px;text-align:left;border-bottom:1px solid var(--line2);vertical-align:top}
thead th{font:600 12.5px/1.4 var(--s);letter-spacing:.09em;text-transform:uppercase;
  color:var(--muted2);background:rgba(247,243,234,.02)}
thead th.hi{color:var(--brass);background:rgba(216,165,76,.07)}
tbody th{font-weight:600;color:var(--cream);width:23%}
td{color:var(--muted)}
td.hi{color:var(--cream);background:rgba(216,165,76,.045);
  box-shadow:inset 1px 0 0 var(--line),inset -1px 0 0 var(--line)}
tbody tr:last-child td,tbody tr:last-child th{border-bottom:0}

/* ---------- etapes ---------- */
.steps{list-style:none;margin:0;padding:0;counter-reset:s;display:grid;gap:0}
.steps li{counter-increment:s;position:relative;padding:28px 0 28px 76px;
  border-bottom:1px solid var(--line2)}
.steps li:last-child{border-bottom:0}
.steps li:before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:26px;
  font-family:var(--d);font-size:1.5rem;font-weight:600;color:var(--brass);
  width:52px;height:52px;border:1px solid var(--line);border-radius:50%;display:grid;
  place-items:center;background:rgba(216,165,76,.06)}
.steps h3{margin-bottom:8px}
.steps p{color:var(--muted);margin:0;font-size:15.5px;max-width:70ch}

/* ---------- listes ---------- */
.tags{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}
.tags li{border:1px solid var(--line2);background:rgba(247,243,234,.025);border-radius:999px;
  padding:9px 17px;font-size:14.5px;color:#CDD3DE}
.checks{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.checks li{display:flex;gap:13px;align-items:flex-start;font-size:15.5px;color:#CDD3DE}
.checks svg{flex:0 0 19px;margin-top:3px;color:var(--brass)}

/* ---------- zone ---------- */
.communes{columns:3;column-gap:28px;list-style:none;margin:0;padding:0;font-size:15.5px}
.communes li{padding:7px 0;color:#CDD3DE;break-inside:avoid;border-bottom:1px solid var(--line2)}

/* ---------- faq ---------- */
details{border:1px solid var(--line2);border-radius:14px;background:var(--ink2);margin-bottom:12px;
  overflow:hidden}
details[open]{border-color:var(--line);background:var(--card)}
summary{cursor:pointer;padding:20px 54px 20px 22px;font-weight:600;font-size:16.5px;
  position:relative;list-style:none}
summary::-webkit-details-marker{display:none}
summary:after{content:"";position:absolute;right:22px;top:26px;width:11px;height:11px;
  border-right:2px solid var(--brass);border-bottom:2px solid var(--brass);
  transform:rotate(45deg);transition:transform .2s ease}
details[open] summary:after{transform:rotate(225deg);top:28px}
details .body{padding:0 22px 22px;color:var(--muted);font-size:15.5px}
details .body p:last-child{margin:0}

/* ---------- contact ---------- */
.contact{background:
  radial-gradient(760px 440px at 15% 0%,rgba(216,165,76,.13),transparent 68%),var(--ink2);
  border-top:1px solid var(--line2)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1/-1}
label{font:600 13.5px/1 var(--s);color:#C6CCD8;letter-spacing:.01em}
input,select,textarea{font-family:var(--s);font-size:16px;color:var(--cream);
  background:rgba(10,12,17,.75);border:1px solid rgba(247,243,234,.13);border-radius:11px;
  padding:14px 15px;width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brass);
  box-shadow:0 0 0 3px rgba(216,165,76,.16)}
textarea{resize:vertical;min-height:130px}
select{appearance:none;-webkit-appearance:none;background-repeat:no-repeat;
  background-position:right 16px center}
.hp{position:absolute;left:-9999px}
.consent{display:flex;gap:11px;align-items:flex-start;font-size:13.5px;color:var(--muted)}
.consent input{width:17px;height:17px;flex:0 0 17px;margin-top:2px;accent-color:var(--brass)}
form .btn{width:auto;margin-top:6px}
.formnote{font-size:13.5px;color:var(--muted2);margin:18px 0 0}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line2);background:var(--ink);padding:56px 0 40px;font-size:14.5px}
footer .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:34px;margin-bottom:38px}
footer h4{font:600 12px/1 var(--s);letter-spacing:.16em;text-transform:uppercase;
  color:var(--brass);margin:0 0 16px}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
footer a,footer li{color:var(--muted)}
footer a:hover{color:var(--cream)}
.legal{border-top:1px solid var(--line2);padding-top:24px;display:flex;flex-wrap:wrap;
  gap:8px 20px;color:var(--muted2);font-size:13px}

/* ---------- blog ---------- */
.fil{font-size:13.5px;color:var(--muted2);margin-bottom:22px;display:flex;gap:9px;flex-wrap:wrap}
.fil a{color:var(--muted)}
.meta{font-size:13.5px;color:var(--muted2);display:flex;gap:9px;flex-wrap:wrap;margin:22px 0 0}
a.card.lien{display:block;text-decoration:none;transition:border-color .2s ease,transform .2s ease}
a.card.lien:hover{text-decoration:none;border-color:rgba(216,165,76,.45);transform:translateY(-2px)}
a.card.lien h3{color:var(--cream)}
a.card.lien p{color:var(--muted)}
.article{font-size:17px}
.article h2{font-size:clamp(1.45rem,3vw,2rem);margin:52px 0 16px}
.article h3{font-size:1.18rem;margin:34px 0 12px}
.article p{color:#C9CFDA;margin:0 0 20px}
.article ul,.article ol{color:#C9CFDA;padding-left:24px;margin:0 0 22px}
.article li{margin-bottom:9px}
.article strong{color:var(--cream)}
.article code{background:rgba(247,243,234,.07);border:1px solid var(--line2);border-radius:5px;
  padding:1px 6px;font-size:.9em}
.article blockquote{margin:26px 0;padding:18px 24px;border-left:2px solid var(--brass);
  background:rgba(216,165,76,.05);border-radius:0 12px 12px 0}
.article blockquote p{margin:0;color:#D9DEE8}

/* ---------- pages interieures ---------- */
.doc{max-width:760px}
.doc h2{font-size:1.55rem;margin:46px 0 14px}
.doc h1{font-size:clamp(2rem,5vw,3rem);margin-bottom:10px}
.doc p,.doc li{color:#C6CCD8;font-size:16px}
.doc ul{padding-left:22px}
.doc dt{font-weight:600;color:var(--cream);margin-top:16px}
.doc dd{margin:4px 0 0;color:var(--muted)}

@media (max-width:980px){
  .g3,.g2,.strip .wrap,.split{grid-template-columns:1fr}
  .strip .cell{border-left:0;border-top:1px solid var(--line2);padding:30px 0}
  .strip .cell:first-child{border-top:0}
  .communes{columns:2}
  footer .cols{grid-template-columns:1fr}
}
@media (max-width:760px){
  nav.main{display:none}
  nav.main.open{display:flex;position:absolute;top:70px;left:0;right:0;flex-direction:column;
    gap:0;background:var(--ink2);border-bottom:1px solid var(--line2);padding:8px 24px 18px;
    z-index:70}
  .burger{display:block}
  .bar .btn{display:none}
  .fgrid{grid-template-columns:1fr}
  .communes{columns:1}
  .steps li{padding-left:62px}
  .steps li:before{width:44px;height:44px;font-size:1.25rem}
  body{font-size:16.5px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
  html{scroll-behavior:auto}
}

/* ================================================================
   PASSE « LUXE » — profondeur, filets d'or, echelle editoriale
   ================================================================ */

:root{
  --ink:#07090D; --ink2:#0B0E14; --card:#11151D; --card2:#161B24;
  --brass:#D4A14A; --brass2:#F2DCAE; --brassdeep:#8C6522;
  --cream:#F8F5EE; --muted:#A7AEBB; --muted2:#6E7684;
  --line:rgba(212,161,74,.22); --line2:rgba(248,245,238,.07);
  --max:1200px;
}

/* --- fond general : plus un aplat noir, mais des nappes lumineuses fixes --- */
html{background-color:#07090D}
body{background-color:transparent;
  background-image:
    radial-gradient(1000px 760px at 6% 4%,rgba(212,161,74,.085),transparent 62%),
    radial-gradient(1150px 860px at 98% 24%,rgba(104,136,178,.075),transparent 64%),
    radial-gradient(900px 780px at 2% 54%,rgba(212,161,74,.062),transparent 62%),
    radial-gradient(1050px 820px at 100% 80%,rgba(212,161,74,.08),transparent 62%),
    linear-gradient(180deg,#07090D 0%,#0A0D13 34%,#080B10 66%,#06080C 100%);
  background-attachment:fixed}

/* les sections cessent d'etre opaques : les nappes transparaissent au travers */
#comparaison,#prestations,#zone{
  background:linear-gradient(180deg,rgba(11,14,20,.74),rgba(7,9,13,.86)) !important;
  backdrop-filter:blur(0.5px)}
.strip{background:linear-gradient(180deg,rgba(11,14,20,.8),rgba(8,11,16,.9))}
.pledge{background:
  radial-gradient(760px 420px at 20% 0%,rgba(212,161,74,.16),transparent 68%),
  linear-gradient(180deg,rgba(11,14,20,.72),rgba(7,9,13,.88))}
.contact{background:
  radial-gradient(820px 480px at 12% 0%,rgba(212,161,74,.15),transparent 66%),
  linear-gradient(180deg,rgba(11,14,20,.7),rgba(7,9,13,.9))}
.hero,.artheader{background-color:transparent}
.artbody{background:transparent}
footer{background:linear-gradient(180deg,rgba(6,8,9,.88),rgba(5,7,8,.96))}

/* grain tres leger : donne de la matiere aux aplats sombres */
body:before{content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");
  mix-blend-mode:overlay}

section{padding:clamp(84px,11vw,150px) 0}

/* --- surtitres : filet d'or + lettrage large --- */
.eyebrow{display:inline-flex;align-items:center;gap:15px;letter-spacing:.24em;font-size:11.5px;
  color:var(--brass);margin-bottom:24px}
.eyebrow:before{content:"";width:38px;height:1px;flex:0 0 38px;
  background:linear-gradient(90deg,transparent,var(--brass))}

h1{font-size:clamp(2.5rem,6.8vw,5.1rem);line-height:1.02;letter-spacing:-.025em;font-weight:500}
h2{font-size:clamp(2rem,4.3vw,3.35rem);line-height:1.06;letter-spacing:-.022em;font-weight:500;
  margin-bottom:22px}
h3{font-size:1.24rem;letter-spacing:-.008em}
.lead{font-size:clamp(1.08rem,2vw,1.34rem);line-height:1.68;color:#DDE2EB}
.sub{line-height:1.72}

/* --- boutons --- */
.btn{padding:15px 28px;letter-spacing:.005em}
.btn-p{background:linear-gradient(177deg,#F6E3BB 0%,#D9A84F 46%,#C08F35 100%);color:#241705;
  box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 14px 34px -14px rgba(212,161,74,.65)}
.btn-p:hover{box-shadow:0 1px 0 rgba(255,255,255,.6) inset,0 20px 44px -16px rgba(212,161,74,.8)}
.btn-s{border-color:rgba(212,161,74,.34);background:rgba(212,161,74,.045)}
.btn-s:hover{border-color:rgba(212,161,74,.6);background:rgba(212,161,74,.1)}

/* --- barre de navigation --- */
header.bar{background:rgba(7,9,13,.76);border-bottom-color:rgba(212,161,74,.14)}
.bar .wrap{height:76px}
.logo{font-size:1.16rem;letter-spacing:.005em}
nav.main a{letter-spacing:.01em;position:relative;padding-bottom:3px}
nav.main a:after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;
  background:var(--brass);transition:right .28s ease}
nav.main a:hover:after{right:0}

/* --- hero : halo chaud et vignette --- */
.hero{background:
  radial-gradient(1200px 620px at 50% -18%,rgba(212,161,74,.22),transparent 66%),
  radial-gradient(620px 420px at 92% 14%,rgba(212,161,74,.09),transparent 72%),
  linear-gradient(180deg,#07090D,#0B0E14)}
.hero h1{max-width:18ch}
.proof{gap:12px 34px;margin-top:44px;padding-top:26px;border-top:1px solid var(--line2);
  max-width:fit-content}

/* --- bandeau des trois piliers --- */
.strip{background:linear-gradient(180deg,#0B0E14,#090C11);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.strip .cell{padding:46px 34px 44px;border-left:1px solid var(--line2);position:relative}
.strip .cell:before{content:"";position:absolute;left:-1px;top:34%;height:32%;width:1px;
  background:linear-gradient(180deg,transparent,var(--brass),transparent)}
.strip .cell:first-child:before{display:none}
.strip b{font-size:clamp(1.55rem,3.3vw,2.25rem);font-weight:500;letter-spacing:-.015em;
  color:var(--brass2)}

/* --- cartes : filet d'or degrade et relief --- */
.card{padding:34px 32px;border-radius:18px;
  background:linear-gradient(170deg,rgba(255,255,255,.035),rgba(255,255,255,0) 42%),
    linear-gradient(180deg,var(--card),var(--ink2));
  border-color:rgba(248,245,238,.075);
  box-shadow:0 30px 70px -50px #000, 0 1px 0 rgba(255,255,255,.04) inset;
  transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease}
.card:before{background:linear-gradient(90deg,transparent,rgba(212,161,74,.65),transparent)}
.card:hover{border-color:rgba(212,161,74,.3);transform:translateY(-3px);
  box-shadow:0 40px 80px -46px #000, 0 1px 0 rgba(255,255,255,.07) inset}
.card .ico{width:48px;height:48px;border-radius:14px;margin-bottom:24px;
  background:linear-gradient(170deg,rgba(212,161,74,.2),rgba(212,161,74,.05));
  border-color:rgba(212,161,74,.3)}
.card p{line-height:1.72}

/* --- tableau --- */
.tscroll{border-color:rgba(248,245,238,.075);border-radius:18px;
  box-shadow:0 30px 70px -50px #000}
thead th{padding:20px 20px;font-size:11.5px;letter-spacing:.17em}
thead th.hi{background:linear-gradient(180deg,rgba(212,161,74,.17),rgba(212,161,74,.06));
  color:var(--brass2)}
th,td{padding:19px 20px}
tbody tr:nth-child(even) td,tbody tr:nth-child(even) th{background:rgba(248,245,238,.016)}
td.hi{background:rgba(212,161,74,.055);box-shadow:inset 1px 0 0 var(--line),inset -1px 0 0 var(--line)}
tbody th{font-weight:500;font-family:var(--d);font-size:1.02rem;letter-spacing:-.005em}

/* --- etapes : chiffres serif relies par un filet --- */
.steps li{padding:34px 0 34px 92px}
.steps li:before{width:60px;height:60px;top:30px;font-size:1.3rem;letter-spacing:.02em;
  background:radial-gradient(circle at 50% 30%,rgba(212,161,74,.17),rgba(212,161,74,.04));
  border-color:rgba(212,161,74,.32);color:var(--brass2)}
.steps li:after{content:"";position:absolute;left:30px;top:92px;bottom:-34px;width:1px;
  background:linear-gradient(180deg,rgba(212,161,74,.35),rgba(212,161,74,.04))}
.steps li:last-child:after{display:none}
.steps h3{font-size:1.3rem;margin-bottom:10px}
.steps p{line-height:1.74}

/* --- listes --- */
.checks li{line-height:1.6}
.tags li{padding:10px 19px}
.communes li{padding:9px 0}

/* --- accordeon --- */
details{border-radius:16px;border-color:rgba(248,245,238,.075)}
summary{padding:23px 58px 23px 26px;font-size:17px;font-family:var(--d);font-weight:500;
  letter-spacing:-.008em}
details[open]{border-color:rgba(212,161,74,.3)}
details .body{padding:0 26px 26px;line-height:1.75}

/* --- filet orne, a glisser entre deux blocs --- */
.rule{display:flex;align-items:center;justify-content:center;gap:16px;margin:0}
.rule:before,.rule:after{content:"";height:1px;flex:1;max-width:220px;
  background:linear-gradient(90deg,transparent,rgba(212,161,74,.5))}
.rule:after{background:linear-gradient(90deg,rgba(212,161,74,.5),transparent)}
.rule span{width:6px;height:6px;transform:rotate(45deg);background:var(--brass);flex:0 0 6px}

/* --- bloc signature : l'engagement, en grand --- */
.pledge{position:relative;overflow:hidden;
  background:
    radial-gradient(760px 420px at 20% 0%,rgba(212,161,74,.14),transparent 68%),
    linear-gradient(180deg,#0B0E14,#07090D);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pledge .wrap{max-width:900px;text-align:center}
.pledge .mark{font-family:var(--d);font-size:4.4rem;line-height:.6;color:rgba(212,161,74,.35);
  display:block;margin-bottom:18px}
.pledge p.big{font-family:var(--d);font-weight:500;letter-spacing:-.018em;
  font-size:clamp(1.5rem,3.3vw,2.5rem);line-height:1.26;color:var(--cream);margin:0 0 26px}
.pledge p.who{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);
  margin:0}

/* --- formulaire --- */
input,select,textarea{border-radius:13px;padding:15px 16px;
  border-color:rgba(248,245,238,.12);background:rgba(7,9,13,.8)}
input:focus,select:focus,textarea:focus{border-color:var(--brass);
  box-shadow:0 0 0 3px rgba(212,161,74,.18)}
.contact{background:
  radial-gradient(820px 480px at 12% 0%,rgba(212,161,74,.14),transparent 66%),
  linear-gradient(180deg,#0B0E14,#07090D)}

/* --- pied de page --- */
footer{padding:66px 0 44px;background:#060809}
footer h4{letter-spacing:.2em}

/* ================================================================
   ARTICLES — mise en page editoriale
   ================================================================ */

.artheader{position:relative;padding:clamp(44px,6vw,80px) 0 clamp(34px,4vw,52px);
  background:
    radial-gradient(900px 480px at 50% -24%,rgba(212,161,74,.19),transparent 66%),
    linear-gradient(180deg,#07090D,#0B0E14)}
.artheader .wrap{max-width:860px;text-align:center}
.artheader .fil{justify-content:center;margin-bottom:26px}
.artheader .eyebrow{margin-bottom:26px}
.artheader .eyebrow:before{display:none}
.artheader h1{font-size:clamp(2.1rem,4.9vw,3.7rem);line-height:1.08;max-width:19ch;
  margin:0 auto;letter-spacing:-.022em}
.artheader .chapo{font-family:var(--d);font-weight:500;font-style:italic;
  font-size:clamp(1.1rem,2.1vw,1.42rem);line-height:1.5;color:#D5DAE4;
  max-width:46ch;margin:26px auto 0}
.artheader .meta{justify-content:center;margin-top:28px;letter-spacing:.06em;
  text-transform:uppercase;font-size:11.5px}
.artheader .rule{margin-top:40px}

.artbody{padding-top:clamp(44px,6vw,74px)}
.artgrid{display:grid;grid-template-columns:230px minmax(0,1fr);
  gap:clamp(30px,5vw,76px);align-items:start;max-width:1060px}

/* sommaire lateral */
.toc{position:sticky;top:104px;border-left:1px solid var(--line2);padding-left:22px}
.toctitre{font:600 11px/1 var(--s);letter-spacing:.22em;text-transform:uppercase;
  color:var(--brass);margin:0 0 18px}
.toc ol{list-style:none;margin:0;padding:0;counter-reset:t;display:grid;gap:13px}
.toc li{counter-increment:t;font-size:13.5px;line-height:1.45}
.toc a{color:var(--muted);display:flex;gap:10px}
.toc a:before{content:counter(t,decimal-leading-zero);color:var(--brassdeep);
  font-variant-numeric:tabular-nums;flex:0 0 auto}
.toc a:hover{color:var(--cream);text-decoration:none}

/* corps */
.article{font-size:18px;line-height:1.78;max-width:68ch}
.article > p:first-of-type:first-letter{float:left;font-family:var(--d);font-weight:500;
  font-size:4.05em;line-height:.82;padding:.06em .12em 0 0;color:var(--brass2);
  background:linear-gradient(180deg,var(--brass2),var(--brass));-webkit-background-clip:text;
  background-clip:text;-webkit-text-fill-color:transparent}
.article h2{font-size:clamp(1.5rem,3vw,2.05rem);margin:60px 0 18px;letter-spacing:-.018em;
  scroll-margin-top:110px;position:relative;padding-top:26px}
.article h2:before{content:"";position:absolute;top:0;left:0;width:46px;height:1px;
  background:linear-gradient(90deg,var(--brass),transparent)}
.article h3{font-size:1.22rem;margin:38px 0 12px;color:var(--brass2)}
.article p{color:#C9CFDA;margin:0 0 22px}
.article ul,.article ol{list-style:none;padding:0;margin:0 0 26px;display:grid;gap:12px}
.article li{position:relative;padding-left:30px;color:#C9CFDA}
.article ul li:before{content:"";position:absolute;left:4px;top:.68em;width:7px;height:7px;
  transform:rotate(45deg);background:var(--brass);opacity:.85}
.article ol{counter-reset:ai}
.article ol li{counter-increment:ai}
.article ol li:before{content:counter(ai,decimal-leading-zero);position:absolute;left:0;top:.06em;
  font-family:var(--d);font-size:.9em;color:var(--brass);font-variant-numeric:tabular-nums}
.article strong{color:var(--cream);font-weight:600}
.article blockquote{margin:38px 0;padding:30px 34px;border:0;border-radius:18px;
  background:linear-gradient(170deg,rgba(212,161,74,.1),rgba(212,161,74,.02));
  border-left:2px solid var(--brass);position:relative}
.article blockquote:before{content:"\201C";position:absolute;top:2px;right:24px;
  font-family:var(--d);font-size:4.6rem;line-height:1;color:rgba(212,161,74,.26)}
.article blockquote p{margin:0;font-family:var(--d);font-weight:500;font-size:1.22rem;
  line-height:1.5;color:var(--cream)}
.article a{border-bottom:1px solid rgba(212,161,74,.45)}
.article a:hover{text-decoration:none;border-bottom-color:var(--brass)}
.article hr{border:0;height:1px;margin:46px 0;
  background:linear-gradient(90deg,transparent,rgba(212,161,74,.45),transparent)}

.signature{margin:60px 0 0;padding-top:30px;display:flex;flex-direction:column;gap:6px;
  border-top:1px solid var(--line2)}
.signature .trait{width:40px;height:1px;background:var(--brass);margin-bottom:12px}
.signature .nom{font-family:var(--d);font-size:1.12rem;color:var(--cream)}
.signature .role{font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted2)}

@media (max-width:980px){
  .artgrid{grid-template-columns:1fr}
  .toc{position:static;border-left:0;padding-left:0;border-top:1px solid var(--line2);
    border-bottom:1px solid var(--line2);padding:22px 0;margin-bottom:34px}
  .toc:empty{display:none}
  .article{max-width:100%;font-size:17px}
}

@media (max-width:760px){
  .steps li{padding-left:70px}
  .steps li:before{width:50px;height:50px;font-size:1.15rem}
  .steps li:after{left:25px;top:82px}
  .proof{max-width:100%}
  .article blockquote{padding:24px 24px}
  .article blockquote:before{display:none}
}

/* ================================================================
   BANDEAU D'INFORMATION
   ================================================================ */
.bandeau-info{position:fixed;left:50%;bottom:18px;transform:translate(-50%,130%);z-index:900;
  width:min(680px,calc(100vw - 32px));display:flex;align-items:center;gap:18px;
  padding:14px 16px 14px 20px;border-radius:16px;
  background:rgba(14,17,24,.93);backdrop-filter:blur(16px);
  border:1px solid rgba(212,161,74,.26);box-shadow:0 26px 60px -30px #000;
  transition:transform .34s cubic-bezier(.22,1,.36,1),opacity .3s ease;opacity:0}
.bandeau-info.vu{transform:translate(-50%,0);opacity:1}
.bandeau-info.part{transform:translate(-50%,130%);opacity:0}
.bandeau-info p{margin:0;font-size:13px;line-height:1.55;color:var(--muted)}
.bandeau-info strong{color:#CDD3DE;font-weight:600}
.bandeau-info a{color:var(--brass2);white-space:nowrap}
.bandeau-info button{flex:0 0 auto;border:1px solid rgba(212,161,74,.45);border-radius:999px;
  background:rgba(212,161,74,.1);color:var(--brass2);font:600 13px/1 var(--s);
  padding:11px 20px;cursor:pointer;transition:background .2s ease,border-color .2s ease}
.bandeau-info button:hover{background:rgba(212,161,74,.2);border-color:var(--brass)}
@media (max-width:620px){
  .bandeau-info{flex-direction:column;align-items:stretch;gap:12px;text-align:left;bottom:12px}
  .bandeau-info button{width:100%;padding:13px}
}

/* ================================================================
   ASSISTANT — lanceur et panneau
   ================================================================ */

/* --- le lanceur --- */
.assist-ouvre{position:fixed;right:24px;bottom:24px;z-index:905;display:inline-flex;
  align-items:center;gap:12px;padding:12px 22px 12px 13px;border-radius:999px;cursor:pointer;
  font:600 14.5px/1 var(--s);color:var(--cream);letter-spacing:.005em;
  background:linear-gradient(165deg,rgba(26,31,41,.97),rgba(11,14,20,.97));
  border:1px solid rgba(212,161,74,.42);
  box-shadow:0 1px 0 rgba(255,255,255,.055) inset,0 22px 48px -22px rgba(0,0,0,.95);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .3s ease,
    border-color .3s ease,opacity .2s ease}
.assist-ouvre:hover{transform:translateY(-3px);border-color:rgba(212,161,74,.8);
  box-shadow:0 1px 0 rgba(255,255,255,.085) inset,0 28px 56px -22px rgba(0,0,0,.98),
    0 0 0 7px rgba(212,161,74,.07)}
.assist-ouvre:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.assist-ouvre .jeton{position:relative;flex:0 0 36px;width:36px;height:36px;border-radius:50%;
  display:grid;place-items:center;
  background:radial-gradient(circle at 50% 28%,rgba(212,161,74,.3),rgba(212,161,74,.08));
  border:1px solid rgba(212,161,74,.42)}
.assist-ouvre .jeton svg{width:19px;height:19px}
.assist-ouvre .vivant{position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;
  border-radius:50%;background:#56C27A;border:2px solid #0D1118}
.assist-ouvre .vivant:before{content:"";position:absolute;inset:-4px;border-radius:50%;
  border:1px solid rgba(86,194,122,.55);animation:onde 2.4s ease-out infinite}
@keyframes onde{0%{transform:scale(.6);opacity:.9}70%,100%{transform:scale(1.5);opacity:0}}
.assist-ouvre em{font-style:normal;display:flex;flex-direction:column;gap:3px;text-align:left}
.assist-ouvre em small{font:500 10.5px/1 var(--s);letter-spacing:.14em;text-transform:uppercase;
  color:var(--brass)}
.assist-ouvre.cache{opacity:0;pointer-events:none;transform:translateY(14px) scale(.96)}

/* --- le panneau --- */
.assist{position:fixed;right:24px;bottom:24px;z-index:910;flex-direction:column;
  width:min(406px,calc(100vw - 32px));height:min(620px,calc(100vh - 48px));
  border-radius:24px;overflow:hidden;display:flex;
  background:linear-gradient(180deg,rgba(18,22,30,.98),rgba(8,11,16,.99));
  border:1px solid rgba(212,161,74,.3);
  box-shadow:0 50px 110px -40px #000,0 1px 0 rgba(255,255,255,.05) inset;
  -webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);
  opacity:0;transform:translateY(20px) scale(.97);transform-origin:100% 100%;
  transition:opacity .26s ease,transform .3s cubic-bezier(.22,1,.36,1)}
.assist[hidden]{display:none}   /* indispensable : sinon le panneau recouvre le lanceur */
.assist.ouvert{opacity:1;transform:none}

.assist header{display:flex;align-items:center;gap:13px;padding:17px 16px 17px 19px;
  border-bottom:1px solid var(--line2);position:relative;
  background:linear-gradient(180deg,rgba(212,161,74,.1),rgba(212,161,74,.02))}
.assist header:after{content:"";position:absolute;left:19px;right:19px;bottom:0;height:1px;
  background:linear-gradient(90deg,rgba(212,161,74,.55),transparent)}
.assist .jeton{flex:0 0 38px;width:38px;height:38px;border-radius:50%;display:grid;
  place-items:center;position:relative;
  background:radial-gradient(circle at 50% 28%,rgba(212,161,74,.3),rgba(212,161,74,.07));
  border:1px solid rgba(212,161,74,.42)}
.assist .jeton svg{width:20px;height:20px}
.assist .jeton .vivant{position:absolute;right:0;bottom:0;width:10px;height:10px;border-radius:50%;
  background:#56C27A;border:2px solid #10141C}
.assist header div{display:flex;flex-direction:column;gap:3px;margin-right:auto;min-width:0}
.assist header strong{font-family:var(--d);font-weight:500;font-size:1.06rem;color:var(--cream);
  letter-spacing:-.005em}
.assist header em{font-style:normal;font-size:11px;letter-spacing:.07em;color:var(--muted2)}
.assist .ferme{background:none;border:1px solid transparent;color:var(--muted);cursor:pointer;
  padding:8px;border-radius:10px;display:grid;place-items:center;transition:all .2s ease}
.assist .ferme:hover{color:var(--cream);background:rgba(248,245,238,.07);border-color:var(--line2)}
.assist .ferme svg{width:15px;height:15px}

.assist .discussion{flex:1;overflow-y:auto;padding:22px 18px 8px;display:flex;flex-direction:column;
  gap:14px;scrollbar-width:thin;scrollbar-color:rgba(212,161,74,.35) transparent;
  overscroll-behavior:contain}
.assist .discussion::-webkit-scrollbar{width:8px}
.assist .discussion::-webkit-scrollbar-thumb{background:rgba(212,161,74,.3);border-radius:4px;
  border:2px solid transparent;background-clip:padding-box}
.bulle{max-width:86%;padding:13px 16px;border-radius:18px;font-size:14.5px;line-height:1.65;
  white-space:pre-wrap;word-break:break-word;animation:surgit .3s cubic-bezier(.22,1,.36,1)}
@keyframes surgit{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.bulle.lui{align-self:flex-start;color:#CDD3DE;border-bottom-left-radius:7px;
  background:linear-gradient(170deg,rgba(248,245,238,.075),rgba(248,245,238,.035));
  border:1px solid var(--line2)}
.bulle.moi{align-self:flex-end;color:#24180A;border-bottom-right-radius:7px;font-weight:500;
  background:linear-gradient(170deg,#F3DFB2,#DCAE58);
  box-shadow:0 10px 24px -14px rgba(212,161,74,.8)}
.bulle.echec{border-color:rgba(226,120,106,.42);background:rgba(226,120,106,.09);color:#EDBDB4}
.bulle.patiente{display:flex;gap:6px;align-items:center;padding:17px 18px}
.bulle.patiente i{width:6px;height:6px;border-radius:50%;background:var(--brass);
  animation:battement 1.15s infinite ease-in-out}
.bulle.patiente i:nth-child(2){animation-delay:.17s}
.bulle.patiente i:nth-child(3){animation-delay:.34s}
@keyframes battement{0%,80%,100%{opacity:.26;transform:translateY(0)}
  40%{opacity:1;transform:translateY(-4px)}}

.assist .pistes{display:flex;flex-direction:column;gap:8px;padding:12px 18px 4px}
.assist .pistes[hidden]{display:none}
.assist .pistes button{position:relative;text-align:left;font:500 13px/1.45 var(--s);
  color:#C2C9D5;cursor:pointer;border:1px solid var(--line2);border-radius:14px;
  background:linear-gradient(170deg,rgba(248,245,238,.045),rgba(248,245,238,.012));
  padding:11px 34px 11px 14px;transition:border-color .22s ease,color .22s ease,transform .22s ease}
.assist .pistes button:after{content:"";position:absolute;right:14px;top:50%;width:6px;height:6px;
  border-right:1.4px solid var(--brass);border-top:1.4px solid var(--brass);
  transform:translateY(-50%) rotate(45deg);opacity:.6}
.assist .pistes button:hover{border-color:rgba(212,161,74,.5);color:var(--cream);
  transform:translateX(2px)}

.assist .saisie{display:flex;gap:10px;align-items:flex-end;padding:14px 16px 10px;
  border-top:1px solid var(--line2);background:rgba(7,9,13,.5)}
.assist .saisie textarea{resize:none;min-height:48px;max-height:130px;padding:14px 15px;
  font-size:15px;border-radius:16px;line-height:1.45;
  background:rgba(7,9,13,.85);border-color:rgba(248,245,238,.11)}
.assist .saisie button{flex:0 0 48px;height:48px;border:0;border-radius:16px;cursor:pointer;
  display:grid;place-items:center;color:#24180A;
  background:linear-gradient(170deg,#F6E3BB,#D9A84F 48%,#C08F35);
  box-shadow:0 1px 0 rgba(255,255,255,.45) inset,0 12px 26px -14px rgba(212,161,74,.85);
  transition:transform .18s ease,opacity .2s ease}
.assist .saisie button:hover:not(:disabled){transform:translateY(-1px)}
.assist .saisie button:disabled{opacity:.32;cursor:not-allowed;box-shadow:none}
.assist .saisie button svg{width:19px;height:19px}
.assist .note{margin:0;padding:0 18px 14px;font-size:10.8px;line-height:1.5;color:var(--muted2)}

/* le bandeau ne doit jamais recouvrir le lanceur */
.bandeau-info{z-index:880;max-width:calc(100vw - 32px)}
@media (min-width:900px){
  .bandeau-info{left:28px;transform:translateY(130%);width:min(620px,calc(100vw - 360px))}
  .bandeau-info.vu{transform:translateY(0)}
  .bandeau-info.part{transform:translateY(130%)}
}

@media (max-width:560px){
  .assist{right:10px;left:10px;bottom:10px;width:auto;height:min(82vh,640px);border-radius:20px}
  .assist-ouvre{right:14px;bottom:14px;padding:10px 18px 10px 11px}
  .assist-ouvre em small{display:none}
  .bandeau-info{bottom:92px}
}
@media (prefers-reduced-motion:reduce){
  .assist-ouvre .vivant:before,.bulle{animation:none}
}

/* ================================================================
   TABLEAU COMPARATIF — mise en avant de la colonne retenue
   ================================================================ */
.tscroll{border:1px solid rgba(248,245,238,.08);border-radius:20px;
  background:linear-gradient(180deg,rgba(17,21,29,.82),rgba(9,12,17,.9));
  box-shadow:0 40px 90px -56px #000, 0 1px 0 rgba(255,255,255,.035) inset}
table{min-width:820px;font-size:14.8px;border-collapse:separate;border-spacing:0}

thead th{position:relative;padding:22px 20px 18px;vertical-align:bottom;
  font:600 11.5px/1.5 var(--s);letter-spacing:.16em;text-transform:uppercase;color:var(--muted2);
  background:transparent;border-bottom:1px solid var(--line2)}
thead th:first-child{width:21%}

/* la colonne retenue : un bandeau d'or qui court du haut jusqu'au bas du tableau */
thead th.hi{color:var(--brass2);border-top-left-radius:16px;border-top-right-radius:16px;
  padding-top:40px;
  background:linear-gradient(180deg,rgba(212,161,74,.2),rgba(212,161,74,.055));
  box-shadow:inset 1px 0 0 rgba(212,161,74,.3),inset -1px 0 0 rgba(212,161,74,.3),
    inset 0 1px 0 rgba(212,161,74,.45)}
thead th.hi:before{content:"Recommandé";position:absolute;top:13px;left:20px;
  font:600 9.5px/1 var(--s);letter-spacing:.2em;color:#241705;
  background:linear-gradient(170deg,#F3DFB2,#D9A84F);padding:5px 10px;border-radius:999px}

tbody th{width:21%;font-family:var(--d);font-weight:500;font-size:1.02rem;letter-spacing:-.005em;
  color:var(--cream);background:rgba(248,245,238,.022);
  border-right:1px solid var(--line2);border-bottom:1px solid var(--line2)}
tbody td{color:var(--muted);border-bottom:1px solid var(--line2);line-height:1.6}
th,td{padding:19px 20px;text-align:left;vertical-align:top}

tbody tr:hover th{background:rgba(248,245,238,.045)}
tbody tr:hover td{background:rgba(248,245,238,.022)}
tbody tr:hover td.hi{background:rgba(212,161,74,.1)}

td.hi{color:var(--cream);font-weight:500;
  background:rgba(212,161,74,.062);
  box-shadow:inset 1px 0 0 rgba(212,161,74,.3),inset -1px 0 0 rgba(212,161,74,.3)}
tbody tr:last-child td.hi{border-bottom-left-radius:16px;border-bottom-right-radius:16px;
  box-shadow:inset 1px 0 0 rgba(212,161,74,.3),inset -1px 0 0 rgba(212,161,74,.3),
    inset 0 -1px 0 rgba(212,161,74,.3)}
tbody tr:last-child td,tbody tr:last-child th{border-bottom:0}

/* un losange d'or devant chaque reponse de la colonne retenue */
td.hi{position:relative;padding-left:38px}
td.hi:before{content:"";position:absolute;left:20px;top:25px;width:7px;height:7px;
  transform:rotate(45deg);background:var(--brass)}

@media (max-width:620px){
  table{min-width:700px;font-size:14px}
  th,td{padding:16px 15px}
  td.hi{padding-left:32px}
  td.hi:before{left:16px;top:22px}
}

/* en-tete de l assistant : alignement verrouille, aucun debordement */
.assist header{align-items:center;min-height:72px}
.assist header div{justify-content:center;flex:1 1 auto;overflow:hidden}
.assist header strong,.assist header em{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;max-width:100%}
.assist header strong{line-height:1.2}
.assist header em{line-height:1.2}
.assist .jeton,.assist-ouvre .jeton{align-self:center}

/* le panneau est un <section> : il ne doit PAS heriter du padding global des sections */
.assist{padding:0}

/* ================================================================
   HERO — composition pleine largeur sur photographie
   ================================================================ */
.hero{position:relative;isolation:isolate;overflow:hidden;
  min-height:min(94vh,900px);display:flex;align-items:center;
  padding:clamp(120px,14vh,170px) 0 clamp(90px,12vh,130px);
  background:transparent}
.hero:before{display:none}                 /* l'ancienne trame quadrillee */

.hero .fond{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:68% 52%;z-index:-3;transform:scale(1.03)}

/* voile : lisibilite a gauche, lumiere conservee a droite, vignette generale */
.hero .voile{position:absolute;inset:0;z-index:-2;pointer-events:none;
  background:
    linear-gradient(95deg,rgba(6,8,12,.96) 0%,rgba(6,8,12,.92) 26%,rgba(6,8,12,.72) 48%,
      rgba(6,8,12,.34) 66%,rgba(6,8,12,.14) 82%,rgba(6,8,12,.3) 100%),
    radial-gradient(130% 100% at 12% 42%,rgba(212,161,74,.17),transparent 58%),
    linear-gradient(180deg,rgba(6,8,12,.86) 0%,transparent 22%,transparent 62%,rgba(6,8,12,.92) 100%)}

.hero .wrap{position:relative;z-index:2;max-width:var(--max);width:100%}
.hero .eyebrow{margin-bottom:28px}
.hero h1{max-width:17ch;
  text-shadow:0 2px 40px rgba(0,0,0,.7),0 1px 3px rgba(0,0,0,.5)}
.hero .lead{max-width:56ch;margin:28px 0 40px;color:#E3E8F0;
  text-shadow:0 1px 24px rgba(0,0,0,.65)}
.hero .cta{gap:16px}

/* la ligne de preuves devient une barre a filets d'or */
.hero .proof{display:flex;flex-wrap:wrap;gap:0;margin-top:52px;padding:0;border:0;
  max-width:none}
.hero .proof li{display:flex;align-items:center;gap:11px;font-size:13.5px;color:#C4CBD7;
  padding:14px 26px 14px 0;margin-right:26px;position:relative;letter-spacing:.005em}
.hero .proof li:not(:last-child):after{content:"";position:absolute;right:0;top:50%;
  transform:translateY(-50%);width:1px;height:20px;
  background:linear-gradient(180deg,transparent,rgba(212,161,74,.5),transparent)}
.hero .proof svg{flex:0 0 17px;width:17px;height:17px;color:var(--brass)}

/* indicateur de defilement */
.defile{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);z-index:3;
  width:26px;height:42px;border:1px solid rgba(212,161,74,.5);border-radius:999px;
  display:grid;place-items:start center;padding-top:8px}
.defile:hover{border-color:var(--brass);text-decoration:none}
.defile span{width:3px;height:8px;border-radius:2px;background:var(--brass);
  animation:chute 1.9s cubic-bezier(.4,0,.2,1) infinite}
@keyframes chute{0%{opacity:0;transform:translateY(0)}
  25%{opacity:1}75%{opacity:1;transform:translateY(16px)}100%{opacity:0;transform:translateY(18px)}}

/* la bande qui porte le bloc de marque */
.brandband{position:relative;padding:0 0 clamp(50px,7vw,86px);
  background:linear-gradient(180deg,rgba(6,8,12,.9),transparent 40%)}
.brandband .brandblock{margin-top:clamp(-70px,-7vw,-44px)}

@media (max-width:860px){
  .hero{min-height:auto;padding:clamp(86px,12vh,120px) 0 clamp(70px,9vh,96px)}
  .hero .fond{object-position:62% 50%}
  .hero .voile{background:
    linear-gradient(180deg,rgba(6,8,12,.9) 0%,rgba(6,8,12,.86) 40%,rgba(6,8,12,.94) 100%),
    radial-gradient(120% 80% at 20% 30%,rgba(212,161,74,.15),transparent 60%)}
  .hero .proof li{padding-right:0;margin-right:0;width:100%}
  .hero .proof li:after{display:none}
  .defile{display:none}
  .brandband .brandblock{margin-top:0}
}
@media (prefers-reduced-motion:reduce){ .defile span{animation:none} }

/* accent dore du titre : plus lumineux et detache du fond photographique */
.hero h1 em{background:linear-gradient(176deg,#FDF2DC 0%,#F0D09A 42%,#DCAE5E 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 2px 24px rgba(0,0,0,.8)) drop-shadow(0 1px 2px rgba(0,0,0,.6))}

/* ================================================================
   BANDE DE MARQUE — sobre, sans seconde photographie
   ================================================================ */
.brandband{position:relative;padding:clamp(40px,5vw,60px) 0;
  background:linear-gradient(180deg,rgba(6,8,12,.9),rgba(9,12,18,.55));
  border-bottom:1px solid var(--line2)}
.brandband .wrap{display:flex;flex-direction:column;align-items:center;gap:clamp(28px,4vw,42px)}

.signe{display:flex;align-items:center;gap:13px;margin:0;flex-wrap:wrap;
  justify-content:center;position:relative;padding:0 clamp(18px,5vw,56px)}
.signe:before,.signe:after{content:"";position:absolute;top:50%;width:clamp(0px,8vw,110px);
  height:1px;background:linear-gradient(90deg,transparent,rgba(212,161,74,.5))}
.signe:before{left:calc(-1 * clamp(0px,8vw,110px) - 6px)}
.signe:after{right:calc(-1 * clamp(0px,8vw,110px) - 6px);
  background:linear-gradient(90deg,rgba(212,161,74,.5),transparent)}
.signe svg{width:34px;height:34px;flex:0 0 34px}
.signe .nom{font-family:var(--d);font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  font-size:clamp(.92rem,1.9vw,1.15rem);color:var(--cream);line-height:1}
.signe .base{font:500 clamp(9px,1.2vw,10.5px)/1 var(--s);letter-spacing:.22em;
  text-transform:uppercase;color:var(--brass);padding-left:13px;margin-left:2px;
  border-left:1px solid rgba(212,161,74,.35)}

.brandband .picto{display:flex;justify-content:center;flex-wrap:wrap;margin:0;padding:0;
  list-style:none;width:100%;max-width:820px}
.brandband .picto li{flex:1 1 150px;display:flex;flex-direction:column;align-items:center;
  text-align:center;gap:11px;padding:4px clamp(10px,2.4vw,26px);color:var(--brass);
  border-left:1px solid var(--line2)}
.brandband .picto li:first-child{border-left:0}
.brandband .picto svg{width:26px;height:26px}
.brandband .picto span{font:500 12px/1.4 var(--s);letter-spacing:.03em;color:#BAC2CE}

@media (max-width:620px){
  .signe .base{border-left:0;padding-left:0;width:100%;text-align:center;margin-top:4px}
  .brandband .picto li{flex:1 1 44%;border-left:0;padding:10px 6px}
  .brandband .picto li:nth-child(even){border-left:1px solid var(--line2)}
}

/* ================================================================
   HERO EN DEUX VOLETS — proprietaires / locataires
   ================================================================ */
.hero.slider{display:block;padding:0;min-height:0;align-items:stretch}
.hero.slider .volets{display:grid;position:relative}
.hero.slider .volet{grid-area:1/1;position:relative;isolation:isolate;overflow:hidden;
  display:flex;align-items:center;
  min-height:min(94vh,900px);
  padding:clamp(120px,14vh,170px) 0 clamp(128px,15vh,176px);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .55s ease,visibility .55s ease}
.hero.slider .volet[hidden]{display:flex}      /* hidden sert d'etat, pas de masquage brutal */
.hero.slider .volet.actif{opacity:1;visibility:visible;pointer-events:auto;z-index:1}

/* l'apparition du contenu, decalee, donne le sentiment de glissement */
.hero.slider .volet .wrap > *{opacity:0;transform:translateY(16px);
  transition:opacity .55s ease,transform .6s cubic-bezier(.22,1,.36,1)}
.hero.slider .volet.actif .wrap > *{opacity:1;transform:none}
.hero.slider .volet.actif .wrap > :nth-child(1){transition-delay:.04s}
.hero.slider .volet.actif .wrap > :nth-child(2){transition-delay:.1s}
.hero.slider .volet.actif .wrap > :nth-child(3){transition-delay:.16s}
.hero.slider .volet.actif .wrap > :nth-child(4){transition-delay:.22s}
.hero.slider .volet.actif .wrap > :nth-child(5){transition-delay:.28s}

/* le titre du second volet est un h2 : meme allure que le h1, sans en etre un */
.hero.slider .titre{font-family:var(--d);font-weight:500;margin:0;
  font-size:clamp(2.5rem,6.8vw,5.1rem);line-height:1.02;letter-spacing:-.025em;max-width:17ch;
  text-shadow:0 2px 40px rgba(0,0,0,.7),0 1px 3px rgba(0,0,0,.5)}
.hero.slider .titre em{font-style:normal;
  background:linear-gradient(176deg,#FDF2DC 0%,#F0D09A 42%,#DCAE5E 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 2px 24px rgba(0,0,0,.8)) drop-shadow(0 1px 2px rgba(0,0,0,.6))}

/* --- les deux boutons de profil --- */
.onglets{position:absolute;left:50%;bottom:0;transform:translate(-50%,50%);z-index:4;
  display:flex;gap:10px;padding:8px;border-radius:999px;
  background:rgba(9,12,18,.86);border:1px solid rgba(212,161,74,.3);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
  box-shadow:0 30px 70px -30px #000,0 1px 0 rgba(255,255,255,.05) inset;
  max-width:calc(100vw - 32px)}
.onglets button{display:flex;align-items:center;gap:12px;cursor:pointer;
  padding:12px 22px 12px 16px;border-radius:999px;border:1px solid transparent;
  background:transparent;color:var(--muted);text-align:left;
  transition:color .25s ease,background .3s ease,border-color .3s ease}
.onglets button svg{width:22px;height:22px;flex:0 0 22px;color:var(--brass);opacity:.65;
  transition:opacity .25s ease}
.onglets button span{display:flex;flex-direction:column;gap:3px;min-width:0}
.onglets button strong{font:600 14.5px/1.15 var(--s);color:#C8CFDB;white-space:nowrap;
  transition:color .25s ease}
.onglets button small{font:500 10.5px/1 var(--s);letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted2);white-space:nowrap;transition:color .25s ease}
.onglets button:hover strong{color:var(--cream)}
.onglets button:hover svg{opacity:1}
.onglets button.actif{border-color:rgba(212,161,74,.5);
  background:linear-gradient(170deg,rgba(212,161,74,.2),rgba(212,161,74,.07))}
.onglets button.actif svg{opacity:1}
.onglets button.actif strong{color:var(--cream)}
.onglets button.actif small{color:var(--brass)}
.onglets button:focus-visible{outline:2px solid var(--brass);outline-offset:2px}

/* la bande de marque laisse la place a la pastille des onglets */
.brandband{padding-top:clamp(62px,7vw,86px)}

@media (max-width:860px){
  .hero.slider .volet{min-height:auto;
    padding:clamp(86px,12vh,120px) 0 clamp(104px,13vh,132px)}
  .hero.slider .volet .fond{object-position:62% 50%}
  .hero.slider .titre{font-size:clamp(2.1rem,8vw,3rem)}
}
@media (max-width:620px){
  .onglets{gap:6px;padding:6px;width:calc(100vw - 24px)}
  .onglets button{flex:1 1 0;padding:11px 10px;justify-content:center;gap:8px}
  .onglets button svg{display:none}
  .onglets button strong{font-size:13px;white-space:normal}
  .onglets button small{display:none}
}
@media (prefers-reduced-motion:reduce){
  .hero.slider .volet,.hero.slider .volet .wrap > *{transition:none}
}

/* la barre ne doit jamais passer sur deux lignes */
nav.main{gap:21px;font-size:14px}
nav.main a{white-space:nowrap}
.bar .wrap{gap:22px}
@media (max-width:1120px){
  nav.main{display:none}
  nav.main.open{display:flex;position:absolute;top:76px;left:0;right:0;flex-direction:column;
    gap:0;background:var(--ink2);border-bottom:1px solid var(--line2);padding:8px 24px 18px;
    z-index:70}
  nav.main.open a{padding:13px 0;border-bottom:1px solid var(--line2)}
  .burger{display:block}
  .bar .btn{display:none}
}

/* fondu enchaine : le volet sortant s'efface vite, l'entrant arrive ensuite */
.hero.slider .volet{transition:opacity .26s ease,visibility .26s ease}
.hero.slider .volet.actif{transition:opacity .5s ease .2s,visibility 0s}
.hero.slider .volet.actif .wrap > *{transition:opacity .5s ease,transform .55s cubic-bezier(.22,1,.36,1)}

/* ---- les deux boutons de profil remontent en tete du hero ---- */
.choix{position:absolute;top:clamp(92px,12vh,126px);left:0;right:0;z-index:5;pointer-events:none}
.choix .wrap{display:flex}
.choix .onglets{pointer-events:auto}

.onglets{position:static;transform:none;display:inline-flex;bottom:auto;left:auto;
  padding:7px;gap:8px;border-radius:999px}
.onglets button{padding:10px 20px 10px 14px}
.onglets button strong{font-size:14px}
.onglets button small{font-size:10px}

.hero.slider .volet{min-height:min(86vh,820px);
  padding:clamp(152px,19vh,206px) 0 clamp(72px,9vh,112px)}

/* la bande de marque retrouve une respiration normale */
.brandband{padding-top:clamp(40px,5vw,60px)}

@media (max-width:860px){
  .choix{top:clamp(84px,11vh,104px)}
  .hero.slider .volet{min-height:auto;padding:clamp(142px,18vh,176px) 0 clamp(64px,8vh,88px)}
}
@media (max-width:620px){
  .choix .wrap{padding:0 16px}
  .onglets{width:100%}
  .onglets button{flex:1 1 0;justify-content:center;padding:11px 8px}
}

/* ---- le hero tient dans le premier ecran ---- */
.hero.slider .volet{padding-top:clamp(168px,21vh,218px)}
.hero.slider h1,.hero.slider .titre{font-size:clamp(2.3rem,5.6vw,4.4rem);max-width:16ch}
.hero.slider .lead{max-width:52ch;margin:22px 0 30px;font-size:clamp(1rem,1.65vw,1.18rem)}
.hero.slider .proof{margin-top:34px;padding-top:22px}
.hero.slider .proof li{font-size:13px;padding:11px 22px 11px 0;margin-right:22px}
.hero.slider .eyebrow{margin-bottom:20px}
.hero.slider .volet{padding-top:clamp(152px,19vh,196px);padding-bottom:clamp(60px,7vh,92px)}
.hero.slider .proof{margin-top:28px;padding-top:18px}

/* ================================================================
   LOGEMENTS — liste et fiche
   ================================================================ */

/* bandeau « ceci est un exemple » : impossible a manquer */
.demo{display:block;margin:0;padding:18px 22px;border-radius:16px;font-size:14.5px;line-height:1.65;
  color:#F0DCB2;background:linear-gradient(170deg,rgba(212,161,74,.17),rgba(212,161,74,.055));
  border:1px dashed rgba(212,161,74,.65)}
.demo strong{color:var(--brass2)}
.demo a{border-bottom:1px solid rgba(212,161,74,.5)}

/* carte de logement */
a.card.bien{display:flex;flex-direction:column;padding:0;overflow:hidden;text-decoration:none;
  position:relative}
a.card.bien:hover{text-decoration:none}
a.card.bien img{width:100%;height:210px;object-fit:cover;object-position:center 58%}
a.card.bien .corps{padding:26px 26px 28px}
a.card.bien h3{color:var(--cream);margin-bottom:10px}
a.card.bien p{color:var(--muted);font-size:15px;margin:0}
a.card.bien .prix{margin-top:18px;padding-top:16px;border-top:1px solid var(--line2);
  color:var(--cream);font-size:15px}
a.card.bien .prix strong{font-family:var(--d);font-weight:500;font-size:1.5rem;color:var(--brass2)}
a.card.bien .prix span{color:var(--muted2);font-size:13px}
.etiquette{position:absolute;top:16px;left:16px;z-index:2;
  font:600 10.5px/1 var(--s);letter-spacing:.18em;text-transform:uppercase;color:#241705;
  background:linear-gradient(170deg,#F3DFB2,#D9A84F);padding:7px 13px;border-radius:999px;
  box-shadow:0 8px 20px -10px rgba(0,0,0,.9)}
a.card.bien.demo{border-style:dashed;border-color:rgba(212,161,74,.5);background:
  linear-gradient(170deg,rgba(255,255,255,.035),rgba(255,255,255,0) 42%),
  linear-gradient(180deg,var(--card),var(--ink2))}

/* galerie de la fiche */
.galerie{display:grid;grid-template-columns:1.6fr 1fr;gap:16px}
.galerie figure{margin:0;border-radius:18px;overflow:hidden;border:1px solid var(--line2);
  box-shadow:0 30px 70px -50px #000}
.galerie img{width:100%;height:clamp(240px,34vw,420px);object-fit:cover;object-position:center 58%}

/* encart de reservation */
.fiche{position:sticky;top:104px;border-radius:20px;padding:28px 26px;
  background:linear-gradient(170deg,rgba(255,255,255,.04),rgba(255,255,255,0) 42%),
    linear-gradient(180deg,var(--card),var(--ink2));
  border:1px solid rgba(212,161,74,.26);box-shadow:0 40px 90px -56px #000}
.fiche .prix{margin:0 0 20px;color:var(--cream)}
.fiche .prix strong{font-family:var(--d);font-weight:500;font-size:2.1rem;color:var(--brass2)}
.fiche .prix span{color:var(--muted2);font-size:14px}
.tarifs{width:100%;min-width:0;border-collapse:collapse;font-size:14px;margin-bottom:20px}
.tarifs th,.tarifs td{padding:11px 0;border-bottom:1px solid var(--line2);background:none}
.tarifs th{text-align:left;font:500 14px/1.4 var(--s);color:#C2C9D5;width:auto;font-family:var(--s)}
.tarifs td{text-align:right;color:var(--cream)}
.tarifs tr:last-child th,.tarifs tr:last-child td{border-bottom:0}
.fiche .dispo{font-size:13.5px;color:var(--brass);margin:0 0 20px}

@media (max-width:980px){
  .galerie{grid-template-columns:1fr}
  .fiche{position:static}
}


/* =========================================================================
   BARRE DE NAVIGATION — refonte
   Un îlot en pilule, une pastille qui glisse, un volet pour les ancres de la
   page et un menu plein écran. Piloté par app.js : le HTML ne change pas.
   ========================================================================= */

header.bar{background:linear-gradient(180deg,rgba(6,8,12,.94),rgba(7,9,13,.74));
  border-bottom:1px solid rgba(212,161,74,.12);
  transition:background .35s ease,border-color .35s ease,box-shadow .35s ease}
header.bar.filee{background:rgba(6,8,11,.95);border-bottom-color:rgba(212,161,74,.26);
  box-shadow:0 20px 44px -30px #000}
.bar .wrap{height:78px;gap:20px;transition:height .32s cubic-bezier(.22,1,.36,1)}
header.bar.filee .wrap{height:64px}

/* le liseré de lecture, posé sur la bordure basse */
.bar .progres{position:absolute;left:0;bottom:-1px;height:2px;width:0;z-index:3;
  background:linear-gradient(90deg,rgba(216,165,76,0),var(--brass) 22%,var(--brass2));
  box-shadow:0 0 14px rgba(216,165,76,.55);pointer-events:none}

/* le logo s'allume */
.logo{position:relative}
.logo .lamp{transition:transform .45s cubic-bezier(.22,1,.36,1),filter .45s ease}
.logo:hover .lamp{transform:translateY(-1px) rotate(-4deg);
  filter:drop-shadow(0 3px 12px rgba(216,165,76,.55))}

/* ---------- l'îlot ---------- */
nav.main{margin-left:auto;display:flex;align-items:center;gap:2px;position:relative;
  padding:5px;border-radius:999px;font-size:14px;
  background:rgba(247,243,234,.035);border:1px solid rgba(212,161,74,.15);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045)}
nav.main > a,.declic{position:relative;z-index:2;display:inline-flex;align-items:center;gap:7px;
  padding:9px 15px;border-radius:999px;background:none;border:0;cursor:pointer;
  font:500 14px/1 var(--s);letter-spacing:.01em;color:var(--muted);white-space:nowrap;
  transition:color .22s ease}
nav.main > a:hover,.declic:hover{color:var(--cream);text-decoration:none}
nav.main > a.actif,.groupe.actif .declic{color:#F6E6C2}
nav.main a:after{display:none}        /* l'ancien soulignement cède la place à la pastille */
.declic svg{width:9px;height:6px;opacity:.75;transition:transform .3s ease}
.groupe.deplie .declic svg{transform:rotate(180deg)}
.groupe.deplie .declic{color:var(--cream)}

/* la pastille qui suit le survol, puis revient sur la section lue */
.glisse{position:absolute;z-index:1;top:5px;bottom:5px;left:0;width:0;border-radius:999px;
  background:linear-gradient(180deg,rgba(241,209,153,.18),rgba(216,165,76,.09));
  border:1px solid rgba(216,165,76,.32);
  box-shadow:0 8px 20px -12px rgba(216,165,76,.9),inset 0 1px 0 rgba(255,255,255,.08);
  opacity:0;pointer-events:none;
  transition:transform .36s cubic-bezier(.22,1,.36,1),width .36s cubic-bezier(.22,1,.36,1),
    opacity .22s ease}
.glisse.vu{opacity:1}

/* ---------- le volet des ancres ---------- */
.groupe{position:relative;z-index:2}
.tiroir{position:absolute;top:calc(100% + 14px);left:-6px;min-width:252px;padding:9px;
  display:flex;flex-direction:column;gap:1px;border-radius:18px;
  background:linear-gradient(180deg,#141821,#0E1118);
  border:1px solid rgba(212,161,74,.2);
  box-shadow:0 34px 60px -28px #000,0 0 0 1px rgba(0,0,0,.4),
    inset 0 1px 0 rgba(255,255,255,.05);
  animation:tiroirEntre .26s cubic-bezier(.22,1,.36,1)}
.tiroir[hidden]{display:none}
.tiroir:before{content:"";position:absolute;top:-6px;left:28px;width:11px;height:11px;
  transform:rotate(45deg);background:#141821;
  border-left:1px solid rgba(212,161,74,.2);border-top:1px solid rgba(212,161,74,.2)}
.tiroir a{display:flex;align-items:center;gap:11px;padding:10px 13px;border-radius:12px;
  font:500 14px/1.3 var(--s);color:var(--muted);white-space:nowrap;
  transition:background .2s ease,color .2s ease}
.tiroir a:before{content:"";width:5px;height:5px;border-radius:50%;flex:0 0 5px;
  background:rgba(212,161,74,.35);transition:background .2s ease,box-shadow .2s ease}
.tiroir a:hover{background:rgba(212,161,74,.1);color:var(--cream);text-decoration:none}
.tiroir a:hover:before,.tiroir a.actif:before{background:var(--brass2);
  box-shadow:0 0 10px rgba(241,209,153,.8)}
.tiroir a.actif{color:#F6E6C2}
@keyframes tiroirEntre{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}

/* ---------- l'appel à l'action ---------- */
.bar .btn{white-space:nowrap;padding:12px 21px;font-size:13.8px;position:relative;overflow:hidden}
.bar .btn-p:before{content:"";position:absolute;top:0;left:-140%;width:55%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.42),transparent);
  transform:skewX(-18deg);pointer-events:none}
.bar .btn-p:hover:before{animation:lueur .8s ease}
@keyframes lueur{to{left:160%}}

/* ---------- le bouton du menu : deux traits qui se croisent ---------- */
.burger{position:relative;width:46px;height:46px;padding:0;border-radius:14px;
  background:rgba(247,243,234,.04);border:1px solid rgba(212,161,74,.22);color:var(--cream);
  transition:background .25s ease,border-color .25s ease}
.burger:hover{background:rgba(212,161,74,.1);border-color:rgba(212,161,74,.45)}
.burger svg{display:none}
.burger:before,.burger:after{content:"";position:absolute;left:50%;top:50%;height:1.7px;
  border-radius:2px;background:currentColor;
  transition:transform .34s cubic-bezier(.22,1,.36,1),width .34s cubic-bezier(.22,1,.36,1)}
.burger:before{width:19px;transform:translate(-50%,-50%) translateY(-5px)}
.burger:after{width:12px;transform:translate(-50%,-50%) translateY(5px)}
.burger[aria-expanded="true"]{background:rgba(212,161,74,.14);border-color:rgba(212,161,74,.5)}
.burger[aria-expanded="true"]:before{width:19px;transform:translate(-50%,-50%) rotate(45deg)}
.burger[aria-expanded="true"]:after{width:19px;transform:translate(-50%,-50%) rotate(-45deg)}

@media (max-width:1240px){
  nav.main{font-size:13.4px}
  nav.main > a,.declic{padding:9px 12px;font-size:13.4px}
}

/* ---------- menu plein écran ---------- */
@media (max-width:1060px){
  nav.main{display:none}
  .glisse{display:none}
  nav.main.open{display:flex;position:fixed;inset:0;flex-direction:column;justify-content:center;
    gap:0;padding:100px 7vw 48px;border:0;border-radius:0;box-shadow:none;font-size:16px;
    background:
      radial-gradient(900px 520px at 50% -6%,rgba(212,161,74,.17),transparent 70%),
      linear-gradient(180deg,#070910,#0B0E15 62%);
    z-index:70;overflow-y:auto}
  nav.main.open > *{opacity:0;transform:translateY(16px);
    animation:entreMenu .5s cubic-bezier(.22,1,.36,1) forwards}
  nav.main.open > a{display:flex;align-items:center;padding:16px 2px;border-radius:0;
    border-bottom:1px solid rgba(247,243,234,.07);color:var(--cream);white-space:normal;
    font-family:var(--d);font-weight:500;font-size:clamp(1.3rem,5vw,1.8rem);letter-spacing:-.015em}
  nav.main.open > a:hover,nav.main.open > a.actif{color:var(--brass2)}
  nav.main.open .groupe{position:static}
  nav.main.open .declic{display:none}
  nav.main.open .tiroir{position:static;min-width:0;padding:0 0 10px;margin:0;gap:2px;
    background:none;border:0;box-shadow:none;animation:none}
  nav.main.open .tiroir:before{display:none}
  nav.main.open .tiroir a{padding:11px 2px;border-radius:0;font-size:15px;color:var(--muted)}
  nav.main.open .tiroir a:hover,nav.main.open .tiroir a.actif{background:none;color:var(--brass2)}
  nav.main.open .cta-menu{margin-top:30px;justify-content:center;border:0;overflow:visible;
    font:600 15px/1 var(--s);color:#201604;padding:17px 24px;border-radius:999px;
    background:linear-gradient(180deg,var(--brass2),var(--brass));
    box-shadow:0 14px 34px -14px rgba(216,165,76,.7)}
  nav.main.open .menu-pied{margin-top:24px;text-align:center;font:500 10.5px/1.6 var(--s);
    letter-spacing:.2em;text-transform:uppercase;color:var(--muted2)}
  .burger{display:block;margin-left:auto;z-index:80}
  .bar .btn{display:inline-flex}
}
@keyframes entreMenu{to{opacity:1;transform:none}}
@media (max-width:620px){.bar .btn{display:none}}
body.fige{overflow:hidden}
@media (prefers-reduced-motion:reduce){
  .glisse,.bar .wrap,header.bar,.tiroir{transition:none;animation:none}
  nav.main.open > *{animation:none;opacity:1;transform:none}
}

/* les anciennes règles coupaient la barre dès 1120px : l'îlot tient plus longtemps */
@media (min-width:1061px){
  nav.main{display:flex}
  .burger{display:none}
  .bar .btn{display:inline-flex}
}

/* le bouton et la signature du menu n'existent que dans le menu plein écran */
nav.main > .cta-menu,nav.main > .menu-pied{display:none}
@media (max-width:1060px){
  nav.main.open .cta-menu{display:inline-flex}
  nav.main.open .menu-pied{display:block}
}

/* Le flou d'arrière-plan de la barre fait d'elle le cadre de référence des
   éléments fixés : le menu plein écran s'y retrouvait enfermé. On le retire
   le temps de l'ouverture, et le logo reste lisible au-dessus du menu. */
header.bar.menu-ouvert{backdrop-filter:none;-webkit-backdrop-filter:none;background:transparent;
  border-bottom-color:transparent;box-shadow:none}
header.bar.menu-ouvert .progres{opacity:0}
.bar .logo{position:relative;z-index:80}

/* ---------- ajustements du menu plein écran ---------- */
@media (max-width:1060px){
  nav.main.open{align-items:stretch;z-index:940}
  nav.main.open .tiroir:before{display:block;content:"Sur cette page";position:static;
    width:auto;height:auto;transform:none;background:none;border:0;
    font:600 10.5px/1 var(--s);letter-spacing:.18em;text-transform:uppercase;
    color:var(--brass);padding:2px 2px 12px}
  nav.main.open .tiroir a{color:var(--muted2)}
  .burger{z-index:950}
  .bar .logo{z-index:950}
  header.bar.menu-ouvert{z-index:945}
}

/* un menu plus haut que l'écran ne doit pas voir son premier lien rogné */
@media (max-width:1060px){
  nav.main.open{justify-content:center;justify-content:safe center}
}

/* =========================================================================
   FENÊTRE DE SORTIE — une dernière proposition avant de quitter la page
   ========================================================================= */
.so-fond{position:fixed;inset:0;z-index:960;display:flex;align-items:center;justify-content:center;
  padding:24px;overflow-y:auto;opacity:0;transition:opacity .3s ease;
  background:rgba(4,6,10,.72);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.so-fond.vu{opacity:1}
.so-carte{position:relative;width:100%;max-width:470px;padding:38px 38px 30px;border-radius:26px;
  text-align:center;transform:translateY(18px) scale(.97);transition:transform .38s cubic-bezier(.22,1,.36,1);
  background:
    radial-gradient(520px 260px at 50% -10%,rgba(212,161,74,.2),transparent 70%),
    linear-gradient(180deg,#151A24,#0C0F16);
  border:1px solid rgba(212,161,74,.26);
  box-shadow:0 50px 90px -40px #000,0 0 0 1px rgba(0,0,0,.5),
    inset 0 1px 0 rgba(255,255,255,.06)}
.so-fond.vu .so-carte{transform:none}
.so-carte:before{content:"";position:absolute;left:28%;right:28%;top:-1px;height:1px;
  background:linear-gradient(90deg,transparent,var(--brass2),transparent)}

.so-ferme{position:absolute;top:14px;right:14px;width:36px;height:36px;display:grid;
  place-items:center;border-radius:11px;background:none;border:1px solid transparent;
  color:var(--muted);cursor:pointer;transition:color .2s ease,background .2s ease,border-color .2s ease}
.so-ferme:hover{color:var(--cream);background:rgba(248,245,238,.07);border-color:var(--line2)}
.so-ferme svg{width:14px;height:14px}

.so-sur{margin:0 0 12px;font:600 11px/1 var(--s);letter-spacing:.2em;text-transform:uppercase;
  color:var(--brass)}
.so-carte h2{font-size:clamp(1.5rem,3.6vw,1.95rem);margin:0 0 14px;line-height:1.14}
.so-corps{margin:0 auto 24px;max-width:38ch;color:#C7CEDB;font-size:15px;line-height:1.65}

.so-form{display:flex;flex-direction:column;gap:10px;text-align:left}
.so-form input{width:100%;padding:14px 16px;border-radius:14px;font:400 15px/1.4 var(--s);
  color:var(--cream);background:rgba(10,12,17,.75);border:1px solid var(--line2);
  transition:border-color .2s ease,background .2s ease}
.so-form input::placeholder{color:var(--muted2)}
.so-form input:focus{outline:none;border-color:rgba(212,161,74,.55);background:rgba(10,12,17,.95)}
.so-form button[type=submit]{margin-top:6px;padding:16px 22px;border:0;border-radius:999px;
  cursor:pointer;font:600 15px/1 var(--s);color:#201604;
  background:linear-gradient(180deg,var(--brass2),var(--brass));
  box-shadow:0 16px 36px -16px rgba(216,165,76,.75);
  transition:transform .15s ease,box-shadow .2s ease}
.so-form button[type=submit]:hover:not(:disabled){transform:translateY(-1px);
  box-shadow:0 22px 44px -18px rgba(216,165,76,.9)}
.so-form button[type=submit]:disabled{opacity:.6;cursor:progress}
.so-erreur{margin:2px 0 0;font-size:13px;color:#EDBDB4}
.so-erreur[hidden]{display:none}

.so-note{margin:16px 0 0;font-size:11.5px;line-height:1.55;color:var(--muted2)}
.so-passe{margin-top:4px;background:none;border:0;cursor:pointer;color:var(--muted2);
  font:500 13px/1.4 var(--s);text-decoration:underline;text-underline-offset:3px;
  transition:color .2s ease}
.so-passe:hover{color:var(--muted)}

.so-coche{width:62px;height:62px;margin:4px auto 20px;border-radius:50%;display:grid;
  place-items:center;color:var(--brass2);background:rgba(212,161,74,.12);
  border:1px solid rgba(212,161,74,.4)}
.so-coche svg{width:28px;height:28px}
.so-merci{padding-bottom:34px}

@media (max-width:560px){
  .so-fond{padding:16px;align-items:flex-end}
  .so-carte{padding:32px 22px 26px;border-radius:24px}
}
@media (prefers-reduced-motion:reduce){
  .so-fond,.so-carte{transition:none}
}
