/* V3 estilos principales */
:root{
  --radius:0px;
  --font-heading:'Dosis',system-ui,sans-serif;
  --font-body:'Inter',system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{height:100%}
body.site{
  margin:0;
  display:flex;
  flex-direction:column;
  min-height:100dvh;
  font-family:var(--font-body);
  color:var(--text);
  background: linear-gradient(160deg,var(--bg-start),var(--bg-end));
  background-attachment: fixed;
}

/* layout principal */
.container{
  max-width:1100px;
  margin:0 auto;
  padding:40px 20px;
  flex:1 0 auto; /* empuja footer abajo */
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:24px;
}
.title{
  text-align:center;
  font-family:var(--font-heading);
  font-weight:300;
  letter-spacing:2px;
  color:#fff;
  font-size:clamp(32px,6vw,72px);
  margin:8px auto 0;
  text-transform:lowercase;
}

/* caja contador */
.countdown-box{
  width:min(900px,95vw);
  margin:0 auto;
  background:var(--box-bg);
  border:1px solid rgba(255,255,255,.06);
  padding:24px;
  box-shadow:0 25px 50px rgba(0,0,0,.3);
}
.countdown{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.count-item{ background:rgba(255,255,255,.05); padding:16px; text-align:center; text-transform:uppercase; border:1px solid rgba(255,255,255,.08); }
.count-item .num{ display:block; font-size:clamp(38px,8vw,82px); font-weight:800; line-height:1; }
.count-item .lbl{ font-size:12px; color:var(--muted); letter-spacing:1.5px; }

.actions{ width:min(900px,95vw); display:flex; justify-content:center; }
.btn{ background:var(--btn-bg); color:var(--btn-tx); border:none; padding:14px 22px; font-weight:700; cursor:pointer; border-radius:0; transition:opacity .2s ease, transform .06s ease; }
.btn:hover{ opacity:.95; transform:translateY(-1px) }

/* panel */
.panel{ width:min(900px,95vw); background:var(--box-bg); border:1px solid rgba(255,255,255,.06);
  overflow:clip; max-height:0; opacity:0; transform:translateY(-8px); transition:max-height .45s ease, opacity .35s ease, transform .35s ease; }
.panel.show{ max-height:1400px; opacity:1; transform:translateY(0); }
.panel-inner{ padding:18px; }
.lead{ color:var(--muted); text-align:center; margin:0 0 14px; }
.form-grid{ display:grid; grid-template-columns:1.2fr .8fr; gap:16px; }
.field{ display:flex; flex-direction:column; gap:8px; }
.field label{ font-size:13px; color:var(--muted); }
.field input{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); color:#fff; padding:12px; outline:none; }
.checks{ display:flex; flex-direction:column; gap:12px; color:#d7e2ee; }
.check{ display:flex; align-items:center; gap:10px; font-size:14px; }
.form-actions{ display:flex; justify-content:center; padding-top:8px; }
.msg{ margin-top:10px; text-align:center; font-size:14px; padding:10px 12px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); display:none; }
.msg.show{ display:block } .msg.ok{ border-color: rgba(46,204,113,.5) } .msg.err{ border-color: rgba(231,76,60,.5) }

/* footer pegado abajo */
.footer{
  width:min(900px,95vw);
  margin:24px auto;
  text-align:center;
  color:var(--muted);
  flex-shrink:0;
}
.footer .footer-links{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.footer a{ color:#d6e4f5; text-decoration:none; border-bottom:1px dashed rgba(255,255,255,.2); }
.footer a:hover{ opacity:.9 }

/* overlay legales */
.overlay.hidden{ display:none; }
.overlay{ position:fixed; inset:0; z-index:50; }
.overlay-bg{ position:absolute; inset:0; backdrop-filter:blur(2px); background:rgba(0,0,0,.45); }
.overlay-card{ position:absolute; right:20px; left:20px; top:8vh; background:var(--box-bg); border:1px solid rgba(255,255,255,.08); max-width:900px; margin:0 auto; padding:18px 18px 22px; box-shadow:0 30px 60px rgba(0,0,0,.5); transform-origin:top; animation:drop .35s ease both; }
@keyframes drop{ from{ opacity:0; transform:translateY(-18px) } to{ opacity:1; transform:translateY(0) } }
.overlay-close{ position:absolute; top:10px; right:12px; background:transparent; color:#fff; border:none; font-size:26px; cursor:pointer }
.overlay-content{ max-height:70vh; overflow:auto; padding-right:8px; }

/* cookies */
.cookie{ position:fixed; left:16px; bottom:16px; z-index:40; background:rgba(0,0,0,.6); border:1px solid rgba(255,255,255,.08); color:#e7eff7; padding:12px; max-width:360px; transform:scale(.98); opacity:0; transition:opacity .3s ease, transform .3s ease; }
.cookie.show{ opacity:1; transform:scale(1) }
.cookie.hide{ opacity:0; filter:blur(2px) }
.cookie .btn{ padding:8px 12px; font-size:13px }

/* responsive */
@media (max-width:720px){ .form-grid{ grid-template-columns:1fr } }
