/*
 * VG7 Hoverdots: estilos base del sitio (reset, tipografía, botones, header, menú móvil, revelados y footer).
 * Los estilos de cada sección viven en el CSS de su bloque (vg7-hoverdots-bloques). Generado a partir del prototipo aprobado (hoverdots-home/index.html).
 *
 * Todo va dentro de @layer hd: WordPress imprime el CSS de cada bloque ANTES que este archivo, y como el CSS de los
 * bloques no tiene capa, siempre gana a esta base (por ejemplo, el fondo claro de .pricing sobre el de .panel).
 * La capa hd va después de las del tema padre (Tailwind), así que sigue ganándoles.
 */
@layer hd{
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}
img,svg{display:block;max-width:100%}
a{color:inherit}
p{margin:0}
h1,h2,h3{margin:0;font-weight:inherit}
ul{margin:0;padding:0;list-style:none}
figure,blockquote{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--violet);outline-offset:3px;border-radius:8px}
.panel :focus-visible{outline-color:var(--violet-2)}
[tabindex="-1"]:focus{outline:none}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:var(--gutter);top:-90px;z-index:100;padding:12px 18px;border-radius:999px;background:var(--violet);color:#fff;text-decoration:none;font-weight:600;transition:top 200ms var(--ease-out)}
.skip:focus{top:12px}
.wrap{width:100%;max-width:1440px;margin-inline:auto;padding-inline:var(--gutter)}
.panel{position:relative;margin-inline:var(--inset);border-radius:var(--r-panel);background:var(--ink);color:var(--on-ink);overflow:clip}
.ico{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.display{font-family:var(--f-display);font-weight:600;letter-spacing:-.045em;line-height:.98;text-wrap:balance}
.h1{font-size:clamp(2.75rem,1.05rem + 6.1vw,6.75rem)}
.h2{font-size:clamp(2.25rem,1.35rem + 3.2vw,4.25rem);line-height:1.02;letter-spacing:-.04em}
.lead{font-size:clamp(1.0625rem,1rem + .35vw,1.25rem);line-height:1.55;color:var(--muted);max-width:42ch;text-wrap:pretty}
.mono{font-family:var(--f-mono);font-size:.8125rem;line-height:1.4;letter-spacing:.04em;text-transform:uppercase}
.tag{display:inline-flex;align-items:center;gap:10px;height:34px;padding:0 14px 0 10px;border-radius:999px;background:var(--lilac);color:var(--ink);font:500 .8125rem/1 var(--f-mono);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.tag svg{width:16px;height:16px;flex:none;color:var(--violet)}
.tag--white{background:#fff}
.tag--ghost{background:rgba(255,255,255,.08);color:var(--on-ink)}
.tag--ghost svg{color:var(--violet-2)}
.btn{--bg:var(--violet);--fg:#fff;position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;border:0;border-radius:999px;background:var(--bg);color:var(--fg);font:500 1rem/1 var(--f-body);text-decoration:none;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform 160ms var(--ease-out),color 250ms ease}
.btn:active{transform:scale(.97)}
.btn-label{display:block;height:1.25em;line-height:1.25;overflow:hidden}
.btn-label>span{display:block;transition:transform 400ms var(--out-quad)}
.btn .ico{width:16px;height:16px;transition:transform 400ms var(--out-quad)}
.btn--ink{--bg:var(--ink)}
.btn--light{--bg:#fff;--fg:var(--ink)}
.btn--block{width:100%}
.btn--dot{--bg:#fff;--fg:var(--ink);padding-left:38px}
.btn--dot::before{content:"";position:absolute;left:20px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:var(--violet);z-index:-1;transition:transform 300ms var(--ease-out)}
@media (hover:hover) and (pointer:fine){
.btn:hover .btn-label>span{transform:translateY(-100%);transition-duration:300ms}
.btn:hover .ico{transform:rotate(45deg);transition-duration:300ms}
.btn--dot:hover{color:#fff}
.btn--dot:hover::before{transform:scale(44);transition-duration:500ms}
}
.nav{position:fixed;inset:0 0 auto;z-index:50;padding-block:clamp(14px,1.8vw,24px)}
/* Al bajar, la barra se queda arriba con fondo (opacidad, sin mover nada) */
.nav::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(29,23,41,.88);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(255,255,255,.08);opacity:0;pointer-events:none;transition:opacity 250ms var(--ease-out)}
.nav.is-stuck::before{opacity:1}
.nav-bar{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}
.brand{display:inline-flex;align-items:center;gap:10px;justify-self:start;color:#fff;text-decoration:none;font:700 1.3125rem/1 var(--f-display);letter-spacing:-.04em}
.brand img{width:38px;height:38px;flex:none;border-radius:50%}
.nav-links{display:flex;gap:4px}
.nav-links a{position:relative;display:block;padding:10px 16px;border-radius:999px;color:rgba(255,255,255,.82);text-decoration:none;font-weight:500;transition:color 200ms ease,background-color 200ms ease}
.nav-links a[aria-current="page"]{color:var(--violet-2)}
.nav-badge{position:absolute;top:-6px;right:-2px;min-width:26px;padding:4px 6px;border-radius:999px;background:var(--violet);color:#fff;font:500 .6875rem/1 var(--f-mono);text-align:center}
.nav-right{display:flex;align-items:center;justify-self:end;gap:10px}
.lang{display:flex;align-items:center;gap:2px;padding:4px;border-radius:999px;background:rgba(255,255,255,.08);font:500 .75rem/1 var(--f-mono)}
.lang a,.lang span{display:grid;place-items:center;min-width:36px;height:32px;border-radius:999px;text-decoration:none;color:rgba(255,255,255,.72);transition:color 200ms ease}
.lang [aria-current]{background:#fff;color:var(--ink)}
.nav-cta{padding:0 20px 0 5px;gap:10px}
.nav-cta .ava{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--violet);color:#fff;flex:none}
.nav-cta .ava .ico{width:20px;height:20px}
.menu-btn{display:none;place-items:center;width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;cursor:pointer;transition:transform 160ms var(--ease-out),background-color 200ms ease}
.menu-btn:active{transform:scale(.95)}
.menu-btn .ico{width:22px;height:22px}
.menu{position:absolute;right:var(--gutter);top:calc(100% + 10px);width:min(340px,calc(100% - var(--gutter) * 2));padding:10px;border-radius:22px;background:#fff;color:var(--ink);box-shadow:0 24px 60px -24px rgba(29,23,41,.55);transform-origin:top right;opacity:0;visibility:hidden;transform:translateY(-6px) scale(.96);transition:opacity 180ms var(--ease-out),transform 180ms var(--ease-out),visibility 0s linear 180ms}
.menu.is-open{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.menu ul{display:grid}
.menu a.menu-link{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-radius:14px;text-decoration:none;font:600 1.3125rem/1.2 var(--f-display);letter-spacing:-.03em}
.menu a.menu-link[aria-current="page"]{color:var(--violet)}
.menu-count{font:500 .75rem/1 var(--f-mono);padding:5px 8px;border-radius:999px;background:var(--violet);color:#fff;letter-spacing:.04em}
.menu-foot{display:flex;align-items:center;justify-content:space-between;margin-top:6px;padding:14px 16px 6px;border-top:1px solid var(--line)}
.menu-foot .mono{color:var(--muted)}
.lang--light{background:var(--lilac)}
.lang--light a,.lang--light span{color:var(--muted)}
.lang--light [aria-current]{background:var(--ink);color:#fff}
@media (hover:hover) and (pointer:fine){
.nav-links a:hover{color:#fff;background:rgba(255,255,255,.07)}
.lang a:hover{color:#fff}
.lang--light a:hover{color:var(--ink)}
.menu-btn:hover{background:rgba(255,255,255,.16)}
.menu a.menu-link:hover{background:var(--lilac)}
}
.js [data-hero]{opacity:0;transform:translate3d(0,50px,0);filter:blur(5px)}
.js .nav{opacity:0}
.is-loaded [data-hero]{opacity:1;transform:none;filter:blur(0);transition:opacity 1200ms var(--out-quart) var(--d,300ms),transform 1200ms var(--out-quart) var(--d,300ms),filter 1200ms var(--out-quart) var(--d,300ms)}
.is-loaded .nav{opacity:1;transition:opacity 700ms ease 200ms}
.is-loaded .hero-bg{transform:none;transition:transform 2000ms var(--out-quint)}
.js .rv-pending{opacity:0;transform:translate3d(0,50px,0);filter:blur(5px)}
.js .rv-pending[data-reveal="fade"]{filter:none}
.js .rv-pending[data-slide="left"]{transform:translate3d(-100px,0,0);filter:none}
.js .rv-pending[data-slide="right"]{transform:translate3d(100px,0,0);filter:none}
.rv-in{transition:opacity 1200ms var(--out-quart) var(--d,0ms),transform 1200ms var(--out-quart) var(--d,0ms),filter 600ms var(--out-quart) var(--d,0ms)}
.rv-in[data-slide]{transition-duration:1000ms}
.footer{margin-block:0 var(--inset);padding-top:clamp(56px,7vw,96px)}
.f-blob{position:absolute;left:0;top:0;z-index:0;width:clamp(320px,42vw,640px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(114,67,242,.55) 0%,rgba(204,51,102,.2) 42%,rgba(29,23,41,0) 70%);opacity:0;pointer-events:none;transition:opacity 500ms ease}
.footer.is-hover .f-blob{opacity:1}
.f-top{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:40px}
.f-cta{display:grid;justify-items:start;gap:22px}
.f-cta p{max-width:18ch;font:600 clamp(1.5rem,1.1rem + 1.2vw,2.25rem)/1.15 var(--f-display);letter-spacing:-.03em;text-wrap:balance}
.f-col h3{margin-bottom:16px;color:var(--on-ink-muted)}
.f-col ul{display:grid;gap:10px}
.f-col a,.f-col span{display:inline-flex;align-items:center;gap:10px;color:#fff;text-decoration:none;overflow-wrap:anywhere}
.f-col a{transition:color 200ms ease}
.f-col .ico{color:var(--violet-2)}
@media (hover:hover) and (pointer:fine){
.f-col a:hover{color:var(--violet-2)}
}
.f-word{position:relative;z-index:1;margin-top:clamp(40px,6vw,80px);font:700 clamp(4rem,17vw,17rem)/.8 var(--f-display);letter-spacing:-.065em;text-align:center;white-space:nowrap;color:rgba(255,255,255,.07);user-select:none}
.f-bottom{position:relative;z-index:1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:12px;padding-block:24px 28px;border-top:1px solid var(--line-ink);color:var(--on-ink-muted);font-size:.875rem}
.f-bottom a{color:inherit;text-decoration:none}
@media (hover:hover) and (pointer:fine){
.f-bottom a:hover{color:#fff}
}
@media (max-width:1023px){
.nav-links,.nav-right .lang{display:none}
.nav-bar{grid-template-columns:1fr auto}
.menu-btn{display:grid}
.f-top{grid-template-columns:repeat(2,minmax(0,1fr))}
.f-cta{grid-column:1/-1}
}
@media (min-width:1024px){
.menu{display:none}
}
@media (max-width:520px){
.nav-cta .btn-label{display:none}
.nav-cta{padding:0 5px}
.f-top{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
.nav::before{transition:none}
.js [data-hero],.js .rv-pending{transform:none!important;filter:none!important}
.is-loaded [data-hero],.rv-in{transition:opacity 400ms ease!important}
.btn--dot::before{transition-duration:0ms!important}
}

/* Páginas sin bloques (texto, 404, entradas): la cabecera va sobre fondo claro */
.hd-solid .nav{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--line)}
.hd-solid .nav::before{display:none}
.hd-solid .brand,.hd-solid .nav-links a,.hd-solid .nav-links a:hover{color:var(--ink)}
.hd-solid .nav-links a[aria-current="page"]{color:var(--violet)}
.hd-solid .menu-btn{background:var(--lilac);color:var(--ink)}
.hd-solid .lang{background:var(--lilac)}
.hd-solid .lang a,.hd-solid .lang span{color:var(--muted)}
.hd-solid .lang [aria-current]{background:var(--ink);color:#fff}
.hd-solid .nav-cta{--bg:var(--ink);--fg:#fff}
html{scroll-padding-top:var(--nav-h,92px)}
section[id]{scroll-margin-top:12px}
}

/* El tema padre pone .alignfull{width:100%}; con el margen lateral de los paneles se pasaba del ancho de la pantalla
   y el celular alejaba (zoom) toda la página. Las secciones miden lo que da su contenedor. */
.vg7-section.alignfull{width:auto}
