:root{
  --tinta:#1B1340; --tinta-2:#2E2463; --naranja:#FF5A1F; --naranja-osc:#D9440C;
  --amarillo:#FFC531; --blanco:#FFFFFF; --vitrina:#F1F0F4; --gris:#6B6680; --linea:#E3E1EA; --error:#B42318;
  --lado:clamp(16px,4vw,48px);
}
*{ box-sizing:border-box }
body{ margin:0; background:var(--blanco); color:var(--tinta); font-family:'Archivo',system-ui,sans-serif; font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased }
a{ color:inherit }
:focus-visible{ outline:3px solid var(--naranja); outline-offset:3px }
header{ border-bottom:1px solid var(--linea) }
.menu{ max-width:1440px; margin:0 auto; padding:0 var(--lado); height:64px; display:flex; align-items:center; justify-content:space-between }
.menu img{ height:30px; width:auto; display:block }
.menu a.volver{ font-weight:600; text-decoration:none } .menu a.volver:hover{ text-decoration:underline }
main{ max-width:820px; margin:0 auto; padding:48px var(--lado) 80px }
.display{ font-stretch:62%; font-weight:900; text-transform:uppercase; line-height:.88; margin:0 0 16px; font-size:clamp(44px,8vw,84px) }
h2{ font-size:20px; margin:36px 0 10px; line-height:1.3 }
h3{ font-size:17px; margin:24px 0 8px }
p, li{ max-width:68ch }
.nota{ color:var(--gris); font-size:15px }
.ficha{ background:var(--vitrina); padding:18px 20px; margin:24px 0; display:grid; grid-template-columns:auto 1fr; gap:6px 18px; font-size:15px }
.ficha dt{ font-weight:700 } .ficha dd{ margin:0 }
fieldset{ border:0; border-top:1px solid var(--linea); margin:32px 0 0; padding:20px 0 0 }
legend{ font-weight:800; font-size:18px; padding:0 0 4px }
.campos{ display:grid; grid-template-columns:1fr 1fr; gap:16px }
.campos .ancho{ grid-column:1/-1 }
label{ display:block; font-weight:600; font-size:15px; margin-bottom:6px }
label small{ font-weight:400; color:var(--gris) }
input[type=text], input[type=email], input[type=tel], input[type=number], select, textarea{
  width:100%; font:inherit; color:inherit; border:1.5px solid var(--linea); border-radius:10px; padding:11px 13px; background:#fff }
input:focus, select:focus, textarea:focus{ outline:none; border-color:var(--tinta) }
textarea{ min-height:120px; resize:vertical }
.opciones{ display:flex; gap:12px; flex-wrap:wrap }
.opcion{ flex:1 1 220px; border:1.5px solid var(--linea); border-radius:12px; padding:12px 14px; display:flex; gap:10px; align-items:flex-start; cursor:pointer; font-weight:400 }
.opcion:has(input:checked){ border-color:var(--tinta); background:var(--vitrina) }
.opcion b{ display:block }
.opcion span{ font-size:14px; color:var(--gris) }
.check{ display:flex; gap:10px; align-items:flex-start; font-weight:400 }
.check input, .opcion input{ margin-top:4px; accent-color:var(--tinta) }
.oculto{ position:absolute; left:-9999px }
.btn{ display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:0 28px; border-radius:999px; border:0; background:var(--naranja); color:#fff; font:inherit; font-weight:700; cursor:pointer; margin-top:28px }
.btn:hover{ background:var(--naranja-osc) }
.btn.sec{ background:var(--tinta) } .btn.sec:hover{ background:var(--tinta-2) }
.aviso{ border-left:4px solid var(--naranja); background:#FFF1EA; padding:14px 16px; margin:24px 0; font-size:15px }
.errores{ border-left:4px solid var(--error); background:#FEF3F2; padding:14px 16px; margin:24px 0; color:var(--error) }
.ok{ border-left:4px solid #12805C; background:#ECFDF3; padding:18px 20px; margin:24px 0 }
.ok .codigo{ font-stretch:62%; font-weight:900; font-size:40px; line-height:1; display:block; margin:6px 0 }
footer{ border-top:1px solid var(--linea); padding:24px var(--lado); text-align:center; font-size:13px; color:var(--gris) }
@media (max-width:640px){ .campos{ grid-template-columns:1fr } .ficha{ grid-template-columns:1fr } }
@media print{ header, footer, .btn{ display:none } }
