/* Isolated UI layer. The base catalogue, admin panel and backend are unchanged. */
body.vs-ui { --vs-font:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; --vs-ink:#171719; --vs-nav-space:calc(88px + env(safe-area-inset-bottom,0px)); }
.vs-ui :is(button,a,[role="button"]):focus-visible { outline:3px solid #d56b24; outline-offset:4px; }
.vs-ui header .header-icons :is(.fav-icon,.cart-icon,.search-toggle) { min-width:44px; min-height:44px; border-radius:14px; transition:background .18s ease; }
.vs-ui header .header-icons :is(.fav-icon,.cart-icon,.search-toggle):hover { background:#f1f1f3!important; }
.vs-ui header .header-icons svg { width:22px; height:22px; }
.vs-ui #user-area .user-btn { border-radius:999px; min-height:44px; }
.vs-ui .vs-product-actions { display:contents; }
#vs-mobile-nav { display:none; }
.vs-catalog-tools { display:contents; }
.vs-filter-toggle { display:none; }

/* A banner which already contains text must not receive a second heading. */
.vs-ui .hero.vs-artwork { min-height:0; height:clamp(220px,56.25vw,640px); aspect-ratio:auto; padding:0; background:#fff; }
.vs-ui .hero.vs-artwork .hero-content { display:none; }
.vs-ui .hero.vs-artwork .hero-slider::after { background:transparent; }
.vs-ui .hero.vs-artwork .slide { background-size:contain!important; background-repeat:no-repeat; background-color:#fff; }
.vs-ui .slider-arrow { min-width:44px; min-height:44px; border-radius:15px; }
.vs-ui .slider-dots .dot { position:relative; }
.vs-ui .slider-dots .dot::before { content:""; position:absolute; inset:-8px; }

/* All seasonal art is decorative; it cannot intercept shopping controls. */
.vs-decor { position:absolute; inset:0; z-index:5; overflow:hidden; pointer-events:none!important; user-select:none; }
.vs-decor * { pointer-events:none!important; box-sizing:border-box; }
.vs-ui .vs-order-label { display:block; font-size:17px; font-weight:650; margin-bottom:8px; }
.vs-ui .vs-order-description { margin:8px 0 14px; font-size:13px; line-height:1.5; color:#686870; }
.vs-ui .vs-order-text { display:block; width:100%; box-sizing:border-box; resize:vertical; min-height:145px; margin:14px 0; padding:14px; border:1px solid #dedee5; border-radius:12px; background:#fff; color:#1c1c1e; font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.vs-ui #cart-view .vs-order-copy { display:block; width:100%; margin-top:10px; background:#fff; color:#171719; border:1px solid #d9d9df; }
.vs-ui .vs-order-web { display:block; text-align:center; margin:16px 0; padding:6px; color:#333; font-size:13px; text-decoration:underline; }
.vs-ui .vs-order-hint { padding:12px; border-radius:12px; background:#fff0df; font-size:13px; line-height:1.5; margin-top:14px; }
.vs-ui .vs-order-hint[hidden] { display:none; }
.vs-web { position:absolute; top:0; right:0; width:clamp(100px,12vw,180px); aspect-ratio:1; color:#555; opacity:.42; overflow:hidden; }
.vs-web i { position:absolute; right:0; top:0; width:24%; height:24%; border:1px solid currentColor; border-top:0; border-right:0; border-radius:0 0 0 100%; }
.vs-web i:nth-child(2) { width:48%; height:48%; }
.vs-web i:nth-child(3) { width:72%; height:72%; }
.vs-web i:nth-child(4) { width:96%; height:96%; }
.vs-web b { position:absolute; right:0; top:0; width:140%; height:1px; background:currentColor; transform-origin:100% 50%; transform:rotate(-25deg); }
.vs-web b:nth-of-type(2) { transform:rotate(-45deg); }
.vs-web b:nth-of-type(3) { transform:rotate(-65deg); }
.vs-tether { position:absolute; top:0; right:5.5%; width:18px; height:95px; transform-origin:50% 0; animation:vs-spider-drop 6s ease-in-out infinite; }
.vs-thread { position:absolute; top:0; left:50%; width:1px; height:100%; background:#646464; opacity:.5; }
.vs-spider { position:absolute; left:50%; bottom:0; width:11px; height:13px; border-radius:48%; background:#1c1c1e; transform:translate(-50%,50%); }
.vs-spider::before { content:""; position:absolute; top:-3px; left:3px; width:5px; height:5px; background:#1c1c1e; border-radius:50%; }
.vs-spider b { position:absolute; left:-6px; top:-2px; width:23px; height:8px; border:1px solid #1c1c1e; border-bottom:0; border-radius:45% 45% 0 0; }
.vs-spider b:nth-child(2) { top:1px; }
.vs-spider b:nth-child(3) { top:4px; transform:rotate(180deg); }
.vs-spider b:nth-child(4) { top:7px; transform:rotate(180deg); }
.vs-ghost { position:absolute; width:clamp(24px,3.1vw,44px); aspect-ratio:.82; left:7%; bottom:10%; animation:vs-ghost-float 4.8s ease-in-out infinite; }
.vs-ghost i { position:absolute; inset:0; background:#323235; border-radius:48% 48% 0 0; clip-path:polygon(0 0,100% 0,100% 95%,85% 86%,69% 100%,53% 88%,36% 100%,19% 88%,0 98%); }
.vs-ghost i::before { content:""; position:absolute; inset:1.5px; background:#fff; border-radius:48% 48% 0 0; clip-path:polygon(0 0,100% 0,100% 93%,85% 83%,69% 96%,53% 84%,36% 96%,19% 84%,0 95%); }
.vs-ghost b { position:absolute; top:35%; left:29%; width:11%; height:15%; border-radius:50%; background:#323235; }
.vs-ghost b:last-child { left:auto; right:29%; }
.vs-ghost-b { left:auto; right:12%; bottom:10%; width:clamp(22px,2.4vw,34px); opacity:.72; animation-delay:-2.2s; }
.vs-spark { position:absolute; top:12%; left:7%; width:clamp(12px,1.5vw,22px); aspect-ratio:1; background:#e56d22; clip-path:polygon(50% 0,63% 36%,100% 50%,63% 64%,50% 100%,37% 64%,0 50%,37% 36%); animation:vs-spark-tilt 5.2s ease-in-out infinite; }
.vs-spark-b { top:auto; bottom:11%; left:auto; right:18%; width:clamp(9px,1.1vw,16px); animation-delay:-2s; }
.vs-pumpkin { position:absolute; left:-28px; bottom:3%; width:125px; max-width:none; height:auto; transform-origin:50% 80%; animation:vs-pumpkin-rock 3.8s ease-in-out infinite; }
.hero.vs-artwork .vs-pumpkin,.hero.vs-artwork .vs-web { display:none; }
#preloader .vs-decor { z-index:10; opacity:0; transition:opacity 1.1s cubic-bezier(.4,0,.2,1); }
#preloader .vs-decor.vs-ready { opacity:1; }
#preloader .vs-pumpkin { left:auto; right:23%; top:62%; bottom:auto; width:clamp(90px,9vw,130px); }
#preloader .vs-ghost-a { left:10%; bottom:14%; }
#preloader .vs-ghost-b { right:12%; bottom:12%; }
#preloader .vs-spark-a { left:15%; top:16%; }
#preloader .vs-spark-b { right:19%; bottom:17%; }
.vs-ui.vs-window-hidden .vs-decor *,#preloader.hide .vs-decor * { animation-play-state:paused!important; }
@keyframes vs-spider-drop { 0%,100%{height:65px;transform:rotate(-2deg)}45%,60%{height:120px;transform:rotate(2deg)} }
@keyframes vs-ghost-float { 0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-10px) rotate(6deg)} }
@keyframes vs-spark-tilt { 0%,100%{transform:rotate(-12deg) scale(.85)}50%{transform:rotate(14deg) scale(1.08)} }
@keyframes vs-pumpkin-rock { 0%,100%{transform:translateX(0) rotate(-5deg)}50%{transform:translateX(9px) rotate(5deg)} }

@media(max-width:768px) {
    body.vs-ui { padding-bottom:var(--vs-nav-space)!important; background:#fafafa; }
    body.vs-ui.vamp-storage-visible { padding-bottom:var(--vamp-storage-height,180px)!important; }
    body.vs-ui>header { display:grid!important; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px 12px!important; padding:10px 16px 0!important; background:rgba(255,255,255,.97)!important; box-shadow:0 1px 0 #0000000a; border-bottom:0; }
    .vs-ui header .logo { width:auto!important; min-width:0; justify-content:flex-start!important; margin:0!important; }
    .vs-ui header .logo img { width:auto!important; height:38px!important; max-height:38px!important; }
    .vs-ui header .header-icons { display:none!important; }
    .vs-ui header #user-area { min-width:0; max-width:100%; margin:0!important; }
    .vs-ui header #user-area>div { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:5px; }
    .vs-ui header .user-btn { min-height:44px!important; padding:8px 14px!important; margin:0!important; border:1px solid #e5e5e8!important; border-radius:999px!important; background:#f4f4f6!important; color:#171719!important; font:600 12px/1.2 var(--vs-font)!important; letter-spacing:0!important; text-transform:none!important; }
    .vs-ui header .main-nav { grid-column:1/-1; order:unset!important; width:auto!important; margin:0 -4px!important; padding:2px 0 6px!important; }
    .vs-ui header .main-nav ul { display:flex!important; flex-wrap:nowrap!important; justify-content:center!important; gap:4px!important; }
    .vs-ui header .main-nav a { display:flex; min-height:44px; padding:10px 14px; align-items:center; justify-content:center; font:500 13px/1.2 var(--vs-font)!important; letter-spacing:0!important; text-transform:none!important; border-radius:12px; }
    #vs-mobile-nav { position:fixed; z-index:900; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:3px; width:calc(100% - 24px); max-width:520px; left:50%; bottom:calc(10px + env(safe-area-inset-bottom,0px)); transform:translateX(-50%); margin:0; padding:5px; box-sizing:border-box; border:1px solid #ffffffd9; border-radius:25px; background:#fffffff0; box-shadow:0 6px 30px #16161c1a,0 0 0 1px #16161c0a; -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); }
    #vs-mobile-nav .vs-tab { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-width:0; min-height:56px; padding:7px 3px 6px; margin:0; border:0; border-radius:19px; background:transparent; color:#68686f; font-family:var(--vs-font); cursor:pointer; -webkit-tap-highlight-color:transparent; }
    #vs-mobile-nav .vs-tab.is-current { color:#171719; background:#ececf0; }
    #vs-mobile-nav .vs-tab:active { background:#e7e7eb; }
    #vs-mobile-nav .vs-tab-icon { position:relative; width:23px; height:23px; display:block; }
    #vs-mobile-nav svg { width:23px; height:23px; display:block; }
    #vs-mobile-nav .vs-tab-label { font-family:var(--vs-font); font-size:10px; line-height:1.2; font-weight:600; letter-spacing:0; white-space:nowrap; text-transform:none; }
    #vs-mobile-nav .vs-count { position:absolute; min-width:16px; height:16px; padding:0 4px; top:-5px; right:-10px; border-radius:9px; background:#1c1c1e; color:#fff; font:600 10px/16px var(--vs-font); text-align:center; box-shadow:0 0 0 2px #fff; }
    #vs-mobile-nav .vs-count[hidden] { display:none; }
    .vs-ui.vs-nav-suspended #vs-mobile-nav,.vs-ui.vs-keyboard-open #vs-mobile-nav { visibility:hidden; pointer-events:none; }
    .vs-ui #chat-widget { right:16px!important; bottom:calc(var(--vs-nav-space) + 10px)!important; }
    .vs-ui.vamp-storage-visible #chat-widget { bottom:calc(var(--vamp-storage-height,180px) + 16px)!important; }
    .vs-ui #chat-launcher { width:48px; height:48px; border-radius:50%; }
    .vs-ui #burgerBtn { display:none!important; }
    .vs-ui.vamp-storage-visible #burgerBtn { bottom:calc(var(--vamp-storage-height,180px) + 16px)!important; }
    .vs-ui.vs-product-open #burgerBtn,.vs-ui:not(.vs-catalog-visible) #burgerBtn { display:none!important; }
    .vs-ui.vs-product-open #chat-widget { bottom:calc(var(--vs-nav-space) + 86px)!important; }
    .vs-ui #catalog-section { scroll-margin-top:120px; }
    .vs-ui :is(.catalog,.fav-page,.product-page,.cart-page,.brands-page,.brand-page,.contacts-page) { font-family:var(--vs-font); }
    .vs-ui :is(.catalog,.fav-page,.product-page,.cart-page,.brands-page,.brand-page,.contacts-page) :is(h1,h2,h3,p,div,span,strong,button,input,select,label,a) { font-family:var(--vs-font); }
    .vs-ui :is(.catalog,.fav-page,.cart-page) h2 { letter-spacing:-.02em!important; text-transform:none!important; font-weight:650!important; }
    .vs-ui #catalog-section h2 { text-align:left; margin:0 0 16px!important; padding:0!important; }
    .vs-ui .vs-catalog-tools { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:16px; }
    .vs-ui .vs-filter-toggle { display:block; flex:0 0 auto; min-height:44px; padding:10px 18px; border:1px solid #e3e3e7; border-radius:13px; background:#fff; color:#171719; font:600 14px/1.3 var(--vs-font); cursor:pointer; }
    .vs-ui .vs-filter-toggle[aria-expanded="true"] { background:#ececf0; }
    .vs-ui .vs-catalog-tools .filter-info { margin:0!important; padding:0!important; min-width:0; font:400 12px/1.4 var(--vs-font); text-align:right; color:#74747d; }
    .vs-ui #catalog-section .filters-bar:not(.vs-expanded) { display:none; }
    .vs-ui #catalog-section .filters-bar.vs-expanded { margin-bottom:16px; }
    .vs-ui .filters-bar { padding:16px; border:1px solid #e7e7eb; border-radius:20px; background:#fff; box-shadow:none; }
    .vs-ui .filters-bar select { border:1px solid #e4e4e8!important; border-radius:12px!important; background:#f6f6f8; font-size:16px!important; min-height:48px; }
    .vs-ui .filters-bar .btn { min-height:44px; border-radius:12px; font-size:13px; letter-spacing:0; text-transform:none; }
    .vs-ui :is(.catalog,.fav-page,.cart-page,.brands-page,.brand-page,.contacts-page) { padding-left:16px; padding-right:16px; }
    .vs-ui .product-card { border-radius:17px; overflow:hidden; background:#fff; border:1px solid #ececef; }
    .vs-ui .product-card h3 { font-family:var(--vs-font); line-height:1.35; }
    .vs-ui .product-card button { min-height:44px!important; font-family:var(--vs-font)!important; border-radius:12px!important; text-transform:none!important; letter-spacing:0!important; }
    .vs-ui #product-view { padding-bottom:100px; }
    .vs-ui #product-view .vs-product-actions { position:fixed; z-index:850; left:50%; transform:translateX(-50%); bottom:calc(var(--vs-nav-space) + 2px); width:calc(100% - 24px); max-width:520px; padding:8px; display:grid; grid-template-columns:1.15fr 1fr; gap:8px; border:1px solid #e4e4e7; border-radius:22px; background:#fffffff5; box-shadow:0 -2px 18px #16161c0c; box-sizing:border-box; }
    .vs-ui #product-view .vs-product-actions>button { min-width:0; min-height:48px; margin:0!important; padding:10px 8px!important; border-radius:15px!important; font:600 12px/1.3 var(--vs-font)!important; letter-spacing:0!important; text-transform:none!important; }
    .vs-ui #product-view .add-to-cart-btn { background:#171719; color:#fff; border:1px solid #171719; }
    .vs-ui #product-view .go-to-checkout-btn { background:#f0f0f3; color:#171719; border:1px solid #e6e6e9; }
    .vs-ui #product-view .add-to-cart-btn:disabled { opacity:.45; }
    .vs-ui #product-view #fav-btn { border-radius:14px!important; font-family:var(--vs-font)!important; font-size:14px!important; letter-spacing:0!important; text-transform:none!important; border-color:#dddde2!important; }
    .vs-ui.vs-nav-suspended .vs-product-actions,.vs-ui.vs-keyboard-open .vs-product-actions { visibility:hidden; pointer-events:none; }
    .vs-ui #cart-view .cart-item { position:relative; gap:10px!important; padding:14px 12px!important; align-items:flex-start!important; border:1px solid #e7e7eb!important; border-radius:18px; }
    .vs-ui #cart-view .cart-item>img { width:62px!important; height:72px!important; border-radius:12px; border:0!important; flex:0 0 62px; }
    .vs-ui #cart-view .cart-item>div:nth-child(2) { min-width:0; padding-right:28px; }
    .vs-ui #cart-view .cart-item>div:nth-child(3) { min-width:70px; white-space:nowrap; font-size:14px!important; padding-top:44px; margin-left:-70px; }
    .vs-ui #cart-view .cart-item>button { position:absolute; right:-6px; top:5px; width:44px; height:44px; border-radius:50%; }
    .vs-ui #cart-view .btn { min-height:48px; border-radius:14px; font:600 14px/1.4 var(--vs-font); text-transform:none; letter-spacing:0; }
    .vs-ui #cart-view button[onclick="submitOrder()"] { background:#171719!important; color:#fff!important; border-color:#171719!important; }
    .vs-ui :is(.search-modal,.modal,.contacts-page,.product-page,.cart-page) input { font-size:16px!important; }
    .vs-ui .hero.vs-artwork { min-height:0; height:clamp(220px,56.25vw,440px); aspect-ratio:auto; }
    .vs-ui .hero.vs-artwork .slider-arrow { display:none; }
    .vs-ui .hero.vs-artwork .slider-dots { bottom:8px; gap:10px; }
    .vs-ui .hero.vs-artwork .slider-dots .dot { width:6px; height:6px; }
    .vs-ui .hero:not(.vs-artwork) { min-height:300px; }
    .vs-web { width:90px; opacity:.35; }
    .vs-tether { right:7%; transform:scale(.75); transform-origin:50% 0; animation-name:vs-spider-mobile; }
    .vs-ghost-a { left:5%; bottom:9%; width:23px; }
    .vs-ghost-b,.vs-spark-b { display:none; }
    .vs-spark-a { left:6%; top:13%; width:12px; }
    .vs-pumpkin { width:82px; left:-20px; bottom:0; }
    #preloader .vs-pumpkin { top:59%; right:16%; width:100px; }
    #preloader .vs-ghost-a { left:8%; bottom:16%; width:28px; }
    #preloader .vs-spark-a { left:12%; top:21%; }
    @keyframes vs-spider-mobile { 0%,100%{height:35px;transform:rotate(-2deg) scale(.75)}45%,60%{height:70px;transform:rotate(2deg) scale(.75)} }
}
@media(prefers-reduced-motion:reduce) {
    .vs-decor * { animation:none!important; }
    #preloader .vs-decor { transition:none; }
    .vs-ui :is(.slider-arrow,#vs-mobile-nav .vs-tab) { transition:none; }
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) { #vs-mobile-nav { background:#fff; } }
