/* =============================================================
   SWISS LIMA PROPERTY · Simulateur d'investissement Suisse–Pérou
   Feuille de styles spécifique à la page. Réutilise intégralement
   les design tokens (variables) et les composants de style.css
   (.btn, .card, .field, .input, .table-clean, .eyebrow, .section…).
   Aucune couleur ni police nouvelle n'est introduite.
   ============================================================= */

/* --- Palette locale dérivée des tokens existants --- */
:root {
  --sim-pos: #2B5233;          /* vert sobre (déjà utilisé pour les statuts de succès) */
  --sim-neg: var(--c-red);     /* rouge signature, en version douce pour les pertes */
  --sim-gold: #C9A96E;         /* doré déjà employé sur le site (filets, accents) */
}

/* --- Badge « version bêta privée » (discret, premium) --- */
.sim-beta {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  padding: 0.4em 0.9em;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(201, 169, 110, 0.5);
  backdrop-filter: blur(6px);
}
.sim-beta::before {
  content: "";
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--sim-gold);
}

/* --- Hero : les 3 avantages --- */
.sim-hero__advantages {
  display: grid;
  gap: var(--space-md);
  margin-top: var(--space-lg);
  grid-template-columns: 1fr;
}
@media (min-width: 720px) {
  .sim-hero__advantages { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.sim-adv {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  color: rgba(255, 255, 255, 0.86);
  font-size: var(--fs-sm);
  line-height: var(--lh-snug);
}
.sim-adv svg { flex: none; width: 22px; height: 22px; color: var(--sim-gold); margin-top: 0.1em; }
.sim-adv strong { display: block; color: var(--c-white); font-size: var(--fs-base); margin-bottom: 0.15em; }

/* --- Barre de devise d'affichage & taux --- */
.sim-ratebar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-md);
  padding: var(--space-md) var(--space-lg);
  background: var(--c-paper);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-lg);
}
.sim-ratebar__group { display: flex; align-items: center; gap: 0.5rem; }
.sim-ratebar__label { font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--ls-wide); text-transform: uppercase; color: var(--color-text-mute); }
.sim-curtoggle { display: inline-flex; border: 1px solid var(--color-border); border-radius: var(--radius-pill); overflow: hidden; }
.sim-curtoggle button {
  padding: 0.45em 0.95em;
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--color-text-mute);
  transition: background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}
.sim-curtoggle button.is-active { background: var(--c-red); color: var(--c-white); }
.sim-curtoggle button:not(.is-active):hover { background: var(--c-cream); color: var(--c-ink); }
.sim-ratebar__rates { margin-left: auto; font-size: var(--fs-xs); color: var(--color-text-mute); line-height: 1.5; }
.sim-ratebar__rates strong { color: var(--c-ink); font-weight: 650; }
.sim-rate-edit { width: 5.2em; padding: 0.35em 0.5em !important; font-size: var(--fs-xs) !important; text-align: right; }

/* --- Disposition principale : formulaire + résumé sticky --- */
.sim-layout {
  display: grid;
  gap: var(--space-xl);
  align-items: start;
}
@media (min-width: 1000px) {
  .sim-layout { grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); }
}

/* --- Progression & onglets d'étapes --- */
.sim-progress { margin-bottom: var(--space-lg); }
.sim-progress__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 0.5rem; }
.sim-progress__label { font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--ls-wide); text-transform: uppercase; color: var(--c-red); }
.sim-progress__bar { height: 4px; background: var(--c-mist); border-radius: var(--radius-pill); overflow: hidden; }
.sim-progress__fill { display: block; height: 100%; width: 20%; background: linear-gradient(90deg, var(--c-red), var(--c-red-bright)); border-radius: inherit; transition: width var(--t-med) var(--ease); }

.sim-tabs { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: var(--space-lg); }
.sim-tab {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  padding: 0.5em 0.9em;
  border-radius: var(--radius-pill);
  border: 1px solid var(--color-border);
  background: var(--c-paper);
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--color-text-soft);
  transition: all var(--t-fast) var(--ease);
}
.sim-tab__num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.5em; height: 1.5em; border-radius: 50%;
  background: var(--c-cream); color: var(--color-text-mute);
  font-size: 0.85em; font-weight: 700;
}
.sim-tab:hover { border-color: var(--c-red); color: var(--c-ink); }
.sim-tab.is-active { background: var(--c-red); color: var(--c-white); border-color: var(--c-red); box-shadow: var(--shadow-red); }
.sim-tab.is-active .sim-tab__num { background: rgba(255,255,255,0.25); color: var(--c-white); }
.sim-tab.is-done .sim-tab__num { background: var(--sim-pos); color: var(--c-white); }
@media (max-width: 620px) { .sim-tab__text { display: none; } .sim-tab { padding: 0.5em; } }

/* --- Carte de formulaire --- */
.sim-form-card {
  background: var(--c-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: clamp(1.25rem, 3vw, var(--space-xl));
  box-shadow: var(--shadow-sm);
  /* Absorbe l'éventuel débordement horizontal d'une info-bulle affichée.
     clip (et non hidden/auto) : n'établit pas de conteneur de défilement et,
     surtout, cet élément n'est pas ancêtre du résumé sticky → sticky préservé. */
  overflow-x: clip;
}
/* Idem pour la zone de résultats (contient des info-bulles dans les KPI). */
[data-results] { overflow-x: clip; }
.sim-step__title { font-family: var(--font-display); font-size: var(--fs-xl); color: var(--c-ink); margin-bottom: 0.35rem; outline: none; }
.sim-step__intro { color: var(--color-text-soft); font-size: var(--fs-sm); margin-bottom: var(--space-lg); max-width: 60ch; }

.sim-fieldset { border: 0; margin: 0 0 var(--space-lg); padding: 0; }
.sim-fieldset:last-child { margin-bottom: 0; }
.sim-fieldset__legend {
  font-family: var(--font-body);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--c-red);
  padding: 0;
  margin-bottom: var(--space-md);
  display: flex; align-items: center; gap: 0.6em;
}
.sim-fieldset__legend::before { content: ""; width: 22px; height: 1.5px; background: var(--sim-gold); opacity: 0.75; }

.sim-grid { display: grid; gap: var(--space-md); grid-template-columns: 1fr; }
@media (min-width: 560px) { .sim-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 760px) { .sim-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Champ monétaire : préfixe de devise */
.sim-money { position: relative; }
.sim-money__cur {
  position: absolute; left: 1px; bottom: 1px;
  display: inline-flex; align-items: center;
  height: calc(100% - 2px);
  padding: 0 0.7em;
  font-size: var(--fs-xs); font-weight: 700; color: var(--color-text-mute);
  background: var(--c-cream); border-radius: var(--radius-sm) 0 0 var(--radius-sm);
  pointer-events: none;
}
.sim-money .input { padding-left: 3.4em; }

/* Champ calculé (lecture seule) */
.sim-computed {
  display: flex; flex-direction: column; gap: 0.3rem;
  padding: 0.7em 1.1em;
  border-radius: var(--radius-sm);
  background: var(--c-cream);
  border: 1px dashed var(--color-border);
}
.sim-computed__label { font-size: var(--fs-xs); color: var(--color-text-mute); font-weight: 600; }
.sim-computed__value { font-family: var(--font-display); font-size: var(--fs-md); color: var(--c-ink); font-weight: 600; }

/* Info-bulle accessible */
.sim-hint { position: relative; display: inline-flex; vertical-align: middle; margin-left: 0.35em; }
.sim-hint__btn {
  width: 17px; height: 17px; border-radius: 50%;
  border: 1px solid var(--color-border);
  color: var(--color-text-mute);
  font-size: 11px; font-weight: 700; line-height: 1;
  display: inline-flex; align-items: center; justify-content: center;
  transition: all var(--t-fast) var(--ease);
}
.sim-hint__btn:hover, .sim-hint__btn:focus-visible { background: var(--c-red); color: var(--c-white); border-color: var(--c-red); }
.sim-hint__pop {
  position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%);
  width: max-content; max-width: min(240px, 68vw);
  background: var(--c-ink); color: rgba(255,255,255,0.92);
  font-size: var(--fs-xs); font-weight: 400; line-height: 1.5; letter-spacing: 0;
  text-transform: none;
  padding: 0.7em 0.9em; border-radius: var(--radius-sm);
  box-shadow: var(--shadow-md);
  display: none;              /* masqué au repos : ne contribue pas au débordement horizontal */
  z-index: 20; pointer-events: none;
}
.sim-hint__pop::after { content: ""; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 6px solid transparent; border-top-color: var(--c-ink); }
.sim-hint:hover .sim-hint__pop,
.sim-hint:focus-within .sim-hint__pop { display: block; }

/* Segmented control (mode Alcabala, financement, stratégie…) */
.sim-choices { display: grid; gap: 0.6rem; grid-template-columns: 1fr; }
@media (min-width: 560px) { .sim-choices--2 { grid-template-columns: repeat(2, minmax(0,1fr)); } .sim-choices--3 { grid-template-columns: repeat(3, minmax(0,1fr)); } }
.sim-choice {
  position: relative;
  display: block;
  padding: 0.9em 1.1em;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--c-paper);
  cursor: pointer;
  transition: border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}
.sim-choice:hover { border-color: var(--c-red); transform: translateY(-1px); }
.sim-choice input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.sim-choice__title { display: block; font-weight: 650; color: var(--c-ink); font-size: var(--fs-sm); }
.sim-choice__desc { display: block; font-size: var(--fs-xs); color: var(--color-text-mute); margin-top: 0.15em; line-height: 1.45; }
.sim-choice:has(input:checked) { border-color: var(--c-red); background: var(--c-red-wash); box-shadow: 0 0 0 3px rgba(154,27,44,0.08); }
.sim-choice:has(input:focus-visible) { outline: 2.5px solid var(--c-red); outline-offset: 2px; }

/* --- Récapitulatifs de sous-totaux (dans les étapes) --- */
.sim-recap { margin-top: var(--space-lg); border-top: 1px solid var(--color-border); padding-top: var(--space-md); }
.sim-recap__row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 0.4rem 0; font-size: var(--fs-sm); }
.sim-recap__row span:first-child { color: var(--color-text-soft); }
.sim-recap__row strong { color: var(--c-ink); font-weight: 650; font-variant-numeric: tabular-nums; }
.sim-recap__row--total { border-top: 1px solid var(--color-border); margin-top: 0.4rem; padding-top: 0.7rem; }
.sim-recap__row--total span:first-child { color: var(--c-ink); font-weight: 650; }
.sim-recap__row--total strong { font-family: var(--font-display); font-size: var(--fs-lg); color: var(--c-red); }

/* --- Navigation étapes --- */
.sim-nav { display: flex; justify-content: space-between; align-items: center; gap: var(--space-sm); margin-top: var(--space-xl); }

/* --- Résumé sticky (colonne droite) --- */
.sim-aside { position: relative; }
@media (min-width: 1000px) { .sim-aside { position: sticky; top: calc(var(--header-h) + 16px); } }
.sim-summary {
  background: linear-gradient(165deg, var(--c-ink) 0%, var(--c-anthracite) 100%);
  color: rgba(255,255,255,0.86);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
  box-shadow: var(--shadow-md);
}
.sim-summary__eyebrow { font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--ls-wide); text-transform: uppercase; color: #E8B4BB; display: flex; align-items: center; gap: 0.5em; }
.sim-summary__eyebrow::before { content: ""; width: 22px; height: 1.5px; background: var(--sim-gold); opacity: 0.6; }
.sim-summary__strategy { font-size: var(--fs-xs); color: rgba(255,255,255,0.6); margin-top: 0.5rem; }
.sim-summary__hero { margin: var(--space-md) 0; }
.sim-summary__hero-label { font-size: var(--fs-xs); color: rgba(255,255,255,0.6); }
.sim-summary__hero-value { font-family: var(--font-display); font-size: clamp(1.7rem, 1.3rem + 1.6vw, 2.3rem); font-weight: 600; color: var(--c-white); line-height: 1.1; margin-top: 0.15rem; }
.sim-summary__list { display: grid; gap: 0.1rem; margin-top: var(--space-md); }
.sim-summary__row { display: flex; justify-content: space-between; align-items: baseline; gap: 0.75rem; padding: 0.55rem 0; border-top: 1px solid rgba(255,255,255,0.08); font-size: var(--fs-sm); }
.sim-summary__row span { color: rgba(255,255,255,0.66); }
.sim-summary__row strong { color: var(--c-white); font-weight: 600; font-variant-numeric: tabular-nums; text-align: right; }
.sim-summary__cta { margin-top: var(--space-lg); }
.sim-summary__note { font-size: var(--fs-xs); color: rgba(255,255,255,0.5); margin-top: var(--space-md); line-height: 1.5; }

/* Valeurs signées */
.is-negative { color: var(--sim-neg) !important; }
.is-positive { color: var(--sim-pos) !important; }
.sim-summary__row strong.is-negative { color: #F1B8BC !important; }
.sim-summary__row strong.is-positive { color: #A8D5B5 !important; }

/* --- Section résultats détaillés --- */
.sim-results-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-md); margin-bottom: var(--space-lg); }

.sim-kpi-grid { display: grid; gap: var(--space-md); grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 720px) { .sim-kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1080px) { .sim-kpi-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.sim-kpi {
  background: var(--c-paper);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-md);
}
.sim-kpi__label { font-size: var(--fs-xs); color: var(--color-text-mute); display: flex; align-items: center; }
.sim-kpi__value { font-family: var(--font-display); font-size: clamp(1.3rem, 1.05rem + 1vw, 1.7rem); color: var(--c-ink); font-weight: 600; margin-top: 0.25rem; line-height: 1.1; font-variant-numeric: tabular-nums; }
.sim-kpi--accent { background: var(--c-red-wash); border-color: rgba(154,27,44,0.16); }
.sim-kpi--accent .sim-kpi__value { color: var(--c-red); }

/* Résumé trois devises */
.sim-tri { display: flex; flex-direction: column; gap: 0.1rem; margin-top: 0.25rem; }
.sim-tri__item { font-family: var(--font-display); font-weight: 600; color: var(--c-ink); font-size: var(--fs-base); line-height: 1.3; font-variant-numeric: tabular-nums; }
.sim-tri__item:first-child { font-size: var(--fs-lg); }

/* --- Graphiques --- */
.sim-charts { display: grid; gap: var(--space-lg); grid-template-columns: 1fr; margin-top: var(--space-xl); }
@media (min-width: 780px) { .sim-charts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sim-chart {
  background: var(--c-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
}
.sim-chart__title { font-family: var(--font-body); font-size: var(--fs-sm); font-weight: 700; color: var(--c-ink); margin-bottom: var(--space-md); }
.sim-chart__empty { font-size: var(--fs-sm); color: var(--color-text-mute); }
.sim-chart__legend { font-size: var(--fs-xs); color: var(--color-text-soft); margin-top: var(--space-sm); line-height: 1.5; }

.sim-donut { display: flex; justify-content: center; }
.sim-donut svg { width: 160px; height: 160px; }
.sim-legend { display: grid; gap: 0.5rem; margin-top: var(--space-md); }
.sim-legend li { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 0.6rem; font-size: var(--fs-xs); }
.sim-legend__dot { width: 11px; height: 11px; border-radius: 3px; }
.sim-legend__label { color: var(--color-text-soft); }
.sim-legend__val { color: var(--c-ink); font-weight: 600; font-variant-numeric: tabular-nums; }

.sim-bars { display: grid; gap: 0.7rem; }
.sim-bar { display: grid; grid-template-columns: 8.5em 1fr auto; align-items: center; gap: 0.7rem; font-size: var(--fs-xs); }
.sim-bar__label { color: var(--color-text-soft); }
.sim-bar__track { height: 12px; background: var(--c-cream); border-radius: var(--radius-pill); overflow: hidden; }
.sim-bar__fill { display: block; height: 100%; border-radius: inherit; transition: width var(--t-med) var(--ease); }
.sim-bar__val { color: var(--c-ink); font-weight: 600; font-variant-numeric: tabular-nums; text-align: right; min-width: 6em; }
.sim-bar.is-negative .sim-bar__val { color: var(--sim-neg); }
@media (max-width: 480px) { .sim-bar { grid-template-columns: 6em 1fr; } .sim-bar__val { grid-column: 2; text-align: left; min-width: 0; } }

.sim-line { width: 100%; height: auto; }

/* --- Comparaison --- */
.sim-compare th.is-active, .sim-compare td.is-active { background: var(--c-red-wash); }
.sim-compare td .is-negative { color: var(--sim-neg); font-weight: 650; }
.sim-compare td .is-positive { color: var(--sim-pos); font-weight: 650; }
.sim-compare-note { margin-top: var(--space-md); font-size: var(--fs-sm); color: var(--color-text-soft); font-style: italic; }

/* --- Actions rapport --- */
.sim-actions { display: flex; flex-wrap: wrap; gap: var(--space-sm); margin-top: var(--space-xl); }

/* --- Avertissements & hypothèses --- */
.sim-disclaimer {
  background: var(--c-cream);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  font-size: var(--fs-sm);
  color: var(--color-text-soft);
  line-height: var(--lh-normal);
}
.sim-disclaimer h3 { font-size: var(--fs-md); color: var(--c-ink); margin-bottom: var(--space-sm); }
.sim-disclaimer p + p { margin-top: 0.75rem; }
.sim-sources { font-size: var(--fs-xs); color: var(--color-text-mute); }
.sim-sources li { position: relative; padding-left: 1.1em; margin-top: 0.35rem; }
.sim-sources li::before {
  /* trait dessine plutot que le caractere tiret long : rendu identique */
  content: ""; position: absolute; left: 0; top: 0.62em;
  width: 0.72em; height: 1px; background: var(--sim-gold);
}

.sim-muted { color: var(--color-text-mute); font-size: var(--fs-sm); }
.sim-accordion summary { cursor: pointer; font-weight: 650; color: var(--c-ink); font-size: var(--fs-sm); padding: 0.5rem 0; }
.sim-accordion summary:hover { color: var(--c-red); }
.sim-accordion[open] summary { margin-bottom: var(--space-sm); }

.sim-tax-warn {
  display: flex; gap: 0.6rem; align-items: flex-start;
  background: var(--c-red-wash);
  border: 1px solid rgba(154,27,44,0.16);
  border-radius: var(--radius-sm);
  padding: var(--space-md);
  font-size: var(--fs-xs);
  color: var(--c-red-dark);
  line-height: 1.5;
  margin-top: var(--space-md);
}
.sim-tax-warn svg { flex: none; width: 18px; height: 18px; margin-top: 0.1em; }

/* --- Impression / PDF --- */
@media print {
  .site-header, .nav-mobile, .site-footer, .whatsapp-float, .skip-link,
  .sim-tabs, .sim-progress, .sim-nav, .sim-actions, .sim-ratebar__group,
  .sim-hint__btn, [data-nav-back], [data-nav-next] { display: none !important; }
  body { background: #fff; }
  .page-banner { background: #fff !important; color: var(--c-ink) !important; padding-block: 1rem !important; }
  .page-banner h1, .page-banner .lead { color: var(--c-ink) !important; }
  .sim-beta { color: var(--c-ink); border-color: var(--sim-gold); background: transparent; }
  .sim-layout { display: block; }
  .sim-aside { position: static; }
  .sim-summary { background: #fff !important; color: var(--c-ink) !important; border: 1px solid var(--color-border); box-shadow: none; }
  .sim-summary__eyebrow, .sim-summary__strategy, .sim-summary__hero-label, .sim-summary__row span, .sim-summary__note { color: var(--color-text-soft) !important; }
  .sim-summary__hero-value, .sim-summary__row strong { color: var(--c-ink) !important; }
  .sim-form-card, .sim-chart, .sim-kpi { box-shadow: none; break-inside: avoid; }
  [data-step-panel][hidden] { display: block !important; } /* imprimer toutes les étapes */
  .sim-charts { grid-template-columns: repeat(2, 1fr); }
  a[href]::after { content: ""; } /* pas d'URL parasites */
  .sim-print-only { display: block !important; }
}
.sim-print-only { display: none; }

/* =============================================================
   2026-08-26 · LOT A MOBILE
   Les deux champs d'édition du taux de change portent
   font-size: var(--fs-xs) !important (13px) et vivent dans ce
   fichier, chargé APRÈS style.min.css : la règle générale du lot A
   ne pouvait donc pas les atteindre. Sans cela, ces deux champs
   restaient les seuls du site à faire zoomer iOS.
   ============================================================= */
@media (max-width: 767px) {
  .sim-rate-edit { font-size: 16px !important; }
}
