/* El header pasa a position:fixed al scrollear (ver snipplets/home/header.tpl);
   cualquier salto a un ancla (scrollIntoView, link con #, boton "volver arriba")
   dejaba el destino tapado detras del header porque no habia offset. 110px
   cubre el alto del header sin scrollear (104px, el peor caso) con margen. */
/* Al abrir el drawer (u otro modal) la scrollbar de la pagina desaparece y el
   contenido salta ~6-16px hacia la derecha (breadcrumb, etc.). Reservar el
   espacio siempre evita el salto sin depender de que overflow-none se aplique
   a tiempo. */
html{scroll-padding-top:110px;scrollbar-gutter:stable}
/* Vanhaus / shared tokens. Platform JS classes remain untouched. */
body.vh-system{--vh-bg:#0a0a0a;--vh-surface:#141414;--vh-raised:#1a1a1a;--vh-text:#f0f1f4;--vh-muted:#a5a6af;--vh-border:#33343a;--vh-accent:#a2befe;--vh-cta:#a2befe;--vh-cta-ink:#000000;--vh-cta-hover:#7d92bc;--vh-cta-line:#7d92bc;--vh-cta-ghost-ink:#eff1f3;--vh-font-display:"Sora",Arial,sans-serif;--vh-font-ui:"Open Sans",Arial,sans-serif;--vh-radius:18px;background:var(--vh-bg)!important;color:var(--vh-text)!important;font-family:var(--vh-font-ui);font-weight:400;line-height:1.5}
.vh-system h1,.vh-system h2,.vh-system h3,.vh-system h4,.vh-system h5,.vh-system h6{font-family:var(--vh-font-display);color:var(--vh-text);letter-spacing:-.045em}
.vh-system h1,.vh-system h2{font-weight:900;line-height:1.03}.vh-system a{color:inherit}.vh-system img{max-width:100%}
.vh-system :is(.item-name,.vh-chapter-copy h2,.vh-product-dock>div>span){font-family:var(--vh-font-display)}
.vh-system :is(.vh-price,.vh-compare,.item-price,.price-compare,#price_display,#compare_price_display,[data-vh-dock-price],.vh-spec dd){font-family:var(--vh-font-display)}
.vh-system :is(button,input,select,textarea,label,summary,.btn,.vh-btn,.vh-action,.breadcrumbs,.vh-kicker,.vh-stock,.vh-info-body,.vh-product-description,.vanhaus-grid-category,.vanhaus-grid-benefit,.vh-card-variants){font-family:var(--vh-font-ui)!important}
.vh-system :is(#filters,#nav-filters) :is(h1,h2,h3,h4,h5,h6){font-family:var(--vh-font-ui)}
.vh-system .container{max-width:1380px}.vh-system .background-main,.vh-system .background-secondary,.vh-system .section-products-related,.vh-system .section-newsletter,.vh-system .category-body{background:var(--vh-bg)!important;color:var(--vh-text)!important}
.vh-system .modal,.vh-system .modal-header,.vh-system .modal-body,.vh-system .modal-footer,.vh-system .nav-list,.vh-system .nav-panel,.vh-system .filters{background-color:var(--vh-surface)!important;color:var(--vh-text)!important;border-color:var(--vh-border)!important}
.vh-system .modal a,.vh-system .nav-list a{color:var(--vh-text)}
.vh-system .head-main,.vh-system footer{background:#0a0a0a!important;color:var(--vh-text)!important;border-color:var(--vh-border)}
.vh-system .vh-announcement{display:flex;justify-content:center;padding:8px 20px;border-bottom:1px solid var(--vh-border);font-size:11px}.vh-system .vh-announcement>.col{max-width:100%}
.vh-system .form-control,.vh-system .form-select,.vh-system .btn-default,.vh-system input[type=number],.vh-system select,.vh-system textarea{background-color:var(--vh-raised)!important;border-color:#4b4d57!important;color:var(--vh-text)!important;border-radius:9px}
.vh-system input::placeholder,.vh-system textarea::placeholder{color:#9395a0!important;opacity:1}
.vh-system .btn-primary,.vh-system .vh-action{background:var(--vh-cta)!important;border:1px solid var(--vh-cta)!important;color:var(--vh-cta-ink)!important;border-radius:9px!important;box-shadow:none!important;font-family:var(--vh-font-ui)!important;font-weight:700;letter-spacing:.015em;min-height:46px;text-decoration:none}
.vh-system .btn-secondary{background:var(--vh-raised)!important;border:1px solid #555761!important;color:var(--vh-text)!important;border-radius:9px}
.vh-system .btn-primary:disabled,.vh-system .btn-primary.disabled{background:#282a30!important;color:#b8b9c1!important;border-color:#444650!important;opacity:1!important}
.vh-system .text-primary,.vh-system .text-accent,.vh-system .svg-icon-primary{color:var(--vh-accent)!important;fill:var(--vh-accent)}
.vh-system .breadcrumbs,.vh-system .breadcrumbs a{color:var(--vh-muted)!important}.vh-system .divider{border-color:var(--vh-border)!important}
.vh-system :is(a,button,input,select,summary):focus-visible{outline:2px solid #a2befe!important;outline-offset:4px}
.vh-system [hidden]{display:none!important}
/* Single accent system. The index is `product.category.id % 3`, resolved in Twig, so the
   same product paints the same colour in Home, Catálogo y Ficha — before JS and without JS.
   Today: Auriculares -> 2 (verde), Wearables -> 1 (celeste). 0 is the slot for a new category. */
.vh-system .vh-accent-0{--vh-accent:#7d92bc}
.vh-system .vh-accent-1{--vh-accent:#7d92bc}
.vh-system .vh-accent-2{--vh-accent:#7d92bc}
.vh-kicker{font:500 11px/1.4 "Open Sans",Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--vh-accent);margin:0 0 18px}
.vh-action{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;padding:15px 24px;transform:translate3d(var(--magnet-x,0px),var(--magnet-y,0px),0);transition:transform .18s ease,opacity .18s ease}.vh-action:hover{opacity:.9}
.vh-price{display:block;font-size:clamp(36px,5vw,74px);font-weight:900;letter-spacing:-.055em;line-height:1.05;color:var(--vh-text)}.vh-compare{font-size:15px;color:var(--vh-muted)}
.vh-stock{display:inline-flex;gap:8px;align-items:center;font-size:11px;color:var(--vh-muted)}.vh-stock:before{content:'';width:6px;height:6px;border-radius:50%;background:#8a8b94}.vh-stock[data-available=true]:before{background:var(--vh-accent)}
.vh-media{position:relative;display:grid;place-items:center;isolation:isolate;min-width:0;overflow:hidden;aspect-ratio:1 / 1}
.vh-media:before{content:'';position:absolute;inset:12%;background:radial-gradient(ellipse,var(--vh-accent),transparent 68%);opacity:.14;z-index:-1;pointer-events:none;transform:translate3d(var(--glow-x,0px),var(--glow-y,0px),0);transition:opacity .3s ease}
.vh-media>[data-vh-poster]{display:block;width:100%;height:100%;object-fit:contain;transform:translate3d(0,var(--media-y,0px),0) scale(var(--media-scale,1));filter:drop-shadow(0 24px 26px #0005)}
.vh-media>[data-vh-scroll-video]{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;mix-blend-mode:screen;opacity:0;pointer-events:none;transform:translate3d(var(--video-x,0px),0,0)}
.vh-media.vh-video-ready>[data-vh-scroll-video]{opacity:1}.vh-media.vh-video-ready>[data-vh-poster]{opacity:0}
.vh-media-link{position:absolute;bottom:16px;right:16px;z-index:2;font-size:11px;padding:9px 12px;background:#141414df;border:1px solid #444;border-radius:7px}
.vh-specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin:32px 0}
.vh-spec{display:flex;flex-direction:column-reverse;gap:12px;min-width:0;padding:20px;border:1px solid var(--vh-border);border-radius:var(--vh-radius);background:var(--vh-surface)}
.vh-spec dt{font-size:12px;font-weight:300;color:var(--vh-muted)}.vh-spec dd{margin:0;font-size:clamp(24px,3vw,42px);font-weight:900;line-height:1.05;letter-spacing:-.06em;overflow-wrap:normal;word-break:normal;hyphens:none}

.vh-system [data-vh-reveal].vh-will-reveal{opacity:0;transform:translate3d(0,22px,0);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.vh-system [data-vh-reveal].vh-is-visible{opacity:1;transform:none}
.vh-system .user-content,.vh-system .user-content p{color:#bfc0c8;font-weight:300;font-size:16px;line-height:1.8}
.vh-system .user-content table{display:block;max-width:100%;overflow:auto;border-color:var(--vh-border)}.vh-system .user-content td,.vh-system .user-content th{border-color:var(--vh-border);background:transparent;color:var(--vh-text)}
@media(max-width:767px){.vh-system .container{padding-left:20px;padding-right:20px}.vh-specs{gap:8px;grid-template-columns:repeat(auto-fit,minmax(95px,1fr))}.vh-spec{padding:16px 12px}.vh-spec dt{font-size:10px}}
@media(prefers-reduced-motion:reduce){.vh-system .vh-media:before{display:none}.vh-system .vh-media>[data-vh-poster],.vh-system .vh-action,.vh-system [data-vh-reveal].vh-will-reveal{transform:none!important}.vh-system [data-vh-reveal].vh-will-reveal{opacity:1!important;transition:none!important;transition-delay:0ms!important}.vh-system .vh-media>[data-vh-scroll-video]{display:none}.vh-system .vh-media.vh-video-ready>[data-vh-poster]{opacity:1}.vh-system .item,.vh-system .btn{transition:none!important}}

body.vh-system .js-modal-close,body.vh-system .modal-close{color:#f0f1f4!important;border-color:#555761!important}body.vh-system .js-modal-close svg,body.vh-system .modal-close svg{fill:currentColor!important;color:inherit!important}

/* ===== Free-shipping promise (snipplets/vanhaus/shipping-promise.tpl) =====
   Brand accent only, no new colours: #a2befe badge/icons, dark surfaces, white copy. */
.vh-ship{color:#f0f1f4;font-family:"Open Sans",Arial,sans-serif}
.vh-ship-badge{display:inline-flex;align-items:center;gap:7px;height:24px;padding:0 11px;border-radius:999px;background:#a2befe;color:#0a0a0a;font:800 10px/1 "Open Sans",Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.vh-ship-badge::before{content:"";width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:#0a0a0a}
.vh-ship-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.vh-ship-item{display:flex;align-items:center;gap:12px;min-width:0;margin:0}
.vh-ship-icon{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border:1px solid rgba(162,190,254,.3);border-radius:12px;background:rgba(162,190,254,.12);color:#a2befe}
.vh-ship-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.vh-ship-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.vh-ship-copy strong{color:#fff;font-size:15px;font-weight:700;line-height:1.2;letter-spacing:-.01em}
.vh-ship-copy span{color:#a5a6af;font-size:12px;line-height:1.35}

/* Home: one band between the hero and the first product. */
/* Above the hero's decorative photo fade and the global dot/grain overlays. */
.vh-ship-home{position:relative;z-index:6;margin:clamp(4px,1vw,12px) 0 clamp(28px,4vw,52px);padding:0 max(24px,calc((100vw - 1320px)/2))}
.vh-ship-home-inner{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.7fr) auto;align-items:center;gap:clamp(20px,3vw,44px);padding:22px clamp(20px,2.4vw,32px);border:1px solid rgba(162,190,254,.26);border-radius:18px;background:linear-gradient(115deg,rgba(162,190,254,.14),rgba(162,190,254,.04) 55%,rgba(162,190,254,0)),#0f1115;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.vh-ship-lead{display:grid;justify-items:start;gap:10px;min-width:0}
.vh-system .vh-ship-title{margin:0;color:#fff;font-family:"Sora",Arial,sans-serif;font-size:clamp(19px,1.7vw,25px);font-weight:800;line-height:1.15;letter-spacing:-.03em}
.vh-ship-home .vh-ship-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.vh-system .vh-ship-home .vh-ship-cta{min-height:48px;padding:0 22px;border-color:#a2befe;background:#a2befe;color:#0a0a0a;white-space:nowrap}
.vh-system .vh-ship-home .vh-ship-cta:hover{border-color:#7d92bc;background:#7d92bc;color:#0a0a0a}

@media(max-width:1100px) and (min-width:768px){
  .vh-ship-home-inner{grid-template-columns:minmax(0,1fr) auto;row-gap:18px}
  .vh-ship-home .vh-ship-list{grid-column:1/-1;grid-row:2}
}
@media(max-width:767px){
  .vh-ship-home{margin:0 0 26px;padding:0 16px}
  .vh-ship-home-inner{grid-template-columns:1fr;gap:16px;padding:18px 16px;border-radius:14px}
  .vh-system .vh-ship-title{font-size:20px}
  .vh-ship-home .vh-ship-list{grid-template-columns:1fr;gap:12px}
  .vh-system .vh-ship-home .vh-ship-cta{width:100%;justify-content:center}
  .vh-ship-icon{flex-basis:38px;width:38px;height:38px}
}

/* Product page: compact block right above variants and the add-to-cart CTA. */
.vh-ship-pdp{margin:0 0 16px;padding:14px;border:1px solid rgba(162,190,254,.3);border-radius:12px;background:linear-gradient(135deg,rgba(162,190,254,.13),rgba(162,190,254,.03))}
.vh-ship-pdp-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.vh-ship-pdp-note{color:#a5a6af;font-size:11px;line-height:1.2;text-align:right}
.vh-ship-pdp .vh-ship-list{grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:10px 14px}
.vh-ship-pdp .vh-ship-icon{flex-basis:34px;width:34px;height:34px;border-radius:10px}
.vh-ship-pdp .vh-ship-icon svg{width:19px;height:19px}
.vh-ship-pdp .vh-ship-copy strong{font-size:13px}
.vh-ship-pdp .vh-ship-copy span{font-size:11px}
/* The native one-line "Envío gratis" message becomes redundant next to the block. */
body.template-product:has(.vh-ship-pdp) :is(.free-shipping-message,.js-product-form-free-shipping-message,.pdp-free-shipping-section){display:none!important}
