/* ==========================================================================
   Simulateurs : page d'un simulateur (bandeau, calculateur, résultat détaillé)
   et archive (cartes par famille). Les blocs de l'article sont dans blocs.css.
   ========================================================================== */

/* Bandeau ----------------------------------------------------------------- */
.ib-simhero { background: var(--ib-sand); }
.ib-simhero__in { padding-top: 22px; padding-bottom: 44px; display: flex; flex-direction: column; gap: 22px; }
.ib-simhero__head { display: flex; flex-direction: column; gap: 12px; align-items: center; text-align: center; }
.ib-simhero__h1 { font-family: var(--ib-serif); font-weight: 500; font-size: clamp(32px, 4.2vw, 50px); line-height: 1.06; letter-spacing: -.02em; margin: 0; max-width: 820px; text-wrap: balance; }
.ib-simhero__dek { font-size: 17px; line-height: 1.55; color: var(--ib-ink-2); margin: 0; max-width: 640px; text-wrap: pretty; }
.ib-simhero__tool { scroll-margin-top: 16px; }
.ib-simhero__byline { display: flex; justify-content: center; gap: 6px 18px; flex-wrap: wrap; font-size: 13px; color: var(--ib-muted); }
.ib-simhero__byline strong { color: var(--ib-ink); font-weight: 600; }

/* Calculateur : état « saisie » ------------------------------------------- */
.ib-sim { --sim-rule: var(--ib-rule); font-variant-numeric: tabular-nums; }
.ib-sim__tool { background: var(--ib-white); border: 1px solid var(--sim-rule); display: flex; flex-wrap: wrap; }
.ib-sim__tool[hidden], .ib-sim__detail[hidden], .ib-sim [hidden] { display: none !important; }
.ib-sim__form { flex: 3 1 380px; padding: 26px 28px; display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.ib-sim__field { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; border: 0; min-width: 0; }
.ib-sim__fieldhead { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 14px; }
.ib-sim__fieldhead label, .ib-sim__seg legend { font-weight: 500; font-size: 14px; }
.ib-sim__seg legend { padding: 0; margin-bottom: 8px; }
.ib-sim__pill { font-weight: 600; letter-spacing: -.01em; border: 1px solid var(--sim-rule); background: var(--ib-white); padding: 4px 10px; width: 132px; flex: none; text-align: right; font-size: 14px; font-variant-numeric: tabular-nums; }
.ib-sim__pill:hover { border-color: var(--ib-ink-3); }
.ib-sim__pill:focus { outline: 2px solid var(--ib-accent); outline-offset: 0; border-color: var(--ib-accent); }
.ib-sim input[type="range"] { width: 100%; margin: 0; height: 22px; cursor: pointer; }
.ib-sim__aide { margin: 0; font-size: 12px; line-height: 1.45; color: var(--ib-muted); }
.ib-sim__segs { display: flex; flex-wrap: wrap; gap: 6px; }
.ib-sim__segs label { position: relative; cursor: pointer; }
.ib-sim__segs input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.ib-sim__segs span { display: block; border: 1px solid var(--sim-rule); padding: 8px 14px; font-size: 13px; font-weight: 500; background: transparent; }
.ib-sim__segs label:hover span { border-color: var(--ib-ink); }
.ib-sim__segs input:checked + span { background: var(--ib-ink); color: var(--ib-paper); border-color: var(--ib-ink); }
.ib-sim__segs input:focus-visible + span { outline: 2px solid var(--ib-accent); outline-offset: 2px; }
.ib-sim__check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.4; cursor: pointer; }
.ib-sim__check input { width: 16px; height: 16px; margin: 2px 0 0; accent-color: var(--ib-accent); flex: none; }

.ib-sim__panel { flex: 2 1 300px; background: var(--ib-panel); padding: 26px 28px; display: flex; flex-direction: column; gap: 14px; border-left: 1px solid var(--sim-rule); }
.ib-sim__main { background: var(--ib-white); padding: 18px; text-align: center; display: flex; flex-direction: column; gap: 4px; }
.ib-sim__main > span { font-size: 13px; color: var(--ib-muted); }
.ib-sim__big { font-weight: 600; font-size: 44px; line-height: 1; color: var(--ib-accent); letter-spacing: -.03em; white-space: nowrap; }
.ib-sim__lines { display: flex; flex-direction: column; gap: 7px; font-size: 14px; }
.ib-sim__line { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.ib-sim__line > span { color: var(--ib-muted); }
.ib-sim__line > strong { font-weight: 600; text-align: right; white-space: nowrap; }
.ib-sim__line.is-neg > strong { color: var(--ib-red); }
.ib-sim__line.is-total { border-top: 1px solid var(--sim-rule); padding-top: 9px; margin-top: 2px; }
.ib-sim__line.is-total > span { color: var(--ib-ink); font-weight: 600; }
.ib-sim__line.is-total > strong { color: var(--ib-accent); font-size: 16px; }
.ib-sim__open { padding: 12px 16px; font-weight: 600; }
.ib-sim__mention { font-size: 12px; color: var(--ib-muted); text-align: center; }
.ib-sim__note { font-size: 12px; color: var(--ib-muted); text-align: center; margin: 12px auto 0; max-width: 80ch; }

/* Résultat détaillé ------------------------------------------------------- */
.ib-sim__detail { background: var(--ib-white); border: 1px solid var(--ib-ink); display: flex; flex-direction: column; outline: none; }
.ib-sim__bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 22px; border-bottom: 1px solid var(--sim-rule); }
.ib-sim__back { background: none; border: 0; cursor: pointer; font-weight: 500; font-size: 14px; padding: 0; }
.ib-sim__back:hover { color: var(--ib-accent); }
.ib-sim__acts { display: flex; gap: 8px; flex-wrap: wrap; }
.ib-sim__act { border: 1px solid var(--sim-rule); background: var(--ib-white); cursor: pointer; padding: 8px 12px; font-size: 13px; font-weight: 500; line-height: 1.2; }
.ib-sim__act:hover { border-color: var(--ib-ink); color: var(--ib-ink); }
.ib-sim__cols { display: flex; flex-wrap: wrap; }
.ib-sim__col { flex: 3 1 420px; padding: 26px 28px; display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.ib-sim__col--side { flex: 2 1 300px; background: var(--ib-panel); border-left: 1px solid var(--sim-rule); padding: 26px 24px; gap: 18px; }
.ib-sim__hero { display: flex; flex-direction: column; gap: 6px; }
.ib-sim__kick { font-family: var(--ib-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ib-accent); }
.ib-sim__lead { font-size: 15px; color: var(--ib-ink-2); }
.ib-sim__huge { font-weight: 600; font-size: clamp(40px, 6vw, 68px); line-height: 1; letter-spacing: -.035em; color: var(--ib-accent); }
.ib-sim__sub { font-size: 14px; line-height: 1.55; color: var(--ib-muted); }
.ib-sim__sub strong { color: var(--ib-ink); font-weight: 600; }
.ib-sim__block { display: flex; flex-direction: column; gap: 10px; }
.ib-sim__h { font-family: var(--ib-sans); font-size: 14px; font-weight: 600; margin: 0; }

/* Barre empilée et légende. Couleurs : accent (vert), ink (noir), sand (grège). */
.ib-sim__stack { display: flex; height: 28px; background: var(--ib-rule-3); }
.ib-sim__stack span { transition: width .25s ease; }
.ib-sim__legend { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.ib-sim__legend > span { display: flex; flex-direction: column; gap: 2px; padding-left: 10px; border-left: 3px solid; }
.ib-sim__legend > span > span { font-size: 12px; color: var(--ib-muted); }
.ib-sim__legend strong { font-weight: 600; font-size: 17px; }
.ib-sim__stack .ib-sim__c-accent { background: var(--ib-accent); }
.ib-sim__stack .ib-sim__c-ink { background: var(--ib-ink); }
.ib-sim__stack .ib-sim__c-sand { background: #C9C4B8; }
.ib-sim__legend .ib-sim__c-accent { border-color: var(--ib-accent); }
.ib-sim__legend .ib-sim__c-ink { border-color: var(--ib-ink); }
.ib-sim__legend .ib-sim__c-sand { border-color: #C9C4B8; }

/* Barres de comparaison (durées). */
.ib-sim__bars { display: flex; flex-direction: column; gap: 10px; }
.ib-sim__barrow { display: grid; grid-template-columns: 64px minmax(0, 1fr) minmax(110px, auto); gap: 12px; align-items: center; font-size: 14px; }
.ib-sim__barrow strong { text-align: right; font-weight: 600; white-space: nowrap; }
.ib-sim__barrow.is-on > span:first-child { font-weight: 600; }
.ib-sim__track { height: 10px; background: var(--ib-rule-3); position: relative; }
.ib-sim__track span { position: absolute; inset: 0 auto 0 0; background: #C9C4B8; transition: width .25s ease; }
.ib-sim__barrow.is-on .ib-sim__track span { background: var(--ib-accent); }
.ib-sim__barrow.is-neg .ib-sim__track span { background: #E1B3A7; }
.ib-sim__barrow.is-neg.is-on .ib-sim__track span { background: var(--ib-red); }
.ib-sim__barrow.is-neg strong { color: var(--ib-red); }

/* Chiffres clés. */
.ib-sim__kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--sim-rule); border: 1px solid var(--sim-rule); }
.ib-sim__kpis > div { background: var(--ib-white); padding: 14px; display: flex; flex-direction: column; gap: 4px; }
.ib-sim__kpis span { font-size: 12px; color: var(--ib-muted); }
.ib-sim__kpis strong { font-weight: 600; font-size: 20px; letter-spacing: -.01em; }

/* Jauge d'endettement. */
.ib-sim__gauge { display: flex; flex-direction: column; gap: 8px; }
.ib-sim__gauge-head { display: flex; justify-content: space-between; font-size: 13px; }
.ib-sim__gauge-head strong { font-weight: 600; }
.ib-sim__gauge-track { height: 10px; background: var(--ib-white); border: 1px solid var(--sim-rule); position: relative; }
.ib-sim__gauge-track span { position: absolute; inset: 0 auto 0 0; background: var(--ib-accent); transition: width .25s ease; }
.ib-sim__gauge-track i { position: absolute; top: -4px; bottom: -4px; width: 2px; background: var(--ib-ink); }
.ib-sim__gauge-scale { position: relative; display: flex; justify-content: space-between; font-family: var(--ib-mono); font-size: 11px; color: var(--ib-muted); }
.ib-sim__gauge-scale span[style] { position: absolute; transform: translateX(-50%); white-space: nowrap; }
.ib-sim__gauge-head .is-ok { color: var(--ib-accent); }
.ib-sim__gauge-head .is-ko { color: var(--ib-red); }
.ib-sim__gauge-track .is-ko { background: var(--ib-red); }

/* Encadré d'état. */
.ib-sim__status { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; font-size: 13px; line-height: 1.5; background: var(--ib-blue-tint); color: var(--ib-blue-ink); }
.ib-sim__status-ico { flex: none; font-weight: 700; }
.ib-sim__status.is-ok { background: var(--ib-accent-tint); color: #173F35; }
.ib-sim__status.is-ko { background: var(--ib-red-tint); color: var(--ib-red-ink); }
.ib-sim__source { font-size: 12px; line-height: 1.5; color: var(--ib-muted); margin: 0; }

/* Villes. */
.ib-sim__cities { border-top: 1px solid var(--sim-rule); padding: 22px 28px; display: flex; flex-direction: column; gap: 14px; }
.ib-sim__citygrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); gap: 10px; }
.ib-sim__city { border: 1px solid var(--sim-rule); padding: 14px; display: flex; flex-direction: column; gap: 4px; }
.ib-sim__city:hover { border-color: var(--ib-accent); color: inherit; }
.ib-sim__city > span { font-size: 13px; color: var(--ib-muted); }
.ib-sim__city > span:last-child { font-size: 12px; }
.ib-sim__city strong { font-weight: 600; font-size: 26px; letter-spacing: -.02em; color: var(--ib-accent); }

/* Tableaux (amortissement, tranches). */
.ib-sim__tablewrap { border-top: 1px solid var(--sim-rule); padding: 22px 28px; display: flex; flex-direction: column; gap: 12px; }
.ib-sim__col .ib-sim__tablewrap { border-top: 0; padding: 0; }
.ib-sim__scroll { overflow-x: auto; max-height: 460px; overflow-y: auto; border: 1px solid var(--sim-rule); }
.ib-sim__table { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 520px; }
.ib-sim__table th, .ib-sim__table td { padding: 9px 14px; text-align: right; border-top: 1px solid var(--sim-rule); white-space: nowrap; }
.ib-sim__table th:first-child { text-align: left; }
.ib-sim__table thead th { position: sticky; top: 0; background: var(--ib-ink); color: var(--ib-on-dark); font-weight: 500; font-size: 13px; border-top: 0; }
.ib-sim__table tbody th { font-weight: 500; }
.ib-sim__table tbody tr:last-child th, .ib-sim__table tbody tr:last-child td { font-weight: 600; }
.ib-sim__table tbody tr:nth-child(even) { background: var(--ib-panel); }

/* LMNP : deux régimes côte à côte. */
.ib-sim__duel { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 12px; }
.ib-sim__duelcol { border: 1px solid var(--sim-rule); padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.ib-sim__duelcol.is-ok { border: 2px solid var(--ib-accent); background: var(--ib-accent-tint); }
.ib-sim__duelcol.is-ok .ib-sim__h::after { content: " · conseillé"; color: var(--ib-accent); }
/* Mention de la colonne retenue : data-ok="libellé", ou data-ok="" pour aucune. */
.ib-sim__duelcol.is-ok[data-ok] .ib-sim__h::after { content: " · " attr(data-ok); }
.ib-sim__duelcol.is-ok[data-ok=""] .ib-sim__h::after { content: none; }

/* Prochaine étape (bandeau sombre). */
.ib-sim__next { border-top: 1px solid var(--sim-rule); background: var(--ib-ink); color: var(--ib-on-dark); padding: 22px 28px; display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; }
.ib-sim__next-txt { display: flex; flex-direction: column; gap: 4px; flex: 1 1 320px; }
.ib-sim__next .ib-sim__kick { color: var(--ib-accent-on-dark); }
.ib-sim__next-t { font-family: var(--ib-serif); font-size: 22px; line-height: 1.25; }
.ib-sim__next-links { display: flex; gap: 10px; flex-wrap: wrap; }
.ib-sim__next-a { background: var(--ib-on-dark); color: var(--ib-ink); padding: 12px 16px; font-size: 14px; font-weight: 600; }
.ib-sim__next-a:hover { background: #fff; color: var(--ib-ink); }
.ib-sim__next-b { border: 1px solid var(--ib-on-dark); padding: 12px 16px; font-size: 14px; font-weight: 500; }
.ib-sim__next-b:hover { background: var(--ib-on-dark); color: var(--ib-ink); }

/* Bientôt disponible. */
.ib-sim--soon .ib-sim__soon { background: var(--ib-white); border: 1px dashed var(--ib-ink-3); padding: 32px 28px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.ib-sim__soon p { margin: 0; color: var(--ib-ink-3); max-width: 60ch; }
.ib-sim__soon-badge { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ib-amber); background: var(--ib-amber-tint); padding: 4px 10px; border-radius: 20px; }
.ib-sim__soon .ib-sim__soon-t { font-family: var(--ib-serif); font-size: 26px; color: var(--ib-ink); }
.ib-sim__soon-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 8px; }

@media (max-width: 720px) {
	.ib-sim__form, .ib-sim__panel, .ib-sim__col, .ib-sim__col--side { padding: 20px 18px; }
	.ib-sim__panel, .ib-sim__col--side { border-left: 0; border-top: 1px solid var(--sim-rule); }
	.ib-sim__cities, .ib-sim__tablewrap, .ib-sim__next { padding: 18px; }
	.ib-sim__big { font-size: 38px; }
	.ib-sim__pill { width: 120px; }
	.ib-sim__gmax, .ib-sim__g40 { display: none; }
	.ib-sim__barrow { grid-template-columns: 52px minmax(0, 1fr) auto; }
}

/* Appels sous le bandeau ---------------------------------------------------- */
.ib-simctas { padding-top: 32px; display: flex; flex-direction: column; gap: 20px; }
.ib-simpromo { border: 1px solid var(--ib-rule); background: var(--ib-white); display: flex; flex-wrap: wrap; align-items: stretch; }
.ib-simpromo__txt { flex: 3 1 380px; padding: 26px 28px; display: flex; flex-direction: column; gap: 10px; justify-content: center; }
.ib-simpromo__t { font-family: var(--ib-serif); font-weight: 400; font-size: 28px; line-height: 1.12; margin: 0; }
.ib-simpromo__txt p { font-size: 15px; line-height: 1.55; color: var(--ib-ink-3); margin: 0; }
.ib-simpromo__txt .ib-btn { align-self: flex-start; margin-top: 6px; font-weight: 600; }
.ib-simpromo__img { flex: 1 1 220px; min-height: 180px; width: auto; height: auto; object-fit: cover; }
.ib-simtools { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 12px; }
.ib-simtool { border: 1px solid var(--ib-rule); background: var(--ib-white); padding: 16px; display: flex; flex-direction: column; gap: 8px; min-height: 140px; }
.ib-simtool:hover { border-color: var(--ib-accent); color: inherit; }
.ib-simtool__t { font-weight: 600; font-size: 15px; line-height: 1.3; }
.ib-simtool__x { font-size: 13px; line-height: 1.5; color: var(--ib-muted); }
.ib-simtool__go { align-self: flex-end; margin-top: auto; width: 30px; height: 30px; background: var(--ib-accent-tint); color: var(--ib-accent); display: flex; align-items: center; justify-content: center; font-weight: 600; }
.ib-simtool:hover .ib-simtool__go { background: var(--ib-accent); color: var(--ib-paper); }

/* Article, FAQ, pied ------------------------------------------------------- */
.ib-simbody { padding-top: var(--ib-sec-l); }
.ib-simbody__seul { max-width: 720px; }
.ib-simfoot { padding-top: var(--ib-sec-l); display: flex; flex-direction: column; gap: var(--ib-sec); }
.ib-simfoot > .ib-section { padding: 0; }
.ib-simfaq { scroll-margin-top: 16px; }
.ib-simfaq__h { font-family: var(--ib-serif); font-weight: 500; font-size: 34px; line-height: 1.15; margin: 0 0 16px; }

/* Impression : seul le résultat détaillé (ou le calculateur) sort. */
@media print {
	.ib-ticker, .ib-header, .ib-footer, .ib-newsletter, .ib-simctas, .ib-simbody, .ib-simfoot, .ib-crumbs, .ib-simhero__byline,
	.ib-sim__bar, .ib-sim__next, .ib-sim__open, .ib-skip { display: none !important; }
	.ib-simhero { background: none; }
	.ib-sim__detail, .ib-sim__tool { border-color: #000; }
	.ib-sim__col--side, .ib-sim__panel { background: none; }
	.ib-sim__stack span, .ib-sim__track span, .ib-sim__gauge-track span { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* ==========================================================================
   Archive
   ========================================================================== */
.ib-simarch { max-width: var(--ib-max); margin: 0 auto; padding: 24px var(--ib-gutter) 56px; display: flex; flex-direction: column; gap: 32px; }
.ib-simstar { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: space-between; padding: 26px 28px; border-radius: 16px; background: linear-gradient(120deg, var(--ib-accent), var(--ib-up)); color: #fff; }
.ib-simstar:hover { color: #fff; }
.ib-simstar__txt { display: flex; flex-direction: column; gap: 6px; flex: 1 1 360px; }
.ib-simstar__badge { align-self: flex-start; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; background: rgba(255, 255, 255, .16); padding: 4px 10px; border-radius: 20px; }
.ib-simstar__t { font-size: 26px; font-weight: 600; letter-spacing: -.02em; line-height: 1.2; }
.ib-simstar__x { font-size: 14px; color: #D6EAE2; }
.ib-simstar__go { background: #fff; color: var(--ib-accent); border-radius: 10px; padding: 13px 20px; font-size: 15px; font-weight: 600; }
.ib-simstar:hover .ib-simstar__go { background: var(--ib-paper); }

.ib-simgroup { display: flex; flex-direction: column; gap: 14px; --g-bg: #E6F0EC; --g-ink: var(--ib-accent); }
.ib-simgroup--rentabilite { --g-bg: var(--ib-blue-tint); --g-ink: var(--ib-blue); }
.ib-simgroup--fiscalite { --g-bg: var(--ib-amber-tint); --g-ink: var(--ib-amber); }
.ib-simgroup--achat { --g-bg: var(--ib-plum-tint); --g-ink: var(--ib-plum); }
.ib-simgroup__head { display: flex; align-items: baseline; gap: 10px; }
.ib-simgroup__head h2 { font-size: 20px; font-weight: 600; letter-spacing: -.01em; margin: 0; }
.ib-simgroup__head span { font-size: 13px; color: var(--ib-muted); }
.ib-simgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); gap: 14px; }
.ib-simcard { position: relative; background: var(--ib-white); border: 1px solid var(--ib-rule-2); border-radius: 14px; padding: 18px; display: flex; flex-direction: column; gap: 14px; box-shadow: 0 4px 14px rgba(22, 24, 26, .04); }
.ib-simcard:hover { border-color: var(--g-ink); }
.ib-simcard__pop { position: absolute; top: 16px; right: 16px; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ib-amber); background: var(--ib-amber-tint); padding: 3px 8px; border-radius: 20px; }
.ib-simcard__head { display: flex; gap: 12px; align-items: center; padding-right: 92px; }
.ib-simcard__head > span:last-child { display: flex; flex-direction: column; gap: 2px; }
.ib-simcard__glyph { flex: none; width: 42px; height: 42px; border-radius: 11px; background: var(--g-bg); color: var(--g-ink); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 17px; }
.ib-simcard__t { font-size: 16px; font-weight: 600; margin: 0; line-height: 1.3; }
.ib-simcard__t a::after { content: ""; position: absolute; inset: 0; border-radius: 14px; }
.ib-simcard__time { font-size: 12px; color: var(--ib-muted); }
.ib-simcard__x { font-size: 13px; line-height: 1.5; color: var(--ib-ink-3); margin: 0; }
.ib-simcard__ex { background: var(--g-bg); border-radius: 10px; padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; }
.ib-simcard__exl { font-size: 11px; color: var(--g-ink); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.ib-simcard__exv { font-size: 24px; font-weight: 700; letter-spacing: -.02em; color: var(--g-ink); font-variant-numeric: tabular-nums; }
.ib-simcard__exc { font-size: 12px; color: var(--ib-ink-3); }
.ib-simcard__cta { margin-top: auto; text-align: center; border-radius: 9px; padding: 11px; font-size: 14px; font-weight: 600; background: var(--ib-accent); color: #fff; }
.ib-simcard:hover .ib-simcard__cta:not(.is-off) { background: var(--ib-accent-dark); color: #fff; }
.ib-simcard__cta.is-off { background: #EDEAE3; color: #6B6F73; }

/* Liste déroulante (ib_sim_liste). */
.ib-sim__select { width: 100%; padding: 10px 36px 10px 12px; border: 1px solid var(--sim-rule); border-radius: 0; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2316181A' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 12px center; font: inherit; font-size: 15px; color: var(--ib-ink); appearance: none; -webkit-appearance: none; }
.ib-sim__select:focus-visible { outline: 2px solid var(--ib-accent); outline-offset: 1px; }

/* Tableau compact : colonne latérale ou H.table( entetes, lignes, 'ib-sim__table--compact' ). */
.ib-sim__col--side .ib-sim__table, .ib-sim__table--compact { min-width: 0; font-size: 13px; }
.ib-sim__col--side .ib-sim__table th, .ib-sim__col--side .ib-sim__table td, .ib-sim__table--compact th, .ib-sim__table--compact td { padding: 7px 8px; white-space: normal; }

/* Saisie compacte : cases à cocher côte à côte, choix sur la ligne du libellé. */
.ib-sim__form, .ib-sim__avance-corps { flex-direction: row; flex-wrap: wrap; align-content: flex-start; gap: 16px 24px; }
.ib-sim__form { padding: 22px 26px; }
.ib-sim__form > *, .ib-sim__avance-corps > * { flex: 1 1 100%; }
.ib-sim__form > .ib-sim__field:has(> .ib-sim__check), .ib-sim__avance-corps > .ib-sim__field:has(> .ib-sim__check) { flex: 0 1 auto; }
.ib-sim__field { gap: 6px; }
.ib-sim input[type="range"] { height: 18px; }
.ib-sim__seg { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.ib-sim__seg legend { float: left; margin: 0; }
.ib-sim__segs span { padding: 6px 11px; }
/* Volet « Affiner le calcul ». */
.ib-sim__avance { border-top: 1px solid var(--sim-rule); padding-top: 4px; }
.ib-sim__avance > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px; padding: 10px 0; font-size: 14px; font-weight: 600; color: var(--ib-accent); }
.ib-sim__avance > summary::-webkit-details-marker { display: none; }
.ib-sim__avance > summary::before { content: "+"; display: inline-grid; place-items: center; width: 22px; height: 22px; border: 1px solid currentColor; font-weight: 500; line-height: 1; }
.ib-sim__avance[open] > summary::before { content: "−"; }
.ib-sim__avance-n { font-weight: 400; font-size: 12px; color: var(--ib-muted); }
.ib-sim__avance-corps { display: flex; padding: 8px 0 4px; }
