body.page-simulateur{
  margin:0;
  background:#f5f8fc;
  color:#0d1a2b;
}

body.page-simulateur *{box-sizing:border-box}

body.page-simulateur .wrap{
  width:min(1160px,calc(100% - 40px));
  margin-inline:auto;
}

.sim-header{
  position:sticky;
  top:0;
  z-index:30;
  border-bottom:1px solid #e1e7ef;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(14px);
}

.sim-header .wrap{
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.sim-header img{
  width:192px;
  display:block;
}

.sim-header a{
  color:#42526a;
  text-decoration:none;
  font-weight:800;
}

.sim-header .back{
  padding:9px 13px;
  border:1px solid #d7e0eb;
  border-radius:11px;
  background:#fff;
  font-size:11.5px;
}

.sim-hero{
  padding:54px 0 36px;
  background:
    radial-gradient(circle at 88% 0%,rgba(23,105,255,.08),transparent 30%),
    linear-gradient(180deg,#fff 0%,#f5f8fc 100%);
}

.sim-hero h1{
  max-width:760px;
  margin:0;
  color:#0b1627;
  font-size:clamp(46px,5vw,68px);
  line-height:.96;
  font-weight:950;
  letter-spacing:-.06em;
}

.sim-hero p{
  max-width:720px;
  margin:18px 0 0;
  color:#596a80;
  font-size:16px;
  line-height:1.6;
}

.sim-hero-proof{
  display:flex;
  flex-wrap:wrap;
  gap:8px 20px;
  margin-top:18px;
  color:#5b6b80;
  font-size:11px;
  font-weight:800;
}

.sim-hero-proof span{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.sim-hero-proof span::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:999px;
  background:#1769ff;
}

.sim-layout{
  width:min(1160px,calc(100% - 40px));
  margin:0 auto 44px;
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(340px,.72fr);
  gap:22px;
  align-items:start;
}

.sim-card{
  overflow:hidden;
  border:1px solid #dce4ee;
  border-radius:24px;
  background:#fff;
  box-shadow:0 18px 50px rgba(18,42,73,.06);
}

.sim-card-head{
  min-height:92px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:22px 24px 18px;
  border-bottom:1px solid #e8edf3;
}

.sim-card-head>div{
  min-width:0;
}

.sim-card-head h2{
  margin:0;
  color:#0e1a2a;
  font-size:24px;
  letter-spacing:-.035em;
}

.sim-card-head p{
  margin:5px 0 0;
  color:#6e7c90;
  font-size:11.5px;
  line-height:1.45;
}

.sim-card-head>a{
  margin-top:4px;
  color:#1455c0;
  text-decoration:none;
  font-size:10.5px;
  font-weight:850;
  white-space:nowrap;
}

.sim-card-head>a:hover{text-decoration:underline}

.sim-card-body{padding:24px}

.sim-form{
  display:grid;
  gap:17px;
}

.sim-field{
  display:grid;
  gap:7px;
  min-width:0;
}

.sim-field label{
  min-height:18px;
  color:#27394f;
  font-size:12.5px;
  font-weight:850;
}

.sim-field input,
.sim-field select{
  width:100%;
  height:54px;
  min-height:54px;
  margin:0;
  padding:0 14px;
  border:1px solid #cfd9e5;
  border-radius:13px;
  background:#fff;
  color:#101828;
  font:inherit;
  line-height:1;
}

.sim-field input[type="date"]{
  appearance:auto;
  -webkit-appearance:auto;
}

.sim-field input:focus,
.sim-field select:focus{
  outline:3px solid rgba(23,105,255,.14);
  outline-offset:0;
  border-color:#1769ff;
}

.sim-grid2{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.sim-grid2-aligned{
  align-items:start;
}

.sim-grid2-aligned>.sim-field{
  grid-template-rows:18px 54px;
}

.sim-field.hide-field,
[data-tourism].hide-field{
  display:none!important;
}

.sim-row-help{
  margin:-8px 0 0;
  color:#6c7b8f;
  font-size:10.5px;
  line-height:1.45;
}

[data-tourism-help].hide-field{
  display:none!important;
}

.sim-region{
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:11px 14px;
  border:1px solid #dde5ee;
  border-radius:14px;
  background:#f8fafc;
}

.sim-region>span{
  min-width:0;
  display:grid;
  gap:2px;
}

.sim-region small{
  color:#7b8899;
  font-size:9.5px;
}

.sim-region strong{
  overflow:hidden;
  color:#20324a;
  font-size:11.5px;
  font-weight:850;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.sim-region b{
  flex:0 0 auto;
  color:#1455c0;
  font-size:11.5px;
  white-space:nowrap;
}

.sim-input-suffix{
  position:relative;
}

.sim-input-suffix input{
  padding-right:60px;
}

.sim-input-suffix>span{
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  color:#6c7b8d;
  font-size:10.5px;
  font-weight:800;
  pointer-events:none;
}

.sim-submit{
  min-height:54px;
  border:0;
  border-radius:13px;
  background:linear-gradient(135deg,#003399,#1769ff);
  color:#fff;
  font-size:13.5px;
  font-weight:900;
  box-shadow:0 12px 28px rgba(0,51,153,.18);
  cursor:pointer;
}

.sim-submit:hover{
  filter:brightness(.99);
  transform:translateY(-1px);
}

.sim-submit:focus-visible{
  outline:3px solid rgba(23,105,255,.26);
  outline-offset:3px;
}

/* Result */
.sim-result{
  position:sticky;
  top:90px;
}

.total{
  padding:28px 26px 26px;
  background:
    radial-gradient(circle at 85% 10%,rgba(23,105,255,.18),transparent 34%),
    linear-gradient(145deg,#091727,#07111f);
  color:#fff;
}

.total small{
  display:block;
  color:#a7b7cb;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.07em;
  font-weight:900;
}

.total strong{
  display:block;
  margin:9px 0 6px;
  color:#fff;
  font-size:48px;
  line-height:1;
  letter-spacing:-.055em;
}

.total span{
  color:#c0cbd9;
  font-size:11.5px;
  line-height:1.45;
}

.breakdown{
  padding:17px 22px 8px;
}

.breakdown-title{
  padding:2px 0 7px;
  color:#2b3d53;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.breakdown-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:16px;
  align-items:start;
  padding:12px 0;
  border-bottom:1px solid #edf1f5;
}

.breakdown-row:last-child{border-bottom:0}

.breakdown-row>span{
  min-width:0;
  color:#526174;
  font-size:12px;
  line-height:1.4;
}

.breakdown-row b{
  color:#152236;
  font-size:12px;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}

.breakdown-row .sub{
  display:block;
  margin-top:3px;
  color:#66758a;
  font-size:9.5px;
  line-height:1.35;
}

.sim-notice{
  margin:10px 22px 18px;
  padding:12px 13px;
  border-left:3px solid #1769ff;
  border-radius:11px;
  background:#f2f6fc;
  color:#526174;
  font-size:10px;
  line-height:1.5;
}

.sim-notice.warn{
  border-left-color:#b97200;
  background:#fff7e8;
  color:#68480b;
}

.sim-notice.error{
  border-left-color:#b62c24;
  background:#fff0f0;
  color:#7d211c;
}

.sim-cta{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  padding:0 22px 22px;
}

.sim-cta a{
  min-height:45px;
  display:grid;
  place-items:center;
  padding:0 12px;
  border-radius:11px;
  text-align:center;
  text-decoration:none;
  font-size:11.5px;
  font-weight:850;
}

.sim-cta .primary{
  background:#0a45b9;
  color:#fff;
}

.sim-cta .secondary{
  border:1px solid #d6dfe9;
  background:#fff;
  color:#334155;
}

/* Compact proof section */
.sim-benefits{
  padding:0 0 72px;
}

.sim-benefits .wrap{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.sim-benefits article{
  min-height:118px;
  padding:19px;
  border:1px solid #dce4ee;
  border-radius:18px;
  background:#fff;
}

.sim-benefits strong,
.sim-benefits span{
  display:block;
}

.sim-benefits strong{
  color:#16263b;
  font-size:13px;
  letter-spacing:-.015em;
}

.sim-benefits span{
  margin-top:6px;
  color:#617086;
  font-size:10.5px;
  line-height:1.5;
}

@media(max-width:900px){
  .sim-layout{
    grid-template-columns:1fr;
  }

  .sim-result{
    position:static;
  }

  .sim-hero{
    padding-top:38px;
  }

  .sim-benefits .wrap{
    grid-template-columns:1fr;
  }
}

@media(max-width:650px){
  body.page-simulateur .wrap,
  .sim-layout{
    width:calc(100% - 28px);
  }

  .sim-header .wrap{
    min-height:66px;
  }

  .sim-header img{
    width:170px;
    max-width:58vw;
  }

  .sim-header .back{
    font-size:11px;
    padding:8px 10px;
  }

  .sim-hero{
    padding:32px 0 24px;
  }

  .sim-hero h1{
    font-size:42px;
  }

  .sim-hero p{
    margin-top:14px;
    font-size:14px;
  }

  .sim-hero-proof{
    gap:7px 14px;
    font-size:10px;
  }

  .sim-layout{
    gap:15px;
    margin-bottom:28px;
  }

  .sim-card{
    border-radius:19px;
  }

  .sim-card-head{
    min-height:0;
    display:grid;
    gap:9px;
    padding:18px;
  }

  .sim-card-head h2{
    font-size:21px;
  }

  .sim-card-head>a{
    margin:0;
    white-space:normal;
  }

  .sim-card-body{
    padding:18px;
  }

  .sim-form{
    gap:15px;
  }

  .sim-grid2{
    grid-template-columns:1fr;
    gap:15px;
  }

  .sim-grid2-aligned>.sim-field{
    grid-template-rows:18px 54px;
  }

  .sim-region{
    min-height:55px;
  }

  .sim-row-help{
    margin:-5px 0 0;
  }

  .total{
    padding:22px 20px;
  }

  .total strong{
    font-size:42px;
  }

  .breakdown{
    padding-inline:18px;
  }

  .sim-notice{
    margin-inline:18px;
  }

  .sim-cta{
    grid-template-columns:1fr;
    padding-inline:18px;
  }

  .sim-benefits{
    padding-bottom:48px;
  }
}

@media(prefers-reduced-motion:reduce){
  .sim-submit{
    transition:none;
  }
}
