/* ─────────────────────────────────────────────────────────────────────────
   legal.css — páginas legales con el MISMO lenguaje visual que la tienda.

   12-ago-2026. Antes, «Términos» o «Privacidad» sacaban al visitante del
   diseño nuevo y lo dejaban en la maquetación vieja: otra paleta, otra
   tipografía y otra navegación. Rompía el objetivo 1 de VISION.md
   (identidad visual coherente) justo en las páginas donde el cliente está
   decidiendo si confiar.

   Las variables son las mismas del index para que no puedan divergir de
   vista: si se cambia la paleta de la tienda, hay que cambiarla aquí.
   ───────────────────────────────────────────────────────────────────────── */
:root{
  --g:#173b2e;--g2:#275a46;--cream:#fbfaf4;--sage:#e5efe8;--gold:#c6a66d;
  --ink:#17221d;--muted:#69766f;--line:#e1e7e2;--white:#fff;
  --shadow:0 18px 55px #173b2e1d;
}
/* Mismos tiempos y curvas que la tienda: el movimiento también es identidad,
   y dos ritmos distintos entre la portada y los términos se notan. */
:root{
  --t-micro:130ms;--t-corta:220ms;--t-media:340ms;
  --e-salida:cubic-bezier(.16,1,.3,1);--e-suave:cubic-bezier(.4,0,.2,1);
}
@keyframes nvEntraSuave{from{opacity:0}to{opacity:1}}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);
  font:15px/1.7 Inter,system-ui,-apple-system,Segoe UI,sans-serif}
a{color:inherit;text-decoration:none}
.wrap{width:min(1180px,calc(100% - 40px));margin:auto}

/* Saltar al contenido — objetivo 24 (accesibilidad desde el principio) */
.skip{position:absolute;left:-9999px;top:0;background:var(--g);color:#fff;
  padding:12px 18px;border-radius:0 0 12px 0;z-index:100;font-weight:700}
.skip:focus{left:0}

header{position:sticky;top:0;z-index:40;background:#fbfaf4f2;
  backdrop-filter:blur(14px);border-bottom:1px solid #173b2e12}
.nav{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:11px;font-weight:900}
.logo{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--g),var(--g2));color:var(--gold);font-size:19px}
.brand span{display:flex;flex-direction:column;line-height:1.1;font-size:15px}
.brand small{font-size:9px;letter-spacing:.16em;color:var(--muted);font-weight:700}
.navActions{display:flex;align-items:center;gap:10px}
.langBtn{border:1px solid var(--line);background:var(--white);border-radius:999px;
  padding:8px 14px;font:inherit;font-weight:800;font-size:12px;cursor:pointer;color:var(--ink)}
.langBtn{transition:border-color var(--t-corta) var(--e-suave),background var(--t-corta) var(--e-suave),
  transform var(--t-micro) var(--e-suave)}
.langBtn:hover{border-color:var(--g);transform:translateY(-1px)}
.langBtn:active{transform:translateY(0)}
.backBtn{border:0;background:var(--g);color:#fff;border-radius:999px;
  padding:10px 18px;font:inherit;font-weight:800;font-size:13px;
  transition:background var(--t-corta) var(--e-suave),transform var(--t-micro) var(--e-suave)}
.backBtn:hover{background:var(--g2);transform:translateY(-1px)}
.backBtn:active{transform:translateY(0)}

/* Cambio de idioma: reescribe TODO el texto de la página de una vez. Sin esto
   el documento entero cambia de golpe. Es un fundido de entrada, no un
   retardo: el texto ya está traducido cuando empieza.
   🔑 Parte de 0.35 y no de 0: si la animación se congelara a mitad, el peor
   caso es un texto atenuado y legible, nunca una página en blanco — y en un
   documento legal eso importa más que en ningún otro sitio. */
@keyframes nvSwapIdioma{from{opacity:.35}to{opacity:1}}
.legal.langSwap,.legalHead.langSwap{animation:nvSwapIdioma var(--t-media) var(--e-salida)}

/* El cuerpo legal es texto largo: los enlaces y el foco deben responder sin
   brusquedad, que es donde se nota la falta de acabado. */
.legal a{transition:color var(--t-micro) var(--e-suave),text-decoration-color var(--t-micro) var(--e-suave)}
.legal a:hover{color:var(--g)}
footer .links a{transition:color var(--t-micro) var(--e-suave)}
a:focus-visible,button:focus-visible,input:focus-visible{
  outline:2px solid var(--g);outline-offset:3px;border-radius:6px}

/* Cabecera del documento */
.legalHead{padding:54px 0 26px;border-bottom:1px solid var(--line)}
.kick{font-size:11px;letter-spacing:.18em;font-weight:800;color:var(--g2);text-transform:uppercase}
.legalHead h1{font-size:clamp(30px,5vw,46px);line-height:1.08;margin:12px 0 10px;letter-spacing:-.02em}
.legalHead .sub{color:var(--muted);max-width:70ch;margin:0}

/* Cuerpo legal. Se estiliza POR ETIQUETA a propósito: el HTML heredado
   trae clases del diseño viejo y así no hay que tocarlas una por una. */
.legal{padding:34px 0 70px;max-width:78ch}
.legal h2{font-size:21px;margin:38px 0 12px;letter-spacing:-.01em;color:var(--g)}
.legal h3{font-size:16px;margin:26px 0 8px;color:var(--g2)}
.legal p{margin:0 0 14px;color:#2c3a33}
.legal ul,.legal ol{margin:0 0 16px;padding-left:20px;color:#2c3a33}
.legal li{margin-bottom:7px}
.legal strong{color:var(--ink)}
.legal a{color:var(--g2);text-decoration:underline;text-underline-offset:3px}
.legal .company-info{background:var(--sage);border:1px solid var(--line);
  border-radius:16px;padding:18px 20px;margin:22px 0}
.legal .company-info p{margin:0 0 6px}
.legal .company-info p:last-child{margin:0}
/* Aviso destacado dentro de un documento legal */
.legal .aviso{background:#fff8e5;border:1px solid #ead59e;border-radius:16px;
  padding:16px 18px;margin:22px 0;color:#5c4a1f}

footer{background:#0e291f;color:#dbe8e0;padding:46px 0 30px;margin-top:20px}
.footGrid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:26px}
footer h4{margin:0 0 12px;font-size:13px;letter-spacing:.05em}
footer .links{display:flex;flex-direction:column;gap:8px;font-size:13px}
footer .links a:hover{color:var(--gold)}
footer .copy{border-top:1px solid #ffffff1f;margin-top:28px;padding-top:18px;
  display:flex;justify-content:space-between;gap:14px;font-size:12px;color:#a9bdb2;flex-wrap:wrap}
footer p{color:#a9bdb2;font-size:13px;margin:8px 0 0}

.waFloat{position:fixed;right:18px;bottom:18px;z-index:60;display:flex;align-items:center;
  gap:9px;background:#25d366;color:#fff;padding:13px 18px;border-radius:999px;
  font-weight:700;font-size:14px;box-shadow:0 10px 30px #25d36659;
  transition:transform .18s ease,box-shadow .18s ease}
.waFloat:hover{transform:translateY(-2px)}

@media(max-width:860px){.footGrid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){
  .footGrid{grid-template-columns:1fr}
  .nav{height:66px}
  .brand span{font-size:14px}
  .waFloat span{display:none}
  .waFloat{padding:14px;right:14px;bottom:14px}
  .legalHead{padding:38px 0 22px}
}
/* Objetivo 24: respetar a quien pide menos movimiento */
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
