/* ══════════════════════════════
   🎨 VARIABLES DE DISEÑO
   Cambia aquí para rediseñar toda la web
══════════════════════════════ */
:root {

    /* ── Colores de marca ── */
    --primary: #ca1515;
    /* Rojo principal — botones, acentos, hover */
    --primary-light: #e03030;
    /* Rojo claro — hover de botón primario */
    --primary-bg: rgba(202, 21, 21, 0.06);
    /* Fondo suave rojo */

    /* ── Dorado / acento secundario ── */
    --accent-gold: #c8a96e;
    /* Dorado — íconos, líneas decorativas */
    --accent-gold-light: #e8d5a3;
    /* Dorado claro — textos sobre oscuro */
    --accent-gold-bg: rgba(200, 169, 110, 0.06);
    /* Fondo suave dorado */
    --accent-gold-overlay: rgba(200, 169, 110, 0.12);
    /* Hover botón swiper */

    /* ── Neutros ── */
    --dark: #0f0f0f;
    /* Negro principal — texto, fondo header/footer */
    --dark-2: #1a1a1a;
    /* Negro secundario */
    --dark-3: #161616;
    /* Negro terciario — footer main */
    --mid: #5a5a5a;
    /* Gris medio — texto secundario */
    --muted: #888888;
    /* Gris apagado — textos de apoyo */
    --light: #f8f6f2;
    /* Fondo claro — secciones alternadas */
    --white: #ffffff;
    /* Blanco puro */

    /* ── Feedback / estados ── */
    --success: #038b23;
    /* Verde — badge "Nuevo" */
    --rating: #e3c01c;
    /* Amarillo — estrellas de calificación */

    /* ── Overlays (fondo oscuro semitransparente) ── */
    --overlay-hero-start: rgba(5, 5, 5, 0.78);
    /* Inicio gradiente hero */
    --overlay-hero-mid: rgba(5, 5, 5, 0.38);
    /* Mitad gradiente hero */
    --overlay-hero-end: rgba(5, 5, 5, 0.06);
    /* Final gradiente hero */
    --overlay-cat-bottom: rgba(0, 0, 0, 0.65);
    /* Overlay inferior categorías */
    --overlay-cat-top: rgba(0, 0, 0, 0);
    /* Overlay superior categorías */
    --overlay-cat-hover: rgba(0, 0, 0, 0.1);
    /* Overlay hover categorías */
    --overlay-actions: rgba(255, 255, 255, 0.95);
    /* Fondo acciones producto */

    /* ── Bordes ── */
    --border-light: rgba(0, 0, 0, 0.08);
    /* Borde sutil en claro */
    --border-card: rgba(0, 0, 0, 0.12);
    /* Borde tarjeta producto */
    --border-brand: rgba(0, 0, 0, 0.08);
    /* Borde tarjeta marca */
    --border-footer: rgba(255, 255, 255, 0.07);
    /* Separador footer */
    --border-footer-social: rgba(255, 255, 255, 0.15);
    /* Borde redes sociales */
    --border-footer-trust: rgba(255, 255, 255, 0.10);
    /* Borde badges confianza */
    --border-pay: rgba(255, 255, 255, 0.10);
    /* Borde íconos de pago */
    --border-swiper-nav: rgba(255, 255, 255, 0.30);
    /* Borde botón swiper nav */
    --border-footer-pill: rgba(255, 255, 255, 0.10);
    /* Borde pills categorías footer */
    --border-newsletter: rgba(255, 255, 255, 0.30);
    /* Borde input newsletter */

    /* ── Textos sobre fondos oscuros ── */
    --text-on-dark: rgba(255, 255, 255, 0.75);
    /* Texto general sobre negro */
    --text-on-dark-muted: rgba(255, 255, 255, 0.45);
    /* Texto apagado sobre negro */
    --text-on-dark-faint: rgba(255, 255, 255, 0.25);
    /* Texto muy tenue sobre negro */
    --text-on-dark-hint: rgba(255, 255, 255, 0.20);
    /* Texto casi invisible */
    --text-on-dark-mid: rgba(255, 255, 255, 0.50);
    /* Texto medio sobre negro */
    --text-on-dark-strong: rgba(255, 255, 255, 0.60);
    /* Texto fuerte sobre negro */
    --text-slide-desc: rgba(255, 255, 255, 0.65);
    /* Descripción slide hero */
    --text-cat-p: rgba(255, 255, 255, 0.70);
    /* Párrafo categorías */

    /* ── Sombras ── */
    --shadow-header: rgba(0, 0, 0, 0.08);
    /* Sombra header al scroll */
    --shadow-brand-card: rgba(0, 0, 0, 0.07);
    /* Sombra tarjeta marca */

    /* ── Newsletter input ── */
    --newsletter-input-bg: rgba(255, 255, 255, 0.12);
    /* Fondo input */
    --newsletter-input-bg-focus: rgba(255, 255, 255, 0.18);
    /* Fondo input al focus */
    --newsletter-placeholder: rgba(255, 255, 255, 0.45);
    /* Placeholder */

    /* ── Instagram hover ── */
    --instagram-overlay: rgba(255, 255, 255, 0.90);
    /* Overlay hover Instagram */

    /* ── Línea decorativa dorada ── */
    --gold-line-start: transparent;
    --gold-line-mid: rgba(200, 169, 110, 0.60);
    --gold-line-fade: rgba(200, 169, 110, 0.30);

    /* ── Tipografías ── */
    --font-display: 'Cormorant Garamond', serif;
    --font-body: 'Jost', sans-serif;
    --font-brand: 'Ubuntu', sans-serif;

    --sand: #E8DDD0;
    --radius: 4px;
    --sans: 'DM Sans', sans-serif;
}

/* UX refinements: configurable primary color, cart drawer, and tighter mobile layouts */
:root {
    --vf-neon: var(--fx-neon);
    --vf-panel: color-mix(in srgb, var(--fx-neon) 10%, #ffffff);
}

.product-card__image-link {
    display: block;
    width: 100%;
    height: 100%;
}

.product-card__image-link img {
    display: block;
}

.vf-drawer-open {
    overflow: hidden;
}

.vf-cart-drawer {
    position: fixed;
    inset: 0;
    z-index: 1100;
    pointer-events: none;
}

.vf-cart-drawer__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(5, 7, 10, .42);
    opacity: 0;
    transition: opacity .24s ease;
}

.vf-cart-drawer__panel {
    position: absolute;
    top: 0;
    right: 0;
    display: grid;
    grid-template-rows: auto 1fr auto auto;
    width: min(420px, 100%);
    height: 100%;
    background: var(--fx-surface);
    color: var(--fx-ink);
    box-shadow: -24px 0 70px rgba(15, 23, 42, .22);
    transform: translateX(102%);
    transition: transform .28s ease;
}

.vf-cart-drawer.is-open {
    pointer-events: auto;
}

.vf-cart-drawer.is-open .vf-cart-drawer__backdrop {
    opacity: 1;
}

.vf-cart-drawer.is-open .vf-cart-drawer__panel {
    transform: translateX(0);
}

.vf-cart-drawer__head,
.vf-cart-drawer__total,
.vf-cart-drawer__actions {
    padding: 18px;
}

.vf-cart-drawer__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--fx-line);
}

.vf-cart-drawer__head div {
    display: grid;
    gap: 2px;
}

.vf-cart-drawer__head strong {
    font-size: 20px;
}

.vf-cart-drawer__head span,
.vf-cart-drawer__item span,
.vf-cart-drawer__empty span {
    color: var(--fx-muted);
    font-size: 13px;
}

.vf-cart-drawer__head button {
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    background: var(--vf-panel);
    color: var(--fx-ink);
    font-size: 24px;
}

.vf-cart-drawer__items {
    display: grid;
    align-content: start;
    gap: 12px;
    overflow: auto;
    padding: 16px 18px;
}

.vf-cart-drawer__item {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    gap: 12px;
    border: 1px solid var(--fx-line);
    border-radius: 18px;
    background: #fff;
    padding: 10px;
}

.vf-cart-drawer__item img {
    width: 74px;
    height: 88px;
    border-radius: 14px;
    object-fit: cover;
    object-position: top;
}

.vf-cart-drawer__item div {
    display: grid;
    align-content: center;
    gap: 4px;
    min-width: 0;
}

.vf-cart-drawer__item a {
    color: var(--fx-ink);
    font-weight: 850;
    text-decoration: none;
}

.vf-cart-drawer__item strong {
    color: var(--fx-ink);
}

.vf-cart-drawer__total {
    display: flex;
    justify-content: space-between;
    border-top: 1px solid var(--fx-line);
    font-size: 18px;
}

.vf-cart-drawer__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding-top: 0;
}

.vf-cart-drawer__empty,
.vf-cart-drawer__loading {
    display: grid;
    place-items: center;
    align-content: center;
    gap: 10px;
    min-height: 280px;
    padding: 28px;
    text-align: center;
}

.vf-cart-drawer__empty i {
    display: inline-grid;
    place-items: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--vf-panel);
    color: var(--fx-ink);
    font-size: 26px;
}

.fx-trust-card,
.fx-trust-card.dark,
.checkout-summary.fx-summary-card {
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--fx-neon) 10%, #ffffff), #ffffff 58%),
        var(--fx-surface);
}

.vf-install-toast {
    border-color: color-mix(in srgb, var(--fx-neon) 42%, transparent);
}

.vf-install-toast button,
.vf-bottom-nav a.is-active {
    background: var(--fx-neon);
}

@media (max-width: 768px) {
    .vf-cart-drawer__panel {
        width: 100%;
        border-radius: 22px 22px 0 0;
    }

    .vf-cart-drawer__actions {
        padding-bottom: calc(18px + env(safe-area-inset-bottom));
    }

    .product-card__actions {
        opacity: 1;
        transform: none;
    }

    .fx-qty-form {
        gap: 10px;
    }

    .fx-qty-form .form-select,
    .fx-qty-form .form-control,
    .fx-qty-form .fx-button-secondary {
        width: 100%;
        min-width: 0;
    }
}


/* ══════════════════════════════
   RESET
══════════════════════════════ */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: var(--font-body);
    font-weight: 300;
    background: var(--white);
    color: var(--dark);
    overflow-x: hidden;
}

ul,
ol {
    list-style: none;
    padding: 0;
    margin: 0;
}

a {
    text-decoration: none;
    color: var(--primary)
}


/* ══════════════════════════════
   ANNOUNCEMENT BAR
══════════════════════════════ */
.announcement-bar {
    background: var(--dark);
    color: var(--text-on-dark);
    text-align: center;
    padding: 9px 16px;
    font-size: 12px;
    letter-spacing: 0.1em;
    font-weight: 300;
}

.announcement-bar strong {
    color: var(--accent-gold-light);
    font-weight: 500;
    letter-spacing: 0.12em;
}


/* ══════════════════════════════
   HEADER
══════════════════════════════ */
.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: var(--white);
    border-bottom: 1px solid var(--border-light);
    transition: box-shadow 0.3s;
}

.site-header.scrolled {
    box-shadow: 0 2px 24px var(--shadow-header);
}

.header-inner {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    padding: 0 40px;
    height: 72px;
}

.header-logo {
    font-family: var(--font-brand);
    font-weight: 700;
    font-style: italic;
    font-size: 26px;
    color: var(--dark);
    white-space: nowrap;
}

.header-logo span {
    color: var(--primary);
}

.header-logo:hover {
    color: var(--dark);
}

.header-nav {
    display: flex;
    align-items: center;
    gap: 36px;
}

.header-nav a {
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--dark);
    position: relative;
    padding-bottom: 3px;
    transition: color 0.2s;
}

.header-nav a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: var(--primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
}

.header-nav a:hover,
.header-nav a.active {
    color: var(--primary);
}

.header-nav a:hover::after,
.header-nav a.active::after {
    transform: scaleX(1);
}

.header-icons {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 20px;
}

.header-icons a,
.header-icons button {
    background: none;
    border: none;
    color: var(--dark);
    font-size: 16px;
    cursor: pointer;
    padding: 4px;
    transition: color 0.2s;
    position: relative;
}

.header-icons a:hover,
.header-icons button:hover {
    color: var(--primary);
}

.cart-count {
    position: absolute;
    top: -4px;
    right: -6px;
    background: var(--primary);
    color: var(--white);
    font-size: 9px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 500;
}

/* Hamburger */
.hamburger {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
}

.hamburger span {
    display: block;
    width: 22px;
    height: 1.5px;
    background: var(--dark);
    transition: all 0.3s;
}

.hamburger.open span:nth-child(1) {
    transform: rotate(45deg) translate(5px, 5px);
}

.hamburger.open span:nth-child(2) {
    opacity: 0;
}

.hamburger.open span:nth-child(3) {
    transform: rotate(-45deg) translate(5px, -5px);
}

/* Mobile menu */
.mobile-menu {
    position: fixed;
    inset: 0;
    background: var(--white);
    z-index: 999;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 32px;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-20px);

    transition: all 0.3s ease;
}

.mobile-menu.open {
    opacity: 1;
    visibility: visible;
    pointer-events: all;
    transform: translateY(0);
}

.mobile-menu a {
    font-family: var(--font-display);
    font-size: 42px;
    font-weight: 400;
    color: var(--dark);
    letter-spacing: 0.02em;
    transition: color 0.2s;
}

.mobile-menu a:hover {
    color: var(--primary);
    font-style: italic;
}

.mobile-menu-close {
    position: absolute;
    top: 24px;
    right: 40px;
    background: none;
    border: none;
    font-size: 28px;
    cursor: pointer;
    color: var(--dark);
}


/* ══════════════════════════════
   HERO SWIPER
══════════════════════════════ */
.hero-wrap {
    position: relative;
}

.hero-swiper {
    width: 100%;
    height: 92vh;
    min-height: 560px;
}

.hero-swiper swiper-slide {
    position: relative;
    overflow: hidden;
}

.hero-swiper swiper-slide img.slide-bg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
    transform: scale(1.06);
    transition: transform 7s ease;
}

.hero-swiper swiper-slide.swiper-slide-active img.slide-bg {
    transform: scale(1);
}

.slide-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg,
            var(--overlay-hero-start) 0%,
            var(--overlay-hero-mid) 50%,
            var(--overlay-hero-end) 100%);
    z-index: 1;
}

.slide-vline {
    position: absolute;
    left: 5%;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 130px;
    background: var(--border-swiper-nav);
    z-index: 3;
}

.slide-content {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    padding: 0 8% 100px;
}

.slide-inner {
    max-width: 600px;
}

.slide-tag,
.slide-title,
.slide-desc,
.slide-actions,
.price-badge {
    opacity: 0;
    transform: translateY(22px);
}

.hero-swiper swiper-slide.swiper-slide-active .slide-tag {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.6s ease 0.1s, transform 0.6s ease 0.1s;
}

.hero-swiper swiper-slide.swiper-slide-active .slide-title {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.7s ease 0.28s, transform 0.7s ease 0.28s;
}

.hero-swiper swiper-slide.swiper-slide-active .slide-desc {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.6s ease 0.45s, transform 0.6s ease 0.45s;
}

.hero-swiper swiper-slide.swiper-slide-active .slide-actions {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.6s ease 0.6s, transform 0.6s ease 0.6s;
}

.hero-swiper swiper-slide.swiper-slide-active .price-badge {
    opacity: 1;
    transform: translateY(-50%) scale(1);
    transition: opacity 0.5s ease 0.75s, transform 0.5s ease 0.75s;
}

.slide-tag {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--accent-gold-light);
    margin-bottom: 16px;
}

.slide-tag::before {
    content: '';
    display: block;
    width: 36px;
    height: 1px;
    background: var(--accent-gold);
    flex-shrink: 0;
}

.slide-title {
    font-family: var(--font-display);
    font-size: clamp(48px, 7vw, 96px);
    font-weight: 600;
    line-height: 1;
    color: var(--white);
    margin-bottom: 20px;
}

.slide-title em {
    font-style: italic;
    color: var(--accent-gold-light);
}

.slide-desc {
    font-size: 14px;
    font-weight: 300;
    line-height: 1.9;
    color: var(--text-slide-desc);
    max-width: 400px;
    margin-bottom: 36px;
}

.slide-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.btn-hero-primary {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 15px 34px;
    background: var(--primary);
    color: var(--white);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    border: 1px solid var(--primary);
    transition: background 0.3s, border-color 0.3s;
}

.btn-hero-primary:hover {
    background: var(--primary-light);
    border-color: var(--primary-light);
    color: var(--white);
}

.btn-hero-outline {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 15px 34px;
    background: transparent;
    color: var(--white);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    border: 1px solid var(--border-swiper-nav);
    transition: border-color 0.3s, background 0.3s;
}

.btn-hero-outline:hover {
    border-color: var(--white);
    background: var(--newsletter-input-bg);
    color: var(--white);
}

.price-badge {
    position: absolute;
    right: 8%;
    top: 50%;
    transform: translateY(-50%) scale(0.85);
    z-index: 3;
    width: 118px;
    height: 118px;
    border-radius: 50%;
    background: var(--primary);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    cursor: pointer;
    transition: transform 0.25s;
}

.price-badge:hover {
    transform: translateY(-50%) scale(1.06) !important;
}

.price-badge .from {
    font-size: 9px;
    font-weight: 300;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--text-on-dark-strong);
}

.price-badge .amount {
    font-family: var(--font-display);
    font-size: 34px;
    font-weight: 700;
    color: var(--white);
    line-height: 1;
}

.price-badge .shop {
    font-size: 8px;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--text-on-dark-strong);
}

.swiper-nav {
    position: absolute;
    bottom: 36px;
    left: 8%;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 10px;
}

.swiper-btn {
    width: 46px;
    height: 46px;
    border: 1px solid var(--border-swiper-nav);
    background: transparent;
    color: var(--white);
    font-size: 17px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.3s, background 0.3s;
}

.swiper-btn:hover {
    border-color: var(--accent-gold);
    background: var(--accent-gold-overlay);
}

.swiper-fraction {
    position: absolute;
    bottom: 44px;
    right: 8%;
    z-index: 10;
    font-family: var(--font-display);
    color: var(--text-on-dark-mid);
    font-size: 20px;
    display: flex;
    align-items: baseline;
    gap: 5px;
}

.swiper-fraction .current {
    font-size: 38px;
    font-weight: 600;
    color: var(--white);
}

.swiper-fraction .sep {
    opacity: 0.4;
}

.swiper-progress {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 3px;
    background: var(--newsletter-input-bg);
    width: 100%;
    z-index: 10;
}

.swiper-progress-bar {
    height: 100%;
    background: var(--primary);
    width: 0%;
}


/* ══════════════════════════════
   CATEGORIES
══════════════════════════════ */
.categories {
    overflow: hidden;
    margin-top: 10px;
}

.categories__item {
    height: 320px;
    display: flex;
    align-items: flex-end;
    padding: 30px;
    margin-bottom: 10px;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    position: relative;
    overflow: hidden;
}

.categories__item::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top,
            var(--overlay-cat-bottom) 0%,
            var(--overlay-cat-top) 60%);
    transition: opacity 0.3s;
}

.categories__item:hover::before {
    background: linear-gradient(to top,
            rgba(0, 0, 0, 0.75) 0%,
            var(--overlay-cat-hover) 60%);
}

.categories__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    inset: 0;
    transition: transform 0.6s ease;
}

.categories__item:hover img {
    transform: scale(1.04);
}

.categories__large__item {
    height: 650px;
    align-items: flex-end;
    padding: 48px;
}

.categories__text {
    position: relative;
    z-index: 1;
}

.categories__text h1 {
    font-family: var(--font-display);
    font-size: 40px;
    font-weight: 600;
    color: var(--white);
    line-height: 1.1;
    margin-bottom: 8px;
}

.categories__text h4 {
    font-family: var(--font-display);
    font-size: 24px;
    font-weight: 600;
    color: var(--white);
    margin-bottom: 4px;
}

.categories__text p {
    font-size: 13px;
    color: var(--text-cat-p);
    margin-bottom: 16px;
    max-width: 360px;
}

.btn-cat {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 22px;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--white);
    border: 1px solid var(--border-swiper-nav);
    transition: background 0.3s, border-color 0.3s;
}

.btn-cat:hover {
    background: var(--primary);
    border-color: var(--primary);
    color: var(--white);
}


/* ══════════════════════════════
   NEW PRODUCTS
══════════════════════════════ */
.new-products,
.all-products,
.brands-counter-section {
    padding: 40px;
}

.brands-counter-section {
    background: var(--primary);
}

.section-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 48px;
    gap: 16px;
    flex-wrap: wrap;
}

.section-title-wrap h2 {
    font-family: var(--font-display);
    font-size: 40px;
    font-weight: 600;
    color: var(--dark);
    line-height: 1;
    margin-bottom: 6px;
}

.section-title-wrap h2 em {
    font-style: italic;
    color: var(--primary);
}

.section-title-wrap p {
    font-size: 13px;
    color: var(--mid);
    font-weight: 300;
}

.section-link {
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--dark);
    display: flex;
    align-items: center;
    gap: 8px;
    border-bottom: 1px solid var(--dark);
    padding-bottom: 2px;
    transition: color 0.2s, border-color 0.2s;
    white-space: nowrap;
}

.section-link:hover {
    color: var(--primary);
    border-color: var(--primary);
}

.products-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.all-products-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 24px;
}

.product-card {
    cursor: pointer;
}

.product-card__img {
    position: relative;
    height: 380px;
    overflow: hidden;
    background: var(--light);
    margin-bottom: 16px;
}

.product-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    transition: transform 0.6s ease;
}

.product-card:hover .product-card__img img {
    transform: scale(1.05);
}

.product-card__badge {
    position: absolute;
    top: 12px;
    left: 12px;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 4px 10px;
    color: var(--white);
    z-index: 1;
}

.product-card__badge.new {
    background: var(--success);
}

/* =========================================================
   FINTECH STOREFRONT REFRESH
   ========================================================= */
:root {
    --fx-bg: #f4f7fb;
    --fx-surface: #ffffff;
    --fx-ink: #05070a;
    --fx-muted: #697386;
    --fx-line: #e4e9f2;
    --fx-neon: var(--primary, #000000);
    --fx-neon-dark: var(--primary-light, #17d20c);
    --fx-panel: #0a0f12;
    --fx-radius: 12px;
    --fx-shadow: 0 18px 45px rgba(15, 23, 42, .08);
    --font-body: 'DM Sans', sans-serif;
    --font-display: 'DM Sans', sans-serif;
}

body {
    background: var(--fx-bg);
    color: var(--fx-ink);
    font-family: var(--font-body);
    font-weight: 400;
}

.announcement-bar {
    display: none;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    border-bottom: 1px solid var(--fx-line);
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(18px);
}

.header-inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    height: 62px;
    padding: 0 clamp(16px, 4vw, 54px);
    gap: 28px;
}

.header-logo,
.footer-brand__logo {
    color: var(--fx-ink);
    font-family: var(--font-body);
    font-size: 18px;
    font-style: normal;
    font-weight: 900;
    letter-spacing: -.04em;
    text-transform: uppercase;
}

.site-header {
    background: color-mix(in srgb, var(--fx-surface) 94%, transparent);
}

.header-nav {
    display: flex;
    justify-content: center;
    gap: clamp(20px, 4vw, 46px);
}

.header-nav a,
.mobile-menu a {
    color: #111827;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: none;
}

.header-nav a.active,
.header-nav a:hover {
    color: var(--fx-ink);
}

.header-nav a.active::after {
    background: var(--fx-neon);
}

.header-icons {
    gap: 18px;
}

.search-btn,
.cart-btn {
    color: var(--fx-ink);
}

.cart-count {
    background: var(--fx-neon);
    color: var(--fx-ink);
    font-weight: 900;
}

.hamburger span,
.mobile-menu-close {
    background: var(--fx-ink);
}

.mobile-menu {
    background: var(--fx-surface);
}

.fx-container {
    width: min(1180px, calc(100% - 32px));
    margin-inline: auto;
}

.fx-section {
    padding: clamp(44px, 7vw, 96px) 0;
}

.fx-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
}

.fx-eyebrow {
    color: var(--fx-muted);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.fx-title {
    margin: 4px 0 0;
    color: var(--fx-ink);
    font-size: clamp(28px, 4vw, 52px);
    font-weight: 950;
    letter-spacing: -.06em;
    line-height: .95;
}

.fx-link {
    color: var(--fx-ink);
    font-size: 12px;
    font-weight: 900;
}

.btn-hero-primary,
.fx-button-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    border: 0;
    border-radius: 999px;
    background: var(--fx-neon);
    color: var(--fx-ink);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .02em;
    padding: 12px 22px;
    text-transform: uppercase;
    transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}

.btn-hero-primary:hover,
.fx-button-primary:hover {
    background: var(--fx-neon-dark);
    color: var(--fx-ink);
    box-shadow: 0 14px 28px color-mix(in srgb, var(--fx-neon) 22%, transparent);
    transform: translateY(-1px);
}

.btn-hero-outline,
.fx-button-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    border: 1px solid var(--fx-line);
    border-radius: 999px;
    background: var(--fx-surface);
    color: var(--fx-ink) !important;
    font-size: 12px;
    font-weight: 900;
    padding: 12px 22px;
}

.fx-hero {
    padding: 24px 0 42px;
}

.fx-hero-card {
    position: relative;
    min-height: clamp(470px, 74vh, 720px);
    overflow: hidden;
    background:
        radial-gradient(circle at 75% 52%, color-mix(in srgb, var(--fx-neon) 24%, transparent), transparent 17rem),
        linear-gradient(105deg, #020606 0%, #091011 48%, #121916 100%);
}

.fx-hero-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0, 0, 0, .76), rgba(0, 0, 0, .18) 48%, rgba(0, 0, 0, .4));
}

.fx-hero-media {
    position: absolute;
    inset: 0 0 0 auto;
    width: 58%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    opacity: .9;
}

.fx-hero-content {
    position: relative;
    z-index: 2;
    width: min(520px, 88%);
    padding: clamp(56px, 10vw, 110px) clamp(24px, 7vw, 78px);
    color: #fff;
}

.fx-hero-content .fx-eyebrow {
    color: var(--fx-neon);
}

.fx-hero-title {
    margin: 14px 0 16px;
    color: #fff;
    font-size: clamp(42px, 8vw, 96px);
    font-weight: 950;
    letter-spacing: -.08em;
    line-height: .86;
}

.fx-hero-copy {
    max-width: 420px;
    color: rgba(255, 255, 255, .7);
    font-size: 14px;
    line-height: 1.8;
}

.fx-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 26px;
}

.fx-hero-actions .btn-hero-outline {
    border-color: rgba(255, 255, 255, .24);
    background: rgba(255, 255, 255, .06);
    color: #fff !important;
}

.fx-mosaic {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 14px;
}

.fx-mini-grid {
    display: grid;
    gap: 14px;
}

.fx-feature-card,
.fx-mini-tile {
    position: relative;
    overflow: hidden;
    border-radius: 10px;
    background: var(--fx-surface);
    box-shadow: var(--fx-shadow);
}

.fx-feature-card {
    min-height: 390px;
}

.fx-mini-tile {
    min-height: 188px;
}

.fx-feature-card img,
.fx-mini-tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fx-card-caption {
    position: absolute;
    left: 18px;
    bottom: 18px;
    color: #fff;
}

.fx-card-caption strong {
    display: block;
    font-size: 18px;
    font-weight: 950;
    letter-spacing: -.04em;
}

.products-grid,
.fx-product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 22px;
}

.product-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 420px;
    overflow: hidden;
    border: 0;
    border-radius: 10px;
    background: var(--fx-surface);
    box-shadow: 0 12px 30px rgba(15, 23, 42, .07);
}

.product-card__img {
    height: 280px;
    border-radius: 10px 10px 0 0;
    background: #101718;
}

.product-card__img img {
    position: relative;
    z-index: 0;
    object-fit: cover;
}

.product-card__badge {
    border-radius: 999px;
    background: var(--fx-neon) !important;
    color: var(--fx-ink) !important;
    font-weight: 950;
}

.product-card__badge.sold-out {
    background: #111827 !important;
    color: #fff !important;
}

.product-card__info {
    position: relative;
    z-index: 2;
    padding: 18px;
}

.product-card__name {
    display: block;
    color: var(--fx-ink);
    font-size: 16px;
    font-weight: 950;
    letter-spacing: -.04em;
}

.product-card__brand {
    color: var(--fx-muted);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.product-card__rating {
    display: none;
}

.price-current {
    color: var(--fx-ink);
    font-size: 18px;
    font-weight: 950;
}

.product-card__actions {
    background: transparent;
    bottom: 12px;
    justify-content: flex-end;
    padding-right: 14px;
    transform: none;
}

.action-btn {
    border: 0;
    background: #fff;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .12);
}

.action-btn:hover {
    background: var(--fx-neon);
    color: var(--fx-ink);
}

.product-colors,
.product-sizes {
    gap: 7px;
}

.color-dot {
    width: 16px;
    height: 16px;
    border: 1px solid rgba(0, 0, 0, .16);
}

.size-btn {
    border-radius: 999px;
    width: auto;
    min-width: 28px;
    padding: 0 8px;
}

.page-hero {
    background: transparent;
    padding: 42px 0 22px;
}

.page-hero-inner {
    width: min(1180px, calc(100% - 32px));
    margin-inline: auto;
}

.page-hero h1 {
    color: var(--fx-ink);
    font-size: clamp(36px, 5vw, 70px);
    font-weight: 950;
    letter-spacing: -.07em;
}

.page-hero h1 em {
    color: var(--fx-ink);
    font-style: normal;
}

.page-hero p,
.breadcrumb-nav {
    color: var(--fx-muted);
}

.category-section {
    padding: 24px 0 70px;
}

.sidebar,
.checkout-panel,
.checkout-summary,
.cart-panel,
.fx-panel-card {
    border: 1px solid var(--fx-line);
    border-radius: 12px;
    background: var(--fx-surface);
    box-shadow: var(--fx-shadow);
}

.sidebar {
    position: sticky;
    top: 86px;
    padding: 20px;
}

.shop-toolbar {
    border: 0;
    background: transparent;
    color: var(--fx-muted);
    font-weight: 700;
}

.form-control,
.form-select,
.coupon-form input {
    min-height: 44px;
    border: 1px solid var(--fx-line);
    border-radius: 8px;
    background-color: #f8fafc;
    color: var(--fx-ink);
    font-size: 13px;
}

.form-control:focus,
.form-select:focus,
.coupon-form input:focus {
    border-color: var(--fx-neon);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--fx-neon) 18%, transparent);
}

.filter-pill,
.filter-color-option,
.variant-chip,
.variant-color-option,
.size-chip {
    border-radius: 999px;
    background: #fff;
}

.filter-pill.active,
.filter-pill:has(input:checked),
.filter-color-option:has(input:checked),
.variant-chip.active,
.variant-color-option.active,
.size-chip.active,
.size-chip:has(input:checked) {
    border-color: var(--fx-ink);
    background: var(--fx-ink);
    color: #fff;
}

.filter-color-grid {
    gap: 10px;
}

.filter-color-option {
    width: 32px;
    min-height: 32px;
    border-radius: 50%;
    padding: 3px;
}

.filter-color-option span:last-child {
    display: none;
}

.filter-color-swatch {
    width: 100%;
    height: 100%;
    border-width: 0;
}

.product-gallery-main {
    border-radius: 12px;
    background: #eef2f7;
}

.product-gallery-thumbs {
    grid-template-columns: 80px;
    position: absolute;
    z-index: 2;
    margin: 14px;
}

.variant-summary,
.coupon-applied,
.coupon-form {
    border-color: var(--fx-line);
    background: #f8fafc;
}

.site-footer {
    background: #080b0f;
    color: rgba(255, 255, 255, .72);
}

.footer-newsletter {
    display: none;
}

.footer-bottom,
.footer-top,
.footer-categories {
    border-color: rgba(255, 255, 255, .08);
}

@media (max-width: 991px) {
    .header-nav {
        display: none;
    }

    .header-inner {
        grid-template-columns: 1fr auto;
    }

    .fx-hero-media {
        width: 100%;
        opacity: .42;
    }

    .fx-mosaic {
        grid-template-columns: 1fr;
    }

    .sidebar,
    .checkout-summary {
        position: static;
    }
}

@media (max-width: 640px) {
    .fx-container {
        width: min(100% - 20px, 1180px);
    }

    .fx-hero-card {
        min-height: 560px;
    }

    .fx-hero-content {
        width: 100%;
        padding: 46px 22px;
    }

    .products-grid,
    .fx-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .product-card__img {
        height: 210px;
    }
}

.product-card__badge.sold-out {
    background: var(--dark);
}

.product-card__badge.low-stock {
    background: #c47a20;
}

.product-card__badge.sale {
    background: var(--primary);
}

.product-detail-badge {
    position: static;
    display: inline-flex;
    margin-bottom: 12px;
}

.product-card.is-sold-out .product-card__img img {
    opacity: .58;
    filter: grayscale(.35);
}

.product-card.is-sold-out .product-card__actions {
    transform: translateY(0);
}

.product-card__actions {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    gap: 8px;
    padding: 14px;
    background: var(--overlay-actions);
    transform: translateY(100%);
    transition: transform 0.35s ease;
}

.product-card__actions form {
    margin: 0;
}

.product-card:hover .product-card__actions {
    transform: translateY(0);
}

.action-btn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid var(--border-card);
    background: var(--white);
    color: var(--dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    cursor: pointer;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.action-btn:hover {
    background: var(--primary);
    color: var(--white);
    border-color: var(--primary);
}

.action-btn:disabled,
.btn-hero-primary:disabled {
    cursor: not-allowed;
    opacity: .55;
}

.action-btn:disabled:hover {
    background: var(--white);
    color: var(--dark);
    border-color: var(--border-card);
}

.btn-hero-primary:disabled:hover {
    background: var(--primary);
    color: var(--white);
    transform: none;
}

.product-card__info {
    padding: 0 2px;
}

.product-card__name {
    font-size: 14px;
    font-weight: 400;
    color: var(--dark);
    margin-bottom: 6px;
    transition: color 0.2s;
}

.product-card:hover .product-card__name {
    color: var(--primary);
}

.product-card__rating {
    display: flex;
    gap: 2px;
    margin-bottom: 8px;
}

.product-card__rating i {
    font-size: 10px;
    color: var(--rating);
}

.product-card__price {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 10px;
}

.price-current {
    font-size: 17px;
    font-weight: 500;
    color: var(--primary);
}

.price-old {
    font-size: 13px;
    color: var(--mid);
    text-decoration: line-through;
}

.product-card__stock {
    margin: -2px 0 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.product-card__stock.sold-out {
    color: var(--dark);
}

.product-card__stock.low-stock {
    color: #b86812;
}

.product-card__meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.product-colors {
    display: flex;
    gap: 5px;
}

.color-dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    cursor: pointer;
    border: 2px solid transparent;
    display: inline-block;
    padding: 0;
    transition: border-color 0.2s;
}

.color-dot:hover,
.color-dot.active {
    border-color: var(--dark);
}

.color-dot:disabled {
    cursor: not-allowed;
    opacity: .32;
}

.color-dot.is-unavailable {
    position: relative;
}

.color-dot.is-unavailable::after {
    content: "";
    position: absolute;
    left: -2px;
    right: -2px;
    top: 50%;
    height: 1px;
    background: #9b1c1c;
    transform: rotate(-35deg);
}

.product-sizes {
    display: flex;
    gap: 4px;
}

.size-btn {
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.05em;
    width: 26px;
    height: 26px;
    border: 1px solid var(--border-card);
    background: none;
    color: var(--dark);
    cursor: pointer;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.size-btn:hover {
    background: var(--primary);
    color: var(--white);
    border-color: var(--primary);
}

.size-btn:disabled {
    cursor: not-allowed;
    opacity: .38;
    text-decoration: line-through;
}

.size-btn.is-unavailable {
    border-color: #e2e2e2;
    color: #777;
}

.size-btn:disabled:hover {
    background: none;
    color: var(--dark);
    border-color: var(--border-card);
}

.size-btn.active {
    background: var(--dark);
    color: var(--white);
    border-color: var(--dark);
}

.product-gallery-main {
    width: 100%;
    height: min(620px, 72vh);
    background: #f4f4f4;
    overflow: hidden;
}

.product-gallery-main img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.product-gallery-thumbs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-top: 14px;
}

.product-gallery-thumb {
    aspect-ratio: 1;
    border: 2px solid transparent;
    border-radius: 6px;
    background: #f4f4f4;
    cursor: pointer;
    overflow: hidden;
    padding: 0;
    transition: border-color .18s, transform .18s;
}

.product-gallery-thumb img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.product-gallery-thumb:hover,
.product-gallery-thumb.active {
    border-color: var(--dark);
    transform: translateY(-1px);
}

.store-filter-group {
    margin-bottom: 22px;
}

.store-filter-title {
    display: block;
    margin-bottom: 10px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--mid);
}

.filter-pills,
.filter-color-grid,
.variant-chip-grid,
.variant-color-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.filter-pill,
.filter-color-option,
.variant-chip,
.variant-color-option {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    border: 1px solid var(--border-card);
    border-radius: 6px;
    background: var(--white);
    color: var(--dark);
    cursor: pointer;
    font-size: 13px;
    line-height: 1;
    padding: 8px 10px;
    transition: border-color .18s, background .18s, color .18s, box-shadow .18s;
    appearance: none;
    -webkit-appearance: none;
}

.filter-pill.active,
.filter-pill:has(input:checked),
.filter-color-option.active,
.filter-color-option:has(input:checked),
.variant-chip.active,
.variant-color-option.active {
    border-color: var(--dark);
    background: var(--dark);
    color: var(--white);
    box-shadow: 0 8px 18px rgba(0, 0, 0, .08);
}

.filter-color-swatch,
.variant-color-swatch {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    border-radius: 50%;
    border: 2px solid var(--white);
    outline: 1px solid rgba(0, 0, 0, .14);
}

.variant-option-group {
    margin-bottom: 18px;
}

.variant-chip,
.variant-color-option {
    min-width: 48px;
}

.variant-picker .variant-chip,
.variant-picker .variant-color-option {
    border: 1px solid var(--border-card) !important;
    border-radius: 6px !important;
    background: var(--white) !important;
    color: var(--dark) !important;
    font-family: var(--sans);
    font-size: 13px !important;
    min-height: 38px;
    padding: 9px 12px !important;
}

.variant-picker .variant-chip.active,
.variant-picker .variant-color-option.active {
    border-color: var(--dark) !important;
    background: var(--dark) !important;
    color: var(--white) !important;
}

.variant-picker .is-single-option .variant-chip,
.variant-picker .is-single-option .variant-color-option {
    cursor: default;
}

.variant-chip:disabled,
.variant-color-option:disabled {
    cursor: not-allowed;
    opacity: .42;
    text-decoration: line-through;
}

.variant-chip.is-unavailable,
.variant-color-option.is-unavailable {
    position: relative;
}

.variant-chip.is-unavailable::after,
.variant-color-option.is-unavailable::after {
    content: "Agotado";
    display: inline-flex;
    margin-left: 6px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #9b1c1c;
    text-decoration: none;
}

.variant-picker .variant-chip.is-unavailable,
.variant-picker .variant-color-option.is-unavailable {
    background: #f7f7f7 !important;
    border-color: #e2e2e2 !important;
    color: #777 !important;
    box-shadow: none !important;
}

.variant-summary,
.coupon-applied,
.coupon-form {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid var(--border-card);
    border-radius: 8px;
    background: #fafafa;
    padding: 12px;
    margin-bottom: 16px;
}

.stock-status {
    font-size: 13px;
    font-weight: 600;
}

.stock-status.available {
    color: #157347;
}

.stock-status.low-stock {
    color: #b86812;
}

.stock-status.sold-out {
    color: #9b1c1c;
}

.stock-status.pending {
    color: var(--mid);
}

.coupon-form input {
    flex: 1;
    min-width: 0;
    border: 1px solid var(--border-card);
    border-radius: 6px;
    padding: 10px 12px;
}

.coupon-form button,
.coupon-applied button {
    border: 0;
    border-radius: 6px;
    background: var(--dark);
    color: var(--white);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    padding: 10px 14px;
    text-transform: uppercase;
}

.checkout-panel,
.checkout-summary {
    border: 1px solid var(--border-card);
    border-radius: 8px;
    background: var(--white);
    padding: 24px;
}

.checkout-summary {
    position: sticky;
    top: 92px;
}

.checkout-section-head {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 18px;
}

.checkout-section-head>span {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--dark);
    color: var(--white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    flex: 0 0 28px;
}

.checkout-section-head h4 {
    margin: 0;
    font-size: 18px;
}

.checkout-section-head p {
    margin: 3px 0 0;
    color: var(--mid);
    font-size: 13px;
}

.checkout-item {
    display: grid;
    grid-template-columns: 58px 1fr auto;
    gap: 12px;
    align-items: center;
    border-bottom: 1px solid var(--border-card);
    padding: 12px 0;
}

.checkout-item img {
    width: 58px;
    height: 72px;
    object-fit: cover;
    border-radius: 6px;
    background: var(--light);
}

.checkout-item__body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.checkout-item__body strong {
    font-size: 14px;
    color: var(--dark);
}

.checkout-total-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 10px;
    font-size: 14px;
}

.checkout-total-final {
    font-size: 18px;
    color: var(--dark);
}


/* ══════════════════════════════
   BRANDS SECTION
══════════════════════════════ */
.brands-section {
    background: var(--light);
    padding: 80px 0;
    overflow: hidden;
    position: relative;
}

.brands-section::before,
.brands-section::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg,
            var(--gold-line-start) 0%,
            var(--gold-line-fade) 20%,
            var(--gold-line-mid) 50%,
            var(--gold-line-fade) 80%,
            var(--gold-line-start) 100%);
}

.brands-section::before {
    top: 0;
}

.brands-section::after {
    bottom: 0;
}

.brands-header {
    text-align: center;
    margin-bottom: 56px;
    padding: 0 24px;
}

.brands-header__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--accent-gold);
    margin-bottom: 14px;
}

.brands-header__eyebrow::before,
.brands-header__eyebrow::after {
    content: '';
    display: block;
    width: 40px;
    height: 1px;
    background: var(--accent-gold);
    opacity: 0.5;
}

.brands-header h2 {
    font-family: var(--font-display);
    font-size: clamp(32px, 4vw, 48px);
    font-weight: 600;
    color: var(--dark);
    line-height: 1;
    margin-bottom: 10px;
}

.brands-header h2 em {
    font-style: italic;
    color: var(--primary);
}

.brands-header p {
    font-size: 13px;
    font-weight: 300;
    color: var(--muted);
    letter-spacing: 0.04em;
}

.brands-swiper-wrap {
    position: relative;
}

.brands-swiper-wrap::before,
.brands-swiper-wrap::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 140px;
    z-index: 2;
    pointer-events: none;
}

.brands-swiper-wrap::before {
    left: 0;
    background: linear-gradient(to right, var(--light) 0%, transparent 100%);
}

.brands-swiper-wrap::after {
    right: 0;
    background: linear-gradient(to left, var(--light) 0%, transparent 100%);
}

.brands-swiper {
    width: 100%;
    padding: 16px 0 !important;
}

.brands-swiper-2 {
    width: 100%;
    padding: 0 0 16px !important;
}

.brands-swiper swiper-slide,
.brands-swiper-2 swiper-slide {
    width: auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

.brand-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 24px 40px;
    border: 1px solid var(--border-brand);
    background: var(--white);
    cursor: pointer;
    transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s;
    position: relative;
    overflow: hidden;
    min-width: 180px;
}

.brand-item::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--primary);
    transform: scaleX(0);
    transition: transform 0.35s ease;
}

.brand-item:hover {
    border-color: var(--primary-bg);
    box-shadow: 0 8px 32px var(--shadow-brand-card);
    transform: translateY(-3px);
}

.brand-item:hover::before {
    transform: scaleX(1);
}

.brand-logo {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--border-cat, rgba(0, 0, 0, 0.25));
    letter-spacing: 0.06em;
    text-transform: uppercase;
    transition: color 0.3s;
    white-space: nowrap;
    line-height: 1;
}

.brand-item:hover .brand-logo {
    color: var(--dark);
}

.brand-tag {
    font-size: 9px;
    font-weight: 400;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(0, 0, 0, 0.2);
    transition: color 0.3s;
}

.brand-item:hover .brand-tag {
    color: var(--primary);
}

.brand-item img {
    height: 36px;
    width: auto;
    max-width: 140px;
    object-fit: contain;
    filter: grayscale(1) opacity(0.35);
    transition: filter 0.35s;
}

.brand-item:hover img {
    filter: grayscale(0) opacity(1);
}

.brands-counter {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 48px;
    padding: 0 24px;
    flex-wrap: wrap;
}

.counter-item {
    text-align: center;
}

.counter-item .num {
    font-family: var(--font-display);
    font-size: 48px;
    font-weight: 600;
    color: var(--white);
    line-height: 1;
    display: block;
}

.counter-item .num span {
    color: var(--white);
}

.counter-item .label {
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--white);
    margin-top: 4px;
    display: block;
}

.counter-divider {
    width: 1px;
    height: 48px;
    background: var(--white);
}


/* ══════════════════════════════
   INSTAGRAM
══════════════════════════════ */
.instagram__item {
    background-repeat: no-repeat;
    background-size: cover;
    height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 1;
}

.instagram__item:hover::after {
    opacity: 1;
}

.instagram__item:hover .instagram__text {
    opacity: 1;
    visibility: visible;
}

.instagram__item::after {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 100%;
    background: var(--instagram-overlay);
    content: "";
    opacity: 0;
    z-index: -1;
    transition: all 0.3s;
}

.instagram__text {
    text-align: center;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s;
}

.instagram__text i {
    font-size: 30px;
    color: var(--dark);
}

.instagram__text a {
    font-size: 16px;
    font-weight: 500;
    color: var(--dark);
    display: block;
    margin-top: 10px;
}


/* ══════════════════════════════
   NEWSLETTER BAND
══════════════════════════════ */
.footer-newsletter {
    background: var(--primary);
    padding: 60px 80px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    flex-wrap: wrap;
}

.newsletter-copy h3 {
    font-family: var(--font-display);
    font-size: 36px;
    font-weight: 600;
    color: var(--white);
    line-height: 1.1;
    margin-bottom: 6px;
}

.newsletter-copy h3 em {
    font-style: italic;
    color: var(--text-on-dark-strong);
}

.newsletter-copy p {
    font-size: 13px;
    font-weight: 300;
    color: var(--text-on-dark-strong);
    letter-spacing: 0.05em;
}

.newsletter-form {
    display: flex;
    flex: 1;
    max-width: 480px;
}

.newsletter-form input {
    flex: 1;
    padding: 15px 22px;
    background: var(--newsletter-input-bg);
    border: 1px solid var(--border-newsletter);
    border-right: none;
    color: var(--white);
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 300;
    outline: none;
    transition: background 0.2s, border-color 0.2s;
}

.newsletter-form input::placeholder {
    color: var(--newsletter-placeholder);
}

.newsletter-form input:focus {
    background: var(--newsletter-input-bg-focus);
    border-color: var(--text-on-dark-strong);
}

.newsletter-form button {
    padding: 15px 28px;
    background: var(--white);
    color: var(--primary);
    font-family: var(--font-body);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    border: 1px solid var(--white);
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.25s, color 0.25s;
}

.newsletter-form button:hover {
    background: var(--dark);
    color: var(--white);
    border-color: var(--dark);
}


/* ══════════════════════════════
   MAIN FOOTER
══════════════════════════════ */
.site-footer {
    background: var(--dark);
    color: var(--white);
    padding: 80px 80px 0;
}

.footer-top {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 60px;
    padding-bottom: 64px;
    border-bottom: 1px solid var(--border-footer);
}

.footer-brand__logo {
    font-family: var(--font-brand);
    font-weight: 700;
    font-style: italic;
    font-size: 30px;
    color: var(--white);
    display: block;
    margin-bottom: 20px;
}

.footer-brand__logo span {
    color: var(--primary);
}

.footer-brand__desc {
    font-size: 13px;
    font-weight: 300;
    line-height: 1.9;
    color: var(--text-on-dark-muted);
    margin-bottom: 28px;
    max-width: 280px;
}

.footer-socials {
    display: flex;
    gap: 10px;
    margin-bottom: 36px;
}

.social-link {
    width: 38px;
    height: 38px;
    border: 1px solid var(--border-footer-social);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-on-dark-mid);
    font-size: 13px;
    transition: background 0.25s, border-color 0.25s, color 0.25s;
}

.social-link:hover {
    background: var(--primary);
    border-color: var(--primary);
    color: var(--white);
}

.footer-trust {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.trust-badge {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border: 1px solid var(--border-footer-trust);
    color: var(--text-on-dark-muted);
    font-size: 10px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 400;
}

.trust-badge i {
    color: var(--accent-gold);
    font-size: 12px;
}

.footer-col h5 {
    font-family: var(--font-body);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--accent-gold);
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.footer-col h5::after {
    content: '';
    display: block;
    flex: 1;
    height: 1px;
    background: var(--border-footer);
}

.footer-links {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.footer-links a {
    font-size: 13px;
    font-weight: 300;
    color: var(--text-on-dark-muted);
    letter-spacing: 0.02em;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: color 0.2s, gap 0.2s;
}

.footer-links a::before {
    content: '—';
    font-size: 10px;
    color: var(--text-on-dark-faint);
    transition: color 0.2s;
}

.footer-links a:hover {
    color: var(--white);
    gap: 12px;
}

.footer-links a:hover::before {
    color: var(--primary);
}

.footer-contact {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.contact-item {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.contact-item i {
    color: var(--accent-gold);
    font-size: 13px;
    margin-top: 2px;
    flex-shrink: 0;
    width: 14px;
}

.contact-item span {
    font-size: 13px;
    font-weight: 300;
    color: var(--text-on-dark-muted);
    line-height: 1.6;
}

.contact-item a {
    font-size: 13px;
    font-weight: 300;
    color: var(--text-on-dark-muted);
    transition: color 0.2s;
}

.contact-item a:hover {
    color: var(--white);
}

.footer-categories {
    padding: 48px 0;
    border-bottom: 1px solid var(--border-footer);
    display: flex;
    align-items: center;
}

.footer-cat-label {
    font-family: var(--font-display);
    font-size: 13px;
    font-weight: 400;
    font-style: italic;
    color: var(--text-on-dark-faint);
    writing-mode: vertical-rl;
    text-orientation: mixed;
    transform: rotate(180deg);
    letter-spacing: 0.15em;
    text-transform: uppercase;
    flex-shrink: 0;
    margin-right: 32px;
}

.footer-cat-list {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    flex: 1;
}

.footer-cat-pill {
    display: inline-block;
    padding: 8px 20px;
    border: 1px solid var(--border-footer-pill);
    color: var(--text-on-dark-muted);
    font-size: 11px;
    font-weight: 300;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    transition: border-color 0.25s, color 0.25s, background 0.25s;
}

.footer-cat-pill:hover {
    border-color: var(--accent-gold);
    color: var(--accent-gold);
    background: var(--accent-gold-bg);
}

.footer-cat-pill.featured {
    border-color: var(--primary);
    color: var(--primary);
    background: var(--primary-bg);
}

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 22px 0;
    gap: 20px;
    flex-wrap: wrap;
}

.footer-bottom__copy {
    font-size: 12px;
    font-weight: 300;
    color: var(--text-on-dark-faint);
    letter-spacing: 0.05em;
}

.footer-bottom__copy span {
    color: var(--accent-gold);
}

.footer-bottom__payments {
    display: flex;
    align-items: center;
    gap: 10px;
}

.footer-bottom__payments span {
    font-size: 10px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--text-on-dark-hint);
    margin-right: 6px;
}

.pay-icon {
    padding: 5px 10px;
    border: 1px solid var(--border-pay);
    font-size: 20px;
    color: var(--text-on-dark-muted);
    transition: color 0.2s, border-color 0.2s;
    display: flex;
    align-items: center;
}

.pay-icon:hover {
    color: var(--text-on-dark-strong);
    border-color: var(--border-swiper-nav);
}

.footer-bottom__legal {
    display: flex;
    gap: 20px;
}

.footer-bottom__legal a {
    font-size: 11px;
    color: var(--text-on-dark-hint);
    font-weight: 300;
    letter-spacing: 0.05em;
    transition: color 0.2s;
}

.footer-bottom__legal a:hover {
    color: var(--text-on-dark-strong);
}


/* ══════════════════════════════
   RESPONSIVE
══════════════════════════════ */
@media (max-width: 1100px) {
    .footer-top {
        grid-template-columns: 1fr 1fr;
        gap: 40px;
    }

    .footer-newsletter {
        padding: 48px 40px;
    }

    .site-footer {
        padding: 60px 40px 0;
    }
}

@media (max-width: 1024px) {
    .header-inner {
        padding: 0 24px;
    }

    .products-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .new-products {
        padding: 60px 24px;
    }
}

@media (max-width: 991px) {
    .categories__large__item {
        height: 360px;
    }
}

@media (max-width: 768px) {
    .announcement-bar {
        font-size: 11px;
        padding: 8px 12px;
    }

    .header-inner {
        grid-template-columns: 1fr auto;
        padding: 0 20px;
        height: 60px;
    }

    .header-nav {
        display: none;
    }

    .hamburger {
        display: flex;
    }

    .hero-swiper {
        height: 80vh;
        min-height: 500px;
    }

    .slide-content {
        padding: 0 6% 110px;
    }

    .slide-title {
        font-size: clamp(40px, 10vw, 64px);
    }

    .slide-desc {
        font-size: 13px;
        max-width: 100%;
    }

    .slide-vline,
    .price-badge,
    .swiper-fraction {
        display: none;
    }

    .new-products {
        padding: 48px 16px;
    }

    .section-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .products-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 14px;
    }

    .product-card__img {
        height: 260px;
    }

    .categories__large__item {
        height: 300px;
        padding: 24px;
    }

    .categories__item {
        height: 260px;
        padding: 20px;
    }

    .categories__text h1 {
        font-size: 28px;
    }

    .categories__text h4 {
        font-size: 18px;
    }

    .brands-section {
        padding: 56px 0;
    }

    .brands-header {
        margin-bottom: 40px;
    }

    .brands-swiper-wrap::before,
    .brands-swiper-wrap::after {
        width: 60px;
    }

    .brand-item {
        padding: 18px 24px;
        min-width: 140px;
    }

    .brand-logo {
        font-size: 18px;
    }

    .counter-divider {
        display: none;
    }

    .brands-counter {
        gap: 28px;
    }

    .counter-item .num {
        font-size: 36px;
    }

    .footer-newsletter {
        flex-direction: column;
        align-items: flex-start;
        padding: 40px 24px;
        gap: 24px;
    }

    .newsletter-form {
        max-width: 100%;
        width: 100%;
        flex-direction: column;
    }

    .site-footer {
        padding: 48px 24px 0;
    }

    .footer-top {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
    }

    .footer-categories {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .footer-cat-label {
        writing-mode: horizontal-tb;
        transform: none;
        margin-right: 0;
    }

    .footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .footer-bottom__payments {
        flex-wrap: wrap;
    }
}

@media (max-width: 500px) {
    .footer-top {
        grid-template-columns: 1fr;
    }

    .footer-bottom__legal {
        flex-wrap: wrap;
        gap: 12px;
    }
}

@media (max-width: 480px) {
    .product-card__meta {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .products-grid {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    .product-card__img {
        height: 220px;
    }

    .btn-hero-primary,
    .btn-hero-outline {
        padding: 12px 20px;
        font-size: 9px;
    }
}

/* ── BREADCRUMB HERO ── */
.page-hero {
    background: var(--dark);
    padding: 48px 32px;
    position: relative;
    overflow: hidden;


    &::before {
        content: 'MODA';
        position: absolute;
        right: -20px;
        top: 50%;
        transform: translateY(-50%);
        font-family: var(--serif);
        font-size: 180px;
        font-weight: 600;
        color: rgba(255, 255, 255, .03);
        letter-spacing: -.02em;
        pointer-events: none;
        white-space: nowrap;
    }

    & .page-hero-inner {
        max-width: 1400px;
        margin: 0 auto;
    }

    & .breadcrumb-nav {
        display: flex;
        align-items: center;
        gap: 8px;
        font-size: 11px;
        letter-spacing: .08em;
        text-transform: uppercase;
        color: rgba(255, 255, 255, .4);
        margin-bottom: 16px;
    }

    & .breadcrumb-nav a {
        color: rgba(255, 255, 255, .4);
        text-decoration: none;
        transition: color .2s;
    }

    & .breadcrumb-nav a:hover {
        color: var(--accent-gold);
    }

    & .breadcrumb-nav .sep {
        font-size: 9px;
    }

    & .breadcrumb-nav .current {
        color: rgba(255, 255, 255, .8);
    }

    & h1 {
        font-family: var(--serif);
        font-size: clamp(36px, 5vw, 64px);
        font-weight: 300;
        color: var(--white);
        line-height: 1.1;
    }

    & h1 em {
        font-style: italic;
        color: var(--accent-gold);
    }

    & p {
        color: rgba(255, 255, 255, .5);
        font-size: 13px;
        margin-top: 8px;
        letter-spacing: .04em;
    }

}

.category-section {
    padding-top: 40px;
    padding-bottom: 105px;

    & .shop-toolbar {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 28px;
        padding-bottom: 20px;
        border-bottom: 1px solid var(--sand);
    }

    & .toolbar-right {
        display: flex;
        align-items: center;
        gap: 16px;
    }

    & .view-btns {
        display: flex;
        gap: 4px;
    }

    & .view-btn {
        width: 34px;
        height: 34px;
        display: flex;
        align-items: center;
        justify-content: center;
        border: 1px solid var(--sand);
        border-radius: var(--radius);
        background: none;
        cursor: pointer;
        color: var(--light);
        transition: all .18s;
    }

    & .view-btn.active,
    & .view-btn:hover {
        background: var(--dark);
        color: var(--white);
        border-color: var(--dark);
    }

    & .accordion-item {
        border: none;
    }

    & .accordion-header {
        background: transparent;
        border: none;

        .accordion-button:not(.collapsed) {
            background-color: #fdfdfd;
            box-shadow: none;
        }

        .accordion-button:focus {
            box-shadow: none;
        }

        .accordion-button.collapsed::after {
            background-image: none;
            transform: none;
            font-family: "Font Awesome 5 Free";
            font-weight: 900;
            /* Use 900 for solid icons */
            content: "\2b";
            /* Unicode for the user icon */
            display: inline-block;
        }

        .accordion-button:not(.collapsed)::after {
            background-image: none;
            transform: none;
            font-family: "Font Awesome 5 Free";
            font-weight: 900;
            /* Use 900 for solid icons */
            content: "\f00d";
            /* Unicode for the user icon */
            display: inline-block;
        }
    }

    /* ── SIDEBAR ── */
    & .sidebar {
        position: sticky;
        top: 88px;
    }

    & .filter-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 28px;
    }

    & .filter-header h2 {
        font-family: var(--serif);
        font-size: 22px;
        font-weight: 400;
        letter-spacing: .01em;
    }

    & .clear-btn {
        font-size: 11px;
        letter-spacing: .08em;
        text-transform: uppercase;
        color: var(--accent-gold);
        background: none;
        border: none;
        cursor: pointer;
        padding: 0;
        transition: opacity .2s;
    }

    & .clear-btn:hover {
        opacity: .7;
    }

    .form-check-input:checked {
        background-color: var(--dark);
        border-color: var(--accent-gold);
    }

    .form-check-input:focus {
        border-color: none;
        outline: 0;
        box-shadow: none;
    }

    & .form-check-label {
        font-size: 13px;
        color: var(--mid);
        transition: color .2s;
    }

    .filter-count {
        font-size: 11px;
        color: var(--muted);
    }

    /* Price range */
    & .price-range-wrap {
        padding-top: 14px;
    }

    & .price-inputs {
        display: flex;
        gap: 8px;
        margin-bottom: 14px;
    }

    .price-input-group {
        flex: 1;
        position: relative;
    }

    .price-input-group span {
        position: absolute;
        left: 10px;
        top: 50%;
        transform: translateY(-50%);
        font-size: 12px;
        color: var(--accent-gold);
    }

    & .price-input-group input {
        width: 100%;
        padding: 8px 8px 8px 22px;
        border: 1px solid var(--sand);
        border-radius: var(--radius);
        font-family: var(--sans);
        font-size: 13px;
        color: var(--dark);
        background: var(--white);
        transition: border-color .2s;
    }

    & .price-input-group input:focus {
        outline: none;
        border-color: var(--accent);
    }

    & .range-slider {
        width: 100%;
        height: 2px;
        background: linear-gradient(to right, var(--accent) 0%, var(--accent) 60%, var(--sand) 60%);
        border-radius: 2px;
        outline: none;
    }

    & .range-slider::-webkit-slider-thumb {
        width: 16px;
        height: 16px;
        border-radius: 50%;
        background: var(--dark);
        cursor: pointer;
        border: 2px solid var(--white);
        box-shadow: 0 1px 4px rgba(0, 0, 0, .2);
        transition: transform .2s;
    }

    & .range-slider::-webkit-slider-thumb:hover {
        transform: scale(1.2);
    }

    & .size-chips {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        padding-top: 14px;
    }

    & .size-chip {
        min-width: 38px;
        height: 34px;
        display: flex;
        align-items: center;
        justify-content: center;
        border: 1px solid var(--sand);
        border-radius: var(--radius);
        font-size: 12px;
        letter-spacing: .04em;
        cursor: pointer;
        transition: all .18s;
        padding: 0 8px;
    }

    & .size-chip:hover {
        border-color: var(--mid);
        color: var(--dark);
    }

    & .size-chip.active {
        background: var(--dark);
        color: var(--white);
        border-color: var(--dark);
    }
}

/* FINTECH FINAL OVERRIDES - keep this block last */
body {
    background: var(--fx-bg);
    color: var(--fx-ink);
    font-family: var(--font-body);
}

.site-header {
    border-bottom: 1px solid var(--fx-line);
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(18px);
}

.header-inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    height: 62px;
    padding: 0 clamp(16px, 4vw, 54px);
    gap: 28px;
}

.header-logo,
.footer-brand__logo {
    color: var(--fx-ink);
    font-family: var(--font-body);
    font-size: 18px;
    font-style: normal;
    font-weight: 900;
    letter-spacing: -.04em;
    text-transform: uppercase;
}

.header-nav {
    display: flex;
    justify-content: center;
    gap: clamp(20px, 4vw, 46px);
}

.header-nav a,
.mobile-menu a {
    color: #111827;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .02em;
}

.cart-count {
    background: var(--fx-neon);
    color: var(--fx-ink);
}

.fx-container {
    width: min(1180px, calc(100% - 32px));
    margin-inline: auto;
}

.fx-section {
    padding: clamp(44px, 7vw, 96px) 0;
}

.fx-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
}

.fx-eyebrow {
    color: var(--fx-muted);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.fx-title {
    margin: 4px 0 0;
    color: var(--fx-ink);
    font-size: clamp(28px, 4vw, 52px);
    font-weight: 950;
    letter-spacing: -.06em;
    line-height: .95;
}

.fx-hero {
    padding: 24px 0 42px;
}

.fx-hero-card {
    position: relative;
    min-height: clamp(470px, 74vh, 720px);
    overflow: hidden;
    background:
        radial-gradient(circle at 75% 52%, color-mix(in srgb, var(--fx-neon) 24%, transparent), transparent 17rem),
        linear-gradient(105deg, #020606 0%, #091011 48%, #121916 100%);
}

.fx-hero-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0, 0, 0, .76), rgba(0, 0, 0, .18) 48%, rgba(0, 0, 0, .4));
}

.fx-hero-media {
    position: absolute;
    inset: 0 0 0 auto;
    width: 58%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    opacity: .9;
}

.fx-hero-content {
    position: relative;
    z-index: 2;
    width: min(520px, 88%);
    padding: clamp(56px, 10vw, 110px) clamp(24px, 7vw, 78px);
    color: #fff;
}

.fx-hero-content .fx-eyebrow {
    color: var(--fx-neon);
}

.fx-hero-title {
    margin: 14px 0 16px;
    color: #fff;
    font-size: clamp(42px, 8vw, 96px);
    font-weight: 950;
    letter-spacing: -.08em;
    line-height: .86;
}

.fx-hero-copy {
    max-width: 420px;
    color: rgba(255, 255, 255, .7);
    font-size: 14px;
    line-height: 1.8;
}

.fx-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 26px;
}

.btn-hero-primary,
.fx-button-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    border: 0;
    border-radius: 999px;
    background: var(--fx-neon);
    color: var(--fx-ink);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .02em;
    padding: 12px 22px;
    text-transform: uppercase;
}

.btn-hero-primary:hover,
.fx-button-primary:hover {
    background: var(--fx-neon-dark);
    color: var(--fx-ink);
}

.btn-hero-outline,
.fx-button-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    border: 1px solid var(--fx-line);
    border-radius: 999px;
    background: var(--fx-surface);
    color: var(--fx-ink) !important;
    font-size: 12px;
    font-weight: 900;
    padding: 12px 22px;
}

.fx-hero-actions .btn-hero-outline {
    border-color: rgba(255, 255, 255, .24);
    background: rgba(255, 255, 255, .06);
    color: #fff !important;
}

.fx-mosaic {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 14px;
}

.fx-mini-grid {
    display: grid;
    gap: 14px;
}

.fx-feature-card,
.fx-mini-tile {
    position: relative;
    overflow: hidden;
    border-radius: 10px;
    background: var(--fx-surface);
    box-shadow: var(--fx-shadow);
}

.fx-feature-card {
    min-height: 390px;
}

.fx-mini-tile {
    min-height: 188px;
}

.fx-feature-card img,
.fx-mini-tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fx-card-caption {
    position: absolute;
    left: 18px;
    bottom: 18px;
    color: #fff;
}

.fx-card-caption strong {
    display: block;
    font-size: 18px;
    font-weight: 950;
    letter-spacing: -.04em;
}

.products-grid,
.fx-product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 22px;
}

.product-card {
    position: relative;
    overflow: hidden;
    border: 0;
    border-radius: 10px;
    background: var(--fx-surface);
    box-shadow: 0 12px 30px rgba(15, 23, 42, .07);
}

.product-card__img {
    height: 280px;
    border-radius: 10px 10px 0 0;
    background: #101718;
}

.product-card__img img {
    position: relative;
    z-index: 0;
    object-fit: cover;
}

.product-card__badge {
    border-radius: 999px;
    background: var(--fx-neon) !important;
    color: var(--fx-ink) !important;
    font-weight: 950;
}

.product-card__badge.sold-out {
    background: #111827 !important;
    color: #fff !important;
}

.product-card__info {
    display: flex;
    flex: 1;
    flex-direction: column;
    position: relative;
    z-index: 2;
    padding: 18px;
}

.product-card__brand {
    color: var(--fx-muted);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.product-card__name {
    display: block;
    color: var(--fx-ink);
    font-size: 16px;
    font-weight: 950;
    letter-spacing: -.04em;
}

.product-card__rating {
    display: none;
}

.price-current {
    color: var(--fx-ink);
    font-size: 18px;
    font-weight: 950;
}

.product-card__actions {
    background: transparent;
    bottom: 12px;
    justify-content: flex-end;
    padding-right: 14px;
    opacity: 0;
    transform: translateY(14px);
    transition: opacity .24s ease, transform .24s ease;
}

.action-btn {
    border: 0;
    background: #fff;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .12);
}

.product-card:hover .product-card__actions {
    opacity: 1;
    transform: translateY(0);
}

.product-card__meta {
    margin-top: auto;
}

.action-btn:hover {
    background: var(--fx-neon);
    color: var(--fx-ink);
}

.page-hero {
    background: transparent;
    padding: 42px 0 22px;
}

.page-hero-inner {
    width: min(1180px, calc(100% - 32px));
    margin-inline: auto;
}

.page-hero h1 {
    color: var(--fx-ink);
    font-size: clamp(36px, 5vw, 70px);
    font-weight: 950;
    letter-spacing: -.07em;
}

.page-hero h1 em {
    color: var(--fx-ink);
    font-style: normal;
}

.page-hero p,
.breadcrumb-nav {
    color: var(--fx-muted);
}

.category-section {
    padding: 24px 0 70px;
}

.sidebar,
.checkout-panel,
.checkout-summary,
.cart-panel,
.fx-panel-card {
    border: 1px solid var(--fx-line);
    border-radius: 12px;
    background: var(--fx-surface);
    box-shadow: var(--fx-shadow);
}

.sidebar {
    position: sticky;
    top: 86px;
    padding: 20px;
}

.shop-toolbar {
    border: 0;
    background: transparent;
    color: var(--fx-muted);
    font-weight: 700;
}

.form-control,
.form-select,
.coupon-form input {
    min-height: 44px;
    border: 1px solid var(--fx-line);
    border-radius: 8px;
    background-color: #f8fafc;
    color: var(--fx-ink);
    font-size: 13px;
}

.form-control:focus,
.form-select:focus,
.coupon-form input:focus {
    border-color: var(--fx-neon);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--fx-neon) 18%, transparent);
}

.filter-pill,
.filter-color-option,
.variant-chip,
.variant-color-option,
.size-chip {
    border-radius: 999px;
    background: #fff;
}

.filter-pill.active,
.filter-pill:has(input:checked),
.filter-color-option:has(input:checked),
.variant-chip.active,
.variant-color-option.active,
.size-chip.active,
.size-chip:has(input:checked) {
    border-color: var(--fx-ink);
    background: var(--fx-ink);
    color: #fff;
}

.filter-color-grid {
    gap: 10px;
}

.filter-color-option {
    width: 32px;
    min-height: 32px;
    border-radius: 50%;
    padding: 3px;
}

.filter-color-option span:last-child {
    display: none;
}

.filter-color-swatch {
    width: 100%;
    height: 100%;
    border-width: 0;
}

.site-footer {
    background: #080b0f;
    color: rgba(255, 255, 255, .72);
}

.footer-newsletter {
    display: none;
}

@media (max-width: 991px) {
    .header-nav {
        display: none;
    }

    .header-inner {
        grid-template-columns: 1fr auto;
    }

    .fx-hero-media {
        width: 100%;
        opacity: .42;
    }

    .fx-mosaic {
        grid-template-columns: 1fr;
    }

    .sidebar,
    .checkout-summary {
        position: static;
    }
}

@media (max-width: 640px) {
    .fx-container {
        width: min(100% - 20px, 1180px);
    }

    .fx-hero-card {
        min-height: 560px;
    }

    .fx-hero-content {
        width: 100%;
        padding: 46px 22px;
    }

    .products-grid,
    .fx-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .product-card__img {
        height: 210px;
    }
}

/* FINTECH CHECKOUT / CART / SUCCESS OVERRIDES */
.fx-page-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin: 18px 0 28px;
}

.fx-page-heading h1 {
    margin: 0;
    color: var(--fx-ink);
    font-size: clamp(34px, 5vw, 62px);
    font-weight: 950;
    letter-spacing: -.07em;
}

.fx-page-heading p {
    margin: 6px 0 0;
    color: var(--fx-muted);
    font-size: 14px;
}

.fx-cart-shell,
.fx-checkout-shell,
.fx-success-shell {
    padding: 34px 0 72px;
    background:
        radial-gradient(circle at 10% 5%, color-mix(in srgb, var(--fx-neon) 8%, transparent), transparent 28%),
        var(--fx-bg);
}

.fx-button-primary,
.fx-button-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    border-radius: 999px;
    padding: 0 24px;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .12em;
    text-transform: uppercase;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.fx-button-primary {
    border: 0;
    background: var(--fx-neon);
    color: #071008;
    box-shadow: 0 12px 32px color-mix(in srgb, var(--fx-neon) 26%, transparent);
}

.fx-button-secondary {
    border: 1px solid var(--fx-line);
    background: #fff;
    color: var(--fx-ink);
}

.fx-button-primary:hover,
.fx-button-secondary:hover {
    transform: translateY(-1px);
}

.fx-empty-state {
    display: grid;
    justify-items: center;
    gap: 12px;
    border: 1px solid var(--fx-line);
    border-radius: 16px;
    background: #fff;
    padding: 70px 24px;
    text-align: center;
    box-shadow: var(--fx-shadow);
}

.fx-empty-state h2 {
    margin: 0;
    color: var(--fx-ink);
    font-size: 28px;
    font-weight: 950;
    letter-spacing: -.04em;
}

.fx-empty-state p {
    margin: 0 0 8px;
    color: var(--fx-muted);
}

.fx-empty-icon,
.fx-success-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: var(--fx-neon);
    color: #071008;
}

.fx-cart-layout,
.fx-checkout-layout,
.fx-success-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 24px;
    align-items: start;
}

.fx-cart-list {
    display: grid;
    gap: 14px;
}

.fx-cart-item {
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr);
    gap: 18px;
    border: 1px solid var(--fx-line);
    border-radius: 14px;
    background: #fff;
    padding: 14px;
    box-shadow: 0 10px 26px rgba(15, 23, 42, .05);
}

.fx-cart-item__image {
    display: block;
    overflow: hidden;
    border-radius: 10px;
    background: #eef2f7;
    aspect-ratio: 1 / 1.12;
}

.fx-cart-item__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fx-cart-item__top,
.fx-cart-item__bottom,
.fx-summary-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.fx-cart-item__meta {
    color: var(--fx-muted);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.fx-cart-item h2 {
    margin: 3px 0 4px;
    color: var(--fx-ink);
    font-size: 18px;
    font-weight: 950;
    letter-spacing: -.04em;
}

.fx-cart-item p {
    margin: 0;
    color: var(--fx-muted);
    font-size: 13px;
}

.fx-icon-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 1px solid var(--fx-line);
    border-radius: 50%;
    background: #fff;
    color: var(--fx-ink);
}

.fx-stock-note {
    margin-top: 10px !important;
    color: var(--fx-muted) !important;
    font-size: 12px !important;
}

.fx-stock-note.warning {
    color: #b7791f !important;
}

.fx-stock-note.danger {
    color: #dc2626 !important;
}

.fx-qty-form {
    display: flex;
    align-items: center;
    gap: 8px;
}

.fx-qty-form .form-control {
    width: 72px;
    min-height: 40px;
    text-align: center;
}

.fx-summary-card {
    position: sticky;
    top: 92px;
    border-radius: 16px;
    padding: 24px;
}

.fx-summary-head {
    align-items: center;
    margin-bottom: 18px;
}

.fx-summary-head h2 {
    margin: 0;
    color: var(--fx-ink);
    font-size: 20px;
    font-weight: 950;
    letter-spacing: -.04em;
}

.fx-summary-head span {
    color: var(--fx-muted);
    font-size: 12px;
    font-weight: 800;
}

.checkout-total-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 10px 0;
    color: var(--fx-muted);
    font-size: 13px;
}

.checkout-total-row strong,
.checkout-total-final {
    color: var(--fx-ink);
}

.checkout-total-final {
    font-size: 18px;
    font-weight: 950;
}

.fx-trust-card {
    display: flex;
    gap: 12px;
    margin-top: 18px;
    border-radius: 12px;
    background: #eaffeb;
    padding: 14px;
}

.fx-trust-card.dark {
    background: #050806;
    color: #fff;
}

.fx-trust-card>span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--fx-neon);
    color: #071008;
}

.fx-trust-card strong,
.fx-trust-card small {
    display: block;
}

.fx-trust-card small {
    color: inherit;
    opacity: .68;
}

.fx-checkout-main {
    display: grid;
    gap: 16px;
}

.fx-step-panel {
    padding: 24px;
}

.checkout-section-head {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 16px;
}

.checkout-section-head>span {
    color: var(--fx-muted);
    font-weight: 950;
    letter-spacing: .06em;
}

.checkout-section-head h4 {
    margin: 0;
    color: var(--fx-ink);
    font-size: 18px;
    font-weight: 950;
}

.checkout-section-head p {
    margin: 3px 0 0;
    color: var(--fx-muted);
    font-size: 13px;
}

.fx-secure-label {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 8px;
    color: var(--fx-ink);
    font-size: 13px;
    font-weight: 950;
}

.fx-secure-label i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--fx-neon);
}

.fx-payment-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.fx-payment-tabs span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    border: 1px solid var(--fx-line);
    border-radius: 999px;
    background: #fff;
    color: var(--fx-muted);
    font-size: 12px;
    font-weight: 800;
}

.fx-payment-tabs .active {
    border-color: #050806;
    background: #050806;
    color: #fff;
}

.fx-muted-step {
    background: #eef4ff;
}

.checkout-item,
.fx-success-item {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--fx-line);
}

.checkout-item img {
    width: 58px;
    height: 68px;
    border-radius: 8px;
    object-fit: cover;
    background: #eef2f7;
}

.checkout-item__body,
.fx-success-item div {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.checkout-item__body strong,
.fx-success-item strong {
    color: var(--fx-ink);
    font-size: 13px;
    font-weight: 950;
}

.checkout-item__body span,
.checkout-item__body small,
.fx-success-item span {
    color: var(--fx-muted);
    font-size: 12px;
}

.coupon-form {
    display: flex;
    gap: 8px;
}

.coupon-form input {
    min-width: 0;
    flex: 1;
}

.coupon-form button,
.coupon-applied button {
    border: 0;
    border-radius: 999px;
    background: #050806;
    color: #fff;
    padding: 0 16px;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.coupon-applied {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-radius: 12px;
    background: #eaffeb;
    padding: 12px;
}

.coupon-applied small,
.coupon-applied strong {
    display: block;
}

.fx-success-hero {
    display: grid;
    justify-items: center;
    gap: 10px;
    padding: 46px 0 36px;
    text-align: center;
}

.fx-success-hero h1 {
    margin: 0;
    color: var(--fx-ink);
    font-size: clamp(36px, 5vw, 64px);
    font-weight: 950;
    letter-spacing: -.07em;
}

.fx-success-hero p {
    max-width: 560px;
    margin: 0;
    color: var(--fx-muted);
}

.fx-success-main {
    display: grid;
    gap: 16px;
}

.fx-order-journey,
.fx-success-info-grid .fx-panel-card {
    padding: 22px;
}

.fx-order-journey h2,
.fx-success-info-grid h3 {
    margin: 0 0 18px;
    color: var(--fx-ink);
    font-size: 18px;
    font-weight: 950;
}

.fx-journey-line {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    position: relative;
}

.fx-journey-step {
    display: grid;
    justify-items: center;
    gap: 7px;
    color: var(--fx-muted);
    text-align: center;
}

.fx-journey-step span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #e8eef7;
    color: var(--fx-muted);
}

.fx-journey-step.active span {
    background: var(--fx-neon);
    color: #071008;
}

.fx-journey-step strong {
    color: var(--fx-ink);
    font-size: 12px;
}

.fx-journey-step small {
    font-size: 11px;
}

.fx-success-info-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.fx-success-info-grid p {
    margin: 0;
    color: var(--fx-muted);
    line-height: 1.7;
}

.fx-success-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    padding-top: 20px;
}

.product-gallery-main {
    height: auto;
    overflow: hidden;
    border-radius: 12px;
    background: #eef2f7;
    display: grid;
    place-items: center;
    aspect-ratio: 4 / 5;
    max-height: 680px;
}

.product-gallery-main img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.product-gallery-thumbs {
    position: static;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(82px, 1fr));
    gap: 10px;
    margin-top: 14px;
}

.product-gallery-thumb {
    overflow: hidden;
    border: 2px solid transparent;
    border-radius: 10px;
    padding: 0;
    background: #fff;
    aspect-ratio: 1 / 1.12;
}

.product-gallery-thumb.active {
    border-color: var(--fx-neon);
}

.product-gallery-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.variant-chip,
.variant-color-option {
    min-height: 38px;
    border: 1px solid var(--fx-line);
    padding: 0 14px;
    font-size: 12px;
    font-weight: 850;
}

.variant-color-option {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.variant-chip.is-unavailable,
.variant-color-option.is-unavailable {
    opacity: .35;
    text-decoration: line-through;
}

.variant-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 18px 0;
    border-radius: 12px;
    background: #f8fafc;
    padding: 12px 14px;
}

.stock-status {
    color: var(--fx-muted);
    font-size: 13px;
    font-weight: 800;
}

.stock-status.available {
    color: #15803d;
}

.stock-status.low-stock {
    color: #b7791f;
}

.stock-status.sold-out {
    color: #dc2626;
}

.fx-product-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}

.fx-product-kicker span,
.fx-product-kicker small {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    border-radius: 999px;
    padding: 0 12px;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fx-product-kicker span {
    background: #050806;
    color: #fff;
}

.fx-product-kicker small {
    border: 1px solid var(--fx-line);
    background: #fff;
    color: var(--fx-muted);
}

.fx-hero-swiper {
    display: block;
    overflow: hidden;
    border-radius: 18px;
}

.fx-hero-controls {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 14px;
}

.fx-hero-controls button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 50%;
    background: #050806;
    color: #fff;
}

.fx-hero-progress {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--fx-muted);
    font-size: 11px;
    font-weight: 900;
}

.fx-hero-progress div {
    overflow: hidden;
    width: 86px;
    height: 3px;
    border-radius: 999px;
    background: #d9e1ec;
}

.fx-hero-progress div span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: var(--fx-neon);
}

.store-preloader {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: grid;
    place-items: center;
    background: rgba(245, 247, 251, .92);
    backdrop-filter: blur(12px);
    opacity: 1;
    visibility: visible;
    transition: opacity .28s ease, visibility .28s ease;
}

.store-preloader.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.store-preloader__mark {
    display: grid;
    justify-items: center;
    gap: 14px;
    color: var(--fx-ink);
    font-weight: 950;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.store-preloader__mark span {
    width: 58px;
    height: 58px;
    border: 5px solid #d9e1ec;
    border-top-color: var(--fx-neon);
    border-radius: 50%;
    animation: fx-spin .8s linear infinite;
}

.fx-swal-popup {
    border: 1px solid var(--fx-line) !important;
    border-radius: 18px !important;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .18) !important;
}

.fx-swal-confirm,
.fx-swal-cancel {
    min-height: 42px;
    border: 0;
    border-radius: 999px;
    padding: 0 22px;
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fx-swal-confirm {
    background: var(--fx-neon);
    color: #071008;
}

.fx-swal-cancel {
    margin-left: 8px;
    background: #050806;
    color: #fff;
}

.fx-lookup-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
}

.alert {
    border: 1px solid var(--fx-line);
    border-radius: 14px;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .08);
}

.alert-success {
    border-color: color-mix(in srgb, var(--fx-neon) 32%, transparent);
    background: #eaffeb;
    color: #14532d;
}

.alert-danger {
    border-color: rgba(220, 38, 38, .22);
    background: #fff1f2;
    color: #991b1b;
}

/* STORE POLISH OVERRIDES */
.header-logo,
.footer-brand__logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.header-logo::before,
.product-card__img::after {
    content: none !important;
    display: none !important;
}

.header-logo img {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    object-fit: cover;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .14);
}

.header-logo span {
    color: var(--fx-ink);
}

.footer-brand__logo--stacked {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 14px;
}

.footer-brand__logo--stacked img {
    width: 92px;
    height: 92px;
    border: 2px solid color-mix(in srgb, var(--fx-neon) 55%, rgba(255,255,255,.18));
    border-radius: 24px;
    object-fit: cover;
    padding: 6px;
    background: rgba(255,255,255,.08);
    box-shadow: 0 18px 42px color-mix(in srgb, var(--fx-neon) 20%, transparent);
}

.footer-brand__logo--stacked span {
    color: #fff;
    font-size: 24px;
}

.store-preloader__mark img {
    width: 68px;
    height: 68px;
    border-radius: 20px;
    object-fit: cover;
    animation: fx-logo-pulse 1.2s ease-in-out infinite;
}

.footer-contact-box {
    display: grid;
    gap: 9px;
    margin-top: 18px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 16px;
    background: rgba(255,255,255,.06);
    padding: 16px;
}

.footer-contact-box strong,
.footer-contact-box small {
    display: block;
}

.footer-contact-box strong {
    color: #fff;
}

.footer-contact-box small {
    color: rgba(255,255,255,.62);
}

.footer-contact-box input,
.footer-contact-box textarea {
    width: 100%;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 10px;
    background: rgba(255,255,255,.08);
    color: #fff;
    padding: 10px 12px;
    font-size: 13px;
}

.footer-contact-box input::placeholder,
.footer-contact-box textarea::placeholder {
    color: rgba(255,255,255,.48);
}

.footer-contact-box input:focus,
.footer-contact-box textarea:focus {
    border-color: var(--fx-neon);
    outline: none;
}

.footer-contact-box button {
    min-height: 42px;
    border: 0;
    border-radius: 999px;
    background: var(--fx-neon);
    color: #071008;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .1em;
    text-transform: uppercase;
}

@keyframes fx-logo-pulse {
    0%, 100% {
        transform: scale(1);
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--fx-neon) 30%, transparent);
    }
    50% {
        transform: scale(1.04);
        box-shadow: 0 0 0 12px transparent;
    }
}

.active-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}

.active-filters a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 32px;
    border: 1px solid color-mix(in srgb, var(--fx-neon) 38%, var(--fx-line));
    border-radius: 999px;
    background: color-mix(in srgb, var(--fx-neon) 12%, #fff);
    color: var(--fx-ink);
    padding: 0 11px;
    font-size: 11px;
    font-weight: 850;
}

.category-list--children {
    margin: 8px 0 4px 18px;
    padding-left: 10px;
    border-left: 1px solid var(--fx-line);
}

.product-card {
    min-height: 430px;
    background: var(--fx-card-bg) !important;
}

.product-card__img {
    flex: 0 0 280px;
    height: 280px;
}

.brands-swiper-wrap {
    border-radius: 18px;
    background: var(--fx-brand-bg);
    padding: 18px;
}

.brand-item {
    border-color: color-mix(in srgb, var(--fx-neon) 28%, transparent) !important;
    background: color-mix(in srgb, var(--fx-brand-bg) 82%, #ffffff) !important;
    color: #ffffff;
}

.brand-logo {
    color: var(--fx-ink) !important;
}

.brand-tag {
    background: var(--fx-neon) !important;
    color: var(--fx-ink) !important;
     border-radius: 10px;
    padding: 4px 10px;
}

.brand-item:hover {
    border-color: var(--fx-neon) !important;
    box-shadow: 0 14px 36px color-mix(in srgb, var(--fx-neon) 28%, transparent) !important;
}

.products-grid .product-card,
.fx-product-grid .product-card,
.row .product-card {
    height: 100%;
}

.product-card__name {
    display: -webkit-box;
    min-height: 42px;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.product-detail-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
    gap: clamp(24px, 5vw, 58px);
    align-items: start;
}

.product-detail-panel {
    position: sticky;
    top: 92px;
    border: 1px solid var(--fx-line);
    border-radius: 18px;
    background: var(--fx-surface);
    padding: clamp(18px, 3vw, 30px);
    box-shadow: var(--fx-shadow);
}

.product-gallery-main img {
    height: 100%;
    object-fit: contain;
}

.product-gallery-thumbs {
    grid-template-columns: repeat(auto-fit, minmax(76px, 116px));
    justify-content: start;
}

.variant-chip-grid,
.variant-color-grid,
.product-sizes,
.product-colors {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.fx-coupon-box {
    border: 1px dashed color-mix(in srgb, var(--fx-neon) 45%, var(--fx-line));
    border-radius: 14px;
    background: color-mix(in srgb, var(--fx-neon) 8%, #fff);
    padding: 12px;
}

.coupon-form button,
.coupon-applied button {
    background: var(--fx-ink);
    color: var(--fx-surface);
}

.fx-contact-list {
    display: grid;
    gap: 12px;
}

.fx-contact-list p {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    color: var(--fx-muted);
}

.fx-size-guide {
    padding: clamp(18px, 3vw, 28px);
}

.fx-size-guide table {
    margin-bottom: 18px;
}

.fx-size-guide th {
    color: var(--fx-muted);
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
}

@media (max-width: 991px) {
    .product-detail-shell {
        grid-template-columns: 1fr;
    }

    .product-detail-panel {
        position: static;
    }
}

@media (max-width: 640px) {
    .product-card {
        min-height: 390px;
    }

    .product-card__img {
        flex-basis: 210px;
        height: 210px;
    }

    .product-gallery-main img {
        height: 390px;
    }

    .product-gallery-thumbs {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@keyframes fx-spin {
    to {
        transform: rotate(360deg);
    }
}

/* PWA MOBILE APP LAYER */
:root {
    --vf-black: #000000;
    --vf-ink: #07111f;
    --vf-neon: var(--fx-neon);
    --vf-bg: #f1f5f9;
    --vf-panel: #eaf2ff;
    --vf-muted: #64748b;
    --vf-line: #dce4f2;
    --vf-shadow: 0 20px 60px rgba(15, 23, 42, .10);
}

html[data-vf-theme="dark"] body {
    background: #070a0f;
    color: #f8fafc;
}

body {
    background: var(--vf-bg);
}

.vf-bottom-nav {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1030;
    display: none;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 3px;
    height: 76px;
    border-top: 1px solid var(--vf-line);
    background: rgba(255, 255, 255, .96);
    padding: 8px 8px 10px;
    box-shadow: 0 -16px 40px rgba(15, 23, 42, .08);
    backdrop-filter: blur(14px);
}

.vf-bottom-nav a {
    position: relative;
    display: grid;
    place-items: center;
    gap: 3px;
    border-radius: 999px;
    color: var(--vf-black);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .08em;
}

.vf-bottom-nav i {
    font-size: 18px;
}

.vf-bottom-nav a.is-active {
    background: var(--vf-neon);
}

.vf-nav-count {
    position: absolute;
    top: 5px;
    right: 12px;
    display: inline-grid;
    place-items: center;
    min-width: 18px;
    height: 18px;
    border: 2px solid #fff;
    border-radius: 999px;
    background: #000;
    color: #fff;
    padding: 0 4px;
    font-size: 10px;
    font-weight: 950;
    line-height: 1;
}

.vf-nav-count.d-none {
    display: none;
}

.vf-install-toast {
    position: fixed;
    right: 18px;
    bottom: 96px;
    left: 18px;
    z-index: 1040;
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid color-mix(in srgb, var(--fx-neon) 40%, transparent);
    border-radius: 22px;
    background: #07111f;
    color: #fff;
    padding: 14px;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .28);
}

.vf-install-toast[hidden] {
    display: none;
}

.vf-install-toast div {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.vf-install-toast span {
    color: rgba(255, 255, 255, .68);
    font-size: 12px;
}

.vf-install-toast button {
    border: 0;
    border-radius: 999px;
    padding: 10px 14px;
    background: var(--vf-neon);
    color: var(--vf-black);
    font-size: 12px;
    font-weight: 950;
}

#vfInstallDismiss {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    padding: 0;
    background: rgba(255, 255, 255, .12);
    color: #fff;
}

.vf-app-page {
    width: min(100% - 32px, 1080px);
    margin: 0 auto;
    padding: clamp(28px, 5vw, 60px) 0 120px;
}

.vf-app-hero,
.vf-page-title,
.vf-guide-card,
.vf-local-form,
.vf-settings-list,
.vf-notification-preview,
.vf-notification-row {
    border: 1px solid var(--vf-line);
    border-radius: 24px;
    background: #fff;
    box-shadow: var(--vf-shadow);
}

.vf-app-hero,
.vf-page-title {
    display: grid;
    justify-items: start;
    gap: 14px;
    margin-bottom: 20px;
    padding: clamp(24px, 5vw, 42px);
}

.vf-app-hero h1,
.vf-page-title h1 {
    margin: 0;
    color: var(--vf-ink);
    font-size: clamp(36px, 8vw, 64px);
    font-weight: 950;
    letter-spacing: -.05em;
    line-height: .96;
}

.vf-app-hero p,
.vf-page-title p,
.vf-guide-card p {
    max-width: 680px;
    margin: 0;
    color: var(--vf-muted);
    font-size: 16px;
    line-height: 1.7;
}

.vf-chip {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 34px;
    border-radius: 999px;
    background: #eaffeb;
    color: #075b16;
    padding: 0 14px;
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vf-primary-action,
.vf-secondary-action,
.vf-danger-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    border: 0;
    border-radius: 999px;
    padding: 0 24px;
    font-weight: 950;
    letter-spacing: .04em;
}

.vf-primary-action {
    background: var(--vf-neon);
    color: var(--vf-black);
}

.vf-secondary-action {
    border: 1px solid var(--vf-line);
    background: #fff;
    color: var(--vf-ink);
}

.vf-danger-action {
    border: 1px solid #fecaca;
    background: #fff1f2;
    color: #b91c1c;
}

.vf-guide-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.vf-guide-card {
    padding: 24px;
}

.vf-guide-card>i {
    display: inline-grid;
    place-items: center;
    width: 54px;
    height: 54px;
    margin-bottom: 16px;
    border-radius: 18px;
    background: var(--vf-neon);
    color: var(--vf-black);
    font-size: 24px;
}

.vf-guide-card h2 {
    margin: 0 0 12px;
    color: var(--vf-ink);
    font-size: 22px;
    font-weight: 950;
}

.vf-guide-card ol {
    display: grid;
    gap: 10px;
    margin: 0;
    padding-left: 20px;
    color: var(--vf-muted);
}

.vf-note {
    margin-top: 16px !important;
    border-radius: 16px;
    background: #fff7ed;
    padding: 12px;
    color: #9a3412 !important;
}

.vf-local-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    padding: clamp(18px, 4vw, 28px);
}

.vf-local-form label {
    display: grid;
    gap: 8px;
    color: var(--vf-ink);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vf-local-form input,
.vf-local-form textarea,
.vf-local-form select {
    width: 100%;
    min-height: 52px;
    border: 1px solid transparent;
    border-radius: 16px;
    background: #f8fafc;
    color: var(--vf-ink);
    padding: 12px 14px;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

.vf-local-form textarea,
.vf-local-form .vf-form-actions {
    grid-column: 1 / -1;
}

.vf-form-actions,
.vf-notification-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.vf-settings-list {
    overflow: hidden;
}

.vf-settings-list button,
.vf-settings-list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 64px;
    border: 0;
    border-bottom: 1px solid var(--vf-line);
    background: #fff;
    color: var(--vf-ink);
    padding: 0 20px;
    text-align: left;
}

.vf-settings-list span {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-weight: 850;
}

.vf-settings-list strong {
    color: var(--vf-muted);
    font-size: 12px;
}

.vf-notification-actions {
    margin-bottom: 16px;
}

.vf-notification-list {
    display: grid;
    gap: 12px;
}

.vf-notification-preview,
.vf-notification-row {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    margin-bottom: 16px;
    padding: 16px;
}

.vf-notification-icon {
    display: inline-grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--vf-neon);
    color: var(--vf-black);
}

.vf-notification-row.is-unread {
    border-color: color-mix(in srgb, var(--fx-neon) 45%, transparent);
    background: #f0ffee;
}

.vf-notification-row strong,
.vf-notification-preview strong {
    color: var(--vf-ink);
}

.vf-notification-row p,
.vf-notification-preview p {
    margin: 2px 0 0;
    color: var(--vf-muted);
}

.vf-notification-row small,
.vf-notification-preview small {
    color: var(--vf-muted);
    font-size: 12px;
}

.vf-empty-local {
    display: grid;
    justify-items: center;
    gap: 10px;
    border: 1px dashed var(--vf-line);
    border-radius: 24px;
    background: #fff;
    padding: 44px 22px;
    color: var(--vf-muted);
    text-align: center;
}

.vf-empty-local i {
    display: inline-grid;
    place-items: center;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: var(--vf-panel);
    color: var(--vf-ink);
    font-size: 24px;
}

.vf-empty-local strong {
    color: var(--vf-ink);
    font-size: 20px;
}

@media (max-width: 991px) {

    .fx-cart-layout,
    .fx-checkout-layout,
    .fx-success-layout {
        grid-template-columns: 1fr;
    }

    .fx-summary-card {
        position: static;
    }
}

@media (max-width: 640px) {
    body {
        padding-bottom: 78px;
        background: var(--vf-bg);
    }

    .announcement-bar,
    .footer-newsletter {
        display: none;
    }

    .vf-bottom-nav {
        display: grid;
    }

    .site-header {
        background: #f8f9fa;
    }

    .header-inner {
        display: flex;
        justify-content: space-between;
        height: 72px;
        padding: 0 22px;
    }

    .header-logo {
        position: absolute;
        left: 50%;
        max-width: 235px;
        transform: translateX(-50%);
        font-size: 22px;
        font-style: normal;
        letter-spacing: -.04em;
    }

    .header-logo img,
    .header-nav,
    .search-btn,
    .header-icons .cart-btn[title="Favoritos"] {
        display: none;
    }

    .hamburger {
        display: flex;
        order: -1;
    }

    .header-icons {
        margin-left: auto;
        gap: 12px;
    }

    .site-footer {
        padding-bottom: 90px;
    }

    .fx-container,
    .container {
        width: min(100% - 28px, 1180px);
        padding-right: 0;
        padding-left: 0;
    }

    .fx-hero {
        padding: 22px 0 14px;
    }

    .fx-hero-card {
        min-height: 292px;
        border-radius: 16px;
    }

    .fx-hero-title {
        font-size: 30px;
        letter-spacing: -.04em;
    }

    .fx-hero-copy {
        max-width: 250px;
        font-size: 12px;
    }

    .btn-hero-primary,
    .btn-hero-outline,
    .fx-button-primary,
    .fx-button-secondary {
        min-height: 52px;
        border-radius: 999px;
        justify-content: center;
        font-size: 12px;
        letter-spacing: .04em;
        text-transform: none;
    }

    .fx-section {
        padding: 28px 0;
    }

    .fx-title,
    .fx-page-heading h1,
    .page-hero h1 {
        font-family: var(--font-body);
        font-size: 42px;
        font-weight: 950;
        letter-spacing: -.06em;
        line-height: .98;
    }

    .page-hero {
        display: none;
    }

    .category-section,
    .fx-cart-shell,
    .fx-checkout-shell,
    .fx-success-shell {
        padding-top: 34px;
    }

    .sidebar,
    .checkout-panel,
    .fx-panel-card,
    .fx-summary-card,
    .fx-cart-item,
    .product-card {
        border-radius: 20px !important;
        box-shadow: var(--vf-shadow);
    }

    .shop-toolbar {
        border: 0;
        border-radius: 0;
        background: transparent;
        padding: 0 0 16px;
    }

    .row>.col-sm-6,
    .row>.col-lg-4 {
        width: 50%;
        padding-right: 8px;
        padding-left: 8px;
    }

    .product-card {
        min-height: 0;
        overflow: hidden;
    }

    .product-card__img {
        flex-basis: 210px;
        height: 210px;
        border-radius: 16px 16px 0 0;
    }

    .product-card__info {
        padding: 14px;
    }

    .product-card__name {
        min-height: 40px;
        color: var(--vf-ink);
        font-size: 18px;
        font-weight: 900;
        letter-spacing: -.04em;
    }

    .price-current {
        font-size: 26px;
        font-weight: 950;
    }

    .product-card__actions {
        opacity: 1;
        visibility: visible;
        transform: none;
        top: 12px;
        right: 12px;
        bottom: auto;
        left: auto;
        display: grid;
        background: transparent;
        padding: 0;
    }

    .fx-cart-layout,
    .fx-checkout-layout,
    .fx-success-layout {
        gap: 18px;
    }

    .fx-cart-item {
        grid-template-columns: 110px minmax(0, 1fr);
        padding: 14px;
    }

    .fx-cart-item__image img {
        border-radius: 14px;
    }

    .checkout-panel,
    .fx-step-panel,
    .fx-summary-card {
        padding: 22px;
    }

    .checkout-section-head>span {
        display: inline-grid;
        place-items: center;
        flex: 0 0 32px;
        width: 32px;
        height: 32px;
        border-radius: 50%;
        background: #000;
        color: #fff;
    }

    .form-control,
    .form-select {
        min-height: 56px;
        border: 0;
        border-radius: 14px;
        background: #fff;
        box-shadow: 0 10px 30px rgba(15, 23, 42, .05);
    }

    .fx-lookup-form {
        grid-template-columns: 1fr;
    }

    .fx-journey-line.vf-order-timeline,
    .fx-journey-line {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .fx-journey-step {
        grid-template-columns: 42px minmax(0, 1fr);
        justify-items: start;
        text-align: left;
    }

    .fx-journey-step small {
        grid-column: 2;
        margin-top: -8px;
    }

    .product-detail-shell {
        gap: 18px;
    }

    .product-detail-panel {
        border: 0;
        background: transparent;
        box-shadow: none;
        padding: 0 0 96px;
    }

    .product-gallery-main {
        border-radius: 16px;
        aspect-ratio: 1 / 1.18;
        max-height: calc(100vh - 250px);
        min-height: 0;
    }

    .product-gallery-main img {
        height: 100%;
        object-fit: contain;
    }

    .product-gallery-thumbs {
        position: relative;
        z-index: 2;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        margin-top: 10px;
        padding-bottom: 6px;
    }

    .product-detail-panel h2 {
        font-size: 38px;
        font-weight: 950;
        letter-spacing: -.06em;
        line-height: .98;
    }

    .vf-guide-grid,
    .vf-local-form {
        grid-template-columns: 1fr;
    }

    .vf-local-form textarea,
    .vf-local-form .vf-form-actions {
        grid-column: auto;
    }

    .vf-notification-preview,
    .vf-notification-row {
        grid-template-columns: 44px minmax(0, 1fr);
    }

    .vf-notification-row small,
    .vf-notification-preview small {
        grid-column: 2;
    }

    .vf-app-page {
        width: min(100% - 28px, 1080px);
        padding-top: 28px;
    }

    .fx-page-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .fx-cart-item {
        grid-template-columns: 94px minmax(0, 1fr);
        gap: 12px;
        padding: 10px;
    }

    .fx-cart-item__bottom,
    .fx-qty-form,
    .coupon-form,
    .fx-payment-tabs {
        align-items: stretch;
        flex-direction: column;
        grid-template-columns: 1fr;
    }

    .fx-cart-item__bottom {
        display: grid;
    }

    .fx-qty-form .form-control {
        width: 100%;
    }

    .checkout-item,
    .fx-success-item {
        grid-template-columns: 52px minmax(0, 1fr);
    }

    .checkout-item>strong,
    .fx-success-item>strong {
        grid-column: 2;
    }

    .fx-journey-line,
    .fx-success-info-grid {
        grid-template-columns: 1fr;
    }
}
