/* =========================================================
   Calculadoras — sistema visual compartido por las cinco.

   Todo vive bajo `.calc` a propósito: estas páginas montan la
   cabecera y el pie del sitio, así que un `:root` aquí pisaría
   los tokens de styles.css y `.eyebrow` existe en los dos
   sistemas con reglas distintas. El prefijo aísla el widget sin
   obligar a renombrar una sola clase del markup.
   ========================================================= */

.calc{
  /* Paleta de marca. Cambiar de aspecto es editar solo este bloque. */
  --bg: #f6f3ed;            /* --paper del sitio */
  --surface: #ffffff;
  --surface-soft: #f8f6f0;  /* fondo de .service-home */
  --ink: #29351c;           /* --ink del sitio */
  --ink-soft: #626852;      /* --muted del sitio */
  --primary: #293c0c;       /* --green de marca */
  --primary-dark: #1b2709;
  --primary-soft: #eceee4;  /* fondo de .services */
  --brick: #b14e2b;         /* único color de señal: coste y aviso */
  --brass: #647345;         /* acento verde ya usado en el sitio */
  --brass-soft: #e6ebd8;
  --line: #cdcfc5;          /* --line del sitio */
  --shadow: 0 10px 24px rgba(41,60,12,.08);
  --radius-lg: 4px;
  --radius-md: 3px;
  --radius-sm: 2px;
  /* Tipografías autoalojadas del sitio. Cormorant solo existe en 400/500
     y Manrope en 400/500/600: los pesos de aquí no pasan de ahí para no
     provocar negrita sintética. La mono desaparece; lo que importaba de
     ella (que las cifras cuadren) lo da font-variant-numeric. */
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Manrope', Arial, sans-serif;

  max-width:460px;
  margin:0 auto;
  padding:28px 14px 60px;
  color:var(--ink);
  font-family:var(--font-body);
}

/* Las cifras, en cualquier sitio donde antes iba la monoespaciada. */
.calc .num{
  font-family:var(--font-body);
  font-variant-numeric:tabular-nums;
  letter-spacing:.02em;
}

/* El contorno global del sitio usa offset 6px; aquí los controles están
   demasiado juntos para eso. */
.calc a:focus-visible,
.calc button:focus-visible,
.calc input:focus-visible,
.calc select:focus-visible,
.calc summary:focus-visible,
.calc [tabindex]:focus-visible{outline:3px solid var(--primary); outline-offset:3px;}

/* Solo para lectores de pantalla: el resumen del resultado. */
.calc .sr{
  position:absolute; width:1px; height:1px;
  padding:0; margin:-1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* ---------- Cabecera ---------- */
.calc .eyebrow{
  display:flex;
  align-items:center;
  gap:8px;
  line-height:1.5;
  font-family:var(--font-body);
  font-size:11px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink-soft);
  margin-bottom:10px;
}
.calc .eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--brick);}

.calc h1.title{
  font-family:var(--font-display);
  font-weight:500;
  font-size:31px;
  line-height:1.1;
  letter-spacing:-.015em;
  margin:0 0 6px;
  color:var(--primary-dark);
}
.calc .subtitle{
  font-size:14.5px;
  color:var(--ink-soft);
  line-height:1.55;
  margin:0 0 22px;
  max-width:38ch;
}

/* ---------- Progreso ---------- */
/* Decorativo: el paso vigente se anuncia con el texto de .step-label. */
.calc .progress{
  display:flex;
  gap:6px;
  margin-bottom:22px;
}
.calc .progress .seg{
  flex:1;
  height:4px;
  border-radius:var(--radius-sm);
  background:var(--line);
  overflow:hidden;
}
.calc .progress .seg i{
  display:block;
  height:100%;
  width:0%;
  background:var(--primary);
  transition:width .35s ease;
}
.calc .progress .seg.done i{width:100%;}
.calc .progress .seg.active i{width:60%;}

/* ---------- Tarjeta principal ---------- */
.calc .card{
  background:var(--surface);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
  padding:26px 22px 22px;
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
}
.calc .card::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:5px;
  background:repeating-linear-gradient(90deg, var(--primary) 0 14px, var(--brass) 14px 16px, transparent 16px 22px);
  opacity:.5;
}

.calc .step{display:none;}
.calc .step.active{display:block; animation:calc-fadein .32s ease;}
@keyframes calc-fadein{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;}}

.calc .step-label{
  font-family:var(--font-body);
  font-size:11.5px;
  font-weight:600;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--brick);
  margin-bottom:6px;
}
.calc .step-question{
  font-family:var(--font-display);
  font-size:24px;
  font-weight:500;
  color:var(--primary-dark);
  margin:0 0 18px;
  line-height:1.22;
}
.calc .step-question:focus{outline:none;}
.calc .step-question .opt{color:var(--ink-soft); font-family:var(--font-body); font-weight:400; font-size:15px;}

/* ---------- Campos ---------- */
.calc .field{margin-bottom:16px;}
.calc .field label.hint,
.calc label.hint{
  display:block;
  font-size:12.5px;
  color:var(--ink-soft);
  margin-bottom:8px;
}

.calc .price-wrap{
  display:flex;
  align-items:baseline;
  gap:8px;
  background:var(--surface-soft);
  border:1.5px solid var(--line);
  border-radius:var(--radius-md);
  padding:14px 16px;
  transition:border-color .2s;
}
.calc .price-wrap.tight{padding:11px 16px;}
.calc .price-wrap.compact{padding:10px 14px;}
.calc .price-wrap.compact input{font-size:17px;}
.calc .price-wrap.compact .cur{font-size:15px;}
.calc .price-wrap:focus-within{border-color:var(--primary);}
.calc .price-wrap input{
  border:none;
  background:transparent;
  outline:none;
  font-family:var(--font-body);
  font-variant-numeric:tabular-nums;
  font-size:26px;
  font-weight:600;
  color:var(--primary-dark);
  width:100%;
  -moz-appearance:textfield;
  appearance:textfield;
}
.calc .price-wrap input::-webkit-outer-spin-button,
.calc .price-wrap input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.calc .price-wrap .cur{
  font-family:var(--font-body); font-size:22px; color:var(--brass); font-weight:600;
}
.calc .price-preview{
  margin-top:8px;
  font-size:13px;
  font-variant-numeric:tabular-nums;
  color:var(--ink-soft);
}

.calc select.big-select{
  width:100%;
  appearance:none;
  -webkit-appearance:none;
  background:var(--surface-soft) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="none" stroke="%23293c0c" stroke-width="2"><path d="M4 7l5 5 5-5"/></svg>') no-repeat right 16px center;
  border:1.5px solid var(--line);
  border-radius:var(--radius-md);
  padding:16px 40px 16px 16px;
  font-family:var(--font-body);
  font-size:16px;
  font-weight:600;
  color:var(--primary-dark);
  outline:none;
}
.calc select.big-select:focus{border-color:var(--primary);}

.calc .region-note{
  margin-top:8px;
  font-size:12px;
  color:var(--brick);
  background:#fbefe8;
  border-radius:var(--radius-sm);
  padding:8px 10px;
  display:none;
}
.calc .region-note.show{display:block;}

/* ---------- Opciones (radio / checkbox reales) ---------- */
.calc .toggle-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.calc .toggle-col{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
.calc .toggle-btn{
  display:block;
  width:100%;
  border:1.5px solid var(--line);
  background:var(--surface-soft);
  border-radius:var(--radius-md);
  padding:18px 12px;
  text-align:center;
  cursor:pointer;
  font-family:var(--font-body);
  font-weight:600;
  font-size:15px;
  line-height:1.35;
  color:var(--ink);
  transition:border-color .15s, background .15s, color .15s;
}
.calc .toggle-col .toggle-btn{text-align:left;}
.calc .toggle-btn:hover{border-color:var(--primary);}
.calc .toggle-btn .sub{
  display:block;
  font-weight:400;
  font-size:11.5px;
  color:var(--ink-soft);
  margin-top:3px;
}
.calc .toggle-btn[aria-checked="true"]{
  border-color:var(--primary);
  background:var(--primary);
  color:#fff;
}
.calc .toggle-btn[aria-checked="true"] .sub{color:rgba(255,255,255,.78);}

.calc .check-card{
  display:flex;
  align-items:flex-start;
  gap:12px;
  width:100%;
  text-align:left;
  background:var(--surface-soft);
  border:1.5px solid var(--line);
  border-radius:var(--radius-md);
  padding:13px 14px;
  margin-bottom:9px;
  cursor:pointer;
  font-family:var(--font-body);
  transition:border-color .15s, background .15s;
}
.calc .check-card:hover{border-color:var(--primary);}
.calc .check-card[aria-checked="true"]{border-color:var(--primary); background:var(--primary-soft);}
.calc .check-card .box{
  width:20px;height:20px;
  border-radius:var(--radius-sm);
  border:2px solid var(--ink-soft);
  flex:0 0 20px;
  margin-top:1px;
  position:relative;
  transition:background .15s, border-color .15s;
}
.calc .check-card[aria-checked="true"] .box{background:var(--primary); border-color:var(--primary);}
.calc .check-card[aria-checked="true"] .box::after{
  content:"";
  position:absolute;
  left:5px; top:1px;
  width:5px; height:9px;
  border:solid #fff;
  border-width:0 2px 2px 0;
  transform:rotate(40deg);
}
.calc .check-card .txt{display:flex; flex-direction:column; gap:2px;}
.calc .check-card .txt .t{font-size:14px; font-weight:600; color:var(--ink);}
.calc .check-card .txt .d{font-size:12px; color:var(--ink-soft); font-weight:400;}

.calc .skip-row{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:10px;
  font-size:13px;
  color:var(--ink-soft);
}
.calc .skip-row input{width:16px;height:16px; accent-color:var(--primary); flex:0 0 auto;}
.calc .skip-row label{margin:0;}

/* ---------- Deslizador ---------- */
.calc .slider-block{
  background:var(--surface-soft);
  border:1.5px solid var(--line);
  border-radius:var(--radius-md);
  padding:18px 16px 14px;
  margin-top:14px;
}
.calc .slider-top{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  margin-bottom:10px;
  font-size:13.5px;
}
.calc .slider-top .pct{
  font-size:24px;
  font-weight:600;
  font-variant-numeric:tabular-nums;
  color:var(--primary);
}
.calc input[type=range]{
  width:100%;
  -webkit-appearance:none;
  appearance:none;
  height:6px;
  border-radius:4px;
  background:var(--line);
  outline:none;
}
.calc input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;
  width:26px;height:26px;border-radius:50%;
  background:var(--primary);
  border:3px solid #fff;
  box-shadow:0 2px 6px rgba(41,60,12,.35);
  cursor:pointer;
  margin-top:-10px;
}
.calc input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:4px;}
.calc input[type=range]::-moz-range-thumb{
  width:22px;height:22px;border-radius:50%;
  background:var(--primary); border:3px solid #fff;
  box-shadow:0 2px 6px rgba(41,60,12,.35); cursor:pointer;
}
.calc .loan-preview{
  margin-top:10px;
  font-size:12.5px;
  color:var(--ink-soft);
}
.calc .loan-preview b{color:var(--primary-dark); font-variant-numeric:tabular-nums;}

/* ---------- Navegación entre pasos ---------- */
.calc .nav-row{
  display:flex;
  gap:10px;
  margin-top:22px;
}
.calc .btn{
  flex:1;
  border:none;
  border-radius:var(--radius-sm);
  padding:16px 18px;
  font-family:var(--font-body);
  font-weight:600;
  font-size:15.5px;
  cursor:pointer;
  transition:background .15s, border-color .15s;
}
.calc .btn-primary{
  background:var(--primary);
  color:#fff;
  border:1px solid #71814f;
}
.calc .btn-primary:hover{background:#3d521d;}
.calc .btn-ghost{
  background:transparent;
  color:var(--ink-soft);
  border:1.5px solid var(--line);
  flex:0 0 92px;
}
.calc .btn-ghost:hover{border-color:var(--ink-soft);}
.calc .btn[disabled]{opacity:.4; pointer-events:none;}

/* ---------- Resultado ---------- */
.calc #step-result{position:relative;}
.calc #step-result:focus{outline:none;}
.calc .seal{
  position:absolute;
  top:-6px; right:-4px;
  width:88px;height:88px;
  opacity:0;
  transform:scale(.6) rotate(-18deg);
  transition:opacity .5s ease .15s, transform .5s cubic-bezier(.2,1.4,.4,1) .15s;
  pointer-events:none;
}
.calc .seal.show{opacity:1; transform:scale(1) rotate(-11deg);}

.calc .result-title{
  font-family:var(--font-body);
  font-size:11.5px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--brick);
  margin-bottom:6px;
}
.calc .result-headline{
  font-family:var(--font-display);
  font-size:22px;
  font-weight:500;
  color:var(--primary-dark);
  margin:0 0 18px;
  line-height:1.28;
  max-width:80%;
}

.calc .stat-strip{
  display:flex;
  flex-direction:column;
  gap:9px;
  margin-bottom:18px;
}
.calc .stat-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  background:var(--surface-soft);
  border-radius:var(--radius-md);
  padding:13px 15px;
  border:1px solid var(--line);
}
.calc .stat-row .lbl{font-size:13.5px; color:var(--ink-soft); font-weight:500;}
.calc .stat-row .val{
  font-size:16px; font-weight:600; color:var(--primary-dark);
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.calc .stat-row.reforma .val,
.calc .stat-row.negative .val{color:var(--brick);}

.calc .total-block{
  background:var(--primary);
  border-radius:var(--radius-md);
  padding:20px 18px;
  color:#fff;
  margin-bottom:18px;
  position:relative;
  overflow:hidden;
}
.calc .total-block::after{
  content:"";
  position:absolute; inset:0;
  background:repeating-linear-gradient(135deg, rgba(255,255,255,.04) 0 10px, transparent 10px 20px);
}
.calc .total-block .lbl{
  font-family:var(--font-body);
  font-size:11.5px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:.85;
  margin-bottom:4px;
  position:relative;
}
.calc .total-block .amount{
  font-family:var(--font-display);
  font-size:40px;
  font-weight:500;
  letter-spacing:-.015em;
  font-variant-numeric:tabular-nums;
  position:relative;
}

.calc details.breakdown{
  border:1.5px solid var(--line);
  border-radius:var(--radius-md);
  margin-bottom:14px;
  overflow:hidden;
}
.calc details.breakdown summary{
  list-style:none;
  cursor:pointer;
  padding:14px 16px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  font-weight:600;
  font-size:14.5px;
  color:var(--primary-dark);
}
.calc details.breakdown summary::-webkit-details-marker{display:none;}
.calc details.breakdown summary::after{
  content:"+";
  font-size:20px;
  color:var(--brass);
  transition:transform .2s;
}
.calc details.breakdown[open] summary::after{transform:rotate(45deg);}
.calc .breakdown-body{padding:0 16px 14px;}
.calc .bd-line{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:9px 0;
  border-top:1px dashed var(--line);
  font-size:13.5px;
}
.calc .bd-line .n{color:var(--ink-soft);}
.calc .bd-line .v{font-weight:600; color:var(--ink); font-variant-numeric:tabular-nums; white-space:nowrap;}
.calc .bd-line.sum{border-top:1.5px solid var(--ink); margin-top:4px; padding-top:11px; font-weight:600;}
.calc .bd-line.sum .n{color:var(--ink);}
.calc .bd-line.sum .v{font-size:14.5px;}

.calc .disclaimer{
  font-size:12px;
  line-height:1.6;
  color:var(--ink-soft);
  background:var(--surface-soft);
  border-left:3px solid var(--brass);
  border-radius:var(--radius-sm);
  padding:12px 14px;
  margin-bottom:20px;
}
.calc .disclaimer strong{color:var(--ink);}

/* La llamada a la acción es el verde de marca, como en el resto del sitio;
   el ladrillo se reserva para señalar coste. */
.calc .cta-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  width:100%;
  min-height:54px;
  border:1px solid #71814f;
  border-radius:var(--radius-sm);
  padding:17px 20px;
  background:var(--primary);
  color:#fff;
  font-family:var(--font-body);
  font-weight:600;
  font-size:15px;
  text-align:center;
  cursor:pointer;
  transition:background .15s;
  margin-bottom:12px;
}
.calc .cta-btn:hover{background:#3d521d;}

.calc .cta-note{
  margin:-4px 0 14px;
  text-align:center;
  font-size:12px;
  color:var(--ink-soft);
}

.calc .restart-link{
  display:block;
  text-align:center;
  font-size:13px;
  color:var(--ink-soft);
  text-decoration:underline;
  cursor:pointer;
  background:none;
  border:none;
  width:100%;
  padding:6px;
  font-family:var(--font-body);
}

.calc .foot{
  text-align:center;
  font-size:11.5px;
  color:var(--ink-soft);
  margin-top:22px;
}

/* ---------- Guía estática bajo la herramienta ----------
   Texto que se lee sin JavaScript: los tipos, un ejemplo resuelto y las
   fuentes. Sigue la tipografía del widget, sin tarjeta, para que se lea
   como una nota y no compita con el asistente. */
.calc .guia{
  margin-top:44px;
  padding-top:28px;
  border-top:1px solid var(--line);
  font-size:14.5px;
  line-height:1.65;
}
.calc .guia h2{
  font-family:var(--font-display);
  font-weight:500;
  font-size:26px;
  line-height:1.15;
  color:var(--primary-dark);
  margin:0 0 14px;
}
.calc .guia h3{
  font-family:var(--font-body);
  font-weight:600;
  font-size:15.5px;
  line-height:1.4;
  color:var(--ink);
  margin:28px 0 8px;
}
.calc .guia p{margin:0 0 12px; color:var(--ink-soft);}
.calc .guia strong{color:var(--ink); font-weight:600;}
.calc .guia ul{margin:0 0 12px; padding-left:18px; color:var(--ink-soft);}
.calc .guia li{margin-bottom:6px;}
.calc .guia a{color:var(--primary); text-decoration:underline; text-underline-offset:2px;}
.calc .guia-tabla{
  width:100%;
  border-collapse:collapse;
  margin:6px 0 14px;
  font-size:13.5px;
  font-variant-numeric:tabular-nums;
}
.calc .guia-tabla caption{
  text-align:left;
  font-size:12px;
  color:var(--ink-soft);
  padding-bottom:6px;
}
.calc .guia-tabla th,
.calc .guia-tabla td{
  padding:8px 0;
  border-top:1px dashed var(--line);
  text-align:left;
  font-weight:400;
  vertical-align:top;
}
.calc .guia-tabla thead th{font-weight:600; border-top:0;}
.calc .guia-tabla thead th:last-child{text-align:right;}
.calc .guia-tabla td:last-child{text-align:right; font-weight:600; white-space:nowrap; padding-left:12px;}
.calc .guia-tabla tr.total th,
.calc .guia-tabla tr.total td{border-top:1.5px solid var(--ink); font-weight:600; color:var(--ink);}
.calc .guia-enlaces{margin-top:24px;}
.calc .guia-fuentes{font-size:12px; line-height:1.6; margin-top:18px;}

.calc .noscript{
  background:var(--surface);
  border:1.5px solid var(--brick);
  border-radius:var(--radius-md);
  padding:18px 20px;
  margin-bottom:18px;
  font-size:14px;
  line-height:1.6;
}
.calc .noscript a{text-decoration:underline; font-weight:600;}

@media (min-width:520px){
  .calc h1.title{font-size:35px;}
  .calc .card{padding:32px 30px 28px;}
}

@media (prefers-reduced-motion: reduce){
  .calc .step.active{animation:none;}
  .calc .progress .seg i,
  .calc .seal,
  .calc .toggle-btn,
  .calc .check-card,
  .calc .btn,
  .calc .cta-btn,
  .calc .price-wrap,
  .calc details.breakdown summary::after{transition:none;}
  .calc .seal{opacity:1; transform:scale(1) rotate(-11deg);}
}

/* =========================================================
   Extras propios de /calculadora-gastos-compra-vivienda
   ========================================================= */
.calc .bonus-banner{
  display:flex;
  gap:10px;
  align-items:flex-start;
  background:var(--brass-soft);
  border:1.5px solid var(--brass);
  border-radius:var(--radius-md);
  padding:13px 14px;
  margin-bottom:14px;
}
.calc .bonus-banner .ico{
  font-size:18px;
  font-weight:600;
  color:var(--brass);
  line-height:1.2;
}
.calc .bonus-banner .txt{font-size:13px; line-height:1.5; color:var(--primary-dark);}
.calc .bonus-banner .txt b{font-variant-numeric:tabular-nums;}

.calc .bonus-list{padding:0 16px 14px;}
.calc .bonus-item{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:10px 0;
  border-top:1px dashed var(--line);
}
.calc .bonus-item .l{font-size:13px; color:var(--ink); max-width:70%;}
.calc .bonus-item .l .req{display:block; font-size:11.5px; color:var(--ink-soft); margin-top:2px;}
.calc .bonus-item .r{font-size:12px; font-weight:600; white-space:nowrap;}
.calc .bonus-item.ok .r{color:var(--primary);}
.calc .bonus-item.no .r{color:var(--ink-soft); font-weight:500;}
.calc .bonus-foral{
  font-size:12px;
  color:var(--ink-soft);
  padding:10px 16px 14px;
  line-height:1.5;
}

.calc .funding-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:20px;
}
.calc .funding-card{
  border-radius:var(--radius-md);
  padding:14px;
  border:1.5px solid var(--line);
  background:var(--surface);
}
.calc .funding-card .lbl{font-size:11.5px; color:var(--ink-soft); margin-bottom:5px;}
.calc .funding-card .val{font-size:19px; font-weight:600; color:var(--primary-dark); font-variant-numeric:tabular-nums;}
.calc .funding-card.own{border-color:var(--brass); background:var(--brass-soft);}
.calc .funding-card.own .val{color:var(--brick);}

/* =========================================================
   Extras propios de /calculadora-gastos-venta-vivienda
   ========================================================= */
.calc .field-row{display:grid; grid-template-columns:1.4fr 1fr; gap:10px;}
.calc .stat-row.neg .val{color:var(--brick);}
.calc .bd-line.neg .v{color:var(--brick);}
.calc .bd-line .req{display:block; font-size:11px; color:var(--ink-soft); margin-top:2px;}

/* =========================================================
   Extras propios de /calculadora-gastos-alquiler-inquilino
   ========================================================= */
.calc .inline-note{
  font-size:12px;
  color:var(--brick);
  background:#fbefe8;
  border-radius:var(--radius-sm);
  padding:9px 11px;
  margin-top:10px;
  line-height:1.5;
}
.calc .bonus-banner.warn{background:#fbefe8; border-color:var(--brick);}
.calc .bonus-banner.warn .ico{color:var(--brick);}
.calc .legal-list{padding:14px 16px; font-size:12.5px; line-height:1.6; color:var(--ink-soft);}
.calc .legal-list p{margin:0 0 9px; max-width:none;}
.calc .legal-list p:last-child{margin-bottom:0;}
.calc .legal-list b{color:var(--primary-dark);}

/* =========================================================
   Extras propios de /calculadora-ganancia-alquiler-propietario
   ========================================================= */
.calc .compact-field{margin-bottom:11px;}
.calc .compact-field label{display:block; font-size:12.5px; font-weight:600; color:var(--ink); margin-bottom:5px;}
.calc .compact-field .d{font-size:11px; color:var(--ink-soft); margin-top:4px;}
.calc .inline-note.warn{color:var(--brick); background:#fbefe8;}
.calc .total-block .sub{font-size:12px; opacity:.85; margin-top:4px; position:relative;}
.calc .yield-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:18px;}
.calc .yield-card{border-radius:var(--radius-md); padding:14px; border:1.5px solid var(--line); background:var(--surface);}
.calc .yield-card .lbl{font-size:11.5px; color:var(--ink-soft); margin-bottom:5px;}
.calc .yield-card .val{font-size:20px; font-weight:600; color:var(--primary-dark); font-variant-numeric:tabular-nums;}
.calc .question-note{font-size:13px; color:var(--ink-soft); margin:-8px 0 16px; line-height:1.55;}
.calc #agenciaExtra > .field{margin-top:16px;}

/* =========================================================
   Extras propios de /calculadora-capacidad-compra-vivienda
   Formulario en vivo, no asistente: dos paneles, datos y
   estimación, que se ponen uno al lado del otro en pantallas
   anchas. Por eso la raíz se ensancha con .calc-wide.
   ========================================================= */
.calc.calc-wide{max-width:900px;}
.calc.calc-wide .subtitle{max-width:60ch;}
.calc .capacidad-layout{display:grid; grid-template-columns:minmax(0,1fr); gap:18px; align-items:start;}
.calc .panel-title{
  font-family:var(--font-display);
  font-size:24px;
  font-weight:500;
  color:var(--primary-dark);
  margin:0 0 16px;
  line-height:1.22;
}
.calc select.big-select.compact{padding:11px 40px 11px 14px; font-size:15px;}
.calc .compact-field .d a{color:var(--primary); text-decoration:underline; text-underline-offset:2px;}
.calc .capacidad-actions{flex-wrap:wrap; margin-top:20px;}
.calc .capacidad-actions .btn{flex:1 1 auto; white-space:nowrap; padding:13px 16px; font-size:14.5px;}
.calc .total-block .amount{overflow-wrap:anywhere;}
.calc .total-block + .total-block{margin-top:-8px;}
.calc #warning{margin:0 0 14px;}
.calc #warning:empty{display:none;}
.calc .inline-note.ok{color:var(--ink-soft); background:var(--surface-soft);}

@media (min-width:720px){
  .calc .capacidad-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);}
  .calc.calc-wide .card{padding:28px 26px 24px;}
}

/* Imprimir o guardar en PDF: solo la herramienta, sin la cabecera, el
   pie, los botones ni la guía. */
@media print{
  .pagina-calc-capacidad .header,
  .pagina-calc-capacidad .footer,
  .pagina-calc-capacidad .skip,
  .pagina-calc-capacidad .calc .capacidad-actions,
  .pagina-calc-capacidad .calc .cta-btn,
  .pagina-calc-capacidad .calc .cta-note,
  .pagina-calc-capacidad .calc .guia,
  .pagina-calc-capacidad .calc .foot{display:none;}
  .pagina-calc-capacidad .calc{max-width:none; padding:0;}
  .pagina-calc-capacidad .calc .card{box-shadow:none; break-inside:avoid;}
  .pagina-calc-capacidad .calc .capacidad-layout{grid-template-columns:1.1fr .9fr;}
  .pagina-calc-capacidad .calc .total-block{-webkit-print-color-adjust:exact; print-color-adjust:exact;}
}
