/* Smart Tech — simulateurs et formulaires (rendu de design/source-dc/Simulateur.dc.html, charte version E). */
.st-sim { max-width: 820px; margin: 0 auto; display: flex; flex-direction: column; gap: 28px; font-family: var(--st-font-texte, 'Red Hat Text', sans-serif); color: var(--st-texte, #061E3F); }
.st-sim__progress { display: flex; flex-direction: column; gap: 10px; }
.st-sim__progress-ligne { display: flex; justify-content: space-between; font-size: 13px; letter-spacing: .06em; color: var(--st-texte-2, #4A5D7A); }
.st-sim__barre { height: 6px; background: var(--st-filet, #E2E8F0); border-radius: 3px; overflow: hidden; }
.st-sim__barre-fill { height: 100%; background: var(--st-bleu, #1E56C8); border-radius: 3px; transition: width .3s ease; }
.st-sim__carte { background: #fff; border: 1px solid var(--st-filet, #E2E8F0); border-radius: 8px; padding: 40px; display: flex; flex-direction: column; gap: 28px; }
.st-sim__tete { display: flex; flex-direction: column; gap: 10px; }
.st-sim__tete--nuit { background: var(--st-nuit, #061E3F); color: #fff; border-radius: 8px; padding: 36px 40px; margin: -40px -40px 0; }
.st-sim__tete--nuit .st-sim__kicker { color: var(--st-vert-sombre, #2FBF8F); }
.st-sim__tete--nuit .st-sim__titre { color: #fff; }
.st-sim__tete--nuit .st-sim__aide { color: var(--st-texte-inverse, #C9D5E6); }
.st-sim__kicker { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--st-vert, #1C8C67); font-weight: 600; }
.st-sim__titre { font-family: var(--st-font-titres, 'Red Hat Display', sans-serif); margin: 0; font-size: 32px; line-height: 1.2; font-weight: 600; letter-spacing: -.02em; outline: none; }
.st-sim__titre strong { color: var(--st-bleu, #1E56C8); }
.st-sim__sous-titre { font-size: 20px; margin: 8px 0 0; font-weight: 600; }
.st-sim__aide { margin: 0; font-size: 16px; line-height: 1.55; color: var(--st-texte-2, #4A5D7A); }
.st-sim__options { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.st-sim__option { font-family: inherit; text-align: left; background: #fff; border: 1.5px solid #C9D5E6; border-radius: 6px; padding: 18px 20px; font-size: 17px; font-weight: 500; color: var(--st-texte, #061E3F); cursor: pointer; min-height: 64px; transition: border-color .15s ease, background-color .15s ease; }
.st-sim__option:hover { border-color: var(--st-bleu, #1E56C8); }
.st-sim__option.est-choisi { border-color: var(--st-bleu, #1E56C8); background: var(--st-badge-bleu, #E8EFFC); }
.st-sim__option--multi::before { content: ""; display: inline-block; width: 18px; height: 18px; border: 1.5px solid #C9D5E6; border-radius: 3px; margin-right: 12px; vertical-align: -3px; background: #fff; }
.st-sim__option--multi.est-choisi::before { background: var(--st-bleu, #1E56C8); border-color: var(--st-bleu, #1E56C8); box-shadow: inset 0 0 0 3px #fff; }
.st-sim__label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 500; grid-column: 1 / -1; }
.st-sim__input { font-family: inherit; font-size: 18px; padding: 14px 16px; border: 1px solid #AFC0D8; border-radius: 4px; min-height: 52px; background: #fff; color: inherit; width: 100%; }
.st-sim__input:focus { outline: 2px solid var(--st-bleu, #1E56C8); outline-offset: 1px; }
.st-sim__actions { grid-column: 1 / -1; display: flex; gap: 16px; align-items: center; flex-wrap: wrap; margin-top: 8px; }
.st-sim__retour { align-self: flex-start; font-family: inherit; background: none; border: 0; color: var(--st-bleu, #1E56C8); font-size: 15px; font-weight: 600; cursor: pointer; padding: 8px 0; min-height: 44px; }
.st-sim__flou { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.st-sim__flou span { height: 72px; border-radius: 6px; background: linear-gradient(90deg, #E8EFFC, #F4F6F9); filter: blur(4px); }
.st-sim__table-wrap { overflow-x: auto; border: 1px solid var(--st-filet, #E2E8F0); border-radius: 6px; }
.st-sim__table { width: 100%; border-collapse: collapse; font-size: 15px; min-width: 560px; }
.st-sim__table th, .st-sim__table td { padding: 10px 12px; border-bottom: 1px solid var(--st-filet, #E2E8F0); text-align: left; vertical-align: middle; }
.st-sim__table thead th { background: var(--st-brume, #F4F6F9); font-weight: 600; }
.st-sim__table th small { display: block; font-weight: 400; color: var(--st-texte-3, #5B6F8C); font-size: 12px; line-height: 1.3; }
.st-sim__table input { width: 100%; font-family: inherit; font-size: 15px; padding: 8px 10px; border: 1px solid #AFC0D8; border-radius: 4px; min-width: 110px; text-align: right; }
.st-sim__table input.est-invalide { border-color: #B42318; background: #FDF0E6; }
.st-sim__total th, .st-sim__total td { font-weight: 600; background: var(--st-brume, #F4F6F9); }
.st-sim__bandeau { margin: 0; font-size: 14px; line-height: 1.55; color: #5E3410; background: #FBEFE3; border-left: 4px solid #B5651D; border-radius: 0 6px 6px 0; padding: 12px 16px; }
.st-sim__bandeau--alerte a { color: #8A4A12; }
.st-sim__bloc { border: 1px solid var(--st-filet, #E2E8F0); border-left-width: 4px; border-radius: 6px; padding: 22px 24px; display: flex; flex-direction: column; gap: 10px; }
.st-sim__bloc--rouge { border-left-color: #B4581C; } .st-sim__bloc--orange { border-left-color: #FFB27A; } .st-sim__bloc--bleu { border-left-color: #1E56C8; } .st-sim__bloc--vert { border-left-color: #1C8C67; } .st-sim__bloc--violet { border-left-color: #6E5BD6; }
.st-sim__bloc-titre { margin: 0; font-size: 19px; font-weight: 600; font-family: var(--st-font-texte, 'Red Hat Text', sans-serif); }
.st-sim__bloc-detail { margin: 0; font-size: 16px; line-height: 1.6; color: #33465F; }
.st-sim__bloc-detail ul { margin: 0; padding-left: 20px; }
.st-sim__bloc-complement { margin: 0; font-size: 15px; line-height: 1.55; color: #33465F; padding: 10px 14px; background: var(--st-brume, #F4F6F9); border-radius: 4px; }
.st-sim__bloc-ref { margin: 0; font-size: 13px; color: var(--st-texte-3, #5B6F8C); }
.st-sim__bloc-liens { margin: 0; display: flex; gap: 16px; flex-wrap: wrap; font-size: 14px; font-weight: 600; }
.st-sim__bloc-liens a::after { content: " →"; }
.st-sim__chiffres { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.st-sim__chiffre { border: 1px solid var(--st-filet, #E2E8F0); border-radius: 6px; padding: 16px 18px; display: flex; flex-direction: column; gap: 6px; }
.st-sim__chiffre--fort { background: var(--st-nuit, #061E3F); color: #fff; border-color: var(--st-nuit, #061E3F); }
.st-sim__chiffre-legende { font-size: 13px; color: var(--st-texte-2, #4A5D7A); }
.st-sim__chiffre--fort .st-sim__chiffre-legende { color: var(--st-texte-inverse, #C9D5E6); }
.st-sim__chiffre-valeur { font-family: var(--st-font-titres, 'Red Hat Display', sans-serif); font-size: 20px; font-weight: 600; letter-spacing: -.01em; }
.st-sim__graphique { width: 100%; height: auto; border: 1px solid var(--st-filet, #E2E8F0); border-radius: 6px; background: #fff; }
.st-sim__jauge { padding: 28px 0 8px; }
.st-sim__jauge-fond { position: relative; height: 10px; border-radius: 5px; background: linear-gradient(90deg, #BFE6D6 0%, #FFB27A 55%, #B4581C 100%); }
.st-sim__jauge-rep { position: absolute; top: -6px; width: 2px; height: 22px; background: var(--st-nuit, #061E3F); }
.st-sim__jauge-rep::after { content: attr(data-l); position: absolute; top: -22px; left: 50%; transform: translateX(-50%); font-size: 12px; white-space: nowrap; color: var(--st-texte-2, #4A5D7A); }
.st-sim__jauge-curseur { position: absolute; top: -7px; width: 24px; height: 24px; margin-left: -12px; border-radius: 999px; background: var(--st-bleu, #1E56C8); border: 3px solid #fff; box-shadow: 0 0 0 2px var(--st-bleu, #1E56C8); }
.st-sim__barres { display: flex; flex-direction: column; gap: 8px; font-size: 14px; }
.st-sim__barre-ligne { display: grid; grid-template-columns: 180px 1fr 64px; gap: 12px; align-items: center; }
.st-sim__barre-fond { height: 10px; background: var(--st-filet, #E2E8F0); border-radius: 5px; overflow: hidden; }
.st-sim__barre-val { display: block; height: 100%; background: var(--st-bleu, #1E56C8); }
.st-sim__famille { display: flex; flex-direction: column; gap: 12px; }
.st-sim__fiche { border: 1px solid var(--st-filet, #E2E8F0); border-radius: 6px; padding: 18px 20px; display: flex; flex-direction: column; gap: 8px; font-size: 15px; }
.st-sim__fiche p { margin: 0; } .st-sim__fiche ul { margin: 0; padding-left: 20px; color: #33465F; }
.st-sim__fiche-tete { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; font-size: 17px; }
.st-sim__prochaine { background: var(--st-brume, #F4F6F9); border-radius: 8px; padding: 28px; display: flex; flex-direction: column; gap: 14px; }
.st-sim__prochaine p { margin: 0; color: #33465F; }
/* Formulaires (contact, livre blanc, capture de lead) */
.st-form { display: flex; flex-direction: column; gap: 16px; }
.st-form__grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.st-form__champ { display: flex; flex-direction: column; gap: 4px; }
.st-form label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 500; }
.st-form input[type=text], .st-form input[type=email], .st-form input[type=tel], .st-form select, .st-form textarea { font-family: inherit; font-size: 16px; padding: 13px 14px; border: 1px solid #AFC0D8; border-radius: 4px; background: #fff; min-height: 48px; width: 100%; color: inherit; }
.st-form input:focus, .st-form select:focus, .st-form textarea:focus { outline: 2px solid var(--st-bleu, #1E56C8); outline-offset: 1px; }
.st-form__consent { flex-direction: row !important; gap: 10px !important; align-items: flex-start; font-size: 13px !important; line-height: 1.5; color: var(--st-texte-2, #4A5D7A); font-weight: 400 !important; }
.st-form__consent input { margin-top: 3px; width: 18px; height: 18px; flex: none; }
.st-form__rgpd { font-size: 12px; line-height: 1.5; color: var(--st-texte-3, #5B6F8C); margin: 0; }
.st-form__erreur { color: #B42318; font-size: 13px; margin: 0; }
.st-form__avertissement { color: #8A4A12; font-size: 13px; margin: 0; background: #FDF0E6; padding: 8px 12px; border-radius: 4px; }
.st-form__succes { background: #EEF9F4; color: #0B3B33; border-left: 4px solid #1C8C67; padding: 14px 18px; border-radius: 0 6px 6px 0; font-size: 15px; }
.st-form__piege { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.st-form button[disabled] { opacity: .55; cursor: not-allowed; }
@media (max-width: 767px) {
  .st-sim__carte { padding: 24px 20px; gap: 22px; }
  .st-sim__tete--nuit { margin: -24px -20px 0; padding: 28px 20px; }
  .st-sim__titre { font-size: 24px; }
  .st-sim__options { grid-template-columns: 1fr; }
  .st-sim__barre-ligne { grid-template-columns: 1fr; gap: 4px; }
  .st-sim__flou { grid-template-columns: 1fr 1fr; }
}
