/* Calculadora Coreless (página /coreless/). Todo acotado a .pv-cl para no tocar el resto del tema.
   Paleta propia de la calculadora (teal con contraste AA sobre blanco); tipografías del tema.
   La hoja del informe PDF es papel: siempre clara. */
.pv-cl {
	--ground: #F2F6F7;
	--surface: #FFFFFF;
	--ink: #0F2129;
	--muted: #4E6670;
	--teal: #0E7C7B;
	--teal-suave: #E1F0EF;
	--linea: #D2DEE1;
	--regla: #0F2129;
	--aviso: #A4501B;
	--aviso-suave: #F8EBDD;
	--sobre-teal: #FFFFFF;
	--film: #DCE8EB; --film-cara: #EEF5F6; --film-borde: #A9C0C6; --carton: #A8794B; --hueco: #C5D4D8;
	--papel: #FFFFFF;
	--papel-ink: #0F2129;
	--papel-muted: #4E6670;
	--papel-teal: #0E7C7B;
	--papel-suave: #E9F3F2;
	--papel-linea: #D2DEE1;
	--f-display: var(--wp--preset--font-family--red-hat-display, "Red Hat Display"), "Helvetica Neue", Arial, sans-serif;
	--f-body: var(--wp--preset--font-family--inter, "Inter"), system-ui, "Segoe UI", Arial, sans-serif;
	--f-mono: var(--f-body);
	color: var(--ink);
	font-size: 16px;
	line-height: 1.5;
}
.pv-cl, .pv-cl * { box-sizing: border-box; }
.pv-cl .wrap { max-width: 1080px; margin: 0 auto; display: grid; gap: 36px; }
.pv-cl [hidden] { display: none !important; }

  .pv-cl .eyebrow {
    display: flex; align-items: center; gap: 14px;
    font: 600 .95rem var(--f-display); letter-spacing: .02em; color: var(--teal);
  }
    .pv-cl h1,
.pv-cl h2,
.pv-cl h3 { font-family: var(--f-display); letter-spacing: -.02em; text-wrap: balance; margin: 0; }
  .pv-cl h1 { font-size: var(--wp--preset--font-size--xx-large, clamp(1.9rem, 4vw, 2.88rem)); line-height: 1.18; font-weight: 600; }
  .pv-cl h2 { font-size: var(--wp--preset--font-size--x-large, clamp(1.28rem, 3vw, 1.68rem)); line-height: 1.18; font-weight: 600; }
  .pv-cl .bajada { font-size: 1.08rem; color: var(--muted); margin: 0; max-width: 56ch; }
  .pv-cl .hero { display: grid; gap: 12px; }
  .pv-cl .micro { display: flex; flex-wrap: wrap; gap: 8px; }
  .pv-cl .antes-ahora { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 8px 0 0; }
  .pv-cl .antes-ahora figure { margin: 0; position: relative; border-radius: 8px; overflow: hidden; background: var(--linea); }
  .pv-cl .antes-ahora img { display: block; width: 100%; height: auto; aspect-ratio: 760 / 217; object-fit: cover; object-position: 50% 50%; }
  .pv-cl .antes-ahora figcaption { position: absolute; left: 12px; top: 12px; font: 600 .85rem var(--f-display); letter-spacing: .02em;
    padding: 6px 10px; border-radius: 4px; background: var(--surface); color: var(--ink); }
  .pv-cl .antes-ahora figure.si figcaption { background: var(--teal); color: var(--sobre-teal); }
  .pv-cl .pill { font: 500 .85rem var(--f-mono); padding: 5px 10px; border-radius: 999px; background: var(--teal-suave); color: var(--teal); }

  /* ---------- ingreso ---------- */
  .pv-cl .lineas { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; }
  .pv-cl .linea { background: var(--surface); border: 1px solid var(--linea); border-radius: 8px; padding: 24px; display: grid; gap: 18px; align-content: start; min-width: 0; }
  .pv-cl .linea h2 { font-size: var(--wp--preset--font-size--x-large, 1.28rem); font-weight: 600; }
  .pv-cl .linea .que { margin: -14px 0 0; color: var(--muted); font-size: .95rem; }
  .pv-cl label.campo { display: grid; gap: 6px; font-weight: 600; font-size: .95rem; }
  .pv-cl .kg { display: flex; align-items: center; border: 1.5px solid var(--linea); border-radius: 6px; background: var(--ground); }
  .pv-cl .kg:focus-within { border-color: var(--teal); }
  .pv-cl .kg input { flex: 1 1 0; width: 100%; min-width: 0; border: 0; background: transparent; color: var(--ink); font: 600 1.5rem var(--f-display); padding: 10px 14px; font-variant-numeric: tabular-nums; }
  .pv-cl .kg input:focus { outline: none; }
  .pv-cl .kg.ej input { color: var(--muted); }
  .pv-cl .kg .tag-ej { padding: 3px 7px; margin-right: 8px; border-radius: 4px; background: var(--aviso-suave); color: var(--aviso); font: 500 .8rem var(--f-mono); }
  .pv-cl .ir { display: flex; justify-content: center; margin-top: 20px; }
  .pv-cl .kg span { padding-right: 14px; color: var(--muted); font: 500 .85rem var(--f-mono); white-space: nowrap; }
  .pv-cl .kg.chico input { font-size: 1.1rem; padding: 8px 12px; }
  .pv-cl fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
  .pv-cl legend { font-weight: 600; font-size: .95rem; padding: 0; margin-bottom: 8px; }
  .pv-cl .chips { display: flex; flex-wrap: wrap; gap: 8px; }
  .pv-cl .chips input { position: absolute; opacity: 0; pointer-events: none; }
  .pv-cl .chips label { cursor: pointer; padding: 8px 13px; border-radius: 999px; border: 1.5px solid var(--linea); font: 600 .95rem var(--f-body); background: var(--surface); font-variant-numeric: tabular-nums; transition: background .15s, border-color .15s; }
  .pv-cl .chips label.suave { color: var(--muted); font-weight: 500; }
  .pv-cl .chips input:checked + label { background: var(--teal); border-color: var(--teal); color: var(--sobre-teal); }
  .pv-cl .chips input:focus-visible + label { outline: 2px solid var(--teal); outline-offset: 2px; }
  .pv-cl .pista { font-size: 13px; color: var(--muted); margin: 0; }
  .pv-cl .pista.alerta { color: var(--aviso); }
  .pv-cl .ejemplo { font: 500 .85rem var(--f-mono); color: var(--aviso); margin: 12px 0 0; }

  /* ---------- resultado ---------- */
  .pv-cl .reporte { display: grid; gap: 14px; }
  .pv-cl .estado { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
  .pv-cl .tag { font: 500 .85rem var(--f-mono); padding: 4px 9px; border-radius: 4px; border: 1px solid var(--linea); color: var(--muted); }
  .pv-cl .calculado { color: var(--muted); margin: 0; font-size: 15px; }
  .pv-cl .calculado b { color: var(--ink); font-weight: 600; }
  .pv-cl .vacio { padding: 28px; border: 1.5px dashed var(--linea); border-radius: 8px; color: var(--muted); }

  .pv-cl .principales { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-top: 18px; border-top: 4px solid var(--regla); }
  .pv-cl .kpi { padding: 20px 20px 4px 0; display: grid; gap: 6px; align-content: start; min-width: 0; }
  .pv-cl .kpi + .kpi { padding-left: 20px; border-left: 1px solid var(--linea); }
  .pv-cl .kpi .n { font: 600 clamp(2.2rem, 4vw, 3.1rem)/1.05 var(--f-display); color: var(--teal); letter-spacing: -.03em; font-variant-numeric: tabular-nums; white-space: nowrap; }
  .pv-cl .kpi .u { font-size: .42em; font-weight: 700; letter-spacing: 0; margin-left: 4px; }
  .pv-cl .kpi .l { font-weight: 600; font-size: 1rem; line-height: 1.3; }
  .pv-cl .kpi .d { font-size: 13px; color: var(--muted); }

  .pv-cl .equivs { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 28px; }
  .pv-cl .equiv { background: var(--surface); border: 1px solid var(--linea); border-radius: 8px; padding: 22px 24px; display: grid; gap: 14px; align-content: start; min-width: 0; }
  .pv-cl .equiv .frase { font: 600 1.15rem/1.3 var(--f-display); margin: 0; text-wrap: balance; }
  .pv-cl .equiv .frase b { color: var(--teal); }
  .pv-cl .equiv .ref { font-size: 12px; color: var(--muted); margin: 0; }
  .pv-cl .picto { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: flex-end; min-height: 46px; }
  .pv-cl .ico { position: relative; width: var(--w); height: var(--h); flex: none; }
  .pv-cl .ico svg { position: absolute; left: 0; top: 0; width: var(--w); height: var(--h); }
  .pv-cl .ico .base { opacity: .16; }
  .pv-cl .ico .lleno { position: absolute; inset: 0; overflow: hidden; }
  .pv-cl .por { font: 600 1.6rem var(--f-display); color: var(--teal); align-self: center; }
  .pv-cl .entra .ico { animation: entra .45s cubic-bezier(.2,.7,.2,1) both; }
  @keyframes entra { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

  .pv-cl .secundarios { display: grid; grid-template-columns: auto 1fr 1fr; gap: 28px; align-items: baseline; margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--linea); }
  .pv-cl .secundarios h3 { margin: 0; font: 600 .95rem var(--f-display); letter-spacing: .02em; color: var(--teal); }
  .pv-cl .sec .n { font: 600 1.8rem var(--f-display); font-variant-numeric: tabular-nums; }
  .pv-cl .sec .u { font-size: 16px; font-weight: 700; margin-left: 4px; }
  .pv-cl .sec .l { color: var(--muted); font-size: .95rem; }

  .pv-cl .concepto { margin-top: 36px; font: 600 var(--wp--preset--font-size--x-large, clamp(1.28rem, 3vw, 1.68rem))/1.18 var(--f-display); letter-spacing: -.02em; text-wrap: balance; }
  .pv-cl .concepto span { color: var(--teal); }

  .pv-cl details.metodo { border-top: 1px solid var(--linea); padding-top: 14px; }
  .pv-cl details.metodo summary { cursor: pointer; font: 600 1rem var(--f-display); color: var(--teal); list-style: none; display: flex; gap: 8px; align-items: center; }
  .pv-cl details.metodo summary::-webkit-details-marker { display: none; }
  .pv-cl details.metodo summary::before { content: "+"; font: 700 18px var(--f-mono); width: 18px; }
  .pv-cl details.metodo[open] summary::before { content: "–"; }
  .pv-cl .metodo-cuerpo { display: grid; gap: 16px; padding-top: 14px; font-size: .95rem; color: var(--muted); max-width: 90ch; }
  .pv-cl .metodo-cuerpo h3 { margin: 0 0 4px; font: 600 1rem var(--f-display); color: var(--ink); }
  .pv-cl .metodo-cuerpo p,
.pv-cl .metodo-cuerpo ul { margin: 0; }
  .pv-cl .metodo-cuerpo ul { padding-left: 18px; display: grid; gap: 3px; }
  .pv-cl .tabla { overflow-x: auto; }
  .pv-cl .tabla table { border-collapse: collapse; font-size: 13px; min-width: 560px; width: 100%; }
  .pv-cl .tabla th,
.pv-cl .tabla td { text-align: left; padding: 6px 10px 6px 0; border-bottom: 1px solid var(--linea); font-variant-numeric: tabular-nums; }
  .pv-cl .tabla th { color: var(--ink); font-weight: 600; }
  .pv-cl .tabla td.num,
.pv-cl .tabla th.num { text-align: right; }

  /* ---------- conversión ---------- */
  .pv-cl .cta { background: var(--surface); border: 1px solid var(--linea); border-radius: 8px; padding: 32px; display: grid; gap: 20px; }
  .pv-cl .cta h2 { font-size: var(--wp--preset--font-size--x-large, clamp(1.28rem, 3vw, 1.68rem)); }
  .pv-cl .botones { display: flex; flex-wrap: wrap; gap: 12px; }
  .pv-cl button { cursor: pointer; border-radius: 999px; font: 600 1rem var(--f-display); letter-spacing: 0; padding: .85rem 1.6rem; }
  .pv-cl .btn-1 { background: var(--teal); color: var(--sobre-teal); border: 1.5px solid var(--teal); }
  .pv-cl .btn-2 { background: transparent; color: var(--teal); border: 1.5px solid var(--teal); }
  .pv-cl button:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
  .pv-cl form#formPrueba { display: grid; grid-template-columns: 1fr 1fr; gap: 14px;  }
  .pv-cl form .ancho { grid-column: 1 / -1; }
  .pv-cl form input[type=text],
.pv-cl form input[type=email],
.pv-cl form input[type=tel] { width: 100%; border: 1.5px solid var(--linea); border-radius: 6px; background: var(--ground); color: var(--ink); font: 400 16px var(--f-body); padding: 10px 12px; }
  .pv-cl form input:focus { outline: none; border-color: var(--teal); }
  .pv-cl .opc { font-weight: 400; color: var(--muted); }
  .pv-cl .check { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: 13px; color: var(--muted); }
  .pv-cl .check input { margin-top: 3px; accent-color: var(--teal); }
  .pv-cl .msg { font-size: .95rem; margin: 0; padding: 12px 14px; border-radius: 6px; }
  .pv-cl .msg.error { color: var(--aviso); background: var(--aviso-suave); }
  .pv-cl .msg.info { color: var(--ink); background: var(--teal-suave); }
  .pv-cl .legal { font-size: 12px; color: var(--muted); margin: 0; }

  .pv-cl .pie { font-size: 12px; color: var(--muted); border-top: 1px solid var(--linea); padding-top: 16px; }

  /* ---------- informe PDF (hoja de papel; se rellena en .informe-fuente y se copia al generar el PDF) ---------- */

  .pv-cl .hoja { --teal: var(--papel-teal); --surface: var(--papel); width: 794px; height: 1123px; overflow: hidden; background: var(--papel); color: var(--papel-ink); padding: 48px 52px 40px; display: flex; flex-direction: column; gap: 22px; font-family: var(--f-body); }
  .pv-cl .hoja .h-top { display: flex; justify-content: space-between; align-items: center; border-bottom: 3px solid var(--papel-ink); padding-bottom: 14px; }
  .pv-cl .hoja .h-top img { height: 30px; }
  .pv-cl .hoja .h-top span { font: 500 11px var(--f-mono); color: var(--papel-muted); letter-spacing: .06em; text-transform: uppercase; text-align: right; }
  .pv-cl .hoja .h-eyebrow { font: 700 11px var(--f-display); letter-spacing: .2em; text-transform: uppercase; color: var(--papel-teal); }
  .pv-cl .hoja h3 { font: 800 30px/1.1 var(--f-display); color: var(--papel-ink); margin-top: 6px; }
  .pv-cl .hoja .h-consumo { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .pv-cl .hoja .h-consumo div { background: var(--papel-suave); border-radius: 6px; padding: 10px 14px; font-size: 13px; }
  .pv-cl .hoja .h-consumo b { display: block; font: 700 18px var(--f-display); }
  .pv-cl .hoja .h-kpis { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 3px solid var(--papel-ink); }
  .pv-cl .hoja .h-kpi { padding: 14px 12px 0 0; }
  .pv-cl .hoja .h-kpi + .h-kpi { padding-left: 12px; border-left: 1px solid var(--papel-linea); }
  .pv-cl .hoja .h-kpi .n { font: 800 34px/1 var(--f-display); color: var(--papel-teal); white-space: nowrap; }
  .pv-cl .hoja .h-kpi .u { font-size: 14px; font-weight: 700; margin-left: 3px; }
  .pv-cl .hoja .h-kpi .l { font-size: 12px; font-weight: 600; margin-top: 6px; line-height: 1.3; }
  .pv-cl .hoja .h-equivs { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
  .pv-cl .hoja .h-equiv { border: 1px solid var(--papel-linea); border-radius: 6px; padding: 14px 16px; display: grid; gap: 8px; }
  .pv-cl .hoja .h-equiv p { margin: 0; font: 700 15px/1.3 var(--f-display); }
  .pv-cl .hoja .h-equiv p b { color: var(--papel-teal); }
  .pv-cl .hoja .h-equiv small { font-size: 10px; color: var(--papel-muted); }
  .pv-cl .hoja .picto { min-height: 30px; gap: 4px 6px; }
  .pv-cl .hoja .por { font-size: 18px; color: var(--papel-teal); }
  .pv-cl .hoja .h-sec { display: flex; gap: 40px; font-size: 13px; color: var(--papel-muted); }
  .pv-cl .hoja .h-sec b { font: 800 22px var(--f-display); color: var(--papel-ink); margin-right: 4px; }
  .pv-cl .hoja .h-sup { font-size: 10.5px; line-height: 1.45; color: var(--papel-muted); display: grid; gap: 4px; }
  .pv-cl .hoja .h-sup strong { color: var(--papel-ink); }
  .pv-cl .hoja .h-cta { margin-top: auto; background: var(--papel-teal); color: var(--papel); border-radius: 6px; padding: 16px 20px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
  .pv-cl .hoja .h-cta p { margin: 0; font: 800 18px/1.2 var(--f-display); }
  .pv-cl .hoja .h-cta span { font: 500 12px var(--f-mono); text-align: right; }
  .pv-cl .hoja .h-pie { font-size: 9.5px; color: var(--papel-muted); }

  /* Versión para mostrar al equipo (20-10-2026): se OCULTA, no se borra. Para volver a
     mostrarlo todo, quitar este bloque. Los avisos de error de "Otro peso" siguen visibles. */
.pv-cl .pista:not(.alerta),
.pv-cl .kpi .d,
.pv-cl .equiv .ref { display: none; }

  @media (max-width: 860px) {
    .pv-cl .principales { grid-template-columns: 1fr 1fr; }
    .pv-cl .kpi:nth-child(3) { padding-left: 0; border-left: 0; }
    .pv-cl .kpi:nth-child(n+3) { border-top: 1px solid var(--linea); }
  }
  @media (max-width: 760px) {
    .pv-cl .lineas,
.pv-cl .equivs { grid-template-columns: minmax(0, 1fr); }
    .pv-cl .secundarios { grid-template-columns: 1fr 1fr; }
    .pv-cl .secundarios h3 { grid-column: 1 / -1; }
    .pv-cl form#formPrueba { grid-template-columns: 1fr; }
    .pv-cl .cta { padding: 22px; }
  }
  @media (max-width: 560px) {
    .pv-cl .antes-ahora figcaption { position: static; display: inline-block; margin: 8px 0 0 8px; }
  }
  @media (max-width: 420px) {
    .pv-cl .linea { padding: 18px; }
    .pv-cl .kpi .n { font-size: 2rem; }
  }
  @media (prefers-reduced-motion: reduce) {
    .pv-cl .entra .ico { animation: none; }
    .pv-cl .chips label { transition: none; }
  }

/* ---------- elegir línea (envolvedora o manual) ---------- */
.pv-cl .elige { margin: 0 0 14px; color: var(--muted); font-size: 1.08rem; }
.pv-cl .sr { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.pv-cl .linea { position: relative; cursor: pointer; transition: border-color .15s, box-shadow .15s, background-color .15s, opacity .15s; }
.pv-cl .linea:hover { border-color: var(--teal); box-shadow: 0 0 0 3px var(--teal-suave); }
.pv-cl .linea.sel { border-color: var(--teal); border-width: 2px; padding: 23px; background: var(--teal-suave); box-shadow: none; }
.pv-cl .linea:has(.sr:focus-visible) { outline: 2px solid var(--ink); outline-offset: 3px; }
.pv-cl .lineas.hay-sel .linea:not(.sel):not(:hover) { opacity: .72; }
.pv-cl .marca-sel { justify-self: start; display: inline-flex; align-items: center; cursor: pointer; padding: 6px 14px; border-radius: 999px; border: 1.5px solid var(--teal); background: var(--surface); color: var(--teal); font: 600 .9rem var(--f-body); transition: background-color .15s, color .15s; }
.pv-cl .marca-sel:hover { background: var(--teal-suave); }
.pv-cl .marca-sel .m-on { display: none; }
.pv-cl .linea.sel .marca-sel { background: var(--teal); color: var(--sobre-teal); }
.pv-cl .linea.sel .marca-sel .m-on { display: inline; }
.pv-cl .linea.sel .marca-sel .m-off { display: none; }
.pv-cl .linea.sel .kg, .pv-cl .linea.sel .chips label:not(.suave) { background-color: var(--surface); }
.pv-cl .linea.sel .chips input:checked + label { background: var(--teal); }
.pv-cl #avisoSel { margin-top: 12px; }
.pv-cl .hoja .h-consumo div:only-child { grid-column: 1 / -1; }
@media (max-width: 420px) { .pv-cl .linea.sel { padding: 17px; } }

.pv-cl form#formPrueba { margin-top: 0; align-items: start; }
.pv-cl form#formPrueba textarea { width: 100%; border: 1.5px solid var(--linea); border-radius: 6px; background: var(--ground); color: var(--ink); font: 400 1rem var(--f-body); padding: 10px 12px; resize: vertical; }
.pv-cl form#formPrueba textarea:focus { outline: none; border-color: var(--teal); }
.pv-cl form#formPrueba .plastyverg-form-privacidad { padding-top: 14px; }
