@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

:root{
  --orange:#EC7B35;
  --orange-d:#d46b28;
  --orange-l:#fff5ed;
  --navy:#1a2e4a;
  --navy-d:#0f1d33;
  --gray-1:#f8fafc;
  --gray-2:#f1f5f9;
  --gray-3:#e2e8f0;
  --gray-4:#cbd5e1;
  --gray-5:#94a3b8;
  --gray-6:#64748b;
  --red:#e11d48;
}

body,html{
  font-family:'Plus Jakarta Sans',system-ui,-apple-system,sans-serif !important;
  color:var(--navy) !important;
  background:#fff !important;
  -webkit-font-smoothing:antialiased;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}

/* Masquer les éléments en doublon avec le parent */
.ca-header,
.ca-title-strip,
.ca-service-label,
.equivH3,
.ca-progress-strip{display:none !important}

.ca-content{padding-top:0 !important}

/* Masquer les progress bars en doublon dans chaque tab-pane (chaque step en a une) */
.tab-pane .progress,
.tab-pane .progress-bar,
.progress.center-block{display:none !important}

/* Masquer la progress bar du wizard (gardée par .ca-progress-strip en haut) */
#rootwizard > .container .progress,
#rootwizard > .container,
.progress.progress-striped.active{display:none !important}

.ca-content{
  max-width:100% !important;
  margin:0 !important;
  padding:0 !important;
}

#conteneur_ws{padding:0 !important;max-width:100% !important;width:100% !important;margin:0 !important}

#wizard{
  max-width:100% !important;
  margin:0 !important;
  padding:0 !important;
  background:#fff !important;
  border:none !important;
  box-shadow:none !important;
}

.page-header{
  border:none !important;
  margin:0 !important;
  padding:0 0 18px !important;
  background:transparent !important;
}
.page-header h3{
  font-family:'Plus Jakarta Sans',sans-serif !important;
  font-size:1.45rem !important;
  font-weight:800 !important;
  color:var(--navy) !important;
  margin:0 !important;
  padding:0 0 0 18px !important;
  border-left:4px solid var(--orange) !important;
  line-height:1.25 !important;
}

#rootwizard{
  margin:0 !important;
  padding:0 !important;
}

#rootwizard > .container{
  max-width:100% !important;
  width:100% !important;
  padding:0 !important;
  margin:0 0 28px !important;
}

.progress.progress-striped,
.progress{
  width:100% !important;
  max-width:100% !important;
  height:6px !important;
  background:var(--gray-2) !important;
  border-radius:6px !important;
  overflow:hidden !important;
  margin:0 !important;
  box-shadow:none !important;
  border:none !important;
}
.progress .bar{
  background:linear-gradient(90deg,var(--orange) 0%,var(--orange-d) 100%) !important;
  border-radius:6px !important;
  transition:width .55s cubic-bezier(.4,0,.2,1) !important;
  box-shadow:0 1px 4px rgba(236,123,53,.35) !important;
  height:6px !important;
}
.progress.progress-striped .bar{background-image:none !important}
.progress.progress-striped.active .bar{animation:none !important}

#subtitle{
  font-family:'Plus Jakarta Sans',sans-serif !important;
  font-size:1.15rem !important;
  font-weight:800 !important;
  color:var(--navy) !important;
  margin:0 0 24px !important;
  padding:0 0 0 18px !important;
  border-left:4px solid var(--orange) !important;
  line-height:1.3 !important;
}

.tab-content{padding:0 !important;background:transparent !important;border:none !important}
.tab-pane{padding:0 !important}

/* Icon cards (Vous / Couple, 1 prêt / 2 prêts) */
.row-fluid{
  display:flex !important;
  gap:14px !important;
  flex-wrap:nowrap !important;
  width:auto !important;
  max-width:100% !important;
  margin:0 0 18px !important;
  padding:0 18px !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
}
.row-fluid > .span6,
.row-fluid > [class*="span"]{
  flex:1 1 0 !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  margin:0 !important;
  float:none !important;
  box-sizing:border-box !important;
}
.btn.btn_emprunteur,
.btn.btn_prets,
.btn.btn_partenaires,
a.btn_emprunteur,
a.btn_prets,
a.btn_partenaires{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:14px !important;
  width:100% !important;
  min-height:160px !important;
  padding:24px 18px !important;
  background:#fff !important;
  background-color:#fff !important;
  background-image:none !important;
  border:1.5px solid var(--gray-3) !important;
  border-radius:4px !important;
  font-family:'Plus Jakarta Sans',sans-serif !important;
  font-size:.95rem !important;
  font-weight:600 !important;
  color:var(--navy) !important;
  text-align:center !important;
  line-height:1.4 !important;
  cursor:pointer !important;
  transition:border-color .2s ease,background-color .2s ease !important;
  text-decoration:none !important;
  box-shadow:none !important;
  text-shadow:none !important;
  white-space:normal !important;
}
.btn.btn_emprunteur:hover,
.btn.btn_prets:hover,
.btn.btn_partenaires:hover,
a.btn_emprunteur:hover,
a.btn_prets:hover,
a.btn_partenaires:hover,
.btn_emprunteur:focus,
.btn_prets:focus,
.btn_partenaires:focus{
  border-color:var(--orange) !important;
  background:var(--orange-l) !important;
  background-color:var(--orange-l) !important;
  background-image:none !important;
  color:var(--navy) !important;
  text-decoration:none !important;
  outline:none !important;
}
.btn.btn_emprunteur.active,
.btn.btn_prets.active,
.btn.btn_partenaires.active,
.btn.btn_emprunteur.selected,
.btn.btn_prets.selected,
.btn.btn_partenaires.selected,
a.btn_emprunteur.active,
a.btn_prets.active,
a.btn_partenaires.active{
  border-color:var(--orange) !important;
  background:var(--orange-l) !important;
  background-color:var(--orange-l) !important;
  background-image:none !important;
  box-shadow:0 0 0 1px var(--orange) inset !important;
}
.btn_emprunteur img,
.btn_prets img,
.btn_partenaires img{
  max-width:64px !important;
  max-height:64px !important;
  filter:brightness(0) saturate(100%) invert(50%) sepia(82%) saturate(2876%) hue-rotate(345deg) brightness(91%) contrast(91%);
  transition:filter .2s !important;
}
.btn_emprunteur:hover img,
.btn_prets:hover img,
.btn_partenaires:hover img,
.btn_emprunteur.active img,
.btn_prets.active img,
.btn_partenaires.active img{
  filter:brightness(0) saturate(100%) invert(50%) sepia(82%) saturate(2876%) hue-rotate(345deg) brightness(91%) contrast(91%);
}

/* Form inputs : tous les control-group dans un seul bloc blanc avec séparateurs */
.tab-pane:has(.control-group){
  background:#fff !important;
  border:1px solid var(--gray-3) !important;
  border-radius:4px !important;
  padding:0 !important;
  margin:0 !important;
  overflow:visible !important;
}
/* Tab-pane container sur step 3 et + : pas de hauteur fixe */
.tab-content{height:auto !important;overflow:visible !important;max-height:none !important}
.tab-pane.active{display:block !important}
#form_ws,#wizard,#rootwizard{
  max-height:none !important;
  height:auto !important;
  overflow:visible !important;
}
.form-panel{
  background:transparent !important;
  border:none !important;
  padding:0 !important;
  margin:0 !important;
  box-shadow:none !important;
}
.control-group{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:14px !important;
  margin:0 !important;
  padding:14px 18px !important;
  background:transparent !important;
  background-color:transparent !important;
  border:none !important;
  border-bottom:1px solid var(--gray-2) !important;
  border-radius:0 !important;
  transition:background-color .15s;
}
.control-group:last-child{border-bottom:none !important}
.control-group:focus-within{
  background:var(--orange-l) !important;
  border-color:var(--gray-2) !important;
  box-shadow:none !important;
}
.control-label{
  font-family:'Plus Jakarta Sans',sans-serif !important;
  font-size:.92rem !important;
  font-weight:600 !important;
  color:var(--navy) !important;
  margin:0 !important;
  padding:0 !important;
  flex:1 1 auto !important;
  text-align:left !important;
  width:auto !important;
}
.controls{
  margin:0 !important;
  flex:0 0 auto !important;
}
.input-append{
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
  margin:0 !important;
}
.input-append input{
  border:none !important;
  background:transparent !important;
  padding:0 !important;
  margin:0 !important;
  font-size:1.05rem !important;
  font-weight:700 !important;
  color:var(--navy) !important;
  text-align:right !important;
  width:auto !important;
  min-width:80px !important;
  max-width:140px !important;
  outline:none !important;
  box-shadow:none !important;
  height:auto !important;
  font-variant-numeric:tabular-nums !important;
}
.input-append input:focus{
  box-shadow:none !important;
  border:none !important;
  background:transparent !important;
}
.input-append .add-on{
  display:inline-flex !important;
  align-items:center !important;
  background:transparent !important;
  border:none !important;
  padding:0 !important;
  margin:0 !important;
  font-size:1rem !important;
  font-weight:700 !important;
  color:var(--gray-5) !important;
  height:auto !important;
}

/* Inputs hors input-append */
.controls input[type="text"],
.controls input[type="email"],
.controls input[type="tel"],
.controls input[type="number"],
.controls input[type="date"],
.controls select,
input.text-input,
form input[type="text"]:not(.input-append input),
form input[type="email"],
form input[type="tel"],
form select{
  font-family:'Plus Jakarta Sans',sans-serif !important;
  font-size:.95rem !important;
  font-weight:600 !important;
  color:var(--navy) !important;
  background:#fff !important;
  border:1.5px solid var(--gray-3) !important;
  border-radius:10px !important;
  padding:10px 14px !important;
  outline:none !important;
  box-shadow:none !important;
  transition:border-color .2s,box-shadow .2s !important;
  min-width:160px !important;
  height:auto !important;
}
.controls input:focus,
.controls select:focus,
form input:focus,
form select:focus{
  border-color:var(--orange) !important;
  box-shadow:0 0 0 3px var(--orange-l) !important;
  background:#fff !important;
}

/* Selects custom arrow */
.controls select,
form select{
  padding-right:38px !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23EC7B35' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 12px center !important;
  appearance:none !important;
  -webkit-appearance:none !important;
  -moz-appearance:none !important;
  cursor:pointer !important;
}

/* Radio inline */
.radio.inline,
label.radio{
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
  margin:0 12px 0 0 !important;
  padding:0 !important;
  font-size:.92rem !important;
  font-weight:600 !important;
  color:var(--navy) !important;
}
.radio.inline input[type="radio"],
label.radio input[type="radio"]{
  appearance:none !important;
  -webkit-appearance:none !important;
  width:18px !important;
  height:18px !important;
  border:2px solid var(--gray-4) !important;
  border-radius:50% !important;
  background:#fff !important;
  margin:0 !important;
  cursor:pointer !important;
  transition:all .2s !important;
}
.radio.inline input[type="radio"]:checked,
label.radio input[type="radio"]:checked{
  border-color:var(--orange) !important;
  background:var(--orange) !important;
  box-shadow:inset 0 0 0 4px #fff !important;
}

/* Help text / popover triggers */
.help{
  color:var(--gray-5) !important;
  font-size:.8rem !important;
  margin-left:6px !important;
}

/* Pager (Précédent / Suivant) */
.pager.wizard{
  list-style:none !important;
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  margin:24px 0 0 !important;
  padding:18px !important;
  border-top:1px solid var(--gray-2) !important;
  background:var(--gray-1) !important;
  border-bottom-left-radius:4px !important;
  border-bottom-right-radius:4px !important;
  gap:12px !important;
  width:100% !important;
  box-sizing:border-box !important;
}
.pager.wizard li{
  margin:0 !important;
  list-style:none !important;
}
.pager.wizard li.previous,
.pager.wizard li.next,
.pager.wizard li.previous_first_disabled{
  margin:0 !important;
}
.pager.wizard li a,
.pager.wizard li.previous a,
.pager.wizard li.next a,
.pager.wizard a{
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
  padding:11px 24px !important;
  background:#fff !important;
  background-image:none !important;
  border:1.5px solid var(--gray-3) !important;
  border-radius:50px !important;
  color:var(--gray-6) !important;
  font-family:'Plus Jakarta Sans',sans-serif !important;
  font-size:.85rem !important;
  font-weight:700 !important;
  text-decoration:none !important;
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
  cursor:pointer !important;
  transition:all .2s ease !important;
  box-shadow:none !important;
  text-shadow:none !important;
}
.pager.wizard li a:hover,
.pager.wizard a:hover{
  border-color:var(--gray-4) !important;
  text-decoration:none !important;
}
.pager.wizard li.next a,
.pager.wizard a.next,
.pager.wizard li a.btn-primary{
  background:linear-gradient(135deg,var(--orange) 0%,var(--orange-d) 100%) !important;
  color:#fff !important;
  border-color:transparent !important;
  box-shadow:0 8px 24px -6px rgba(236,123,53,.5) !important;
  padding:12px 28px !important;
}
.pager.wizard li.next a:hover{
  transform:translateY(-1px) !important;
  box-shadow:0 12px 28px -8px rgba(236,123,53,.55) !important;
}
/* Vraiment premier step : caché entièrement */
.pager.wizard li.previous_first_disabled{
  visibility:hidden !important;
  display:none !important;
}
/* Sur les autres steps, le bouton "Précédent" reste visible et cliquable */
.pager.wizard li.previous{
  visibility:visible !important;
}
.pager.wizard li.previous a{
  cursor:pointer !important;
  opacity:1 !important;
}
.pager.wizard li.previous.disabled a{
  color:var(--gray-4) !important;
  opacity:.6 !important;
}

/* Generic .btn (other action buttons) */
.btn{
  font-family:'Plus Jakarta Sans',sans-serif !important;
  font-weight:600 !important;
  border-radius:10px !important;
  text-shadow:none !important;
  background-image:none !important;
}
.btn-primary,
.comparer{
  background:linear-gradient(135deg,var(--orange) 0%,var(--orange-d) 100%) !important;
  color:#fff !important;
  border:none !important;
  padding:12px 28px !important;
  border-radius:50px !important;
  font-size:.9rem !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
  box-shadow:0 8px 24px -6px rgba(236,123,53,.5) !important;
  transition:all .2s ease !important;
  cursor:pointer !important;
  text-decoration:none !important;
}
.btn-primary:hover,
.comparer:hover{
  transform:translateY(-1px) !important;
  box-shadow:0 12px 28px -8px rgba(236,123,53,.55) !important;
  color:#fff !important;
}

/* Popover styling */
.popover{
  border:1px solid var(--gray-3) !important;
  border-radius:12px !important;
  box-shadow:0 10px 30px -8px rgba(15,29,51,.18) !important;
  padding:0 !important;
}
.popover-content{
  font-family:'Plus Jakarta Sans',sans-serif !important;
  font-size:.85rem !important;
  color:var(--navy) !important;
  padding:14px 18px !important;
  line-height:1.5 !important;
}

/* Fix Bootstrap remnants */
.container-fluid,.container{padding-left:0 !important;padding-right:0 !important}

/* Messages de succès : texte vert simple */
.alert-success,
.alert.alert-success,
#success_form,
.txt_confirmation,
.success-message{
  font-family:'Plus Jakarta Sans',sans-serif !important;
  font-size:.95rem !important;
  color:#16a34a !important;
  line-height:1.7 !important;
  padding:0 !important;
  background:transparent !important;
  background-color:transparent !important;
  border:none !important;
  border-radius:0 !important;
  font-weight:500 !important;
  margin:0 !important;
  box-shadow:none !important;
  text-shadow:none !important;
  background-image:none !important;
}

/* Errors */
.error-message,
.has-error,
.help-block.error{
  color:var(--red) !important;
  font-size:.82rem !important;
  font-weight:700 !important;
  margin-top:6px !important;
}
input.error,
select.error{
  border-color:var(--red) !important;
  box-shadow:0 0 0 3px rgba(225,29,72,.12) !important;
}

/* Datepicker (bootstrap-datepicker) */
.datepicker{
  font-family:'Plus Jakarta Sans',sans-serif !important;
  border:1px solid var(--gray-3) !important;
  border-radius:10px !important;
  box-shadow:0 8px 24px -8px rgba(15,29,51,.18) !important;
}
.datepicker td.active,
.datepicker td.active:hover,
.datepicker td span.active{
  background:var(--orange) !important;
  background-image:none !important;
  border:none !important;
  color:#fff !important;
}

/* Mobile (vraie petite largeur seulement) */
@media(max-width:520px){
  .row-fluid{flex-direction:column !important;gap:10px !important}
  .row-fluid .span6{flex:1 1 100% !important;width:100% !important}
  .btn_emprunteur,.btn_prets,.btn_partenaires{min-height:130px !important;padding:18px !important}
  .btn_emprunteur img,.btn_prets img,.btn_partenaires img{max-width:48px !important;max-height:48px !important}
  .control-group{flex-direction:column !important;align-items:stretch !important;gap:8px !important}
  .control-label{width:100% !important}
  .controls{width:100% !important}
  .input-append input{flex:1 1 auto !important;max-width:100% !important;text-align:left !important}
  .controls input,.controls select{width:100% !important}
  .pager.wizard li a{padding:10px 18px !important;font-size:.78rem !important}
  .page-header h3{font-size:1.15rem !important}
  #subtitle{font-size:1rem !important}
}

/* ─── TABLEAU RÉSULTATS COMPARATEUR (caché si vide) ─── */
table#alptis:not(:has(tr.arial9_gris)){
  display:none !important;
}
table#alptis{
  width:100% !important;
  border:1px solid var(--gray-3) !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  font-family:'Plus Jakarta Sans',sans-serif !important;
  background:#fff !important;
  border-radius:4px !important;
  overflow:hidden !important;
  box-shadow:none !important;
  margin:18px 0 !important;
}
/* Container commentaires vide masqué */
#commentaires:empty{display:none !important}
table#alptis tr,
table#alptis td{
  border:none !important;
  border-top:none !important;
  border-left:none !important;
  border-right:none !important;
  border-bottom:1px solid var(--gray-2) !important;
  border-color:var(--gray-2) !important;
  font-family:'Plus Jakarta Sans',sans-serif !important;
  vertical-align:middle !important;
  padding:14px 16px !important;
  font-size:.88rem !important;
  color:var(--navy) !important;
  background:#fff !important;
}
table#alptis tr:last-child td{border-bottom:none !important}

/* Ligne titre principal */
table#alptis tr#alptis_titre:first-child{
  background:linear-gradient(135deg,var(--navy) 0%,var(--navy-d) 100%) !important;
}
table#alptis tr#alptis_titre:first-child td{
  background:transparent !important;
  border:none !important;
  padding:18px 16px !important;
  text-align:center !important;
}
table#alptis tr#alptis_titre:first-child h5{
  font-family:'Plus Jakarta Sans',sans-serif !important;
  font-size:1.05rem !important;
  font-weight:700 !important;
  color:#fff !important;
  margin:0 !important;
  letter-spacing:.02em !important;
}

/* Ligne header (Assurance / Montant / Garanties / Liens) */
table#alptis tr#alptis_titre:nth-child(2){
  background:var(--gray-1) !important;
}
table#alptis tr#alptis_titre:nth-child(2) td{
  background:var(--gray-1) !important;
  font-family:'Plus Jakarta Sans',sans-serif !important;
  font-size:.7rem !important;
  font-weight:800 !important;
  color:var(--gray-6) !important;
  text-transform:uppercase !important;
  letter-spacing:.1em !important;
  padding:14px 16px !important;
  border-bottom:1px solid var(--gray-3) !important;
  text-align:center !important;
}

/* Lignes de résultat */
table#alptis tr.arial9_gris{
  font-family:'Plus Jakarta Sans',sans-serif !important;
  transition:background .15s ease !important;
}
table#alptis tr.arial9_gris:hover td{
  background:var(--orange-l) !important;
}
table#alptis tr.arial9_gris td{
  font-family:'Plus Jakarta Sans',sans-serif !important;
  font-size:.88rem !important;
  color:var(--navy) !important;
  font-weight:500 !important;
  padding:16px !important;
  background:#fff !important;
}

/* Logo de l'assurance (1ère colonne) */
table#alptis tr.arial9_gris td:first-child{
  text-align:center !important;
  width:140px !important;
  min-width:120px !important;
}
table#alptis tr.arial9_gris td:first-child img{
  max-width:100px !important;
  max-height:50px !important;
  object-fit:contain !important;
  display:inline-block !important;
}

/* Prix (2ème colonne) */
table#alptis tr.arial9_gris td:nth-child(2){
  font-weight:700 !important;
  color:var(--navy) !important;
  text-align:center !important;
  font-variant-numeric:tabular-nums !important;
  font-size:.92rem !important;
}

/* Garanties (3ème ou 4ème colonne) */
table#alptis tr.arial9_gris td:nth-last-child(2),
table#alptis tr.arial9_gris td:last-child{
  font-size:.78rem !important;
  color:var(--gray-6) !important;
  line-height:1.6 !important;
  text-align:left !important;
  font-weight:500 !important;
}

/* Bouton "Voir l'offre" / liens */
table#alptis td a{
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
  padding:8px 16px !important;
  background:linear-gradient(135deg,var(--orange) 0%,var(--orange-d) 100%) !important;
  color:#fff !important;
  font-size:.78rem !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
  border-radius:30px !important;
  text-decoration:none !important;
  box-shadow:0 4px 14px rgba(236,123,53,.3) !important;
  transition:all .2s !important;
}
table#alptis td a:hover{
  transform:translateY(-1px) !important;
  box-shadow:0 6px 18px rgba(236,123,53,.4) !important;
  color:#fff !important;
}

/* Override les anciennes règles */
table#alptis tr#alptis_titre,
.arial9_gris{
  background-color:transparent !important;
  border-color:transparent !important;
  color:inherit !important;
}

/* Mobile */
@media(max-width:720px){
  table#alptis{font-size:.78rem !important}
  table#alptis tr.arial9_gris td{padding:12px 8px !important;font-size:.78rem !important}
  table#alptis tr.arial9_gris td:first-child img{max-width:70px !important;max-height:36px !important}
  table#alptis tr.arial9_gris td:nth-last-child(2),
  table#alptis tr.arial9_gris td:last-child{font-size:.7rem !important}
  table#alptis tr#alptis_titre:nth-child(2) td{font-size:.62rem !important;letter-spacing:.06em !important}
}
