@font-face{font-family:'General Sans';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/general-sans-400.woff2') format('woff2')}
@font-face{font-family:'General Sans';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/general-sans-500.woff2') format('woff2')}
@font-face{font-family:'General Sans';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/general-sans-600.woff2') format('woff2')}

:root{
  --papel:#f5f3ee;
  --papel-2:#ecE9e1;
  --tinta:#15171a;
  --tinta-2:#4f545b;
  --linea:#dcd8ce;
  --verde:#0f5d4a;
  --verde-osc:#0a4637;
  --verde-suave:#dcebe4;
  --blanco:#fff;
  --radio:14px;
  --ancho:1120px;
  --fuente:'General Sans',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--papel);color:var(--tinta);font-family:var(--fuente);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:var(--verde)}
a:hover{color:var(--verde-osc)}
:focus-visible{outline:3px solid var(--verde);outline-offset:3px;border-radius:4px}
.envoltorio{max-width:var(--ancho);margin:0 auto;padding:0 24px}
.solo-lector{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.saltar{position:absolute;left:-9999px;top:8px;background:var(--tinta);color:#fff;padding:10px 14px;border-radius:8px;z-index:10}
.saltar:focus{left:8px}

/* Cabecera */
.cabecera{padding:22px 0}
.cabecera .envoltorio{display:flex;align-items:center;justify-content:space-between;gap:16px}
.marca{display:inline-flex;align-items:center;gap:10px;color:var(--tinta);text-decoration:none;font-weight:600;font-size:24px;letter-spacing:-.02em}
.marca svg{width:30px;height:30px}
.cabecera nav a{color:var(--tinta);text-decoration:none;font-weight:500;font-size:15px;padding:10px 16px;border:1px solid var(--tinta);border-radius:999px}
.cabecera nav a:hover{background:var(--tinta);color:var(--papel)}

/* Portada */
.portada{padding:48px 0 88px}
.portada .envoltorio{display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:center}
.etiqueta{display:inline-block;font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--verde);background:var(--verde-suave);padding:6px 12px;border-radius:999px;margin:0 0 22px}
h1{font-size:clamp(38px,4.9vw,64px);line-height:1.02;letter-spacing:-.035em;font-weight:600;margin:0 0 24px}
h1 span{color:var(--verde)}
.entradilla{font-size:20px;line-height:1.5;color:var(--tinta-2);max-width:34ch;margin:0 0 32px}
.acciones{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.boton{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:500;font-size:17px;padding:15px 24px;border-radius:999px;border:1px solid transparent;text-decoration:none;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.boton-principal{background:var(--verde);color:#fff}
.boton-principal:hover{background:var(--verde-osc);color:#fff}
.boton-secundario{background:transparent;color:var(--tinta);border-color:var(--linea)}
.boton-secundario:hover{border-color:var(--tinta);color:var(--tinta)}
.nota-accion{font-size:14px;color:var(--tinta-2);margin:16px 0 0}

/* Tarjeta de ejemplo */
.tarjeta{margin:0;background:var(--blanco);border:1px solid var(--linea);border-radius:22px;padding:28px;box-shadow:0 30px 60px -30px rgba(21,23,26,.25)}
.tarjeta-cab{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-bottom:1px solid var(--linea);padding-bottom:18px;margin-bottom:18px}
.tarjeta-cab p{margin:0}
.tarjeta .quien{font-size:14px;color:var(--tinta-2)}
.tarjeta .que{font-weight:500}
.tarjeta .importe{font-size:30px;font-weight:600;letter-spacing:-.02em;white-space:nowrap}
.cuotas{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:10px}
.cuotas li{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:var(--papel)}
.cuotas .n{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:600;background:var(--papel-2);color:var(--tinta-2)}
.cuotas li:first-child .n{background:var(--verde);color:#fff}
.cuotas .cuando{font-size:15px;color:var(--tinta-2)}
.cuotas .cuanto{font-weight:500;font-variant-numeric:tabular-nums}
.cobras{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;background:var(--verde-suave);color:var(--verde-osc);border-radius:12px;padding:14px 16px;font-weight:500}
.cobras strong{white-space:nowrap;font-weight:600;font-variant-numeric:tabular-nums}
.tarjeta-pie{font-size:13px;color:var(--tinta-2);margin:14px 0 0}

/* Secciones */
.seccion{padding:88px 0;border-top:1px solid var(--linea)}
.rotulo{font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--verde);margin:0 0 14px}
h2{font-size:clamp(30px,3.6vw,44px);line-height:1.08;letter-spacing:-.03em;font-weight:600;margin:0 0 18px;max-width:22ch}
.cuerpo{font-size:19px;color:var(--tinta-2);max-width:56ch;margin:0}
.rejilla{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px;padding:0;list-style:none}
.bloque{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--radio);padding:26px}
.bloque .paso{font-size:14px;font-weight:600;color:var(--verde);margin:0 0 18px}
.bloque h3{font-size:21px;line-height:1.25;letter-spacing:-.01em;font-weight:600;margin:0 0 10px}
.bloque p{margin:0;color:var(--tinta-2);font-size:16px}

/* Estado */
.estado{background:var(--tinta);color:var(--papel);border-top:0}
.estado .rotulo{color:#9fd3bf}
.estado .cuerpo{color:#c9ccd1}
.estado-lista{list-style:none;margin:40px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.estado-lista li{border-top:1px solid #3a3e44;padding-top:18px}
.estado-lista h3{font-size:19px;font-weight:600;margin:0 0 8px}
.estado-lista p{margin:0;color:#c9ccd1;font-size:16px}

/* Formulario */
.formulario-zona .envoltorio{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.formulario-zona .lado{position:sticky;top:24px}
form{background:var(--blanco);border:1px solid var(--linea);border-radius:22px;padding:32px}
fieldset{border:0;margin:0 0 26px;padding:0}
legend,.etiq{display:block;font-weight:500;font-size:17px;margin:0 0 12px;padding:0}
.ayuda{display:block;font-size:14px;color:var(--tinta-2);font-weight:400;margin-top:2px}
.opciones{display:flex;flex-wrap:wrap;gap:8px}
.opcion{position:relative}
.opcion input{position:absolute;opacity:0;width:1px;height:1px}
.opcion span{display:inline-block;padding:10px 16px;border:1px solid var(--linea);border-radius:999px;font-size:15px;cursor:pointer;background:var(--papel);transition:background .12s,border-color .12s}
.opcion input:checked+span{background:var(--verde);border-color:var(--verde);color:#fff}
.opcion input:focus-visible+span{outline:3px solid var(--verde);outline-offset:2px}
.opcion span:hover{border-color:var(--tinta-2)}
.campos{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:22px}
.campo label{display:block;font-weight:500;font-size:15px;margin-bottom:6px}
.campo input{width:100%;font:inherit;font-size:16px;padding:13px 14px;border:1px solid var(--linea);border-radius:10px;background:var(--papel);color:var(--tinta)}
.campo input:focus{border-color:var(--verde);background:#fff}
.campo.ancho{grid-column:1/-1}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--tinta-2);margin:0 0 22px}
.consent input{margin-top:3px;width:18px;height:18px;accent-color:var(--verde);flex:none}
.trampa{position:absolute;left:-9999px}
.form-pie{font-size:14px;color:var(--tinta-2);margin:14px 0 0}
.mensaje{margin:16px 0 0;padding:12px 14px;border-radius:10px;font-size:15px}
.mensaje.error{background:#fbe9e7;color:#8a2a1c}
.mensaje[hidden]{display:none}

/* Preguntas */
.preguntas{margin-top:40px;border-top:1px solid var(--linea)}
.preguntas details{border-bottom:1px solid var(--linea)}
.preguntas summary{cursor:pointer;list-style:none;padding:22px 40px 22px 0;font-size:19px;font-weight:500;position:relative}
.preguntas summary::-webkit-details-marker{display:none}
.preguntas summary::after{content:"+";position:absolute;right:4px;top:18px;font-size:26px;font-weight:400;color:var(--verde)}
.preguntas details[open] summary::after{content:"−"}
.preguntas details p{margin:0 0 22px;color:var(--tinta-2);max-width:62ch}

/* Pie */
.pie{border-top:1px solid var(--linea);padding:40px 0 48px;font-size:14px;color:var(--tinta-2)}
.pie .envoltorio{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px}
.pie nav{display:flex;flex-wrap:wrap;gap:18px}
.pie a{color:var(--tinta-2)}
.pie p{margin:0}

/* Páginas legales */
.legal{padding:40px 0 80px}
.legal .envoltorio{max-width:760px}
.legal h1{font-size:clamp(34px,4.5vw,48px)}
.legal h2{font-size:22px;letter-spacing:-.01em;margin:40px 0 10px;max-width:none}
.legal p,.legal li{color:var(--tinta-2)}
.legal dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;color:var(--tinta-2)}
.legal dt{font-weight:500;color:var(--tinta)}
.legal dd{margin:0}

@media (max-width:900px){
  .portada .envoltorio,.formulario-zona .envoltorio{grid-template-columns:1fr;gap:40px}
  .formulario-zona .lado{position:static}
  .rejilla,.estado-lista{grid-template-columns:1fr}
  .seccion{padding:64px 0}
}
@media (max-width:560px){
  body{font-size:16px}
  .envoltorio{padding:0 18px}
  .portada{padding:24px 0 64px}
  .entradilla{font-size:18px}
  form{padding:22px}
  .campos{grid-template-columns:1fr}
  .tarjeta{padding:20px}
  .tarjeta .importe{font-size:24px}
  .cabecera nav a{padding:8px 12px;font-size:14px}
  .legal dl{grid-template-columns:1fr}
}
