/* ---------- Tokens locaux, alignés sur le design system X-Cube ---------- */
.xc-sim{
  --xc-ink:#0a0a0a; --xc-body:#343434; --xc-muted:#74716b;
  --xc-line:#e6e1d8; --xc-bg:#fbfaf7; --xc-soft:#f4f1eb; --xc-dark:#050505;
  --xc-r:8px; --xc-r-sm:6px;
  --xc-head:'Poppins','Segoe UI',system-ui,sans-serif;
  --xc-bodyf:'Inter','Segoe UI',system-ui,sans-serif;
  font-family:var(--xc-bodyf); color:var(--xc-body); line-height:1.6;
  background:var(--xc-bg); border:1px solid var(--xc-line); border-radius:var(--xc-r);
  padding:clamp(1.4rem,3.5vw,2.75rem); margin:3rem 0;
}
.xc-sim *,.xc-sim *::before,.xc-sim *::after{box-sizing:border-box;}

.xc-sim__eyebrow{
  font-family:var(--xc-head); font-size:.72rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--xc-muted); margin:0 0 .6rem;
}
.xc-sim h2#xc-sim-title{
  font-family:var(--xc-head); font-weight:600; color:var(--xc-ink);
  font-size:clamp(1.5rem,2.6vw,2.1rem); line-height:1.12; margin:0 0 .55rem;
}
.xc-sim__lede{color:var(--xc-muted); margin:0; max-width:56ch; font-size:.98rem;}
.xc-sim__intro{margin-bottom:2rem;}

.xc-sim__grid{display:grid; grid-template-columns:1fr; gap:1.75rem;}
@media (min-width:900px){
  .xc-sim__grid{grid-template-columns:1.05fr .95fr; gap:2.5rem; align-items:start;}
  .xc-sim__results{position:sticky; top:1.5rem;}
}

/* ---------- Champs ---------- */
.xc-field{border:0; padding:0; margin:0 0 1.75rem;}
.xc-field:last-child{margin-bottom:0;}
.xc-legend{
  font-family:var(--xc-head); font-size:.74rem; font-weight:600; letter-spacing:.12em;
  text-transform:uppercase; color:var(--xc-ink); padding:0; margin-bottom:.85rem;
}
.xc-row{margin-bottom:1.25rem;}
.xc-row:last-child{margin-bottom:0;}
.xc-label{
  display:flex; justify-content:space-between; align-items:baseline; gap:1rem;
  font-size:.94rem; color:var(--xc-ink); font-weight:500; margin-bottom:.55rem;
}
.xc-label--sm{font-size:.88rem; display:block;}
.xc-out{font-family:var(--xc-head); font-weight:600; font-size:1.05rem; color:var(--xc-ink);}
.xc-help{font-size:.8rem; color:var(--xc-muted); margin:.45rem 0 0; line-height:1.45;}

.xc-range{
  -webkit-appearance:none; appearance:none; width:100%; height:2px;
  background:var(--xc-line); border-radius:2px; outline:none; margin:.35rem 0;
}
.xc-range::-webkit-slider-thumb{
  -webkit-appearance:none; appearance:none; width:22px; height:22px; border-radius:50%;
  background:var(--xc-ink); border:3px solid var(--xc-bg);
  box-shadow:0 0 0 1px var(--xc-ink); cursor:pointer; transition:transform .15s;
}
.xc-range::-webkit-slider-thumb:hover{transform:scale(1.12);}
.xc-range::-moz-range-thumb{
  width:22px; height:22px; border-radius:50%; background:var(--xc-ink);
  border:3px solid var(--xc-bg); box-shadow:0 0 0 1px var(--xc-ink); cursor:pointer;
}
.xc-range:focus-visible{outline:2px solid var(--xc-ink); outline-offset:6px;}

/* ---------- Segments ---------- */
.xc-seg{display:grid; grid-template-columns:1fr 1fr; gap:.5rem;}
.xc-seg--3{grid-template-columns:1fr;}
@media (min-width:560px){.xc-seg--3{grid-template-columns:repeat(3,1fr);}}
.xc-seg__item{position:relative; display:block;}
.xc-seg__item input{position:absolute; opacity:0; width:1px; height:1px;}
.xc-seg__item span{
  display:flex; align-items:center; justify-content:center; text-align:center;
  min-height:52px; padding:.55rem .7rem; cursor:pointer;
  background:#fff; border:1px solid var(--xc-line); border-radius:var(--xc-r-sm);
  font-size:.86rem; line-height:1.25; color:var(--xc-body); transition:all .18s;
}
.xc-seg__item:hover span{border-color:#c9c2b5;}
.xc-seg__item input:checked + span{
  background:var(--xc-dark); border-color:var(--xc-dark); color:#fff; font-weight:500;
}
.xc-seg__item input:focus-visible + span{outline:2px solid var(--xc-ink); outline-offset:3px;}

.xc-check{
  display:flex; gap:.65rem; align-items:flex-start; margin:1.1rem 0 1.25rem;
  font-size:.88rem; cursor:pointer; line-height:1.45;
}
.xc-check input{margin-top:.28rem; width:17px; height:17px; accent-color:var(--xc-dark); flex:0 0 auto;}
.xc-check em{color:var(--xc-muted); font-style:normal;}

.xc-inputwrap{display:inline-flex; align-items:center; gap:.4rem;}
.xc-number{
  width:88px; padding:.55rem .7rem; font-family:var(--xc-bodyf); font-size:.95rem;
  border:1px solid var(--xc-line); border-radius:var(--xc-r-sm); background:#fff; color:var(--xc-ink);
}
.xc-number:focus-visible{outline:2px solid var(--xc-ink); outline-offset:2px;}
.xc-suffix{color:var(--xc-muted); font-size:.9rem;}

/* ---------- Résultats ---------- */
.xc-results{background:#fff; border:1px solid var(--xc-line); border-radius:var(--xc-r); padding:1.6rem;}
@media (min-width:560px){.xc-results{padding:2rem;}}

.xc-headline{padding-bottom:1.4rem; border-bottom:1px solid var(--xc-line);}
.xc-headline__label{
  font-family:var(--xc-head); font-size:.7rem; font-weight:600; letter-spacing:.13em;
  text-transform:uppercase; color:var(--xc-muted); margin:0 0 .5rem;
}
.xc-headline__value{
  font-family:var(--xc-head); font-weight:600; color:var(--xc-ink);
  font-size:clamp(1.6rem,3.4vw,2.15rem); line-height:1.1; margin:0 0 .3rem;
  font-variant-numeric:tabular-nums;
}
.xc-headline__sub{color:var(--xc-muted); font-size:.9rem; margin:0;}

/* Jauge de seuils — élément signature */
.xc-gauge{margin-top:1.5rem;}
.xc-gauge__title{
  display:flex; justify-content:space-between; align-items:baseline;
  font-size:.83rem; color:var(--xc-muted); margin:0 0 .95rem;
}
.xc-gauge__title span{font-family:var(--xc-head); font-weight:600; color:var(--xc-ink); font-size:.95rem;}
.xc-gauge__track{position:relative; height:6px; background:var(--xc-soft); border-radius:3px;}
.xc-gauge__fill{
  position:absolute; inset:0 auto 0 0; background:var(--xc-dark);
  border-radius:3px; width:30%; transition:width .35s cubic-bezier(.22,1,.36,1);
}
.xc-gauge__tick{position:absolute; top:0; transform:translateX(-50%);}
.xc-gauge__tick i{display:block; width:1px; height:14px; background:#bfb8aa; margin-top:-4px;}
.xc-gauge__tick b{
  position:absolute; top:14px; left:50%; transform:translateX(-50%);
  font-family:var(--xc-head); font-size:.66rem; font-weight:500; color:var(--xc-muted);
}
.xc-gauge__cursor{
  position:absolute; top:50%; width:12px; height:12px; border-radius:50%;
  background:var(--xc-dark); border:2px solid #fff; box-shadow:0 0 0 1px var(--xc-dark);
  transform:translate(-50%,-50%); left:30%; transition:left .35s cubic-bezier(.22,1,.36,1);
}
.xc-gauge__legend{font-size:.75rem; color:var(--xc-muted); margin:1.5rem 0 0;}

.xc-list{margin:1.75rem 0 0; padding:0; border-top:1px solid var(--xc-line);}
.xc-list__item{
  display:flex; justify-content:space-between; align-items:baseline; gap:1.25rem;
  padding:.85rem 0; border-bottom:1px solid var(--xc-line);
}
.xc-list dt{font-size:.86rem; color:var(--xc-muted); flex:0 0 auto;}
.xc-list dd{
  margin:0; font-size:.9rem; font-weight:500; color:var(--xc-ink);
  text-align:right; font-family:var(--xc-head); line-height:1.35;
}

.xc-total{margin-top:1.5rem; padding:1.15rem 1.25rem; background:var(--xc-soft); border-radius:var(--xc-r-sm);}
.xc-total__label{
  font-family:var(--xc-head); font-size:.68rem; font-weight:600; letter-spacing:.13em;
  text-transform:uppercase; color:var(--xc-muted); margin:0 0 .35rem;
}
.xc-total__value{
  font-family:var(--xc-head); font-weight:600; font-size:1.35rem; color:var(--xc-ink);
  margin:0 0 .3rem; font-variant-numeric:tabular-nums;
}
.xc-total__sub{font-size:.78rem; color:var(--xc-muted); margin:0;}

.xc-detail{margin-top:1.25rem; border-top:1px solid var(--xc-line); padding-top:1rem;}
.xc-detail summary{
  cursor:pointer; font-size:.86rem; color:var(--xc-ink); font-weight:500;
  font-family:var(--xc-head); list-style:none; display:flex; align-items:center; gap:.5rem;
}
.xc-detail summary::-webkit-details-marker{display:none;}
.xc-detail summary::before{content:"+"; font-size:1.05rem; line-height:1; color:var(--xc-muted);}
.xc-detail[open] summary::before{content:"–";}
.xc-detail summary:focus-visible{outline:2px solid var(--xc-ink); outline-offset:3px;}
.xc-detail__list{margin:.9rem 0 0; padding:0; list-style:none;}
.xc-detail__list li{
  display:flex; justify-content:space-between; gap:1rem;
  font-size:.84rem; padding:.4rem 0; color:var(--xc-body);
}
.xc-detail__list li span:last-child{color:var(--xc-muted); white-space:nowrap;}

.xc-note{
  margin-top:1.25rem; padding:.9rem 1rem; background:var(--xc-soft);
  border-left:2px solid var(--xc-dark); border-radius:0 var(--xc-r-sm) var(--xc-r-sm) 0;
  font-size:.83rem; color:var(--xc-body); line-height:1.5;
}
.xc-note p{margin:0 0 .5rem;}
.xc-note p:last-child{margin:0;}

.xc-cta{
  display:block; margin-top:1.6rem; padding:1rem 1.25rem; text-align:center;
  background:var(--xc-dark); color:#fff; border-radius:var(--xc-r-sm);
  font-family:var(--xc-head); font-weight:500; font-size:.94rem;
  text-decoration:none; transition:opacity .2s;
}
.xc-cta:hover{opacity:.86;}
.xc-cta:focus-visible{outline:2px solid var(--xc-ink); outline-offset:3px;}

.xc-disclaimer{font-size:.72rem; color:var(--xc-muted); line-height:1.5; margin:1.1rem 0 0;}

@media (prefers-reduced-motion:reduce){
  .xc-sim *{transition:none !important; animation:none !important;}
}
/* Sélecteur de département (ajouté le 13/10/2026). */
.xc-select{
  width:100%; padding:.6rem .8rem; border:1px solid var(--xc-line); border-radius:var(--xc-r-sm);
  background:#fff; font:inherit; color:var(--xc-ink);
}
.xc-select:focus-visible{outline:2px solid var(--xc-ink); outline-offset:2px;}
