/* Navorix — Base Design System · Dark Premium · Electric Violet */
:root {
    --nvx-void: #050508;
    --nvx-deep: #0c0c12;
    --nvx-panel: #14141f;
    --nvx-surface: #1c1c2a;
    --nvx-snow: #e4e2ef;
    --nvx-snow-dim: #8a8799;
    --nvx-violet: #6b5ce7;
    --nvx-violet-dim: #5548c4;
    --nvx-rose: #e75c8a;
    --nvx-line: rgba(228, 226, 239, 0.08);
    --nvx-shadow: 0 32px 80px rgba(0, 0, 0, 0.55);
    --nvx-shadow-float: 0 24px 48px rgba(107, 92, 231, 0.12), 0 8px 24px rgba(0, 0, 0, 0.4);
    --nvx-font-serif: 'Cormorant Garamond', 'Hiragino Mincho ProN', serif;
    --nvx-font-sans: 'Outfit', 'Hiragino Sans', sans-serif;
    --nvx-font-mono: 'JetBrains Mono', monospace;
    --nvx-ease: cubic-bezier(0.22, 1, 0.36, 1);
    --nvx-transition: 0.5s var(--nvx-ease);
    --nvx-dock-h: 72px;
    --nvx-orbit-h: 56px;
}

[data-theme="light"] {
    --nvx-void: #f0eef5;
    --nvx-deep: #e4e0ec;
    --nvx-panel: #d8d4e4;
    --nvx-surface: #ccc8da;
    --nvx-snow: #0c0c12;
    --nvx-snow-dim: #5a5768;
    --nvx-line: rgba(12, 12, 18, 0.1);
    --nvx-shadow: 0 24px 64px rgba(0, 0, 0, 0.08);
    --nvx-shadow-float: 0 16px 40px rgba(107, 92, 231, 0.08);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body.nvx-body {
    font-family: var(--nvx-font-sans);
    background: var(--nvx-void);
    color: var(--nvx-snow);
    line-height: 1.75;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: none; background: none; color: inherit; }
address { font-style: normal; }
.visually-hidden {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

.nvx-micro {
    font-family: var(--nvx-font-mono);
    font-size: 0.58rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--nvx-snow-dim);
}

/* Dock header */
.nvx-dock {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 300;
    height: var(--nvx-dock-h);
}
.nvx-dock__slant {
    position: absolute;
    inset: 0;
    background: rgba(5, 5, 8, 0.82);
    backdrop-filter: blur(16px);
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), 0 100%);
    border-bottom: 1px solid var(--nvx-line);
}
.nvx-dock__inner {
    position: relative;
    max-width: 1320px;
    margin: 0 auto;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 2rem;
    gap: 1.5rem;
}
.nvx-dock__brand { display: flex; align-items: center; gap: 0.75rem; }
.nvx-dock__mark {
    width: 40px; height: 40px;
    display: grid; place-items: center;
    background: linear-gradient(135deg, var(--nvx-violet), var(--nvx-rose));
    font-family: var(--nvx-font-serif);
    font-size: 1.25rem;
    font-weight: 600;
    border-radius: 12px 4px 12px 4px;
}
.nvx-dock__name strong { display: block; font-size: 0.95rem; letter-spacing: 0.04em; }
.nvx-dock__name small { font-size: 0.58rem; opacity: 0.45; letter-spacing: 0.12em; }
.nvx-dock__links { display: flex; gap: 2rem; }
.nvx-dock__link {
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    opacity: 0.5;
    transition: opacity var(--nvx-transition), color var(--nvx-transition);
    position: relative;
}
.nvx-dock__link::after {
    content: '';
    position: absolute;
    bottom: -4px; left: 0;
    width: 0; height: 1px;
    background: var(--nvx-violet);
    transition: width var(--nvx-transition);
}
.nvx-dock__link:hover,
.nvx-dock__link.is-active { opacity: 1; color: var(--nvx-violet); }
.nvx-dock__link.is-active::after { width: 100%; }
.nvx-dock__tools { display: flex; align-items: center; gap: 0.75rem; }
.nvx-tool-btn {
    width: 36px; height: 36px;
    display: grid; place-items: center;
    border-radius: 50%;
    border: 1px solid var(--nvx-line);
    transition: border-color var(--nvx-transition), background var(--nvx-transition);
}
.nvx-tool-btn:hover { border-color: var(--nvx-violet); background: rgba(107, 92, 231, 0.1); }
.nvx-cart-pill {
    display: flex; align-items: center; gap: 0.4rem;
    padding: 0.4rem 0.85rem;
    background: var(--nvx-panel);
    border: 1px solid var(--nvx-line);
    border-radius: 999px;
    font-size: 0.72rem;
    font-family: var(--nvx-font-mono);
    transition: border-color var(--nvx-transition);
}
.nvx-cart-pill:hover { border-color: var(--nvx-violet); }
.nvx-dock__menu {
    display: none;
    flex-direction: column;
    gap: 6px;
    width: 32px;
}
.nvx-dock__menu span {
    display: block; height: 1.5px;
    background: var(--nvx-snow);
    transition: transform var(--nvx-transition);
}
.nvx-dock__menu.is-open span:first-child { transform: translateY(3.75px) rotate(45deg); }
.nvx-dock__menu.is-open span:last-child { transform: translateY(-3.75px) rotate(-45deg); }

.nvx-slide-menu {
    position: fixed; inset: 0;
    z-index: 290;
    background: rgba(5, 5, 8, 0.7);
    backdrop-filter: blur(8px);
}
.nvx-slide-menu__panel {
    position: absolute;
    top: 0; right: 0;
    width: min(320px, 85vw);
    height: 100%;
    background: var(--nvx-deep);
    padding: calc(var(--nvx-dock-h) + 2rem) 2rem 2rem;
    transform: translateX(100%);
    animation: nvxSlideIn 0.4s var(--nvx-ease) forwards;
}
@keyframes nvxSlideIn { to { transform: none; } }
.nvx-slide-menu nav { display: flex; flex-direction: column; gap: 1.5rem; }
.nvx-slide-menu a { font-size: 1.1rem; font-family: var(--nvx-font-serif); opacity: 0.7; }
.nvx-slide-menu a:hover { opacity: 1; color: var(--nvx-violet); }

/* Buttons */
.nvx-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.85rem 1.6rem;
    font-size: 0.78rem;
    letter-spacing: 0.1em;
    border-radius: 8px;
    transition: transform var(--nvx-transition), box-shadow var(--nvx-transition), background var(--nvx-transition);
}
.nvx-btn--violet {
    background: linear-gradient(135deg, var(--nvx-violet), var(--nvx-violet-dim));
    color: #fff;
    box-shadow: 0 8px 24px rgba(107, 92, 231, 0.35);
}
.nvx-btn--violet:hover { transform: translateY(-2px); box-shadow: 0 12px 32px rgba(107, 92, 231, 0.45); }
.nvx-btn--outline {
    border: 1px solid var(--nvx-line);
    background: transparent;
}
.nvx-btn--outline:hover { border-color: var(--nvx-violet); color: var(--nvx-violet); }
.nvx-btn--ghost { border: 1px solid transparent; opacity: 0.7; }
.nvx-btn--ghost:hover { opacity: 1; color: var(--nvx-violet); }
.nvx-btn--sm { padding: 0.55rem 1rem; font-size: 0.68rem; }
.nvx-btn--lg { padding: 1rem 2rem; font-size: 0.85rem; }
.nvx-link-arrow { font-size: 0.78rem; color: var(--nvx-violet); letter-spacing: 0.06em; }

/* Main */
.nvx-main { min-height: 60vh; }
body:not(.page-home) .nvx-main {
    padding: calc(var(--nvx-dock-h) + 3rem) 2rem 4rem;
    max-width: 1200px;
    margin: 0 auto;
}

/* Reveal */
.nvx-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.8s var(--nvx-ease), transform 0.8s var(--nvx-ease);
}
.nvx-reveal.is-visible { opacity: 1; transform: none; }

/* Breadcrumbs & page head */
.nvx-crumb { margin-bottom: 1.5rem; }
.nvx-crumb ol { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; font-size: 0.72rem; opacity: 0.5; }
.nvx-crumb li:not(:last-child)::after { content: '/'; margin-left: 0.5rem; opacity: 0.4; }
.nvx-crumb a:hover { color: var(--nvx-violet); }
.nvx-page-head { margin-bottom: 3rem; max-width: 640px; }
.nvx-page-head__eyebrow { margin-bottom: 0.75rem; }
.nvx-page-head__title {
    font-family: var(--nvx-font-serif);
    font-size: clamp(2rem, 5vw, 3rem);
    font-weight: 400;
    line-height: 1.15;
    margin-bottom: 0.75rem;
}
.nvx-page-head__sub { opacity: 0.65; font-size: 0.95rem; }

/* About */
.nvx-story-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
    margin-bottom: 4rem;
}
.nvx-story-split--reverse { direction: rtl; }
.nvx-story-split--reverse > * { direction: ltr; }
.nvx-story-split__text h2 {
    font-family: var(--nvx-font-serif);
    font-size: 1.75rem;
    margin-bottom: 1.25rem;
}
.nvx-story-split__text h2 em { font-style: italic; color: var(--nvx-violet); }
.nvx-story-split__text p { opacity: 0.78; margin-bottom: 1rem; font-size: 0.92rem; }
.nvx-story-split figure { border-radius: 16px; overflow: hidden; box-shadow: var(--nvx-shadow-float); }

.nvx-timeline { margin: 4rem 0; }
.nvx-timeline > h2 { font-family: var(--nvx-font-serif); font-size: 1.75rem; margin-bottom: 2rem; }
.nvx-timeline__track { list-style: none; position: relative; padding-left: 2rem; }
.nvx-timeline__track::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 2px;
    background: linear-gradient(180deg, var(--nvx-violet), transparent);
}
.nvx-timeline__track li {
    position: relative;
    padding: 0 0 2.5rem 2rem;
}
.nvx-timeline__track li::before {
    content: '';
    position: absolute;
    left: -2rem; top: 0.35rem;
    width: 10px; height: 10px;
    background: var(--nvx-violet);
    border-radius: 50%;
    transform: translateX(-4px);
}
.nvx-timeline__year {
    font-family: var(--nvx-font-mono);
    font-size: 0.72rem;
    color: var(--nvx-violet);
    letter-spacing: 0.1em;
}
.nvx-timeline__track strong { display: block; margin: 0.35rem 0; font-size: 1rem; }
.nvx-timeline__track p { opacity: 0.65; font-size: 0.88rem; }

.nvx-values { margin: 4rem 0; }
.nvx-values > h2 { font-family: var(--nvx-font-serif); font-size: 1.75rem; margin-bottom: 2rem; }
.nvx-values__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}
.nvx-values__grid article {
    padding: 1.75rem;
    background: var(--nvx-panel);
    border: 1px solid var(--nvx-line);
    border-radius: 12px;
    transform: rotate(calc(var(--i, 0) * 1deg));
}
.nvx-values__grid strong { display: block; color: var(--nvx-violet); margin-bottom: 0.5rem; font-size: 0.85rem; letter-spacing: 0.08em; }
.nvx-values__grid p { opacity: 0.65; font-size: 0.85rem; }

.nvx-page-cta {
    margin-top: 4rem;
    padding: 3rem;
    text-align: center;
    background: var(--nvx-panel);
    border-radius: 16px;
    border: 1px solid var(--nvx-line);
}
.nvx-page-cta h2 { font-family: var(--nvx-font-serif); font-size: 1.5rem; margin-bottom: 0.75rem; }
.nvx-page-cta p { opacity: 0.65; margin-bottom: 1.5rem; }

/* Shop */
.nvx-shop-bar { margin-bottom: 2.5rem; }
.nvx-shop-bar__filters { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.nvx-filter-chip {
    padding: 0.55rem 1.1rem;
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    border: 1px solid var(--nvx-line);
    border-radius: 999px;
    opacity: 0.5;
    transition: all var(--nvx-transition);
}
.nvx-filter-chip.is-active,
.nvx-filter-chip:hover {
    opacity: 1;
    border-color: var(--nvx-violet);
    background: rgba(107, 92, 231, 0.12);
    color: var(--nvx-violet);
}

.nvx-shop-mosaic {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.5rem;
}
.nvx-product-card {
    background: var(--nvx-panel);
    border: 1px solid var(--nvx-line);
    border-radius: 16px;
    overflow: hidden;
    transition: transform var(--nvx-transition), box-shadow var(--nvx-transition);
}
.nvx-product-card:hover { transform: translateY(-6px) rotate(-0.5deg); box-shadow: var(--nvx-shadow-float); }
.nvx-product-card__img { position: relative; aspect-ratio: 4/3; overflow: hidden; }
.nvx-product-card__img img { width: 100%; height: 100%; object-fit: cover; }
.nvx-product-card__badge {
    position: absolute; top: 0.75rem; left: 0.75rem;
    padding: 0.25rem 0.6rem;
    background: var(--nvx-violet);
    color: #fff;
    font-size: 0.58rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    border-radius: 4px;
}
.nvx-product-card__body { padding: 1.25rem; }
.nvx-product-card__body h3 { font-size: 1rem; margin: 0.35rem 0 0.5rem; }
.nvx-product-card__price { font-family: var(--nvx-font-mono); color: var(--nvx-violet); margin-bottom: 0.75rem; font-size: 0.9rem; }
.nvx-product-card__specs { font-size: 0.75rem; opacity: 0.55; margin-bottom: 1rem; line-height: 1.6; }
.nvx-product-card__actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }

/* FAQ */
.nvx-faq__intro { margin-bottom: 2rem; opacity: 0.75; max-width: 640px; }
.nvx-faq__tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 2rem; }
.nvx-faq__tab {
    padding: 0.6rem 1.2rem;
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    border-radius: 8px;
    border: 1px solid transparent;
    opacity: 0.45;
    transition: all var(--nvx-transition);
}
.nvx-faq__tab.is-active { opacity: 1; border-color: var(--nvx-violet); background: rgba(107, 92, 231, 0.1); color: var(--nvx-violet); }
.nvx-faq__panel { display: none; }
.nvx-faq__panel.is-active { display: block; }
.nvx-faq__item {
    margin-bottom: 0.75rem;
    border: 1px solid var(--nvx-line);
    border-radius: 10px;
    overflow: hidden;
}
.nvx-faq__q {
    width: 100%;
    text-align: left;
    padding: 1.15rem 2.5rem 1.15rem 1.25rem;
    font-weight: 500;
    font-size: 0.92rem;
    position: relative;
    background: var(--nvx-panel);
}
.nvx-faq__q::after {
    content: '+';
    position: absolute; right: 1.25rem; top: 50%;
    transform: translateY(-50%);
    font-size: 1.1rem;
    color: var(--nvx-violet);
    transition: transform var(--nvx-transition);
}
.nvx-faq__item.is-open .nvx-faq__q::after { transform: translateY(-50%) rotate(45deg); }
.nvx-faq__a { max-height: 0; overflow: hidden; transition: max-height 0.45s var(--nvx-ease); background: var(--nvx-deep); }
.nvx-faq__item.is-open .nvx-faq__a { max-height: 400px; }
.nvx-faq__a p { padding: 0 1.25rem 1.25rem; opacity: 0.75; font-size: 0.88rem; }
.nvx-faq__cta {
    margin-top: 3rem;
    padding: 2.5rem;
    text-align: center;
    background: var(--nvx-panel);
    border-radius: 16px;
    border: 1px solid var(--nvx-line);
}
.nvx-faq__cta h2 { font-family: var(--nvx-font-serif); margin-bottom: 0.75rem; }
.nvx-faq__cta p { opacity: 0.65; margin-bottom: 1.25rem; }

/* Contact */
.nvx-contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: start;
}
.nvx-contact-info figure { border-radius: 16px; overflow: hidden; margin-bottom: 1.5rem; box-shadow: var(--nvx-shadow-float); }
.nvx-contact-info h2 { font-family: var(--nvx-font-serif); margin-bottom: 1rem; }
.nvx-contact-info address { display: flex; flex-direction: column; gap: 0.75rem; opacity: 0.85; }
.nvx-contact-info a:hover { color: var(--nvx-violet); }
.nvx-contact-form { display: flex; flex-direction: column; gap: 1rem; }
.nvx-contact-form label { font-size: 0.72rem; letter-spacing: 0.08em; opacity: 0.6; }
.nvx-contact-form input,
.nvx-contact-form select,
.nvx-contact-form textarea {
    width: 100%;
    padding: 0.85rem 1rem;
    background: var(--nvx-panel);
    border: 1px solid var(--nvx-line);
    color: var(--nvx-snow);
    font-family: inherit;
    border-radius: 8px;
}
.nvx-contact-form textarea { min-height: 140px; resize: vertical; }
.nvx-contact-map { margin-top: 3rem; aspect-ratio: 21/9; overflow: hidden; border-radius: 16px; border: 1px solid var(--nvx-line); }
.nvx-contact-map iframe { width: 100%; height: 100%; border: 0; }

/* Cart */
.nvx-cart__empty { text-align: center; padding: 4rem 2rem; }
.nvx-cart__empty h2 { font-family: var(--nvx-font-serif); margin: 1rem 0; }
.nvx-cart__empty p { opacity: 0.65; max-width: 420px; margin: 0 auto 1.5rem; }
.nvx-cart__layout {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 2rem;
    align-items: start;
}
.nvx-cart__head { display: flex; justify-content: space-between; margin-bottom: 1.5rem; padding-bottom: 1rem; border-bottom: 1px solid var(--nvx-line); }
.nvx-cart__head h2 { font-family: var(--nvx-font-serif); font-size: 1.25rem; }
.nvx-cart-item {
    display: grid;
    grid-template-columns: 100px 1fr auto;
    gap: 1.25rem;
    padding: 1.25rem 0;
    border-bottom: 1px solid var(--nvx-line);
    align-items: center;
}
.nvx-cart-item__img { aspect-ratio: 4/3; overflow: hidden; background: var(--nvx-panel); border-radius: 8px; }
.nvx-cart-item__img img { width: 100%; height: 100%; object-fit: cover; }
.nvx-cart-item__name { font-weight: 500; margin-bottom: 0.25rem; }
.nvx-cart-item__price { font-size: 0.85rem; opacity: 0.6; font-family: var(--nvx-font-mono); }
.nvx-qty { display: flex; align-items: center; gap: 0.5rem; margin-top: 0.5rem; }
.nvx-qty button {
    width: 28px; height: 28px;
    border: 1px solid var(--nvx-line);
    border-radius: 6px;
}
.nvx-cart-item__remove { font-size: 0.72rem; opacity: 0.5; margin-top: 0.5rem; }
.nvx-cart-item__remove:hover { opacity: 1; color: var(--nvx-rose); }
.nvx-cart__summary {
    padding: 1.5rem;
    background: var(--nvx-panel);
    border: 1px solid var(--nvx-line);
    border-radius: 16px;
    position: sticky;
    top: calc(var(--nvx-dock-h) + 1rem);
}
.nvx-cart__summary-head h2 { font-family: var(--nvx-font-serif); font-size: 1.1rem; margin-top: 0.35rem; }
.nvx-cart__line {
    display: flex;
    justify-content: space-between;
    padding: 0.6rem 0;
    font-size: 0.85rem;
    border-bottom: 1px solid var(--nvx-line);
}
.nvx-cart__line--total { font-weight: 600; font-size: 1rem; border: none; padding-top: 1rem; color: var(--nvx-violet); }
.nvx-cart__coupon { margin: 1.25rem 0; }
.nvx-cart__coupon-row { display: flex; gap: 0.5rem; margin-top: 0.35rem; }
.nvx-cart__coupon-row input {
    flex: 1;
    padding: 0.6rem;
    background: var(--nvx-deep);
    border: 1px solid var(--nvx-line);
    color: var(--nvx-snow);
    border-radius: 6px;
}
.nvx-cart__coupon-hint { font-size: 0.72rem; opacity: 0.5; margin-top: 0.35rem; }
.nvx-dispatch { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem; margin-top: 1rem; }
.nvx-dispatch__card {
    padding: 1rem;
    text-align: left;
    border: 1px solid var(--nvx-line);
    border-radius: 10px;
    transition: border-color var(--nvx-transition), background var(--nvx-transition);
}
.nvx-dispatch__card.is-active { border-color: var(--nvx-violet); background: rgba(107, 92, 231, 0.08); }
.nvx-dispatch__fee { font-family: var(--nvx-font-mono); font-size: 0.72rem; color: var(--nvx-violet); }
.nvx-dispatch__label { display: block; margin: 0.35rem 0; font-size: 0.85rem; }
.nvx-dispatch__desc { font-size: 0.72rem; opacity: 0.55; }

/* Checkout */
.nvx-checkout-grid { display: grid; grid-template-columns: 1fr 360px; gap: 2rem; }
.nvx-checkout-form { display: flex; flex-direction: column; gap: 1rem; }
.nvx-checkout-form fieldset {
    border: 1px solid var(--nvx-line);
    padding: 1.5rem;
    border-radius: 12px;
}
.nvx-checkout-form legend { padding: 0 0.5rem; font-size: 0.72rem; letter-spacing: 0.1em; color: var(--nvx-violet); }
.nvx-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.nvx-checkout-form input,
.nvx-checkout-form select {
    width: 100%;
    padding: 0.75rem;
    background: var(--nvx-panel);
    border: 1px solid var(--nvx-line);
    color: var(--nvx-snow);
    margin-top: 0.25rem;
    border-radius: 6px;
}

/* Policy */
.nvx-policy { max-width: 780px; }
.nvx-policy h2 {
    font-family: var(--nvx-font-serif);
    font-size: 1.35rem;
    margin: 2.5rem 0 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--nvx-line);
}
.nvx-policy h2:first-of-type { border-top: none; padding-top: 0; margin-top: 1.5rem; }
.nvx-policy h3 { font-size: 1rem; margin: 1.25rem 0 0.75rem; color: var(--nvx-violet); }
.nvx-policy p { margin-bottom: 1rem; opacity: 0.82; font-size: 0.92rem; }
.nvx-policy ul, .nvx-policy ol { margin: 0 0 1rem 1.25rem; opacity: 0.82; font-size: 0.92rem; }
.nvx-policy li { margin-bottom: 0.5rem; }
.nvx-policy a { color: var(--nvx-violet); text-decoration: underline; }

/* Footer */
.nvx-stack-foot {
    position: relative;
    background: var(--nvx-deep);
    margin-top: 4rem;
}
.page-home .nvx-stack-foot { margin-top: 0; }
.nvx-stack-foot__cut {
    height: 80px;
    background: var(--nvx-void);
    clip-path: polygon(0 0, 100% 0, 100% 20%, 0 100%);
}
.nvx-stack-foot__layers { padding: 0 2rem 2rem; max-width: 1200px; margin: 0 auto; }
.nvx-stack-foot__layer { padding: 2rem 0; border-bottom: 1px solid var(--nvx-line); }
.nvx-stack-foot__row { display: grid; grid-template-columns: 1fr 2fr; gap: 3rem; }
.nvx-stack-foot__identity h2 {
    font-family: var(--nvx-font-serif);
    font-size: 2rem;
    margin: 0.5rem 0;
}
.nvx-stack-foot__identity p:last-of-type { opacity: 0.55; font-size: 0.9rem; }
.nvx-stack-foot__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.nvx-stack-foot__cols h3 {
    font-size: 0.62rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    opacity: 0.4;
    margin-bottom: 1rem;
}
.nvx-stack-foot__cols div { display: flex; flex-direction: column; gap: 0.55rem; }
.nvx-stack-foot__cols a { font-size: 0.85rem; opacity: 0.6; transition: opacity var(--nvx-transition), color var(--nvx-transition); }
.nvx-stack-foot__cols a:hover { opacity: 1; color: var(--nvx-violet); }
.nvx-stack-foot__layer--2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    align-items: end;
}
.nvx-stack-foot__layer--2 address { display: flex; flex-direction: column; gap: 0.5rem; font-size: 0.85rem; opacity: 0.65; }
.nvx-stack-foot__layer--2 a:hover { color: var(--nvx-violet); }
.nvx-stack-foot__news label { font-size: 0.72rem; opacity: 0.5; display: block; margin-bottom: 0.35rem; }
.nvx-stack-foot__news-row { display: flex; gap: 0.5rem; }
.nvx-stack-foot__news-row input {
    flex: 1;
    padding: 0.6rem;
    background: var(--nvx-panel);
    border: 1px solid var(--nvx-line);
    color: var(--nvx-snow);
    border-radius: 6px;
}
.nvx-stack-foot__map { height: 200px; border-radius: 12px; overflow: hidden; margin: 1.5rem 0; }
.nvx-stack-foot__map iframe { width: 100%; height: 100%; border: 0; }
.nvx-stack-foot__layer--3 {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
    font-size: 0.68rem;
    opacity: 0.4;
    border-bottom: none;
}

.nvx-back-top {
    position: fixed;
    bottom: calc(var(--nvx-orbit-h) + 1.5rem);
    right: 1.5rem;
    z-index: 200;
    width: 44px; height: 44px;
    border-radius: 50%;
    background: var(--nvx-violet);
    color: #fff;
    display: grid; place-items: center;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity var(--nvx-transition), transform var(--nvx-transition);
    pointer-events: none;
    box-shadow: 0 8px 24px rgba(107, 92, 231, 0.4);
}
.page-home .nvx-back-top { bottom: calc(var(--nvx-orbit-h) + 2rem); }
.nvx-back-top.is-visible { opacity: 1; transform: none; pointer-events: auto; }

.nvx-toast {
    position: fixed;
    bottom: 2rem; left: 50%;
    transform: translateX(-50%) translateY(20px);
    z-index: 500;
    padding: 0.85rem 1.5rem;
    background: var(--nvx-panel);
    border: 1px solid var(--nvx-violet);
    border-radius: 8px;
    font-size: 0.85rem;
    opacity: 0;
    transition: opacity 0.3s, transform 0.3s;
    pointer-events: none;
}
.nvx-toast.is-visible { opacity: 1; transform: translateX(-50%) translateY(0); }

@media (max-width: 1024px) {
    .nvx-story-split,
    .nvx-contact-grid,
    .nvx-cart__layout,
    .nvx-checkout-grid { grid-template-columns: 1fr; }
    .nvx-story-split--reverse { direction: ltr; }
    .nvx-values__grid { grid-template-columns: 1fr; }
    .nvx-stack-foot__row,
    .nvx-stack-foot__layer--2 { grid-template-columns: 1fr; }
    .nvx-stack-foot__cols { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
    .nvx-dock__links { display: none; }
    .nvx-dock__menu { display: flex; }
    body:not(.page-home) .nvx-main { padding: calc(var(--nvx-dock-h) + 1.5rem) 1rem 3rem; }
    .nvx-form-row { grid-template-columns: 1fr; }
    .nvx-dispatch { grid-template-columns: 1fr; }
    .nvx-stack-foot__cols { grid-template-columns: 1fr; }
}
