:root{
  /* ===== Palette : Blanc · Anthracite · Or (60-30-10) ===== */
  --paper:#ffffff;          /* 60 % BLANC — fond dominant */
  --paper-raise:#f6f6f7;    /* surfaces surélevées (gris très clair) */
  --panel:#23272e;          /* 30 % ANTHRACITE — surfaces structurelles */
  --panel-2:#2e333b;
  --gold:#a9842f;           /* 10 % OR — CTA, accents */
  --gold-soft:#cda65c;
  /* dégradés */
  --grad-anthracite:linear-gradient(150deg,#30353d 0%,#15171b 100%);
  --grad-gold:linear-gradient(120deg,#d6b063 0%,#a9842f 100%);
  /* alias sémantiques */
  --neutral:#ffffff;
  --secondary:#23272e;
  --accent:#a9842f;
  /* ===== Hiérarchie d'emphase par opacité (cf. ADR-009) ===== */
  --em-100:#1d2127;                                        /* titres */
  --em-70:color-mix(in srgb, #1d2127 72%, transparent);   /* sous-titres & corps */
  --em-30:color-mix(in srgb, #1d2127 30%, transparent);   /* méta décoratif */
  --ink:var(--em-100);      /* titres */
  --ink-2:var(--em-70);     /* sous-titres + corps de texte */
  --ink-3:color-mix(in srgb, #1d2127 54%, transparent);  /* méta fonctionnel */
  --line:#e7e7ea;
  --line-2:#d4d4d9;
  --cream:#fffdf8;
  --serif:"Source Serif 4",Georgia,serif;
  --sans:"Archivo",-apple-system,BlinkMacSystemFont,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;
  --shell:1280px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--serif);
  font-size:18px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none;}
p{font-family:var(--sans);}
img{display:block;max-width:100%;}
.shell{max-width:var(--shell);margin:0 auto;padding:0 40px;}

.kicker{
  font-family:var(--mono);
  font-size:11.5px;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--gold);
}
.label{
  font-family:var(--sans);
  font-size:12px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ink-2);
}

/* ---------- ticker ---------- */
.ticker{display:none;}
.ticker-in{
  max-width:var(--shell);margin:0 auto;padding:9px 40px;
  display:flex;align-items:center;gap:18px;
  font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;
}
.dot{width:7px;height:7px;border-radius:50%;background:var(--gold-soft);flex:none;
  box-shadow:0 0 0 0 rgba(184,154,94,.6);animation:pulse 2.4s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(184,154,94,.5);}70%{box-shadow:0 0 0 7px rgba(184,154,94,0);}100%{box-shadow:0 0 0 0 rgba(184,154,94,0);}}
.ticker .spacer{flex:1;}
.ticker .muted{color:#8a8576;}
@media(max-width:680px){.ticker .spacer,.ticker .right-tick{display:none;}}

/* ---------- nav ---------- */
.nav{
  position:sticky;top:0;z-index:60;
  background:color-mix(in srgb,var(--paper) 88%, transparent);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--line);
}
.nav-in{max-width:var(--shell);margin:0 auto;padding:18px 40px;
  display:flex;align-items:center;gap:36px;position:relative;}
.brand{display:inline-flex;flex-direction:column;line-height:1;gap:4px;}
.brand .bk{font-family:var(--serif);font-weight:600;font-size:21px;letter-spacing:-.01em;color:var(--ink);}
.brand .bp{font-family:var(--sans);font-weight:600;font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold);}
.nav-links{display:flex;align-items:center;gap:28px;margin-left:8px;}
@media(min-width:921px){.nav-links{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;gap:34px;}}
.nav-links a{font-family:var(--sans);font-size:14px;font-weight:500;color:var(--ink-2);
  padding:4px 0;border-bottom:1.5px solid transparent;transition:color .18s,border-color .18s;}
.nav-links a:hover{color:var(--ink);}
.nav-links a.active{color:var(--ink);border-color:var(--gold);}
.nav-spacer{flex:1;}
.btn{
  font-family:var(--sans);font-size:13.5px;font-weight:600;letter-spacing:.02em;
  display:inline-flex;align-items:center;gap:9px;cursor:pointer;border:1px solid transparent;
  transition:background .18s,color .18s,border-color .18s,transform .18s;
}
.btn-solid{background:var(--grad-gold);color:#fff;padding:11px 20px;border-radius:2px;box-shadow:0 10px 24px -14px rgba(169,132,47,.8);}
.btn-solid:hover{filter:brightness(1.06);}
.btn-gold{background:var(--grad-gold);color:#fff;padding:11px 20px;border-radius:2px;box-shadow:0 10px 24px -14px rgba(169,132,47,.8);}
.btn-gold:hover{filter:brightness(1.06);}
.btn-ghost{background:transparent;color:var(--ink);padding:11px 20px;border:1px solid var(--line-2);border-radius:2px;}
.btn-ghost:hover{border-color:var(--ink);}
.menu-toggle{display:none;background:none;border:0;font-family:var(--sans);font-size:13px;font-weight:600;cursor:pointer;}
@media(max-width:920px){
  .nav-links{display:none;}
  .menu-toggle{display:inline-block;}
  .nav-links.open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;
    align-items:flex-start;gap:0;background:var(--paper-raise);border-bottom:1px solid var(--line);padding:8px 40px 20px;}
  .nav-links.open a{padding:12px 0;width:100%;border-bottom:1px solid var(--line);}
}

/* ---------- hero (home) ---------- */
.hero{padding:64px 0 24px;}
.hero-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:56px;align-items:start;}
.h1{
  font-family:var(--serif);font-weight:700;
  font-size:clamp(46px,6.2vw,84px);line-height:.98;letter-spacing:-.022em;
  margin:18px 0 0;
}
.h1 .it{font-style:italic;font-weight:600;color:var(--gold);}
.lead{font-size:20px;line-height:1.55;color:var(--ink-2);max-width:38ch;margin-top:24px;}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px;}
.feature{margin-top:40px;position:relative;border-radius:3px;overflow:hidden;
  box-shadow:0 24px 50px -32px rgba(27,32,38,.5);}
.ph{
  position:relative;background:
    repeating-linear-gradient(135deg,#cfc8b8 0 1px,transparent 1px 11px),
    linear-gradient(160deg,#21262c,#2f353d);
  color:#cfc7b6;display:flex;align-items:flex-end;
}
.ph .ph-tag{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  position:absolute;top:16px;left:18px;color:#b7af9d;}
.feature .ph{aspect-ratio:16/9;}
.feature .ph.has-img{background:none;}
.feature .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:1;}
.feature .ph .cap{z-index:2;}
.feature .ph .ph-credit{top:12px;right:12px;bottom:auto;}
.feature .cap{position:relative;z-index:2;padding:28px;color:#f3efe6;
  background:linear-gradient(180deg,transparent,rgba(20,24,28,.82) 62%);width:100%;}
.feature .cap .ek{color:var(--gold-soft);}
.feature .cap h3{font-family:var(--serif);font-weight:600;font-size:26px;line-height:1.15;margin-top:8px;}

/* sidebar */
.side{display:flex;flex-direction:column;gap:30px;}
.panel-tonal{background:var(--paper-raise);border:1px solid var(--line);border-radius:3px;padding:26px 26px 12px;}
.side-head{display:flex;align-items:baseline;justify-content:space-between;
  border-bottom:1.5px solid var(--ink);padding-bottom:12px;margin-bottom:6px;}
.side-head .t{font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;}
.steplist{list-style:none;}
.steplist li{display:grid;grid-template-columns:auto 1fr;gap:18px;padding:18px 0;border-bottom:1px solid var(--line);}
.steplist li:last-child{border-bottom:0;}
.steplist .n{font-family:var(--mono);font-size:13px;color:var(--gold);padding-top:3px;}
.steplist h4{font-family:var(--serif);font-weight:600;font-size:20px;line-height:1.2;}
.steplist p{font-size:15px;line-height:1.5;color:var(--ink-2);margin-top:5px;}

.chips-wrap .label{margin-bottom:13px;}
.chips{display:flex;flex-wrap:wrap;gap:9px;}
.chip{font-family:var(--sans);font-size:13px;color:var(--ink);border:1px solid var(--line-2);
  padding:7px 13px;border-radius:2px;transition:background .15s,border-color .15s;cursor:pointer;background:var(--paper-raise);}
.chip:hover{border-color:var(--gold);color:var(--gold);}

.panel-dark{background:var(--grad-anthracite);color:#ece7da;border-radius:3px;padding:30px 28px;}
.panel-dark .ek{color:var(--gold-soft);}
.panel-dark h3{font-family:var(--serif);font-weight:600;font-size:24px;line-height:1.18;margin:10px 0 12px;}
.panel-dark p{font-size:15px;line-height:1.55;color:#b6b1a4;margin-bottom:20px;}
.panel-dark .btn-gold{width:100%;justify-content:center;}

/* ---------- stats ---------- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:56px;}
.stat{padding:30px 8px 30px 0;display:flex;flex-direction:column;gap:4px;}
.stat + .stat{padding-left:34px;border-left:1px solid var(--line);}
.stat b{font-family:var(--serif);font-weight:700;font-size:46px;line-height:1;letter-spacing:-.02em;}
.stat span{font-family:var(--sans);font-size:13.5px;color:var(--ink-2);}
@media(max-width:760px){.stats{grid-template-columns:1fr;}.stat+.stat{padding-left:0;border-left:0;border-top:1px solid var(--line);padding-top:24px;}}

/* ---------- section frame ---------- */
.sec{padding:84px 0;}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:40px;}
.sec-head h2{font-family:var(--serif);font-weight:600;font-size:clamp(28px,3.6vw,42px);letter-spacing:-.018em;line-height:1.05;}
.sec-head .more{font-family:var(--sans);font-size:13.5px;font-weight:600;color:var(--ink-2);display:inline-flex;gap:8px;align-items:center;}
.sec-head .more:hover{color:var(--gold);}
.divider{height:1px;background:var(--line);}

/* ---------- report cards ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;}
.card{display:flex;flex-direction:column;}
.card .ph{aspect-ratio:4/3;border-radius:3px;margin-bottom:18px;}
.card .ph.has-img{background:none;position:relative;overflow:hidden;}
.card .ph img{width:100%;height:100%;object-fit:cover;display:block;}
.ph-slot{align-items:center !important;justify-content:center;text-align:center;
  background:var(--grad-anthracite) !important;
  border:1px dashed rgba(205,166,92,.45);}
.ph-slot .ph-slot-tag{position:absolute;top:14px;left:0;right:0;text-align:center;
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-soft);}
.ph-slot .ph-slot-label{font-family:var(--serif);font-size:16px;color:#cfc7b6;padding:0 18px;line-height:1.35;}
.ph-slot::after{content:"";position:absolute;top:50%;left:50%;width:34px;height:28px;margin:-26px 0 0 -17px;
  border:1.5px solid rgba(207,199,182,.5);border-radius:3px;
  background:radial-gradient(circle at 70% 38%,rgba(207,199,182,.5) 3px,transparent 3.5px);}
.card .meta{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.card .meta .rd{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);}
.card h3{font-family:var(--serif);font-weight:600;font-size:23px;line-height:1.18;letter-spacing:-.01em;}
.card p{font-size:16px;line-height:1.5;color:var(--ink-2);margin-top:10px;}
.card .rev{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);display:flex;align-items:baseline;gap:8px;}
.card .rev b{font-family:var(--serif);font-weight:700;font-size:26px;}
.card .rev span{font-family:var(--sans);font-size:13px;color:var(--ink-2);}
@media(max-width:900px){.cards{grid-template-columns:1fr;gap:44px;}}

/* ---------- calculator (modernisé) ---------- */
.calc-sec{background:var(--paper-raise);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.calc{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--paper);box-shadow:0 24px 60px -34px rgba(27,32,38,.45);}
.calc-form{padding:clamp(30px,3.4vw,46px);}
.calc-form h3{font-family:var(--serif);font-weight:600;font-size:22px;margin-bottom:6px;}
.calc-form .hint{font-size:15px;color:var(--ink-2);margin-bottom:26px;}
.fld{margin-bottom:26px;}
.fld > label{display:block;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin-bottom:10px;}
select.ctrl,input.ctrl,textarea.ctrl{width:100%;font-family:var(--serif);font-size:17px;color:var(--ink);background:transparent;
  border:0;border-bottom:1.5px solid var(--line-2);padding:9px 2px;border-radius:0;outline:none;}
select.ctrl{cursor:pointer;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239c7c3c' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center;}
textarea.ctrl{resize:vertical;min-height:96px;line-height:1.5;}
select.ctrl:focus,input.ctrl:focus,textarea.ctrl:focus{border-color:var(--gold);}
input.ctrl::placeholder,textarea.ctrl::placeholder{color:var(--ink-3);}
.type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.type-chip{font-family:var(--sans);font-size:13.5px;font-weight:600;color:var(--ink);background:var(--paper-raise);
  border:1px solid var(--line-2);padding:12px 6px;border-radius:12px;cursor:pointer;transition:all .18s ease;}
.type-chip:hover{border-color:var(--gold);background:#fff;}
.type-chip.on{background:var(--ink);color:var(--cream);border-color:var(--ink);box-shadow:0 8px 20px -10px rgba(27,32,38,.6);}
.calc-btn{margin-top:10px;width:100%;justify-content:center;padding:16px 22px;border-radius:100px;font-size:14.5px;
  background:var(--grad-gold);border:0;color:#fff;
  box-shadow:0 14px 32px -14px rgba(169,132,47,.85);transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,filter .25s;}
.calc-btn:hover{filter:brightness(1.07);transform:translateY(-2px);box-shadow:0 18px 38px -14px rgba(169,132,47,.95);}
.calc-btn:active{transform:translateY(0);}
.calc-out{background:var(--grad-anthracite);color:#ece7da;padding:clamp(30px,3.4vw,46px);display:flex;flex-direction:column;justify-content:center;}
.calc-out .empty{font-family:var(--sans);font-size:14px;color:#8a8576;letter-spacing:.04em;}
.res-eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-soft);}
.res-eyebrow b{color:#ece7da;font-weight:500;}
.res-range{display:flex;align-items:baseline;gap:10px;margin:14px 0 6px;}
.res-range .mid{font-family:var(--serif);font-weight:700;font-size:60px;line-height:1;letter-spacing:-.02em;
  background:var(--grad-gold);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.res-range .per{font-family:var(--sans);font-size:15px;color:#b6b1a4;}
.res-band{font-size:15px;color:#b6b1a4;}
.res-band b{color:#ece7da;font-weight:600;}
.res-meta{display:flex;gap:34px;margin-top:24px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);}
.res-meta b{font-family:var(--serif);font-weight:700;font-size:24px;display:block;}
.res-meta span{font-family:var(--sans);font-size:12.5px;color:#9b968a;}
.res-cta{margin-top:24px;}
@media(max-width:820px){.calc{grid-template-columns:1fr;}}

/* ---------- zones (home) ---------- */
.zone-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.zone{display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:center;border:1px solid var(--line);
  border-radius:3px;padding:32px 34px;background:var(--paper-raise);transition:border-color .18s,transform .18s;}
.zone:hover{border-color:var(--gold);}
.zone .code{font-family:var(--serif);font-weight:700;font-size:64px;line-height:1;color:var(--gold);letter-spacing:-.02em;}
.zone .zn{font-family:var(--serif);font-weight:600;font-size:26px;}
.zone .zm{font-family:var(--sans);font-size:14px;color:var(--ink-2);margin-top:4px;}
.zone .go{font-family:var(--sans);font-size:13.5px;font-weight:600;color:var(--gold);margin-top:14px;display:inline-flex;gap:8px;}
@media(max-width:820px){.zone-grid{grid-template-columns:1fr;}}

/* ---------- final band ---------- */
.final{position:relative;color:#f1ecdf;overflow:hidden;
  background-image:linear-gradient(90deg,rgba(21,23,27,.94) 0%,rgba(21,23,27,.76) 48%,rgba(35,39,46,.52) 100%),url("../images/neuilly-folie.jpg");
  background-size:cover;background-position:center;}
.final::after{content:"\00A9 Moonik / Wikimedia Commons (CC BY-SA 3.0) \00B7 Folie Saint-James, Neuilly-sur-Seine";
  position:absolute;bottom:10px;left:22px;font-family:var(--mono);font-size:9.5px;letter-spacing:.03em;
  color:rgba(244,241,234,.6);pointer-events:none;}
.final-in{position:relative;z-index:1;max-width:var(--shell);margin:0 auto;padding:84px 40px;display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;}
.final h2{font-family:var(--serif);font-weight:600;font-size:clamp(30px,4vw,48px);letter-spacing:-.02em;line-height:1.05;max-width:18ch;}
.final .ek{color:var(--gold-soft);margin-bottom:14px;display:block;}
.final .btn-gold{padding:15px 26px;font-size:15px;}

/* ---------- footer ---------- */
footer{background:var(--paper);border-top:1px solid var(--line);}
.foot-in{max-width:var(--shell);margin:0 auto;padding:72px 40px 40px;
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:44px;}
.foot-brand .fb{font-family:var(--serif);font-weight:600;font-size:24px;line-height:1.1;}
.foot-brand p{font-size:15px;color:var(--ink-2);margin:16px 0 22px;max-width:32ch;line-height:1.55;}
.foot-col h4{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin-bottom:16px;}
.foot-col a{display:block;font-size:15px;color:var(--ink-2);padding:5px 0;transition:color .15s;}
.foot-col a:hover{color:var(--gold);}
.communes-col .cd-head{display:flex;align-items:baseline;justify-content:space-between;
  padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--line);}
.communes-col .cd-dept{font-family:var(--serif);font-weight:600;font-size:18px;color:var(--ink);}
.communes-col .cd-code{font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--gold);}
.communes-col .cd-links{display:grid;grid-template-columns:1fr 1fr;gap:2px 18px;}
.communes-col .cd-links a{font-size:13.5px;color:var(--ink-2);padding:4px 0;
  border-bottom:1px solid transparent;transition:color .14s,border-color .14s;}
.communes-col .cd-links a:hover{color:var(--gold);border-bottom-color:var(--gold-soft);}
.foot-base{max-width:var(--shell);margin:0 auto;padding:24px 40px;border-top:1px solid var(--line);
  display:flex;align-items:center;gap:18px;font-family:var(--sans);font-size:13px;color:var(--ink-3);flex-wrap:wrap;}
.foot-base .spacer{flex:1;}
.foot-base a:hover{color:var(--gold);}
@media(max-width:980px){.foot-in{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.foot-in{grid-template-columns:1fr;}.shell{padding:0 22px;}.nav-in,.ticker-in,.final-in,.foot-in,.foot-base{padding-left:22px;padding-right:22px;}}
@media(max-width:980px){.hero-grid{grid-template-columns:1fr;gap:44px;}}

/* ---------- breadcrumb ---------- */
.breadcrumb{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);
  display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.breadcrumb a{color:var(--ink-2);}
.breadcrumb a:hover{color:var(--gold);}
.breadcrumb .sep{color:var(--line-2);}
.breadcrumb b{color:var(--ink);font-weight:500;}

/* ---------- page hero (sub-pages) ---------- */
.page-hero{padding:48px 0 0;}
.ph-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:56px;align-items:end;margin-top:26px;}
@media(max-width:980px){.ph-grid{grid-template-columns:1fr;gap:30px;}}
.page-hero h1{font-family:var(--serif);font-weight:700;font-size:clamp(42px,5.4vw,76px);line-height:.98;letter-spacing:-.022em;margin-top:16px;}
.page-hero .lead{margin-top:20px;}
.page-hero .ph{aspect-ratio:16/10;border-radius:3px;overflow:hidden;position:relative;}
.page-hero .ph.has-img{background:none;}
.page-hero .ph img{width:100%;height:100%;object-fit:cover;display:block;}
.ph-credit{position:absolute;bottom:8px;right:10px;font-family:var(--mono);font-size:9.5px;letter-spacing:.03em;
  color:#fff;background:rgba(20,24,28,.58);padding:3px 7px;border-radius:2px;max-width:80%;text-align:right;line-height:1.3;}

/* ---------- commune listing grid (zone pages) ---------- */
.commune-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--line);}
.commune-card{background:var(--paper-raise);padding:24px 26px;display:flex;flex-direction:column;gap:4px;transition:background .15s;}
.commune-card:hover{background:#fff;}
.commune-card .cn{font-family:var(--serif);font-weight:600;font-size:21px;line-height:1.15;letter-spacing:-.01em;}
.commune-card .ci{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-top:2px;}
.commune-card .cr{margin-top:14px;display:flex;align-items:baseline;gap:7px;}
.commune-card .cr b{font-family:var(--serif);font-weight:700;font-size:22px;}
.commune-card .cr span{font-family:var(--sans);font-size:12.5px;color:var(--ink-2);}
.commune-card .cg{font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--gold);margin-top:12px;}
@media(max-width:880px){.commune-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.commune-grid{grid-template-columns:1fr;}}

/* ---------- city market ---------- */
.market{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.market .copy p{margin-bottom:16px;color:var(--ink-2);font-size:18px;}
.market .copy p:first-child{color:var(--ink);font-size:20px;}
.city-points{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px;}
.city-points li{position:relative;padding-left:20px;color:var(--ink-2);font-size:16px;line-height:1.5;}
.city-points li::before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;border-radius:50%;background:var(--gold-soft);}
.city-wiki{margin-top:18px;font-size:15px;color:var(--ink-2);}
.city-wiki a{color:var(--gold);text-decoration:underline;text-underline-offset:2px;}
.city-wiki a:hover{color:var(--gold-soft);}
.market .ph{aspect-ratio:4/3;border-radius:3px;overflow:hidden;}
@media(max-width:880px){.market{grid-template-columns:1fr;gap:28px;}}

/* ---------- related communes ---------- */
.related{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.related a{font-family:var(--sans);font-size:14px;border:1px solid var(--line-2);background:var(--paper-raise);
  padding:14px 16px;border-radius:2px;display:flex;justify-content:space-between;align-items:center;gap:10px;transition:border-color .15s,color .15s;}
.related a:hover{border-color:var(--gold);color:var(--gold);}
.related a span{font-family:var(--mono);font-size:11px;color:var(--ink-3);}
@media(max-width:880px){.related{grid-template-columns:repeat(2,1fr);}}
@media(max-width:480px){.related{grid-template-columns:1fr;}}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:0;border:1px solid var(--line);border-radius:3px;overflow:hidden;}
.contact-form{padding:44px;background:var(--paper);}
.contact-form .row{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.contact-aside{padding:44px;background:var(--grad-anthracite);color:#ece7da;}
.contact-aside h3{font-family:var(--serif);font-weight:600;font-size:24px;margin-bottom:18px;}
.contact-aside .ci-item{padding:18px 0;border-bottom:1px solid rgba(255,255,255,.12);}
.contact-aside .ci-item:last-child{border-bottom:0;}
.contact-aside .ci-item .l{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-soft);}
.contact-aside .ci-item .v{font-family:var(--serif);font-size:20px;margin-top:5px;}
.contact-aside .ci-item .v.small{font-size:16px;color:#b6b1a4;}
.form-note{font-family:var(--sans);font-size:13px;color:var(--ink-3);margin-top:18px;}
.form-sent{font-family:var(--sans);font-size:14px;color:var(--gold);margin-top:18px;display:none;}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr;}.contact-form .row{grid-template-columns:1fr;gap:0;}}

/* ---------- cartes interactives ---------- */
.leaflet-map{width:100%;height:100%;border-radius:3px;background:#eceae3;z-index:1;}
.leaflet-map.tall{height:460px;}
.cpo-pin{width:16px;height:16px;border-radius:50%;background:#1f8a4c;border:2.5px solid #fff;
  box-shadow:0 1px 4px rgba(27,32,38,.45);transition:transform .15s,background .15s;}
.cpo-pin.active{background:#14633a;transform:scale(1.35);}
.leaflet-popup-content-wrapper{border-radius:3px;box-shadow:0 10px 30px -12px rgba(27,32,38,.5);}
.leaflet-popup-content{margin:13px 16px;}
.map-pop .mi{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:4px;}
.map-pop b{font-family:var(--serif);font-weight:600;font-size:18px;color:var(--ink);}
.map-pop a{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--gold);display:inline-block;margin-top:7px;}

/* directory (annuaire) */
.directory{display:grid;grid-template-columns:1fr 1.15fr;gap:32px;align-items:start;}
.dir-list{max-height:560px;overflow:auto;border:1px solid var(--line);border-radius:3px;background:var(--paper-raise);}
.dir-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 18px;border-bottom:1px solid var(--line);transition:background .15s;}
.dir-row:last-child{border-bottom:0;}
.dir-row:hover{background:#fff;}
.dir-row.on{background:#fff;box-shadow:inset 3px 0 0 var(--gold);}
.dir-name{font-family:var(--serif);font-weight:600;font-size:18px;line-height:1.1;letter-spacing:-.01em;}
.dir-meta{font-family:var(--sans);font-size:12.5px;color:var(--ink-2);margin-top:3px;}
.dir-actions{display:flex;gap:8px;flex:none;}
.dir-btn{font-family:var(--sans);font-size:12.5px;font-weight:600;padding:8px 13px;border:1px solid var(--line-2);
  border-radius:2px;background:transparent;color:var(--ink);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px;}
.dir-btn:hover{border-color:var(--gold);color:var(--gold);}
.dir-btn.solid{background:var(--ink);color:var(--cream);border-color:var(--ink);}
.dir-btn.solid:hover{background:var(--gold);border-color:var(--gold);color:#fff;}

/* ---------- Instrument Serif — titres ---------- */
@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;
  src:url("../fonts/InstrumentSerif-Regular.ttf") format("truetype");}
@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;
  src:url("../fonts/InstrumentSerif-Italic.ttf") format("truetype");}
:root{--display:"Instrument Serif",Georgia,serif;}
.h1,.hero-main h1,.page-hero h1,.sec-head h2,.card h3,.zn,.zone .zn,.dir-name,.commune-card .cn,
.final h2,.steplist h4,.panel-dark h3,.calc-form h3,.contact-aside h3,.foot-brand .fb,
.res-range .mid,.stat b,.market .copy p:first-child,.brand{
  font-family:var(--display);font-weight:400;letter-spacing:-.005em;}
.h1,.page-hero h1{font-weight:400;letter-spacing:-.01em;}
.dir-map{position:sticky;top:92px;height:560px;}
@media(max-width:880px){.directory{grid-template-columns:1fr;}.dir-map{position:static;height:380px;}.dir-list{max-height:420px;}}
@media(max-width:520px){.dir-row{flex-direction:column;align-items:flex-start;gap:12px;}}

/* ---------- calculateur adresse (autocomplétion) ---------- */
.addr-field{position:relative;}
.addr-suggest{display:none;position:absolute;left:0;right:0;top:100%;margin-top:6px;z-index:40;
  background:var(--paper-raise);border:1px solid var(--line-2);border-radius:3px;overflow:hidden;
  box-shadow:0 22px 44px -22px rgba(20,24,28,.5);max-height:280px;overflow-y:auto;}
.addr-opt{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;cursor:pointer;
  border:0;background:none;padding:11px 15px;border-bottom:1px solid var(--line);transition:background .12s;}
.addr-opt:last-child{border-bottom:0;}
.addr-opt:hover,.addr-opt.on{background:#fff;}
.addr-opt .ao-t{font-family:var(--serif);font-size:16px;color:var(--ink);line-height:1.25;}
.addr-opt .ao-c{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);}
.addr-note{font-family:var(--sans);font-size:12.5px;color:var(--ink-3);margin-top:9px;min-height:1em;}
.addr-note .addr-load{color:var(--gold);}
.addr-fb{border:0;background:none;color:var(--gold);font-family:var(--sans);font-size:12.5px;font-weight:600;cursor:pointer;text-decoration:underline;padding:0;}
.res-addr{font-family:var(--sans);font-size:13.5px;color:#cfc9bb;margin:14px 0 2px;display:flex;gap:7px;align-items:baseline;line-height:1.4;}
.res-addr span{color:var(--gold-soft);}
.res-meta{flex-wrap:wrap;}

/* ---------- étapes (sections pleine largeur) ---------- */
.steps-row{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--paper-raise);}
.step-cell{padding:34px 32px 38px;border-right:1px solid var(--line);position:relative;}
.step-cell:last-child{border-right:0;}
.step-cell .sn{font-family:var(--mono);font-size:13px;color:var(--gold);letter-spacing:.06em;}
.step-cell h3{font-family:var(--display,var(--serif));font-weight:400;font-size:25px;line-height:1.15;margin:16px 0 10px;letter-spacing:-.01em;}
.step-cell p{font-size:16px;line-height:1.55;color:var(--ink-2);}
.steps-row .step-cell .kicker{display:block;margin-bottom:14px;}
@media(max-width:820px){.steps-row{grid-template-columns:1fr;}.step-cell{border-right:0;border-bottom:1px solid var(--line);}.step-cell:last-child{border-bottom:0;}}

/* ---------- « Comment ça marche » : panneaux interactifs (partagé) ---------- */
.proc{display:flex;gap:14px;margin-top:30px;align-items:stretch;}
.proc-card{position:relative;flex:1 1 0;min-width:0;cursor:pointer;overflow:hidden;
  background:var(--paper-raise);border:1px solid var(--line);border-radius:16px;
  padding:26px 26px 30px;
  transition:flex-grow .6s cubic-bezier(.22,1,.36,1),background .45s ease,border-color .45s ease,box-shadow .45s ease;
  will-change:flex-grow;}
.proc-card.on{flex-grow:2.6;background:var(--panel);border-color:var(--panel);
  box-shadow:0 26px 60px -34px rgba(27,32,38,.6);}
.pc-top{display:flex;align-items:center;gap:14px;}
.pc-num{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--ink-2);transition:color .45s ease;}
.pc-tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;
  color:var(--gold-soft);opacity:0;transform:translateX(-8px);transition:opacity .45s ease,transform .5s cubic-bezier(.22,1,.36,1);}
.proc-card.on .pc-num{color:var(--gold-soft);}
.proc-card.on .pc-tag{opacity:1;transform:none;}
.pc-title{font-family:var(--serif);font-weight:600;font-size:23px;margin-top:18px;
  color:var(--ink);transition:color .45s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.proc-card.on .pc-title{color:#f7f3ea;}
.pc-detail{max-height:0;opacity:0;overflow:hidden;
  transition:max-height .6s cubic-bezier(.22,1,.36,1),opacity .5s ease .05s,margin-top .5s ease;}
.proc-card.on .pc-detail{max-height:200px;opacity:1;margin-top:12px;}
.pc-detail p{color:#e4ded2;font-size:15px;line-height:1.6;}
.pc-bar{position:absolute;left:26px;right:26px;bottom:20px;height:2px;border-radius:2px;
  background:var(--line-2);transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.22,1,.36,1),background .45s ease;}
.proc-card.on .pc-bar{transform:scaleX(1);background:linear-gradient(90deg,var(--gold-soft),var(--gold));}
/* tablette : colonnes repliées trop étroites → bascule en accordéon vertical */
@media(max-width:900px){
  .proc{flex-direction:column;gap:10px;}
  .proc-card{flex:none;padding:22px 22px 24px;}
  .proc-card.on{flex:none;}
  .pc-title{white-space:normal;overflow:visible;margin-top:14px;}
  .pc-bar{position:static;display:block;margin-top:18px;left:auto;right:auto;}
  .pc-detail{max-height:0;}
  .proc-card.on .pc-detail{max-height:240px;}
}
@media(prefers-reduced-motion:reduce){
  .proc-card,.pc-detail,.pc-bar,.pc-tag,.pc-title,.pc-num{transition:none!important;}
}

/* ---------- renvoi inter-département ---------- */
.cross{display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center;
  border:1px solid var(--line);border-radius:3px;padding:32px 36px;background:var(--paper-raise);transition:border-color .18s;}
.cross:hover{border-color:var(--gold);}
.cross .cc{font-family:var(--display,var(--serif));font-weight:400;font-size:60px;line-height:1;color:var(--gold);}
.cross .cn{font-family:var(--display,var(--serif));font-weight:400;font-size:26px;}
.cross .cm{font-family:var(--sans);font-size:14px;color:var(--ink-2);margin-top:3px;}
.cross .cgo{font-family:var(--sans);font-size:13.5px;font-weight:600;color:var(--gold);display:inline-flex;gap:8px;align-items:center;white-space:nowrap;}
@media(max-width:600px){.cross{grid-template-columns:auto 1fr;}.cross .cgo{grid-column:1/3;}}

/* ---------- contact : horaires + état succès ---------- */
.hours{display:flex;gap:0;border:1px solid var(--line);border-radius:3px;overflow:hidden;margin-top:28px;background:var(--paper-raise);max-width:520px;}
.hours .slot{flex:1;display:flex;flex-direction:column;gap:4px;padding:16px 20px;border-right:1px solid var(--line);}
.hours .slot:last-child{border-right:0;}
.hours .slot .d{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);}
.hours .slot .t{font-family:var(--display,var(--serif));font-weight:400;font-size:22px;color:var(--ink);}
.hours .slot .t.closed{color:var(--ink-3);}
.assurance{font-family:var(--sans);font-size:13px;color:var(--ink-3);line-height:1.5;max-width:34ch;}
.submit-row{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:6px;}
.ctrl.err{box-shadow:inset 0 0 0 1px #c98a6a;border-color:#c98a6a;}
.contact-done{display:none;align-items:center;gap:22px;padding:30px 32px;border:1px solid var(--gold);border-radius:3px;background:var(--paper-raise);margin-top:30px;}
.contact-done.show{display:flex;}
.contact-done .check{width:46px;height:46px;flex:none;border-radius:50%;background:var(--gold);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;}
.contact-done h2{font-family:var(--display,var(--serif));font-weight:400;font-size:24px;color:var(--ink);}
.contact-done p{font-family:var(--sans);font-size:14px;color:var(--ink-2);margin-top:4px;line-height:1.5;}

/* ---------- calculateur avancé : steppers (modernisé) ---------- */
.stepper-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.stepper{display:flex;flex-direction:column;gap:9px;}
.stepper .st-l{font-family:var(--sans);font-size:12px;color:var(--ink-2);}
.st-ctl{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line-2);border-radius:14px;background:var(--paper-raise);padding:7px 10px;}
.st-btn{width:34px;height:34px;border:0;background:var(--paper);cursor:pointer;font-size:18px;line-height:1;color:var(--ink);border-radius:50%;transition:background .15s,color .15s,transform .15s;box-shadow:0 1px 3px rgba(27,32,38,.12);}
.st-btn:hover{background:var(--ink);color:var(--cream);transform:translateY(-1px);}
.st-v{font-family:var(--display,var(--serif));font-weight:400;font-size:21px;min-width:24px;text-align:center;}

/* ---------- chargement (9 étapes) ---------- */
.adv-load{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;min-height:240px;text-align:center;}
.al-spin{width:34px;height:34px;border:2.5px solid rgba(255,255,255,.18);border-top-color:var(--gold-soft);border-radius:50%;animation:alspin .8s linear infinite;}
@keyframes alspin{to{transform:rotate(360deg)}}
.al-step{font-family:var(--mono);font-size:12.5px;letter-spacing:.04em;color:#cfc9bb;}
.al-bar{width:74%;height:3px;background:rgba(255,255,255,.14);border-radius:2px;overflow:hidden;}
.al-bar-fill{height:100%;width:11%;background:var(--gold-soft);border-radius:2px;transition:width .16s ease;}

/* ---------- résultats avancés ---------- */
.adv-res{display:flex;flex-direction:column;}
.ar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;}
.ar-conf{display:flex;align-items:center;gap:9px;flex:none;}
.conf-svg{width:54px;height:54px;}
.conf-num{font-family:var(--display,var(--serif));font-size:17px;fill:#ece7da;}
.conf-lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:#9b968a;line-height:1.3;}
.ar-hero{display:flex;align-items:baseline;gap:10px;margin:10px 0 4px;}
.ar-annual{font-family:var(--display,var(--serif));font-weight:400;font-size:56px;line-height:1;letter-spacing:-.01em;
  background:var(--grad-gold);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.ar-per{font-family:var(--sans);font-size:15px;color:#b6b1a4;}
.ar-range{font-size:14.5px;color:#b6b1a4;}.ar-range b{color:#ece7da;font-weight:600;}
.ar-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:22px;border-top:1px solid rgba(255,255,255,.13);border-bottom:1px solid rgba(255,255,255,.13);}
.kpi{padding:16px 10px 16px 0;border-right:1px solid rgba(255,255,255,.1);}
.kpi:last-child{border-right:0;padding-right:0;}
.kpi b{font-family:var(--display,var(--serif));font-weight:400;font-size:24px;color:#fff;display:block;line-height:1;}
.kpi span{font-family:var(--sans);font-size:11px;color:#9b968a;display:block;margin-top:5px;}
.ar-season{margin-top:22px;}
.ar-season-h{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:12px;}
.season-bars{display:flex;align-items:flex-end;gap:6px;height:80px;}
.sb-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end;}
.sb-track{width:100%;height:100%;display:flex;align-items:flex-end;}
.sb-fill{width:100%;background:linear-gradient(180deg,var(--gold-soft),var(--gold));border-radius:2px 2px 0 0;transition:height .6s cubic-bezier(.4,0,.2,1);min-height:2px;}
.sb-m{font-family:var(--mono);font-size:9px;color:#8a8576;}
.ar-note{display:flex;gap:9px;margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.13);font-family:var(--sans);font-size:12px;line-height:1.5;color:#9b968a;}
.ar-note .arn-i{color:var(--gold-soft);font-family:var(--display,var(--serif));font-size:16px;line-height:1;flex:none;}
.ar-cta{margin-top:14px;align-self:flex-start;background:transparent;color:#f3efe6;border:1px solid rgba(255,255,255,.4);padding:11px 20px;border-radius:2px;transition:background .15s,border-color .15s,color .15s;}
.ar-cta:hover{background:#f3efe6;color:var(--ink);border-color:#f3efe6;}
.ar-cta span{transition:transform .15s;}
.ar-cta:hover span{transform:translateX(3px);}
.ar-lead{margin-top:22px;padding:18px;border:1px solid rgba(184,154,94,.4);border-radius:3px;background:rgba(184,154,94,.08);}
.ar-lead-h{font-family:var(--serif);font-weight:600;font-size:17px;color:#f3efe6;margin-bottom:12px;}
.ar-lead-row{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap;}
.ar-lead-row input.ctrl{flex:1;min-width:180px;color:#f3efe6;border-bottom-color:rgba(255,255,255,.28);font-size:16px;}
.ar-lead-row input.ctrl::placeholder{color:#8a8576;}
.ar-lead-row input.ctrl:focus{border-bottom-color:var(--gold-soft);}
.ar-lead-row input.ctrl.err{border-bottom-color:#d98a6a;}
.ar-lead-row .btn{flex:none;white-space:nowrap;}
.ar-lead-note{font-family:var(--sans);font-size:11.5px;color:#9b968a;margin-top:10px;}
.ar-lead-done{font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--gold-soft);}
@media(max-width:520px){.ar-kpis{grid-template-columns:repeat(2,1fr);}.kpi:nth-child(2){border-right:0;}.ar-lead-row .btn{width:100%;}}

/* =====================================================================
   IDENTITÉS VISUELLES — 3 directions disruptives (cf. Tweaks « Identité »)
   Activées par [data-identite] sur <html>. Aucune n'altère la structure.
===================================================================== */

/* ---- 1 · MANIFESTE — brutalisme néo-suisse : blanc/noir + bleu électrique,
        grotesque massif, zéro arrondi, plus aucun serif ---- */
html[data-identite="manifeste"]{
  --paper:#ffffff;--paper-raise:#f1f1ee;--panel:#0a0a0a;
  --ink:#0a0a0a;--ink-2:#43464b;--ink-3:#6f7277;
  --line:#e3e3df;--line-2:#c4c4be;
  --gold:#1f2bff;--gold-soft:#1f2bff;--cream:#ffffff;
  --display:"Anton",Impact,sans-serif;--serif:"Archivo",sans-serif;
  --sans:"Archivo",sans-serif;--mono:"Archivo",sans-serif;
}
html[data-identite="manifeste"] .h1,html[data-identite="manifeste"] .page-hero h1,
html[data-identite="manifeste"] .sec-head h2,html[data-identite="manifeste"] .final h2{
  letter-spacing:.005em;line-height:.92;text-transform:uppercase;font-weight:400;}
html[data-identite="manifeste"] .kicker{font-family:var(--sans);font-weight:800;
  letter-spacing:.04em;color:var(--gold);text-transform:uppercase;}
html[data-identite="manifeste"] .btn-solid,html[data-identite="manifeste"] .btn-gold,
html[data-identite="manifeste"] .btn-ghost,html[data-identite="manifeste"] .calc-btn,
html[data-identite="manifeste"] .type-chip,html[data-identite="manifeste"] .chip,
html[data-identite="manifeste"] .calc,html[data-identite="manifeste"] .panel-dark,
html[data-identite="manifeste"] .zone,html[data-identite="manifeste"] .card .ph,
html[data-identite="manifeste"] .st-ctl,html[data-identite="manifeste"] .st-btn{border-radius:0!important;}
html[data-identite="manifeste"] .btn-gold,html[data-identite="manifeste"] .calc-btn{background:var(--gold)!important;color:#fff!important;}
html[data-identite="manifeste"] .calc{box-shadow:none;border:2px solid var(--ink);}

/* ---- 2 · ATELIER — chaleur méditerranéenne : terre cuite + plâtre,
        serif de caractère, formes très arrondies, artisanal ---- */
html[data-identite="atelier"]{
  --paper:#ffffff;--paper-raise:#f6f6f7;--panel:#0a0a0a;
  --ink:#16181c;--ink-2:color-mix(in srgb,#16181c 72%,transparent);--ink-3:color-mix(in srgb,#16181c 54%,transparent);
  --line:#e8e8ea;--line-2:#d5d5d9;
  --gold:#262b31;--gold-soft:#cda65c;--cream:#ffffff;
  --grad-anthracite:linear-gradient(150deg,#262b31 0%,#000000 100%);
  --grad-gold:linear-gradient(120deg,#363b42 0%,#1b1e23 100%);
  --display:"DM Serif Display",Georgia,serif;--serif:"Newsreader",Georgia,serif;
  --sans:"Manrope",sans-serif;--mono:"Manrope",sans-serif;
}
html[data-identite="atelier"] .kicker{font-family:var(--sans);font-weight:700;
  letter-spacing:.14em;color:var(--gold);}
html[data-identite="atelier"] .btn-solid,html[data-identite="atelier"] .btn-gold,
html[data-identite="atelier"] .btn-ghost,html[data-identite="atelier"] .calc-btn{border-radius:100px!important;}
html[data-identite="atelier"] .calc{border-radius:24px;}
html[data-identite="atelier"] .type-chip,html[data-identite="atelier"] .chip{border-radius:12px!important;}
html[data-identite="atelier"] .panel-dark,html[data-identite="atelier"] .zone,
html[data-identite="atelier"] .card .ph{border-radius:18px!important;}
html[data-identite="atelier"] .calc-btn,html[data-identite="atelier"] .btn-gold,
html[data-identite="atelier"] .btn-solid{background:var(--grad-gold)!important;color:#fff!important;}

/* ---- 3 · NOCTURNE — galerie nocturne : fond sombre, ivoire, laiton,
        serif élégant haute-contraste en titres, corps en grotesque clair ---- */
html[data-identite="nocturne"]{
  --paper:#14191b;--paper-raise:#1d2426;--panel:#0d1113;
  --ink:#f1ece3;--ink-2:#b4ada1;--ink-3:#8a8377;
  --line:#2b3234;--line-2:#3b4346;
  --gold:#cda566;--gold-soft:#e0c188;--cream:#14191b;
  --display:"Cormorant Garamond",Georgia,serif;--serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Karla",sans-serif;--mono:"Karla",sans-serif;
}
html[data-identite="nocturne"] body,html[data-identite="nocturne"] .lead,
html[data-identite="nocturne"] p,html[data-identite="nocturne"] .market .copy p{font-family:"Karla",sans-serif;}
html[data-identite="nocturne"] .h1,html[data-identite="nocturne"] .page-hero h1,
html[data-identite="nocturne"] .sec-head h2,html[data-identite="nocturne"] .final h2,
html[data-identite="nocturne"] .brand{font-weight:600;letter-spacing:0;}
html[data-identite="nocturne"] .kicker{font-family:var(--sans);font-weight:600;letter-spacing:.18em;color:var(--gold-soft);}
html[data-identite="nocturne"] .btn-solid,html[data-identite="nocturne"] .btn-gold,
html[data-identite="nocturne"] .btn-ghost,html[data-identite="nocturne"] .calc-btn{border-radius:4px!important;}
html[data-identite="nocturne"] .btn-solid{background:var(--gold)!important;color:#14191b!important;}
html[data-identite="nocturne"] .calc{border-radius:10px;box-shadow:0 30px 70px -40px #000;}
html[data-identite="nocturne"] .nav{border-bottom-color:var(--line);}

/* chiffres de résultat : couleur pleine d'accent (au lieu du dégradé or par défaut) */
html[data-identite] .res-range .mid,html[data-identite] .ar-annual{
  background:none!important;-webkit-text-fill-color:var(--gold)!important;color:var(--gold)!important;}
/* ATELIER — éléments sur fond sombre passés en or pour la lisibilité */
html[data-identite="atelier"] .res-range .mid,html[data-identite="atelier"] .ar-annual{
  -webkit-text-fill-color:var(--gold-soft)!important;color:var(--gold-soft)!important;}
html[data-identite="atelier"] .ek,
html[data-identite="atelier"] .panel-dark .ek,
html[data-identite="atelier"] .final .ek,
html[data-identite="atelier"] .res-eyebrow,
html[data-identite="atelier"] .res-eyebrow b{color:var(--gold-soft)!important;}

/* étapes simplifiées « Comment ça marche » */
.steps3{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:30px;}
.s3{display:flex;flex-direction:column;gap:8px;}
.s3-n{font-family:var(--mono);font-size:13px;letter-spacing:.12em;color:var(--gold);}
.s3 h3{font-family:var(--serif);font-weight:600;font-size:22px;color:var(--ink);}
.s3 p{font-family:var(--sans);font-size:15px;line-height:1.55;color:var(--ink-2);}
@media(max-width:760px){.steps3{grid-template-columns:1fr;gap:24px;}}

/* annuaire communes (maillage interne) */
.commune-directory{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
.cd-head{display:flex;align-items:baseline;justify-content:space-between;
  padding-bottom:12px;margin-bottom:16px;border-bottom:1px solid var(--line);}
.cd-dept{font-family:var(--serif);font-weight:600;font-size:20px;color:var(--ink);}
.cd-code{font-family:var(--mono);font-size:13px;letter-spacing:.1em;color:var(--gold);}
.cd-links{display:grid;grid-template-columns:repeat(2,1fr);gap:2px 18px;}
.cd-links a{font-family:var(--sans);font-size:14px;color:var(--ink-2);padding:5px 0;
  border-bottom:1px solid transparent;transition:color .14s,border-color .14s;}
.cd-links a:hover{color:var(--gold);border-bottom-color:var(--gold-soft);}
@media(max-width:760px){.commune-directory{grid-template-columns:1fr;gap:30px;}}
@media(max-width:420px){.cd-links{grid-template-columns:1fr;}}

/* ===================================================================
   MOBILE-FIRST — densité, type et espacements optimisés petit écran
   =================================================================== */
html,body{overflow-x:hidden;max-width:100%;}
/* anti-débordement : casse les longues chaînes (e-mails, URLs) et neutralise les nowrap */
p,h1,h2,h3,h4,.lead,.v,.ci-item .v,.market .copy,.tl-body,.s3 p,a{overflow-wrap:break-word;}
.contact-aside .ci-item .v,.contact-aside .ci-item .v.small{overflow-wrap:anywhere;word-break:break-word;}
img,.leaflet-map{max-width:100%;}
@media(max-width:600px){
  /* respiration des sections : moins d'espace vide */
  .sec{padding:52px 0;}
  .sec-head{flex-wrap:wrap;gap:8px 16px;margin-bottom:26px;}
  .page-hero{padding:32px 0 0;}
  .hero{padding:40px 0 16px;}
  .hero-grid{gap:34px;}
  .stats{margin-top:40px;}
  /* lisibilité du texte courant */
  .lead{font-size:17px;line-height:1.5;margin-top:18px;max-width:none;}
  .h1{margin-top:12px;}
  .stat b{font-size:40px;}
  .stat{padding:24px 0;}
  /* cartes / panneaux : padding resserré */
  .panel-tonal,.panel-dark{padding:22px 20px;}
  .calc-form{padding:26px 22px;}
  .calc-out{padding:26px 22px;}
  .feature .cap{padding:20px;}
  .feature .cap h3{font-size:21px;}
  /* zones & cartes pleine largeur + carte plus courte */
  .leaflet-map,.leaflet-map.tall,.dir-map{height:300px !important;}
  /* cibles tactiles confortables (≥44px) */
  .btn,.type-chip,.st-btn,.nav-links.open a,.zone,.cross,.chip{min-height:44px;}
  .btn{padding:13px 20px;display:inline-flex;align-items:center;justify-content:center;}
  .cta-row{gap:10px;}
  .cta-row .btn{flex:1 1 auto;}
  /* nav mobile : barre plus compacte */
  .nav-in{padding:14px 22px;gap:14px;}
  .brand .bk{font-size:19px;}
  /* CTA redondant masqué (le menu contient déjà Contact) ; menu toujours visible */
  .nav .btn-solid{display:none;}
  .nav-spacer{display:none;}
  .menu-toggle{margin-left:auto;white-space:nowrap;font-size:14px;}
  /* sous-pages : titre + texte + image empilés pleine largeur */
  .ph-grid{grid-template-columns:1fr;gap:22px;}
  .page-hero h1{font-size:clamp(40px,12vw,56px);}
  .page-hero .ph{aspect-ratio:16/10;width:100%;}
  .page-hero .lead{font-size:17px;line-height:1.5;}
  /* formulaires : éviter le zoom iOS (police ≥16px) */
  input.ctrl,select.ctrl,textarea.ctrl,.ctrl{font-size:16px;}
  /* annuaire / footer : aération */
  .foot-in{gap:30px;}
  /* anti-débordement spécifique petit écran */
  .hours{flex-direction:column;max-width:none;}
  .hours .slot{border-right:0;border-bottom:1px solid var(--line);}
  .hours .slot:last-child{border-bottom:0;}
  .cross .cgo,.pc-tag,.pc-title{white-space:normal;}
  .res-meta{gap:20px;}
  .res-range .mid{font-size:46px;}
  .calc{border-radius:14px;}
  .contact-form,.contact-aside{padding:26px 22px;}
}
@media(max-width:380px){
  .h1{font-size:40px;}
  .page-hero h1{font-size:38px;}
  .shell{padding:0 18px;}
  .nav-in,.ticker-in,.final-in,.foot-in,.foot-base{padding-left:18px;padding-right:18px;}
}

/* plan du site — cartes pages principales */
.sitemap-main{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-top:6px;}
.sm-card{display:flex;flex-direction:column;gap:5px;padding:20px 22px;
  background:var(--paper-raise);border:1px solid var(--line);border-radius:14px;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;}
.sm-card:hover{border-color:var(--gold);box-shadow:0 18px 40px -28px rgba(27,32,38,.5);transform:translateY(-2px);}
.sm-card .sm-t{font-family:var(--serif);font-weight:600;font-size:18px;color:var(--ink);}
.sm-card .sm-d{font-family:var(--sans);font-size:13.5px;line-height:1.5;color:var(--ink-2);}

/* reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease;}
.reveal.in{opacity:1;transform:none;}

/* ---------- pages légales : prose ---------- */
.legal{max-width:74ch;margin:0 auto;padding:8px 0 16px;}
.legal-meta{font-family:var(--sans);font-size:13px;color:var(--ink-3);margin-bottom:38px;
  padding-bottom:18px;border-bottom:1px solid var(--line);letter-spacing:.01em;}
.legal h2{font-family:var(--serif);font-weight:600;font-size:clamp(22px,2.6vw,30px);
  letter-spacing:-.015em;line-height:1.1;margin:46px 0 14px;}
.legal h2:first-of-type{margin-top:8px;}
.legal h3{font-family:var(--sans);font-weight:600;font-size:15px;letter-spacing:.01em;
  color:var(--ink);margin:26px 0 8px;}
.legal p,.legal li{font-size:16.5px;line-height:1.72;color:var(--ink-2);}
.legal p{margin:0 0 16px;}
.legal ul{margin:0 0 18px;padding-left:0;list-style:none;}
.legal li{position:relative;padding-left:22px;margin-bottom:9px;}
.legal li::before{content:"";position:absolute;left:2px;top:.72em;width:6px;height:6px;
  background:var(--gold);border-radius:50%;}
.legal a{color:var(--gold);text-decoration:underline;text-underline-offset:2px;
  text-decoration-thickness:1px;}
.legal a:hover{color:var(--ink);}
.legal strong{color:var(--ink);font-weight:600;}
.legal .tba{font-style:italic;color:var(--ink-3);}
.legal-toc{display:flex;flex-wrap:wrap;gap:8px 10px;margin:0 0 8px;}
.legal-toc a{font-family:var(--sans);font-size:12.5px;font-weight:500;color:var(--ink-2);
  border:1px solid var(--line);border-radius:999px;padding:6px 13px;text-decoration:none;
  transition:border-color .15s,color .15s;}
.legal-toc a:hover{border-color:var(--gold);color:var(--gold);}
.legal-rule{height:1px;background:var(--line);margin:48px 0;}
.legal-help{margin-top:44px;padding:26px 28px;background:var(--paper-raise);
  border:1px solid var(--line);border-radius:4px;}
.legal-help h3{margin-top:0;font-family:var(--serif);font-size:19px;font-weight:600;letter-spacing:-.01em;}
.legal-help p{margin-bottom:18px;}
html.gsap-init .legal-toc,html.gsap-init .legal-meta,html.gsap-init .legal > h2,
html.gsap-init .legal > p,html.gsap-init .legal-help{}

/* GSAP pré-masquage (anti-flash) — neutralisé si JS off / reduced-motion */
html.gsap-init .hero .kicker,html.gsap-init .hero .h1,html.gsap-init .hero .lead,
html.gsap-init .hero .cta-row,html.gsap-init .feature,html.gsap-init .side > *{opacity:0;transform:translateY(26px);}
html.gsap-init .feature{transform:translateY(40px) scale(.985);}
html.gsap-init .page-hero .kicker,html.gsap-init .page-hero h1,html.gsap-init .page-hero .lead,
html.gsap-init .page-hero .breadcrumb,html.gsap-init .page-hero .hours .slot{opacity:0;transform:translateY(22px);}
@media(prefers-reduced-motion:reduce){
  html.gsap-init .hero .kicker,html.gsap-init .hero .h1,html.gsap-init .hero .lead,html.gsap-init .hero .cta-row,
  html.gsap-init .feature,html.gsap-init .side > *,
  html.gsap-init .page-hero .kicker,html.gsap-init .page-hero h1,html.gsap-init .page-hero .lead,
  html.gsap-init .page-hero .breadcrumb,html.gsap-init .page-hero .hours .slot{opacity:1!important;transform:none!important;}
}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;}}
