:root{
  --bg:#e9edf3;
  --surface:#f8fafc;
  --surface-2:#eef3f9;
  --line:#c7d3e2;
  --line-soft:#b4c4d8;
  --text:#1c2635;
  --muted:#52627a;
  --brand:#2f6ed3;
  --accent:#0d9488;
  --accent-hover:#0f766e;
  --accent-border:#0f766e;
  --ok:#129b75;
  --shadow:0 10px 28px rgba(23, 42, 66, .08);
  --btn-radius:10px;
  /* Fonds bulles / cartes : degrades verticaux tres legers */
  --bubble-ice:linear-gradient(180deg,#feffff 0%,#f6f9fc 45%,#ecf2f8 100%);
  --bubble-sky:linear-gradient(180deg,#fbfdff 0%,#f1f6fc 50%,#e8f1fa 100%);
  --bubble-mint:linear-gradient(180deg,#fbfffe 0%,#f4faf7 48%,#ecf5f1 100%);
  --bubble-azure:linear-gradient(180deg,#f9fbff 0%,#edf4fc 100%);
  --bubble-blue:linear-gradient(180deg,#f3f7ff 0%,#e4eef9 100%);
}
*{box-sizing:border-box}
body{
  margin:0;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.88) 0, transparent 34%),
    radial-gradient(circle at left 20%, rgba(217,228,242,.5) 0, transparent 30%),
    var(--bg);
  color:var(--text);
  font-family:Manrope, "Segoe UI", Roboto, Arial, sans-serif;
  font-weight:500;
  line-height:1.6;
}
a{
  color:var(--brand);
  text-decoration:none;
  transition:color .2s ease, transform .2s ease;
}
a:hover{
  color:#1f57b3;
  transform:translateX(2px);
}
.top-shell{
  position:sticky;
  top:0;
  z-index:1050;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,rgba(255,255,255,.92) 0%,rgba(236,244,252,.85) 100%);
  backdrop-filter:blur(11px);
  -webkit-backdrop-filter:blur(11px);
}
.top-nav{
  min-height:74px;
  display:flex;
  gap:16px;
  align-items:center;
}
.brand{
  display:inline-flex;
  gap:10px;
  align-items:center;
  color:var(--text);
  font-weight:700;
  letter-spacing:.2px;
}
.brand img{height:40px;width:auto}
.main-nav{
  margin-left:auto;
  margin-right:auto;
  display:flex;
  gap:16px;
}
.main-nav a{
  color:var(--muted);
  font-weight:600;
  font-size:.94rem;
  padding:8px 0;
  border-bottom:2px solid transparent;
  transition:color .2s ease,border-color .2s ease,transform .2s ease;
}
.main-nav a.active,.main-nav a:hover{
  color:var(--text);
  border-bottom-color:var(--brand);
  transform:translateY(-1px);
}
.nav-toggle{
  margin-left:auto;
  border:1px solid var(--line-soft);
  background:transparent;
  color:var(--text);
  border-radius:10px;
  width:42px;
  height:42px;
}
.page .btn,
.top-shell .btn,
.mobile-apply .btn,
.site-footer .btn,
.apply-fullscreen-modal .btn{
  border-radius:var(--btn-radius);
}
.btn-apply{
  --bs-btn-box-shadow:none;
  --bs-btn-focus-box-shadow:none;
  border:1px solid rgba(16,185,129,.35) !important;
  background:linear-gradient(180deg,#f0fdf4 0%,#dcfce7 50%,#ccfbf1 100%) !important;
  color:#0f172a !important;
  border-radius:var(--btn-radius);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-weight:600;
  text-align:center;
  line-height:1.2;
  padding:10px 18px;
  box-shadow:none !important;
  transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.btn-apply i{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:.9rem;
  color:inherit !important;
}
.btn-apply:hover,
.btn-apply:focus,
.btn-apply:active{
  background:linear-gradient(180deg,#dcfce7 0%,#bbf7d0 100%) !important;
  border-color:rgba(5,150,105,.45) !important;
  color:#020617 !important;
  transform:none;
  box-shadow:none !important;
}
.btn-apply:focus-visible{
  outline:2px solid #059669;
  outline-offset:2px;
}
a.btn-apply:hover{
  transform:none;
}
.page .btn-outline-secondary,
.apply-fullscreen-modal .btn-outline-secondary{
  border-radius:var(--btn-radius);
  border-color:#c5d3e6;
  color:#3d4f66;
  font-weight:600;
}
.page .btn-outline-secondary:hover,
.apply-fullscreen-modal .btn-outline-secondary:hover{
  background:#f0f5fb;
  border-color:#a8bad4;
  color:#24324a;
}
.btn-hero-secondary{
  border-radius:var(--btn-radius);
  border:1.5px solid #b9c9dc;
  color:var(--text);
  background:var(--bubble-azure);
  font-weight:600;
  padding:10px 16px;
  transition:background .2s ease,border-color .2s ease,transform .2s ease;
}
.btn-hero-secondary:hover{
  background:#f4f8fc;
  border-color:#9eb4cf;
  color:var(--text);
  transform:translateY(-1px);
}
.mobile-apply{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#fbfcfe 0%,#f3f6fb 100%);
  padding:8px 10px;
}
.page{
  padding:18px 0 28px;
}
.section-card{
  background:var(--bubble-ice);
  border:1px solid var(--line);
  border-radius:16px;
  padding:18px;
  margin-bottom:14px;
  box-shadow:var(--shadow);
  transition:transform .35s ease, box-shadow .35s ease, opacity .45s ease;
}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:1px solid var(--line-soft);
  background:var(--bubble-azure);
  color:#3f526f;
  border-radius:999px;
  padding:6px 12px;
  font-size:.8rem;
  font-weight:600;
  margin-bottom:10px;
}
.title{
  margin:0 0 10px;
  font-size:clamp(1.35rem,2.8vw,2.4rem);
  line-height:1.15;
  font-weight:700;
  letter-spacing:-.02em;
}
.lead{
  margin:0;
  color:var(--muted);
  max-width:760px;
}
.hero-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:12px;
}
.stat-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:12px;
}
.stat{
  border:1px solid var(--line-soft);
  border-radius:12px;
  padding:10px;
  background:var(--bubble-sky);
}
.stat strong{display:block;font-size:1.2rem}
.stat span{font-size:.86rem;color:var(--muted)}
.side-panel{
  border:1px solid var(--line-soft);
  border-radius:12px;
  padding:12px;
  background:var(--bubble-mint);
}
.photo{
  width:100%;
  height:250px;
  border-radius:10px;
  object-fit:cover;
  border:1px solid var(--line-soft);
  background:#dae5f2;
}
.note{
  margin:8px 0;
  color:var(--muted);
  font-size:.9rem;
}
.grid-4{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.grid-3{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.feature{
  border:1px solid var(--line-soft);
  border-radius:12px;
  padding:12px;
  background:var(--bubble-sky);
  height:100%;
  transition:transform .2s ease, box-shadow .2s ease;
}
.feature i{color:#8fb4ff}
.feature h3{
  margin:8px 0 6px;
  font-size:1rem;
  font-weight:700;
}
.feature p{margin:0;color:var(--muted);font-size:.92rem}
.feature:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 20px rgba(41,72,110,.12);
}
.band{
  border:1px solid #9cb6dc;
  border-radius:12px;
  background:var(--bubble-blue);
  padding:12px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:center;
}
.band p{margin:0;color:#3e5578}
.check-list{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:8px;
}
.check-list li{
  border:1px solid var(--line-soft);
  border-radius:10px;
  padding:10px;
  display:flex;
  gap:10px;
  background:var(--bubble-ice);
}
.check-list i{margin-top:3px;color:var(--ok)}
.check-list strong{display:block;font-weight:700}
.check-list span{color:var(--muted);font-size:.92rem}
.steps{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.step{
  border:1px solid var(--line-soft);
  border-radius:10px;
  padding:10px;
  background:var(--bubble-ice);
  transition:transform .2s ease, box-shadow .2s ease;
}
.step .n{
  width:24px;height:24px;
  border-radius:999px;
  display:grid;place-items:center;
  border:1px solid #93a8c5;
  font-size:.78rem;
  font-weight:700;
  margin-bottom:8px;
  background:linear-gradient(180deg,#ffffff 0%,#e8f0fa 100%);
}
.step h3{font-size:.95rem;margin:0 0 4px;font-weight:700}
.step p{margin:0;font-size:.9rem;color:var(--muted)}
.step:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 20px rgba(41,72,110,.1);
}
.faq-item{
  border:1px solid var(--line-soft);
  border-radius:10px;
  margin-bottom:8px;
  overflow:hidden;
  background:var(--bubble-ice);
}
.faq-q{
  width:100%;
  border:0;
  background:linear-gradient(180deg,rgba(255,255,255,.55) 0%,rgba(248,251,255,.35) 100%);
  color:var(--text);
  font-weight:600;
  text-align:left;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:12px;
}
.faq-a{
  display:none;
  color:var(--muted);
  padding:0 12px 12px;
}
.faq-item.open .faq-a{display:block}
.faq-item.open .faq-q i{transform:rotate(45deg)}
.site-footer{
  border-top:1px solid #bfcde0;
  margin-top:12px;
  padding:28px 0 34px;
  background:linear-gradient(180deg,#f0f4fa 0%,#e5edf7 100%);
}
.footer-topband{
  border:1px solid #c2d3e8;
  border-radius:14px;
  padding:18px 22px;
  margin-bottom:22px;
  background:var(--bubble-azure);
}
.footer-topband h4{
  margin:0 0 8px;
  font-size:1.1rem;
  font-weight:700;
  color:#1d2c43;
}
.footer-topband p{
  margin:0;
  color:#5a6e8b;
  font-size:.93rem;
  line-height:1.55;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.2fr .7fr .8fr .9fr;
  gap:26px 28px;
  align-items:start;
}
.footer-grid h5{
  font-size:1rem;
  font-weight:700;
  margin:0 0 12px;
  color:#1f2f47;
}
.footer-grid p,.footer-grid a{
  color:var(--muted);
  margin:0 0 10px;
  display:block;
  font-size:.92rem;
  line-height:1.5;
}
.footer-grid a{
  transition:color .2s ease, transform .2s ease;
}
.footer-grid a:hover{
  color:#294c86;
  transform:translateX(3px);
}
.footer-col-main{padding-right:12px}
.footer-chips{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:14px;
}
.footer-chips span{
  border:1px solid #c6d4e6;
  background:var(--bubble-sky);
  color:#4c607f;
  border-radius:999px;
  padding:6px 12px;
  font-size:.82rem;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.footer-col-contact p{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:0 0 12px;
  line-height:1.5;
}
.footer-col-contact p > i{
  flex-shrink:0;
  width:1.25em;
  text-align:center;
  color:#375685;
  font-size:1rem;
  line-height:inherit;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:0.22em;
}
.footer-social{
  margin-top:14px;
  display:flex;
  gap:10px;
}
.footer-social a{
  width:32px;
  height:32px;
  border:1px solid #bfd0e4;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#375685;
  background:linear-gradient(180deg,#ffffff 0%,#eef4fc 100%);
}
.footer-social a:hover{
  transform:translateY(-2px);
  color:#26446e;
}
.foot-base{
  margin-top:20px;
  border-top:1px solid #c2d2e6;
  padding-top:16px;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px;
  color:#7287a8;
  font-size:.88rem;
}
.form-shell{
  max-width:980px;
  margin:16px auto;
}
.form-card{
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--bubble-ice);
  overflow:hidden;
  box-shadow:var(--shadow);
}
.form-head{
  border-bottom:1px solid var(--line-soft);
  padding:14px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  background:linear-gradient(180deg,rgba(255,255,255,.75) 0%,#f2f6fb 100%);
}
.form-body{padding:14px}
.btn-back{
  border:1px solid var(--line-soft);
  color:#355078;
  border-radius:var(--btn-radius);
  text-decoration:none;
  padding:8px 12px;
  font-weight:600;
  transition:all .2s ease;
  background:var(--bubble-azure);
}
.btn-back:hover{
  color:#243a5c;
  transform:translateY(-1px);
}
.form-label{font-weight:600;margin-bottom:4px}
.form-control,.form-select{
  border-color:var(--line-soft);
  background:#fff;
  color:#1d2a3f;
}
.form-control:focus,.form-select:focus{
  border-color:#7fa4df;
  box-shadow:0 0 0 .2rem rgba(79,140,255,.22);
  background:#fff;
  color:#1d2a3f;
}
.form-control::placeholder{color:#8ca0bd}
.modern-input{
  border:1.6px solid #c6d4e8 !important;
  border-radius:12px !important;
  background:#fff;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.modern-input:focus{
  border-color:#6897df !important;
  box-shadow:0 0 0 .2rem rgba(79,140,255,.17) !important;
}
.is-invalid.modern-input{
  border-color:#dc3545 !important;
  box-shadow:0 0 0 .14rem rgba(220,53,69,.15) !important;
}
.apply-fullscreen-modal .invalid-feedback{
  font-size:.78rem;
  font-weight:600;
}
.apply-fullscreen-modal .form-check-input.is-invalid{
  border-color:#dc3545;
}
.choices{
  margin-bottom:0;
  position:relative;
  z-index:2;
}
.apply-fullscreen-modal .choices.is-open{
  z-index:1080;
}
.choices__inner{
  min-height:38px;
  border-radius:12px;
  border:1.6px solid #c6d4e8;
  background:linear-gradient(180deg,#ffffff 0%,#f7fafc 100%);
  padding:4px 10px 3px;
}
.choices.is-open .choices__inner{
  border-radius:12px;
}
.is-invalid + .choices .choices__inner,
.choices.is-invalid .choices__inner{
  border-color:#dc3545 !important;
}
.choices__list--single{
  padding:4px 18px 4px 2px;
}
.choices[data-type*=select-one]::after{
  right:12px;
}
/* Un seul contour : bordure uniquement sur le wrapper, pas sur .choices__list interne */
.choices__list--dropdown{
  border-radius:12px;
  border:1px solid #c6d4e8;
  overflow:hidden;
  margin-top:6px;
  background:var(--bubble-ice);
  box-shadow:0 8px 20px rgba(23,42,66,.1);
  z-index:1081;
}
.choices__list--dropdown .choices__list,
.choices__list--dropdown .choices__list[role="listbox"]{
  border:0 !important;
  box-shadow:none !important;
  border-radius:0 !important;
  background:transparent !important;
}
.choices__list--dropdown .choices__item{
  border-radius:0;
}
.choices__list--dropdown .choices__item--selectable{
  padding:10px 12px;
  font-size:.92rem;
}
.choices__list--dropdown .choices__item--selectable.is-highlighted{
  background:#eef6ff;
  color:var(--text);
}
.choices__list--dropdown.is-flipped{
  margin-top:0;
  margin-bottom:6px;
}
.apply-fullscreen-modal .modal-content{
  border:0;
  background:linear-gradient(180deg,#f4f7fb 0%,#e8edf5 100%);
}
.apply-fullscreen-modal .apply-modal-header{
  display:flex;
  justify-content:center;
  align-items:flex-start;
  padding:12px 16px;
  border-bottom:1px solid #d9e2ef;
  background:var(--bubble-azure);
}
.apply-fullscreen-modal .apply-modal-header-row{
  width:100%;
  max-width:980px;
  margin:0 auto;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.apply-fullscreen-modal .apply-modal-close{
  margin:2px 0 0 0 !important;
  padding:10px !important;
  flex-shrink:0;
  align-self:flex-start;
}
.apply-fullscreen-modal .modal-body{
  padding:16px;
  overflow:auto;
  background:linear-gradient(180deg,#eef3fa 0%,#e4eaf4 100%);
}
.apply-form-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
  align-items:center;
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid #e4ebf4;
  max-width:900px;
  margin-left:auto;
  margin-right:auto;
}
.apply-form-wrap{
  width:100%;
  display:flex;
  justify-content:center;
}
.apply-form-card{
  width:min(980px, 100%);
  background:var(--bubble-ice);
  border:1px solid #d8e2ef;
  border-radius:16px;
  box-shadow:0 12px 24px rgba(26,48,79,.08);
  padding:16px;
  margin:6px auto 2px;
}
.apply-form-card .row{
  max-width:900px;
  margin:0 auto;
}
.apply-fullscreen-modal .form-label{
  margin-bottom:4px;
  font-weight:600;
}
.apply-fullscreen-modal .form-control,
.apply-fullscreen-modal .form-select{
  min-height:38px;
}
.js-reveal{
  opacity:0;
  transform:translateY(14px);
}
.js-reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}
/* Alertes dans les cartes */
.section-card .alert-success{
  background:linear-gradient(180deg,#ecfdf5 0%,#d1fae5 100%);
  border:1px solid #6ee7b7;
  color:#065f46;
}
.section-card .alert-danger{
  background:linear-gradient(180deg,#fef2f2 0%,#fee2e2 100%);
  border:1px solid #fca5a5;
  color:#991b1b;
}
.form-body .alert-danger{
  background:linear-gradient(180deg,#fef2f2 0%,#fee2e2 100%);
  border:1px solid #fca5a5;
  color:#991b1b;
}
@media (max-width:1200px){
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:991px){
  .hero-grid{grid-template-columns:1fr}
  .main-nav{
    display:none;
    width:100%;
    margin:8px 0 0;
    border-top:1px solid var(--line);
    padding-top:10px;
    flex-wrap:wrap;
    gap:10px 14px;
  }
  .main-nav.open{display:flex}
  .top-nav{
    flex-wrap:wrap;
    min-height:unset;
    padding:10px 0;
  }
}
@media (max-width:760px){
  .page{padding:12px 0 20px}
  .section-card{padding:12px}
  .stat-grid,.grid-3,.grid-4,.steps,.footer-grid{grid-template-columns:1fr}
  .band{grid-template-columns:1fr}
  .photo{height:220px}
  .apply-fullscreen-modal .apply-modal-header,
  .apply-fullscreen-modal .modal-body{
    padding:10px;
  }
  .apply-form-card{
    padding:12px;
    border-radius:12px;
  }
}
