/* Meduseh storefront theme — modern minimal editorial (v7 layer at the end of this file).
   Palette: burgundy #4A0018 / gray #6D6B6B / off-white #F8F8FA (no black surfaces, no blue).
   Scoped to .store-theme (set by MainLayout on public pages only): admin and accounting are untouched. */

.store-theme {
    --cream: #f8f8fa;
    --paper: #ffffff;
    --cream-deep: #efeff3;
    --peach: #f4eef0;
    --blush: #f6f0f2;
    --butter: #f1f0f3;
    --sage: #eeeef1;
    --sky: #eeeef1;
    --orange: #4a0018;
    --orange-deep: #4a0018;
    --orange-soft: #f3e6ea;
    --brown: #24121a;           /* text only */
    --brown-soft: #6d6b6b;
    --ring: #e6e5ea;
    --gutter: clamp(16px, 4vw, 56px);
    --ease: cubic-bezier(.22, .8, .24, 1);
    --spring: cubic-bezier(.34, 1.56, .64, 1);

    --bg: var(--cream);
    --surface: var(--paper);
    --surface-soft: var(--cream);
    --text: var(--brown);
    --text-muted: var(--brown-soft);
    --line: var(--ring);
    --yellow: var(--peach);
    --yellow-soft: var(--cream);
    --shadow: 0 12px 30px rgba(74, 0, 24, .10);
    --radius-lg: 20px;
    --radius-md: 16px;
    --radius-sm: 10px;

    background: var(--cream);
    color: var(--brown);
}
body:has(.store-theme) { background: #f8f8fa; }
.store-theme main { background: var(--cream); }
.store-theme ::selection { background: var(--orange); color: #fff; }
.store-theme :focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; border-radius: 12px; }
.store-theme h1, .store-theme h2, .store-theme h3 { color: var(--brown); }

@keyframes st-pop    { 0% { transform: scale(.5); } 60% { transform: scale(1.15); } 100% { transform: scale(1); } }
@keyframes st-wiggle { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(-5deg); } 75% { transform: rotate(5deg); } }
@keyframes st-float  { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes st-ken    { from { transform: scale(1.07); } to { transform: scale(1); } }
@keyframes st-rise   { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes st-fill   { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* scroll-linked reveals: CSS only, transform/opacity only */
@supports (animation-timeline: view()) {
    .store-theme .store-section--showcase,
    .store-theme .cart-item-card,
    .store-theme .checkout-section,
    .store-theme .product-detail-section {
        animation: st-rise linear both;
        animation-timeline: view();
        animation-range: entry 0% entry 30%;
    }
}

/* ---------- buttons: soft "sticker" style ---------- */
.store-theme .button-primary,
.store-theme .search-form button {
    background: var(--orange);
    color: #fff;
    border: 0;
    border-radius: 999px;
    font-weight: 800;
    box-shadow: 0 6px 16px rgba(74, 0, 24, .32);
    transition: transform .18s var(--spring), box-shadow .18s var(--ease), background-color .2s;
}
.store-theme .button-primary:hover { background: var(--orange); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(74, 0, 24, .32); }
.store-theme .button-primary:active { transform: translateY(3px); box-shadow: 0 3px 4px rgba(74, 0, 24, .32); }
.store-theme .button-primary:disabled { opacity: .55; box-shadow: none; }

.store-theme .button-secondary,
.store-theme .nav-button,
.store-theme .button-muted {
    background: var(--paper);
    color: var(--orange-deep);
    border: 2px solid var(--orange);
    border-radius: 999px;
    font-weight: 700;
    transition: transform .18s var(--spring), background-color .2s, color .2s;
}
.store-theme .button-secondary:hover,
.store-theme .button-muted:hover { background: var(--orange-soft); transform: translateY(-2px); }
.store-theme .button-secondary:active,
.store-theme .button-muted:active { transform: scale(.96); }
.store-theme .button-ghost { color: var(--orange-deep); }

/* ---------- surfaces ---------- */
.store-theme .surface,
.store-theme .surface-panel,
.store-theme .catalog-toolbar,
.store-theme .catalog-hero {
    background: var(--paper);
    border: 2px solid var(--ring);
    border-radius: var(--radius-md);
    box-shadow: none;
}
.store-theme .store-chip { background: var(--peach); color: var(--orange-deep); font-weight: 700; }
.store-theme .store-chip--accent { background: var(--orange); color: #fff; }
.store-theme .breadcrumb-list { background: transparent; }
.store-theme .breadcrumb-item, .store-theme .breadcrumb-item a, .store-theme .breadcrumb-item::before { color: var(--brown-soft); }
.store-theme .breadcrumb-item.is-active { color: var(--orange-deep); }

/* playful headings: orange squiggle underline */
.store-theme .store-section--showcase .store-section__eyebrow::after,
.store-theme .section-heading h1::after,
.store-theme .catalog-hero h1::after {
    content: "";
    display: block;
    width: 3.2em;
    max-width: 60%;
    height: 12px;
    margin-top: .3rem;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 12'%3E%3Cpath d='M2 6 Q12 -1 22 6 T42 6 T62 6 T78 6' fill='none' stroke='%234a0018' stroke-width='3.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat start / contain;
}

/* =====================================================================
   HEADER — clean bar that collapses into a small floating menu on scroll
   ===================================================================== */
@media (min-width: 781px) {
    .store-theme .site-header { background: transparent; border: 0; box-shadow: none; backdrop-filter: none; }
    /* fixed height: when the header collapses its nav-shell becomes position:fixed and leaves the flow; without a
       reserved height the whole page shortened by 76px on collapse (layout jump, scroll clamping, flicker at the bottom). */
    .store-theme .site-header--solid { position: sticky; top: 0; z-index: 1200; height: 77px; box-sizing: border-box; background: #fff; border-bottom: 1px solid var(--ring); }
    .store-theme .site-header--hero { position: absolute; top: 0; inset-inline: 0; height: 120px; background: linear-gradient(to bottom, rgba(45, 22, 10, .42), rgba(45, 22, 10, 0)); }
    .store-theme .site-header .nav-shell { max-width: 1280px; height: 76px; margin-inline: auto; padding: 0 var(--space-3) !important; }
    .store-theme .desktop-navbar,
    .store-theme .desktop-navbar--solid {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
        align-items: center;
        direction: rtl;
        height: 100%;
        max-width: none;
        margin: 0;
        padding: 0;
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }
    .store-theme .brand { display: block; }
    .store-theme .site-header--hero .brand__logo,
    .store-theme .brand__logo {
        position: static; width: 52px; height: 52px; border-radius: 50%; object-fit: cover;
        box-shadow: 0 0 0 3px #fff, 0 6px 16px rgba(74, 0, 24, .18);
        transition: transform .5s var(--spring);
    }
    .store-theme .brand:hover .brand__logo { transform: rotate(-10deg) scale(1.08); }

    /* search: a clean underline field */
    .store-theme .site-header--hero .search-form,
    .store-theme .search-form {
        height: 40px; min-height: 40px; max-width: 320px; padding: 0 2px;
        background: transparent; border: 0; border-bottom: 1.5px solid var(--ring); border-radius: 0; box-shadow: none;
        transition: border-color .25s var(--ease);
    }
    .store-theme .search-form:focus-within { border-bottom-color: var(--orange); }
    .store-theme .search-form input { color: var(--brown); min-height: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
    .store-theme .search-form button { box-shadow: none; background: transparent; color: var(--brown-soft); }
    .store-theme .site-header--hero .search-form { border-bottom-color: rgba(255, 255, 255, .75); }
    .store-theme .site-header--hero .search-form input,
    .store-theme .site-header--hero .search-form,
    .store-theme .site-header--hero .search-form i { color: #fff; }
    .store-theme .site-header--hero .search-form input::placeholder { color: rgba(255, 255, 255, .85); }

    /* actions: icon + label, animated underline */
    .store-theme .desktop-navbar__actions { display: flex; align-items: center; justify-content: flex-end; gap: 26px !important; padding: 0 !important; }
    .store-theme .desktop-navbar__actions > a,
    .store-theme .user-menu__trigger {
        position: relative; display: inline-flex; align-items: center; gap: .5rem;
        width: auto; height: 40px; padding: 0; background: transparent; border: 0; border-radius: 0;
        color: var(--brown); font-weight: 700; font-size: .92rem;
    }
    .store-theme .site-header--hero .desktop-navbar__actions > a,
    .store-theme .site-header--hero .user-menu__trigger { color: #fff; }
    .store-theme .desktop-navbar__actions > a:not(.auth-link)::after {
        content: ""; position: absolute; inset-inline: 0; bottom: 2px; height: 2px; border-radius: 2px;
        background: var(--orange); transform: scaleX(0); transform-origin: right; transition: transform .3s var(--ease);
    }
    .store-theme .desktop-navbar__actions > a:hover::after { transform: scaleX(1); }
    .store-theme .desktop-navbar__actions i { transition: transform .3s var(--spring); }
    .store-theme .desktop-navbar__actions > a:hover i { transform: translateY(-2px) rotate(-8deg); }
    .store-theme .nav-label { white-space: nowrap; }
    @media (max-width: 1099px) { .store-theme .site-header .nav-label { display: none; } .store-theme .desktop-navbar__actions { gap: 18px !important; } }
    .store-theme .desktop-navbar__actions > a.auth-link {
        padding: 0 20px; border-radius: 12px; background: var(--orange); color: #fff; white-space: nowrap;
        box-shadow: 0 5px 12px rgba(74, 0, 24, .32); transition: transform .2s var(--spring), box-shadow .2s;
    }
    .store-theme .desktop-navbar__actions > a.auth-link:hover { transform: translateY(-2px); box-shadow: 0 7px 20px rgba(74, 0, 24, .32); }
    .store-theme.layout-shell { padding-top: 0; }

    /* ---- collapsed: tiny round indicator, expands on hover / focus ---- */
    .hdr-collapsed .store-theme .site-header--solid,
    .hdr-collapsed .store-theme .site-header--hero { background: transparent; border-color: transparent; pointer-events: none; }
    .hdr-collapsed .store-theme .site-header .nav-shell {
        position: fixed; top: 16px; inset-inline-start: 16px; z-index: 1500;
        width: auto; max-width: none; height: auto; padding: 0 !important; pointer-events: auto;
    }
    .hdr-collapsed .store-theme .desktop-navbar {
        display: flex !important; flex-direction: column; align-items: stretch; gap: 0;
        width: 56px; height: auto; max-height: 56px; overflow: hidden;
        background: #fff; border: 2px solid var(--ring); border-radius: 28px;
        box-shadow: 0 8px 26px rgba(74, 0, 24, .16);
        transition: width .4s var(--ease), max-height .5s var(--ease), box-shadow .3s;
        animation: st-pop .45s var(--spring);
    }
    .hdr-collapsed .store-theme .desktop-navbar__section--center { order: -1; display: flex; align-items: center; min-height: 52px; padding: 0; }
    .hdr-collapsed .store-theme .brand { display: flex; align-items: center; gap: .75rem; width: 100%; }
    .hdr-collapsed .store-theme .brand__logo { width: 48px; height: 48px; margin: 0; box-shadow: none; }
    .hdr-collapsed .store-theme .desktop-navbar__section--search,
    .hdr-collapsed .store-theme .desktop-navbar__section--actions { opacity: 0; padding: 0 14px 10px; transition: opacity .2s var(--ease); }
    .hdr-collapsed .store-theme .desktop-navbar:hover,
    .hdr-collapsed .store-theme .desktop-navbar:focus-within { width: 300px; max-height: 460px; box-shadow: 0 18px 44px rgba(74, 0, 24, .24); }
    .hdr-collapsed .store-theme .desktop-navbar:hover .desktop-navbar__section--search,
    .hdr-collapsed .store-theme .desktop-navbar:hover .desktop-navbar__section--actions,
    .hdr-collapsed .store-theme .desktop-navbar:focus-within .desktop-navbar__section--search,
    .hdr-collapsed .store-theme .desktop-navbar:focus-within .desktop-navbar__section--actions { opacity: 1; transition-delay: .12s; }
    .hdr-collapsed .store-theme .desktop-navbar:hover .brand::after,
    .hdr-collapsed .store-theme .desktop-navbar:focus-within .brand::after { content: "مدوسه"; font-weight: 900; color: var(--brown); white-space: nowrap; }
    /* panel colors regardless of hero state */
    .hdr-collapsed .store-theme .site-header--hero .search-form,
    .hdr-collapsed .store-theme .site-header--hero .search-form input,
    .hdr-collapsed .store-theme .site-header--hero .search-form i,
    .hdr-collapsed .store-theme .site-header--hero .desktop-navbar__actions > a,
    .hdr-collapsed .store-theme .site-header--hero .user-menu__trigger { color: var(--brown); }
    .hdr-collapsed .store-theme .site-header--hero .search-form { border-bottom-color: var(--ring); }
    .hdr-collapsed .store-theme .site-header--hero .search-form input::placeholder { color: var(--brown-soft); }
    .hdr-collapsed .store-theme .search-form { max-width: none; width: 100%; }
    .hdr-collapsed .store-theme .desktop-navbar__actions { flex-direction: column; align-items: stretch; gap: 2px !important; }
    .hdr-collapsed .store-theme .desktop-navbar__actions > a,
    .hdr-collapsed .store-theme .user-menu__trigger { height: 42px; padding: 0 12px; border-radius: 12px; transition: background-color .2s; }
    .hdr-collapsed .store-theme .desktop-navbar__actions > a:hover { background: var(--orange-soft); }
    .hdr-collapsed .store-theme .desktop-navbar__actions > a::after { display: none; }
    .hdr-collapsed .store-theme .site-header .nav-label { display: inline; }
    .hdr-collapsed .store-theme .user-menu { display: contents; }
    .hdr-collapsed .store-theme .user-menu__trigger { display: none; }
    .hdr-collapsed .store-theme .user-menu__dropdown {
        position: static; display: grid !important; opacity: 1 !important; visibility: visible !important; transform: none !important;
        min-width: 0; padding: 0; background: transparent; border: 0; box-shadow: none;
    }
    .hdr-collapsed .store-theme .user-menu__dropdown a,
    .hdr-collapsed .store-theme .user-menu__dropdown button { padding: 10px 12px; border-radius: 12px; text-align: start; color: var(--brown); }
    .hdr-collapsed .store-theme .user-menu__dropdown a:hover,
    .hdr-collapsed .store-theme .user-menu__dropdown button:hover { background: var(--orange-soft); }
}

@media (max-width: 780px) {
}

/* =====================================================================
   HERO
   ===================================================================== */
.store-theme .hero-banner--immersive {
    border-radius: 0 0 44px 44px;
    overflow: hidden;
    background: var(--peach);
}
.store-theme .hero-banner__slide.is-active .hero-banner__image { animation: st-ken 9s ease-out both; transform-origin: center top; }
.store-theme .hero-banner__arrow {
    position: absolute;
    top: 50%;
    z-index: 4;
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    margin-top: -25px;
    border: 0;
    border-radius: 50%;
    background: rgba(248, 248, 250, .92);
    color: var(--orange-deep);
    font-size: 1rem;
    cursor: pointer;
    box-shadow: 0 8px 20px rgba(74, 0, 24, .2);
    opacity: 0;
    transform: scale(.8);
    transition: opacity .25s var(--ease), transform .25s var(--spring), background-color .2s;
}
.store-theme .hero-banner__arrow--prev { right: 22px; }
.store-theme .hero-banner__arrow--next { left: 22px; }
.store-theme .hero-banner__slider:hover .hero-banner__arrow,
.store-theme .hero-banner__arrow:focus-visible { opacity: 1; transform: none; }
.store-theme .hero-banner__arrow:hover { background: var(--orange); color: #fff; }
@media (hover: none) { .store-theme .hero-banner__arrow { display: none; } }

.store-theme .hero-banner--immersive .hero-banner__dots {
    bottom: 34px;
    gap: 8px;
    padding: 8px 12px;
    background: rgba(248, 248, 250, .88);
    border-radius: 999px;
}
.store-theme .hero-banner--immersive .hero-banner__dot {
    position: relative;
    width: 10px;
    height: 10px;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 999px;
    background: var(--ring);
    transition: width .35s var(--ease), background-color .2s;
}
.store-theme .hero-banner--immersive .hero-banner__dot.is-active { width: 38px; background: var(--ring); }
.store-theme .hero-banner--immersive .hero-banner__dot.is-active::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: var(--orange);
    transform-origin: right center;
    animation: st-fill 5s linear both;
}

@media (max-width: 780px) {
    .store-theme .main-content--hero .hero-banner--immersive {
        width: 100%;
        height: clamp(440px, 72svh, 700px);
        max-height: none;
        margin: 0;
        border-radius: 0 0 36px 36px;
    }
    .store-theme .main-content--hero .hero-banner--immersive .hero-banner__slider,
    .store-theme .main-content--hero .hero-banner--immersive .hero-banner__slide { height: 100%; min-height: 0; }
    .store-theme .main-content--hero .hero-banner--immersive .hero-banner__image {
        height: 100%;
        object-fit: cover !important;
        object-position: center top !important;
    }
    .store-theme .hero-banner--immersive .hero-banner__dots { bottom: 52px; }
    .store-theme .main-content { padding-bottom: 7rem; }
}

/* =====================================================================
   CATEGORY STRIP — tray that overlaps the hero's curved edge
   ===================================================================== */
.store-theme .category-list-section {
    position: relative;
    z-index: 3;
    width: min(100% - 24px, 1180px);
    margin: -34px auto 0;
    padding: 18px 6px 12px;
    background: var(--paper);
    border: 2px solid var(--ring);
    border-radius: 36px;
    box-shadow: 0 16px 36px rgba(74, 0, 24, .12);
}
.store-theme .category-strip {
    display: flex;
    justify-content: flex-start;
    gap: 14px;
    padding: 4px 14px 8px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    overscroll-behavior-x: contain;
}
.store-theme .category-strip::-webkit-scrollbar { display: none; }
@media (min-width: 1000px) { .store-theme .category-strip { gap: 24px; } }
.store-theme .category-strip > :first-child { margin-inline-start: auto; }
.store-theme .category-strip > :last-child { margin-inline-end: auto; }

.store-theme .category-card {
    flex: 0 0 84px;
    min-width: 84px;
    padding: 0;
    gap: .5rem;
    scroll-snap-align: start;
    color: var(--brown);
}
@media (min-width: 700px) { .store-theme .category-card { flex-basis: 108px; min-width: 108px; } }
.store-theme .category-card__image-wrap {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    flex: none;
    padding: 4px;
    overflow: hidden;
    border: 3px solid var(--ring);
    border-radius: 42% 58% 55% 45% / 52% 45% 55% 48%;   /* soft blob */
    background: var(--peach);
    transition: border-color .25s var(--ease), border-radius .5s var(--ease), transform .3s var(--spring);
}
.store-theme .category-card:nth-child(4n+2) .category-card__image-wrap { background: var(--blush); }
.store-theme .category-card:nth-child(4n+3) .category-card__image-wrap { background: var(--butter); }
.store-theme .category-card:nth-child(4n)   .category-card__image-wrap { background: var(--sage); }
.store-theme .category-card__image { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; }
.store-theme .category-card strong { min-height: 0; font-size: .86rem; font-weight: 800; line-height: 1.4; }
@media (hover: hover) {
    .store-theme .category-card:hover { transform: none; }
    .store-theme .category-card:hover .category-card__image-wrap {
        border-color: var(--orange);
        border-radius: 58% 42% 45% 55% / 45% 55% 48% 52%;
        transform: translateY(-5px) scale(1.06);
        animation: st-wiggle .5s var(--ease);
    }
    .store-theme .category-card:hover strong { color: var(--orange-deep); }
}
.store-theme .category-card:active .category-card__image-wrap { transform: scale(.92); }

/* =====================================================================
   PRODUCT BOARD (cards)
   ===================================================================== */
.store-theme .store-grid { display: block !important; columns: 2; column-gap: 12px; width: 100%; }
@media (min-width: 700px)  { .store-theme .store-grid { columns: 3; column-gap: 18px; } }
@media (min-width: 1020px) { .store-theme .store-grid { columns: 4; column-gap: 22px; } }
.store-theme .store-grid > * { break-inside: avoid; margin: 0 0 22px !important; }

.store-theme .store-card,
.store-theme .store-section--showcase .store-card {
    width: 100% !important;
    margin: 0;
    gap: .55rem;
    padding: 8px 8px 12px;
    background: var(--paper);
    border: 2px solid var(--ring);
    border-radius: 30px;
    transition: transform .35s var(--spring), box-shadow .3s var(--ease), border-color .2s;
}
.store-theme .store-card__media,
.store-theme .store-section--showcase .store-card__media {
    width: 100%;
    height: auto;
    max-height: none;
    aspect-ratio: 3 / 4.1;
    border-radius: 24px;
    background: var(--peach);
}
.store-theme .store-grid > :nth-child(4n+2) .store-card__media { background: var(--blush); aspect-ratio: 3 / 3.5; }
.store-theme .store-grid > :nth-child(4n+3) .store-card__media { background: var(--butter); }
.store-theme .store-grid > :nth-child(4n) .store-card__media   { background: var(--sage); aspect-ratio: 3 / 4.6; }
.store-theme .store-card__media img { transition: transform .6s var(--ease); }
.store-theme .store-card__badge {
    top: .7rem;
    inset-inline-start: .7rem;
    padding: .35rem .75rem;
    background: var(--orange);
    color: #fff;
    font-size: .78rem;
    transform: rotate(-6deg);
    box-shadow: 0 5px 12px rgba(74, 0, 24, .32);
}
.store-theme .store-card__body { padding: .1rem .55rem 0; gap: .3rem; }
.store-theme .store-card__title { font-size: .95rem; font-weight: 700; line-height: 1.7; color: var(--brown); }
.store-theme .store-card__footer .button-ghost { padding: 0; flex-wrap: wrap; gap: .1rem .5rem; font-weight: 900; color: var(--orange); font-size: 1.02rem; }
.store-theme .store-card__footer .button-ghost i { transition: transform .3s var(--spring); font-size: .8rem; }
.store-theme .store-price__original { color: var(--brown-soft); font-weight: 400; font-size: .82rem; }
.store-theme .store-stock-status--out { background: var(--cream-deep); color: var(--brown-soft); border-color: var(--ring); }
@media (hover: hover) {
    .store-theme .store-card:hover { transform: translateY(-6px) rotate(-.8deg); border-color: var(--orange); box-shadow: 0 16px 32px rgba(74, 0, 24, .18); }
    .store-theme .store-card:hover .store-card__media img { transform: scale(1.06); }
    .store-theme .store-card:hover .button-ghost i { transform: translateX(-6px); }
}
.store-theme .store-card:active { transform: scale(.975); }

/* =====================================================================
   HOME SECTIONS
   ===================================================================== */
.store-theme #campaigns.page-shell.stack-lg { max-width: 1360px; margin-inline: auto; overflow-x: clip; }
.store-theme .store-section--showcase,
.store-theme .store-section--showcase .store-section__layout,
.store-theme .store-section--showcase .store-section__products,
.store-theme .store-section--showcase .store-section__rail,
.store-theme .store-section--showcase .store-section__item,
.store-theme .store-section--showcase .store-card { min-width: 0; max-width: 100%; }
.store-theme .store-section--showcase { margin-top: clamp(2.5rem, 7vw, 5rem); }
.store-theme .store-section--showcase .store-section__layout { display: block; }
.store-theme .store-section--showcase .store-section__feature {
    position: static;
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    min-height: 0;
    padding: 0 var(--space-2) 1.25rem;
    background: transparent;
    border: 0;
    box-shadow: none;
    text-align: start;
}
.store-theme .store-section--showcase .store-section__eyebrow {
    margin: 0;
    font-size: clamp(1.9rem, 6.5vw, 3.6rem);
    line-height: 1.1;
    font-weight: 900;
    letter-spacing: 0;
    color: var(--brown);
}
.store-theme .store-section--showcase .store-section__cta {
    flex: none;
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .6rem 1.15rem;
    border: 2px solid var(--orange);
    border-radius: 999px;
    background: var(--paper);
    color: var(--orange-deep);
    font-weight: 800;
    transition: background-color .2s, color .2s, transform .2s var(--spring);
}
.store-theme .store-section--showcase .store-section__cta i { font-size: .8rem; transition: transform .3s var(--spring); }
.store-theme .store-section--showcase .store-section__cta:hover { background: var(--orange); color: #fff; transform: translateY(-2px); }
.store-theme .store-section--showcase .store-section__cta:hover i { transform: translateX(-6px); }
.store-theme .store-section--showcase .store-section__products { display: block; overflow: visible; }
.store-theme .store-section--showcase .store-section__scroll { display: none; }
.store-theme .store-section--showcase .store-section__item { display: block; scroll-snap-align: start; }

/* A — spotlight */
.store-theme .store-section--spotlight .store-section__rail {
    display: grid; grid-auto-flow: row; grid-auto-columns: auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px; overflow: visible; padding: 0 var(--space-2); align-items: start;
}
.store-theme .store-section--spotlight .store-section__item:first-child { grid-column: 1 / -1; }
.store-theme .store-section--spotlight .store-section__item:first-child .store-card__media { aspect-ratio: 4 / 4.6; }
@media (min-width: 900px) {
    .store-theme .store-section--spotlight .store-section__rail { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; padding-inline: var(--space-3); }
    .store-theme .store-section--spotlight .store-section__item:first-child { grid-column: span 2; grid-row: span 2; }
    .store-theme .store-section--spotlight .store-section__item:first-child .store-card__media { aspect-ratio: 4 / 4.9; }
    .store-theme .store-section--spotlight .store-section__item:first-child .store-card__title { font-size: 1.2rem; }
}

/* B — rail: carousel; on desktop the heading becomes a peach feature card */
.store-theme .store-section--rail .store-section__rail {
    display: grid; grid-auto-flow: column; grid-auto-columns: min(62vw, 240px);
    gap: 12px; padding: .5rem var(--space-2) 1rem; overflow-x: auto;
    scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain;
}
.store-theme .store-section--rail .store-section__rail::-webkit-scrollbar { display: none; }
.store-theme .store-section--rail .store-section__products { position: relative; }
.store-theme .store-section--rail .store-section__scroll {
    display: inline-flex; position: absolute; top: 38%; z-index: 3;
    width: 46px; height: 46px; border-radius: 50%; background: var(--paper); color: var(--orange-deep);
    border: 2px solid var(--orange); box-shadow: 0 8px 18px rgba(74, 0, 24, .18);
}
.store-theme .store-section--rail .store-section__scroll--prev { right: 10px; }
.store-theme .store-section--rail .store-section__scroll--next { left: 10px; }
@media (max-width: 899px) { .store-theme .store-section--rail .store-section__scroll { display: none; } }
@media (min-width: 900px) {
    .store-theme .store-section--rail .store-section__layout { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 22px; padding-inline: var(--space-3); align-items: stretch; }
    .store-theme .store-section--rail .store-section__feature {
        flex-direction: column; align-items: flex-start; justify-content: space-between;
        padding: 2rem; background: var(--peach); border: 2px solid var(--ring); border-radius: 36px;
    }
    .store-theme .store-section--rail .store-section__rail { grid-auto-columns: 270px; gap: 22px; padding-inline: 0; }
}

/* C — stagger */
.store-theme .store-section--stagger .store-section__rail {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-flow: row; grid-auto-columns: auto;
    gap: 0 12px; overflow: visible; padding: 0 var(--space-2); align-items: start;
}
.store-theme .store-section--stagger .store-section__item:nth-child(even) { margin-top: 2.5rem; }
.store-theme .store-section--stagger .store-card__media { aspect-ratio: 3 / 4.4; }
@media (min-width: 900px) {
    .store-theme .store-section--stagger .store-section__rail { grid-template-columns: repeat(auto-fit, minmax(200px, 300px)); justify-content: center; gap: 0 28px; }
    .store-theme .store-section--stagger .store-section__item:nth-child(even) { margin-top: 3.5rem; }
}

/* =====================================================================
   BOTTOM NAV (mobile) + FOOTER
   ===================================================================== */
.store-theme .mobile-bottom-nav {
    background: rgba(248, 248, 250, .97);
    border: 2px solid var(--ring);
    border-radius: 999px;
    box-shadow: 0 12px 28px rgba(74, 0, 24, .2);
    backdrop-filter: none;
}
.store-theme .mobile-bottom-nav__link { color: var(--brown-soft); border-radius: 999px; min-height: 52px; transition: transform .25s var(--spring), background-color .2s, color .2s; }
.store-theme .mobile-bottom-nav__link:active { transform: scale(.88); }
.store-theme .mobile-bottom-nav__link.active { background: var(--orange); color: #fff; }
.store-theme .mobile-bottom-nav__link--brand .brand__logo_mobile { border-radius: 50%; }

.store-theme .site-footer { margin-top: 5rem; padding: 0 12px 12px; background: transparent; border: 0; border-radius: 0; color: var(--brown); }
.store-theme .site-footer__grid {
    position: relative; overflow: hidden;
    display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: clamp(1rem, 3vw, 2rem);
    max-width: 1280px; margin-inline: auto; padding: clamp(1.5rem, 4vw, 3rem);
    background: var(--peach); border-radius: 44px;
}
.store-theme .site-footer__grid::before {
    content: ""; position: absolute; top: -140px; inset-inline-start: -90px; width: 340px; height: 340px;
    border-radius: 50%; background: #fff; opacity: .55; pointer-events: none;
}
.store-theme .site-footer__grid > div { position: relative; display: grid; gap: .8rem; align-content: start; min-width: 0; }
.store-theme .site-footer strong { font-size: 1.2rem; font-weight: 900; color: var(--brown); }
.store-theme .site-footer strong::after { content: ""; display: block; width: 34px; height: 4px; margin-top: .45rem; border-radius: 4px; background: var(--orange); }
.store-theme .site-footer p { margin: 0; color: var(--brown-soft); line-height: 2; font-size: .95rem; }
.store-theme .site-footer__logo { width: 78px; height: 78px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 4px #fff, 0 10px 24px rgba(74, 0, 24, .2); transition: transform .6s var(--spring); }
.store-theme .site-footer__about:hover .site-footer__logo { transform: rotate(-10deg) scale(1.06); }
.store-theme .site-footer__about img[alt=""]:not(.site-footer__logo) { width: 64px; height: auto; }
/* اینماد + نماد اعتماد دیجی‌کالا side by side */
.store-theme .site-footer__trust { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.store-theme .site-footer__trust img { width: 64px; height: auto; }
/* The official BWDK top banner is position:fixed. Reserve its height (kept in sync by js/bwdk.js) so it
   never covers the page top or the sticky header. Only applies where the banner element is rendered. */
html:has(digify-top-banner) body { padding-top: var(--bwdk-banner-h, 56px); }
html:has(digify-top-banner) .store-theme .site-header--solid,
html:has(digify-top-banner) .store-theme .site-header--hero { top: var(--bwdk-banner-h, 56px); }
/* BWDK cart / checkout widget keeps the page rhythm */
.bwdk-widget { display: block; margin-block-end: 1rem; }

.store-theme .site-footer__links a {
    display: flex; align-items: center; justify-content: space-between; gap: .75rem;
    padding: .8rem 1.1rem; background: #fff; border-radius: 16px; color: var(--brown); font-weight: 700;
    transition: background-color .25s var(--ease), color .25s var(--ease), transform .3s var(--spring);
}
.store-theme .site-footer__links a::after { content: "\f060"; font-family: "Font Awesome 7 Pro"; font-weight: 900; font-size: .8rem; color: var(--orange); transition: transform .3s var(--spring), color .25s; }
.store-theme .site-footer__links a:hover { background: var(--orange); color: #fff; transform: translateX(-5px); }
.store-theme .site-footer__links a:hover::after { color: #fff; transform: translateX(-4px); }

.store-theme .site-footer__contact { padding: 1.4rem; background: var(--orange); border-radius: 32px; color: #fff; }
.store-theme .site-footer__contact strong, .store-theme .site-footer__contact span { color: #fff; }
.store-theme .site-footer__contact strong::after { background: #fff; }
.store-theme .site-footer__contact span { display: flex; align-items: center; gap: .6rem; font-size: .92rem; line-height: 1.8; }
.store-theme .site-footer__contact a { display: inline-flex; align-items: center; gap: .6rem; width: 100%; padding: .5rem .8rem; border-radius: 14px; background: rgba(255, 255, 255, .14); color: #fff !important; font-weight: 700; text-decoration: none; transition: background-color .25s, color .25s, transform .3s var(--spring); }
.store-theme .site-footer__contact a:hover { background: #fff; color: var(--orange) !important; transform: translateX(-4px); }
.store-theme .site-footer__contact svg { fill: currentColor; }

.store-theme .site-footer .page-shell:last-child { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1.25rem; }
.store-theme .site-footer__copyright { margin: 0; padding: 0; text-align: start; color: var(--brown-soft); font-size: .85rem; }
.store-theme .site-footer__copyright a { color: var(--orange-deep); font-weight: 800; }
.store-theme .site-footer__top {
    flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%;
    background: var(--orange); color: #fff; box-shadow: 0 6px 16px rgba(74, 0, 24, .32);
    transition: transform .25s var(--spring), box-shadow .2s;
}
.store-theme .site-footer__top:hover { transform: translateY(-4px); box-shadow: 0 10px 32px rgba(74, 0, 24, .32); }
.store-theme .site-footer__top:active { transform: translateY(2px); box-shadow: 0 3px 4px rgba(74, 0, 24, .32); }
@media (max-width: 900px) { .store-theme .site-footer__grid { grid-template-columns: 1fr; border-radius: 32px; } .store-theme .site-footer { padding-bottom: 7.5rem; } }

/* =====================================================================
   LISTINGS / FILTERS
   ===================================================================== */
.store-theme .catalog-hero { padding: clamp(1.25rem, 4vw, 2.25rem); background: var(--peach); }
.store-theme .catalog-hero h1, .store-theme .catalog-page-header h1 { font-weight: 900; font-size: clamp(1.8rem, 5.5vw, 3rem); }
.store-theme .catalog-toolbar { padding: .75rem 1rem; }
.store-theme .catalog-filters__trigger { border-radius: 999px; border: 2px solid var(--orange); color: var(--orange-deep); background: var(--paper); font-weight: 800; }
.store-theme .catalog-pagination__link,
.store-theme .catalog-pagination__nav { border-radius: 999px; border: 2px solid var(--ring); background: var(--paper); transition: transform .2s var(--spring); }
.store-theme .catalog-pagination__link:hover { transform: translateY(-2px); border-color: var(--orange); }
.store-theme .catalog-pagination__link.is-active,
.store-theme .catalog-pagination__link[aria-current="page"] { background: var(--orange); color: #fff; border-color: var(--orange); }
.store-theme .choice-row input[type="checkbox"],
.store-theme input[type="radio"] { accent-color: var(--orange); }

/* =====================================================================
   PRODUCT PAGE
   ===================================================================== */
.store-theme .product-detail__top { display: grid; gap: 1.25rem; align-items: start; }
@media (min-width: 960px) {
    .store-theme .product-detail__top { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 2rem; }
    .store-theme .product-summary { position: sticky; top: 96px; }
}
.store-theme .product-gallery { padding: 10px; background: var(--peach); border-radius: 40px; border: 2px solid var(--ring); }
.store-theme .product-gallery__viewport { border-radius: 30px; overflow: hidden; }
.store-theme .product-gallery__slide img { border-radius: 30px; }
.store-theme .product-thumb { border-radius: 18px; border: 3px solid transparent; overflow: hidden; transition: transform .25s var(--spring), border-color .2s; }
.store-theme .product-thumb.is-active { border-color: var(--orange); transform: translateY(-3px); }
.store-theme .product-summary { padding: clamp(1.1rem, 3vw, 1.75rem); border-radius: 36px; background: var(--paper); border: 2px solid var(--ring); display: grid; gap: 1rem; }
.store-theme .product-summary h1 { font-weight: 900; font-size: clamp(1.5rem, 4.5vw, 2.3rem); line-height: 1.35; }
.store-theme .product-price-card { padding: 1rem 1.15rem; background: var(--peach); border: 2px dashed var(--orange); border-radius: 26px; }
.store-theme .product-price-card__row--final strong { color: var(--orange-deep); font-size: 1.6rem; font-weight: 900; }
.store-theme .variant-options { display: flex; flex-wrap: wrap; gap: .5rem; }
.store-theme .variant-option,
.store-theme .variant-options button {
    min-height: 44px; padding: .45rem 1.1rem; border: 2px solid var(--ring); border-radius: 999px;
    background: var(--paper); color: var(--brown); font-weight: 700;
    transition: transform .2s var(--spring), border-color .2s, background-color .2s;
}
.store-theme .variant-options button:hover { border-color: var(--orange); transform: translateY(-2px); }
.store-theme .variant-option.is-selected,
.store-theme .variant-options button.is-selected,
.store-theme .variant-options button[aria-pressed="true"] { background: var(--orange); border-color: var(--orange); color: #fff; animation: st-pop .3s var(--spring); }
.store-theme .product-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.store-theme .product-actions .button-primary { flex: 1 1 200px; min-height: 54px; font-size: 1.05rem; }
.store-theme .product-detail-section { padding: clamp(1.1rem, 3vw, 1.75rem); border-radius: 32px; }
.store-theme .review-card { border-radius: 24px; background: var(--cream); }
.store-theme .review-badge { background: var(--sage); color: var(--orange-deep); border-radius: 999px; padding: .15rem .6rem; font-weight: 700; }
.store-theme .product-mobile-cartbar {
    background: rgba(248, 248, 250, .97); border: 2px solid var(--ring); border-radius: 28px;
    box-shadow: 0 12px 28px rgba(74, 0, 24, .22);
}
.store-theme .product-floating-cart { border-radius: 28px; }
.store-theme .product-review-ai-summary { background: var(--butter); border: 0; border-radius: 22px; }

/* =====================================================================
   CART / CHECKOUT / PAYMENT
   ===================================================================== */
.store-theme .checkout-steps { display: flex; align-items: center; margin: 0 auto; padding: 0; list-style: none; width: min(100%, 560px); }
.store-theme .checkout-steps__item { position: relative; display: flex; flex: 1 1 0; flex-direction: column; align-items: center; gap: .45rem; color: var(--brown-soft); font-size: .82rem; font-weight: 700; }
.store-theme .checkout-steps__item + .checkout-steps__item::before {
    content: ""; position: absolute; top: 17px;
    inset-inline-end: calc(50% + 24px); inset-inline-start: calc(-50% + 24px);
    height: 4px; border-radius: 4px; background: var(--ring);
}
.store-theme .checkout-steps__item.is-done::before,
.store-theme .checkout-steps__item.is-current::before { background: var(--orange) !important; }
.store-theme .checkout-steps__dot {
    position: relative; z-index: 1; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%;
    background: var(--paper); border: 3px solid var(--ring); color: var(--brown-soft); font-weight: 900;
    transition: background-color .3s var(--ease), border-color .3s var(--ease), color .3s;
}
.store-theme .checkout-steps__item.is-current { color: var(--orange-deep); }
.store-theme .checkout-steps__item.is-current .checkout-steps__dot { background: var(--orange); border-color: var(--orange); color: #fff; box-shadow: 0 0 0 6px var(--orange-soft); }
.store-theme .checkout-steps__item.is-done .checkout-steps__dot { background: var(--orange-soft); border-color: var(--orange); color: var(--orange-deep); animation: st-pop .4s var(--spring); }

.store-theme .section-heading { align-items: flex-end; margin-bottom: .25rem; }
.store-theme .section-heading h1 { font-size: clamp(1.9rem, 6vw, 3rem); font-weight: 900; line-height: 1.1; margin: 0; }
.store-theme .section-heading > div { display: flex; align-items: baseline; gap: .8rem; flex-wrap: wrap; }
.store-theme .section-heading__count { padding: .25rem .85rem; border-radius: 999px; background: var(--orange); color: #fff; font-size: .85rem; font-weight: 800; transform: rotate(-3deg); }

.store-theme .purchase-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; align-items: start; }
@media (min-width: 960px) {
    .store-theme .purchase-layout { grid-template-columns: minmax(0, 1fr) 390px; gap: 2rem; }
    .store-theme .purchase-summary,
    .store-theme .payment-flow-page .purchase-layout > aside { position: sticky; top: 96px; }
}
.store-theme .purchase-main { gap: 1rem; }
.store-theme .checkout-section, .store-theme .payment-card {
    padding: clamp(1.1rem, 3vw, 1.75rem); background: var(--paper); border: 2px solid var(--ring); border-radius: 32px; box-shadow: none;
}
.store-theme .checkout-section h2, .store-theme .payment-card h2 { display: flex; align-items: center; gap: .7rem; margin: 0 0 1rem; font-size: 1.2rem; font-weight: 900; }
.store-theme .checkout-section .row-between h2 { margin-bottom: 0; }
.store-theme .checkout-section > .row-between { margin-bottom: 1rem; align-items: center; gap: .75rem; }
.store-theme .step-badge { display: inline-grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--orange); color: #fff; font-size: .85rem; transform: rotate(-6deg); }

.store-theme .purchase-summary,
.store-theme .payment-flow-page .purchase-layout > aside {
    display: grid; gap: .85rem; padding: 1.5rem; background: var(--peach); color: var(--brown);
    border: 2px solid var(--orange); border-radius: 34px; box-shadow: 0 10px 0 var(--orange-soft);
}
.store-theme .purchase-summary h2 { margin: 0 0 .25rem; font-size: 1.25rem; font-weight: 900; }
.store-theme .purchase-summary p, .store-theme .purchase-summary span { color: var(--brown-soft); font-size: .9rem; }
.store-theme .purchase-summary strong { color: var(--brown); }
.store-theme .purchase-summary__row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.store-theme .purchase-summary__row--grand { margin-top: .35rem; padding-top: 1rem; border-top: 2px dashed var(--orange); }
.store-theme .purchase-summary__row--grand span { color: var(--brown); font-weight: 800; }
.store-theme .purchase-summary__row--grand strong { font-size: 1.5rem; color: var(--orange-deep); font-weight: 900; }
.store-theme .purchase-summary .button-primary,
.store-theme .payment-flow-page .purchase-layout > aside .button-primary { width: 100%; min-height: 56px; font-size: 1.05rem; }
.store-theme .payment-flow-page .purchase-layout > aside .button-secondary { width: 100%; }
.store-theme .purchase-summary .surface-panel,
.store-theme .payment-flow-page .purchase-layout > aside .surface-panel { background: var(--paper); border: 0; }

.store-theme .cart-item-card { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 1rem; padding: .85rem; background: var(--paper); border: 2px solid var(--ring); border-radius: 30px; transition: transform .3s var(--spring), border-color .2s, box-shadow .3s; }
@media (hover: hover) { .store-theme .cart-item-card:hover { border-color: var(--orange); box-shadow: 0 12px 26px rgba(74, 0, 24, .14); } }
@media (min-width: 700px) { .store-theme .cart-item-card { grid-template-columns: 148px minmax(0, 1fr); padding: 1rem; } }
.store-theme .cart-item-card__image { width: 100%; aspect-ratio: 3 / 4; overflow: hidden; border-radius: 22px; background: var(--peach); }
.store-theme .cart-item-card__image img { width: 100%; height: 100%; object-fit: cover; }
.store-theme .cart-item-card__content { display: flex; flex-direction: column; justify-content: space-between; gap: .75rem; min-width: 0; }
.store-theme .cart-item-card__footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem 1rem; }
.store-theme .cart-item-card__footer > strong:last-child { color: var(--orange); font-size: 1.1rem; font-weight: 900; }
.store-theme .cart-item-card__remove { color: var(--brown-soft); font-size: .85rem; padding: .25rem .6rem; border-radius: 999px; transition: background-color .2s, color .2s; }
.store-theme .cart-item-card__remove:hover { background: var(--blush); color: var(--orange-deep); }
.store-theme .pending-order-banner { background: var(--butter); border: 2px solid var(--ring); border-radius: 28px; }
.store-theme .pending-order-banner__eyebrow { color: var(--orange-deep); }
.store-theme .empty-state { display: grid; justify-items: center; gap: .75rem; padding: clamp(2.5rem, 8vw, 5rem) 1.25rem; text-align: center; border-radius: 36px; background: var(--paper); }
.store-theme .empty-state h2 { font-size: clamp(1.5rem, 5vw, 2.2rem); font-weight: 900; margin: 0; }

.store-theme .address-selection-list { display: grid; gap: .75rem; }
@media (min-width: 700px) { .store-theme .address-selection-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.store-theme .checkout-choice-card, .store-theme .payment-method-card {
    position: relative; padding: 1rem 1.1rem; background: var(--cream); border: 2px solid var(--ring); border-radius: 22px; cursor: pointer;
    transition: border-color .25s var(--ease), background-color .25s, transform .25s var(--spring), box-shadow .25s;
}
@media (hover: hover) { .store-theme .checkout-choice-card:hover, .store-theme .payment-method-card:hover { border-color: var(--orange); transform: translateY(-2px); } }
.store-theme .checkout-choice-card.is-selected, .store-theme .payment-method-card.is-selected { border-color: var(--orange); background: var(--orange-soft); box-shadow: 0 0 0 4px var(--peach); }
.store-theme .checkout-choice-card.is-selected::after, .store-theme .payment-method-card.is-selected::after {
    content: "\f00c"; font-family: "Font Awesome 7 Pro"; font-weight: 900; position: absolute; top: .8rem; inset-inline-end: .8rem;
    display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--orange); color: #fff; font-size: .7rem; animation: st-pop .35s var(--spring);
}
.store-theme .payment-method-card .radio-indicator { display: none; }
.store-theme .payment-method-grid { display: grid; gap: .75rem; }
.store-theme .payment-expiry-badge { border-radius: 999px; background: var(--butter); }
.store-theme .payment-expiry-badge.is-warning { background: var(--orange-soft); }
.store-theme .payment-highlight, .store-theme .payment-summary-grid__item { border-radius: 18px; background: var(--cream); border: 2px solid var(--ring); padding: .85rem 1rem; }

/* forms */
.store-theme input[type="text"], .store-theme input[type="tel"], .store-theme input[type="email"], .store-theme input[type="password"],
.store-theme input:not([type]), .store-theme textarea, .store-theme select {
    min-height: 52px; padding: .7rem 1.1rem; background: var(--paper); border: 2px solid var(--ring); border-radius: 18px; color: var(--brown);
    transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.store-theme input:focus, .store-theme textarea:focus, .store-theme select:focus { outline: none; border-color: var(--orange); box-shadow: 0 0 0 4px var(--orange-soft); }
.store-theme .field-label { font-weight: 800; font-size: .88rem; color: var(--brown); }
.store-theme .modal-backdrop { background: rgba(74, 0, 24, .35); backdrop-filter: none; }
.store-theme .modal-card { border-radius: 32px; background: var(--paper); border: 2px solid var(--ring); }
@media (max-width: 700px) {
    .store-theme .modal-card { align-self: end; width: 100%; max-width: none; border-radius: 32px 32px 0 0; animation: st-rise .35s var(--ease) both; }
    .store-theme .modal-backdrop { align-items: flex-end; padding: 0; }
}

/* purchase flow on phones: pinned pay button, no bottom nav */
@media (max-width: 959px) {
    body:has(.purchase-layout) .store-theme .mobile-bottom-nav { display: none; }
    .store-theme .purchase-summary, .store-theme .payment-flow-page .purchase-layout > aside { padding: 1.25rem; border-radius: 28px; }
    .store-theme .purchase-summary .purchase-summary__cta, .store-theme .payment-flow-page .purchase-layout > aside .button-primary { position: sticky; bottom: .75rem; z-index: 20; }
    .store-theme main:has(.purchase-layout) { padding-bottom: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
    .store-theme *, .store-theme *::before, .store-theme *::after { animation: none !important; transition: none !important; }
}

/* category without a picture: friendly initial on its pastel blob */
.store-theme .category-card__initial {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    color: var(--orange);
    font-size: 2rem;
    font-weight: 900;
}

.store-theme .desktop-navbar__actions > a.auth-link { display: inline-flex; flex-direction: row; align-items: center; white-space: nowrap; height: 42px; }

.store-theme .category-card--all .category-card__image-wrap { display: grid; place-items: center; background: var(--orange); border-color: var(--orange); color: #fff; font-size: 1.6rem; }
.store-theme .category-card--all strong { color: var(--orange-deep); }
@media (min-width: 1000px) {
    .store-theme .category-card { flex-basis: 128px; min-width: 128px; }
    .store-theme .hero-banner--immersive .hero-banner__dots { bottom: 62px; }
}

/* the check badge replaces the native radio dot; the input stays focusable for keyboards */
.store-theme .checkout-choice-card input[type="radio"] { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.store-theme .checkout-choice-card:has(input:focus-visible) { outline: 3px solid var(--orange); outline-offset: 3px; }

/* =====================================================================
   PRODUCT CARD — hover preview (glass)
   ===================================================================== */
@keyframes st-fade { from { opacity: 0; transform: scale(1.04); } to { opacity: 1; transform: none; } }
.store-theme .store-card__media { isolation: isolate; }
.store-theme .store-card__main { position: relative; z-index: 0; }
.store-theme .store-card__alt { position: absolute; inset: 0; z-index: 1; display: none; width: 100%; height: 100%; object-fit: cover; }
.store-theme .store-card__glass { display: none; }

@media (hover: hover) {
    .store-theme .store-card__glass {
        position: absolute; z-index: 3; inset-inline: 12px; bottom: 12px;
        display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 8px 8px 14px;
        background: rgba(255, 255, 255, .34); border: 1px solid rgba(255, 255, 255, .7); border-radius: 18px;
        box-shadow: 0 8px 24px rgba(46, 26, 33, .18), inset 0 1px 0 rgba(255, 255, 255, .8);
        opacity: 0; transform: translateY(16px) scale(.97); pointer-events: none;
        transition: opacity .3s var(--ease), transform .4s var(--spring);
    }
    .store-theme .store-card__glass > i {
        display: grid; place-items: center; width: 32px; height: 32px; border-radius: 12px;
        background: var(--orange); color: #fff; font-size: .8rem; transition: transform .3s var(--spring);
    }
    .store-theme .store-card__dots { display: flex; align-items: center; gap: 6px; pointer-events: auto; padding: 6px 4px; }
    .store-theme .store-card__dot {
        width: 8px; height: 8px; border-radius: 8px; background: rgba(255, 255, 255, .95);
        box-shadow: 0 1px 3px rgba(46, 26, 33, .35); transition: width .3s var(--spring), background-color .2s;
    }
    .store-theme .store-card__dot:hover { background: #fff; }

    .store-theme .store-card__media:hover .store-card__glass {
        opacity: 1; transform: none; backdrop-filter: blur(14px) saturate(1.6); -webkit-backdrop-filter: blur(14px) saturate(1.6);
    }
    .store-theme .store-card__media:hover .store-card__glass > i { transform: translateX(-3px); }

    /* default hover shows the first extra picture; hovering a dot shows that one (main = dot 0) */
    .store-theme .store-card__media:hover .store-card__alt--1 { display: block; animation: st-fade .5s var(--ease) both; }
    .store-theme .store-card__media:has(.store-card__dot--0:hover) .store-card__alt { display: none; }
    .store-theme .store-card__media:has(.store-card__dot--2:hover) .store-card__alt--1,
    .store-theme .store-card__media:has(.store-card__dot--3:hover) .store-card__alt--1 { display: none; }
    .store-theme .store-card__media:has(.store-card__dot--2:hover) .store-card__alt--2 { display: block; animation: st-fade .5s var(--ease) both; }
    .store-theme .store-card__media:has(.store-card__dot--3:hover) .store-card__alt--3 { display: block; animation: st-fade .5s var(--ease) both; }

    .store-theme .store-card__media:hover .store-card__dot--1 { width: 22px; background: var(--orange); }
    .store-theme .store-card__media:has(.store-card__dot:hover) .store-card__dot--1:not(:hover) { width: 8px; background: rgba(255, 255, 255, .95); }
    .store-theme .store-card__media .store-card__dot:hover { width: 22px; background: var(--orange); }
    .store-theme .store-card__media:hover .store-card__main { transform: none; }
}

.hdr-collapsed .store-theme .brand,
.hdr-collapsed .store-theme .brand--stacked { flex-direction: row; justify-content: flex-start; text-align: start; }

/* =====================================================================
   v5 FIXES
   ===================================================================== */

/* The header is already in-flow and sticky; it is never translated. */
html .store-theme .site-header { transform: none !important; transition: none; }

/* Images are never cropped: cards, banners and thumbnails keep their own aspect ratio. */
.store-theme .store-card__media { display: block; aspect-ratio: auto !important; height: auto !important; max-height: none !important; min-height: 160px; }
.store-theme .store-card__main { position: relative; display: block; width: 100%; height: auto !important; object-fit: contain !important; }
.store-theme .store-card__alt { object-fit: cover; }
.store-theme .store-card__media { background: var(--cream-deep); }
.store-theme .product-thumb img { object-fit: contain; background: var(--cream-deep); }

@media (max-width: 780px) {
    /* mobile app bar is always in flow (never covers banner pixels) and the banner shows in full */
    .store-theme .main-content--hero .hero-banner--immersive { height: auto !important; max-height: none !important; border-radius: 0 0 28px 28px; background: var(--cream-deep); }
    .store-theme .main-content--hero .hero-banner--immersive .hero-banner__slider,
    .store-theme .main-content--hero .hero-banner--immersive .hero-banner__slide { height: auto !important; min-height: 0; }
    .store-theme .main-content--hero .hero-banner--immersive .hero-banner__image { height: auto !important; width: 100%; object-fit: contain !important; display: block; }
    .store-theme .hero-banner--immersive .hero-banner__dots { bottom: 14px; }
    .store-theme .category-list-section { margin-top: -22px; }
}

/* back-to-top is a real button now */
.store-theme button.site-footer__top { border: 0; cursor: pointer; font: inherit; }

/* =====================================================================
   PRODUCT PAGE v5
   ===================================================================== */
.store-theme .product-gallery { padding: 12px; background: #fff; border: 1px solid var(--ring); border-radius: 32px; box-shadow: 0 14px 34px rgba(74, 0, 24, .06); }
.store-theme .product-gallery__stage { position: relative; }
.store-theme .product-gallery__viewport {
    aspect-ratio: 4 / 5; max-height: min(78vh, 760px); width: 100%;
    background: var(--cream-deep); border-radius: 24px; overscroll-behavior-x: contain;
}
.store-theme .product-gallery__slide { aspect-ratio: auto; height: 100%; }
.store-theme .product-gallery__zoom-trigger { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; overflow: hidden; cursor: zoom-in; }
.store-theme .product-gallery__slide img { width: 100%; height: 100%; object-fit: contain; transition: transform .45s var(--ease); will-change: transform; }
@media (hover: hover) and (pointer: fine) {
    .store-theme .product-gallery__zoom-trigger:hover img { transform: scale(1.9); transform-origin: var(--zx, 50%) var(--zy, 50%); transition-duration: .25s; }
}
.store-theme .product-gallery__arrow {
    position: absolute; top: 50%; z-index: 3; display: grid; place-items: center;
    width: 44px; height: 44px; margin-top: -22px; border: 0; border-radius: 50%;
    background: rgba(255, 255, 255, .94); color: var(--orange); cursor: pointer;
    box-shadow: 0 8px 20px rgba(46, 26, 33, .18);
    transition: transform .25s var(--spring), background-color .2s, color .2s;
}
.store-theme .product-gallery__arrow--prev { right: 12px; }
.store-theme .product-gallery__arrow--next { left: 12px; }
.store-theme .product-gallery__arrow:hover { background: var(--orange); color: #fff; transform: scale(1.08); }
.store-theme .product-gallery__arrow:active { transform: scale(.92); }
@media (hover: none) { .store-theme .product-gallery__arrow { width: 38px; height: 38px; margin-top: -19px; opacity: .92; } }
.store-theme .product-gallery__counter {
    position: absolute; bottom: 12px; inset-inline-start: 12px; z-index: 3; padding: .3rem .8rem;
    background: rgba(255, 255, 255, .92); color: var(--brown); border-radius: 999px; font-size: .82rem; font-weight: 800;
    box-shadow: 0 4px 12px rgba(46, 26, 33, .14);
}
.store-theme .product-gallery__thumbs { margin-top: 10px; gap: 10px; padding: 4px 2px 6px; scrollbar-width: none; }
.store-theme .product-thumb { flex: 0 0 68px; width: 68px; height: 84px; border: 2px solid transparent; border-radius: 16px; overflow: hidden; opacity: .75; background: var(--cream-deep); transition: transform .25s var(--spring), border-color .2s, opacity .2s; }
.store-theme .product-thumb:hover { opacity: 1; transform: translateY(-2px); }
.store-theme .product-thumb.is-active { border-color: var(--orange); opacity: 1; transform: none; }

/* floating purchase box: slim dock that glides in as soon as the main button leaves the screen */
.store-theme .product-floating-cart {
    inset-inline: 0; margin-inline: auto; bottom: 18px; width: min(680px, calc(100vw - 48px)); max-width: none;
    display: flex; align-items: center; gap: 14px; padding: 10px 12px 10px 14px;
    background: rgba(255, 255, 255, .96); border: 1px solid var(--ring); border-radius: 22px;
    box-shadow: 0 18px 44px rgba(74, 0, 24, .18);
    opacity: 0; transform: translateY(24px) scale(.97); pointer-events: none; visibility: hidden;
    transition: opacity .35s var(--ease), transform .5s var(--spring), visibility 0s linear .5s;
}
.store-theme .product-floating-cart.is-visible { opacity: 1; transform: none; pointer-events: auto; visibility: visible; transition-delay: 0s; }
.store-theme .product-floating-cart__thumb { flex: none; width: 56px; height: 56px; border-radius: 14px; object-fit: contain; background: var(--cream-deep); }
.store-theme .product-floating-cart__meta { flex: 1 1 auto; display: grid; gap: .15rem; min-width: 0; }
.store-theme .product-floating-cart__meta strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .98rem; }
.store-theme .product-floating-cart__meta span { color: var(--orange); font-weight: 900; }
.store-theme .product-floating-cart .button-primary { flex: none; min-height: 48px; padding-inline: 1.4rem; }
@media (max-width: 780px) { .store-theme .product-floating-cart { display: none; } }

/* ---- about ---- */
.store-theme .product-detail-section { padding: clamp(1.25rem, 3vw, 2rem); background: #fff; border: 1px solid var(--ring); border-radius: 28px; }
.store-theme .product-detail-section .section-heading { margin-bottom: 1.1rem; }
.store-theme .product-detail-section .section-heading h2 { font-size: clamp(1.3rem, 3.4vw, 1.7rem); font-weight: 900; color: var(--orange); }
.store-theme .product-detail-section .section-heading h2::after { margin-top: .35rem; }
.store-theme .product-description { display: grid; gap: 1rem; }
.store-theme .product-description-preview,
.store-theme .product-description-html { color: var(--brown); line-height: 2.1; font-size: 1.02rem; }
.store-theme .product-description__body:not(.is-expanded) .product-description-preview {
    padding-inline-start: 1rem; border-inline-start: 4px solid var(--orange-soft);
}
.store-theme .product-description__toggle {
    justify-self: start; display: inline-flex; align-items: center; gap: .6rem; padding: .6rem 1.2rem;
    border: 2px solid var(--orange); border-radius: 999px; background: #fff; color: var(--orange); font-weight: 800; cursor: pointer;
    transition: background-color .2s, color .2s, transform .2s var(--spring);
}
.store-theme .product-description__toggle:hover { background: var(--orange); color: #fff; transform: translateY(-2px); }
.store-theme .product-description__toggle i { transition: transform .3s var(--spring); }
.store-theme .product-description__toggle[aria-expanded="true"] i { transform: rotate(180deg); }

/* ---- specs ---- */
.store-theme .product-spec-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.store-theme .product-spec-row {
    display: grid; gap: .3rem; padding: 1rem 1.15rem; background: var(--cream); border: 1px solid var(--ring); border-radius: 18px;
    transition: transform .25s var(--spring), border-color .2s, background-color .2s;
}
.store-theme .product-spec-row:hover { transform: translateY(-3px); border-color: var(--orange); background: #fff; }
.store-theme .product-spec-row strong { color: var(--brown-soft); font-size: .82rem; font-weight: 700; }
.store-theme .product-spec-row span { color: var(--orange); font-weight: 800; font-size: 1.02rem; }

/* ---- reviews ---- */
.store-theme .review-list { display: block; columns: 1; column-gap: 16px; }
@media (min-width: 820px) { .store-theme .review-list { columns: 2; } }
.store-theme .review-card {
    break-inside: avoid; margin: 0 0 16px; padding: 1.15rem 1.25rem; background: var(--cream); border: 1px solid var(--ring); border-radius: 24px;
    transition: transform .3s var(--spring), border-color .2s;
}
.store-theme .review-card:hover { transform: translateY(-3px); border-color: var(--orange); }
.store-theme .review-card p { margin: .6rem 0 0; color: var(--brown); line-height: 2; }
.store-theme .review-author-block { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem .7rem; }
.store-theme .review-avatar { display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 50%; background: var(--orange-soft); color: var(--orange); font-weight: 900; }
.store-theme .review-author { font-weight: 800; }
.store-theme .review-badge { background: #fff; color: var(--orange); border: 1px solid var(--orange-soft); border-radius: 999px; padding: .1rem .6rem; font-size: .78rem; font-weight: 800; }
.store-theme .review-stars { color: var(--orange); letter-spacing: 2px; }
.store-theme .review-image-strip { display: flex; flex-wrap: wrap; gap: 8px; margin-top: .8rem; }
.store-theme .review-image-button { padding: 0; border: 0; border-radius: 14px; overflow: hidden; background: var(--cream-deep); cursor: zoom-in; transition: transform .25s var(--spring); }
.store-theme .review-image-button:hover { transform: scale(1.05); }
.store-theme .review-image-button img { display: block; width: 76px; height: 76px; object-fit: cover; }

/* app.css pins the gallery/summary to 700px with a 9/16 frame; let both size to their content */
.store-theme .product-detail__top { align-items: start; }
.store-theme .product-gallery.surface-panel .product-gallery__viewport { aspect-ratio: 4 / 5; height: auto; max-height: none; }
.store-theme .product-gallery.surface-panel .product-gallery__slide { aspect-ratio: auto; height: 100%; max-height: none; }
@media (min-width: 781px) {
    .store-theme .product-detail__top { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 2rem; }
    .store-theme .product-gallery.surface-panel { height: auto; max-height: none; max-width: none; margin-inline: 0; }
    .store-theme .product-gallery.surface-panel .product-gallery__viewport { aspect-ratio: auto; height: min(76vh, 740px); max-height: none; }
    .store-theme .product-summary.surface-panel { height: auto; overflow: visible; }
}

/* spec tiles: app.css lays rows out as a 180px/1fr table inside a padded list */
.store-theme .product-spec-list { padding: 0; overflow: visible; }
.store-theme .product-spec-row { grid-template-columns: minmax(0, 1fr); padding: 1rem 1.15rem; border: 1px solid var(--ring); }
.store-theme .product-spec-row:last-child { border-bottom: 1px solid var(--ring); }
.store-theme .product-description-html { padding: 0; overflow: visible; }
.store-theme .product-description__toggle { width: fit-content; max-width: 100%; }

/* =====================================================================
   v6 — bottom navigation with labels, scroll-aware category strip
   ===================================================================== */
@media (max-width: 780px) {
    .store-theme .mobile-bottom-nav {
        left: 10px; right: 10px;
        bottom: calc(10px + env(safe-area-inset-bottom));
        align-items: flex-end;
        gap: 0;
        padding: 6px 6px 4px;
        background: rgba(255, 255, 255, .98);
        border: 1px solid var(--ring);
        border-radius: 26px;
        box-shadow: 0 14px 32px rgba(74, 0, 24, .18);
    }
    .store-theme .mobile-bottom-nav__link {
        position: relative;
        flex: 1 1 0;
        min-width: 0;
        min-height: 56px;
        display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
        padding: 4px 2px;
        border-radius: 16px;
        color: var(--brown-soft);
        -webkit-tap-highlight-color: transparent;
        transition: color .2s, transform .25s var(--spring), background-color .2s;
    }
    .store-theme .mobile-bottom-nav__link > i { font-size: 1.15rem; line-height: 1; transition: transform .3s var(--spring); }
    .store-theme .mobile-bottom-nav__label {
        display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
        font-size: .68rem; font-weight: 700; line-height: 1.3;
    }
    .store-theme .mobile-bottom-nav__link:active { transform: scale(.92); background: var(--orange-soft); }
    /* active tab: brand colour + small pill above the icon */
    .store-theme .mobile-bottom-nav__link.active { color: var(--orange); background: transparent; }
    .store-theme .mobile-bottom-nav__link.active > i { transform: translateY(-1px) scale(1.1); }
    .store-theme .mobile-bottom-nav__link.active::before {
        content: ""; position: absolute; top: 0; left: 50%; width: 22px; height: 3px; margin-left: -11px;
        border-radius: 0 0 4px 4px; background: var(--orange);
    }

    /* centre item: raised burgundy disc with the white logo */
    .store-theme .mobile-bottom-nav__link--brand { flex-basis: 0; margin-top: -26px; color: var(--brown-soft); }
    .store-theme .mobile-bottom-nav__link--brand.active { color: var(--orange); }
    .store-theme .mobile-bottom-nav__link--brand.active::before { display: none; }
    .store-theme .mobile-bottom-nav__logo {
        display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%;
        background: var(--orange); border: 4px solid #fff;
        box-shadow: 0 8px 18px rgba(74, 0, 24, .3);
        transition: transform .3s var(--spring);
    }
    .store-theme .mobile-bottom-nav__link--brand:active .mobile-bottom-nav__logo { transform: scale(.9); }
    .store-theme .mobile-bottom-nav__logo img { width: 34px; height: 34px; object-fit: contain; filter: brightness(0) invert(1); border-radius: 0; }
}
@media (max-width: 340px) { .store-theme .mobile-bottom-nav__label { font-size: .62rem; } }

/* ---------- category strip ---------- */
.store-theme .category-list-section { --fl: 0px; --fr: 0px; }
.store-theme .category-list-section.can-next { --fl: 40px; }   /* RTL: the "next" edge is the left one */
.store-theme .category-list-section.can-prev { --fr: 40px; }
.store-theme .category-strip {
    scroll-padding-inline: 14px;
    scroll-snap-type: x proximity;
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 var(--fl), #000 calc(100% - var(--fr)), transparent 100%);
    mask-image: linear-gradient(to right, transparent 0, #000 var(--fl), #000 calc(100% - var(--fr)), transparent 100%);
}
.store-theme .category-strip:focus-visible { outline: 3px solid var(--orange); outline-offset: -3px; border-radius: 24px; }
/* tiles are sized so the next one is always partly visible: a clear "swipe for more" cue */
@media (max-width: 999px) {
    .store-theme .category-card { flex: 0 0 clamp(70px, 21%, 104px); min-width: 0; }
}

.store-theme .category-strip__nav {
    position: absolute; top: 38%; z-index: 4;
    display: grid; place-items: center; width: 38px; height: 38px; margin-top: -19px; padding: 0;
    border: 1px solid var(--ring); border-radius: 50%;
    background: #fff; color: var(--orange); font-size: .8rem; cursor: pointer;
    box-shadow: 0 6px 16px rgba(74, 0, 24, .2);
    transition: transform .25s var(--spring), background-color .2s, color .2s;
}
.store-theme .category-strip__nav[hidden] { display: none; }
.store-theme .category-strip__nav:hover { background: var(--orange); color: #fff; transform: scale(1.08); }
.store-theme .category-strip__nav:active { transform: scale(.92); }
.store-theme .category-strip__nav--prev { right: 6px; }
.store-theme .category-strip__nav--next { left: 6px; animation: st-nudge 1.8s ease-in-out 3; }
@keyframes st-nudge { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(-4px); } }
@media (prefers-reduced-motion: reduce) { .store-theme .category-strip__nav--next { animation: none; } }

/* ---- variant selection: unmistakable burgundy selected state ---- */
.store-theme .variant-option.is-active {
    background: #4A0018; border-color: #4A0018; color: #fff; font-weight: 700;
    box-shadow: 0 0 0 3px rgba(74, 0, 24, .22);
}
.store-theme .variant-option.is-active:hover { border-color: #4A0018; }

/* ---- profile sidebar: burgundy instead of light blue ---- */
.store-theme .user-sidebar__nav a:hover { background: rgba(74, 0, 24, .08); color: #4A0018; }
.store-theme .user-sidebar__nav a.active { background: #4A0018; color: #fff; }

/* ---- mobile add-to-cart bar: compact ---- */
@media (max-width: 780px) {
    .store-theme .product-mobile-cartbar { padding: .4rem .5rem .4rem .6rem; gap: .5rem; border-width: 1px; border-radius: 18px; box-shadow: 0 8px 20px rgba(74, 0, 24, .18); }
    .store-theme .product-mobile-cartbar__meta span { font-size: .68rem; }
    .store-theme .product-mobile-cartbar__meta strong { font-size: .9rem; }
    .store-theme .product-mobile-cartbar .button-primary { min-height: 38px; padding: .45rem 1rem; font-size: .85rem; border-radius: 999px; }
}

/* ---- user menu dropdown: burgundy hover, readable text ---- */
.store-theme .user-menu__dropdown a:hover,
.store-theme .user-menu__dropdown button:hover,
.store-theme .user-menu__dropdown a:focus-visible,
.store-theme .user-menu__dropdown button:focus-visible,
.hdr-collapsed .store-theme .user-menu__dropdown a:hover,
.hdr-collapsed .store-theme .user-menu__dropdown button:hover { background: #4A0018; color: #fff; }

/* =====================================================================
   v7 — MODERN MINIMAL + 3D
   Fewer borders, flatter surfaces, editorial type; 3D is CSS-only
   (perspective + translateZ layers), scroll-driven where supported.
   ===================================================================== */

/* ---------- quiet chrome ---------- */
.store-theme :focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; border-radius: 6px; }
.store-theme .store-section--showcase .store-section__eyebrow::after,
.store-theme .section-heading h1::after,
.store-theme .catalog-hero h1::after { content: none; }

.store-theme .button-primary,
.store-theme .search-form button { font-weight: 700; box-shadow: none; }
.store-theme .button-primary { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; padding: .7rem 1.6rem; transition: transform .2s var(--ease), background-color .2s; }
.store-theme .button-primary:hover { background: #63102a; transform: translateY(-1px); box-shadow: none; }
.store-theme .button-primary:active { transform: scale(.98); box-shadow: none; }
.store-theme .button-secondary,
.store-theme .nav-button,
.store-theme .button-muted { border: 1px solid var(--ring); font-weight: 600; transition: border-color .2s, background-color .2s, color .2s; }
.store-theme .button-secondary:hover,
.store-theme .button-muted:hover { background: var(--paper); border-color: var(--orange); transform: none; }

.store-theme .surface,
.store-theme .surface-panel,
.store-theme .catalog-toolbar,
.store-theme .catalog-hero { border: 0; border-radius: var(--radius-lg); }

/* header */
@media (min-width: 781px) {
    .store-theme .site-header--solid { background: rgba(248, 248, 250, .96); border-bottom-color: transparent; }
    .store-theme .site-header .nav-shell { max-width: none; padding: 0 var(--gutter) !important; }
    .store-theme .site-header--hero .brand__logo,
    .store-theme .brand__logo { box-shadow: none; }
    .store-theme .desktop-navbar__actions > a,
    .store-theme .user-menu__trigger { font-weight: 500; }
    .store-theme .desktop-navbar__actions > a.auth-link { border-radius: 999px; box-shadow: none; }
    .store-theme .desktop-navbar__actions > a.auth-link:hover { box-shadow: none; transform: none; background: #63102a; }
    .hdr-collapsed .store-theme .desktop-navbar { border: 1px solid var(--ring); }
}
@media (max-width: 780px) {
}

/* ---------- home: full-bleed ---------- */
.store-theme .hero-banner--immersive,
.store-theme .main-content--hero .hero-banner--immersive { border-radius: 0; background: var(--cream-deep); }
.store-theme .hero-banner__arrow { box-shadow: none; background: rgba(255, 255, 255, .9); }
.store-theme .hero-banner--immersive .hero-banner__dots { bottom: 22px; padding: 6px 10px; background: rgba(255, 255, 255, .8); }
.store-theme .hero-banner--immersive .hero-banner__dot { width: 7px; height: 7px; }
.store-theme .hero-banner--immersive .hero-banner__dot.is-active { width: 30px; }

.store-theme #campaigns.page-shell.stack-lg { max-width: none; padding-inline: 0; }
.store-theme .store-section--showcase { margin-top: clamp(3.5rem, 9vw, 8rem); padding-inline: var(--gutter); }
.store-theme .store-section--showcase .store-section__feature { padding: 0 0 clamp(1rem, 2.5vw, 2rem); }
.store-theme .store-section--showcase .store-section__eyebrow,
.store-theme .cat3d__head h2,
.store-theme .showcase3d__head h2,
.store-theme .jhome__head h2 { margin: 0; font-size: clamp(1.8rem, 4.4vw, 3.5rem); font-weight: 800; line-height: 1.2; color: var(--brown); }
.store-theme .store-section__cta,
.store-theme .store-section--showcase .store-section__cta {
    flex: none; display: inline-flex; align-items: center; gap: .6rem; padding: .35rem 0;
    border: 0; border-bottom: 2px solid var(--orange); border-radius: 0; background: transparent;
    color: var(--orange); font-weight: 700; text-decoration: none;
    transition: gap .25s var(--ease), color .2s;
}
.store-theme .store-section__cta i { font-size: .8rem; }
.store-theme .store-section__cta:hover,
.store-theme .store-section--showcase .store-section__cta:hover { background: transparent; color: var(--orange); transform: none; gap: 1rem; }
.store-theme .store-section--showcase .store-section__cta:hover i { transform: none; }
.store-theme .store-section--spotlight .store-section__rail,
.store-theme .store-section--stagger .store-section__rail,
.store-theme .store-section--rail .store-section__rail { padding-inline: 0; }
@media (min-width: 900px) {
    .store-theme .store-section--spotlight .store-section__rail { padding-inline: 0; gap: clamp(18px, 2vw, 32px); }
    .store-theme .store-section--rail .store-section__layout { padding-inline: 0; grid-template-columns: minmax(240px, 22vw) minmax(0, 1fr); gap: clamp(18px, 2vw, 32px); }
    .store-theme .store-section--rail .store-section__feature { padding: clamp(1.5rem, 2.4vw, 2.5rem); background: var(--orange-soft); border: 0; border-radius: var(--radius-lg); }
    .store-theme .store-section--rail .store-section__rail { grid-auto-columns: clamp(230px, 19vw, 320px); gap: clamp(18px, 2vw, 32px); }
    .store-theme .store-section--stagger .store-section__rail { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); justify-content: stretch; gap: 0 clamp(18px, 2vw, 32px); }
}
.store-theme .store-section--rail .store-section__scroll { border: 0; box-shadow: 0 8px 22px rgba(46, 26, 33, .16); }
.store-theme .jhome { max-width: none; padding-inline: var(--gutter); margin-top: clamp(3.5rem, 9vw, 8rem); }

/* ---------- product card: picture first, no frame ---------- */
.store-theme .store-card,
.store-theme .store-section--showcase .store-card { padding: 0; gap: .7rem; background: transparent; border: 0; border-radius: 0; transition: none; }
.store-theme .store-card__media,
.store-theme .store-section--showcase .store-card__media { border-radius: 14px; overflow: hidden; }
.store-theme .store-card__media img { transition: transform .8s var(--ease); }
.store-theme .store-card__badge { top: .75rem; inset-inline-start: .75rem; padding: .25rem .7rem; border-radius: 999px; font-size: .75rem; font-weight: 700; transform: none; box-shadow: none; }
.store-theme .store-card__body { padding: 0 .15rem; gap: .2rem; }
.store-theme .store-card__title { font-size: .95rem; font-weight: 500; line-height: 1.7; }
.store-theme .store-card__footer .button-ghost { font-size: .98rem; font-weight: 700; color: var(--brown); }
.store-theme .store-card__footer .button-ghost i { color: var(--orange); }
.store-theme .store-stock-status--out { width: fit-content; padding: .1rem .6rem; border: 0; border-radius: 999px; font-size: .75rem; }
@media (hover: hover) {
    .store-theme .store-card:hover { transform: none; border-color: transparent; box-shadow: none; }
    .store-theme .store-card:hover .store-card__media img.store-card__main { transform: scale(1.04); }
    .store-theme .store-card:hover .store-card__title { color: var(--orange); }
    .store-theme .store-card__glass { box-shadow: none; border-radius: 999px; }
    .store-theme .store-card__glass > i { border-radius: 50%; }
}
.store-theme .store-card:active { transform: none; }

/* ---------- 3D categories ---------- */
.store-theme .cat3d {
    width: 100%; max-width: none; margin: 0; padding: clamp(2.75rem, 7vw, 6rem) 0 0;
    background: transparent; border: 0; border-radius: 0; box-shadow: none;
}
.store-theme .cat3d__head,
.store-theme .showcase3d__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; padding-inline: var(--gutter); }
.store-theme .cat3d__stage {
    display: flex; gap: clamp(22px, 3vw, 48px);
    padding: clamp(1.75rem, 3.5vw, 3rem) calc(var(--gutter) + 14px) clamp(2.5rem, 5vw, 4rem);
    overflow-x: auto; scroll-snap-type: x proximity; scroll-padding-inline: calc(var(--gutter) + 14px);
    perspective: 1100px; perspective-origin: 50% 40%;
    -webkit-mask-image: none; mask-image: none;
}
.store-theme .cat3d__card {
    flex: 0 0 clamp(138px, 15.5vw, 236px); display: block; scroll-snap-align: start;
    color: var(--brown); text-decoration: none; transform-style: preserve-3d; -webkit-tap-highlight-color: transparent;
}
.store-theme .cat3d__body {
    position: relative; display: block; transform-style: preserve-3d;
    transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
    transition: transform .55s var(--ease);
}
.store-theme .cat3d__plate {
    position: absolute; inset-block: 11% -7%; inset-inline: 10% -9%;
    border-radius: 16px; background: var(--orange-soft); transform: translateZ(-48px);
}
.store-theme .cat3d__card:nth-child(even) .cat3d__plate { inset-inline: -9% 10%; background: #ebeaf0; }
.store-theme .cat3d__media {
    position: relative; display: block; aspect-ratio: 3 / 4; overflow: hidden;
    border-radius: 14px;
}
.store-theme .cat3d__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.store-theme .cat3d__name {
    position: absolute; inset-inline-start: -12px; bottom: 16px; max-width: calc(100% + 12px);
    padding: .4rem .95rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    background: #fff; color: var(--brown); border-radius: 999px;
    font-size: clamp(.82rem, 1.05vw, 1rem); font-weight: 700; line-height: 1.6;
    transform: translateZ(46px); box-shadow: 0 10px 24px rgba(46, 26, 33, .14);
    transition: background-color .25s, color .25s;
}
@media (hover: hover) {
    .store-theme .cat3d__card:hover .cat3d__body { transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, -10deg)) translateZ(28px); transition-duration: .2s; }
    .store-theme .cat3d__card:hover .cat3d__media img { transform: scale(1.06); }
    .store-theme .cat3d__card:hover .cat3d__name { background: var(--orange); color: #fff; }
}
.store-theme .cat3d__card:focus-visible { outline: 0; }
.store-theme .cat3d__card:focus-visible .cat3d__media { outline: 2px solid var(--orange); outline-offset: 4px; }
.store-theme .cat3d__card:focus-visible .cat3d__name { background: var(--orange); color: #fff; }
.store-theme .cat3d__card:active .cat3d__body { transform: translateZ(-24px); transition-duration: .15s; }
.store-theme .cat3d .category-strip__nav { top: 58%; box-shadow: 0 8px 22px rgba(46, 26, 33, .16); border: 0; }
.store-theme .cat3d .category-strip__nav--prev { right: calc(var(--gutter) - 8px); }
.store-theme .cat3d .category-strip__nav--next { left: calc(var(--gutter) - 8px); }

@keyframes cat3d-float { 50% { translate: 0 -7px; } }
@media (prefers-reduced-motion: no-preference) {
    /* touch devices have no hover: the objects breathe instead */
    .store-theme .cat3d__body { animation: cat3d-float 6s ease-in-out infinite; }
    .store-theme .cat3d__card:nth-child(3n+2) .cat3d__body { animation-delay: -2s; }
    .store-theme .cat3d__card:nth-child(3n) .cat3d__body { animation-delay: -4s; }
}
/* coverflow: Home.razor.js writes --p (-1..1, signed distance from the stage centre) and --pa (its magnitude)
   while the strip scrolls; without JS both stay 0 and the objects simply sit flat. */
.store-theme .cat3d__card { transform: rotateY(calc(var(--p, 0) * 30deg)) translateZ(calc(var(--pa, 0) * -90px)); }

/* ---------- 3D editorial showcase ---------- */
.store-theme .showcase3d { min-width: 0; max-width: 100%; margin-top: clamp(3.5rem, 9vw, 8rem); }
.store-theme .showcase3d__rail {
    display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain;
}
.store-theme .showcase3d__rail::-webkit-scrollbar { display: none; }
.store-theme .showcase3d__slide {
    flex: 0 0 100%; min-width: 0; scroll-snap-align: start;
    display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: center;
    gap: clamp(1.5rem, 6vw, 6rem); padding: clamp(2rem, 5vw, 4.5rem) var(--gutter) clamp(2rem, 4vw, 3.5rem);
    perspective: 1400px;
}
.store-theme .showcase3d__figure { display: block; justify-self: center; width: min(100%, 560px); perspective: 1200px; text-decoration: none; }
.store-theme .showcase3d__tilt {
    position: relative; display: block; aspect-ratio: 5 / 6; transform-style: preserve-3d;
    transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, -9deg));
    transition: transform .6s var(--ease);
}
.store-theme .showcase3d__plate {
    position: absolute; inset-block: 14% -6%; inset-inline: 22% -6%;
    border-radius: 18px; background: var(--orange); transform: translateZ(-110px);
}
.store-theme .showcase3d__img { position: absolute; display: block; object-fit: cover; border-radius: 16px; background: var(--cream-deep); }
.store-theme .showcase3d__img--front {
    inset-block: 0; inset-inline-start: 0; width: 74%; height: 100%;
    transform: translateZ(50px); box-shadow: 0 34px 60px rgba(46, 26, 33, .22);
}
.store-theme .showcase3d__img--back { inset-inline-end: 0; bottom: 5%; width: 44%; height: 58%; transform: translateZ(-40px); }
.store-theme .showcase3d__badge {
    position: absolute; top: 16px; inset-inline-start: 16px; padding: .3rem .8rem;
    background: var(--orange); color: #fff; border-radius: 999px; font-size: .8rem; font-weight: 700; transform: translateZ(80px);
}
.store-theme .showcase3d__info { display: grid; gap: 1rem; justify-items: start; min-width: 0; }
.store-theme .showcase3d__info h3 { margin: 0; font-size: clamp(1.5rem, 3.4vw, 3rem); font-weight: 800; line-height: 1.35; }
.store-theme .showcase3d__info h3 a { color: inherit; text-decoration: none; }
.store-theme .showcase3d__info h3 a:hover { color: var(--orange); }
.store-theme .showcase3d__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin: 0; color: var(--brown-soft); }
.store-theme .showcase3d__meta a { color: var(--brown-soft); text-decoration: underline; text-underline-offset: 4px; }
.store-theme .showcase3d__meta a:hover { color: var(--orange); }
.store-theme .showcase3d__stock { display: inline-flex; align-items: center; gap: .45rem; }
.store-theme .showcase3d__stock::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #2f7d55; }
.store-theme .showcase3d__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .9rem; margin: 0; }
.store-theme .showcase3d__price strong { font-size: clamp(1.35rem, 2.4vw, 2rem); font-weight: 800; color: var(--orange); }
.store-theme .showcase3d__price .store-price__original { text-decoration: line-through; font-size: 1rem; }
.store-theme .showcase3d__cta { min-height: 48px; margin-top: .5rem; text-decoration: none; }
.store-theme .showcase3d__cta i { font-size: .8rem; transition: transform .25s var(--ease); }
.store-theme .showcase3d__cta:hover i { transform: translateX(-5px); }
.store-theme .showcase3d__thumbs { display: flex; justify-content: center; gap: 10px; padding: 4px var(--gutter) 0; overflow-x: auto; scrollbar-width: none; }
.store-theme .showcase3d__thumbs[hidden] { display: none; }
.store-theme .showcase3d__thumb {
    flex: none; width: 52px; height: 66px; padding: 0; overflow: hidden; border: 0; border-radius: 10px;
    background: var(--cream-deep); cursor: pointer; opacity: .5; transition: opacity .25s, transform .3s var(--ease);
}
.store-theme .showcase3d__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.store-theme .showcase3d__thumb:hover { opacity: .85; }
.store-theme .showcase3d__thumb.is-active { opacity: 1; transform: translateY(-4px); outline: 2px solid var(--orange); outline-offset: 2px; }
.store-theme .showcase3d__figure {
    transform: rotateY(calc(var(--p, 0) * 40deg)) scale(calc(1 - var(--pa, 0) * .14));
    opacity: calc(1 - var(--pa, 0) * .6);
}
@media (max-width: 780px) {
    .store-theme .showcase3d__rail { gap: 14px; padding-inline: var(--gutter); scroll-padding-inline: var(--gutter); }
    .store-theme .showcase3d__slide { flex-basis: 84%; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; padding: 1.75rem 0 1rem; }
    .store-theme .showcase3d__figure { width: 100%; padding-inline: 4% 2%; }
    .store-theme .showcase3d__info { gap: .6rem; }
    .store-theme .showcase3d__cta { width: 100%; }
}

/* ---------- footer ---------- */
.store-theme .site-footer { margin-top: clamp(4rem, 9vw, 8rem); padding-inline: var(--gutter); }
.store-theme .site-footer__grid { max-width: none; background: var(--orange-soft); border-radius: var(--radius-lg); }
.store-theme .site-footer__grid::before { content: none; }
.store-theme .site-footer strong::after { width: 24px; height: 2px; }
.store-theme .site-footer__logo { box-shadow: none; }
.store-theme .site-footer__links a { padding: .55rem 0; background: transparent; border-radius: 0; font-weight: 500; }
.store-theme .site-footer__links a:hover { background: transparent; color: var(--orange); transform: none; }
.store-theme .site-footer__links a:hover::after { color: var(--orange); }
.store-theme .site-footer__contact { border-radius: var(--radius-md); }
.store-theme .site-footer__top { box-shadow: none; }
.store-theme .site-footer__top:hover { box-shadow: none; }

/* ---------- listings ---------- */
.store-theme .catalog-hero { background: transparent; padding-inline: 0; }
.store-theme .catalog-hero h1, .store-theme .catalog-page-header h1, .store-theme .section-heading h1 { font-weight: 800; }
.store-theme .catalog-toolbar { background: transparent; padding-inline: 0; }
.store-theme .catalog-filters__trigger { border: 1px solid var(--ring); color: var(--brown); font-weight: 600; }
.store-theme .catalog-pagination__link,
.store-theme .catalog-pagination__nav { border: 1px solid var(--ring); }
.store-theme .catalog-pagination__link:hover { transform: none; }
.store-theme .store-grid > * { margin-bottom: clamp(22px, 3vw, 40px) !important; }

/* ---------- product page: photography first ---------- */
.store-theme .product-detail.page-shell { max-width: 1480px; padding-inline: var(--gutter); }
.store-theme .product-gallery,
.store-theme .product-gallery.surface-panel { padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.store-theme .product-gallery__viewport { border-radius: var(--radius-lg); }
.store-theme .product-gallery__slide img { border-radius: 0; transition: transform .5s var(--ease), opacity .4s var(--ease); }
.store-theme .product-gallery__arrow { box-shadow: none; background: rgba(255, 255, 255, .9); }
.store-theme .product-gallery__counter { box-shadow: none; font-weight: 600; }
.store-theme .product-thumb { border-radius: 10px; border-width: 0; opacity: .55; }
.store-theme .product-thumb.is-active { outline: 2px solid var(--orange); outline-offset: 2px; }
.store-theme .product-summary,
.store-theme .product-summary.surface-panel { padding: 0; background: transparent; border: 0; border-radius: 0; gap: 1.4rem; }
.store-theme .product-summary h1 { margin: 0; font-size: clamp(1.6rem, 2.8vw, 2.6rem); font-weight: 800; line-height: 1.4; }
.store-theme .product-price-card { padding: 1.1rem 0; background: transparent; border: 0; border-block: 1px solid var(--ring); border-radius: 0; }
.store-theme .product-price-card__row--final strong { font-size: clamp(1.5rem, 2.2vw, 1.9rem); font-weight: 800; }
.store-theme .variant-option,
.store-theme .variant-options button { min-height: 42px; min-width: 46px; padding: .35rem 1.05rem; border: 1px solid var(--ring); font-weight: 500; transition: border-color .2s, background-color .2s, color .2s; }
.store-theme .variant-options button:hover { transform: none; border-color: var(--orange); }
.store-theme .variant-option.is-active { box-shadow: none; font-weight: 600; }
.store-theme .variant-option.is-selected,
.store-theme .variant-options button.is-selected,
.store-theme .variant-options button[aria-pressed="true"] { animation: none; }
.store-theme .product-actions { align-items: center; gap: .6rem; }
.store-theme .product-actions .button-primary { flex: 0 1 auto; min-height: 48px; padding-inline: 2rem; font-size: .98rem; }
.store-theme .product-actions .button-muted { min-height: 48px; }
.store-theme .product-detail-section { padding: clamp(2rem, 4vw, 3.5rem) 0 0; background: transparent; border: 0; border-top: 1px solid var(--ring); border-radius: 0; }
.store-theme .product-detail-section .section-heading h2 { color: var(--brown); font-weight: 800; font-size: clamp(1.4rem, 2.6vw, 2rem); }
.store-theme .product-detail-section .section-heading h2::after { content: none; }
.store-theme .product-description__body:not(.is-expanded) .product-description-preview { padding-inline-start: 0; border-inline-start: 0; }
.store-theme .product-description__toggle { padding: .35rem 0; border: 0; border-bottom: 2px solid var(--orange); border-radius: 0; background: transparent; }
.store-theme .product-description__toggle:hover { background: transparent; color: var(--orange); transform: none; }
.store-theme .product-spec-row { background: #fff; border: 0; border-radius: var(--radius-sm); }
.store-theme .product-spec-row:last-child { border-bottom: 0; }
.store-theme .product-spec-row:hover { transform: none; }
.store-theme .product-spec-row span { color: var(--brown); font-weight: 600; }
.store-theme .review-card { background: #fff; border: 0; border-radius: var(--radius-md); }
.store-theme .review-card:hover { transform: none; }
.store-theme .product-review-ai-summary { border-radius: var(--radius-md); }
.store-theme .product-floating-cart { border: 0; border-radius: 999px; padding-inline: 12px 22px; box-shadow: 0 18px 44px rgba(46, 26, 33, .16); }
.store-theme .product-floating-cart__thumb { border-radius: 50%; object-fit: cover; }
.store-theme .product-mobile-cartbar { border: 0; border-radius: 999px; }

/* ---------- cart / checkout / payment ---------- */
.store-theme .section-heading__count,
.store-theme .step-badge { transform: none; }
.store-theme .checkout-steps__item + .checkout-steps__item::before { height: 2px; top: 18px; }
.store-theme .checkout-steps__dot { border-width: 1px; font-weight: 700; }
.store-theme .checkout-section, .store-theme .payment-card { border: 0; border-radius: var(--radius-lg); }
.store-theme .checkout-section h2, .store-theme .payment-card h2,
.store-theme .purchase-summary h2 { font-weight: 800; }
.store-theme .purchase-summary,
.store-theme .payment-flow-page .purchase-layout > aside { background: var(--orange-soft); border: 0; border-radius: var(--radius-lg); box-shadow: none; }
.store-theme .purchase-summary__row--grand { border-top: 1px solid rgba(74, 0, 24, .18); }
.store-theme .purchase-summary__row--grand strong { font-weight: 800; }
.store-theme .cart-item-card { border: 0; border-radius: var(--radius-lg); }
@media (hover: hover) { .store-theme .cart-item-card:hover { box-shadow: none; } }
.store-theme .cart-item-card__image { border-radius: 12px; }
.store-theme .cart-item-card__footer > strong:last-child { font-weight: 800; }
.store-theme .pending-order-banner { border: 0; border-radius: var(--radius-lg); }
.store-theme .empty-state { border-radius: var(--radius-lg); }
.store-theme .empty-state h2 { font-weight: 800; }
.store-theme .checkout-choice-card, .store-theme .payment-method-card { background: #fff; border: 1px solid var(--ring); border-radius: var(--radius-md); }
@media (hover: hover) { .store-theme .checkout-choice-card:hover, .store-theme .payment-method-card:hover { transform: none; } }
.store-theme .checkout-choice-card.is-selected, .store-theme .payment-method-card.is-selected { background: #fff; box-shadow: 0 0 0 1px var(--orange); }
.store-theme .payment-highlight, .store-theme .payment-summary-grid__item { border: 0; border-radius: var(--radius-sm); background: var(--cream); }
.store-theme input[type="text"], .store-theme input[type="tel"], .store-theme input[type="email"], .store-theme input[type="password"],
.store-theme input:not([type]), .store-theme textarea, .store-theme select { min-height: 48px; border: 1px solid var(--ring); border-radius: 12px; }
.store-theme input:focus, .store-theme textarea:focus, .store-theme select:focus { box-shadow: 0 0 0 3px var(--orange-soft); }
.store-theme .field-label { font-weight: 600; }
.store-theme .modal-card { border: 0; border-radius: var(--radius-lg); }
@media (max-width: 700px) { .store-theme .modal-card { border-radius: var(--radius-lg) var(--radius-lg) 0 0; } }
@media (max-width: 959px) { .store-theme .purchase-summary, .store-theme .payment-flow-page .purchase-layout > aside { border-radius: var(--radius-lg); } }

/* ---------- product page: editorial summary ---------- */
.store-theme .product-price-card { gap: .5rem; }
.store-theme .product-price-card__row { color: var(--brown-soft); font-size: .9rem; }
.store-theme .product-price-card__row--final { order: -1; align-items: baseline; padding: 0 0 .35rem; border-top: 0; }
.store-theme .variant-group { display: grid; gap: .6rem; }
.store-theme .variant-group__header { min-width: 0; padding: 0; color: var(--brown-soft); font-size: .9rem; }
.store-theme .variant-group__header strong { font-weight: 600; }
.store-theme .variant-group.is-required { padding: .9rem 1rem; border-radius: var(--radius-md); }
.store-theme .variant-options { flex: none; justify-content: flex-start; }
.store-theme .product-share-button { border-radius: 50%; }
.store-theme .product-detail .store-section--showcase { margin-top: clamp(2.5rem, 6vw, 5rem); padding-inline: 0; }
.store-theme .product-detail #campaigns .store-section__rail {
    display: grid; grid-auto-flow: column; grid-auto-columns: clamp(170px, 19vw, 270px); grid-template-columns: none;
    gap: clamp(14px, 2vw, 28px); padding: 0 0 .5rem; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none;
}
.store-theme .product-detail #campaigns .store-section__rail::-webkit-scrollbar { display: none; }
.store-theme .product-detail #campaigns .store-section__item { margin-top: 0; }
/* touch: the stage is swiped, so the arrows would only cover the objects */
@media (hover: none) { .store-theme .cat3d .category-strip__nav { display: none; } }

/* ---------- v7.1 — 3D hero, title-less categories, full-width product page, 3D gallery ---------- */
/* hero: the banner settles in from depth, then leans a few degrees toward the pointer (desktop only) */
@keyframes hero3d-in { from { transform: perspective(1400px) rotateX(7deg) translateZ(-90px) scale(1.1); opacity: .4; } }
.store-theme .hero-banner__slider { perspective: 1400px; }
.store-theme .hero-banner__slide.is-active .hero-banner__image { animation: hero3d-in 1.1s var(--ease) backwards; transform-origin: center; }
@media (hover: hover) and (pointer: fine) {
    /* slight overscale so the leaning edges never uncover the backdrop */
    .store-theme .hero-banner__image {
        transform: scale(1.05) rotateX(calc(var(--rx, 0deg) * .3)) rotateY(calc(var(--ry, 0deg) * .3));
        transition: transform .7s var(--ease); will-change: transform;
    }
}

.store-theme .cat3d { padding-top: clamp(.5rem, 2vw, 1.5rem); }
.store-theme .cat3d__card--all .cat3d__media { display: grid; place-items: center; background: var(--orange); color: #fff; font-size: 1.5rem; }

.store-theme .product-detail.page-shell { max-width: none; }

/* product gallery: the photo floats over a tinted plate and leans toward the pointer; zoom and swipe untouched */
@media (min-width: 781px) {
    .store-theme .product-gallery__stage { perspective: 1600px; }
    .store-theme .product-gallery__stage::before {
        content: ""; position: absolute; inset-block: 7% -3%; inset-inline: 5% -2.5%;
        border-radius: var(--radius-lg); background: var(--orange-soft);
        transform: rotateX(calc(var(--rx, 0deg) * -.25)) rotateY(calc(var(--ry, 0deg) * -.25));
        transition: transform .7s var(--ease);
    }
    .store-theme .product-gallery__viewport {
        position: relative;
        transform: rotateX(calc(var(--rx, 0deg) * .35)) rotateY(calc(var(--ry, 0deg) * .35));
        transition: transform .7s var(--ease);
        box-shadow: 0 30px 60px -28px rgba(46, 26, 33, .35);
    }
}

/* ---------- v7.2 ---------- */
/* categories: snap areas follow transforms, so snapping fought the coverflow turn and pushed the first item off-screen */
.store-theme .cat3d__stage { scroll-snap-type: none; }
.store-theme .cat3d__card { transform: rotateY(calc(var(--p, 0) * 20deg)) translateZ(calc(var(--pa, 0) * -50px)); }

/* description toggle: a clear burgundy action, centred under the preview */
.store-theme .product-description__toggle {
    justify-self: center; margin-top: .5rem; padding: .7rem 1.6rem; border: 0; border-radius: 999px;
    background: var(--orange); color: #fff; font-weight: 700;
}
.store-theme .product-description__toggle:hover { background: #63102a; color: #fff; transform: none; }

/* hero: picture wrapper must not add inline gaps; a light layer and the image drift against each other (parallax) */
.store-theme .hero-banner__slide picture { display: block; }
.store-theme .hero-banner__slider::after {
    content: ""; position: absolute; inset: -8%; z-index: 2; pointer-events: none;
    background: radial-gradient(55% 70% at 50% 8%, rgba(255, 255, 255, .28), rgba(255, 255, 255, 0) 70%);
    mix-blend-mode: soft-light;
    transform: translate(calc(var(--tx, 0) * -7%), calc(var(--ty, 0) * -7%));
    transition: transform .9s var(--ease);
}
.store-theme .hero-banner--immersive { overflow: hidden; box-shadow: inset 0 -1px 0 rgba(74, 0, 24, .06); }
@media (hover: hover) and (pointer: fine) {
    .store-theme .hero-banner__image {
        transform: scale(1.06) translate(calc(var(--tx, 0) * 1.4%), calc(var(--ty, 0) * 1.4%))
                   rotateX(calc(var(--rx, 0deg) * .3)) rotateY(calc(var(--ry, 0deg) * .3));
    }
}
@keyframes hero-drift { to { transform: translateY(16%) scale(1.05); opacity: .55; } }
@media (prefers-reduced-motion: no-preference) {
    @supports (animation-timeline: scroll()) {
        /* scroll parallax: the banner sinks away slower than the page and dims as content rises over it */
        .store-theme .hero-banner--immersive .hero-banner__slider { animation: hero-drift linear both; animation-timeline: scroll(root block); animation-range: 0 100vh; }
    }
}

/* product gallery: 3D stack. The next photo waits behind the front one; swiping turns the front away and
   brings the next forward. Site is RTL, so "next" lies to the left: shortcut: transforms assume dir=rtl, mirror the signs if an LTR storefront ever ships. */
.store-theme .product-gallery__stage::before { content: none; }
.store-theme .product-gallery__viewport,
.store-theme .product-gallery.surface-panel .product-gallery__viewport { background: transparent; border-radius: 0; box-shadow: none; }
/* the slide itself stays untransformed (scroll-snap and index sync measure it); only its picture card moves */
.store-theme .product-gallery__slide,
.store-theme .product-gallery.surface-panel .product-gallery__slide {
    position: relative; box-sizing: border-box; padding-inline-end: 7%; overflow: visible;
    z-index: calc(100 - var(--d, 0) * 10); perspective: 1400px;
    contain: none;   /* app.css paints-contains each slide, which would clip the card waiting behind the front one */
}
.store-theme .product-gallery__zoom-trigger {
    border-radius: var(--radius-lg); background: var(--cream-deep); box-shadow: -18px 0 34px -22px rgba(46, 26, 33, .45);
    transform-origin: left center;
    transform: translateX(calc(max(var(--d, 0), 0) * 100%)) scale(calc(1 - max(var(--d, 0), 0) * .07)) rotateY(calc(min(var(--d, 0), 0) * -30deg));
    opacity: calc(1 + min(var(--d, 0), 0) * .75);
}
.store-theme .product-gallery__viewport.is-stacked .product-gallery__zoom-trigger { will-change: transform; }
.store-theme .product-gallery__arrow--next { left: calc(7% + 12px); }
.store-theme .product-gallery__counter { inset-inline-start: 12px; }


/* ---------- v8 — hero edge fades, collapsed-menu fixes, Shop the Look coverflow ---------- */

/* hero: one layer, two soft fades — a light shade under the header and a melt into the page at the foot.
   It sits under the dots and arrows, so the controls stay crisp. */
.store-theme .hero-banner__slider::before {
    content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
    background:
        linear-gradient(to bottom, #f8f8fa 6%, rgba(248, 248, 250, .82) 34%, rgba(248, 248, 250, .38) 66%, rgba(248, 248, 250, 0)) top / 100% clamp(110px, 34%, 340px) no-repeat,
        linear-gradient(to top, #f8f8fa 6%, rgba(248, 248, 250, .82) 34%, rgba(248, 248, 250, .38) 66%, rgba(248, 248, 250, 0)) bottom / 100% clamp(110px, 34%, 340px) no-repeat;
}
/* the hero's own light top fade replaces the old dark scrim, so the transparent header reads in brand burgundy */
@media (min-width: 781px) {
    .store-theme .site-header--hero { background: transparent; }
    .store-theme .site-header--hero .search-form { border-bottom-color: var(--ring); }
    .store-theme .site-header--hero .search-form input,
    .store-theme .site-header--hero .search-form,
    .store-theme .site-header--hero .search-form i,
    .store-theme .site-header--hero .desktop-navbar__actions > a,
    .store-theme .site-header--hero .user-menu__trigger { color: var(--brown); }
    .store-theme .site-header--hero .search-form input::placeholder { color: var(--brown-soft); }
}
@media (max-width: 780px) {
    .store-theme .hero-banner__slider::before {
        background:
            linear-gradient(to bottom, #f8f8fa 4%, rgba(248, 248, 250, .6) 45%, rgba(248, 248, 250, 0)) top / 100% 22% no-repeat,
            linear-gradient(to top, #f8f8fa 4%, rgba(248, 248, 250, .6) 45%, rgba(248, 248, 250, 0)) bottom / 100% 22% no-repeat;
    }
}

/* collapsed floating menu: logo dead-centre in its ring; account links were unclickable
   (the dropdown keeps pointer-events: none until hover, which never fires on a display:contents parent) */
@media (min-width: 781px) {
    .hdr-collapsed .store-theme .desktop-navbar { max-height: 54px; width: 54px; border-radius: 27px; }
    .hdr-collapsed .store-theme .desktop-navbar__section--center { min-height: 52px; padding-inline: 2px; }
    .hdr-collapsed .store-theme .desktop-navbar:hover,
    .hdr-collapsed .store-theme .desktop-navbar:focus-within { width: 300px; max-height: min(640px, calc(100vh - 32px)); overflow-y: auto; }
    .hdr-collapsed .store-theme .user-menu__dropdown { pointer-events: auto !important; gap: 2px; }
    .hdr-collapsed .store-theme .user-menu__dropdown::before { content: none; }
    .hdr-collapsed .store-theme .user-menu__dropdown a,
    .hdr-collapsed .store-theme .user-menu__dropdown button {
        display: flex; align-items: center; width: 100%; min-height: 42px; padding: 0 12px; border: 0; background: transparent;
        font: inherit; font-weight: 500; cursor: pointer;
    }
    .hdr-collapsed .store-theme .user-menu__dropdown form { margin: 0; }
    .hdr-collapsed .store-theme .desktop-navbar__actions > a { justify-content: flex-start; font-weight: 500; }
    .hdr-collapsed .store-theme .desktop-navbar__actions > a.auth-link { justify-content: center; margin-top: 4px; }
}

/* ----- Shop the Look: three models on a round stage, the centre one in focus ----- */
.store-theme .look3d { min-width: 0; max-width: 100%; margin-top: clamp(3.5rem, 9vw, 8rem); overflow-x: clip; }
.store-theme .look3d__stage { position: relative; margin-top: clamp(1rem, 2vw, 2rem); }
.store-theme .look3d__stage::before {   /* the stage disc: lit top, soft rim, shadow on the floor */
    --disc: clamp(90px, 15vw, 190px);
    /* the buy button hangs 70px below the feet; the disc is centred a little under them */
    content: ""; position: absolute; left: 50%; bottom: calc(70px - var(--disc) * .42); width: min(92%, 1180px); height: var(--disc);
    translate: -50% 0; border-radius: 50%; background: radial-gradient(ellipse at 50% 30%, #fff 35%, #f1eef1 100%);
    box-shadow: 0 clamp(8px, 1.2vw, 16px) 0 #dcd6db, 0 46px 60px -34px rgba(46, 26, 33, .38);
}
.store-theme .look3d__rail {
    position: relative; display: flex; align-items: flex-end; overflow-x: auto; scroll-snap-type: x mandatory;
    scrollbar-width: none; overscroll-behavior-x: contain; perspective: 1500px; padding-inline: 33%;
}
.store-theme .look3d__rail::-webkit-scrollbar { display: none; }
/* the slide stays untransformed (scroll-snap and the centre test measure it); only the figure moves */
.store-theme .look3d__slide { flex: 0 0 100%; min-width: 0; display: grid; justify-items: center; align-content: end; scroll-snap-align: center; cursor: pointer; }
.store-theme .look3d__slide.is-active { cursor: default; }
/* the figure hugs the image, so hotspot percentages map straight onto the picture */
.store-theme .look3d__figure {
    position: relative; display: inline-block; transform-style: preserve-3d; transform-origin: 50% 100%;
    transform: rotateY(calc(var(--ry, 0deg) * .4)) rotateX(calc(var(--rx, 0deg) * .4));
    transition: transform .5s var(--ease);
}
.store-theme .look3d__figure::after {   /* ground shadow, cast slightly to one side like studio light */
    content: ""; position: absolute; inset-inline: 4% 14%; bottom: -3.5%; height: 9%; border-radius: 50%; z-index: -1;
    background: radial-gradient(closest-side, rgba(46, 26, 33, .42), rgba(46, 26, 33, .16) 55%, rgba(46, 26, 33, 0));
    transform: translateZ(-1px) skewX(-18deg);
}
.store-theme .look3d__model { display: block; width: auto; height: auto; max-width: 100%; max-height: min(64vh, 600px); border-radius: 6px; }
.store-theme .look3d__dot {
    position: absolute; z-index: 2; width: 44px; height: 44px; margin: -22px 0 0 -22px; border-radius: 50%;
    display: grid; place-items: center; transform: translateZ(40px); text-decoration: none;
}
.store-theme .look3d__dot--note { padding: 0; border: 0; background: transparent; cursor: help; }
.store-theme .look3d__dot::before {
    content: ""; width: 16px; height: 16px; border-radius: 50%; background: #fff;
    box-shadow: 0 0 0 5px rgba(255, 255, 255, .45), 0 4px 12px rgba(46, 26, 33, .3);
    transition: transform .25s var(--ease), background-color .2s, box-shadow .2s;
}
.store-theme .look3d__dot--note::before { background: var(--orange-soft); }
.store-theme .look3d__tip {
    position: absolute; bottom: calc(100% - 4px); left: 50%; translate: -50% 6px; padding: .3rem .8rem; white-space: nowrap;
    background: var(--orange); color: #fff; border-radius: 999px; font-size: .78rem; font-weight: 600;
    opacity: 0; pointer-events: none; transition: opacity .2s, translate .25s var(--ease);
}
.store-theme .look3d__dot:is(:hover, :focus-visible) { outline: 0; }
.store-theme .look3d__dot:is(:hover, :focus-visible) .look3d__tip { opacity: 1; translate: -50% 0; }
.store-theme .look3d__dot:is(:hover, :focus-visible)::before,
.store-theme .look3d:has(.look3d__item[data-i="0"]:is(:hover, :focus-visible)) .look3d__slide.is-active .look3d__dot[data-i="0"]::before,
.store-theme .look3d:has(.look3d__item[data-i="1"]:is(:hover, :focus-visible)) .look3d__slide.is-active .look3d__dot[data-i="1"]::before,
.store-theme .look3d:has(.look3d__item[data-i="2"]:is(:hover, :focus-visible)) .look3d__slide.is-active .look3d__dot[data-i="2"]::before,
.store-theme .look3d:has(.look3d__item[data-i="3"]:is(:hover, :focus-visible)) .look3d__slide.is-active .look3d__dot[data-i="3"]::before,
.store-theme .look3d:has(.look3d__item[data-i="4"]:is(:hover, :focus-visible)) .look3d__slide.is-active .look3d__dot[data-i="4"]::before,
.store-theme .look3d:has(.look3d__item[data-i="5"]:is(:hover, :focus-visible)) .look3d__slide.is-active .look3d__dot[data-i="5"]::before,
.store-theme .look3d:has(.look3d__item[data-i="6"]:is(:hover, :focus-visible)) .look3d__slide.is-active .look3d__dot[data-i="6"]::before,
.store-theme .look3d:has(.look3d__item[data-i="7"]:is(:hover, :focus-visible)) .look3d__slide.is-active .look3d__dot[data-i="7"]::before,
.store-theme .look3d:has(.look3d__item[data-i="8"]:is(:hover, :focus-visible)) .look3d__slide.is-active .look3d__dot[data-i="8"]::before,
.store-theme .look3d:has(.look3d__item[data-i="9"]:is(:hover, :focus-visible)) .look3d__slide.is-active .look3d__dot[data-i="9"]::before,
.store-theme .look3d:has(.look3d__item[data-i="10"]:is(:hover, :focus-visible)) .look3d__slide.is-active .look3d__dot[data-i="10"]::before,
.store-theme .look3d:has(.look3d__item[data-i="11"]:is(:hover, :focus-visible)) .look3d__slide.is-active .look3d__dot[data-i="11"]::before { transform: scale(1.35); background: var(--orange); box-shadow: 0 0 0 5px rgba(74, 0, 24, .22), 0 4px 12px rgba(46, 26, 33, .3); animation: none; }
@keyframes look3d-pulse { 50% { box-shadow: 0 0 0 10px rgba(255, 255, 255, .18), 0 4px 12px rgba(46, 26, 33, .3); } }
@media (prefers-reduced-motion: no-preference) { .store-theme .look3d__dot::before { animation: look3d-pulse 2.6s ease-in-out infinite; } }
/* with the script running, only the model in front carries its hotspots and only its panel shows */
.store-theme .look3d.is-ring .look3d__slide:not(.is-active) :is(.look3d__dot, .look3d__cta) { visibility: hidden; }
.store-theme .look3d.is-ring .look3d__panel:not(.is-active) { display: none; }

.store-theme .look3d__nav { display: flex; align-items: center; justify-content: center; gap: 1.25rem; margin-top: 1.5rem; }
.store-theme .look3d__nav[hidden] { display: none; }
.store-theme .look3d__arrow {
    display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid var(--ring); border-radius: 50%;
    background: #fff; color: var(--brown); cursor: pointer; transition: background-color .2s, color .2s, border-color .2s;
}
.store-theme .look3d__arrow:hover { background: var(--orange); border-color: var(--orange); color: #fff; }
.store-theme .look3d__pips { display: flex; align-items: center; gap: 8px; }
.store-theme .look3d__pip { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 999px; background: #d9d6dc; cursor: pointer; transition: width .3s var(--ease), background-color .2s; }
.store-theme .look3d__pip::after { content: ""; display: block; height: 28px; margin-top: -10px; }   /* larger touch target */
.store-theme .look3d__pip.is-active { width: 30px; background: var(--orange); }

.store-theme .look3d__panel { display: grid; justify-items: center; gap: 1.1rem; margin-top: clamp(1.25rem, 3vw, 2.25rem); padding-inline: var(--gutter); }
@keyframes look3d-panel-in { from { opacity: 0; translate: 0 10px; } }
@media (prefers-reduced-motion: no-preference) { .store-theme .look3d__panel.is-active { animation: look3d-panel-in .45s var(--ease); } }
.store-theme .look3d__panel-head { display: grid; justify-items: center; gap: .15rem; text-align: center; }
.store-theme .look3d__panel-head h3 { margin: 0; font-size: clamp(1.2rem, 2.2vw, 1.6rem); font-weight: 800; }
.store-theme .look3d__panel-head span { color: var(--brown-soft); font-size: .9rem; }
.store-theme .look3d__items { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; width: 100%; margin: 0; padding: 0; list-style: none; }
.store-theme .look3d__items li { flex: 0 1 300px; min-width: 0; }
.store-theme .look3d__item {
    display: grid; grid-template-columns: 72px minmax(0, 1fr); align-items: center; gap: .9rem; padding: .5rem;
    background: #fff; border-radius: var(--radius-md); color: var(--brown); text-decoration: none;
    transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.store-theme .look3d__item img { width: 72px; height: 88px; object-fit: cover; border-radius: 10px; background: var(--cream-deep); }
.store-theme .look3d__item-text { display: grid; gap: .2rem; min-width: 0; }
.store-theme .look3d__item-text strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.store-theme .look3d__item-cat { color: var(--brown-soft); font-size: .8rem; }
.store-theme .look3d__item-price { display: flex; flex-wrap: wrap; gap: .1rem .6rem; color: var(--orange); font-weight: 700; }
.store-theme .look3d__item-price .store-price__original { text-decoration: line-through; }
.store-theme .look3d__item:is(:hover, :focus-visible),
.store-theme .look3d:has(.look3d__dot[data-i="0"]:is(:hover, :focus-visible)) .look3d__item[data-i="0"],
.store-theme .look3d:has(.look3d__dot[data-i="1"]:is(:hover, :focus-visible)) .look3d__item[data-i="1"],
.store-theme .look3d:has(.look3d__dot[data-i="2"]:is(:hover, :focus-visible)) .look3d__item[data-i="2"],
.store-theme .look3d:has(.look3d__dot[data-i="3"]:is(:hover, :focus-visible)) .look3d__item[data-i="3"],
.store-theme .look3d:has(.look3d__dot[data-i="4"]:is(:hover, :focus-visible)) .look3d__item[data-i="4"],
.store-theme .look3d:has(.look3d__dot[data-i="5"]:is(:hover, :focus-visible)) .look3d__item[data-i="5"],
.store-theme .look3d:has(.look3d__dot[data-i="6"]:is(:hover, :focus-visible)) .look3d__item[data-i="6"],
.store-theme .look3d:has(.look3d__dot[data-i="7"]:is(:hover, :focus-visible)) .look3d__item[data-i="7"],
.store-theme .look3d:has(.look3d__dot[data-i="8"]:is(:hover, :focus-visible)) .look3d__item[data-i="8"],
.store-theme .look3d:has(.look3d__dot[data-i="9"]:is(:hover, :focus-visible)) .look3d__item[data-i="9"],
.store-theme .look3d:has(.look3d__dot[data-i="10"]:is(:hover, :focus-visible)) .look3d__item[data-i="10"],
.store-theme .look3d:has(.look3d__dot[data-i="11"]:is(:hover, :focus-visible)) .look3d__item[data-i="11"] { transform: translateY(-4px); box-shadow: 0 0 0 1.5px var(--orange); outline: 0; }
.store-theme .look3d__cta { position: relative; z-index: 3; height: 52px; min-height: 0; margin-top: 18px; padding-inline: 2rem; font-size: 1.02rem; white-space: nowrap; text-decoration: none; box-shadow: 0 16px 30px -16px rgba(74, 0, 24, .6); }
.store-theme .look3d__cta:hover { box-shadow: 0 16px 30px -16px rgba(74, 0, 24, .6); }
@media (min-width: 901px) { .store-theme .look3d__slide { flex-basis: 34vw; } .store-theme .look3d__rail { padding-inline: 33vw; } }
@media (max-width: 900px) {
    /* phones: the centre model fills most of the width, its neighbours only peek in */
    .store-theme .look3d__rail { padding-inline: 21%; }
    .store-theme .look3d__slide { flex-basis: 58vw; }
    .store-theme .look3d__model { max-height: min(54vh, 460px); }
    .store-theme .look3d__items { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
    .store-theme .look3d__items li { flex: 0 0 min(78%, 280px); }
    .store-theme .look3d__item:is(:hover, :focus-visible) { transform: none; }
}

/* ----- Shop the Look ring (set by Home.razor.js): every look shares one grid cell and is placed on a circle.
   --x sideways (-1..1), --t depth (1 front, 0 back), --o opacity; the rail no longer scrolls, so the looks can
   never leave the screen: they pass behind the front one and return from the other side. ----- */
.store-theme .look3d.is-ring .look3d__rail {
    display: grid; justify-items: center; overflow: hidden; padding-inline: 0; scroll-snap-type: none;
    touch-action: pan-y; user-select: none; -webkit-user-select: none; cursor: grab;
}
.store-theme .look3d.is-ring .look3d__rail:active { cursor: grabbing; }
.store-theme .look3d.is-ring .look3d__slide {
    grid-area: 1 / 1; width: min(46vw, 420px); transform-origin: 50% calc(100% - 70px);
    transform: translateX(calc(var(--x, 0) * min(34vw, 430px))) translateY(calc((1 - var(--t, 1)) * -7%)) scale(calc(.52 + var(--t, 1) * .48));
    z-index: calc(var(--t, 1) * 100); opacity: var(--o, 1);
    filter: blur(calc((1 - var(--t, 1)) * 4px)); will-change: transform;
}
@media (max-width: 900px) {
    .store-theme .look3d.is-ring .look3d__slide { width: 62vw; transform: translateX(calc(var(--x, 0) * 37vw)) translateY(calc((1 - var(--t, 1)) * -6%)) scale(calc(.5 + var(--t, 1) * .5)); }
}

/* ===== Payment / BWDK return pages (shared PaymentOutcomeCard) ===== */
.store-theme .pay-outcome { display: grid; place-items: start center; padding: clamp(1.25rem, 5vw, 3.5rem) 0 clamp(5rem, 12vw, 4rem); }
.store-theme .pay-outcome__card {
    position: relative; width: min(100%, 560px); overflow: hidden; text-align: center;
    background: #fff; border: 1px solid var(--ring); border-radius: 28px;
    padding: 8.6rem clamp(1.1rem, 5vw, 2.25rem) clamp(1.4rem, 4vw, 2rem);
    box-shadow: 0 24px 60px rgba(74, 0, 24, .10);
    animation: st-rise .5s var(--ease) both;
}
.store-theme .pay-outcome__card::before {
    content: ""; position: absolute; inset: 0 0 auto 0; height: 6rem;
    background: radial-gradient(120% 140% at 50% 0%, #6b0e2c 0%, #4a0018 62%, #3a0013 100%);
}
.store-theme .pay-outcome__seal {
    position: absolute; top: 3.8rem; inset-inline: 0; margin-inline: auto; width: 4.4rem; height: 4.4rem; border-radius: 50%;
    display: grid; place-items: center; font-size: 1.7rem; color: #4a0018; background: #fff;
    box-shadow: 0 0 0 6px rgba(255, 255, 255, .35), 0 10px 26px rgba(74, 0, 24, .28);
}
.store-theme .pay-outcome--success .pay-outcome__seal { color: #fff; background: #4a0018; box-shadow: 0 0 0 6px #fff, 0 0 0 7px #4a0018, 0 12px 28px rgba(74, 0, 24, .35); animation: st-pop .55s var(--spring) both; }
.store-theme .pay-outcome--failed .pay-outcome__seal { color: #8c1d18; }
.store-theme .pay-outcome--cancelled .pay-outcome__seal, .store-theme .pay-outcome--expired .pay-outcome__seal { color: var(--brown-soft); }
.store-theme .pay-outcome__spinner { width: 1.9rem; height: 1.9rem; border-radius: 50%; border: 3px solid #e9d6dc; border-top-color: #4a0018; animation: pay-spin 1s linear infinite; }
@keyframes pay-spin { to { transform: rotate(360deg); } }
.store-theme .pay-outcome__kicker { margin: 0 0 .15rem; font-size: .8rem; font-weight: 800; letter-spacing: .02em; color: var(--brown-soft); }
.store-theme .pay-outcome--success .pay-outcome__kicker { color: #4a0018; }
.store-theme .pay-outcome--failed .pay-outcome__kicker { color: #8c1d18; }
.store-theme .pay-outcome__title { margin: 0 0 .45rem; font-size: clamp(1.25rem, 4.6vw, 1.65rem); line-height: 1.5; }
.store-theme .pay-outcome__message { margin: 0 auto; max-width: 42ch; color: var(--brown-soft); font-size: .95rem; line-height: 1.9; }
.store-theme .pay-outcome__rows { margin: 1.4rem 0 0; padding: .35rem 1rem; text-align: start; border: 1px solid var(--ring); border-radius: 18px; background: var(--cream); }
.store-theme .pay-outcome__rows > div { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .7rem 0; }
.store-theme .pay-outcome__rows > div + div { border-top: 1px dashed var(--ring); }
.store-theme .pay-outcome__rows dt { color: var(--brown-soft); font-size: .85rem; flex: none; }
.store-theme .pay-outcome__rows dd { margin: 0; font-weight: 700; font-size: .92rem; min-width: 0; overflow-wrap: anywhere; text-align: end; unicode-bidi: plaintext; }
.store-theme .pay-outcome__hint { margin: 1rem 0 0; padding: .75rem .9rem; border-radius: 14px; background: var(--orange-soft); color: #4a0018; font-size: .85rem; line-height: 1.8; }
.store-theme .pay-outcome__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .65rem; margin-top: 1.5rem; }
.store-theme .pay-outcome__actions > * { flex: 1 1 11rem; min-height: 3rem; }
@media (max-width: 520px) {
    .store-theme .pay-outcome { padding-top: .75rem; }
    .store-theme .pay-outcome__card { border-radius: 22px; }
    .store-theme .pay-outcome__actions > * { flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .store-theme .pay-outcome__card, .store-theme .pay-outcome--success .pay-outcome__seal, .store-theme .pay-outcome__spinner { animation: none; }
}

/* ===== Login / registration (AuthPage) ===== */
.store-theme .auth-experience { display: block; padding-block: clamp(1rem, 4vw, 3.5rem) 5.5rem; }
.store-theme .auth-layout { width: 100%; }
.store-theme .auth-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; max-width: 1040px; margin-inline: auto; align-items: stretch; }
.store-theme .auth-brand { display: none; }
.store-theme .auth-panel {
    position: relative; width: 100%; max-width: 460px !important; margin-inline: auto; padding: 7.6rem clamp(1.1rem, 5vw, 2.1rem) 1.8rem; overflow: hidden;
    background: #fff; border: 1px solid var(--ring); border-radius: 28px; box-shadow: 0 24px 60px rgba(74, 0, 24, .10);
    animation: st-rise .45s var(--ease) both;
}
.store-theme .auth-panel::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 5.2rem; background: radial-gradient(120% 140% at 50% 0%, #6b0e2c 0%, #4a0018 62%, #3a0013 100%); }
.store-theme .auth-panel__logo { position: absolute; top: 2.55rem; inset-inline: 0; margin-inline: auto; width: 4.2rem; height: 4.2rem; border-radius: 50%; object-fit: cover; background: #fff; box-shadow: 0 0 0 5px #fff, 0 10px 24px rgba(74, 0, 24, .28); }
.store-theme .auth-panel > * { position: relative; }
.store-theme .auth-panel > .auth-panel__logo { position: absolute; }
.store-theme .auth-step-header { text-align: center; }
.store-theme .auth-step-header h1, .store-theme .auth-step-header h2 { font-size: clamp(1.3rem, 4.6vw, 1.6rem); margin: 0 0 .5rem; }
.store-theme .auth-step-header p { color: var(--brown-soft); font-size: .92rem; line-height: 1.9; margin: 0; }
.store-theme .auth-panel .field-stack > input {
    width: 100%; min-height: 54px; padding-inline: 1.1rem; border-radius: 16px; border: 1.5px solid var(--ring); background: var(--cream);
    font-size: 1rem; text-align: start; transition: border-color .2s, box-shadow .2s, background-color .2s;
}
.store-theme .auth-panel .field-stack > input:focus { outline: none; background: #fff; border-color: #4a0018; box-shadow: 0 0 0 4px rgba(74, 0, 24, .12); }
.store-theme .auth-panel input[name="phoneNumber"] { direction: ltr; text-align: center; letter-spacing: .06em; font-weight: 700; }
.store-theme .auth-panel input[name="phoneNumber"]::placeholder { direction: rtl; letter-spacing: 0; font-weight: 400; }
.store-theme .auth-panel__submit { width: 100%; min-height: 54px; border-radius: 16px; font-weight: 800; }
.store-theme .auth-mode-chip { display: block; width: 100%; margin-top: .6rem; padding: .7rem; border: 0; background: transparent; color: #4a0018; font-weight: 700; font-size: .9rem; border-radius: 12px; cursor: pointer; }
.store-theme .auth-mode-chip:hover { background: var(--orange-soft); }
.store-theme .auth-secondary-link { background: none; border: 0; color: #4a0018; font-weight: 700; cursor: pointer; padding: .25rem .4rem; }
.store-theme .auth-error { margin: 0 0 1rem; padding: .8rem 1rem; border-radius: 14px; background: #fbe3e1; color: #8c1d18; font-size: .9rem; text-align: center; }
.store-theme .auth-resend-form { display: flex; justify-content: center; align-items: center; gap: .4rem; margin-top: 1.1rem; font-size: .88rem; color: var(--brown-soft); }
.store-theme .auth-otp-change-row { display: flex; justify-content: center; align-items: center; gap: .4rem; font-size: .88rem; color: var(--brown-soft); margin-bottom: 1rem; }
.store-theme .auth-otp-input-wrap { direction: ltr; display: flex; justify-content: center; }
.store-theme .auth-otp-input-wrap input { border-radius: 14px; border: 1.5px solid var(--ring); background: var(--cream); text-align: center; font-weight: 800; }
.store-theme .auth-otp-input-wrap input:focus { outline: none; border-color: #4a0018; box-shadow: 0 0 0 4px rgba(74, 0, 24, .12); background: #fff; }
.store-theme .auth-password-prompt { text-align: center; }
@media (min-width: 900px) {
    .store-theme .auth-layout { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 0; border-radius: 32px; overflow: hidden; box-shadow: 0 30px 80px rgba(74, 0, 24, .16); }
    .store-theme .auth-brand {
        display: flex; flex-direction: column; justify-content: center; gap: 1.1rem; padding: 3rem 2.6rem; color: #fff;
        background: radial-gradient(130% 120% at 85% 0%, #7a1236 0%, #4a0018 55%, #33000f 100%);
    }
    .store-theme .auth-brand__logo { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; background: #fff; box-shadow: 0 0 0 5px rgba(255, 255, 255, .25); }
    .store-theme .auth-brand__title { color: #fff; margin: .4rem 0 0; font-size: 1.9rem; }
    .store-theme .auth-brand__lead { margin: 0; color: rgba(255, 255, 255, .82); line-height: 1.9; }
    .store-theme .auth-brand__list { list-style: none; margin: .8rem 0 0; padding: 0; display: grid; gap: .9rem; }
    .store-theme .auth-brand__list li { display: flex; gap: .8rem; align-items: center; color: rgba(255, 255, 255, .92); font-size: .93rem; line-height: 1.8; }
    .store-theme .auth-brand__list i { flex: none; width: 2.4rem; height: 2.4rem; display: grid; place-items: center; border-radius: 12px; background: rgba(255, 255, 255, .12); }
    .store-theme .auth-panel { width: 100%; border-radius: 0; box-shadow: none; border: 0; padding: 3rem 2.6rem; max-width: none !important; display: flex; flex-direction: column; justify-content: center; }
    .store-theme .auth-panel::before { display: none; }
    .store-theme .auth-panel__logo { display: none; }
    }
@media (prefers-reduced-motion: reduce) { .store-theme .auth-panel { animation: none; } }
