/* ================================================================
 NOVA CINEMA · 2026 | SISTEMA VISUAL NUEVO
 Tokens y componentes independientes. La hoja clásica sigue sirviendo
 de compatibilidad a checkout, cuentas y módulos especializados.
 ================================================================ */
html {scroll-padding-top:110px;}
body.nv-body{min-width:320px;background:var(--bg);color:var(--text);font-family:var(--font-sans);overflow-x:clip;}
body.nv-body::selection{background:rgba(226,177,101,.35);}
.nv-body .container{width:min(calc(100% - 2*var(--gutter)),var(--container));max-width:var(--container);margin-inline:auto;}
.nv-body a,.nv-body button{ -webkit-tap-highlight-color:transparent;}
.nv-body :is(button,a,input,select,textarea):focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
.nv-body [hidden]{display:none!important;}
.nv-body .nv-topbar{min-height:32px;background:#0e0b15;border-bottom:1px solid rgba(245,218,171,.07);color:#cdbfae;}
.nv-topbar .container{min-height:32px;align-items:center;}
.nv-topbar :is(.nv-topbar-brand,.nv-topbar-note){font-size:10px;letter-spacing:.09em;}
.nv-header{background:var(--glass-strong)!important;border-bottom:1px solid var(--line)!important;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);}
.nv-header .nv-nav{min-height:74px;gap:20px;}
.nv-header .nv-brand,.nv-footer .nv-brand{font-family:var(--font-sans);font-weight:900;letter-spacing:-.09em;font-size:clamp(22px,2vw,28px);white-space:nowrap;}
.nv-brand span{color:var(--gold);font-size:.56em;font-weight:800;letter-spacing:.13em;margin-left:7px;}
.nv-menu .nv-menu-links{gap:clamp(6px,1.3vw,21px);}
.nv-menu-link{font-family:var(--font-sans);font-size:12px;letter-spacing:.015em;font-weight:700;padding:12px 8px!important;white-space:nowrap;}
.nv-menu-link[aria-current="page"]{color:var(--gold-2);}
.nv-menu-link::after{height:1px;}
.nv-header .nv-actions{gap:7px;}
.nv-header .nv-icon-btn,.nv-header .nv-pill-btn{border:1px solid var(--line)!important;background:var(--glass)!important;border-radius:10px!important;height:42px;min-width:42px;}
.nv-header .nv-count{background:var(--gold)!important;color:var(--gold-ink)!important;}
.nv-page-hero,.nv-section{background:transparent;}
.nv-section{padding-block:var(--section);}
.nv-section:nth-of-type(2n){background:linear-gradient(180deg,transparent,var(--glow-a),transparent);}
.nv-eyebrow{font-family:var(--font-sans)!important;letter-spacing:.2em;font-size:10px;font-weight:800;}
.nv-section-head{margin-bottom:clamp(22px,2.5vw,36px);align-items:flex-end;}
.nv-display,.nv-title,.nv-page-hero h1{font-family:var(--font-sans)!important;font-weight:750;letter-spacing:-.06em;line-height:1.06;overflow-wrap:break-word;}
.nv-display{font-size:clamp(30px,4.3vw,60px);}
.nv-display-md{font-size:clamp(30px,3.5vw,49px);}
.nv-title{font-size:clamp(23px,3vw,38px);}
.nv-lead{color:var(--text-soft);font-size:clamp(14px,1.13vw,16px);line-height:1.75;}
.nv-btn,.nv-body .btn{font-family:var(--font-sans);font-size:13px;font-weight:800;letter-spacing:.01em;min-height:46px;border-radius:10px;padding-inline:20px;box-shadow:none;}
.nv-btn-gold{background:var(--gold-grad);color:var(--gold-ink);border-color:transparent;box-shadow:0 8px 26px -19px rgba(240,192,123,.72);}
.nv-btn-outline{border-color:var(--line-strong);background:rgba(140,120,163,.045);color:var(--text);}
.nv-btn:hover{transform:translateY(-2px);}
.nv-link{font-family:var(--font-sans);font-size:12px;font-weight:800;}
/* Diálogo de película, 6 s, transiciona sin pantalla blanca */
@keyframes nova-progress{to{width:100%;}}
/* Hero continuo al último fotograma */
/* Carta principal: CSS anima el ambiente; JS controla únicamente el objeto. */
.nova-artifact{--card-w:clamp(235px,25.5vw,390px);--card-h:calc(var(--card-w)*88/63);--edge:1px;position:relative;width:100%;max-width:590px;min-height:calc(var(--card-h) + 32px);display:grid;place-items:center;isolation:isolate}
.nova-artifact-scene{position:relative;z-index:2;width:var(--card-w);height:var(--card-h);perspective:1500px;cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none;outline:none;outline-offset:8px;animation:nova-artifact-tilt 12s ease-in-out infinite paused}
.nova-artifact-scene:focus-visible:not(.is-pointer-focus){outline:2px solid var(--gold)}
.nova-artifact-scene.is-dragging{cursor:grabbing}
.nova-artifact-float{width:100%;height:100%;transform-style:preserve-3d;animation:nova-artifact-drift 12s ease-in-out infinite paused}
.nova-artifact-object{position:relative;width:100%;height:100%;transform-style:preserve-3d;transform-origin:50% 50%;transform:rotateX(0deg) rotateY(0deg)}
.nova-artifact-scene.is-dragging .nova-artifact-object{will-change:transform}
.nova-artifact-face{position:absolute;inset:0;border-radius:7px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid rgba(226,190,130,.6);background:#150d23}
.nova-artifact-face img{display:block;width:100%;height:100%;object-fit:contain;user-select:none;pointer-events:none}
.nova-artifact-face.is-front{transform:translateZ(var(--edge))}
.nova-artifact-face.is-back{transform:rotateY(180deg) translateZ(var(--edge))}
.nova-artifact-glint{position:absolute;inset:0;pointer-events:none;opacity:.5}
.nova-artifact-glint::after{content:'';position:absolute;inset:-10% -50%;background:linear-gradient(112deg,transparent 35%,rgba(240,246,255,.08) 48%,rgba(255,255,255,.12) 50%,transparent 64%);animation:nova-artifact-light 16s ease-in-out infinite paused}
.nova-artifact-edge{position:absolute;left:0;top:0;background:linear-gradient(90deg,#b89760,#e5d6b4,#6f5d45);backface-visibility:visible}
.nova-artifact-edge.is-left,.nova-artifact-edge.is-right{width:calc(var(--edge)*2);height:100%;left:calc(50% - var(--edge));transform:rotateY(90deg) translateZ(calc(var(--card-w)/2))}
.nova-artifact-edge.is-left{transform:rotateY(90deg) translateZ(calc(var(--card-w)/-2))}
.nova-artifact-edge.is-top,.nova-artifact-edge.is-bottom{height:calc(var(--edge)*2);width:100%;top:calc(50% - var(--edge));transform:rotateX(90deg) translateZ(calc(var(--card-h)/2))}
.nova-artifact-edge.is-bottom{transform:rotateX(90deg) translateZ(calc(var(--card-h)/-2))}
.nova-artifact-shadow{position:absolute;z-index:0;bottom:34px;width:var(--card-w);height:30px;border-radius:50%;background:radial-gradient(ellipse,rgba(0,0,0,.3),transparent 70%);animation:nova-artifact-shadow 12s ease-in-out infinite paused;pointer-events:none}
.nova-artifact.is-motion-active:not(.is-interacting) :is(.nova-artifact-scene,.nova-artifact-float,.nova-artifact-shadow),.nova-artifact.is-motion-active:not(.is-interacting) .nova-artifact-glint::after{animation-play-state:running}
@keyframes nova-artifact-drift{0%,100%{transform:translateY(-3px)}50%{transform:translateY(3px)}}
@keyframes nova-artifact-tilt{0%,100%{rotate:1 1 0 1deg}50%{rotate:1 1 0 -1deg}}
@keyframes nova-artifact-light{0%,100%{transform:translateX(-22%)}50%{transform:translateX(22%)}}
@keyframes nova-artifact-shadow{0%,100%{transform:scaleX(.96);opacity:.7}50%{transform:scaleX(1.02);opacity:.85}}
@media(max-width:850px){.nova-artifact{--card-w:clamp(180px,38vw,300px)}}
@media(max-width:680px){.nova-artifact{--card-w:clamp(180px,50vw,280px)}}
@media(prefers-reduced-motion:reduce){.nova-artifact-scene,.nova-artifact-float,.nova-artifact-shadow,.nova-artifact-glint::after{animation:none}}

/* Camino rápido: decide en los primeros 2 segundos dónde entrar */
/* Categorías limpias */
/* Carruseles premium: todas las tarjetas tienen anchura real, sin aplastar */
/* Superficies secundarias y FAQ */
.nv-panel,.nv-event-banner,.nv-page-hero,.nv-branch-card,.nv-tour-card,.nv-quickview{border-radius:17px;border-color:var(--line);box-shadow:var(--shadow);}
.nv-panel,.nv-event-banner{background:var(--surface);}
.nv-stat-row{gap:clamp(15px,3vw,32px);flex-wrap:wrap;}
.nv-stat-row strong{font-family:var(--font-sans);font-size:clamp(28px,3vw,46px);}
.nv-countdown>div{min-width:0;}
.nv-quickview::backdrop{background:rgba(5,4,9,.82);backdrop-filter:blur(8px);}
.nv-quickview{max-height:min(86dvh,900px);max-width:min(96vw,980px);overflow-y:auto;}
.nv-quickview-grid{align-items:start;}
.nv-quickview-buy{max-width:100%;}
/* Formularios universales: mismo contraste y tamaño en tienda, checkout, contacto y cuentas */
.nv-body :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){min-height:44px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface)!important;color:var(--text)!important;box-shadow:none;font-family:var(--font-sans);font-size:16px;max-width:100%;}
.nv-body textarea{min-height:96px;padding:12px;}
.nv-body :is(input,textarea)::placeholder{color:var(--faint);opacity:1;}
.nv-body :is(input,select,textarea):focus{outline:none;border-color:var(--gold)!important;box-shadow:0 0 0 3px rgba(200, 165, 106,.13);}
.nv-body :is(label,legend){color:var(--text-soft);}
.nv-body :is(input[type=checkbox],input[type=radio]){accent-color:var(--gold);}
.nv-body .nv-fav{background:var(--glass);border-color:var(--line);}
/* Footer editorial, información fácil de leer */
.nv-footer{border-top:1px solid var(--line);background:var(--bg-2);color:var(--text);}
.nv-footer-grid{gap:clamp(20px,3vw,44px);}
.nv-footer a{color:var(--text-soft);}
.nv-footer a:hover{color:#f2cc92;}.nv-footer h2{font-family:var(--font-sans);font-size:12px;font-weight:850;color:var(--gold);letter-spacing:.09em;}
.nv-footer-bottom,.nv-footer-note{border-color:rgba(255,255,255,.09);color:var(--muted);}
/* Páginas internas y catálogo */
.nv-page-hero{border-radius:0;padding:clamp(44px,6vw,76px) 0;}
.nv-page-hero-grid{gap:clamp(20px,4vw,50px);}
@media(max-width:850px){
 .nv-section{padding-block:50px;}
}
@media(max-width:600px){
 .nv-topbar-note{display:none!important;}
 .nv-header .nv-nav{min-height:64px;}
 .nv-header .nv-brand{font-size:23px;}
 .nv-header .nv-actions{gap:5px;}
 .nv-header .nv-icon-btn,.nv-header .nv-pill-btn{height:39px;min-width:39px;}
 .nv-section-head{align-items:flex-start;flex-wrap:wrap;}
 .nv-display{font-size:clamp(27px,8vw,40px);}
 .nv-quickview{width:calc(100% - 16px);max-height:91dvh;padding:15px;}
 .nv-quickview-grid{grid-template-columns:1fr;}
 .nv-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
 .nv-footer-about{grid-column:1/-1;}
}





/* Distribucion editorial ampliada, sin marcos vacios a los lados */
.nv-body .container {--container:1536px;max-width:1536px;}
.nv-body.page-tienda .nv-page-hero {padding-block:clamp(46px,5vw,70px);}


/* NOVA intro v11: película horizontal para pantallas anchas y render vertical
   nativo para teléfonos, nunca agrandar un paisaje a vertical. */
