/* Formularios públicos del Congreso de Mujeres (registro y días adicionales).
   Los colores (--p, --s, --a) los define cada página según su congreso. */
*{box-sizing:border-box;}
[hidden]{display:none !important;}
html,body{margin:0;}
body{background:var(--bg);color:var(--ink);font:15px/1.5 'Work Sans',sans-serif;-webkit-font-smoothing:antialiased;}
.hero{background:var(--p);color:#fff;padding:32px 20px 64px;text-align:center;position:relative;overflow:hidden;}
.hero::after{content:"";position:absolute;inset:auto -10% -60px;height:120px;background:var(--bg);border-radius:50% 50% 0 0;}
.hero small{display:inline-block;background:rgba(255,255,255,.16);padding:4px 12px;border-radius:99px;font-size:12.5px;letter-spacing:.04em;}
.hero h1{font-family:'Fraunces',serif;font-size:clamp(26px,6vw,38px);margin:12px 0 6px;line-height:1.15;}
.hero p{margin:0;opacity:.85;font-size:14px;}
.wrap{max-width:640px;margin:-40px auto 60px;padding:0 16px;position:relative;z-index:2;}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:0 4px 18px rgba(0,0,0,.05);padding:22px;margin-bottom:16px;}
h2{font-family:'Fraunces',serif;font-size:21px;margin:0 0 4px;color:var(--p);}
.sub{color:var(--muted);font-size:13.5px;margin:0 0 18px;}

.pasos{display:flex;gap:6px;margin-bottom:16px;}
.pasos div{flex:1;text-align:center;font-size:12px;font-weight:600;color:var(--muted);}
.pasos div::before{content:"";display:block;height:5px;border-radius:99px;background:var(--border);margin-bottom:6px;}
.pasos div.hecho::before,.pasos div.actual::before{background:var(--p);}
.pasos div.actual{color:var(--p);}

.paso{display:none;} .paso.activo{display:block;animation:entrar .25s ease;}
@keyframes entrar{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}

.field{margin-bottom:14px;}
.field label{display:block;font-size:13px;font-weight:600;margin-bottom:5px;}
.req{color:var(--warn);}
input[type=text],input[type=email],input[type=tel],input[type=number],select{
  width:100%;padding:12px 13px;font:16px 'Work Sans',sans-serif;border:1.5px solid var(--border);border-radius:9px;background:#fff;color:var(--ink);
}
input:focus,select:focus{outline:none;border-color:var(--p);box-shadow:0 0 0 3px color-mix(in srgb, var(--p) 18%, transparent);}
input.invalido{border-color:var(--warn);background:var(--warn-soft);}
.error-campo{color:var(--warn);font-size:12px;margin-top:4px;}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;}

.opciones{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.opcion{border:1.5px solid var(--border);border-radius:10px;padding:14px;text-align:center;font-weight:600;cursor:pointer;background:#fff;}
.opcion input{display:none;}
.opcion:has(input:checked){border-color:var(--p);background:color-mix(in srgb, var(--p) 8%, #fff);color:var(--p);}

.cantidad{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1.5px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:10px;}
.cantidad strong{display:block;font-size:15px;}
.cantidad span{font-size:12.5px;color:var(--muted);}
.stepper{display:flex;align-items:center;gap:6px;}
.stepper button{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--border);background:#fff;font-size:20px;line-height:1;cursor:pointer;color:var(--p);}
.stepper input{width:58px;text-align:center;padding:8px 4px;font-weight:700;}

.total{border:1px solid var(--border);border-radius:10px;overflow:hidden;margin:14px 0 6px;}
.total table{width:100%;border-collapse:collapse;font-size:14px;}
.total td{padding:10px 14px;border-bottom:1px solid var(--border);}
.total td:last-child{text-align:right;font-variant-numeric:tabular-nums;}
.total tr.gran td{border-bottom:none;background:color-mix(in srgb, var(--a) 22%, #fff);font-weight:700;font-size:16px;}
.nota{font-size:12.5px;color:var(--muted);margin:0 0 16px;}
.banco{border:1.5px solid color-mix(in srgb, var(--a) 55%, #fff);background:color-mix(in srgb, var(--a) 9%, #fff);border-radius:10px;padding:12px 14px;margin:0 0 16px;font-size:14px;}
.banco-titulo{font-weight:700;margin-bottom:8px;}
.banco-fila{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center;padding:6px 0;border-top:1px solid color-mix(in srgb, var(--a) 25%, #fff);}
.banco-fila span{grid-column:1/-1;font-size:12px;color:var(--muted);}
.banco-fila strong{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;}
.banco .copiar{border:1.5px solid var(--p);background:#fff;color:var(--p);border-radius:8px;padding:5px 10px;font:600 12.5px 'Work Sans',sans-serif;cursor:pointer;}
.banco p{margin:8px 0 0;font-size:12.5px;color:var(--muted);}

.contador{position:sticky;top:0;z-index:10;background:var(--bg);padding:10px 0;margin:-6px 0 8px;}
.chips{display:flex;gap:8px;}
.chip{flex:1;border-radius:10px;padding:9px 12px;background:#fff;border:1.5px solid var(--border);font-size:13px;}
.chip b{display:block;font-size:18px;}
.chip.ok{border-color:var(--ok);background:var(--ok-soft);color:var(--ok);}
.chip.falta{border-color:var(--a);background:var(--info-soft);}
.chip.exceso{border-color:var(--warn);background:var(--warn-soft);color:var(--warn);}
.avisos{margin-top:8px;}
.aviso{font-size:13px;border-radius:9px;padding:9px 12px;margin-top:6px;background:var(--info-soft);border:1px solid color-mix(in srgb, var(--a) 45%, #fff);}
.aviso.error{background:var(--warn-soft);border-color:#EACBC6;color:var(--warn);}

.habitacion{border:1.5px solid var(--border);border-radius:var(--r);padding:16px;margin-bottom:14px;background:#fff;}
.habitacion header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.habitacion h3{margin:0;font-size:16px;}
.quitar{background:none;border:none;color:var(--warn);font-size:13px;cursor:pointer;text-decoration:underline;}
.persona{display:grid;grid-template-columns:28px minmax(0,1fr) 84px;gap:8px;align-items:start;margin-bottom:8px;}
.persona .n{width:28px;height:28px;border-radius:50%;background:var(--p);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;margin-top:9px;}
.persona.menor .n{background:var(--a);color:#1b1b1b;}
.persona .x{grid-column:1;}
.etiqueta{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:12px 0 8px;}
.btn-menor{width:100%;border:1.5px dashed var(--a);background:color-mix(in srgb, var(--a) 10%, #fff);color:var(--ink);border-radius:9px;padding:10px;font:600 14px 'Work Sans',sans-serif;cursor:pointer;margin-top:4px;}
.btn-menor:disabled{opacity:.45;cursor:not-allowed;}
.quitar-menor{background:none;border:none;color:var(--warn);font-size:18px;cursor:pointer;margin-top:8px;}
.persona.menor{grid-template-columns:28px minmax(0,1fr) 84px 24px;}

.btn{display:block;width:100%;border:none;border-radius:10px;padding:15px;font:600 16px 'Work Sans',sans-serif;cursor:pointer;text-align:center;}
.btn-p{background:var(--p);color:#fff;}
.btn-sec{background:#fff;color:var(--p);border:1.5px solid var(--p);}
.btn-agregar{background:#fff;color:var(--p);border:1.5px dashed var(--p);margin-bottom:16px;}
.nav{display:grid;grid-template-columns:1fr 2fr;gap:10px;margin-top:16px;}
.btn:disabled{opacity:.6;cursor:wait;}

.resumen p{margin:0 0 8px;font-size:14px;}
.subida{border:2px dashed var(--border);border-radius:var(--r);padding:20px;text-align:center;}
.subida .acciones{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;}
.subida label{border:1.5px solid var(--p);color:var(--p);border-radius:9px;padding:11px;font-weight:600;cursor:pointer;font-size:14px;}
.subida input{display:none;}
.subida .archivo{margin-top:10px;font-size:13px;color:var(--muted);}
.subida.lista{border-color:var(--ok);background:var(--ok-soft);}
.aviso-no{background:var(--info-soft);border-radius:10px;padding:14px;font-size:14px;}
.aviso-fase{background:color-mix(in srgb, var(--a) 18%, #fff);border-radius:10px;padding:10px 14px;font-size:13.5px;margin-bottom:10px;}
.exito{text-align:center;padding:36px 22px;}
.exito .ico{width:64px;height:64px;border-radius:50%;background:var(--ok);color:#fff;font-size:32px;display:flex;align-items:center;justify-content:center;margin:0 auto 12px;}
@media (max-width:480px){.row2{grid-template-columns:1fr;} .card{padding:18px;}}
