/* =========================================================================
   SIMULATEUR JEANBRUN — statut du bailleur privé
   Feuille dédiée, chargée uniquement sur la page /simulateur-jeanbrun/.
   Les variables --wc-* sont préfixées --wcsim-* pour ne pas entrer en
   conflit avec celles du thème.
   ========================================================================= */

/* =========================================================================
   SIMULATEUR JEANBRUN — Webcomimmo
   Statut du bailleur privé — art. 47 LF 2026 (L. n°2026-103 du 19/02/2026)
   Codifié art. 31, I, 1°, i) et j) du CGI.
   Amortissement fiscal en location nue.
   --------------------------------------------------------------------------
   ⚠️ TOUTES LES CONSTANTES RÉGLEMENTAIRES (WC_JEANBRUN, WC_BAREME) SONT
   ISSUES DE SOURCES COMMERCIALES SECONDAIRES (promoteurs / CGP).
   À VÉRIFIER AU BOFiP / DGFiP + DÉCRETS D'APPLICATION AVANT MISE EN LIGNE.
   Les taux de l'ANCIEN font l'objet de divergences entre sources.
   ========================================================================= */

:root{
  --wcsim-marine:#0f2c3f;
  --wcsim-marine-2:#16405a;
  --wcsim-teal:#1f8a8c;
  --wcsim-teal-soft:#e6f2f2;
  --wcsim-sand:#f6f4ee;
  --wcsim-line:#d9e2e4;
  --wcsim-ink:#12232c;
  --wcsim-ink-soft:#5a6b72;
  --wcsim-gold:#c8a15a;
  --wcsim-radius:14px;
  --wcsim-shadow:0 10px 30px rgba(15,44,63,.10);
}
*{box-sizing:border-box}
.wc-sim{
  font-family:"Inter","Segoe UI",system-ui,-apple-system,sans-serif;
  color:var(--wcsim-ink);
  max-width:1180px;margin:0 auto;padding:1.5rem;line-height:1.5;
}
.wc-sim__head{margin-bottom:1.75rem}
.wc-sim__eyebrow{
  display:inline-block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--wcsim-teal);font-weight:700;margin-bottom:.6rem;
}
.wc-sim__title{
  font-size:clamp(1.6rem,3.4vw,2.3rem);font-weight:800;line-height:1.12;
  margin:0 0 .5rem;color:var(--wcsim-marine);
}
.wc-sim__sub{color:var(--wcsim-ink-soft);max-width:62ch;margin:0}

.wc-sim__grid{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:1.5rem;align-items:start;
}
@media(max-width:900px){.wc-sim__grid{grid-template-columns:1fr}}

.wc-card{
  background:#fff;border:1px solid var(--wcsim-line);border-radius:var(--wcsim-radius);
  padding:1.4rem;min-width:0;
}
.wc-card__title{
  font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;
  color:var(--wcsim-marine);margin:0 0 1rem;padding-bottom:.6rem;
  border-bottom:2px solid var(--wcsim-teal-soft);
}
.wc-card + .wc-card{margin-top:1.2rem}

.wc-field{margin-bottom:1rem}
.wc-field:last-child{margin-bottom:0}
.wc-field__label{
  display:flex;justify-content:space-between;align-items:baseline;
  font-size:.85rem;font-weight:600;color:var(--wcsim-ink);margin-bottom:.35rem;gap:.5rem;
}
.wc-field__hint{font-size:.72rem;color:var(--wcsim-ink-soft);font-weight:500}
.wc-input-wrap{position:relative;display:flex;align-items:center}
.wc-input-wrap__unit{
  position:absolute;right:.9rem;font-size:.85rem;color:var(--wcsim-ink-soft);
  font-weight:600;pointer-events:none;
}
.wc-sim input[type=number],.wc-sim select{
  width:100%;font-family:inherit;font-size:.98rem;padding:.62rem .9rem;
  border:1px solid var(--wcsim-line);border-radius:9px;background:var(--wcsim-sand);
  color:var(--wcsim-ink);transition:border-color .15s,box-shadow .15s;-moz-appearance:textfield;
}
.wc-sim input[type=number]{padding-right:2.6rem}
.wc-sim select{cursor:pointer}
.wc-sim input:focus,.wc-sim select:focus{
  outline:none;border-color:var(--wcsim-teal);
  box-shadow:0 0 0 3px rgba(31,138,140,.16);background:#fff;
}
.wc-sim input::-webkit-outer-spin-button,
.wc-sim input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.wc-row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
@media(max-width:420px){.wc-row{grid-template-columns:1fr}}

/* Segmented control : niveau de loyer */
.wc-seg{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}
.wc-seg__btn{
  font-family:inherit;font-size:.8rem;font-weight:600;padding:.55rem .3rem;
  border:1px solid var(--wcsim-line);border-radius:8px;background:var(--wcsim-sand);
  color:var(--wcsim-ink-soft);cursor:pointer;transition:all .15s;text-align:center;
}
.wc-seg__btn:hover{border-color:var(--wcsim-teal)}
.wc-seg__btn.is-on{
  background:var(--wcsim-marine);border-color:var(--wcsim-marine);color:#fff;
}
.wc-seg__btn small{display:block;font-size:.66rem;font-weight:500;opacity:.75;margin-top:.1rem}
.wc-seg__btn:focus-visible{outline:2px solid var(--wcsim-teal);outline-offset:2px}

.wc-results{
  background:linear-gradient(160deg,var(--wcsim-marine),var(--wcsim-marine-2));
  color:#eaf1f3;border-radius:var(--wcsim-radius);padding:1.5rem;
  box-shadow:var(--wcsim-shadow);position:sticky;top:1rem;
}
.wc-results__title{
  font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;
  font-weight:700;color:#a9d4d5;margin:0 0 1.1rem;
}
.wc-headline{
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  border-radius:12px;padding:1.1rem 1.2rem;margin-bottom:1.2rem;
}
.wc-headline__label{font-size:.78rem;color:#a9d4d5;font-weight:600;margin-bottom:.25rem}
.wc-headline__value{font-size:clamp(1.8rem,5vw,2.5rem);font-weight:800;line-height:1;color:#fff}
.wc-headline__value.is-pos{color:#7fe0b0}
.wc-headline__value.is-neg{color:#f0a58f}
.wc-headline__note{font-size:.76rem;color:#b9c7cc;margin-top:.4rem}

.wc-lines{display:flex;flex-direction:column;gap:.1rem}
.wc-line{
  display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  padding:.55rem 0;border-bottom:1px solid rgba(255,255,255,.09);font-size:.9rem;
}
.wc-line:last-child{border-bottom:none}
.wc-line__label{color:#cdd9dd}
.wc-line__label small{display:block;color:#8fa4ab;font-size:.72rem;font-weight:500}
.wc-line__value{font-weight:700;color:#fff;white-space:nowrap;text-align:right}
.wc-line__value.pos{color:#7fe0b0}
.wc-line__value.neg{color:#f0a58f}
.wc-line--group{margin-top:.6rem;padding-top:.9rem;border-top:2px solid rgba(255,255,255,.16)}
.wc-line--group .wc-line__label{
  font-weight:700;color:#fff;text-transform:uppercase;font-size:.74rem;letter-spacing:.06em;
}
.wc-line--hero{
  background:rgba(200,161,90,.10);border:1px solid rgba(200,161,90,.28);
  border-radius:10px;padding:.7rem .9rem;margin:.7rem 0;border-bottom:none;
}
.wc-line--hero .wc-line__label{color:#e6c98e;font-weight:700}
.wc-line--hero .wc-line__value{color:#e6c98e}

/* Préfixe .wc-sim__ obligatoire : .wc-badge est déjà pris par le badge
   « Neuf » des cartes programmes (catalogue.css), qui est en
   position:absolute — les badges du simulateur se retrouvaient empilés
   sur le titre. Ne pas renommer en .wc-badge. */
.wc-sim__badge{
  display:inline-flex;align-items:flex-start;gap:.4rem;
  background:rgba(200,161,90,.16);border:1px solid rgba(200,161,90,.4);
  color:#e6c98e;font-size:.74rem;font-weight:600;line-height:1.35;
  padding:.4rem .7rem;border-radius:8px;margin-top:.6rem;
}

.wc-legal{
  margin-top:1.5rem;padding:1rem 1.2rem;background:var(--wcsim-teal-soft);
  border-left:4px solid var(--wcsim-teal);border-radius:8px;
  font-size:.78rem;color:#33565a;line-height:1.55;
}
.wc-legal strong{color:var(--wcsim-marine)}
.wc-legal p{margin:.35rem 0}
.wc-legal p:first-child{margin-top:0}
.wc-legal p:last-child{margin-bottom:0}
.wc-foot-note{font-size:.72rem;color:#9fb3b9;margin-top:1rem;line-height:1.5}

/* ---- Bandeau du lot pré-rempli depuis une fiche programme ---- */
.wc-sim__lot {
	display: flex; align-items: center; gap: .7rem; flex-wrap: wrap;
	background: rgba(31, 138, 140, .08);
	border: 1px solid rgba(31, 138, 140, .3);
	border-radius: 10px; padding: .8rem 1rem; margin-bottom: 1.4rem;
}
.wc-sim__lot-tag {
	background: var(--wcsim-teal); color: #fff;
	font-size: .68rem; font-weight: 700; text-transform: uppercase;
	letter-spacing: .05em; padding: .22em .6em; border-radius: 999px;
}
.wc-sim__lot b { color: var(--wcsim-marine); font-size: .96rem; text-transform: capitalize; }
.wc-sim__lot-note {
	flex: 1 0 100%; font-size: .78rem; color: var(--wcsim-ink-soft); line-height: 1.45;
}
/* ---- Retour vers les pages liées ---- */
.wc-sim__retour {
	display: flex; gap: .8rem; flex-wrap: wrap;
	justify-content: center; margin: 2rem 0 3rem;
}

/* Le simulateur est désormais dans un .wc-wrap qui porte déjà son padding
   horizontal : le sien ferait double emploi et pousserait les cartes hors
   de l'écran sur les très petits mobiles. */
.wc-sim { padding-inline: 0; max-width: 100%; }
@media (max-width: 340px) {
	.wc-sim__grid { gap: 1rem; }
	.wc-card { padding: 1rem .9rem; }
}

/* ---- Mention sur les valeurs pré-remplies ----
   Les champs partent de ratios de marché pour éviter la page blanche,
   mais il faut dire clairement que ce ne sont pas des engagements. */
.wc-sim__prefill {
	background: rgba(200, 161, 90, .1);
	border: 1px solid rgba(200, 161, 90, .35);
	border-radius: 10px;
	padding: .8rem 1rem;
	margin: 0 0 1.1rem;
	font-size: .8rem;
	line-height: 1.55;
	color: var(--wcsim-ink-soft);
}
.wc-sim__prefill b { color: var(--wcsim-ink); }
