:root{
  --bg:#ffffff; --fg:#0b1224; --muted:#475569; --line:#e5e7eb; --chip:#f1f5f9;
  --accent:#1095ff; --blur:6px;
  --ts: rgba(0,0,0,.25);  /* text shadow sutil para fondos claros */
}
[data-theme="dark"]{
  --bg:#0b1224; --fg:#e6e9f2; --muted:#9aa3b2; --line:#1f2537; --chip:#11182b;
  --accent:#66b8ff; --blur:6px;
  --ts: rgba(0,0,0,.35); /* un pelín más fuerte en dark */
}
@media (prefers-color-scheme: dark){ :root{ color-scheme: dark; } }
*{ box-sizing:border-box; }
html,body{ height:100%; }
body{ margin:0; font-family: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Arial; background:var(--bg); color:var(--fg); }
a{ color:inherit; text-decoration:none; }

.wrap{ min-height:100dvh; display:grid; grid-template-rows:auto 1fr auto; }

/* ===== Fondo + overlay glass global (sutil, sin recuadro) ===== */
.bg{ position:fixed; inset:0; z-index:0; overflow:hidden; }
.bg-layer{ position:absolute; inset:0; background-size:cover; background-position:center; will-change:transform,opacity; }
.bg-layer.zoom{ animation: zoomPan 18s ease-in-out infinite; }
@keyframes zoomPan{ 0%{ transform:scale(1) translate3d(0,0,0);} 50%{ transform:scale(1.06) translate3d(1%,-1%,0);} 100%{ transform:scale(1) translate3d(0,0,0);} }
/* blur suave sobre TODA la pantalla + leve tinte para lectura */
.glass-overlay{ position:absolute; inset:0; backdrop-filter: blur(4px) saturate(115%);
  background: color-mix(in oklab, var(--bg) 35%, transparent); }

/* ===== Header fijo con + transparencia (~15% opacidad de fondo) ===== */
header{ position:fixed; left:0; right:0; top:0; z-index:20;
  border-bottom:1px solid var(--line);
  background: color-mix(in oklab, var(--bg) 70%, transparent);
  backdrop-filter: blur(var(--blur)); }
.bar{ width:min(980px,92vw); margin-inline:auto; padding:12px 16px;
  display:flex; align-items:center; justify-content:space-between; gap:12px; }
.brand-left{ display:flex; align-items:center; gap:12px; }
.brand-left img{ width:148px; height:auto; object-fit:contain; }
.actions-right{ display:flex; align-items:center; gap:10px; }
.lang{ display:inline-flex; gap:6px; background:var(--chip); border-radius:999px; padding:4px; }
.lang button{ border:0; background:transparent; padding:6px 10px; border-radius:999px; font-size:13px; cursor:pointer; color:var(--muted); }
.lang button[aria-pressed="true"]{ background:var(--bg); color:var(--fg); box-shadow:0 0 0 1px var(--line) inset; }

.btn{ display:inline-flex; align-items:center; gap:.6ch; cursor:pointer; border:1px solid var(--line); background:transparent; color:var(--fg); padding:9px 12px; border-radius:12px; font-size:14px; }
.btn:hover{ background:var(--chip); }
.btn.ghost{ border:1px solid var(--line); background:transparent; }
.btn.ghost:hover{ background: color-mix(in oklab, var(--bg) 85%, transparent); }
.ico-theme{ width:18px; height:18px; display:inline-block; border-radius:50%;
  background:conic-gradient(from 90deg, currentColor 0 50%, transparent 0 100%); box-shadow:0 0 0 1px currentColor inset; }

/* ===== Main ===== */
main{ position:relative; overflow:auto; scroll-behavior:smooth; padding-top:66px; }
.container{ width:min(980px,92vw); margin-inline:auto; position:relative; z-index:2; } /* encima del overlay */

.hero{ min-height: calc(100dvh - 160px); display:grid; place-items:center; text-align:center; }
.hero-inner{ display:grid; gap:18px; }
.title{
  font-size:clamp(28px,6vw,56px); line-height:1.08; margin:0;
  text-shadow: 0 1px 2px var(--ts);
}
.subtitle{
  font-size:clamp(14px,3.4vw,20px); color:var(--muted); margin:0; max-width:80ch; justify-self:center;
  text-shadow: 0 1px 1.5px var(--ts);
}
.subtitle.error{ color:#ef4444; }
.subtitle.alert{ color:#10b981; }
.cta-row{ display:grid; place-items:center; padding-top:8px; }

/* Contact */
.contact-sec{ padding:32px 0 80px; }
.back{ width:40px; height:40px; border-radius:999px; border:1px solid var(--line); display:inline-grid; place-items:center; margin-bottom:12px; cursor:pointer; background:transparent; }
.form-wrap{ width:min(720px,100%); margin:0 auto; border:1px solid var(--line); border-radius:16px;
  background: color-mix(in oklab, var(--bg) 85%, transparent); overflow:hidden; }
.form-hd{ padding:14px 16px; font-weight:600; border-bottom:1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between; }
.form-body{ padding:16px; display:grid; gap:12px; text-align:left; }
.form-error{
  display:none;
  margin:12px 16px 0 16px;
  padding:10px 12px;
  border:1px solid #ef4444;
  border-radius:10px;
  background: color-mix(in oklab, #ef4444 8%, transparent);
  color:#b91c1c;
  font-size:14px;
}
/* Success state del formulario */
.form-wrap.success{
  text-align:center;
  border:1px solid var(--line);
  background: color-mix(in oklab, var(--bg) 92%, transparent);
}
.success-box{ padding:28px 22px; display:grid; gap:14px; place-items:center; }
.success-ico{
  width:56px; height:56px; border-radius:50%;
  border:2px solid color-mix(in oklab, var(--fg) 30%, transparent);
  display:grid; place-items:center; font-size:28px;
  color: color-mix(in oklab, var(--fg) 85%, transparent);
}
.success-title{ font-weight:700; font-size:20px; margin:0; }
.success-sub{ color:var(--muted); margin:0; }

.row{ display:grid; gap:12px; grid-template-columns:1fr 1fr; }
.row > *:only-child{ grid-column:1/-1; }
label{ font-size:12px; color:var(--muted); display:block; margin-bottom:6px; }
input:not([type="checkbox"]):not([type="radio"]), textarea{
  width:100%; 
  padding:12px; 
  border:1px solid var(--line); 
  background:transparent; 
  color:var(--fg); 
  border-radius:12px; 
  font:inherit; 
}
textarea{ min-height:130px; resize:vertical; }
.legal{
  font-size:12px; 
  color:var(--muted); 
  display:flex;
  align-items:flex-start;          /* alinear con la primera línea del texto */
  gap:10px;
  cursor:pointer;
  user-select:none;
}
.legal input[type="checkbox"]{
  width:auto; height:18px;         /* evita heredar 100% */
  margin:2px 0 0 0;                /* lo baja un poquito para centrar visualmente */
  accent-color: color-mix(in oklab, var(--fg) 75%, transparent); /* color sobrio */
  flex:0 0 auto;
}
.legal span{
  line-height:1.35;
}
.form-actions{ display:flex; gap:10px; justify-content:flex-end; }

/* Footer — no fijo, tipografía pequeña;
   en mobile ocultamos “All rights reserved” y abreviamos países */
footer{
   position: relative;               /* asegura que quede por delante del overlay */
   z-index: 2;
   background: color-mix(in oklab, var(--bg) 25%, transparent);
   backdrop-filter: blur(var(--blur));
}
.foot{ 
  width:min(980px,92vw); 
  margin-inline:auto; 
  padding:12px 16px;
  padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px));
  display:flex; 
  align-items:center; 
  justify-content:space-between; 
  gap:12px; 
  font-size:13px; 
  color:var(--muted); 
}
.rights{ display:inline; }
.loc-compact{ display:none; }

/* Reveal */
.reveal{ opacity:0; transform: translate3d(0,8px,0); transition: opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }

@media (max-width:720px){
  .row{ grid-template-columns:1fr; }
  .brand-left img{ width:124px; }
  .foot{ font-size:12px; padding-bottom: calc(18px + env(safe-area-inset-bottom, 0px)); }
  .rights{ display:none; }
  .loc-full{ display:none; }
  .loc-compact{ display:inline; }
}