﻿/* ==========================================================================
   shop-002 — 2026 design layer                                 (2026-08-11)

   Loaded LAST, after main.css (Tailwind v4) and theme-glue.css.

   WHY THIS FILE WINS WITHOUT !important
   Tailwind v4 ships everything inside @layer theme / base / utilities.
   Unlayered CSS beats every layered rule regardless of specificity, so this
   file settles the cascade by existing — no !important, no specificity war.

   SCOPE
   Every rule is under .shop-002-page (set on <body> in _BaseLayout). Nothing
   here can reach shop-001, Default, shop-0012, the admin area, or any shared
   view. No bare element selectors outside that scope.

   REM BASE
   shop-002 does NOT use html{font-size:62.5%}. 1rem = 16px here.
   Every token below carries its px value in a comment.
   ========================================================================== */

/* ─────────────────────────────────────────────────────────────────────────
   1. DESIGN TOKENS
   ───────────────────────────────────────────────────────────────────────── */
.shop-002-page {

    --color-primary-50: #F5F5F4;
    --color-primary-100: #E7E5E4;
    --color-primary-200: #D6D3D1;
    --color-primary-300: #A8A29E;
    --color-primary-400: #57534E;
    --color-primary-500: #292524;
    --color-primary-600: #1C1917;
    --color-primary-700: #17140F;
    --color-primary-800: #0C0A09;

    /* ══ 1b. Semantic surfaces & ink ════════════════════════════════════ */
    --s2-canvas: #FAFAF9;
    --s2-surface: #FFFFFF;
    --s2-sunken: #F5F5F4;
    --s2-ink: #1C1917;
    --s2-body: #44403C;
    --s2-muted: #78716C;
    --s2-hairline: rgba(28, 25, 23, .10);
    --s2-hairline-strong: rgba(28, 25, 23, .20);

    --s2-link: var(--s2-ink);
    --s2-buy: #c72444;
    --s2-buy-hover: #c72444;
    --s2-buy-ink: #FFFFFF;
    --s2-buy-solid: #c72444;
    --s2-price: var(--s2-ink);
    --s2-sale: #9F1239;
    --s2-success: #15803D;
    /* 4.87:1                       */
    --s2-danger: #B3261E;
    --s2-warning: #c72444;
    --s2-star: #c72444;
    --s2-shimmer: #EFEEEC;

    /* ══ 1d. Typography ═════════════════════════════════════════════════ */
    --s2-ff: yekanBakhRegular, Tahoma, sans-serif;
    --s2-ff-med: yekanBakhSemiBold, Tahoma, sans-serif;
    --s2-ff-bold: yekanBakhBold, Tahoma, sans-serif;
    --s2-ff-black: yekanBakhExtraBold, Tahoma, sans-serif;

    --fs-display: clamp(2rem, 1.2rem + 3vw, 2.75rem);
    /* 32 → 44 */
    --fs-h1: clamp(1.375rem, 1.1rem + .8vw, 1.625rem);
    --fs-h2: clamp(1.25rem, 1rem + 1vw, 1.625rem);
    /* 20 → 26 */
    --fs-h3: 1.25rem;
    /* 20 */
    --fs-body-lg: 1.0625rem;
    /* 17 */
    --fs-body: 0.9375rem;
    /* 15 */
    --fs-body-sm: 0.8125rem;
    /* 13 */
    --fs-caption: 0.75rem;
    /* 12 */

    --lh-heading: 1.4;
    /* Persian needs more leading than Latin */
    --lh-body: 1.8;
    --lh-snug: 1.6;
    --ls: 0;
    /* never negative — it breaks Persian joins */

    /* ══ 1e. Spacing — 4px grid ═════════════════════════════════════════ */
    --space-1: 0.25rem;
    /*   4 */
    --space-2: 0.5rem;
    /*   8 */
    --space-3: 0.75rem;
    /*  12 */
    --space-4: 1rem;
    /*  16 */
    --space-5: 1.5rem;
    /*  24 */
    --space-6: 2rem;
    /*  32 */
    --space-7: 2.5rem;
    /*  40 */
    --space-8: 3rem;
    /*  48 */
    --space-9: 4rem;
    /*  64 */
    --space-10: 5rem;
    /*  80 */
    --space-11: 6rem;
    /*  96 */
    --space-12: 8rem;
    /* 128 */

    /* ══ 1f. Radius / elevation ═════════════════════════════════════════ */
    --s2-r-sm: 8px;
    --s2-r-md: 12px;
    --s2-r-lg: 16px;
    --s2-r-xl: 20px;
    --s2-r-pill: 999px;

    --s2-sh-1: 0 1px 2px rgba(28, 25, 23, .04);
    --s2-sh-2: 0 4px 16px rgba(28, 25, 23, .07);
    --s2-sh-3: 0 16px 40px rgba(28, 25, 23, .12);

    /* ══ 1g. Layout ═════════════════════════════════════════════════════ */
    /* Same content width as ksport: a 1240px box (1450px from 1550px up, below)
       with a 12px gutter at every size. */
    --s2-container: 1240px;
    --s2-narrow: 720px;
    --s2-gutter: 12px;
    --s2-side-w: 280px;
    /* filter rail */
    --s2-card-min: 160px;
    /* product grid track floor */
    --s2-card-max: 180px;

    /* ══ 1h. Controls ═══════════════════════════════════════════════════ */
    --s2-hit: 44px;
    /* minimum touch target */
    --s2-btn-h: 44px;
    --s2-input-h: 44px;

    /* ══ 1i. Focus / disabled ═══════════════════════════════════════════ */
    --s2-focus: var(--s2-ink);
    --s2-focus-ring: 0 0 0 3px rgba(28, 25, 23, .18);
    --s2-disabled-o: .5;

    /* ══ 1j. Motion ═════════════════════════════════════════════════════ */
    --dur-fast: 120ms;
    --dur: 200ms;
    --dur-slow: 320ms;
    --ease: cubic-bezier(.4, 0, .2, 1);
    --ease-out: cubic-bezier(.16, 1, .3, 1);
}

@media (min-width: 768px) {
    .shop-002-page {
        --s2-card-min: 200px;
        --s2-card-max: 220px;
    }
}

@media (min-width: 1280px) {
    .shop-002-page {
        --s2-card-min: 220px;
        --s2-card-max: 235px;
    }
}

@media (min-width: 1550px) {
    .shop-002-page {
        --s2-container: 1450px;
    }
}

/* ─────────────────────────────────────────────────────────────────────────
   2. THEME SCOPE / BASE
   Deliberately tiny. The header, footer and menu are finished Tailwind
   components — this must not reach into them.
   ───────────────────────────────────────────────────────────────────────── */
/* =========================================================
   START FOOTER
   ========================================================= */

.s2-footer {
    position: relative;
    margin-top: 150px;
    padding-bottom: 20px;
    /* background: linear-gradient(90deg, #310812 0%, #330612 45%, #330612 50%, #310812 55%, #000000 100%); */
    background: linear-gradient(90deg, #050102 0%, #21070d 100%);
    color: #fff;
    direction: rtl;
    display: flex;
    justify-content: center;
}


/* =========================================================
   SUPPORT CARD
   ========================================================= */

.s2-footer-support {
    position: relative;
    transform: translateY(-55px);
    min-height: 100px;
    margin-bottom: 0px;
    overflow: hidden;
    border-radius: 30px;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(90deg, #050102 0%, #21070d 100%);
}

.s2-footer-support-inner {
    position: relative;
    z-index: 1;
    width: 100%;
    padding: 0 35px;
    text-align: center;
    text-align: center;
    display: flex;
    justify-content: space-between;
}


.s2-footer-support h2 {
    color: #fff;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.8;
}


.s2-footer-support-info {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 70px;
    color: #fff;
    font-size: 15px;
}


.s2-footer-support-item {
    display: flex;
    align-items: center;
    gap: 7px;
}


.s2-footer-support-item i {
    font-size: 18px;
    color: #2f1764;
}


.s2-footer-support-phones {
    display: flex;
    align-items: center;
    gap: 8px;
}


.s2-footer-support-phones a {
    color: #fff;
    text-decoration: none;
    transition: color 0.2s ease;
}


.s2-footer-support-phones a:hover {
    color: #e1306c;
}


/* =========================================================
   MAIN CONTENT
   ========================================================= */

.s2-footer-main {
    display: grid;
    grid-template-columns:
        minmax(0, 1.4fr)
        minmax(180px, 0.8fr)
        minmax(180px, 0.8fr)
        minmax(220px, 1fr);
    gap: 45px;
    padding: 0 30px;
}


.s2-footer-main h2 {
    margin: 0 0 12px;
    color: #fff;
    font-size: 25px;
    font-weight: 700;
}


.s2-footer-heading-line {
    width: 45px;
    height: 3px;
    margin-bottom: 20px;
    border-radius: 20px;
    background: #9f1239;
}


/* =========================================================
   ABOUT
   ========================================================= */

.s2-footer-about {
    min-width: 0;
}


.s2-footer-about p {
    margin: 0;
    color: rgba(255, 255, 255, 0.92);
    font-size: 16px;
    line-height: 2.15;
    text-align: justify;
}


.s2-footer-address {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 20px;
    color: rgba(255, 255, 255, 0.9);
    font-size: 14px;
    line-height: 1.9;
}


.s2-footer-address i {
    flex-shrink: 0;
    margin-top: 4px;
    color: #a27aff;
}


/* =========================================================
   WHY US
   ========================================================= */

.s2-footer-why-list ul {
    margin: 0;
    padding: 0;
    list-style: none;
}


.s2-footer-why-list li {
    position: relative;
    margin-bottom: 13px;
    padding-right: 18px;
    color: #fff;
    font-size: 15px;
    line-height: 1.8;
}


.s2-footer-why-list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 11px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #e1306c;
}


.s2-footer-why-list li a {
    color: #fff;
    text-decoration: none;
    transition:
        color 0.2s ease,
        padding-right 0.2s ease;
}


.s2-footer-why-list li a:hover {
    color: #c4a8ff;
    padding-right: 4px;
}


/* =========================================================
   CERTIFICATES
   ========================================================= */

.s2-footer-certificates {
    min-width: 0;
}


.s2-footer-certificate-title {
    width: 45px;
    height: 3px;
    margin-bottom: 20px;
    border-radius: 20px;
    background: #9f1239;
}


.s2-footer-badges {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 18px;
}

.s2-footer-badges>* {
    flex: 1;
    min-width: 0;
}


.s2-footer-badges img {
    display: block;
    max-width: 100%;
    width: auto;
    height: 115px;
    object-fit: contain;
    margin: auto;
}


/* =========================================================
   NEWSLETTER + SOCIAL
   ========================================================= */

.s2-footer-bottom-row {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr) minmax(0, 1fr);
    gap: 18px;
    margin-top: 15px;
}


.s2-footer-newsletter,
.s2-footer-social-box {
    min-height: 100px;
    padding: 18px 22px;
    border-radius: 15px;
    background:
        linear-gradient(90deg, #050102 0%, #21070d 100%);
}


.s2-footer-social-box {
    background:
        linear-gradient(90deg, #050102 0%, #21070d 100%);
}


.s2-footer-box-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 15px;
    color: #fff;
    font-size: 15px;
}


.s2-footer-box-title i {
    color: #d6c4ff;
    font-size: 18px;
}


/* =========================================================
   NEWSLETTER FORM
   ========================================================= */

.s2-footer-newsletter-form {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
}


.s2-footer-newsletter-form input {
    flex: 1;
    width: 100%;
    height: 42px;
    padding: 0 18px;
    border: 0;
    outline: none;
    border-radius: 25px;
    background: #fff;
    color: #333;
    font-size: 14px;
}


.s2-footer-newsletter-form input::placeholder {
    color: #888;
}


.s2-footer-newsletter-form input:focus {
    box-shadow: 0 0 0 2px rgba(162, 122, 255, 0.4);
}


.s2-footer-newsletter-form button {
    flex: 0 0 95px;
    height: 42px;
    padding: 0 18px;
    border: none;
    border-radius: 25px;
    background: #e1306c;
    color: #fff;
    cursor: pointer;
    font-size: 15px;
    transition:
        transform 0.2s ease,
        background 0.2s ease;
}


.s2-footer-newsletter-form button:hover {
    background: #d02761;
    transform: translateY(-1px);
}


.s2-footer-newsletter-message {
    margin: 7px 5px 0;
    min-height: 20px;
    font-size: 12px;
    color: #fff;
}


/* =========================================================
   SOCIALS
   ========================================================= */

.s2-footer-social-list {
    display: flex;
    align-items: center;
    gap: 15px;
}


.s2-footer-social-list a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #fff;
    text-decoration: none;
    font-size: 14px;
    transition:
        transform 0.2s ease,
        opacity 0.2s ease;
}


.s2-footer-social-list a:hover {
    transform: translateY(-2px);
    opacity: 0.85;
}


.s2-footer-social-list a i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    font-size: 15px;
}


/* =========================================================
   COPYRIGHT
   ========================================================= */

.s2-footer-copyright {
    margin-top: 30px;
}


.s2-footer-copyright-line {
    width: 100%;
    height: 1px;

    background: rgba(255, 255, 255, 0.7);
}


.s2-footer-copyright-content {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    padding-top: 15px;
}


.s2-footer-copyright-content p {
    margin: 0;

    color: #fff;

    font-size: 14px;
}


.s2-footer-back-top {
    display: inline-flex;
    align-items: center;

    gap: 6px;

    padding: 5px 12px;

    border: 1px solid #fff;
    border-radius: 10px;

    background: transparent;

    color: #fff;

    cursor: pointer;

    font-size: 14px;

    transition:
        background 0.2s ease,
        color 0.2s ease;
}


.s2-footer-back-top:hover {
    background: #fff;
    color: #2c1c5b;
}


.s2-footer-back-top i {
    font-size: 16px;
}


/* =========================================================
   LARGE TABLET
   ========================================================= */

@media (max-width: 1199px) {

    .s2-footer {
        margin-top: 90px;
    }


    .s2-footer-main {
        grid-template-columns:
            minmax(0, 1.4fr) minmax(200px, 0.8fr) minmax(260px, 1fr);

        gap: 35px;
    }


    .s2-footer-support-info {
        gap: 45px;
    }


    .s2-footer-badges {
        gap: 10px;
    }

}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 991px) {

    .s2-footer {
        margin-top: 80px;
    }


    .s2-footer-support {
        min-height: 180px;

        border-radius: 25px;
    }


    .s2-footer-support-inner {
        padding: 25px;
    }


    .s2-footer-support h2 {
        font-size: 21px;
    }


    .s2-footer-support-info {
        gap: 25px;
    }


    .s2-footer-main {
        grid-template-columns: 1fr 1fr;

        gap: 35px;
    }


    .s2-footer-about {
        grid-column: 1 / -1;
    }


    .s2-footer-certificates {
        grid-column: 1 / -1;
    }


    .s2-footer-badges {
        justify-content: flex-start;
    }


    .s2-footer-badges>* {
        max-width: 180px;
    }


    .s2-footer-bottom-row {
        grid-template-columns: 1fr;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .s2-footer {
        margin-top: 70px;
    }


    .s2-footer-support {
        transform: translateY(-70px);

        min-height: auto;

        margin-bottom: -40px;

        border-radius: 20px;
    }


    .s2-footer-support-inner {
        padding: 25px 18px;
    }


    .s2-footer-support h2 {
        margin-bottom: 15px;

        font-size: 18px;
        line-height: 1.8;
    }


    .s2-footer-support-info {
        flex-direction: column;

        gap: 10px;

        font-size: 13px;
    }


    .s2-footer-main {
        grid-template-columns: 1fr;

        gap: 30px;
    }


    .s2-footer-about {
        grid-column: auto;
    }


    .s2-footer-certificates {
        grid-column: auto;
    }


    .s2-footer-main h2 {
        font-size: 21px;
    }


    .s2-footer-about p {
        font-size: 14px;
        line-height: 2;
    }


    .s2-footer-badges {
        display: grid;

        grid-template-columns: repeat(3, 1fr);

        gap: 10px;
    }


    .s2-footer-badges>* {
        max-width: none;
    }


    .s2-footer-badges img {
        height: 90px;
    }


    .s2-footer-social-list {
        flex-wrap: wrap;

        justify-content: flex-start;

        gap: 14px 25px;
    }


    .s2-footer-copyright-content {
        flex-direction: column;

        align-items: center;

        text-align: center;

        gap: 12px;
    }

}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 480px) {

    .s2-footer {
        margin-top: 60px;
    }


    .s2-footer-support {
        transform: translateY(-55px);

        margin-bottom: -30px;

        border-radius: 16px;
    }


    .s2-footer-support-inner {
        padding: 20px 15px;
    }


    .s2-footer-support h2 {
        font-size: 16px;
    }


    .s2-footer-support-info {
        align-items: stretch;

        font-size: 12px;
    }


    .s2-footer-support-item {
        justify-content: center;

        flex-wrap: wrap;
    }


    .s2-footer-main {
        gap: 25px;
    }


    .s2-footer-main h2 {
        font-size: 19px;
    }


    .s2-footer-heading-line,
    .s2-footer-certificate-title {
        margin-bottom: 15px;
    }


    .s2-footer-why-list li {
        font-size: 14px;
    }


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


    .s2-footer-badges img {
        height: 75px;
    }


    .s2-footer-newsletter,
    .s2-footer-social-box {
        padding: 16px;
    }


    .s2-footer-box-title {
        font-size: 13px;
        line-height: 1.8;
    }


    .s2-footer-newsletter-form {
        gap: 6px;
    }


    .s2-footer-newsletter-form input {
        height: 40px;

        padding: 0 12px;

        font-size: 12px;
    }


    .s2-footer-newsletter-form button {
        flex: 0 0 70px;

        height: 40px;

        padding: 0 10px;

        font-size: 13px;
    }


    .s2-footer-social-list {
        display: grid;

        grid-template-columns: 1fr 1fr;

        gap: 12px;
    }


    .s2-footer-social-list a {
        font-size: 12px;
    }


    .s2-footer-social-list a i {
        width: 26px;
        height: 26px;
    }


    .s2-footer-copyright-content p {
        font-size: 12px;
        line-height: 1.8;
    }


    .s2-footer-back-top {
        font-size: 12px;
    }

}


/* =========================================================
   VERY SMALL MOBILE
   ========================================================= */

@media (max-width: 360px) {

    .s2-footer-support h2 {
        font-size: 15px;
    }


    .s2-footer-support-info {
        font-size: 11px;
    }


    .s2-footer-badges {
        gap: 6px;
    }


    .s2-footer-badges img {
        height: 65px;
    }


    .s2-footer-social-list {
        grid-template-columns: 1fr;
    }

}

/* =========================================================
   FOOTER TYPE SCALE
   One scale for the whole footer, after every breakpoint above so it wins.
   The rules above went from 25px headings down to 11px text, and the footer
   menu links were Tailwind's text-xs (12px). Google's mobile check wants no
   text under 12px; body text reads best at 14px on a dark footer, headings a
   step up, fine print a step down. Nothing here drops below 13px.
   ========================================================= */
.s2-footer-support h2,
.s2-footer-main h2 {
    font-size: 18px;
    line-height: 1.6;
}

.s2-footer-about p,
.s2-footer-address,
.s2-footer-why-list li,
.s2-footer-support-info,
.s2-footer-support-item,
.s2-footer-box-title,
.s2-footer-social-list a,
.s2-footer-newsletter-form input,
.s2-footer-newsletter-form button,
.f26-menu a {
    font-size: 14px;
    line-height: 1.9;
}

/* Footer links sit in a list with a small gap; a taller line gives each one a
   tap target Google does not flag as "too close". */
.f26-menu a {
    display: inline-block;
    padding-block: 4px;
}

.s2-footer-newsletter-message,
.s2-footer-copyright-content p,
.s2-footer-back-top {
    font-size: 13px;
}

@media (max-width: 767px) {
    .s2-footer-support h2,
    .s2-footer-main h2 {
        font-size: 16px;
    }
}

.shop-002-page {
    background: var(--s2-canvas);
    color: var(--s2-body);
    font-family: var(--s2-ff);
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    letter-spacing: var(--ls);
    -webkit-font-smoothing: antialiased;
}

/* YekanBakh is already a FaNum face, so this only needs to stop inheriting
   a different family. Kept because Razor views across the theme use it. */
.shop-002-page .num-fa {
    font-family: var(--s2-ff);
    font-feature-settings: "tnum";
}

/* ─────────────────────────────────────────────────────────────────────────
   3. LAYOUT
   ───────────────────────────────────────────────────────────────────────── */
.shop-002-page .s2-container {
    width: 100%;
    max-width: var(--s2-container);
    margin-inline: auto;
    padding-inline: var(--s2-gutter);
}

.shop-002-page .shop-page {
    padding-block: var(--space-5) var(--space-10);
}

/* Filter rail + results. Replaces .row/.col-lg-3/.col-lg-9, which do not
   exist in this theme at all — Bootstrap is not loaded here, so the old
   markup had no grid whatsoever and every block stacked full width. */
.shop-002-page .shop-layout {
    display: grid;
    gap: var(--space-5);
    grid-template-columns: 1fr;
    align-items: start;
}

@media (min-width: 1024px) {
    .shop-002-page .shop-layout {
        grid-template-columns: var(--s2-side-w) minmax(0, 1fr);
        gap: var(--space-6);
    }
}

.shop-002-page .shop-layout-main {
    min-width: 0;
}

/* ─────────────────────────────────────────────────────────────────────────
   4. BREADCRUMB
   ───────────────────────────────────────────────────────────────────────── */
.shop-002-page .shop-breadcrumb {
    padding-block: var(--space-3);
    border-bottom: 1px solid var(--s2-hairline);
    background: var(--s2-surface);
}

.shop-002-page .breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: var(--fs-body-sm);
}

.shop-002-page .breadcrumb-item {
    color: var(--s2-muted);
}

.shop-002-page .breadcrumb-item a {
    color: var(--s2-muted);
    text-decoration: none;
}

.shop-002-page .breadcrumb-item a:hover {
    color: var(--s2-link);
}

.shop-002-page .breadcrumb-item.active {
    color: var(--s2-ink);
    font-family: var(--s2-ff-med);
}

.shop-002-page .dash-breadcrumb {
    margin-bottom: var(--space-4);
}

.shop-002-page .breadcrumb-item+.breadcrumb-item::before {
    content: "/";
    margin-inline-end: var(--space-2);
    color: var(--s2-hairline-strong);
}

/* ─────────────────────────────────────────────────────────────────────────
   5. PAGE HEAD / SORT BAR
   ───────────────────────────────────────────────────────────────────────── */
.shop-002-page .shop-h1 {
    font-family: var(--s2-ff-black);
    font-size: var(--fs-h1);
    line-height: var(--lh-heading);
    color: var(--s2-ink);
    margin: 0 0 var(--space-4);
}

.shop-002-page .shop-sort-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    margin-bottom: var(--space-5);
    padding: var(--space-3) var(--space-4);
    background: var(--s2-surface);
    border-radius: var(--s2-r-lg);
    box-shadow: var(--s2-sh-1);
}

.shop-002-page .sort-result-count {
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .sort-result-count strong {
    font-family: var(--s2-ff-bold);
    color: var(--s2-ink);
}

.shop-002-page .sort-options {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    /* سه قرصِ مرتب‌سازیِ وبلاگ کنارِ هم از عرضِ گوشی می‌زنند بیرون */
    row-gap: var(--space-2);
    gap: var(--space-2);
}

.shop-002-page .sort-options>label {
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .sort-select {
    height: var(--s2-input-h);
    padding-inline: var(--space-3) var(--space-7);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff);
    font-size: var(--fs-body-sm);
    cursor: pointer;
}

.shop-002-page .view-toggle-btns {
    display: flex;
    gap: var(--space-1);
}

.shop-002-page .btn-view {
    width: var(--s2-hit);
    height: var(--s2-hit);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-muted);
    cursor: pointer;
    transition: color var(--dur-fast) var(--ease),
        border-color var(--dur-fast) var(--ease),
        background-color var(--dur-fast) var(--ease);
}

.shop-002-page .btn-view:hover {
    color: var(--s2-ink);
}

.shop-002-page .btn-view.active {
    background: var(--color-primary-50);
    border-color: var(--color-primary-200);
    color: var(--color-primary-600);
}

/* ─────────────────────────────────────────────────────────────────────────
   6. FILTER RAIL
   ───────────────────────────────────────────────────────────────────────── */
.shop-002-page .shop-sidebar {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.shop-002-page .sidebar-widget {
    background: var(--s2-surface);
    border-radius: var(--s2-r-lg);
    padding: var(--space-4);
    box-shadow: var(--s2-sh-1);
}

.shop-002-page .sidebar-widget-title {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0 0 var(--space-3);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
    color: var(--s2-ink);
}

.shop-002-page .sidebar-widget-title i {
    flex-shrink: 0;
    width: 20px;
    text-align: center;
    color: var(--s2-muted);
    font-size: 1em;
    line-height: 1;
}

/* search inside the rail */
.shop-002-page .s2-field {
    position: relative;
    display: block;
}

.shop-002-page .s2-field-icon {
    position: absolute;
    inset-inline-start: var(--space-3);
    top: 50%;
    transform: translateY(-50%);
    color: var(--s2-muted);
    pointer-events: none;
}

.shop-002-page .s2-input {
    width: 100%;
    height: var(--s2-input-h);
    padding-inline: var(--space-8) var(--space-3);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff);
    font-size: var(--fs-body-sm);
    transition: border-color var(--dur-fast) var(--ease),
        box-shadow var(--dur-fast) var(--ease);
}

.shop-002-page .s2-input::placeholder {
    color: var(--s2-muted);
}

/* category accordion */
.shop-002-page .cat-acc {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.shop-002-page .cat-acc-link,
.shop-002-page .cat-acc-header,
.shop-002-page .cat-acc-sublink {
    display: flex;
    align-items: center;

    justify-content: flex-start;
    gap: var(--space-2);
    width: 100%;
    min-height: var(--s2-hit);
    padding: var(--space-2) var(--space-3);
    border: 0;
    border-radius: var(--s2-r-sm);
    background: transparent;
    color: var(--s2-body);
    font-family: var(--s2-ff);
    font-size: var(--fs-body-sm);
    text-align: start;
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease),
        color var(--dur-fast) var(--ease);
}

.shop-002-page .cat-acc-link:hover,
.shop-002-page .cat-acc-header:hover,
.shop-002-page .cat-acc-sublink:hover {
    background: var(--s2-sunken);
    color: var(--s2-ink);
}

.shop-002-page .cat-acc-link.active,
.shop-002-page .cat-acc-header.active,
.shop-002-page .cat-acc-sublink.active {
    background: var(--color-primary-50);
    color: var(--color-primary-600);
    font-family: var(--s2-ff-med);
}

.shop-002-page .cat-acc-name {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-002-page .cat-acc-name i {
    flex-shrink: 0;
    width: 20px;
    text-align: center;
    font-size: 1.05em;
    line-height: 1;
    color: var(--s2-muted);
}

.shop-002-page .cat-acc-link.active .cat-acc-name i,
.shop-002-page .cat-acc-header.active .cat-acc-name i {
    color: inherit;
}

.shop-002-page .cat-acc-arrow {
    flex-shrink: 0;
    width: 20px;
    text-align: center;
    color: var(--s2-muted);
    transition: transform var(--dur) var(--ease);
}

.shop-002-page .cat-acc-link::before {
    content: "";
    flex-shrink: 0;
    width: 20px;
}

.shop-002-page .cat-acc-link>.cat-count,
.shop-002-page .cat-acc-header>.cat-count,
.shop-002-page .cat-acc-sublink>.cat-count {
    margin-inline-start: auto;
}

.shop-002-page .cat-count {
    flex-shrink: 0;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .cat-acc-arrow {
    transition: transform var(--dur) var(--ease);
    color: var(--s2-muted);
}

.shop-002-page .cat-acc-item.open>.cat-acc-header .cat-acc-arrow {
    transform: rotate(180deg);
}

.shop-002-page .cat-acc-panel {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows var(--dur) var(--ease);
}

.shop-002-page .cat-acc-item.open>.cat-acc-panel {
    grid-template-rows: 1fr;
}

.shop-002-page .cat-acc-panel>.cat-acc-sub {
    overflow: hidden;
}

.shop-002-page .cat-acc-sub {
    padding-inline-start: var(--space-3);
}

/* price range */

.shop-002-page .price-slider {
    --thumb: 20px;
    position: relative;
    height: 36px;
    margin-bottom: var(--space-3);
}

.shop-002-page .price-slider-rail {
    position: absolute;
    inset-inline: calc(var(--thumb) / 2);
    top: 50%;
    height: 6px;
    transform: translateY(-50%);
    border-radius: var(--s2-r-pill);
    background: var(--s2-sunken);
    box-shadow: inset 0 0 0 1px var(--s2-hairline);
}

.shop-002-page .price-slider-fill {
    position: absolute;
    top: 0;
    bottom: 0;
    border-radius: var(--s2-r-pill);
    background: var(--s2-ink);
}

.shop-002-page .price-slider-handle {
    position: absolute;
    inset-inline: 0;
    top: 0;
    width: 100%;
    height: 36px;
    margin: 0;
    background: transparent;
    pointer-events: none;
    appearance: none;
    -webkit-appearance: none;
}

.shop-002-page .price-slider-handle::-webkit-slider-thumb {
    pointer-events: auto;
    appearance: none;
    -webkit-appearance: none;
    width: var(--thumb, 20px);
    height: var(--thumb, 20px);
    border-radius: 50%;
    border: 2px solid var(--s2-ink);
    background: var(--s2-surface);
    box-shadow: var(--s2-sh-1);
    cursor: grab;
    transition: box-shadow var(--dur-fast) var(--ease);
}

.shop-002-page .price-slider-handle::-moz-range-thumb {
    pointer-events: auto;
    width: var(--thumb, 20px);
    height: var(--thumb, 20px);
    border-radius: 50%;
    border: 2px solid var(--s2-ink);
    background: var(--s2-surface);
    cursor: grab;
}

.shop-002-page .price-slider-handle:focus-visible::-webkit-slider-thumb {
    box-shadow: var(--s2-focus-ring);
}

.shop-002-page .price-slider-handle {
    accent-color: transparent;
}

.shop-002-page .price-slider-handle::-webkit-slider-runnable-track {
    height: 100%;
    background: transparent;
    border: 0;
}

.shop-002-page .price-slider-handle::-moz-range-track {
    height: 100%;
    background: transparent;
    border: 0;
}

.shop-002-page .price-slider-handle::-moz-range-progress {
    background: transparent;
}

.shop-002-page .price-slider-handle::-webkit-slider-thumb {
    margin-top: calc((36px - var(--thumb, 20px)) / 2);
}

.shop-002-page .price-slider-handle:focus-visible::-moz-range-thumb {
    box-shadow: var(--s2-focus-ring);
}

.shop-002-page .price-slider-bounds {
    display: flex;
    justify-content: space-between;
    gap: var(--space-2);
    margin-top: calc(var(--space-2) * -1);
    margin-bottom: var(--space-3);
    font-size: var(--fs-caption);
    color: var(--s2-muted);
    font-variant-numeric: tabular-nums;
}

.shop-002-page .price-range-inputs {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-3);
}

.shop-002-page .price-range-inputs input {
    min-width: 0;
    flex: 1;
    height: var(--s2-input-h);
    padding-inline: var(--space-3);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff);
    font-size: var(--fs-body-sm);
    text-align: center;
}

.shop-002-page .price-range-inputs span {
    flex-shrink: 0;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

/* checkbox rows */
.shop-002-page .sidebar-checkbox-label {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-height: var(--s2-hit);
    padding-inline: var(--space-1);
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
    cursor: pointer;
}

.shop-002-page .sidebar-checkbox-label input[type="checkbox"] {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    accent-color: var(--color-primary-500);
    cursor: pointer;
}

.shop-002-page .attr-filter-name {
    flex: 1;
    min-width: 0;
}

.shop-002-page .attr-color-dot {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    border-radius: 50%;
    border: 1px solid var(--s2-hairline-strong);
}

/* attribute groups */
.shop-002-page .attr-filter-title {
    justify-content: space-between;
    min-height: var(--s2-hit);
    margin-bottom: 0;
    cursor: pointer;
}

.shop-002-page .attr-filter-arrow {
    transition: transform var(--dur) var(--ease);
    color: var(--s2-muted);
}

.shop-002-page .attr-filter.open .attr-filter-arrow {
    transform: rotate(180deg);
}

.shop-002-page .attr-filter-body {
    display: none;
    padding-top: var(--space-2);
}

.shop-002-page .attr-filter.open .attr-filter-body {
    display: block;
}

/* ─────────────────────────────────────────────────────────────────────────
   7. MOBILE FILTER SHEET
   ───────────────────────────────────────────────────────────────────────── */
.shop-002-page .filter-trigger {
    display: none;
}

@media (max-width: 1023.98px) {
    .shop-002-page .filter-trigger {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: var(--space-2);
        min-height: var(--s2-hit);
        padding-inline: var(--space-4);
        border: 1px solid var(--s2-hairline-strong);
        border-radius: var(--s2-r-md);
        background: var(--s2-surface);
        color: var(--s2-ink);
        font-family: var(--s2-ff-med);
        font-size: var(--fs-body-sm);
        cursor: pointer;
    }

    .shop-002-page .filter-trigger-count {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 20px;
        height: 20px;
        padding-inline: 6px;
        border-radius: var(--s2-r-pill);
        background: var(--color-primary-500);
        color: #fff;
        font-size: var(--fs-caption);
    }

    .shop-002-page .shop-layout-side,
    .shop-002-page .blog-layout-side {
        position: fixed;
        inset: 0;

        z-index: 100001;
        display: none;
    }

    .shop-002-page .shop-layout-side.is-open,
    .shop-002-page .blog-layout-side.is-open {
        display: block;
    }

    .shop-002-page .shop-layout-side::before,
    .shop-002-page .blog-layout-side::before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(28, 25, 23, .48);
    }

    .shop-002-page .shop-sidebar {
        position: absolute;
        inset-block: 0;
        inset-inline-end: 0;
        width: min(88vw, 380px);
        overflow-y: auto;
        gap: var(--space-3);
        padding: var(--space-4);
        padding-bottom: calc(var(--space-10) + env(safe-area-inset-bottom, 0px));
        background: var(--s2-canvas);
        box-shadow: var(--s2-sh-3);
        animation: s2-sheet-in var(--dur) var(--ease-out);
    }

    .shop-002-page .filter-sheet-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: var(--space-3);
        padding-bottom: var(--space-3);
        border-bottom: 1px solid var(--s2-hairline);
    }

    .shop-002-page .filter-sheet-foot {
        position: sticky;
        bottom: 0;
        display: flex;
        gap: var(--space-2);
        margin-top: auto;
        padding-top: var(--space-3);
        background: var(--s2-canvas);
    }
}

@media (min-width: 1024px) {

    .shop-002-page .filter-sheet-head,
    .shop-002-page .filter-sheet-foot {
        display: none;
    }
}

@keyframes s2-sheet-in {
    from {
        transform: translateX(-8%);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

/* ─────────────────────────────────────────────────────────────────────────
   8. PRODUCT GRID
   Track count comes from the real container width, not from breakpoints, so
   it stays correct whether the filter rail is present or not.
   ───────────────────────────────────────────────────────────────────────── */
.shop-002-page .product-grid {
    display: grid;
    gap: var(--space-4);
    grid-template-columns: repeat(auto-fill, minmax(var(--s2-card-min), 1fr));
}

@media (min-width: 768px) {
    .shop-002-page .product-grid {
        gap: var(--space-5);
    }
}

/* list view (the sort bar toggles this class) */
.shop-002-page .product-grid-list {
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .shop-002-page .product-grid-list .product-card {
        display: grid;
        grid-template-columns: 180px minmax(0, 1fr);
        align-items: center;
    }

    .shop-002-page .product-grid-list .product-card-foot {
        align-self: end;
    }
}

/* ─────────────────────────────────────────────────────────────────────────
   9. PRODUCT CARD
   ───────────────────────────────────────────────────────────────────────── */
.shop-002-page .product-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    border: 1px solid transparent;
    /* reserved so hover does not reflow */
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    transition: transform var(--dur) var(--ease-out),
        border-color var(--dur-fast) var(--ease),
        box-shadow var(--dur) var(--ease);
}

@media (hover: hover) {
    .shop-002-page .product-card:hover {
        transform: translateY(-2px);
        border-color: var(--s2-hairline-strong);
        box-shadow: var(--s2-sh-2);
    }

    .shop-002-page .product-card:hover .product-card-img {
        transform: scale(1.03);
    }
}

.shop-002-page .product-card:focus-within {
    border-color: var(--s2-focus);
    box-shadow: var(--s2-focus-ring);
}

.shop-002-page .product-card-link {
    display: block;
    padding: var(--space-3);
    color: inherit;
    text-decoration: none;
    flex-grow: 1;
}

.shop-002-page .product-card-media {
    position: relative;
    aspect-ratio: 1 / 1;
    display: grid;
    place-items: center;
    margin-bottom: var(--space-3);
    border-radius: var(--s2-r-md);
    background: var(--s2-sunken);
    overflow: hidden;
}

.shop-002-page .product-card-img {
    width: 78%;
    height: auto;
    transition: transform var(--dur-slow) var(--ease-out);
}

/* badges — top-start, at most one visible at a time by design */
.shop-002-page .product-card-badges {
    position: absolute;
    inset-inline-start: var(--space-2);
    top: var(--space-2);
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.shop-002-page .product-badge {
    padding: 2px var(--space-2);
    border-radius: var(--s2-r-sm);
    font-size: var(--fs-caption);
    line-height: 1.6;
    color: #fff;
}

.shop-002-page .product-badge-soon {
    background: var(--s2-warning);
}

.shop-002-page .product-badge-out {
    background: var(--s2-muted);
}

.shop-002-page .product-card .fav-btn {
    position: absolute;
    inset-inline-end: var(--space-2);
    top: var(--space-2);
    z-index: 2;
    width: var(--s2-hit);
    height: var(--s2-hit);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .9);
    color: var(--s2-muted);
    cursor: pointer;
    transition: color var(--dur-fast) var(--ease),
        background-color var(--dur-fast) var(--ease);
}

.shop-002-page .fav-btn:hover {
    color: var(--s2-danger);
    background: #fff;
}

.shop-002-page .product-card-rating {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    min-height: 1.2em;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .product-card-rating svg {
    fill: var(--s2-star);
}

.shop-002-page .product-card-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.8em;
    margin-top: var(--space-2);
    font-size: var(--fs-body);
    line-height: 1.4;
    color: var(--s2-ink);
}

.shop-002-page .product-card-colors {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    min-height: 10px;
    margin-top: var(--space-2);
}

.shop-002-page .product-card-color {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1px solid var(--s2-hairline-strong);
}

.shop-002-page .product-card-color-more {
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .card-offer-timer {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    margin-top: var(--space-2);
    font-size: var(--fs-caption);
    color: var(--s2-sale);
}

/* ── 10. PRICING ──────────────────────────────────────────────────────── */
.shop-002-page .product-card-foot {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: 0 var(--space-3) var(--space-3);
}

.shop-002-page .product-price {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    min-height: 2.9em;
}

/* Struck-through price + discount on top, final price under it. The top row keeps
   its height when empty so discounted and full-price cards stay the same height. */
.shop-002-page .product-price-old,
.shop-002-page .product-price-final {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.shop-002-page .product-price-old {
    min-height: 1.7em;
    font-size: var(--fs-caption);
}

.shop-002-page .product-price-now {
    font-family: var(--s2-ff-black);
    font-size: var(--fs-body-lg);
    color: var(--s2-price);
}

.shop-002-page .product-price-unit {
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .product-price-from {
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .product-price-was {
    font-size: var(--fs-caption);
    color: var(--s2-muted);
    text-decoration: line-through;
}

.shop-002-page .product-discount {
    padding: 1px var(--space-2);
    border-radius: var(--s2-r-pill);
    background: var(--s2-sale);
    color: #fff;
    font-family: var(--s2-ff-med);
    font-size: var(--fs-caption);
}

.shop-002-page .product-price-note {
    display: flex;
    align-items: center;
    min-height: 2.9em;
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
    color: var(--s2-ink);
}

/* ─────────────────────────────────────────────────────────────────────────
   11. BUTTONS / CTA
   ───────────────────────────────────────────────────────────────────────── */
.shop-002-page .s2-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    min-height: var(--s2-btn-h);
    padding-inline: var(--space-4);
    border: 1px solid transparent;
    border-radius: var(--s2-r-md);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease),
        border-color var(--dur-fast) var(--ease),
        color var(--dur-fast) var(--ease);
}

/* primary = buy. The only orange on the page. */
.shop-002-page .s2-btn-buy {
    width: 100%;
    background: var(--s2-buy);
    color: var(--s2-buy-ink);
    /* navy on orange — 5.60:1 */
    font-family: var(--s2-ff-bold);
}

.shop-002-page .s2-btn-buy:hover {
    background: var(--s2-buy-hover);
}

/* secondary */
.shop-002-page .s2-btn-secondary {
    background: var(--s2-surface);
    border-color: var(--s2-hairline-strong);
    color: var(--s2-ink);
}

.shop-002-page .s2-btn-secondary:hover {
    background: var(--s2-sunken);
}

/* solid blue — informational primary (apply filter, etc.) */
.shop-002-page .s2-btn-primary {
    background: var(--color-primary-500);
    color: #fff;
}

.shop-002-page .s2-btn-primary:hover {
    background: var(--color-primary-600);
}

/* tertiary */
.shop-002-page .s2-btn-quiet {
    min-height: var(--s2-hit);
    padding-inline: var(--space-2);
    background: transparent;
    color: var(--s2-link);
}

.shop-002-page .s2-btn-quiet:hover {
    text-decoration: underline;
}

.shop-002-page .price-range-btn {
    width: 100%;
    min-height: var(--s2-btn-h);
    border: 0;
    border-radius: var(--s2-r-md);
    background: var(--color-primary-500);
    color: #fff;
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease);
}

.shop-002-page .price-range-btn:hover {
    background: var(--color-primary-600);
}

.shop-002-page .s2-btn:disabled,
.shop-002-page .price-range-btn:disabled {
    opacity: var(--s2-disabled-o);
    cursor: not-allowed;
}

/* ─────────────────────────────────────────────────────────────────────────
   12. ACTIVE FILTER CHIPS
   ───────────────────────────────────────────────────────────────────────── */
.shop-002-page .filter-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-4);
}

.shop-002-page .filter-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 32px;
    padding-inline: var(--space-3);
    border-radius: var(--s2-r-pill);
    background: var(--color-primary-50);
    color: var(--color-primary-700);
    font-size: var(--fs-caption);
    text-decoration: none;
}

.shop-002-page .filter-chip:hover {
    background: var(--color-primary-100);
}

/* ─────────────────────────────────────────────────────────────────────────
   13. PAGINATION
   ───────────────────────────────────────────────────────────────────────── */
.shop-002-page .shop-pagination {
    margin-top: var(--space-7);
}

.shop-002-page .pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.shop-002-page .page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: var(--s2-hit);
    height: var(--s2-hit);
    padding-inline: var(--space-2);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-body);
    font-size: var(--fs-body-sm);
    text-decoration: none;
    transition: background-color var(--dur-fast) var(--ease),
        color var(--dur-fast) var(--ease),
        border-color var(--dur-fast) var(--ease);
}

.shop-002-page .page-link:hover {
    border-color: var(--color-primary-300);
    color: var(--s2-ink);
}

.shop-002-page .page-item.active .page-link {
    background: var(--color-primary-500);
    border-color: var(--color-primary-500);
    color: #fff;
    /* 5.36:1 */
    font-family: var(--s2-ff-med);
}

/* ─────────────────────────────────────────────────────────────────────────
   14. SEO CONTENT BLOCKS
   ───────────────────────────────────────────────────────────────────────── */
.shop-002-page .shop-seo-text,
.shop-002-page .shop-seo-faq {
    margin-top: var(--space-8);
    padding: var(--space-5);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    font-size: var(--fs-body-sm);
    line-height: var(--lh-body);
    color: var(--s2-body);
}

.shop-002-page .shop-seo-faq h2 {
    margin: 0 0 var(--space-4);
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-h3);
    color: var(--s2-ink);
}

.shop-002-page .seo-faq-item {
    padding-block: var(--space-3);
    border-bottom: 1px solid var(--s2-hairline);
}

.shop-002-page .seo-faq-item summary {
    min-height: var(--s2-hit);
    display: flex;
    align-items: center;
    font-family: var(--s2-ff-med);
    color: var(--s2-ink);
    cursor: pointer;
}

.shop-002-page .seo-faq-answer {
    padding-top: var(--space-2);
    color: var(--s2-body);
}

/* Metn-e SEO az panel miayad (Html.Raw), pas hich class-i nadarad.
   Style bar rooye tag-haye khaam gozashte mishavad. */
.shop-002-page .shop-seo-text> :first-child {
    margin-top: 0;
}

.shop-002-page .shop-seo-text> :last-child {
    margin-bottom: 0;
}

.shop-002-page .shop-seo-text h2,
.shop-002-page .shop-seo-text h3,
.shop-002-page .shop-seo-text h4 {
    margin: var(--space-6) 0 var(--space-3);
    font-family: var(--s2-ff-bold);
    line-height: var(--lh-heading);
    color: var(--s2-ink);
}

.shop-002-page .shop-seo-text h2 {
    font-size: var(--fs-h3);
}

.shop-002-page .shop-seo-text h3 {
    font-size: var(--fs-body-lg);
}

.shop-002-page .shop-seo-text h4 {
    font-size: var(--fs-body);
}

.shop-002-page .shop-seo-text p {
    margin: 0 0 var(--space-3);
}

.shop-002-page .shop-seo-text a {
    color: var(--s2-link);
}

.shop-002-page .shop-seo-text img {
    max-width: 100%;
    height: auto;
    border-radius: var(--s2-r-md);
}

.shop-002-page .shop-seo-text ul,
.shop-002-page .shop-seo-text ol {
    margin: 0 0 var(--space-3);
    padding-inline-start: var(--space-5);
}

.shop-002-page .shop-seo-text li {
    margin-bottom: var(--space-2);
}

/* Jadval: aksar-e in jadval-ha az Word ya editor-e panel copy mishavand va
   attribute-e width/border-e khodeshan ra hamrah darand -> reset. */
.shop-002-page .shop-seo-text table {
    display: block;
    /* ta rooye mobile khodesh scroll shavad */
    width: max-content;
    max-width: 100%;
    overflow-x: auto;
    margin: var(--space-5) 0;
    border-collapse: collapse;
    font-size: var(--fs-body-sm);
    text-align: right;
}

.shop-002-page .shop-seo-text table th,
.shop-002-page .shop-seo-text table td {
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--s2-hairline);
    vertical-align: middle;
    white-space: nowrap;
}

.shop-002-page .shop-seo-text table th {
    background: var(--color-primary-50);
    font-family: var(--s2-ff-med);
    color: var(--s2-ink);
    text-align: right;
}

/* Agar jadval thead nadashte bashad, satr-e aval naghsh-e header ra darad. */
.shop-002-page .shop-seo-text table:not(:has(thead)) tr:first-child td {
    font-family: var(--s2-ff-med);
    color: var(--s2-ink);
}

.shop-002-page .shop-seo-text table tbody tr:nth-child(even) {
    background: var(--s2-canvas);
}

.shop-002-page .shop-seo-text table caption {
    margin-bottom: var(--space-2);
    font-family: var(--s2-ff-med);
    color: var(--s2-muted);
    text-align: right;
}

.shop-002-page .shop-seo-text blockquote {
    margin: var(--space-4) 0;
    padding: var(--space-3) var(--space-4);
    border-inline-start: 3px solid var(--color-primary-300);
    background: var(--s2-canvas);
    border-radius: var(--s2-r-sm);
    color: var(--s2-body);
}

/* ─────────────────────────────────────────────────────────────────────────
   15. CART INTERACTION FEEDBACK
   product-card.js owns the request. This is presentation only.
   ───────────────────────────────────────────────────────────────────────── */
.shop-002-page .product-card-add-btn.is-busy {
    pointer-events: none;
    opacity: .85;
}

.shop-002-page .product-card-add-btn.is-busy .s2-btn-icon {
    animation: s2-spin .7s linear infinite;
}

/* product-card.js adds .added on a successful /cart/add */
.shop-002-page .product-card-add-btn.added {
    background: var(--s2-success);
    color: #fff;
    /* 5.44:1 */
}

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

/* ─────────────────────────────────────────────────────────────────────────
   16. EMPTY / LOADING STATES
   ───────────────────────────────────────────────────────────────────────── */
.shop-002-page .s2-empty {
    display: grid;
    justify-items: center;
    gap: var(--space-3);
    padding: var(--space-10) var(--space-5);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    text-align: center;
}

.shop-002-page .s2-empty-icon {
    font-size: 2.5rem;
    color: var(--s2-hairline-strong);
}

.shop-002-page .s2-empty-title {
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-h3);
    color: var(--s2-ink);
}

.shop-002-page .s2-empty-text {
    max-width: 42ch;
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

/* skeleton grid — shown while a filter request is in flight */
.shop-002-page .s2-skeleton-card {
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    padding: var(--space-3);
}

.shop-002-page .s2-skeleton-box {
    border-radius: var(--s2-r-md);
    background: linear-gradient(90deg, var(--s2-sunken) 25%, var(--s2-shimmer) 37%, var(--s2-sunken) 63%);
    background-size: 400% 100%;
    animation: s2-shimmer 1.4s ease infinite;
}

.shop-002-page .s2-skeleton-media {
    aspect-ratio: 1 / 1;
    margin-bottom: var(--space-3);
}

.shop-002-page .s2-skeleton-line {
    height: 12px;
    margin-bottom: var(--space-2);
}

.shop-002-page .s2-skeleton-line.is-short {
    width: 60%;
}

@keyframes s2-shimmer {
    from {
        background-position: 100% 50%;
    }

    to {
        background-position: 0 50%;
    }
}

.shop-002-page .is-loading-grid {
    opacity: .5;
    pointer-events: none;
}

/* ─────────────────────────────────────────────────────────────────────────
   17. ACCESSIBILITY
   The bought template ships `*:focus{outline:transparent}` in
   tpl/assets/css/style.css, which removes the focus ring from every control
   in this theme. That rule is layer-free too, so this block restores a real
   focus indicator scoped to the theme.
   ───────────────────────────────────────────────────────────────────────── */
.shop-002-page :focus-visible {
    outline: 2px solid var(--s2-focus);
    outline-offset: 2px;
    border-radius: 4px;
}

.shop-002-page .s2-input:focus-visible,
.shop-002-page .sort-select:focus-visible,
.shop-002-page .price-range-inputs input:focus-visible {
    outline: none;
    border-color: var(--s2-focus);
    box-shadow: var(--s2-focus-ring);
}

.shop-002-page .s2-skip-link {
    position: absolute;
    inset-inline-start: -9999px;
    top: 0;
    z-index: 10000;
}

.shop-002-page .s2-skip-link:focus {
    inset-inline-start: var(--space-4);
    top: var(--space-4);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    box-shadow: var(--s2-sh-3);
}

.shop-002-page .s2-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

/* ─────────────────────────────────────────────────────────────────────────
   18. REDUCED MOTION
   ───────────────────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {

    .shop-002-page *,
    .shop-002-page *::before,
    .shop-002-page *::after {
        animation-duration: .01ms;
        animation-iteration-count: 1;
        transition-duration: .01ms;
        scroll-behavior: auto;
    }

    .shop-002-page .product-card:hover {
        transform: none;
    }

    .shop-002-page .product-card:hover .product-card-img {
        transform: none;
    }
}

/* ═════════════════════════════════════════════════════════════════════════
   HOME PAGE
   Every class below existed in the markup already but had no CSS anywhere in
   this theme: home.css is not linked, Bootstrap is not linked, and the
   Tailwind build is purged. So the whole page under the slider rendered
   unstyled. These are the missing definitions, not a re-skin.
   ═════════════════════════════════════════════════════════════════════════ */

/* ── 20. SECTION SHELL ─────────────────────────────────────────────────── */
.shop-002-page .home-section {
    margin-bottom: var(--space-8);
}

.shop-002-page .home-sec-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}

.shop-002-page .home-sec-title {
    margin: 0;
    font-family: var(--s2-ff-black);
    font-size: var(--fs-h2);
    line-height: var(--lh-heading);
    color: var(--s2-ink);
}

.shop-002-page .home-sec-more {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: var(--s2-hit);
    padding-inline: var(--space-2);
    color: var(--s2-link);
    font-size: var(--fs-body-sm);
    text-decoration: none;
    white-space: nowrap;
}

.shop-002-page .home-sec-more:hover {
    text-decoration: underline;
}

/* ── 21. TRUST / FEATURES BAR ──────────────────────────────────────────── */
.shop-002-page .home-features-bar {
    margin-block: var(--space-6);
    padding-block: var(--space-5);
    border-block: 1px solid var(--s2-hairline);
    background: var(--s2-surface);
}

.shop-002-page .hf-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: var(--space-4);
    margin: 0;
    padding: 0;
    list-style: none;
}

.shop-002-page .hf-item {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-width: 0;
}

.shop-002-page .hf-icon {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    border-radius: var(--s2-r-md);
    background: var(--color-primary-50);
    color: var(--color-primary-600);
    font-size: 1.25rem;
}

.shop-002-page .hf-title {
    display: block;
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    color: var(--s2-ink);
}

.shop-002-page .hf-sub {
    display: block;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

/* ── 22. CATEGORY TILES ────────────────────────────────────────────────── */
.shop-002-page .hcat-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(104px, 1fr));
    gap: var(--space-3);
}

.shop-002-page .hcat-item {
    display: grid;
    justify-items: center;
    gap: var(--space-2);
    padding: var(--space-4) var(--space-2);
    border: 1px solid transparent;
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    color: var(--s2-body);
    text-align: center;
    text-decoration: none;
    transition: transform var(--dur) var(--ease-out),
        border-color var(--dur-fast) var(--ease),
        box-shadow var(--dur) var(--ease);
}

@media (hover: hover) {
    .shop-002-page .hcat-item:hover {
        transform: translateY(-2px);
        border-color: var(--s2-hairline-strong);
        box-shadow: var(--s2-sh-2);
    }
}

.shop-002-page .hcat-img {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--s2-sunken);
    color: var(--color-primary-600);
    font-size: 1.5rem;
}

.shop-002-page .hcat-img {
    overflow: hidden;
}

.shop-002-page .hcat-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.shop-002-page .hcat-name {
    font-size: var(--fs-body-sm);
    line-height: 1.4;
    color: var(--s2-ink);
}

/* ── 23. PRODUCT RAIL (replaces the dead owl carousels) ────────────────────
   The markup carried .owl-carousel, but neither owl.carousel.js nor jQuery
   is loaded in this theme, so those carousels never initialised and the
   cards simply stacked. A scroll-snap rail needs no library at all, and it
   is keyboard- and touch-native.                                          */
.shop-002-page .product-rail {
    display: grid;
    grid-auto-flow: column;

    grid-auto-columns: minmax(var(--s2-card-min), var(--s2-card-max));
    justify-content: start;
    gap: var(--space-4);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--s2-gutter);
    padding-bottom: var(--space-2);
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
}

.shop-002-page .product-rail>* {
    scroll-snap-align: start;
}

@media (min-width: 768px) {
    .shop-002-page .product-rail {
        grid-auto-columns: minmax(var(--s2-card-min), var(--s2-card-max));
        gap: var(--space-5);
    }
}

.shop-002-page .home-offers-wrap {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0;
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-xl);
    background: var(--s2-surface);
    overflow: hidden;
}

@media (min-width: 1024px) {
    .shop-002-page .home-offers-wrap {
        grid-template-columns: 264px minmax(0, 1fr);
    }
}

.shop-002-page .home-offers-sidebar {
    display: grid;
    gap: var(--space-4);
    align-content: start;
    padding: var(--space-5);
    background: var(--s2-ink);
    color: #fff;
}

.shop-002-page .home-offers-head {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: var(--space-3);
}

.shop-002-page .home-offers-icon {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: var(--s2-r-md);
    background: var(--s2-buy);
    color: #fff;
    /* 5.05:1 */
    font-size: 1.1rem;
}

.shop-002-page .home-offers-title {
    margin: 0;
    font-family: var(--s2-ff-black);
    font-size: var(--fs-h3);
    line-height: 1.35;
    color: #fff;
}

.shop-002-page .home-offers-more {
    grid-column: 1 / -1;
    display: inline-flex;
    align-items: center;
    align-self: start;
    min-height: 32px;
    color: rgba(255, 255, 255, .72);
    font-size: var(--fs-body-sm);
    text-decoration: none;
    border-bottom: 1px solid rgba(255, 255, 255, .28);
    justify-self: start;
}

.shop-002-page .home-offers-more:hover {
    color: #fff;
    border-bottom-color: #fff;
}

.shop-002-page .home-offers-more:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

.shop-002-page .home-offers-timer {
    display: grid;
    gap: var(--space-2);
    justify-items: start;
}

.shop-002-page .hot-label {
    padding: 3px var(--space-3);
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: var(--s2-r-pill);
    background: transparent;
    color: rgba(255, 255, 255, .85);
    font-size: var(--fs-caption);
}

.shop-002-page .timer-boxes {
    display: flex;
    align-items: stretch;
    gap: var(--space-1);
}

.shop-002-page .timer-box {
    display: grid;
    justify-items: center;
    gap: 2px;
    min-width: 52px;
    padding: var(--space-2) var(--space-1);
    border-radius: var(--s2-r-sm);
    background: rgba(255, 255, 255, .10);
}

.shop-002-page .timer-num {
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body-lg);
    line-height: 1.2;
    color: #fff;
    font-variant-numeric: tabular-nums;
}

.shop-002-page .timer-lbl {
    font-size: var(--fs-caption);
    color: rgba(255, 255, 255, .62);
}

.shop-002-page .timer-sep {
    align-self: center;
    color: rgba(255, 255, 255, .35);
}

.shop-002-page .home-offers-products {
    padding: var(--space-5);
}

@media (max-width: 1023.98px) {
    .shop-002-page .home-offers-sidebar {
        grid-template-columns: 1fr auto;
        align-items: center;
        gap: var(--space-3) var(--space-4);
    }

    .shop-002-page .home-offers-head {
        grid-column: 1;
    }

    .shop-002-page .home-offers-timer {
        grid-column: 2;
        justify-items: end;
    }

    .shop-002-page .home-offers-products {
        padding: var(--space-4);
    }
}

.shop-002-page .home-offers-empty {
    display: grid;
    justify-items: center;
    gap: var(--space-2);
    padding: var(--space-8) var(--space-4);
    text-align: center;
}

.shop-002-page .home-offers-empty>i {
    font-size: 2rem;
    color: var(--s2-hairline-strong);
}

.shop-002-page .home-offers-empty p {
    margin: 0;
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
    color: var(--s2-ink);
}

.shop-002-page .home-offers-empty span {
    max-width: 46ch;
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .home-offers-empty-btn {
    margin-top: var(--space-2);
    display: inline-flex;
    align-items: center;
    min-height: var(--s2-btn-h);
    padding-inline: var(--space-4);
    border-radius: var(--s2-r-md);
    background: var(--color-primary-500);
    color: #fff;
    font-size: var(--fs-body-sm);
    text-decoration: none;
}

.shop-002-page .home-offers-empty-btn:hover {
    background: var(--color-primary-600);
}

/* ── 25. RECENTLY VIEWED ───────────────────────────────────────────────────
   recently-viewed.js injects _ProductCarouselRow into .rv-body, and that
   partial now renders a .product-rail — so .rv-body itself is just a wrapper.
   It also calls window.initCarousels(), which does not exist in this theme;
   that is harmless (the call is guarded by typeof) and the rail needs no JS. */
.shop-002-page .rv-body {
    min-width: 0;
}

/* ── 25b. HERO SLIDER ──────────────────────────────────────────────────────
   Swiper 11 is already loaded and tpl/assets/js/sliders.js already inits
   `.heroSlider`, so the markup only had to adopt the swiper structure.
   Desktop/mobile art direction is done with <picture media>, not with the
   old hide-mob/hide-des classes — those had no CSS here, so both images
   rendered at once, stacked.                                              */
.shop-002-page .hero-slider-section {
    padding-inline: var(--s2-gutter);
    margin-block: var(--space-4) var(--space-7);
}

.shop-002-page .hero-slider {
    width: 100%;
    overflow: hidden;
    border-radius: var(--s2-r-lg);

    box-shadow: 0 0 0 1px var(--s2-hairline), var(--s2-sh-1);
}

.shop-002-page .hero-slide {
    width: 100%;
}

.shop-002-page .hero-slide-link {
    display: block;
}

.shop-002-page .hero-slide-img {
    display: block;
    width: 100%;
    height: auto;
    background-color: #ececef;
    background-image: linear-gradient(100deg, #ececef 30%, #f6f6f8 50%, #ececef 70%);
    background-size: 200% 100%;
    animation: s2-hero-skeleton 1.4s ease-in-out infinite;
}

.shop-002-page .hero-slide-img.is-loaded {
    background: none;
    animation: none;
}

@keyframes s2-hero-skeleton {
    from {
        background-position: 200% 0;
    }

    to {
        background-position: -200% 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .shop-002-page .hero-slide-img {
        animation: none;
    }
}

@media (max-width: 767.98px) {
    .shop-002-page .hero-slide-img {
        aspect-ratio: var(--hero-m, 16 / 11);
        height: auto;
    }
}

.shop-002-page .hero-slider .swiper-button-next,
.shop-002-page .hero-slider .swiper-button-prev {
    width: var(--s2-hit);
    height: var(--s2-hit);
    margin-top: calc(var(--s2-hit) / -2);
    border-radius: 50%;
    background: rgba(255, 255, 255, .94);
    color: var(--s2-ink);
    box-shadow: var(--s2-sh-2);
    opacity: 0;
    transition: opacity var(--dur) var(--ease), background-color var(--dur) var(--ease);
}

.shop-002-page .hero-slider:hover .swiper-button-next,
.shop-002-page .hero-slider:hover .swiper-button-prev,
.shop-002-page .hero-slider .swiper-button-next:focus-visible,
.shop-002-page .hero-slider .swiper-button-prev:focus-visible {
    opacity: 1;
}

.shop-002-page .hero-slider .swiper-button-next:focus-visible,
.shop-002-page .hero-slider .swiper-button-prev:focus-visible {
    outline: 2px solid var(--s2-link);
    outline-offset: 2px;
}

.shop-002-page .hero-slider .swiper-button-next::after,
.shop-002-page .hero-slider .swiper-button-prev::after {
    font-size: .9rem;
    font-weight: 700;
}

@media (max-width: 767.98px) {

    .shop-002-page .hero-slider .swiper-button-next,
    .shop-002-page .hero-slider .swiper-button-prev {
        display: none;
    }
}

.shop-002-page .hero-slider .swiper-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: fit-content;
    inset-inline: 0;
    margin-inline: auto;
    bottom: var(--space-3);
    padding: 6px 10px;
    border-radius: var(--s2-r-pill);
    background: rgba(28, 25, 23, .28);
    backdrop-filter: blur(4px);
}

.shop-002-page .hero-slider .swiper-pagination-bullet {
    width: 18px;
    height: 3px;
    margin: 0 !important;
    border-radius: 2px;
    background: #fff;
    opacity: .45;

    transition: opacity var(--dur) var(--ease);
}

.shop-002-page .hero-slider .swiper-pagination-bullet-active {
    width: 30px;
    opacity: 1;
}

@media (prefers-reduced-motion: reduce) {

    .shop-002-page .hero-slider .swiper-pagination-bullet,
    .shop-002-page .hero-slider .swiper-button-next,
    .shop-002-page .hero-slider .swiper-button-prev {
        transition: none;
    }
}

/* ── 25c. BANNER ZONES ─────────────────────────────────────────────────────
   The row already publishes its layout from the database as inline custom
   properties: --bz-cols, --bz-cols-mobile, --bz-gap. Nothing consumed them,
   so every banner rendered full width, one under the other, whatever the
   admin had configured. These rules honour those three values, so a zone set
   to 1, 2, 3 or 4 columns renders exactly that.                            */
.shop-002-page .banner-zone {
    margin-bottom: var(--space-6);
}

.shop-002-page .banner-zone-grid {
    display: grid;
    grid-template-columns: repeat(var(--bz-cols-mobile, 1), minmax(0, 1fr));
    gap: var(--bz-gap, 16px);
}

@media (min-width: 768px) {
    .shop-002-page .banner-zone-grid {
        grid-template-columns: repeat(var(--bz-cols, 1), minmax(0, 1fr));
    }
}

.shop-002-page .banner-zone-item {
    display: block;
    min-width: 0;
    border-radius: var(--s2-r-lg);
    overflow: hidden;
    background: var(--s2-sunken);
    transition: transform var(--dur) var(--ease-out),
        box-shadow var(--dur) var(--ease);
}

@media (hover: hover) {
    .shop-002-page a.banner-zone-item:hover {
        transform: translateY(-2px);
        box-shadow: var(--s2-sh-2);
    }
}

.shop-002-page .banner-zone-item img {
    display: block;
    width: 100%;
    height: auto;
}

/* one banner per row reads as a wide strip, several read as tiles */
.shop-002-page .banner-zone-grid>.banner-zone-item img {
    aspect-ratio: auto;
}

/* desktop / mobile artwork swap */
.shop-002-page .bz-desktop {
    display: none;
}

.shop-002-page .bz-mobile {
    display: block;
}

@media (min-width: 768px) {
    .shop-002-page .bz-desktop {
        display: block;
    }

    .shop-002-page .bz-mobile {
        display: none;
    }
}

/* ── 25d. ARTICLES ─────────────────────────────────────────────────────── */
.shop-002-page .article-rail {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(240px, 1fr);
    gap: var(--space-4);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--s2-gutter);
    padding-bottom: var(--space-2);
    overscroll-behavior-x: contain;
}

.shop-002-page .article-rail>* {
    scroll-snap-align: start;
}

@media (min-width: 1024px) {
    .shop-002-page .article-rail {
        grid-auto-flow: row;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        overflow: visible;
    }
}

.shop-002-page .article-item {
    border: 1px solid transparent;
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    overflow: hidden;
    transition: transform var(--dur) var(--ease-out),
        border-color var(--dur-fast) var(--ease),
        box-shadow var(--dur) var(--ease);
}

@media (hover: hover) {
    .shop-002-page .article-item:hover {
        transform: translateY(-2px);
        border-color: var(--s2-hairline-strong);
        box-shadow: var(--s2-sh-2);
    }

    .shop-002-page .article-item:hover .article-img {
        transform: scale(1.03);
    }
}

.shop-002-page .article-item:focus-within {
    border-color: var(--s2-focus);
    box-shadow: var(--s2-focus-ring);
}

.shop-002-page .article-item-link {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.shop-002-page .article-media {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--s2-sunken);
}

.shop-002-page .article-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--dur-slow) var(--ease-out);
}

.shop-002-page .article-no-img {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    color: var(--s2-hairline-strong);
    font-size: 1.75rem;
}

.shop-002-page .article-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: var(--space-2);
    padding: var(--space-4);
}

.shop-002-page .article-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
    line-height: 1.5;
    color: var(--s2-ink);
}

.shop-002-page .article-excerpt {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
    font-size: var(--fs-body-sm);
    line-height: 1.7;
    color: var(--s2-muted);
}

.shop-002-page .article-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    margin-top: auto;
    padding-top: var(--space-3);
    border-top: 1px solid var(--s2-hairline);
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .article-read {
    color: var(--s2-link);
}

/* Every .container in this theme gets the same box as .s2-container, so header,
   sections and footer share one content width on every page. Shared components
   (HomeSeoText, home categories) and the footer use Bootstrap's .container, which
   this theme does not load; Tailwind's .container only sets a 1280px max-width with
   no gutter, so they sat off the section grid (footer 74..1354, categories flush
   right, at 1440px) while everything else ran 32..1396. */
.shop-002-page .container {
    width: 100%;
    max-width: var(--s2-container);
    margin-inline: auto;
    padding-inline: var(--s2-gutter);
}

/* ── 26. NEWSLETTER ────────────────────────────────────────────────────── */
.shop-002-page .home-newsletter {
    margin-block: var(--space-9);
}

.shop-002-page .hnl-wrap {
    display: grid;
    gap: var(--space-4);
    align-items: center;
    padding: var(--space-6);
    border-radius: var(--s2-r-xl);
    background: var(--color-primary-800);
    color: #fff;
}

@media (min-width: 768px) {
    .shop-002-page .hnl-wrap {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }
}

.shop-002-page .hnl-info>i {
    display: block;
    margin-bottom: var(--space-2);
    font-size: 1.75rem;
    color: var(--s2-buy);
}

.shop-002-page .hnl-title {
    margin: 0;
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-h3);
    color: #fff;
    /* 16.36:1 on navy */
}

.shop-002-page .hnl-text {
    margin: var(--space-2) 0 0;
    font-size: var(--fs-body-sm);
    color: rgba(255, 255, 255, .82);
    /* 12.3:1 on navy */
}

.shop-002-page .hnl-form {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.shop-002-page .hnl-input {
    flex: 1;
    min-width: 200px;
    height: var(--s2-input-h);
    padding-inline: var(--space-4);
    border: 1px solid transparent;
    border-radius: var(--s2-r-md);
    background: #fff;
    color: var(--s2-ink);
    font-family: var(--s2-ff);
    font-size: var(--fs-body-sm);
}

.shop-002-page .hnl-input::placeholder {
    color: var(--s2-muted);
}

.shop-002-page .hnl-btn {
    min-height: var(--s2-btn-h);
    padding-inline: var(--space-5);
    border: 0;
    border-radius: var(--s2-r-md);
    background: var(--s2-buy);
    color: var(--s2-buy-ink);
    /* navy on orange — 5.60:1 */
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body-sm);
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease);
}

.shop-002-page .hnl-btn:hover {
    background: var(--s2-buy-hover);
}

.shop-002-page .hnl-msg {
    grid-column: 1 / -1;
    margin: 0;
    font-size: var(--fs-body-sm);
    color: #fff;
}

/* ── 27. STORIES ───────────────────────────────────────────────────────────
   Moved here from a 40-line inline <style> inside Stories.cshtml.

   The strip carried `d-flex align-items-start gap-3` for its layout, but
   Bootstrap is not loaded in this theme — so it was never a flex row and the
   avatars stacked vertically down the page. The rule below is the fix.

   The old block also hardcoded an Instagram gradient plus #e83e8c / #e0245e /
   #28a745 / #333 / #666 / #aaa and one `color: #fff !important`. All replaced
   with tokens; the ring keeps a gradient because that is the story idiom, but
   it is now built from the theme's own blue and buy-orange.                */
.shop-002-page .stories-section {
    padding-block: var(--space-4);
    border-bottom: 1px solid var(--s2-hairline);
    background: var(--s2-surface);
}

.shop-002-page .stories-strip {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    overflow-x: auto;
    padding-bottom: var(--space-2);
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
}

.shop-002-page .stories-strip::-webkit-scrollbar {
    height: 5px;
}

.shop-002-page .stories-strip::-webkit-scrollbar-thumb {
    background: var(--s2-hairline-strong);
    border-radius: var(--s2-r-pill);
}

.shop-002-page .story-avatar {
    flex: 0 0 auto;
    width: 82px;
    padding: 0;
    border: 0;
    background: none;
    text-align: center;
    cursor: pointer;
}

.shop-002-page .story-ring {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 74px;
    height: 74px;
    padding: 3px;
    border-radius: 50%;
    background: linear-gradient(45deg, var(--s2-buy), var(--color-primary-400), var(--color-primary-700));
}

.shop-002-page .story-ring img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    border: 3px solid var(--s2-surface);
    background: var(--s2-surface);
    object-fit: cover;
}

.shop-002-page .story-avatar.seen .story-ring {
    background: var(--s2-hairline-strong);
}

.shop-002-page .story-name {
    display: block;
    max-width: 80px;
    margin-top: var(--space-1);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: var(--fs-caption);
    color: var(--s2-body);
}

/* viewer */
.shop-002-page .story-modal {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: none;
}

.shop-002-page .story-modal.open {
    display: flex;
    align-items: center;
    justify-content: center;
}

.shop-002-page .story-modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .85);
}

.shop-002-page .story-modal-dialog {
    position: relative;
    display: flex;
    flex-direction: column;
    margin: auto;
    width: auto;
    max-width: 96vw;
    max-height: 94vh;
    border-radius: var(--s2-r-md);
    background: #000;
    overflow: hidden;
    box-shadow: var(--s2-sh-3);
}

.shop-002-page .story-close {
    position: absolute;
    top: var(--space-2);
    inset-inline-start: var(--space-3);
    z-index: 5;
    width: var(--s2-hit);
    height: var(--s2-hit);
    border: 0;
    border-radius: 50%;
    background: rgba(0, 0, 0, .45);
    color: #fff;
    font-size: 1.375rem;
    line-height: 1;
    cursor: pointer;
}

.shop-002-page .story-player {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
    overflow: hidden;
}

.shop-002-page .story-media {
    position: relative;
    background: #000;
}

.shop-002-page .story-media.portrait {
    height: 74vh;
    width: auto;
    aspect-ratio: 9 / 16;
    max-width: 96vw;
}

.shop-002-page .story-media.landscape {
    width: min(92vw, 760px);
    height: auto;
    aspect-ratio: 16 / 9;
    max-height: 74vh;
}

.shop-002-page .story-media iframe,
.shop-002-page .story-media video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
    object-fit: contain;
    background: #000;
}

.shop-002-page .story-info {
    flex: 1 1 auto;
    min-height: 0;
    padding: var(--space-4);
    background: var(--s2-surface);
    overflow-y: auto;
}

.shop-002-page .story-title {
    margin: 0 0 var(--space-2);
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body);
    color: var(--s2-ink);
}

.shop-002-page .story-caption {
    margin: 0 0 var(--space-3);
    font-size: var(--fs-body-sm);
    line-height: var(--lh-body);
    color: var(--s2-muted);
}

.shop-002-page .story-cta {
    display: inline-flex;
    align-items: center;
    min-height: var(--s2-btn-h);
    margin-bottom: var(--space-3);
    padding-inline: var(--space-4);
    border-radius: var(--s2-r-md);
    background: var(--s2-buy);
    color: var(--s2-buy-ink);
    /* navy on orange — 5.60:1, no !important */
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    text-decoration: none;
}

.shop-002-page .story-cta:hover {
    background: var(--s2-buy-hover);
}

.shop-002-page .story-actions {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding-top: var(--space-3);
    border-top: 1px solid var(--s2-hairline);
}

.shop-002-page .story-like,
.shop-002-page .story-comment-toggle {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: var(--s2-hit);
    padding-inline: var(--space-3);
    border: 0;
    border-radius: var(--s2-r-md);
    background: var(--s2-sunken);
    color: var(--s2-body);
    font-family: var(--s2-ff);
    font-size: var(--fs-body-sm);
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease),
        color var(--dur-fast) var(--ease);
}

.shop-002-page .story-like:hover,
.shop-002-page .story-comment-toggle:hover {
    background: var(--s2-hairline);
}

.shop-002-page .story-like.liked {
    color: var(--s2-danger);
}

.shop-002-page .story-like.liked i {
    font-weight: 900;
}

.shop-002-page .story-comments {
    margin-top: var(--space-4);
}

.shop-002-page .story-input {
    width: 100%;
    margin-bottom: var(--space-2);
    padding: var(--space-3);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff);
    font-size: var(--fs-body-sm);
}

.shop-002-page .story-input:not(textarea) {
    min-height: var(--s2-input-h);
}

.shop-002-page .story-input::placeholder {
    color: var(--s2-muted);
}

.shop-002-page .story-comment-submit {
    min-height: var(--s2-btn-h);
    padding-inline: var(--space-4);
    border: 0;
    border-radius: var(--s2-r-md);
    background: var(--color-primary-500);
    color: #fff;
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    cursor: pointer;
}

.shop-002-page .story-comment-submit:hover {
    background: var(--color-primary-600);
}

.shop-002-page .story-comment-msg {
    margin-top: var(--space-2);
    font-size: var(--fs-caption);
    color: var(--s2-success);
}

.shop-002-page .story-comments-list {
    margin-top: var(--space-4);
}

.shop-002-page .story-comments-empty {
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .story-comment-item {
    padding-block: var(--space-2);
    border-top: 1px solid var(--s2-hairline);
}

.shop-002-page .story-comment-item .name {
    font-family: var(--s2-ff-med);
    font-size: var(--fs-caption);
    color: var(--s2-ink);
}

.shop-002-page .story-comment-item .date {
    margin-inline-start: var(--space-2);
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .story-comment-item .text {
    margin: var(--space-1) 0 0;
    font-size: var(--fs-body-sm);
    line-height: var(--lh-body);
    color: var(--s2-body);
}

@media (max-width: 480px) {
    .shop-002-page .story-modal-dialog {
        max-width: 100%;
    }
}

/* ── 28. MEGA MENU — keyboard access ───────────────────────────────────────
   The desktop mega menu only opens on group-hover, so a keyboard user could
   tab to the trigger and nothing would happen (WCAG 2.1.1). The purged
   Tailwind build has no group-focus-within variant to add in the markup, so
   the rule lives here. Menu markup and main.js are otherwise untouched —
   130 of its 134 classes already resolve, and the remaining ones
   (.accordion-btn, .category-item) are JS hooks that need no styling.      */
.shop-002-page .group:focus-within>#dropdown-menu,
.shop-002-page #dropdown-menu:focus-within {
    opacity: 1;
    visibility: visible;
}

/* ═════════════════════════════════════════════════════════════════════════
   CART + CHECKOUT
   Both views were byte-identical copies of the shop-001 originals, built on
   Bootstrap (.row / .col-lg-8 / .col-lg-4) and styled by cart.css — none of
   which is loaded here. So the whole buy path rendered with no grid and no
   styling at all.
   ═════════════════════════════════════════════════════════════════════════ */

/* ── 29. STEPS ─────────────────────────────────────────────────────────── */
.shop-002-page .checkout-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--space-1);
    margin-bottom: var(--space-6);
}

.shop-002-page .step-item {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-height: var(--s2-hit);
    padding-inline: var(--space-4);
    border-radius: var(--s2-r-pill);
    background: var(--s2-surface);
    color: var(--s2-muted);
    font-size: var(--fs-body-sm);
}

.shop-002-page .step-item.active {
    background: var(--color-primary-500);
    color: #fff;
    /* 5.36:1 */
}

.shop-002-page .step-item.done {
    background: var(--color-primary-50);
    color: var(--color-primary-700);
    /* 9.93:1 */
}

.shop-002-page .step-num {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--s2-sunken);
    color: var(--s2-muted);
    font-size: var(--fs-caption);
    font-family: var(--s2-ff-bold);
}

.shop-002-page .step-item.active .step-num {
    background: #fff;
    color: var(--color-primary-500);
}

.shop-002-page .step-item.done .step-num {
    background: var(--color-primary-500);
    color: #fff;
}

.shop-002-page .step-arrow {
    color: var(--s2-hairline-strong);
}

@media (max-width: 575.98px) {
    .shop-002-page .step-item {
        padding-inline: var(--space-3);
        font-size: var(--fs-caption);
    }

    .shop-002-page .step-item span {
        display: none;
    }

    /* numbers only on small screens */
    .shop-002-page .step-item.active span {
        display: inline;
    }
}

/* ── 30. BUY-PATH PAGE SHELL ───────────────────────────────────────────── */
.shop-002-page .cart-page,
.shop-002-page .checkout-page {
    padding-block: var(--space-6) var(--space-10);
}

.shop-002-page .buy-layout {
    display: grid;
    gap: var(--space-5);
    grid-template-columns: 1fr;
    align-items: start;
}

@media (min-width: 1024px) {
    .shop-002-page .buy-layout {
        grid-template-columns: minmax(0, 1fr) 360px;
        gap: var(--space-6);
    }
}

.shop-002-page .buy-main {
    min-width: 0;
}

/* ── 31. CART ITEMS ───────────────────────────────────────────────────────
   The original markup was a <table> that needed a 600px horizontal scroll on
   phones. Rebuilt as a list of grid rows: two columns on mobile, five on
   desktop. All ids the cart JS depends on are unchanged.                  */
.shop-002-page .cart-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.shop-002-page .cart-row {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) auto;
    grid-template-areas:
        "media info remove"
        "media price price"
        "media qty   total";
    gap: var(--space-2) var(--space-3);
    align-items: center;
    padding: var(--space-4);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
}

@media (min-width: 768px) {
    .shop-002-page .cart-row {
        grid-template-columns: 80px minmax(0, 1fr) auto auto auto;
        grid-template-areas: "media info price qty total remove";
        gap: var(--space-4);
    }
}

.shop-002-page .cart-cell-media {
    grid-area: media;
}

.shop-002-page .cart-cell-info {
    grid-area: info;
    min-width: 0;
}

.shop-002-page .cart-cell-price {
    grid-area: price;
}

.shop-002-page .cart-cell-qty {
    grid-area: qty;
}

.shop-002-page .cart-cell-total {
    grid-area: total;
}

.shop-002-page .cart-cell-remove {
    grid-area: remove;
    justify-self: end;
}

.shop-002-page .cart-product-img {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    border-radius: var(--s2-r-md);
    background: var(--s2-sunken);
    object-fit: contain;
}

.shop-002-page .cart-product-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: var(--fs-body-sm);
    line-height: 1.5;
    color: var(--s2-ink);
    text-decoration: none;
}

.shop-002-page .cart-product-title:hover {
    color: var(--s2-link);
}

.shop-002-page .cart-product-variant {
    margin-top: var(--space-1);
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .cart-price {
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body-sm);
    color: var(--s2-price);
    white-space: nowrap;
}

.shop-002-page .price-old {
    display: block;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
    text-decoration: line-through;
}

.shop-002-page .cart-cell-label {
    display: block;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

@media (min-width: 768px) {
    .shop-002-page .cart-cell-label {
        display: none;
    }

    /* header row covers it */
}

.shop-002-page .cart-qty-control {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    overflow: hidden;
}

.shop-002-page .cart-qty-control button {
    width: var(--s2-hit);
    height: var(--s2-hit);
    border: 0;
    background: var(--s2-surface);
    color: var(--s2-ink);
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease);
}

.shop-002-page .cart-qty-control button:hover {
    background: var(--s2-sunken);
}

.shop-002-page .cart-qty-control input {
    width: 44px;
    height: var(--s2-hit);
    border: 0;
    border-inline: 1px solid var(--s2-hairline-strong);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body-sm);
    text-align: center;
    appearance: textfield;
    -moz-appearance: textfield;
}

.shop-002-page .cart-qty-control input::-webkit-outer-spin-button,
.shop-002-page .cart-qty-control input::-webkit-inner-spin-button {
    appearance: none;
    margin: 0;
}

/* روی موبایل «تعداد» و «جمع» در یک ردیفِ گرید کنارِ هم‌اند و ستونِ تعداد
   minmax(0,1fr) است، یعنی می‌تواند از عرضِ خودِ کنترل کمتر شود. کنترلِ ۱۳۴
   پیکسلی از ستونش می‌زد بیرون و دقیقاً روی برچسبِ «جمع» می‌افتاد. حالا کنترل
   به اندازهٔ ستون جمع می‌شود و ورودی کشسان است. */
@media (max-width: 767.98px) {
    .shop-002-page .cart-cell-qty {
        min-width: 0;
    }

    .shop-002-page .cart-qty-control {
        display: flex;
        width: 100%;
        max-width: 132px;
    }

    .shop-002-page .cart-qty-control button {
        flex: 0 0 auto;
    }

    .shop-002-page .cart-qty-control input {
        width: auto;
        min-width: 0;
        flex: 1 1 auto;
    }
}

.shop-002-page .cart-remove-btn {
    display: grid;
    place-items: center;
    width: var(--s2-hit);
    height: var(--s2-hit);
    border: 0;
    border-radius: var(--s2-r-md);
    background: transparent;
    color: var(--s2-muted);
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease),
        color var(--dur-fast) var(--ease);
}

.shop-002-page .cart-remove-btn:hover {
    background: var(--s2-sunken);
    color: var(--s2-danger);
}

.shop-002-page .cart-actions {
    margin-top: var(--space-4);
}

.shop-002-page .continue-shopping-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: var(--s2-hit);
    color: var(--s2-link);
    font-size: var(--fs-body-sm);
    text-decoration: none;
}

.shop-002-page .continue-shopping-link:hover {
    text-decoration: underline;
}

.shop-002-page .cart-empty {
    max-width: 520px;
    margin-inline: auto;
}

/* ── 32. ORDER SUMMARY ─────────────────────────────────────────────────── */
.shop-002-page .cart-summary-box {
    position: sticky;
    top: var(--space-4);
    padding: var(--space-5);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    box-shadow: var(--s2-sh-1);
}

.shop-002-page .cart-summary-title {
    margin: 0 0 var(--space-4);
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--s2-hairline);
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-h3);
    color: var(--s2-ink);
}

.shop-002-page .summary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding-block: var(--space-2);
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
}

.shop-002-page .summary-row.total-row {
    margin-top: var(--space-2);
    padding-top: var(--space-3);
    border-top: 1px solid var(--s2-hairline);
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body);
    color: var(--s2-ink);
}

.shop-002-page .summary-amount {
    font-family: var(--s2-ff-black);
    font-size: var(--fs-body-lg);
    color: var(--s2-price);
}

.shop-002-page .summary-free,
.shop-002-page .summary-discount {
    color: var(--s2-success);
}

/* 5.44:1 */

.shop-002-page .checkout-summary-items {
    margin-bottom: var(--space-3);
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--s2-hairline);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.shop-002-page .checkout-summary-item {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.shop-002-page .checkout-summary-item .cart-product-img {
    width: 44px;
    flex-shrink: 0;
}

.shop-002-page .checkout-summary-item-body {
    flex: 1;
    min-width: 0;
}

.shop-002-page .checkout-summary-item-name {
    display: block;
    font-size: var(--fs-body-sm);
    color: var(--s2-ink);
}

.shop-002-page .checkout-summary-item-qty {
    display: block;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .checkout-summary-item-price {
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    color: var(--s2-price);
    white-space: nowrap;
}

.shop-002-page .checkout-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    width: 100%;
    min-height: var(--s2-btn-h);
    margin-top: var(--space-4);
    padding-inline: var(--space-4);
    border: 0;
    border-radius: var(--s2-r-md);
    background: var(--s2-buy);
    color: var(--s2-buy-ink);
    /* navy on orange — 5.60:1 */
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body);
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease);
}

.shop-002-page .checkout-btn:hover {
    background: var(--s2-buy-hover);
}

.shop-002-page .checkout-btn:disabled {
    opacity: var(--s2-disabled-o);
    cursor: not-allowed;
}

.shop-002-page .checkout-btn.is-loading {
    cursor: progress;
}

.shop-002-page .checkout-btn.is-loading .js-submit-icon {
    animation: s2-spin .7s linear infinite;
}

/* small helpers used by the checkout markup */
.shop-002-page .checkout-totals {
    display: block;
}

.shop-002-page .checkout-note-field {
    margin-top: var(--space-4);
}

.shop-002-page .checkout-wallet-body {
    flex: 1;
    min-width: 0;
}

.shop-002-page .checkout-wallet-icon {
    color: var(--s2-success);
}

.shop-002-page .checkout-trust-note {
    margin: var(--space-3) 0 0;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
    text-align: center;
}

/* ── 33. CHECKOUT SECTIONS + FORM ──────────────────────────────────────── */
.shop-002-page .checkout-section {
    margin-bottom: var(--space-4);
    padding: var(--space-5);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    box-shadow: var(--s2-sh-1);
}

.shop-002-page .checkout-section-title {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0 0 var(--space-4);
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-h3);
    color: var(--s2-ink);
}

.shop-002-page .checkout-section-title i {
    color: var(--color-primary-500);
}

.shop-002-page .checkout-fieldset {
    border: 0;
    margin: 0;
    padding: 0;
    min-width: 0;
}

.shop-002-page .contact-form-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-4);
}

@media (min-width: 640px) {
    .shop-002-page .contact-form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.shop-002-page .contact-form-group {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.shop-002-page .contact-form-group.full-width {
    grid-column: 1 / -1;
}

.shop-002-page .contact-form-group label {
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
}

.shop-002-page .contact-form-group input,
.shop-002-page .contact-form-group select,
.shop-002-page .contact-form-group textarea {
    width: 100%;
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff);
    font-size: var(--fs-body-sm);
    line-height: var(--lh-snug);
    transition: border-color var(--dur-fast) var(--ease),
        box-shadow var(--dur-fast) var(--ease);
}

.shop-002-page .contact-form-group input,
.shop-002-page .contact-form-group select {
    min-height: var(--s2-input-h);
}

.shop-002-page .contact-form-group textarea {
    resize: vertical;
}

.shop-002-page .contact-form-group input::placeholder,
.shop-002-page .contact-form-group textarea::placeholder {
    color: var(--s2-muted);
}

.shop-002-page .contact-form-group input:focus-visible,
.shop-002-page .contact-form-group select:focus-visible,
.shop-002-page .contact-form-group textarea:focus-visible {
    outline: none;
    border-color: var(--s2-focus);
    box-shadow: var(--s2-focus-ring);
}

.shop-002-page .contact-form-group input[dir="ltr"] {
    direction: ltr;
    text-align: left;
}

.shop-002-page .contact-form-group input.has-error,
.shop-002-page .contact-form-group select.has-error,
.shop-002-page .contact-form-group textarea.has-error {
    border-color: var(--s2-danger);
    box-shadow: 0 0 0 3px rgba(179, 38, 30, .16);
}

.shop-002-page .field-error {
    font-size: var(--fs-caption);
    line-height: var(--lh-snug);
    color: var(--s2-danger);
}

/* ── 34. SELECTABLE OPTION CARDS ───────────────────────────────────────── */
.shop-002-page .delivery-options-list,
.shop-002-page .payment-options-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.shop-002-page .delivery-option,
.shop-002-page .payment-option,
.shop-002-page .wallet-use-box {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-height: var(--s2-hit);
    padding: var(--space-4);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    cursor: pointer;
    transition: border-color var(--dur-fast) var(--ease),
        background-color var(--dur-fast) var(--ease);
}

.shop-002-page .delivery-option.selected,
.shop-002-page .payment-option.selected {
    border-color: var(--color-primary-400);
    background: var(--color-primary-50);
}

.shop-002-page .delivery-option:focus-within,
.shop-002-page .payment-option:focus-within,
.shop-002-page .wallet-use-box:focus-within,
.shop-002-page .gateway-option:focus-within {
    border-color: var(--s2-focus);
    box-shadow: var(--s2-focus-ring);
}

.shop-002-page .delivery-option input[type="radio"],
.shop-002-page .payment-option input[type="radio"],
.shop-002-page .wallet-use-box input[type="checkbox"] {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    accent-color: var(--color-primary-500);
    cursor: pointer;
}

.shop-002-page .delivery-option-icon,
.shop-002-page .payment-option-icon {
    flex-shrink: 0;
    color: var(--color-primary-500);
    font-size: 1.125rem;
}

.shop-002-page .delivery-option-title,
.shop-002-page .payment-option-title {
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    color: var(--s2-ink);
}

.shop-002-page .delivery-option-desc,
.shop-002-page .payment-option-desc {
    font-size: var(--fs-caption);
    color: var(--s2-body);
    /* 10.9:1 — muted fails at this size */
}

.shop-002-page .delivery-option-price {
    margin-inline-start: auto;
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body-sm);
    color: var(--s2-price);
    white-space: nowrap;
}

/* gateways */
.shop-002-page .gateway-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-block: var(--space-2);
    margin-inline-start: var(--space-7);
}

.shop-002-page .gateway-option {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-height: var(--s2-hit);
    min-width: 150px;
    padding-inline: var(--space-3);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    cursor: pointer;
    transition: border-color var(--dur-fast) var(--ease),
        background-color var(--dur-fast) var(--ease);
}

/* visually hidden but still focusable — display:none would drop the radio
   out of the tab order entirely and make gateways mouse-only */
.shop-002-page .gateway-option input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    opacity: 0;
    pointer-events: none;
}

.shop-002-page .gateway-option.selected {
    border-color: var(--color-primary-400);
    background: var(--color-primary-50);
}

.shop-002-page .gateway-logo {
    width: 28px;
    height: 28px;
    object-fit: contain;
}

.shop-002-page .gateway-name {
    flex: 1;
    font-size: var(--fs-caption);
    color: var(--s2-ink);
}

.shop-002-page .gateway-check {
    opacity: 0;
    color: var(--color-primary-500);
}

.shop-002-page .gateway-option.selected .gateway-check {
    opacity: 1;
}

/* wallet */
.shop-002-page .wallet-use-box {
    background: var(--s2-sunken);
    margin-bottom: var(--space-4);
}

.shop-002-page .wallet-use-box.checked {
    border-color: var(--s2-success);
    background: rgba(15, 122, 56, .07);
}

.shop-002-page .wallet-use-box .payment-option-icon {
    color: var(--s2-success);
}

.shop-002-page .wallet-use-check {
    margin-inline-start: auto;
    opacity: 0;
    color: var(--s2-success);
}

.shop-002-page .wallet-use-box.checked .wallet-use-check {
    opacity: 1;
}

.shop-002-page .payment-methods-hint {
    margin-bottom: var(--space-2);
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
}

.shop-002-page .payment-methods-hint b {
    color: var(--s2-price);
}

.shop-002-page .wallet-covers-note {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-2);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--s2-r-md);
    background: rgba(15, 122, 56, .07);
    color: var(--s2-success);
    font-size: var(--fs-body-sm);
}

/* ── 35. COUPON ───────────────────────────────────────────────────────── */
.shop-002-page .coupon-box {
    margin-block: var(--space-3);
}

.shop-002-page .coupon-form {
    display: flex;
    gap: var(--space-2);
}

.shop-002-page .coupon-input {
    flex: 1;
    min-width: 0;
    min-height: var(--s2-input-h);
    padding-inline: var(--space-3);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff);
    font-size: var(--fs-body-sm);
}

.shop-002-page .coupon-btn {
    flex-shrink: 0;
    min-height: var(--s2-btn-h);
    padding-inline: var(--space-4);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease);
}

.shop-002-page .coupon-btn:hover {
    background: var(--s2-sunken);
}

.shop-002-page .coupon-btn:disabled {
    opacity: var(--s2-disabled-o);
    cursor: not-allowed;
}

.shop-002-page .coupon-msg {
    margin-top: var(--space-2);
    font-size: var(--fs-caption);
}

.shop-002-page .coupon-msg.ok {
    color: var(--s2-success);
}

.shop-002-page .coupon-msg.err {
    color: var(--s2-danger);
}

/* ── 36. CHECKOUT ERROR + MOBILE BAR ───────────────────────────────────── */
.shop-002-page .checkout-error {
    margin-top: var(--space-4);
    padding: var(--space-3) var(--space-4);
    border: 1px solid rgba(179, 38, 30, .3);
    border-radius: var(--s2-r-md);
    background: rgba(179, 38, 30, .07);
    color: var(--s2-danger);
    font-size: var(--fs-body-sm);
    line-height: var(--lh-snug);
}

.shop-002-page .checkout-mobile-bar {
    display: none;
}

@media (max-width: 1023.98px) {
    .shop-002-page .checkout-mobile-bar {
        display: flex;
        position: sticky;
        bottom: 0;
        z-index: 900;
        align-items: center;
        gap: var(--space-4);
        margin-top: var(--space-4);
        padding: var(--space-3) var(--space-4);
        padding-bottom: calc(var(--space-3) + env(safe-area-inset-bottom, 0px));
        border-top: 1px solid var(--s2-hairline);
        background: var(--s2-surface);
        box-shadow: 0 -8px 24px rgba(28, 25, 23, .10);
    }

    .shop-002-page .checkout-mobile-bar-label {
        display: block;
        font-size: var(--fs-caption);
        color: var(--s2-muted);
    }

    .shop-002-page .checkout-mobile-bar-value {
        display: block;
        font-family: var(--s2-ff-black);
        font-size: var(--fs-body-lg);
        color: var(--s2-price);
        white-space: nowrap;
    }

    .shop-002-page .checkout-mobile-bar-amount {
        min-width: 0;
    }

    .shop-002-page .checkout-mobile-bar .checkout-btn {
        flex: 1;
        margin-top: 0;
    }

    /* one CTA on small screens */
    .shop-002-page .cart-summary-box>.checkout-btn {
        display: none;
    }

    .shop-002-page .cart-summary-box {
        position: static;
    }
}

/* ── 37. ORDER CONFIRMATION ────────────────────────────────────────────── */
.shop-002-page .order-done-page {
    display: grid;
    place-items: center;
    min-height: 60vh;
    padding-block: var(--space-9);
}

.shop-002-page .order-done-card {
    width: 100%;
    max-width: 540px;
    margin-inline: auto;
    padding: var(--space-8) var(--space-6);
    border-radius: var(--s2-r-xl);
    background: var(--s2-surface);
    box-shadow: var(--s2-sh-2);
    text-align: center;
}

.shop-002-page .order-done-icon {
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    margin: 0 auto var(--space-5);
    border-radius: 50%;
    background: var(--s2-success);
    color: #fff;
    /* 5.44:1 */
    font-size: 1.75rem;
}

.shop-002-page .order-done-title {
    margin: 0 0 var(--space-3);
    font-family: var(--s2-ff-black);
    font-size: var(--fs-h2);
    color: var(--s2-ink);
    /* ink, not green — the tick already says success */
}

.shop-002-page .order-done-code {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-block: var(--space-4);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--s2-r-md);
    background: var(--s2-sunken);
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
}

.shop-002-page .order-done-code strong {
    font-family: var(--s2-ff-bold);
    color: var(--s2-ink);
}

.shop-002-page .order-done-desc {
    margin: 0 0 var(--space-5);
    font-size: var(--fs-body-sm);
    line-height: var(--lh-body);
    color: var(--s2-body);
}

.shop-002-page .order-done-summary {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin-bottom: var(--space-5);
    padding: var(--space-4);
    border-radius: var(--s2-r-md);
    background: var(--s2-sunken);
    text-align: start;
}

.shop-002-page .order-done-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
}

.shop-002-page .order-done-row .amount {
    font-family: var(--s2-ff-black);
    font-size: var(--fs-body-lg);
    color: var(--s2-price);
}

.shop-002-page .order-done-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    justify-content: center;
}

.shop-002-page .order-done-btn-primary,
.shop-002-page .order-done-btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    min-height: var(--s2-btn-h);
    padding-inline: var(--space-5);
    border: 1px solid transparent;
    border-radius: var(--s2-r-md);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    text-decoration: none;
}

.shop-002-page .order-done-btn-primary {
    background: var(--color-primary-500);
    color: #fff;
}

.shop-002-page .order-done-btn-primary:hover {
    background: var(--color-primary-600);
}

.shop-002-page .order-done-btn-secondary {
    border-color: var(--s2-hairline-strong);
    background: var(--s2-surface);
    color: var(--s2-ink);
}

.shop-002-page .order-done-btn-secondary:hover {
    background: var(--s2-sunken);
}

.shop-002-page .order-done-home {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: var(--s2-hit);
    margin-top: var(--space-3);
    color: var(--s2-muted);
    font-size: var(--fs-body-sm);
    text-decoration: none;
}

.shop-002-page .order-done-home:hover {
    color: var(--s2-link);
}

/* ─────────────────────────────────────────────────────────────────────────
   19. PRINT — order pages get printed; keep them readable
   ───────────────────────────────────────────────────────────────────────── */
@media print {

    .shop-002-page .shop-layout-side,
    .shop-002-page .blog-layout-side,
    .shop-002-page .filter-trigger,
    .shop-002-page .fav-btn {
        display: none;
    }
}

/* The page shell keeps its old 1700px cap on purpose: full-bleed strips such as
   the breadcrumb bar hang off it. Content width comes from the .s2-container /
   .container inside it, not from here. */
.shop-002-page .s2-shell {
    width: 100%;
    max-width: 1700px;
    margin-inline: auto;
}

.shop-002-page .s2-hd {
    background: var(--s2-surface);
    position: relative;
}

.shop-002-page .s2-hd-in {
    width: 100%;
    max-width: var(--s2-container);
    margin-inline: auto;
    padding-inline: var(--s2-gutter);
}

.shop-002-page .s2-hd-strip {
    background: var(--s2-sunken);
    border-bottom: 1px solid var(--s2-hairline);
}

.shop-002-page .s2-hd-strip .s2-hd-in {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    min-height: 36px;
}

.shop-002-page .s2-hd-phone {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    flex-shrink: 0;
    font-size: var(--fs-caption);
    color: var(--s2-body);
    text-decoration: none;
}

.shop-002-page .s2-hd-phone i {
    color: var(--s2-link);
    font-size: 14px;
}

.shop-002-page .s2-hd-phone:hover {
    color: var(--s2-link);
}

.shop-002-page .s2-hd-ticker {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    overflow: hidden;
}

.shop-002-page .s2-hd-ticker .ann-item {
    font-size: var(--fs-caption);

    color: var(--s2-body);
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.shop-002-page .s2-hd-ticker a.ann-item:hover {
    color: var(--s2-link);
}

.shop-002-page .s2-hd-main {
    background: var(--s2-surface);
    border-bottom: 1px solid var(--s2-hairline);
}

.shop-002-page .s2-hd-main.fixed {
    z-index: 50;
    box-shadow: var(--s2-sh-2);
}

.shop-002-page .s2-hd-main .s2-hd-in {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding-block: var(--space-3);
}

.shop-002-page .s2-hd-logo {
    display: block;
    flex-shrink: 0;
}

.shop-002-page .s2-hd-logo img {
    display: block;
    height: 36px;
    width: auto;
}

@media (min-width: 1024px) {
    .shop-002-page .s2-hd-main .s2-hd-in {
        gap: var(--space-6);
        padding-block: var(--space-4);
    }

    .shop-002-page .s2-hd-logo img {
        height: 44px;
    }
}

.shop-002-page .s2-hd-search {
    display: none;
    position: relative;
    flex: 1;
    min-width: 0;
}

@media (min-width: 1024px) {
    .shop-002-page .s2-hd-search {
        display: block;
    }
}

.shop-002-page .s2-hd-field {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    height: 48px;
    max-width: 620px;
    padding-inline: var(--space-4);
    background: var(--s2-sunken);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    cursor: text;
    transition: background-color var(--dur) var(--ease),
        border-color var(--dur) var(--ease),
        box-shadow var(--dur) var(--ease);
}

.shop-002-page .s2-hd-field:hover {
    border-color: var(--color-primary-300);
}

.shop-002-page .s2-hd-field:focus-within {
    background: var(--s2-surface);
    border-color: var(--s2-link);
    box-shadow: var(--s2-focus-ring);
}

.shop-002-page .s2-hd-field {
    color: var(--s2-muted);
}

.shop-002-page .s2-hd-field svg {
    flex-shrink: 0;
    transition: color var(--dur) var(--ease);
}

.shop-002-page .s2-hd-field:focus-within svg {
    color: var(--s2-ink);
}

.shop-002-page .s2-hd-input {
    flex: 1;
    min-width: 0;
    height: 100%;
    border: 0;
    background: transparent;

    outline: 0;
    font-family: var(--s2-ff);
    font-size: var(--fs-body);
    color: var(--s2-ink);

    caret-color: var(--s2-ink);
}

.shop-002-page .s2-hd-input::placeholder {
    color: var(--s2-muted);
    font-size: var(--fs-body-sm);
}

.shop-002-page .s2-hd-field:focus-within .s2-hd-input::placeholder {
    opacity: .55;
}

.shop-002-page .s2-hd-kbd {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    flex-shrink: 0;
    padding: 2px 8px;
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-sm);
    background: var(--s2-sunken);

    color: var(--s2-body);
    font-size: 11px;
    font-family: var(--s2-ff);
    direction: ltr;
    transition: opacity var(--dur) var(--ease);
}

.shop-002-page #search-container:focus-within .s2-hd-kbd {
    opacity: 0;
}

.shop-002-page .s2-hd-backdrop {
    background: rgba(28, 25, 23, .28);
    transition: opacity var(--dur-slow) var(--ease);
}

.shop-002-page .s2-hd-suggest {
    position: absolute;
    top: calc(48px + var(--space-2));
    inset-inline-start: 0;
    width: 100%;
    max-width: 620px;
    padding: var(--space-2);
    background: var(--s2-surface);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    box-shadow: var(--s2-sh-3);
    transition: opacity var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);
}

.shop-002-page .s2-hd-suggest:has(#desktopSuggest:empty) {
    opacity: 0;
    transform: scale(.98);
    pointer-events: none;
}

.shop-002-page .s2-hd-actions {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    margin-inline-start: auto;
    flex-shrink: 0;
}

.shop-002-page .s2-hd-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--s2-hit);
    height: var(--s2-hit);
    border: 0;
    background: transparent;
    border-radius: var(--s2-r-md);
    color: var(--s2-body);
    cursor: pointer;
    transition: background-color var(--dur) var(--ease);
}

.shop-002-page .s2-hd-btn:hover {
    background: var(--s2-sunken);
}

.shop-002-page .s2-hd-btn:focus-visible {
    outline: 2px solid var(--s2-link);
    outline-offset: 2px;
}

@media (min-width: 1024px) {
    .shop-002-page .s2-hd-btn--mob {
        display: none;
    }
}

.shop-002-page .s2-hd-badge {
    position: absolute;
    top: 4px;
    inset-inline-start: 4px;
    min-width: 18px;
    height: 18px;
    padding-inline: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--s2-r-pill);
    background: var(--s2-link);
    color: #fff;
    font-size: 11px;
    font-family: var(--s2-ff-bold);
    line-height: 1;
}

.shop-002-page .s2-hd-acct {
    position: relative;
}

.shop-002-page .s2-hd-menu {
    position: absolute;
    top: calc(100% + var(--space-2));
    inset-inline-end: 0;
    width: 264px;
    padding: var(--space-2);
    background: var(--s2-surface);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    box-shadow: var(--s2-sh-3);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: opacity var(--dur) var(--ease-out), transform var(--dur) var(--ease-out), visibility var(--dur);
    z-index: 60;
}

.shop-002-page .s2-hd-acct:hover .s2-hd-menu,
.shop-002-page .s2-hd-acct:focus-within .s2-hd-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.shop-002-page .s2-hd-menu-head {
    padding: var(--space-3) var(--space-3) var(--space-2);
    border-bottom: 1px solid var(--s2-hairline);
    margin-bottom: var(--space-2);
}

.shop-002-page .s2-hd-menu-name {
    display: block;
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
    color: var(--s2-ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-002-page .s2-hd-menu-sub {
    display: block;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .s2-hd-menu a {
    display: block;
    padding: 10px var(--space-3);
    border-radius: var(--s2-r-sm);
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
    text-decoration: none;
    transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.shop-002-page .s2-hd-menu a:hover {
    background: var(--s2-sunken);
    color: var(--s2-ink);
}

.shop-002-page .s2-hd-menu a:focus-visible {
    outline: 2px solid var(--s2-link);
    outline-offset: -2px;
}

.shop-002-page .s2-hd-menu hr {
    border: 0;
    border-top: 1px solid var(--s2-hairline);
    margin: var(--space-2) 0;
}

.shop-002-page .s2-hd-menu .s2-hd-exit:hover {
    background: #FDEDEC;
    color: var(--s2-danger);
}

.shop-002-page .s2-hd-nav {
    background: var(--s2-surface);
    border-bottom: 1px solid var(--s2-hairline);
}

.shop-002-page .s2-hd-nav.fixed {
    z-index: 40;
    box-shadow: var(--s2-sh-2);
}

.shop-002-page .s2-hd-nav .s2-hd-in {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-5);
}

.shop-002-page .s2-hd-nav-list {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    list-style: none;
    margin: 0;
    padding: 0;
}

.shop-002-page .s2-hd-quick {
    display: flex;
    align-items: center;
    gap: var(--space-4);
}

.shop-002-page .s2-hd-quick a {
    position: relative;
    padding-block: var(--space-3);
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
    text-decoration: none;
    transition: color var(--dur) var(--ease);
}

.shop-002-page .s2-hd-quick a::after {
    content: "";
    position: absolute;
    inset-inline: 0;
    bottom: 6px;
    height: 2px;
    border-radius: 2px;
    background: var(--s2-link);
    transform: scaleX(0);
    transition: transform var(--dur) var(--ease-out);
}

.shop-002-page .s2-hd-quick a:hover {
    color: var(--s2-ink);
}

.shop-002-page .s2-hd-quick a:hover::after {
    transform: scaleX(1);
}

.shop-002-page .s2-hd-sheet {
    background: var(--s2-surface);
}

.shop-002-page .s2-hd-sheet-in {
    padding: var(--space-4);
}

.shop-002-page .s2-hd-sheet .s2-hd-field {
    max-width: none;
    flex: 1;
}

.shop-002-page .s2-hd-sheet-row {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.shop-002-page .s2-hd-tabs {
    position: fixed;
    inset-inline: 0;
    bottom: 0;
    z-index: 100;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    background: var(--s2-surface);
    border-top: 1px solid var(--s2-hairline);
    box-shadow: 0 -4px 16px rgba(28, 25, 23, .06);
    padding-bottom: env(safe-area-inset-bottom, 0);
}

@media (min-width: 768px) {
    .shop-002-page .s2-hd-tabs {
        display: none;
    }
}

.shop-002-page .s2-hd-tab {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-height: 56px;
    color: var(--s2-muted);
    text-decoration: none;
    font-size: 11px;
}

.shop-002-page .s2-hd-tab i {
    font-size: 20px;
}

.shop-002-page .s2-hd-tab.is-active {
    color: var(--s2-link);
}

.shop-002-page .s2-hd-tab .s2-hd-badge {
    top: 6px;
    inset-inline-start: 22%;
}

@media (prefers-reduced-motion: reduce) {

    .shop-002-page .s2-hd-menu,
    .shop-002-page .s2-hd-suggest,
    .shop-002-page .s2-hd-quick a::after {
        transition: none;
    }
}

.shop-002-page .s2-sg-head {
    margin: var(--space-2) var(--space-2) var(--space-1);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .s2-sg-item {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2);
    border-radius: var(--s2-r-sm);
    text-decoration: none;
    transition: background-color var(--dur-fast) var(--ease);
}

.shop-002-page .s2-sg-item:hover {
    background: var(--s2-sunken);
}

.shop-002-page .s2-sg-item:focus-visible {
    outline: 2px solid var(--s2-link);
    outline-offset: -2px;
}

.shop-002-page .s2-sg-img {
    display: block;
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    object-fit: cover;
    border-radius: var(--s2-r-sm);
    background: var(--s2-sunken);
}

.shop-002-page .s2-sg-txt {
    min-width: 0;
}

.shop-002-page .s2-sg-title {
    display: block;
    font-size: var(--fs-body-sm);
    color: var(--s2-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.shop-002-page .s2-sg-sub {
    display: block;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .s2-sg-empty {
    margin: 0;
    padding: var(--space-5) var(--space-3);
    text-align: center;
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .s2-sg-all {
    display: block;
    margin-top: var(--space-2);
    padding: var(--space-3);
    border-top: 1px solid var(--s2-hairline);
    text-align: center;
    font-size: var(--fs-body-sm);
    color: var(--s2-link);
    text-decoration: none;
}

.shop-002-page .s2-sg-all:hover {
    text-decoration: underline;
}

.shop-002-page .product-card-add-btn {
    width: 100%;
    background: var(--s2-surface);
    border: 1px solid var(--s2-hairline-strong);
    color: var(--s2-link);
    transition: background-color var(--dur) var(--ease),
        border-color var(--dur) var(--ease),
        color var(--dur) var(--ease);
}

.shop-002-page .product-card-add-btn:hover,
.shop-002-page .product-card-add-btn:focus-visible {
    background: var(--s2-buy);
    border-color: var(--s2-buy);
    color: var(--s2-buy-ink);
}

.shop-002-page .product-card-add-btn.added,
.shop-002-page .product-card-add-btn.added:hover {
    background: var(--s2-success);
    border-color: var(--s2-success);
    color: #fff;
}

@media (hover: hover) {
    .shop-002-page .product-card .fav-btn {
        opacity: 0;
        transition: opacity var(--dur) var(--ease), color var(--dur-fast) var(--ease),
            background-color var(--dur-fast) var(--ease);
    }

    .shop-002-page .product-card:hover .fav-btn,
    .shop-002-page .product-card:focus-within .fav-btn,
    .shop-002-page .fav-btn.is-fav {
        opacity: 1;
    }
}

.shop-002-page .product-rail {
    scrollbar-width: none;
    mask-image: linear-gradient(to left, transparent 0, #000 20px, #000 calc(100% - 20px), transparent 100%);
}

.shop-002-page .product-rail::-webkit-scrollbar {
    display: none;
}

.shop-002-page .product-rail[data-count="0"],
.shop-002-page .product-rail[data-count="1"],
.shop-002-page .product-rail[data-count="2"],
.shop-002-page .product-rail[data-count="3"],
.shop-002-page .home-offers-products[data-count="0"],
.shop-002-page .home-offers-products[data-count="1"],
.shop-002-page .home-offers-products[data-count="2"],
.shop-002-page .home-offers-products[data-count="3"] {
    display: grid;
    grid-auto-flow: row;
    grid-template-columns: repeat(auto-fill, minmax(var(--s2-card-min), var(--s2-card-max)));
    justify-content: start;
    gap: var(--space-4);
    overflow: visible;
    mask-image: none;
}

.shop-002-page .story-ring {
    background: linear-gradient(135deg, var(--s2-buy), var(--color-primary-500));
}

.shop-002-page .offers-timer-label {
    display: block;
    margin-bottom: var(--space-1);
    font-size: var(--fs-caption);
    color: inherit;
    opacity: .85;
}

.shop-002-page .product-card {
    overflow: hidden;
}

.shop-002-page .product-card-media {
    display: block;
    margin: calc(var(--space-3) * -1) calc(var(--space-3) * -1) var(--space-3);
    border-radius: var(--s2-r-md) var(--s2-r-md) 0 0;
}

.shop-002-page .product-card-media picture {
    display: block;
    width: 100%;
    height: 100%;
}

.shop-002-page .product-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.shop-002-page .product-card-img[src$=".svg"] {
    object-fit: contain;
    padding: 18%;
    background: var(--s2-sunken);
}

.shop-002-page .blog-page {
    padding-block: var(--space-5) var(--space-10);
}

.shop-002-page .blog-layout-side {
    min-width: 0;
}

.shop-002-page .blog-list-title {
    margin: 0;
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-h2);
    line-height: var(--lh-heading);
    color: var(--s2-ink);
}

.shop-002-page .blog-list-count {
    display: block;
    margin-top: var(--space-1);
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .blog-sort-link {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding-inline: var(--space-3);
    border-radius: var(--s2-r-pill);
    color: var(--s2-muted);
    font-size: var(--fs-body-sm);
    text-decoration: none;
    transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.shop-002-page .blog-sort-link:hover {
    background: var(--s2-sunken);
    color: var(--s2-ink);
}

.shop-002-page .blog-sort-link.active {
    background: var(--s2-ink);
    color: #fff;
    font-family: var(--s2-ff-med);
}

.shop-002-page .page-bloglist {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: var(--space-5);
    margin: 0;
    padding: 0;
    list-style: none;
}

.shop-002-page .blog-card {
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    overflow: hidden;
    transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.shop-002-page .blog-card:hover {
    border-color: var(--s2-hairline-strong);
    box-shadow: var(--s2-sh-2);
}

.shop-002-page .blog-card:focus-within {
    border-color: var(--s2-ink);
    box-shadow: var(--s2-focus-ring);
}

.shop-002-page .blog-card-link {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.shop-002-page .blog-card .image-box {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--s2-sunken);
}

.shop-002-page .blog-card .image-box picture {
    display: block;
    width: 100%;
    height: 100%;
}

.shop-002-page .blog-card .image-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--dur-slow) var(--ease-out);
}

.shop-002-page .blog-card:hover .image-box img {
    transform: scale(1.03);
}

.shop-002-page .blog-card .no-image {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    color: var(--s2-hairline-strong);
    font-size: 2rem;
}

.shop-002-page .blog-card .content-box {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    flex: 1;
    padding: var(--space-4);
}

.shop-002-page .blog-category-badge {
    align-self: flex-start;
    padding: 2px var(--space-2);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-pill);
    color: var(--s2-muted);
    font-size: var(--fs-caption);
}

.shop-002-page .title-blog {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-lg);
    line-height: 1.6;
    color: var(--s2-ink);
}

.shop-002-page .blog-excerpt {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
    font-size: var(--fs-body-sm);
    line-height: var(--lh-snug);
    color: var(--s2-muted);
}

.shop-002-page .blog-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-1) var(--space-4);
    margin-top: auto;
    padding-top: var(--space-3);
    border-top: 1px solid var(--s2-hairline);
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .blog-meta span {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
}

.shop-002-page .blog-meta i {
    font-size: .95em;
}

.shop-002-page .blog-detail-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6);
    align-items: start;
}

@media (min-width: 1024px) {
    .shop-002-page .blog-detail-layout {
        grid-template-columns: minmax(0, 1fr) 320px;
    }
}

.shop-002-page .blog-detail-main {
    min-width: 0;
}

.shop-002-page .blog-detail-wrap {
    padding: var(--space-5);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-xl);
    background: var(--s2-surface);
}

.shop-002-page .blog-detail-category {
    display: inline-flex;
    align-items: center;
    padding: 2px var(--space-3);
    border-radius: var(--s2-r-pill);
    background: var(--s2-sunken);
    color: var(--s2-body);
    font-size: var(--fs-caption);
    text-decoration: none;
}

.shop-002-page .blog-detail-category:hover {
    background: var(--s2-ink);
    color: #fff;
}

.shop-002-page .blog-detail-title {
    margin: var(--space-3) 0 var(--space-3);
    font-family: var(--s2-ff-black);
    font-size: var(--fs-h1);
    line-height: var(--lh-heading);
    color: var(--s2-ink);
}

.shop-002-page .blog-detail-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2) var(--space-5);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--s2-hairline);
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .blog-detail-meta span {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
}

.shop-002-page .blog-cover-img {
    display: block;
    width: 100%;
    height: auto;
    margin-block: var(--space-5);
    border-radius: var(--s2-r-lg);
}

.shop-002-page .blog-content {
    font-size: var(--fs-body-lg);
    line-height: 2;
    color: var(--s2-body);
}

.shop-002-page .blog-content>*+* {
    margin-top: var(--space-4);
}

.shop-002-page .blog-content h2,
.shop-002-page .blog-content h3,
.shop-002-page .blog-content h4 {
    margin-top: var(--space-7);
    font-family: var(--s2-ff-bold);
    line-height: var(--lh-heading);
    color: var(--s2-ink);
}

.shop-002-page .blog-content h2 {
    font-size: var(--fs-h2);
}

.shop-002-page .blog-content h3 {
    font-size: var(--fs-h3);
}

.shop-002-page .blog-content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--s2-r-md);
}

.shop-002-page .blog-content a {
    color: var(--s2-ink);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.shop-002-page .blog-content a:hover {
    color: var(--s2-buy);
}

.shop-002-page .blog-content ul,
.shop-002-page .blog-content ol {
    padding-inline-start: var(--space-5);
}

.shop-002-page .blog-content li+li {
    margin-top: var(--space-2);
}

.shop-002-page .blog-content blockquote {
    margin-inline: 0;
    padding: var(--space-3) var(--space-4);
    border-inline-start: 3px solid var(--s2-buy);
    background: var(--s2-sunken);
    border-radius: 0 var(--s2-r-md) var(--s2-r-md) 0;
    color: var(--s2-ink);
}

.shop-002-page .blog-content table {
    width: 100%;
    border-collapse: collapse;
}

.shop-002-page .blog-content th,
.shop-002-page .blog-content td {
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--s2-hairline);
}

.shop-002-page .blog-content th {
    background: var(--s2-sunken);
    font-family: var(--s2-ff-med);
    color: var(--s2-ink);
}

.shop-002-page .blog-audio-box,
.shop-002-page .blog-pdf-box {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-top: var(--space-5);
    padding: var(--space-4);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-md);
    background: var(--s2-sunken);
}

.shop-002-page .blog-pdf-icon {
    font-size: 1.5rem;
    color: var(--s2-buy);
}

.shop-002-page .blog-audio-box audio {
    width: 100%;
}

.shop-002-page .blog-tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-5);
}

.shop-002-page .blog-tag {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding-inline: var(--space-3);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-pill);
    color: var(--s2-body);
    font-size: var(--fs-body-sm);
    text-decoration: none;
}

.shop-002-page .blog-tag:hover {
    background: var(--s2-ink);
    border-color: var(--s2-ink);
    color: #fff;
}

.shop-002-page .blog-share {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-5);
    padding-top: var(--space-4);
    border-top: 1px solid var(--s2-hairline);
}

.shop-002-page .blog-share a,
.shop-002-page .blog-share button {
    display: inline-grid;
    place-items: center;
    width: var(--s2-hit);
    height: var(--s2-hit);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: 50%;
    background: var(--s2-surface);
    color: var(--s2-body);
    cursor: pointer;
    text-decoration: none;
    transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.shop-002-page .blog-share a:hover,
.shop-002-page .blog-share button:hover {
    background: var(--s2-ink);
    border-color: var(--s2-ink);
    color: #fff;
}

.shop-002-page .blog-comments-wrap {
    margin-top: var(--space-6);
    padding: var(--space-5);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-xl);
    background: var(--s2-surface);
}

.shop-002-page .blog-comments-wrap>h2 {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0 0 var(--space-5);
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-h3);
    color: var(--s2-ink);
}

.shop-002-page .comment-count {
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .comment-item {
    display: flex;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}

.shop-002-page .comment-body {
    flex: 1;
    min-width: 0;
}

.shop-002-page .comment-avatar {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--s2-sunken);
    color: var(--s2-ink);
    font-family: var(--s2-ff-med);
}

.shop-002-page .comment-bubble {
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-md);
    background: var(--s2-canvas);
}

.shop-002-page .comment-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    margin-bottom: var(--space-1);
}

.shop-002-page .comment-name {
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    color: var(--s2-ink);
}

.shop-002-page .comment-date {
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .comment-text {
    margin: 0;
    font-size: var(--fs-body-sm);
    line-height: var(--lh-body);
    color: var(--s2-body);
}

.shop-002-page .comment-actions {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-2);
}

.shop-002-page .comment-vote {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    min-height: 32px;
    padding-inline: var(--space-2);
    border: 0;
    border-radius: var(--s2-r-sm);
    background: transparent;
    color: var(--s2-muted);
    font-size: var(--fs-caption);
    cursor: pointer;
}

.shop-002-page .comment-vote:hover {
    background: var(--s2-sunken);
    color: var(--s2-ink);
}

.shop-002-page .comment-reply {
    padding-inline-start: var(--space-7);
}

.shop-002-page .no-comments {
    color: var(--s2-muted);
    font-size: var(--fs-body-sm);
}

.shop-002-page .blog-comment-form {
    margin-top: var(--space-6);
}

.shop-002-page .blog-comment-form h3 {
    margin: 0 0 var(--space-4);
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-h3);
    color: var(--s2-ink);
}

.shop-002-page .blog-comment-form label {
    display: block;
    margin-bottom: var(--space-1);
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
}

.shop-002-page .cf-req {
    color: var(--s2-sale);
}

.shop-002-page .cf-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-4);
    margin-bottom: var(--space-4);
}

@media (min-width: 640px) {
    .shop-002-page .cf-row {
        grid-template-columns: 1fr 1fr;
    }
}

.shop-002-page .cf-input {
    width: 100%;
    min-height: var(--s2-input-h);
    margin-bottom: var(--space-4);
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff);
    font-size: var(--fs-body-sm);
}

.shop-002-page .cf-row .cf-input {
    margin-bottom: 0;
}

.shop-002-page textarea.cf-input {
    min-height: 120px;
    resize: vertical;
    line-height: var(--lh-body);
}

.shop-002-page .cf-input:focus-visible {
    outline: 0;
    border-color: var(--s2-ink);
    box-shadow: var(--s2-focus-ring);
}

.shop-002-page .cf-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
}

.shop-002-page .btn-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--s2-btn-h);
    padding-inline: var(--space-5);
    border: 0;
    border-radius: var(--s2-r-md);
    background: var(--s2-buy);
    color: var(--s2-buy-ink);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    cursor: pointer;
    transition: background-color var(--dur) var(--ease);
}

.shop-002-page .btn-submit:hover {
    background: var(--s2-buy-hover);
}

.shop-002-page .comment-notice {
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .blog-sidebar {
    min-width: 0;
}

.shop-002-page .blog-sidebar .widget {
    padding: var(--space-4);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
}

@media (min-width: 1024px) {
    .shop-002-page .blog-sidebar .widget-sticky {
        position: sticky;
        top: var(--space-4);
    }
}

.shop-002-page .blog-sidebar .widget-title {
    display: block;
    margin-bottom: var(--space-3);
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--s2-hairline);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
    color: var(--s2-ink);
}

.shop-002-page .blog-related-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.shop-002-page .blog-related-list li+li {
    margin-top: var(--space-2);
}

.shop-002-page .blog-related-list a {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2);
    border-radius: var(--s2-r-sm);
    color: inherit;
    text-decoration: none;
    transition: background-color var(--dur-fast) var(--ease);
}

.shop-002-page .blog-related-list a:hover {
    background: var(--s2-sunken);
}

.shop-002-page .blog-related-list img,
.shop-002-page .blog-related-list picture {
    width: 64px;
    height: 64px;
    flex-shrink: 0;
    border-radius: var(--s2-r-sm);
    object-fit: cover;
    background: var(--s2-sunken);
}

.shop-002-page .related-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: var(--fs-body-sm);
    line-height: 1.6;
    color: var(--s2-ink);
}

.shop-002-page .related-date {
    display: block;
    margin-top: 2px;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .blog-see-all {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    margin-top: var(--space-3);
    color: var(--s2-ink);
    font-size: var(--fs-body-sm);
    text-decoration: none;
    border-bottom: 1px solid var(--s2-hairline-strong);
}

.shop-002-page .blog-see-all:hover {
    border-bottom-color: var(--s2-ink);
}

.shop-002-page .product-detail-page {
    padding-block: var(--space-5) var(--space-10);
}

.shop-002-page .product-detail-main {
    padding: var(--space-5);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-xl);
    background: var(--s2-surface);
}

.shop-002-page .product-detail-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6);
    align-items: start;
}

@media (min-width: 1024px) {
    .shop-002-page .product-detail-grid {
        grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    }
}

.shop-002-page .product-detail-gallery-col,
.shop-002-page .product-detail-info-col {
    min-width: 0;
}

.shop-002-page .product-gallery {
    display: grid;
    gap: var(--space-3);
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
    .shop-002-page .product-gallery {
        grid-template-columns: 72px minmax(0, 1fr);
    }

    .shop-002-page .product-gallery.no-thumbs {
        grid-template-columns: minmax(0, 1fr);
    }
}

.shop-002-page .gallery-thumbs {
    display: flex;
    gap: var(--space-2);
    overflow-x: auto;
    scrollbar-width: none;
    order: 2;
}

.shop-002-page .gallery-thumbs::-webkit-scrollbar {
    display: none;
}

@media (min-width: 640px) {
    .shop-002-page .gallery-thumbs {
        flex-direction: column;
        overflow-x: visible;
        overflow-y: auto;
        max-height: 460px;
        order: 0;
    }
}

.shop-002-page .gallery-thumb {
    position: relative;
    width: 64px;
    height: 64px;
    flex-shrink: 0;
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-sm);
    background: var(--s2-sunken);
    overflow: hidden;
    cursor: pointer;
    transition: border-color var(--dur-fast) var(--ease);
}

.shop-002-page .gallery-thumb:hover {
    border-color: var(--s2-hairline-strong);
}

.shop-002-page .gallery-thumb.active {
    border-color: var(--s2-ink);
}

.shop-002-page .gallery-thumb picture {
    display: block;
    width: 100%;
    height: 100%;
}

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

.shop-002-page .gt-play {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    background: rgba(28, 25, 23, .45);
    color: #fff;
    font-size: .8rem;
}

.shop-002-page .gallery-main {
    position: relative;
    aspect-ratio: 1 / 1;
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-sunken);
    overflow: hidden;
}

.shop-002-page .gallery-main img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.shop-002-page .gallery-zoom-btn {
    position: absolute;
    inset-inline-end: var(--space-3);
    bottom: var(--space-3);
    display: grid;
    place-items: center;
    width: var(--s2-hit);
    height: var(--s2-hit);
    border: 1px solid var(--s2-hairline);
    border-radius: 50%;
    background: rgba(255, 255, 255, .92);
    color: var(--s2-ink);
    cursor: pointer;
}

.shop-002-page .gallery-zoom-btn:hover {
    background: #fff;
}

.shop-002-page .gallery-oos {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    background: rgba(250, 250, 249, .78);
}

.shop-002-page .gallery-oos span {
    padding: var(--space-2) var(--space-5);
    border-radius: var(--s2-r-pill);
    background: var(--s2-muted);
    color: #fff;
    font-size: var(--fs-body-sm);
}

.shop-002-page .product-info-panel {
    display: grid;
    gap: var(--space-3);
    align-content: start;
}

.shop-002-page .product-detail-badge {
    justify-self: start;
    padding: 2px var(--space-3);
    border-radius: var(--s2-r-pill);
    background: var(--s2-sunken);
    color: var(--s2-body);
    font-size: var(--fs-caption);
}

.shop-002-page .product-detail-title {
    margin: 0;
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-h1);
    line-height: var(--lh-heading);
    color: var(--s2-ink);
}

.shop-002-page .product-detail-name-en {
    margin: 0;
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .product-detail-code {
    margin: 0;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .product-detail-stars {
    display: flex;
    align-items: center;
    gap: var(--space-1);
}

.shop-002-page .product-detail-stars .star-filled {
    color: var(--s2-star);
}

.shop-002-page .product-detail-stars .star-empty {
    color: var(--s2-hairline-strong);
}

.shop-002-page .rating-text {
    margin-inline-start: var(--space-1);
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .product-detail-variants {
    display: grid;
    gap: var(--space-2);
}

.shop-002-page .variant-label {
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .variant-label strong {
    color: var(--s2-ink);
    font-family: var(--s2-ff-med);
}

.shop-002-page .color-picker,
.shop-002-page .size-picker {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

/* روی موبایل سایزها عرضِ متفاوت دارند («۳۸» کنارِ «۴۵.۱/۳») و سطرها دندانه‌دار
   می‌شوند و آخرین سایز تنها می‌افتد. شبکه‌ی هم‌عرض صافش می‌کند. */
@media (max-width: 767.98px) {
    .shop-002-page .size-picker {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(76px, 1fr));
    }

    .shop-002-page .size-option {
        justify-content: center;
        text-align: center;
    }
}

.shop-002-page .color-option {
    width: 32px;
    height: 32px;
    border: 1px solid var(--s2-hairline-strong);
    border-radius: 50%;
    cursor: pointer;
    box-shadow: inset 0 0 0 2px #fff;
    transition: box-shadow var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}

.shop-002-page .color-option:hover {
    border-color: var(--s2-muted);
}

.shop-002-page .color-option.selected {
    border-color: var(--s2-ink);
    box-shadow: inset 0 0 0 2px #fff, 0 0 0 2px var(--s2-ink);
}

.shop-002-page .color-option:focus-visible {
    outline: 2px solid var(--s2-ink);
    outline-offset: 2px;
}

.shop-002-page .size-option,
.shop-002-page .guarantee-option {
    min-height: 38px;
    padding-inline: var(--space-4);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-body);
    font-family: var(--s2-ff);
    font-size: var(--fs-body-sm);
    cursor: pointer;
    transition: border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.shop-002-page .size-option:hover,
.shop-002-page .guarantee-option:hover {
    border-color: var(--s2-ink);
    color: var(--s2-ink);
}

.shop-002-page .size-option.selected,
.shop-002-page .guarantee-option.selected {
    background: var(--s2-ink);
    border-color: var(--s2-ink);
    color: #fff;
}

.shop-002-page .size-option:disabled,
.shop-002-page .guarantee-option:disabled {
    color: var(--s2-muted, #9a9a9a);
    border-color: var(--s2-hairline, #e6e6e6);
    background: var(--s2-surface-2, #f7f7f7);
    text-decoration: line-through;
    cursor: not-allowed;
    opacity: 0.65;
}

.shop-002-page .size-option:disabled:hover,
.shop-002-page .guarantee-option:disabled:hover {
    border-color: var(--s2-hairline, #e6e6e6);
    color: var(--s2-muted, #9a9a9a);
}

.shop-002-page .size-option.unavailable,
.shop-002-page .guarantee-option.unavailable {
    opacity: 0.4;
}

.shop-002-page .color-option:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.shop-002-page .product-detail-price-box {
    display: grid;
    gap: var(--space-1);
    padding: var(--space-4);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-sunken);
}

.shop-002-page .detail-price-label {
    margin: 0;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .detail-price-note {
    margin: 0;
    font-size: var(--fs-body);
    color: var(--s2-body);
}

.shop-002-page .detail-price-main {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--space-2);
}

.shop-002-page .detail-price-current {
    font-family: var(--s2-ff-black);
    font-size: var(--fs-h2);
    color: var(--s2-ink);
    font-variant-numeric: tabular-nums;
}

.shop-002-page .detail-price-unit {
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .detail-price-old {
    color: var(--s2-muted);
    font-size: var(--fs-body-sm);
    text-decoration: line-through;
}

.shop-002-page .detail-price-discount {
    padding: 2px var(--space-2);
    border-radius: var(--s2-r-pill);
    background: var(--s2-sale);
    color: #fff;
    /* 8.16:1 */
    font-size: var(--fs-caption);
}

.shop-002-page .pd-offer-timer {
    padding: var(--space-3) var(--space-4);
    border-radius: var(--s2-r-lg);
    background: var(--s2-ink);
    color: #fff;
}

.shop-002-page .pd-offer-label {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-2);
    font-size: var(--fs-caption);
    color: rgba(255, 255, 255, .82);
}

.shop-002-page .pd-offer-label i {
    color: var(--s2-buy);
}

.shop-002-page .pd-offer-boxes {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-1);
}

.shop-002-page .pd-offer-box {
    display: grid;
    justify-items: center;
    gap: 2px;
    min-width: 48px;
    padding: var(--space-2) var(--space-1);
    border-radius: var(--s2-r-sm);
    background: rgba(255, 255, 255, .10);
}

.shop-002-page .pd-offer-num {
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body-lg);
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
}

.shop-002-page .pd-offer-lbl {
    font-size: var(--fs-caption);
    color: rgba(255, 255, 255, .62);
}

.shop-002-page .pd-offer-sep {
    color: rgba(255, 255, 255, .35);
}

.shop-002-page .product-add-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-2);
}

.shop-002-page .qty-control {
    display: flex;
    align-items: center;
    height: var(--s2-btn-h);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    overflow: hidden;
}

.shop-002-page .qty-control button {
    width: 40px;
    height: 100%;
    border: 0;
    background: transparent;
    color: var(--s2-body);
    cursor: pointer;
}

.shop-002-page .qty-control button:hover {
    background: var(--s2-sunken);
    color: var(--s2-ink);
}

.shop-002-page .qty-control input {
    width: 44px;
    height: 100%;
    border: 0;
    border-inline: 1px solid var(--s2-hairline);
    background: transparent;
    color: var(--s2-ink);
    font-family: var(--s2-ff-med);
    text-align: center;
    -moz-appearance: textfield;
}

.shop-002-page .qty-control input::-webkit-outer-spin-button,
.shop-002-page .qty-control input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.shop-002-page .add-to-cart-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    flex: 1;
    min-width: 200px;
    min-height: var(--s2-btn-h);
    padding-inline: var(--space-5);
    border: 0;
    border-radius: var(--s2-r-md);
    background: var(--s2-buy);
    color: var(--s2-buy-ink);
    /* 5.05:1 */
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--dur) var(--ease);
}

.shop-002-page .add-to-cart-btn:hover {
    background: var(--s2-buy-hover);
}

.shop-002-page .add-to-cart-btn:disabled {
    background: var(--s2-sunken);
    color: var(--s2-muted);
    cursor: not-allowed;
}

.shop-002-page .add-to-cart-btn.unavailable,
.shop-002-page .add-to-cart-btn.out-of-stock {
    background: var(--s2-sunken);
    color: var(--s2-muted);
    cursor: not-allowed;
}

.shop-002-page .add-to-cart-btn--call {
    background: var(--s2-success);
    color: #fff;
}

.shop-002-page .add-to-cart-btn--call:hover {
    background: #116631;
}

.shop-002-page .wishlist-btn {
    display: grid;
    place-items: center;
    width: var(--s2-btn-h);
    height: var(--s2-btn-h);
    flex-shrink: 0;
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-body);
    cursor: pointer;
    transition: border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.shop-002-page .wishlist-btn:hover {
    border-color: var(--s2-ink);
    color: var(--s2-ink);
}

.shop-002-page .wishlist-btn.is-fav {
    border-color: var(--s2-danger);
    color: var(--s2-danger);
}

.shop-002-page .notify-me-box {
    display: grid;
    gap: var(--space-3);
    padding: var(--space-4);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-sunken);
}

.shop-002-page .nm-head {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
}

.shop-002-page .nm-head>i {
    font-size: 1.25rem;
    color: var(--s2-buy);
}

.shop-002-page .nm-head b {
    display: block;
    font-size: var(--fs-body);
    color: var(--s2-ink);
}

.shop-002-page .nm-head span {
    display: block;
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .nm-form {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.shop-002-page .nm-input {
    flex: 1;
    min-width: 160px;
    height: var(--s2-input-h);
    padding-inline: var(--space-3);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff);
    font-size: var(--fs-body-sm);
}

.shop-002-page .nm-input:focus-visible {
    outline: 0;
    border-color: var(--s2-ink);
    box-shadow: var(--s2-focus-ring);
}

.shop-002-page .nm-btn {
    min-height: var(--s2-input-h);
    padding-inline: var(--space-4);
    border: 0;
    border-radius: var(--s2-r-md);
    background: var(--s2-ink);
    color: #fff;
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    cursor: pointer;
}

.shop-002-page .nm-btn:hover {
    background: var(--color-primary-500);
}

.shop-002-page .nm-msg {
    font-size: var(--fs-body-sm);
    color: var(--s2-success);
}

.shop-002-page .product-meta-list {
    display: grid;
    gap: var(--space-2);
    margin: 0;
    padding: var(--space-4) 0 0;
    border-top: 1px solid var(--s2-hairline);
    list-style: none;
    font-size: var(--fs-body-sm);
}

.shop-002-page .product-meta-list li {
    display: flex;
    gap: var(--space-2);
    color: var(--s2-body);
}

.shop-002-page .product-meta-list strong {
    min-width: 84px;
    color: var(--s2-muted);
    font-family: var(--s2-ff);
}

.shop-002-page .product-meta-list a {
    color: var(--s2-ink);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.shop-002-page .text-danger {
    color: var(--s2-danger);
}

.shop-002-page .text-success {
    color: var(--s2-success);
}

.shop-002-page .product-detail-summary {
    margin: 0;
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    color: var(--s2-body);

    white-space: pre-line;
}

.shop-002-page .delivery-info-box {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
}

.shop-002-page .delivery-info-box i {
    color: var(--s2-success);
    font-size: 1.15rem;
}

.shop-002-page .delivery-info-box p {
    margin: 0;
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
}

.shop-002-page .product-tabs {
    margin-top: var(--space-6);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-xl);
    background: var(--s2-surface);
    overflow: hidden;
}

.shop-002-page .product-tabs-header {
    display: flex;
    gap: var(--space-1);
    padding-inline: var(--space-3);
    border-bottom: 1px solid var(--s2-hairline);
    overflow-x: auto;
    scrollbar-width: none;
}

.shop-002-page .product-tabs-header::-webkit-scrollbar {
    display: none;
}

.shop-002-page .product-tab-btn {
    position: relative;
    flex-shrink: 0;
    min-height: 52px;
    padding-inline: var(--space-4);
    border: 0;
    background: transparent;
    color: var(--s2-muted);
    font-family: var(--s2-ff);
    font-size: var(--fs-body);
    cursor: pointer;
}

.shop-002-page .product-tab-btn:hover {
    color: var(--s2-ink);
}

.shop-002-page .product-tab-btn.active {
    color: var(--s2-ink);
    font-family: var(--s2-ff-med);
}

.shop-002-page .product-tab-btn.active::after {
    content: "";
    position: absolute;
    inset-inline: var(--space-3);
    bottom: -1px;
    height: 2px;
    background: var(--s2-ink);
}

.shop-002-page .tab-count {
    margin-inline-start: var(--space-1);
    padding: 1px var(--space-2);
    border-radius: var(--s2-r-pill);
    background: var(--s2-sunken);
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .product-tab-content {
    display: none;
    padding: var(--space-5);
}

.shop-002-page .product-tab-content.active {
    display: block;
}

.shop-002-page .product-tab-content>div,
.shop-002-page .product-tab-content>p {
    max-width: 72ch;
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    color: var(--s2-body);
}

.shop-002-page .product-tab-content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--s2-r-md);
}

.shop-002-page .specs-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--fs-body-sm);
}

.shop-002-page .specs-table th,
.shop-002-page .specs-table td {
    padding: var(--space-3);
    border-bottom: 1px solid var(--s2-hairline);
    text-align: start;
    vertical-align: top;
}

.shop-002-page .specs-table th {
    width: 34%;
    color: var(--s2-muted);
    font-family: var(--s2-ff);
    font-weight: normal;
}

.shop-002-page .specs-table td {
    color: var(--s2-ink);
}

.shop-002-page .specs-table tr:last-child th,
.shop-002-page .specs-table tr:last-child td {
    border-bottom: 0;
}

.shop-002-page .lightbox,
.shop-002-page .video-modal {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: var(--space-4);
    background: rgba(28, 25, 23, .88);
}

.shop-002-page .lightbox.open,
.shop-002-page .video-modal.open {
    display: flex;
}

.shop-002-page .lightbox img {
    max-width: 92vw;
    max-height: 84vh;
    border-radius: var(--s2-r-md);
}

.shop-002-page .lb-close,
.shop-002-page .lb-nav,
.shop-002-page .video-modal-close {
    position: absolute;
    display: grid;
    place-items: center;
    width: var(--s2-hit);
    height: var(--s2-hit);
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .14);
    color: #fff;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
}

.shop-002-page .lb-close:hover,
.shop-002-page .lb-nav:hover,
.shop-002-page .video-modal-close:hover {
    background: rgba(255, 255, 255, .26);
}

.shop-002-page .lb-close,
.shop-002-page .video-modal-close {
    top: var(--space-4);
    inset-inline-end: var(--space-4);
}

.shop-002-page .lb-nav {
    top: 50%;
    transform: translateY(-50%);
}

.shop-002-page .lb-prev {
    inset-inline-end: var(--space-4);
}

.shop-002-page .lb-next {
    inset-inline-start: var(--space-4);
}

.shop-002-page .lb-counter {
    position: absolute;
    bottom: var(--space-5);
    inset-inline: 0;
    text-align: center;
    color: rgba(255, 255, 255, .8);
    font-size: var(--fs-body-sm);
}

.shop-002-page .video-modal-box {
    position: relative;
    width: min(880px, 100%);
    padding: var(--space-5);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
}

.shop-002-page .video-item video {
    width: 100%;
    border-radius: var(--s2-r-md);
}

.shop-002-page .video-title {
    margin: var(--space-3) 0 0;
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
    color: var(--s2-ink);
}

.shop-002-page .faq-accordion {
    display: grid;
    gap: var(--space-2);
}

.shop-002-page .faq-item {
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-md);
    overflow: hidden;
}

.shop-002-page .faq-item.open {
    border-color: var(--s2-hairline-strong);
}

.shop-002-page .faq-question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    width: 100%;
    min-height: var(--s2-hit);
    padding: var(--space-3) var(--space-4);
    border: 0;
    background: transparent;
    color: var(--s2-ink);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    text-align: start;
    cursor: pointer;
}

.shop-002-page .faq-question:hover {
    background: var(--s2-sunken);
}

.shop-002-page .faq-icon {
    flex-shrink: 0;
    color: var(--s2-muted);
    transition: transform var(--dur) var(--ease);
}

.shop-002-page .faq-item.open .faq-icon {
    transform: rotate(180deg);
}

.shop-002-page .faq-answer {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows var(--dur) var(--ease);
}

.shop-002-page .faq-item.open .faq-answer {
    grid-template-rows: 1fr;
}

.shop-002-page .faq-answer>.faq-answer-body {
    overflow: hidden;
    padding-inline: var(--space-4);
    font-size: var(--fs-body-sm);
    line-height: var(--lh-body);
    color: var(--s2-body);
}

.shop-002-page .faq-answer-body>p {
    margin: 0;
}

.shop-002-page .faq-item.open .faq-answer>.faq-answer-body {
    padding-bottom: var(--space-4);
}

.shop-002-page .faq-asked-by {
    margin-top: var(--space-2);
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .product-ask-box {
    margin-top: var(--space-6);
    padding: var(--space-4);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-md);
    background: var(--s2-sunken);
}

.shop-002-page .product-ask-title {
    margin: 0 0 var(--space-3);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
    color: var(--s2-ink);
}

.shop-002-page .product-ask-input {
    display: block;
    width: 100%;
    min-height: 96px;
    padding: var(--space-3);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff);
    font-size: var(--fs-body-sm);
    line-height: var(--lh-body);
    resize: vertical;
}

.shop-002-page .product-ask-input::placeholder {
    color: var(--s2-muted);
}

.shop-002-page .product-ask-foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    margin-top: var(--space-3);
}

.shop-002-page .product-ask-hint {
    margin: 0;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .pc-wrap {
    display: grid;
    gap: var(--space-6);
}

.shop-002-page .pc-summary {
    display: grid;
    gap: var(--space-5);
    align-items: center;
    padding: var(--space-5);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-sunken);
}

@media (min-width: 768px) {
    .shop-002-page .pc-summary {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }
}

.shop-002-page .pc-score {
    text-align: center;
}

.shop-002-page .pc-score-value {
    font-family: var(--s2-ff-black);
    font-size: var(--fs-display);
    line-height: 1.1;
    color: var(--s2-ink);
    font-variant-numeric: tabular-nums;
}

.shop-002-page .pc-score-stars {
    display: flex;
    justify-content: center;
    gap: 2px;
    margin-block: var(--space-1);
}

.shop-002-page .pc-score-stars .star-filled {
    color: var(--s2-star);
}

.shop-002-page .pc-score-stars .star-empty {
    color: var(--s2-hairline-strong);
}

.shop-002-page .pc-score-count {
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .pc-bars {
    display: grid;
    gap: var(--space-2);
    min-width: 0;
}

.shop-002-page .pc-bar-row {
    display: grid;
    grid-template-columns: 6.5rem minmax(0, 1fr) 2rem;
    align-items: center;
    gap: var(--space-3);
}

.shop-002-page .pc-bar-label {
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
}

.shop-002-page .pc-bar-track {
    height: 6px;
    border-radius: var(--s2-r-pill);
    background: var(--s2-hairline);
    overflow: hidden;
}

.shop-002-page .pc-bar-fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--s2-star);
}

.shop-002-page .pc-bar-value {
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
    text-align: end;
    font-variant-numeric: tabular-nums;
}

.shop-002-page .pc-suggest {
    text-align: center;
}

.shop-002-page .pc-suggest-value {
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-h2);
    color: var(--s2-success);
}

.shop-002-page .pc-suggest-label {
    max-width: 12rem;
    font-size: var(--fs-caption);
    line-height: 1.7;
    color: var(--s2-muted);
}

.shop-002-page .pc-actions {
    display: flex;
}

.shop-002-page .pc-add-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--s2-btn-h);
    padding-inline: var(--space-5);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
    cursor: pointer;
    transition: border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease);
}

.shop-002-page .pc-add-btn:hover {
    border-color: var(--s2-ink);
    background: var(--s2-sunken);
}

.shop-002-page .pc-form {
    display: grid;
    gap: var(--space-4);
    padding: var(--space-5);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    box-shadow: var(--s2-sh-1);
}

.shop-002-page .pc-replying {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    border-radius: var(--s2-r-md);
    background: var(--s2-sunken);
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
}

.shop-002-page .pc-cancel-reply {
    margin-inline-start: auto;
    border: 0;
    background: transparent;
    color: var(--s2-muted);
    font-size: var(--fs-caption);
    cursor: pointer;
    text-decoration: underline;
}

.shop-002-page .pc-form-row {
    display: grid;
    gap: var(--space-3);
}

@media (min-width: 640px) {
    .shop-002-page .pc-form-row {
        grid-template-columns: 1fr 1fr;
    }
}

.shop-002-page .pc-input,
.shop-002-page .pc-textarea {
    width: 100%;
    padding: var(--space-3);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: inherit;
    font-size: var(--fs-body);
    line-height: var(--lh-body);
}

.shop-002-page .pc-input {
    height: var(--s2-input-h);
    line-height: normal;
}

.shop-002-page .pc-textarea {
    resize: vertical;
    min-height: 7rem;
}

.shop-002-page .pc-input::placeholder,
.shop-002-page .pc-textarea::placeholder {
    color: var(--s2-muted);
}

.shop-002-page .pc-input:focus-visible,
.shop-002-page .pc-textarea:focus-visible {
    outline: 0;
    border-color: var(--s2-focus);
    box-shadow: var(--s2-focus-ring);
}

.shop-002-page .pc-rates {
    display: grid;
    gap: var(--space-2);
}

.shop-002-page .pc-rate-row {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
}

.shop-002-page .pc-rate-label {
    min-width: 6.5rem;
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
}

.shop-002-page .pc-rate-stars {
    display: inline-flex;
    gap: var(--space-1);
}

.shop-002-page .pc-rate-star {
    padding: var(--space-1);
    color: var(--s2-hairline-strong);
    cursor: pointer;
    transition: color var(--dur-fast) var(--ease);
}

.shop-002-page .pc-rate-star.star-filled {
    color: var(--s2-star);
}

.shop-002-page .pc-rate-stars:hover .pc-rate-star {
    color: var(--s2-star);
}

.shop-002-page .pc-suggest-pick {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    flex-wrap: wrap;
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
}

.shop-002-page .pc-suggest-pick label {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: var(--s2-hit);
    cursor: pointer;
}

.shop-002-page .pc-suggest-pick input {
    accent-color: var(--s2-buy);
}

.shop-002-page .pc-form-actions {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
}

.shop-002-page .pc-submit {
    min-height: var(--s2-btn-h);
    padding-inline: var(--space-5);
    border: 0;
    border-radius: var(--s2-r-md);
    background: var(--s2-buy);
    color: var(--s2-buy-ink);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
    cursor: pointer;
    transition: background-color var(--dur) var(--ease);
}

.shop-002-page .pc-submit:hover {
    background: var(--s2-buy-hover);
}

.shop-002-page .pc-hint {
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .pc-msg {
    padding: var(--space-3);
    border-radius: var(--s2-r-md);
    font-size: var(--fs-body-sm);
}

.shop-002-page .pc-msg.ok {
    background: #E7F4EC;
    color: #14522B;
}

.shop-002-page .pc-msg.err {
    background: #FCE9EC;
    color: #8C1D2C;
}

.shop-002-page .pc-list {
    display: grid;
}

.shop-002-page .pc-empty {
    display: grid;
    justify-items: center;
    gap: var(--space-1);
    padding: var(--space-8) var(--space-4);
    text-align: center;
}

.shop-002-page .pc-empty>i {
    font-size: 1.75rem;
    color: var(--s2-hairline-strong);
    margin-bottom: var(--space-2);
}

.shop-002-page .pc-empty p {
    margin: 0;
    font-size: var(--fs-body);
    color: var(--s2-ink);
}

.shop-002-page .pc-empty span {
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .pc-item {
    padding-block: var(--space-5);
    border-top: 1px solid var(--s2-hairline);
}

.shop-002-page .pc-list>.pc-item:first-of-type {
    border-top: 0;
    padding-top: 0;
}

.shop-002-page .pc-item-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-3);
    flex-wrap: wrap;
    margin-bottom: var(--space-2);
}

.shop-002-page .pc-item-name {
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
    color: var(--s2-ink);
}

.shop-002-page .pc-item-date {
    margin-inline-start: var(--space-2);
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .pc-item-stars {
    display: inline-flex;
    gap: 2px;
}

.shop-002-page .pc-item-stars .star-filled {
    color: var(--s2-star);
}

.shop-002-page .pc-item-stars .star-empty {
    color: var(--s2-hairline-strong);
}

.shop-002-page .pc-item-suggest {
    display: inline-block;
    margin-bottom: var(--space-2);
    padding: 2px var(--space-3);
    border-radius: var(--s2-r-pill);
    font-size: var(--fs-caption);
}

.shop-002-page .pc-item-suggest.yes {
    background: #E7F4EC;
    color: #14522B;
}

.shop-002-page .pc-item-suggest.no {
    background: #FCE9EC;
    color: #8C1D2C;
}

.shop-002-page .pc-item-text {
    margin: 0;
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    color: var(--s2-body);
    overflow-wrap: anywhere;
}

.shop-002-page .pc-item-foot {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-2);
}

.shop-002-page .pc-like,
.shop-002-page .pc-reply {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: var(--s2-hit);
    padding-inline: var(--space-3);
    border: 0;
    border-radius: var(--s2-r-md);
    background: transparent;
    color: var(--s2-muted);
    font-family: inherit;
    font-size: var(--fs-body-sm);
    cursor: pointer;
    transition: color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease);
}

.shop-002-page .pc-like:hover,
.shop-002-page .pc-reply:hover {
    background: var(--s2-sunken);
    color: var(--s2-ink);
}

.shop-002-page .pc-like.liked {
    color: var(--s2-buy);
}

.shop-002-page .pc-replies {
    margin-top: var(--space-3);
    padding-inline-start: var(--space-4);
    border-inline-start: 2px solid var(--s2-hairline);
}

.shop-002-page .pc-item-reply {
    padding-block: var(--space-3);
    border-top: 0;
}

.shop-002-page .pc-item-reply+.pc-item-reply {
    border-top: 1px solid var(--s2-hairline);
}

.shop-002-page #btn-back-to-top {
    align-items: center;
    white-space: nowrap;
}

.shop-002-page #btn-back-to-top>i {
    font-size: 1.125em;
    line-height: 1;
}

.shop-002-page .rail-wrap {
    position: relative;
    min-width: 0;
}

.shop-002-page .rail-nav {
    position: absolute;
    top: calc(50% - var(--space-4));
    z-index: 3;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--s2-hairline-strong);
    border-radius: 50%;
    background: var(--s2-surface);
    color: var(--s2-ink);
    box-shadow: var(--s2-sh-2);
    cursor: pointer;
    transition: opacity var(--dur) var(--ease), background-color var(--dur-fast) var(--ease);
}

.shop-002-page .rail-nav:hover {
    background: var(--s2-sunken);
}

.shop-002-page .rail-nav>i {
    font-size: 1.25rem;
    line-height: 1;
}

.shop-002-page .rail-prev {
    inset-inline-start: calc(var(--space-3) * -1);
}

.shop-002-page .rail-next {
    inset-inline-end: calc(var(--space-3) * -1);
}

.shop-002-page .rail-nav:disabled {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

@media (hover: none) {
    .shop-002-page .rail-nav {
        display: none;
    }
}

.shop-002-page .page-hero {
    padding-block: var(--space-8);
    border-bottom: 1px solid var(--s2-hairline);
    background: var(--s2-sunken);
    text-align: center;
}

.shop-002-page .page-hero-title {
    margin: 0;
    font-family: var(--s2-ff-black);
    font-size: var(--fs-h1);
    line-height: var(--lh-heading);
    color: var(--s2-ink);
}

.shop-002-page .page-hero-desc {
    margin: var(--space-2) 0 0;
    font-size: var(--fs-body);
    color: var(--s2-muted);
}

.shop-002-page .static-page {
    padding-block: var(--space-8) var(--space-10);
}

.shop-002-page .static-section+.static-section {
    margin-top: var(--space-8);
}

.shop-002-page .static-sec-head {
    margin-bottom: var(--space-5);
    text-align: center;
}

.shop-002-page .static-sec-title {
    margin: 0;
    font-family: var(--s2-ff-black);
    font-size: var(--fs-h2);
    line-height: var(--lh-heading);
    color: var(--s2-ink);
}

.shop-002-page .static-sec-sub {
    margin: var(--space-2) 0 0;
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .about-intro {
    display: grid;
    gap: var(--space-6);
    align-items: center;
}

@media (min-width: 900px) {
    .shop-002-page .about-intro {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }
}

.shop-002-page .about-intro-img {
    border-radius: var(--s2-r-lg);
    background: var(--s2-sunken);
    overflow: hidden;
}

.shop-002-page .about-intro-img img {
    display: block;
    width: 100%;
    height: auto;
}

.shop-002-page .about-intro-text h2 {
    margin: 0 0 var(--space-3);
    font-family: var(--s2-ff-black);
    font-size: var(--fs-h2);
    line-height: var(--lh-heading);
    color: var(--s2-ink);
}

.shop-002-page .about-intro-text p {
    margin: 0 0 var(--space-3);
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    color: var(--s2-body);
    text-align: justify;
}

.shop-002-page .about-stats-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
}

@media (min-width: 768px) {
    .shop-002-page .about-stats-row {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.shop-002-page .about-stat-card {
    padding: var(--space-5) var(--space-3);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    text-align: center;
}

.shop-002-page .about-stat-num {
    font-family: var(--s2-ff-black);
    font-size: var(--fs-h2);
    color: var(--s2-buy);
    font-variant-numeric: tabular-nums;
}

.shop-002-page .about-stat-label {
    margin-top: var(--space-1);
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .value-grid,
.shop-002-page .team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--space-4);
}

.shop-002-page .value-card {
    padding: var(--space-5) var(--space-3);
    text-align: center;
}

.shop-002-page .value-icon {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    margin: 0 auto var(--space-3);
    border-radius: var(--s2-r-lg);
    background: var(--s2-sunken);
    font-size: 1.75rem;
    color: var(--s2-buy);
}

.shop-002-page .value-card h3 {
    margin: 0 0 var(--space-2);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-lg);
    color: var(--s2-ink);
}

.shop-002-page .value-card p {
    margin: 0;
    font-size: var(--fs-body-sm);
    line-height: var(--lh-body);
    color: var(--s2-muted);
}

.shop-002-page .team-member-card {
    padding: var(--space-5) var(--space-3);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    text-align: center;
}

.shop-002-page .team-avatar {
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    margin: 0 auto var(--space-3);
    border-radius: 50%;
    background: var(--s2-sunken);
    font-size: 1.75rem;
    color: var(--s2-muted);
}

.shop-002-page .team-name {
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
    color: var(--s2-ink);
}

.shop-002-page .team-role {
    margin-top: 2px;
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .contact-info-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--space-4);
}

.shop-002-page .contact-info-card {
    padding: var(--space-5);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    text-align: center;
}

.shop-002-page .contact-info-icon {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    margin: 0 auto var(--space-3);
    border-radius: 50%;
    background: var(--s2-sunken);
    font-size: 1.375rem;
    color: var(--s2-buy);
}

.shop-002-page .contact-info-title {
    margin: 0 0 var(--space-2);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
    color: var(--s2-ink);
}

.shop-002-page .contact-info-value {
    margin: 0;
    font-size: var(--fs-body-sm);
    line-height: var(--lh-body);
    color: var(--s2-body);
}

.shop-002-page .contact-info-value a {
    color: var(--s2-ink);
    text-decoration: none;
}

.shop-002-page .contact-info-value a:hover {
    text-decoration: underline;
}

.shop-002-page .contact-info-note {
    display: block;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .contact-layout {
    display: grid;
    gap: var(--space-5);
    align-items: start;
}

@media (min-width: 900px) {
    .shop-002-page .contact-layout {
        grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    }
}

.shop-002-page .contact-form-section,
.shop-002-page .contact-social {
    padding: var(--space-5);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
}

.shop-002-page .contact-form-section>.static-sec-head {
    text-align: start;
}

.shop-002-page .contact-submit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    margin-top: var(--space-4);
    min-height: var(--s2-btn-h);
    padding-inline: var(--space-6);
    border: 0;
    border-radius: var(--s2-r-md);
    background: var(--s2-buy);
    color: var(--s2-buy-ink);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
    cursor: pointer;
    transition: background-color var(--dur) var(--ease);
}

.shop-002-page .contact-submit-btn:hover {
    background: var(--s2-buy-hover);
}

.shop-002-page .contact-map {
    display: grid;
    place-items: center;
    gap: var(--space-2);
    height: 260px;
    margin-bottom: var(--space-4);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-sunken);
    color: var(--s2-muted);
    font-size: var(--fs-body-sm);
}

.shop-002-page .contact-map>i {
    font-size: 2rem;
    color: var(--s2-hairline-strong);
}

.shop-002-page .contact-social h3 {
    margin: 0 0 var(--space-4);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-lg);
    color: var(--s2-ink);
}

.shop-002-page .social-list {
    display: grid;
    gap: var(--space-2);
}

.shop-002-page .social-row {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-height: var(--s2-hit);
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-md);
    color: inherit;
    text-decoration: none;
    transition: border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease);
}

.shop-002-page .social-row:hover {
    border-color: var(--s2-hairline-strong);
    background: var(--s2-sunken);
}

.shop-002-page .social-icon {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--s2-sunken);
    font-size: 1.125rem;
    color: var(--s2-ink);
}

.shop-002-page .social-name {
    display: block;
    font-size: var(--fs-body-sm);
    color: var(--s2-ink);
}

.shop-002-page .social-handle {
    display: block;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
    overflow-wrap: anywhere;
}

.shop-002-page .faq-page-body {
    max-width: 860px;
    margin-inline: auto;
}

.shop-002-page .faq-search-bar {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    height: var(--s2-input-h);
    padding-inline: var(--space-4);
    margin-bottom: var(--space-4);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-pill);
    background: var(--s2-surface);
    color: var(--s2-muted);
}

.shop-002-page .faq-search-bar:focus-within {
    border-color: var(--s2-focus);
    box-shadow: var(--s2-focus-ring);
}

.shop-002-page .faq-search-bar input {
    flex: 1;
    min-width: 0;
    border: 0;
    background: transparent;
    color: var(--s2-ink);
    font-family: inherit;
    font-size: var(--fs-body);
    outline: 0;
}

.shop-002-page .faq-category-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-bottom: var(--space-5);
}

.shop-002-page .faq-tab {
    min-height: 36px;
    padding-inline: var(--space-4);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-pill);
    background: var(--s2-surface);
    color: var(--s2-body);
    font-family: inherit;
    font-size: var(--fs-body-sm);
    cursor: pointer;
    transition: border-color var(--dur-fast) var(--ease),
        background-color var(--dur-fast) var(--ease),
        color var(--dur-fast) var(--ease);
}

.shop-002-page .faq-tab:hover {
    border-color: var(--s2-ink);
}

.shop-002-page .faq-tab.active {
    border-color: var(--s2-ink);
    background: var(--s2-ink);
    color: var(--s2-surface);
}

.shop-002-page .faq-empty {
    padding: var(--space-8) var(--space-4);
    text-align: center;
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .compare-page {
    padding-block: var(--space-5) var(--space-10);
}

.shop-002-page .cmp-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    flex-wrap: wrap;
    margin-bottom: var(--space-5);
}

.shop-002-page .cmp-title {
    margin: 0;
    font-family: var(--s2-ff-black);
    font-size: var(--fs-h1);
    line-height: var(--lh-heading);
    color: var(--s2-ink);
}

.shop-002-page .cmp-add-more {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: var(--s2-hit);
    padding-inline: var(--space-4);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    color: var(--s2-ink);
    font-size: var(--fs-body-sm);
    text-decoration: none;
    transition: border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease);
}

.shop-002-page .cmp-add-more:hover {
    border-color: var(--s2-ink);
    background: var(--s2-sunken);
}

.shop-002-page .cmp-empty {
    display: grid;
    justify-items: center;
    gap: var(--space-2);
    padding: var(--space-10) var(--space-4);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    text-align: center;
}

.shop-002-page .cmp-empty>i {
    font-size: 2rem;
    color: var(--s2-hairline-strong);
}

.shop-002-page .cmp-empty p {
    margin: 0;
    font-size: var(--fs-body-lg);
    color: var(--s2-ink);
}

.shop-002-page .cmp-empty span {
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .cmp-shop-btn {
    margin-top: var(--space-3);
    min-height: var(--s2-btn-h);
    padding-inline: var(--space-6);
    display: inline-flex;
    align-items: center;
    border-radius: var(--s2-r-md);
    background: var(--s2-buy);
    color: var(--s2-buy-ink);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
    text-decoration: none;
    transition: background-color var(--dur) var(--ease);
}

.shop-002-page .cmp-shop-btn:hover {
    background: var(--s2-buy-hover);
}

.shop-002-page .cmp-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
}

.shop-002-page .cmp-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--fs-body-sm);
}

.shop-002-page .cmp-table th,
.shop-002-page .cmp-table td {
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--s2-hairline);
    color: var(--s2-body);
    text-align: center;
    vertical-align: middle;
}

.shop-002-page .cmp-table tr:last-child>* {
    border-bottom: 0;
}

.shop-002-page .cmp-table tbody tr:nth-child(even) {
    background: var(--s2-sunken);
}

.shop-002-page .cmp-row-head {
    position: sticky;
    inset-inline-start: 0;
    z-index: 1;
    min-width: 120px;
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff-med);
    text-align: start;
    white-space: nowrap;
}

.shop-002-page .cmp-table tbody tr:nth-child(even) .cmp-row-head {
    background: var(--s2-sunken);
}

.shop-002-page .cmp-table thead th {
    position: relative;
    min-width: 180px;
    background: var(--s2-surface);
    vertical-align: top;
}

.shop-002-page .cmp-table thead .cmp-row-head {
    z-index: 2;
}

.shop-002-page .cmp-product {
    display: grid;
    justify-items: center;
    gap: var(--space-2);
    color: inherit;
    text-decoration: none;
}

.shop-002-page .cmp-product picture {
    display: block;
    width: 100%;
    max-width: 140px;
}

.shop-002-page .cmp-product img {
    width: 100%;
    max-width: 140px;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: var(--s2-r-md);
    background: var(--s2-sunken);
}

.shop-002-page .cmp-product-name {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    line-height: 1.5;
    color: var(--s2-ink);
}

.shop-002-page .cmp-product:hover .cmp-product-name {
    text-decoration: underline;
}

.shop-002-page .cmp-remove {
    position: absolute;
    inset-inline-end: var(--space-2);
    top: var(--space-2);
    z-index: 1;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border: 1px solid var(--s2-hairline-strong);
    border-radius: 50%;
    background: var(--s2-surface);
    color: var(--s2-muted);
    font-size: var(--fs-body-lg);
    line-height: 1;
    cursor: pointer;
    transition: color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}

.shop-002-page .cmp-remove:hover {
    border-color: var(--s2-danger);
    color: var(--s2-danger);
}

.shop-002-page .cmp-price {
    font-family: var(--s2-ff-black);
    font-size: var(--fs-body-lg);
    color: var(--s2-price);
}

.shop-002-page .cmp-price-old {
    font-size: var(--fs-caption);
    color: var(--s2-muted);
    text-decoration: line-through;
}

.shop-002-page .cmp-yes {
    color: var(--s2-success);
}

.shop-002-page .cmp-no {
    color: var(--s2-danger);
}

.shop-002-page .cmp-none {
    color: var(--s2-muted);
}

.shop-002-page .cmp-cart-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    width: 100%;
    min-height: var(--s2-btn-h);
    padding-inline: var(--space-4);
    border: 0;
    border-radius: var(--s2-r-md);
    background: var(--s2-buy);
    color: var(--s2-buy-ink);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    cursor: pointer;
    transition: background-color var(--dur) var(--ease);
}

.shop-002-page .cmp-cart-btn:hover {
    background: var(--s2-buy-hover);
}

.shop-002-page .compare-bar {
    position: fixed;
    inset-inline: 0;
    bottom: 0;
    z-index: 120;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    padding-bottom: calc(var(--space-3) + env(safe-area-inset-bottom, 0px));
    background: var(--s2-ink);
    color: var(--s2-surface);
    box-shadow: 0 -4px 24px rgba(28, 25, 23, .18);
    animation: cb-rise var(--dur) var(--ease-out);
}

@media (max-width: 767.98px) {
    .shop-002-page .compare-bar {
        bottom: 56px;
    }
}

@keyframes cb-rise {
    from {
        transform: translateY(100%);
    }

    to {
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .shop-002-page .compare-bar {
        animation: none;
    }
}

.shop-002-page .cb-count {
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    color: rgba(255, 255, 255, .82);
}

.shop-002-page .cb-go {
    display: inline-flex;
    align-items: center;
    min-height: var(--s2-hit);
    padding-inline: var(--space-5);
    border-radius: var(--s2-r-md);
    background: var(--s2-buy);
    color: var(--s2-buy-ink);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    text-decoration: none;
    transition: background-color var(--dur) var(--ease);
}

.shop-002-page .cb-go:hover {
    background: var(--s2-buy-hover);
}

.shop-002-page .cb-clear {
    min-height: var(--s2-hit);
    padding-inline: var(--space-4);
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: var(--s2-r-md);
    background: transparent;
    color: rgba(255, 255, 255, .82);
    font-family: inherit;
    font-size: var(--fs-body-sm);
    cursor: pointer;
    transition: border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.shop-002-page .cb-clear:hover {
    border-color: #fff;
    color: #fff;
}

.shop-002-page .compare-btn.active {
    border-color: var(--s2-ink);
    background: var(--s2-ink);
    color: var(--s2-surface);
}

.shop-002-page:has(.compare-bar) {
    padding-bottom: 72px;
}

.shop-002-page .cart-qty-control button:disabled {
    opacity: var(--s2-disabled-o);
    cursor: not-allowed;
}

.shop-002-page .cart-qty-control button:disabled:hover {
    background: transparent;
}

.shop-002-page .cart-qty-note {
    display: block;
    margin-top: var(--space-1);
    font-size: var(--fs-caption);
    line-height: 1.5;
    color: var(--s2-danger);
}

.shop-002-page .auth-page-wrap {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: var(--space-8) var(--s2-gutter) var(--space-10);
    background: var(--s2-canvas);
}

.shop-002-page .auth-card {
    width: 100%;
    max-width: 460px;
    overflow: hidden;
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    box-shadow: var(--s2-sh-2);
}

.shop-002-page .auth-card-header {
    padding: var(--space-6) var(--space-6) var(--space-5);
    background: var(--color-primary-600);
    color: #fff;
    text-align: center;
}

.shop-002-page .auth-brand-logo {
    display: block;
    margin-bottom: var(--space-2);
    font-family: var(--s2-ff-black);
    font-size: var(--fs-h2);
    line-height: var(--lh-heading);
    color: #fff;
}

.shop-002-page .auth-header-title {
    margin: 0;
    font-family: var(--s2-ff);
    font-size: var(--fs-body);
    line-height: var(--lh-snug);
    color: rgba(255, 255, 255, .78);
}

.shop-002-page .auth-card-body {
    padding: var(--space-6);
}

.shop-002-page .auth-step-desc {
    margin: 0 0 var(--space-5);
    font-size: var(--fs-body-sm);
    line-height: var(--lh-body);
    color: var(--s2-muted);
    text-align: center;
}

.shop-002-page .auth-step-desc strong {
    font-family: var(--s2-ff-bold);
    color: var(--s2-ink);
}

.shop-002-page .auth-input-group {
    position: relative;
    margin-bottom: var(--space-3);
}

.shop-002-page .auth-input-icon {
    position: absolute;
    inset-inline-start: var(--space-3);
    top: 50%;
    transform: translateY(-50%);
    color: var(--s2-muted);
    font-size: 1rem;
    line-height: 1;
    pointer-events: none;
}

.shop-002-page .auth-input-group input,
.shop-002-page .captcha-row .text-box {
    width: 100%;
    height: var(--s2-input-h);
    padding-inline: var(--space-8) var(--space-3);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff);
    font-size: var(--fs-body);
    transition: border-color var(--dur-fast) var(--ease),
        box-shadow var(--dur-fast) var(--ease);
}

.shop-002-page .captcha-row .text-box {
    padding-inline: var(--space-3);
}

.shop-002-page .auth-input-group input::placeholder,
.shop-002-page .captcha-row .text-box::placeholder {
    color: var(--s2-muted);
}

.shop-002-page .auth-input-group input:focus-visible,
.shop-002-page .captcha-row .text-box:focus-visible {
    outline: none;
    border-color: var(--s2-focus);
    box-shadow: var(--s2-focus-ring);
}

.shop-002-page .auth-input-group input[readonly] {
    background: var(--s2-sunken);
    color: var(--s2-muted);
}

.shop-002-page .auth-input-group input[type="number"] {
    -moz-appearance: textfield;
}

.shop-002-page .auth-input-group input[type="number"]::-webkit-outer-spin-button,
.shop-002-page .auth-input-group input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.shop-002-page .auth-card-body .text-danger {
    display: block;
    margin: calc(var(--space-2) * -1) 0 var(--space-3);
    font-size: var(--fs-caption);
    line-height: var(--lh-snug);
    color: var(--s2-danger);
}

.shop-002-page .auth-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    width: 100%;
    min-height: var(--s2-btn-h);
    margin-top: var(--space-4);
    padding-inline: var(--space-4);
    border: 0;
    border-radius: var(--s2-r-md);
    background: var(--color-primary-500);
    color: #fff;
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body);
    line-height: 1;
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease);
}

.shop-002-page .auth-btn:hover {
    background: var(--color-primary-600);
}

.shop-002-page .auth-btn:disabled {
    opacity: var(--s2-disabled-o);
    cursor: not-allowed;
}

.shop-002-page .auth-links-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    margin-top: var(--space-4);
}

.shop-002-page .auth-links-row a {
    color: var(--s2-link);
    font-size: var(--fs-body-sm);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.shop-002-page .auth-links-row a:hover {
    color: var(--s2-body);
}

.shop-002-page .auth-home-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    margin-top: var(--space-5);
    padding-top: var(--space-4);
    border-top: 1px solid var(--s2-hairline);
    color: var(--s2-muted);
    font-size: var(--fs-body-sm);
    text-decoration: none;
}

.shop-002-page .auth-home-link:hover {
    color: var(--s2-ink);
}

.shop-002-page .auth-check-label {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: var(--space-4) 0 0;
    font-size: var(--fs-body-sm);
    line-height: var(--lh-snug);
    color: var(--s2-body);
    cursor: pointer;
}

.shop-002-page .auth-check-label input[type="checkbox"] {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    accent-color: var(--color-primary-500);
}

.shop-002-page .auth-check-label a {
    color: var(--s2-link);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.shop-002-page .captcha-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-3);
}

/* DNTCaptcha wraps image + refresh + input in one plain <div>; make that the row
   so the refresh button stays beside the image instead of dropping under it. */
.shop-002-page .captcha-row>div {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    width: 100%;
}

.shop-002-page .captcha-row img {
    flex: 0 1 auto;
    max-width: calc(100% - var(--s2-hit) - var(--space-2));
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-sm);
    background: #fff;
}
.shop-002-page .captcha-row .text-box { flex: 1 0 100%; }
/* DNTCaptcha puts the input inside <div class="input-group col-md-4">; without this
   the input is a third of the row and sits squeezed beside the image. Same shape
   as ksport: image + refresh on one line, a full-width input under them. */
.shop-002-page .captcha-row .input-group {
    flex: 1 0 100%;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
}
.shop-002-page .captcha-row .input-group .input-group-addon { display: none; }
.shop-002-page .captcha-row .text-box {
    border-width: 2px;
    border-color: var(--s2-sunken);
    background: var(--s2-sunken);
}
.shop-002-page .captcha-row .text-box:focus-visible { background: var(--s2-surface); }
.shop-002-page .captcha-row .captcha-refresh {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--s2-hit);
    height: var(--s2-hit);
    border: 0;
    border-radius: var(--s2-r-md);
    background: var(--color-primary-500);   /* same fill as the submit button */
    color: #fff;
    font-size: 1.1rem;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease);
}
.shop-002-page .captcha-row .captcha-refresh:hover { background: var(--color-primary-600); color: #fff; }
.shop-002-page .captcha-row .text-danger { flex-basis: 100%; }

.shop-002-page .timerLogin {
    margin-top: var(--space-3);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
    color: var(--s2-ink);
    text-align: center;
}

.shop-002-page .timerLogin:empty {
    display: none;
}

.shop-002-page .auth-resend-row {
    display: flex;
    justify-content: center;
    margin-top: var(--space-3);
}

.shop-002-page #retrieve-code {
    min-height: var(--s2-hit);
    padding-inline: var(--space-5);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease);
}

.shop-002-page #retrieve-code:hover {
    background: var(--s2-sunken);
}

.shop-002-page .d-none {
    display: none;
}

@media (max-width: 575px) {
    .shop-002-page .auth-card-header {
        padding: var(--space-5) var(--space-4);
    }

    .shop-002-page .auth-card-body {
        padding: var(--space-5) var(--space-4);
    }

    .shop-002-page .auth-links-row {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
    }
}

.shop-002-page .auction-page {
    padding-block: var(--space-6) var(--space-10);
    background: var(--s2-canvas);
}

.shop-002-page .auction-head {
    margin-bottom: var(--space-6);
}

.shop-002-page .auction-head h1 {
    margin: 0 0 var(--space-2);
    font-family: var(--s2-ff-black);
    font-size: var(--fs-h1);
    line-height: var(--lh-heading);
    color: var(--s2-ink);
}

.shop-002-page .auction-head p {
    margin: 0;
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    color: var(--s2-muted);
}

.shop-002-page .auction-head span {
    color: var(--s2-ink);
}

.shop-002-page .auction-empty {
    padding: var(--space-9) var(--space-5);
    border: 1px dashed var(--s2-hairline-strong);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    color: var(--s2-muted);
    font-size: var(--fs-body);
    text-align: center;
}

.shop-002-page .auction-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(var(--s2-card-min), 1fr));
    gap: var(--s2-gutter);
}

.shop-002-page .auction-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    color: inherit;
    text-decoration: none;
    transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.shop-002-page .auction-card:hover {
    border-color: var(--s2-hairline-strong);
    box-shadow: var(--s2-sh-2);
}

.shop-002-page .auction-card-media {
    position: relative;
    aspect-ratio: 1 / 1;
    background: var(--s2-sunken);
}

.shop-002-page .auction-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.shop-002-page .auction-chip {
    position: absolute;
    inset-block-start: var(--space-2);
    inset-inline-start: var(--space-2);
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 4px var(--space-2);
    border-radius: var(--s2-r-pill);
    background: var(--s2-buy);
    color: #fff;
    font-family: var(--s2-ff-med);
    font-size: var(--fs-caption);
    line-height: 1.6;
}

.shop-002-page .auction-chip--soon {
    background: var(--color-primary-500);
}

.shop-002-page .auction-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-3);
}

.shop-002-page .auction-card-title {
    margin: 0;
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    line-height: var(--lh-snug);
    color: var(--s2-ink);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.shop-002-page .auction-card-price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--space-1);
    margin-top: auto;
}

.shop-002-page .auction-card-price .js-price-label {
    flex-basis: 100%;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .auction-card-price strong {
    font-family: var(--s2-ff-black);
    font-size: var(--fs-body-lg);
    color: var(--s2-price);
}

.shop-002-page .auction-card-price em {
    font-style: normal;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .auction-card-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    padding-top: var(--space-2);
    border-top: 1px solid var(--s2-hairline);
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .auction-countdown {
    font-family: var(--s2-ff-med);
    color: var(--s2-ink);
    font-variant-numeric: tabular-nums;
    direction: ltr;
}

.shop-002-page .auction-pager {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-2);
    margin-top: var(--space-7);
}

.shop-002-page .auction-pager-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-1);
    min-width: var(--s2-hit);
    min-height: var(--s2-hit);
    padding-inline: var(--space-3);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-size: var(--fs-body-sm);
    text-decoration: none;
}

.shop-002-page .auction-pager-btn:hover {
    background: var(--s2-sunken);
}

.shop-002-page .auction-pager-btn.is-active {
    border-color: var(--s2-ink);
    background: var(--s2-ink);
    color: var(--s2-surface);
}

.shop-002-page .auction-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-5);
    align-items: start;
}

@media (min-width: 992px) {
    .shop-002-page .auction-layout {
        grid-template-columns: minmax(0, 1fr) 400px;
    }

    .shop-002-page .auction-panel {
        position: sticky;
        top: var(--space-4);
    }
}

.shop-002-page .auction-media {
    min-width: 0;
}

.shop-002-page .auction-gallery {
    padding: var(--space-3);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
}

.shop-002-page .auction-gallery-main {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: var(--s2-r-md);
    background: var(--s2-sunken);
}

.shop-002-page .auction-gallery-main img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.shop-002-page .auction-gallery-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    font-size: 2.5rem;
    color: var(--s2-hairline-strong);
}

.shop-002-page .auction-gallery-thumbs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-3);
}

.shop-002-page .auction-thumb {
    width: 64px;
    height: 64px;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-sm);
    background: var(--s2-surface);
    cursor: pointer;
}

.shop-002-page .auction-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.shop-002-page .auction-thumb.is-active {
    border-color: var(--s2-ink);
    border-width: 2px;
}

.shop-002-page .auction-idcard {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-4);
}

.shop-002-page .auction-idcard-item {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-pill);
    background: var(--s2-surface);
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .auction-idcard-item b {
    color: var(--s2-ink);
    font-family: var(--s2-ff-med);
}

.shop-002-page .auction-trust {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--space-2);
    margin-top: var(--space-4);
}

.shop-002-page .auction-trust-item {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
}

.shop-002-page .auction-trust-item i {
    color: var(--s2-muted);
}

.shop-002-page .auction-product-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-4);
    font-size: var(--fs-body-sm);
    color: var(--s2-link);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.shop-002-page .auction-share {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-4);
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .auction-share-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--s2-hit);
    height: var(--s2-hit);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    cursor: pointer;
    text-decoration: none;
}

.shop-002-page .auction-share-btn:hover {
    background: var(--s2-sunken);
}

.shop-002-page .auction-panel {
    padding: var(--space-5);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    box-shadow: var(--s2-sh-2);
}

.shop-002-page .auction-panel h1 {
    margin: 0 0 var(--space-4);
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-h2);
    line-height: var(--lh-heading);
    color: var(--s2-ink);
}

.shop-002-page .auction-hero-price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--space-2);
    padding: var(--space-4);
    border-radius: var(--s2-r-md);
    background: var(--s2-sunken);
}

.shop-002-page .auction-hero-price .lbl {
    flex-basis: 100%;
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .auction-hero-price .val {
    font-family: var(--s2-ff-black);
    font-size: var(--fs-h1);
    line-height: 1.2;
    color: var(--s2-ink);
    font-variant-numeric: tabular-nums;
}

.shop-002-page .auction-hero-price .cur {
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .auction-clock {
    margin-top: var(--space-4);
    padding: var(--space-4);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-md);
    text-align: center;
}

.shop-002-page .auction-clock .lbl {
    margin-bottom: var(--space-3);
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .auction-clock-boxes {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-2);
    direction: ltr;
}

.shop-002-page .auction-clock-box {
    padding: var(--space-2) 0;
    border-radius: var(--s2-r-sm);
    background: var(--s2-sunken);
}

.shop-002-page .auction-clock-box b {
    display: block;
    font-family: var(--s2-ff-black);
    font-size: var(--fs-h3);
    line-height: 1.3;
    color: var(--s2-ink);
    font-variant-numeric: tabular-nums;
}

.shop-002-page .auction-clock-box span {
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .auction-clock--soon {
    border-color: var(--s2-hairline-strong);
    background: var(--s2-sunken);
}

.shop-002-page .auction-clock--soon .auction-clock-box {
    background: var(--s2-surface);
}

.shop-002-page .auction-extended {
    margin-top: var(--space-3);
    font-size: var(--fs-body-sm);
    color: var(--s2-buy);
}

.shop-002-page .auction-extended[hidden] {
    display: none;
}

.shop-002-page .auction-facts {
    margin: var(--space-4) 0 0;
    padding: 0;
    list-style: none;
}

.shop-002-page .auction-facts li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--s2-hairline);
    font-size: var(--fs-body-sm);
}

.shop-002-page .auction-facts li:last-child {
    border-bottom: 0;
}

.shop-002-page .auction-facts span {
    color: var(--s2-muted);
}

.shop-002-page .auction-facts strong {
    font-family: var(--s2-ff-med);
    color: var(--s2-ink);
}

.shop-002-page .auction-note {
    margin-top: var(--space-4);
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--s2-hairline-strong);
    border-inline-start: 3px solid var(--s2-muted);
    border-radius: var(--s2-r-md);
    background: var(--s2-sunken);
    font-size: var(--fs-body-sm);
    line-height: var(--lh-body);
    color: var(--s2-body);
}

.shop-002-page .auction-note strong {
    display: block;
    color: var(--s2-ink);
    font-family: var(--s2-ff-bold);
}

.shop-002-page .auction-note small {
    display: block;
    margin-top: var(--space-1);
    color: var(--s2-muted);
}

.shop-002-page .auction-note--warn {
    border-inline-start-color: var(--s2-warning);
}

.shop-002-page .auction-note--info {
    border-inline-start-color: var(--color-primary-500);
}

.shop-002-page .auction-note--success {
    border-inline-start-color: var(--s2-success);
}

.shop-002-page .auction-note--muted {
    border-inline-start-color: var(--s2-hairline-strong);
    color: var(--s2-muted);
}

.shop-002-page .auction-bid-box {
    margin-top: var(--space-4);
}

.shop-002-page .auction-bid-box label {
    display: block;
    margin-bottom: var(--space-2);
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
}

.shop-002-page .auction-bid-input {
    width: 100%;
    height: 52px;
    padding-inline: var(--space-4);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-h3);
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.shop-002-page .auction-bid-input:focus-visible {
    outline: none;
    border-color: var(--s2-focus);
    box-shadow: var(--s2-focus-ring);
}

.shop-002-page .auction-hint {
    margin-top: var(--space-2);
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .auction-hint b {
    color: var(--s2-ink);
}

.shop-002-page .auction-badge-lead {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-3);
    padding: var(--space-2) var(--space-3);
    border-radius: var(--s2-r-md);
    background: var(--s2-success);
    color: #fff;
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
}

.shop-002-page .auction-badge-lead[hidden] {
    display: none;
}

.shop-002-page .auction-proxy {
    margin-top: var(--space-3);
    padding: var(--space-3);
    border-radius: var(--s2-r-md);
    background: var(--s2-sunken);
}

.shop-002-page .auction-proxy label {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0;
    cursor: pointer;
    color: var(--s2-ink);
}

.shop-002-page .auction-proxy input[type="checkbox"] {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    accent-color: var(--color-primary-500);
}

.shop-002-page .auction-proxy p {
    margin: var(--space-2) 0 0;
    font-size: var(--fs-caption);
    line-height: var(--lh-body);
    color: var(--s2-muted);
}

.shop-002-page .auction-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    width: 100%;
    min-height: var(--s2-btn-h);
    margin-top: var(--space-4);
    padding-inline: var(--space-4);
    border: 1px solid transparent;
    border-radius: var(--s2-r-md);
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body);
    line-height: 1;
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease);
}

.shop-002-page .auction-btn--primary {
    background: var(--s2-buy);
    color: var(--s2-buy-ink);
}

.shop-002-page .auction-btn--primary:hover {
    background: var(--s2-buy-hover);
}

.shop-002-page .auction-btn--buynow {
    background: var(--s2-surface);
    border-color: var(--s2-hairline-strong);
    color: var(--s2-ink);
}

.shop-002-page .auction-btn--buynow:hover {
    background: var(--s2-sunken);
}

.shop-002-page .auction-btn:disabled {
    opacity: var(--s2-disabled-o);
    cursor: not-allowed;
}

.shop-002-page .auction-details-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-5);
    margin-top: var(--space-6);
}

@media (min-width: 992px) {
    .shop-002-page .auction-details-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.shop-002-page .auction-section {
    margin-top: var(--space-5);
    padding: var(--space-5);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
}

.shop-002-page .auction-details-grid .auction-section {
    margin-top: 0;
}

.shop-002-page .auction-section>h2 {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0 0 var(--space-4);
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-h3);
    line-height: var(--lh-heading);
    color: var(--s2-ink);
}

.shop-002-page .auction-section>h2 i {
    color: var(--s2-muted);
    font-size: .9em;
}

.shop-002-page .auction-desc {
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    color: var(--s2-body);
}

.shop-002-page .auction-desc img {
    max-width: 100%;
    height: auto;
    border-radius: var(--s2-r-md);
}

.shop-002-page .auction-specs,
.shop-002-page .auction-bids {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--fs-body-sm);
}

.shop-002-page .auction-specs th,
.shop-002-page .auction-specs td,
.shop-002-page .auction-bids th,
.shop-002-page .auction-bids td {
    padding: var(--space-3);
    border-bottom: 1px solid var(--s2-hairline);
    text-align: right;
}

.shop-002-page .auction-specs th {
    width: 40%;
    color: var(--s2-muted);
    font-family: var(--s2-ff);
    font-weight: normal;
}

.shop-002-page .auction-specs td {
    color: var(--s2-ink);
}

.shop-002-page .auction-bids thead th {
    background: var(--s2-sunken);
    color: var(--s2-muted);
    font-family: var(--s2-ff-med);
    font-weight: normal;
}

.shop-002-page .auction-bids .amount {
    font-family: var(--s2-ff-bold);
    color: var(--s2-ink);
    font-variant-numeric: tabular-nums;
}

.shop-002-page .auction-bids .time {
    color: var(--s2-muted);
    font-size: var(--fs-caption);
}

.shop-002-page .auction-bids tr.is-lead td {
    background: rgba(21, 128, 61, .06);
}

.shop-002-page .auction-tag {
    display: inline-block;
    margin-inline-start: var(--space-1);
    padding: 2px var(--space-2);
    border-radius: var(--s2-r-pill);
    background: var(--s2-sunken);
    color: var(--s2-muted);
    font-size: var(--fs-caption);
}

.shop-002-page .auction-videos {
    display: grid;
    gap: var(--space-4);
}

.shop-002-page .auction-video-item h3 {
    margin: 0 0 var(--space-2);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
    color: var(--s2-ink);
}

.shop-002-page .auction-video-item video,
.shop-002-page .auction-video-item iframe {
    width: 100%;
    aspect-ratio: 16 / 9;
    border: 0;
    border-radius: var(--s2-r-md);
    background: var(--s2-sunken);
}

.shop-002-page .auction-proscons {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--space-4);
}

.shop-002-page .auction-pros h3,
.shop-002-page .auction-cons h3 {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0 0 var(--space-2);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
}

.shop-002-page .auction-pros h3 {
    color: var(--s2-success);
}

.shop-002-page .auction-cons h3 {
    color: var(--s2-danger);
}

.shop-002-page .auction-pros ul,
.shop-002-page .auction-cons ul {
    margin: 0;
    padding-inline-start: var(--space-4);
    font-size: var(--fs-body-sm);
    line-height: var(--lh-body);
    color: var(--s2-body);
}

.shop-002-page .auction-how {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--space-4);
}

.shop-002-page .auction-how-step {
    display: flex;
    gap: var(--space-3);
}

.shop-002-page .auction-how-num {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--s2-ink);
    color: var(--s2-surface);
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body-sm);
}

.shop-002-page .auction-how-step b {
    display: block;
    margin-bottom: var(--space-1);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body);
    color: var(--s2-ink);
}

.shop-002-page .auction-how-step p {
    margin: 0;
    font-size: var(--fs-body-sm);
    line-height: var(--lh-body);
    color: var(--s2-muted);
}

.shop-002-page .auction-clock.is-urgent {
    border-color: var(--s2-sale);
    background: rgba(159, 18, 57, .05);
}

.shop-002-page .auction-clock.is-urgent .auction-clock-box b {
    color: var(--s2-sale);
}

.shop-002-page .error-page {
    padding-block: var(--space-8) var(--space-10);
    background: var(--s2-canvas);
}

.shop-002-page .error-box {
    max-width: 640px;
    margin: 0 auto;
    padding: var(--space-7) var(--space-5);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    text-align: center;
}

.shop-002-page .error-code {
    font-family: var(--s2-ff-black);
    font-size: var(--fs-display);
    line-height: 1.1;
    color: var(--s2-hairline-strong);
    font-variant-numeric: tabular-nums;
}

.shop-002-page .error-title {
    margin: var(--space-3) 0 var(--space-2);
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-h2);
    line-height: var(--lh-heading);
    color: var(--s2-ink);
}

.shop-002-page .error-desc {
    margin: 0;
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    color: var(--s2-muted);
}

.shop-002-page .error-path {
    margin: var(--space-3) 0 0;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
    word-break: break-all;
}

.shop-002-page .error-trace {
    margin: var(--space-4) 0 0;
    padding: var(--space-3);
    border: 1px dashed var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-sunken);
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
}

.shop-002-page .error-trace code {
    display: inline-block;
    padding: 2px var(--space-2);
    border-radius: var(--s2-r-sm);
    background: var(--s2-ink);
    color: var(--s2-surface);
    font-family: ui-monospace, Menlo, Consolas, monospace;
    font-size: var(--fs-body);
    letter-spacing: 1px;
    user-select: all;
}

.shop-002-page .error-trace small {
    display: block;
    margin-top: var(--space-2);
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .error-search {
    display: flex;
    gap: var(--space-2);
    max-width: 420px;
    margin: var(--space-5) auto 0;
}

.shop-002-page .error-search-input {
    flex: 1;
    height: var(--s2-input-h);
    padding-inline: var(--space-3);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff);
    font-size: var(--fs-body-sm);
}

.shop-002-page .error-search-btn {
    min-height: var(--s2-btn-h);
    padding-inline: var(--space-4);
    border: 0;
    border-radius: var(--s2-r-md);
    background: var(--color-primary-500);
    color: #fff;
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    cursor: pointer;
}

.shop-002-page .error-search-btn:hover {
    background: var(--color-primary-600);
}

.shop-002-page .error-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-2);
    margin-top: var(--space-4);
}

.shop-002-page .error-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--s2-btn-h);
    padding-inline: var(--space-5);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    text-decoration: none;
}

.shop-002-page .error-btn:hover {
    background: var(--s2-sunken);
}

.shop-002-page .error-btn-primary {
    border-color: var(--s2-ink);
    background: var(--s2-ink);
    color: var(--s2-surface);
}

.shop-002-page .error-btn-primary:hover {
    background: var(--color-primary-600);
}

.shop-002-page .error-cats,
.shop-002-page .error-products {
    margin-top: var(--space-8);
}

.shop-002-page .error-sec-title {
    margin: 0 0 var(--space-4);
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-h3);
    color: var(--s2-ink);
}

.shop-002-page .error-cat-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.shop-002-page .error-cat {
    display: inline-flex;
    align-items: center;
    min-height: var(--s2-hit);
    padding-inline: var(--space-4);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-pill);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-size: var(--fs-body-sm);
    text-decoration: none;
}

.shop-002-page .error-cat:hover {
    background: var(--s2-sunken);
}

.shop-002-page .auction-rail>.auction-card {
    height: 100%;
}

.shop-002-page .dashboard-page {
    padding-block: var(--space-6) var(--space-10);
    min-height: 60vh;
}

.shop-002-page .dash-shell {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-5);
    align-items: start;
}

@media (min-width: 1024px) {
    .shop-002-page .dash-shell {
        grid-template-columns: var(--s2-side-w) minmax(0, 1fr);
        gap: var(--space-6);
    }
}

.shop-002-page .dash-side {
    min-width: 0;
}

.shop-002-page .dash-main-col {
    min-width: 0;
}

.shop-002-page .dashboard-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

@media (min-width: 1024px) {
    .shop-002-page .dashboard-sidebar {
        position: sticky;
        top: var(--space-5);
    }
}

.shop-002-page .user-profile-card {
    padding: var(--space-5) var(--space-4);
    margin-bottom: var(--space-3);
    border-radius: var(--s2-r-lg);
    background: var(--color-primary-600);
    color: #fff;
    text-align: center;
}

.shop-002-page .user-avatar {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    margin: 0 auto var(--space-3);
    border-radius: 50%;
    background: rgba(255, 255, 255, .14);
    font-size: 1.5rem;
}

.shop-002-page .user-name {
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body-lg);
    line-height: var(--lh-heading);
}

.shop-002-page .user-phone {
    display: block;
    margin-top: var(--space-1);
    font-size: var(--fs-body-sm);
    color: rgba(255, 255, 255, .72);
}

.shop-002-page .dashboard-nav {
    display: flex;
    flex-direction: column;
    padding: var(--space-2);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
}

.shop-002-page .dashboard-nav-item {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-height: var(--s2-hit);
    padding: var(--space-2) var(--space-3);
    border-radius: var(--s2-r-sm);
    color: var(--s2-body);
    font-size: var(--fs-body-sm);
    text-decoration: none;
    transition: background-color var(--dur-fast) var(--ease),
        color var(--dur-fast) var(--ease);
}

.shop-002-page .dashboard-nav-item i {
    font-size: 1.15em;
    color: var(--s2-muted);
}

.shop-002-page .dashboard-nav-item:hover {
    background: var(--s2-sunken);
    color: var(--s2-ink);
}

.shop-002-page .dashboard-nav-item.active {
    background: var(--s2-sunken);
    color: var(--s2-ink);
    font-family: var(--s2-ff-bold);
}

.shop-002-page .dashboard-nav-item:hover i,
.shop-002-page .dashboard-nav-item.active i {
    color: var(--s2-ink);
}

.shop-002-page .dashboard-nav-item.logout-item {
    color: var(--s2-danger);
}

.shop-002-page .dashboard-nav-item.logout-item i {
    color: var(--s2-danger);
}

.shop-002-page .dashboard-nav-item.logout-item:hover {
    background: #FDF2F2;
    color: var(--s2-danger);
}

.shop-002-page .dashboard-stats-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--space-3);
}

/* ۱۸۰ پیکسل روی گوشی یعنی یک ستون و چهار کارتِ تقریباً خالی؛ محتوای هر کارت
   (یک آیکن و دو خط) دو ستونه هم جا می‌شود. */
@media (max-width: 575.98px) {
    .shop-002-page .dashboard-stats-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.shop-002-page .stat-card {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-4);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
}

.shop-002-page .stat-icon {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: var(--s2-r-md);
    background: var(--s2-sunken);
    color: var(--s2-ink);
    font-size: 1.15rem;
}

.shop-002-page .stat-icon.red,
.shop-002-page .stat-icon.blue {
    background: var(--s2-sunken);
    color: var(--s2-ink);
}

.shop-002-page .stat-icon.green {
    background: #F0FDF4;
    color: var(--s2-success);
}

.shop-002-page .stat-icon.orange {
    background: #FFFBEB;
    color: var(--s2-buy);
}

.shop-002-page .stat-info {
    min-width: 0;
}

.shop-002-page .stat-info .stat-value {
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-h3);
    color: var(--s2-ink);
    line-height: 1.2;
}

.shop-002-page .stat-info .stat-label {
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .dashboard-panel {
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    overflow: hidden;
}

.shop-002-page .dashboard-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    flex-wrap: wrap;
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--s2-hairline);
}

.shop-002-page .dashboard-panel-title {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0;
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-h3);
    color: var(--s2-ink);
    line-height: var(--lh-heading);
}

.shop-002-page .dashboard-panel-title i {
    color: var(--s2-muted);
    font-size: .95em;
}

.shop-002-page .dashboard-panel-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--fs-body-sm);
    color: var(--s2-link);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.shop-002-page .dashboard-panel-body {
    padding: var(--space-5);
}

.shop-002-page .table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.shop-002-page .orders-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--fs-body-sm);
}

.shop-002-page .orders-table th {
    padding: var(--space-3);
    border-bottom: 1px solid var(--s2-hairline-strong);
    background: var(--s2-sunken);
    color: var(--s2-muted);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-caption);
    text-align: start;
    white-space: nowrap;
}

.shop-002-page .orders-table td {
    padding: var(--space-3);
    border-bottom: 1px solid var(--s2-hairline);
    color: var(--s2-body);
    vertical-align: middle;
}

.shop-002-page .orders-table tbody tr:last-child td {
    border-bottom: 0;
}

.shop-002-page .orders-table tbody tr:hover td {
    background: var(--s2-canvas);
}

/* ── جدول‌های پنل روی موبایل ──────────────────────────────────────────
   «سفارش‌ها»، «مرجوعی‌ها»، «کیف پول»، «تیکت‌ها» و «جزئیات سفارش» همه
   .orders-table اند و ۵ تا ۷ ستون دارند. روی ۳۹۰ پیکسل فقط چهار ستونِ اول
   دیده می‌شد و «وضعیت» و دکمهٔ «جزئیات» پشتِ اسکرولِ افقی می‌ماندند. هر
   ردیف یک کارت می‌شود و نامِ هر مقدار از data-label می‌آید (thead پنهان). */
@media (max-width: 767.98px) {
    .shop-002-page .table-responsive {
        overflow-x: visible;
    }

    .shop-002-page .orders-table thead {
        display: none;
    }

    .shop-002-page .orders-table,
    .shop-002-page .orders-table tbody,
    .shop-002-page .orders-table tr,
    .shop-002-page .orders-table td {
        display: block;
        width: 100%;
    }

    .shop-002-page .orders-table tbody tr {
        border: 1px solid var(--s2-hairline);
        border-radius: var(--s2-r-lg);
        padding: var(--space-3) var(--space-4);
        margin-bottom: var(--space-3);
    }

    .shop-002-page .orders-table tbody tr:last-child {
        margin-bottom: 0;
    }

    .shop-002-page .orders-table tbody tr:hover td {
        background: transparent;
    }

    .shop-002-page .orders-table tbody td {
        border: 0;
        padding: var(--space-1) 0;
        text-align: start;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: var(--space-2);
    }

    .shop-002-page .orders-table tbody td[data-label]::before {
        content: attr(data-label);
        color: var(--s2-muted);
        font-size: var(--fs-caption);
        white-space: nowrap;
    }

    /* ستونِ آخرِ بی‌عنوان (دکمه‌ها) تیتر ندارد و تمامِ عرض را می‌گیرد. */
    .shop-002-page .orders-table tbody td:not([data-label]) {
        justify-content: flex-start;
        padding-top: var(--space-2);
    }
}

.shop-002-page .order-status-badge {
    display: inline-block;
    padding: 4px var(--space-2);
    border-radius: var(--s2-r-pill);
    font-size: var(--fs-caption);
    font-family: var(--s2-ff-med);
    white-space: nowrap;
}

.shop-002-page .status-pending {
    background: #FFFBEB;
    color: var(--s2-warning);
}

.shop-002-page .status-processing {
    background: var(--s2-sunken);
    color: var(--s2-ink);
}

.shop-002-page .status-shipped {
    background: #F0FDF4;
    color: var(--s2-success);
}

.shop-002-page .status-delivered {
    background: #DCFCE7;
    color: #166534;
}

.shop-002-page .status-cancelled {
    background: #FEF2F2;
    color: var(--s2-danger);
}

.shop-002-page .order-detail-btn,
.shop-002-page .order-pay-btn,
.shop-002-page .address-edit-btn,
.shop-002-page .address-delete-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    min-height: 34px;
    padding-inline: var(--space-3);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease),
        border-color var(--dur-fast) var(--ease);
}

.shop-002-page .order-detail-btn:hover,
.shop-002-page .address-edit-btn:hover {
    background: var(--s2-sunken);
}

.shop-002-page .order-pay-btn {
    border-color: transparent;
    background: var(--s2-buy);
    color: var(--s2-buy-ink);
    font-family: var(--s2-ff-bold);
}

.shop-002-page .order-pay-btn:hover {
    background: var(--s2-buy-hover);
}

.shop-002-page .order-pay-btn:disabled {
    opacity: var(--s2-disabled-o);
    cursor: not-allowed;
}

.shop-002-page .address-delete-btn {
    border-color: rgba(179, 38, 30, .35);
    color: var(--s2-danger);
}

.shop-002-page .address-delete-btn:hover {
    background: #FEF2F2;
}

.shop-002-page .order-unavailable {
    font-size: var(--fs-caption);
    color: var(--s2-danger);
    white-space: nowrap;
}

.shop-002-page .profile-section-title {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: var(--space-5) 0 var(--space-3);
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body-lg);
    color: var(--s2-ink);
}

.shop-002-page .profile-section-title:first-child {
    margin-top: 0;
}

.shop-002-page .profile-section-title i {
    color: var(--s2-muted);
    font-size: .95em;
}

.shop-002-page .profile-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--space-4);
}

.shop-002-page .profile-form-group {
    display: grid;
    gap: var(--space-2);
    min-width: 0;
}

.shop-002-page .profile-form-group>label {
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .profile-form-group p {
    margin: 0;
}

.shop-002-page .form-control-plaintext {
    font-size: var(--fs-body);
    color: var(--s2-ink);
}

.shop-002-page .dashboard-page .form-control {
    width: 100%;
    min-height: var(--s2-input-h);
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-family: var(--s2-ff);
    font-size: var(--fs-body-sm);
    transition: border-color var(--dur-fast) var(--ease),
        box-shadow var(--dur-fast) var(--ease);
}

.shop-002-page .dashboard-page .form-control::placeholder {
    color: var(--s2-muted);
}

.shop-002-page .dashboard-page .form-control:focus-visible {
    outline: none;
    border-color: var(--s2-focus);
    box-shadow: var(--s2-focus-ring);
}

.shop-002-page .dashboard-page textarea.form-control {
    min-height: 84px;
    resize: vertical;
}

.shop-002-page .profile-shaba-wrap {
    display: flex;
    align-items: stretch;
    gap: var(--space-2);
    direction: ltr;
}

.shop-002-page .profile-shaba-prefix {
    display: grid;
    place-items: center;
    padding-inline: var(--space-3);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-sunken);
    color: var(--s2-muted);
    font-size: var(--fs-body-sm);
}

.shop-002-page .profile-save-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--s2-btn-h);
    padding-inline: var(--space-6);
    border: 0;
    border-radius: var(--s2-r-md);
    background: var(--color-primary-500);
    color: #fff;
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body-sm);
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease);
}

.shop-002-page .profile-save-btn:hover {
    background: var(--color-primary-600);
}

.shop-002-page .profile-save-btn:disabled {
    opacity: var(--s2-disabled-o);
    cursor: not-allowed;
}

.shop-002-page .s2-field-row {
    display: grid;
    gap: var(--space-2);
    min-width: 0;
}

.shop-002-page .s2-field-row>label {
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .s2-field-row .s2-input {
    padding-inline: var(--space-3);
}

.shop-002-page .s2-check {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
    cursor: pointer;
}

.shop-002-page .s2-check input {
    width: 18px;
    height: 18px;
    accent-color: var(--color-primary-500);
}

.shop-002-page .addresses-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--space-4);
}

.shop-002-page .address-item-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-4);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
}

.shop-002-page .address-item-card.default-address {
    border-color: var(--s2-ink);
}

.shop-002-page .address-default-badge {
    position: absolute;
    top: var(--space-3);
    inset-inline-end: var(--space-3);
    padding: 2px var(--space-2);
    border-radius: var(--s2-r-pill);
    background: var(--s2-ink);
    color: #fff;
    font-size: var(--fs-caption);
}

.shop-002-page .address-item-title {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0;
    padding-inline-end: 72px;
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body);
    color: var(--s2-ink);
}

.shop-002-page .address-item-text {
    font-size: var(--fs-body-sm);
    line-height: var(--lh-snug);
    color: var(--s2-body);
}

.shop-002-page .address-item-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: auto;
    padding-top: var(--space-2);
}

.shop-002-page .addr-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--space-4);
}

.shop-002-page .addr-col-full {
    grid-column: 1 / -1;
}

.shop-002-page .addr-textarea {
    height: auto;
    min-height: 84px;
    padding: var(--space-3);
    resize: vertical;
}

.shop-002-page .addr-form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: var(--space-5);
}

.shop-002-page .order-meta-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: var(--space-4);
    margin-bottom: var(--space-4);
}

.shop-002-page .order-bottom-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-4);
    margin-top: var(--space-5);
}

@media (min-width: 768px) {
    .shop-002-page .order-bottom-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.shop-002-page .cart-product-info {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-width: 0;
}

.shop-002-page .wallet-top {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-4);
}

@media (min-width: 768px) {
    .shop-002-page .wallet-top {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.shop-002-page .wallet-balance-card {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-5);
    border-radius: var(--s2-r-lg);
    background: var(--color-primary-600);
    color: #fff;
}

.shop-002-page .wallet-balance-label {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--fs-body-sm);
    color: rgba(255, 255, 255, .75);
}

.shop-002-page .wallet-balance-value {
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-h1);
    line-height: 1.2;
}

.shop-002-page .wallet-balance-unit {
    font-size: var(--fs-body-sm);
    font-family: var(--s2-ff);
}

.shop-002-page .wallet-balance-stats {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    margin-top: var(--space-2);
    padding-top: var(--space-3);
    border-top: 1px solid rgba(255, 255, 255, .18);
    font-size: var(--fs-body-sm);
    color: rgba(255, 255, 255, .78);
}

.shop-002-page .wallet-charge-card {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-5);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
}

.shop-002-page .wallet-charge-title {
    margin: 0;
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body-lg);
    color: var(--s2-ink);
}

.shop-002-page .wallet-quick-amounts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: var(--space-2);
}

.shop-002-page .wallet-quick-btn {
    min-height: 38px;
    padding-inline: var(--space-2);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    color: var(--s2-body);
    font-family: var(--s2-ff);
    font-size: var(--fs-body-sm);
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease),
        border-color var(--dur-fast) var(--ease);
}

.shop-002-page .wallet-quick-btn span {
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .wallet-quick-btn:hover {
    background: var(--s2-sunken);
}

.shop-002-page .wallet-quick-btn.active {
    border-color: var(--s2-ink);
    background: var(--s2-sunken);
    color: var(--s2-ink);
    font-family: var(--s2-ff-bold);
}

.shop-002-page .wallet-charge-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    min-height: var(--s2-btn-h);
    border: 0;
    border-radius: var(--s2-r-md);
    background: var(--s2-buy);
    color: var(--s2-buy-ink);
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body-sm);
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease);
}

.shop-002-page .wallet-charge-btn:hover {
    background: var(--s2-buy-hover);
}

.shop-002-page .wallet-charge-btn:disabled {
    opacity: var(--s2-disabled-o);
    cursor: not-allowed;
}

.shop-002-page .wallet-charge-hint {
    margin: 0;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .wallet-gift-card {
    grid-column: 1 / -1;
}

.shop-002-page .wallet-type {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    white-space: nowrap;
    font-family: var(--s2-ff-med);
}

.shop-002-page .wallet-type.is-deposit {
    color: var(--s2-success);
}

.shop-002-page .wallet-type.is-withdraw {
    color: var(--s2-sale);
}

.shop-002-page .wallet-badge {
    display: inline-block;
    padding: 4px var(--space-2);
    border-radius: var(--s2-r-pill);
    font-size: var(--fs-caption);
    white-space: nowrap;
}

.shop-002-page .wallet-badge-success {
    background: #F0FDF4;
    color: var(--s2-success);
}

.shop-002-page .wallet-badge-pending {
    background: #FFFBEB;
    color: var(--s2-warning);
}

.shop-002-page .wallet-badge-failed {
    background: #FEF2F2;
    color: var(--s2-danger);
}

.shop-002-page .wallet-row-pending td {
    background: #FFFDF5;
}

.shop-002-page .dashboard-page .text-center {
    text-align: center;
}

.shop-002-page .dashboard-page .text-muted {
    color: var(--s2-muted);
}

.shop-002-page .dashboard-page .text-danger {
    color: var(--s2-danger);
    font-size: var(--fs-caption);
}

.shop-002-page .dashboard-page .text-nowrap {
    white-space: nowrap;
}

.shop-002-page .dashboard-page .fw-medium {
    font-family: var(--s2-ff-med);
    color: var(--s2-ink);
}

.shop-002-page .dashboard-page .d-flex {
    display: flex;
}

.shop-002-page .dashboard-page .gap-2 {
    gap: var(--space-2);
}

.shop-002-page .dashboard-page .py-3 {
    padding-block: var(--space-3);
}

.shop-002-page .dashboard-page .py-5 {
    padding-block: var(--space-8);
}

.shop-002-page .dashboard-page .mt-2 {
    margin-top: var(--space-2);
}

.shop-002-page .dashboard-page .mt-3 {
    margin-top: var(--space-3);
}

.shop-002-page .dashboard-page .mt-4 {
    margin-top: var(--space-4);
}

.shop-002-page .dashboard-page .mb-2 {
    margin-bottom: var(--space-2);
}

.shop-002-page .addr-picker {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}

.shop-002-page .addr-pick-card {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-4);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
    cursor: pointer;
    transition: border-color var(--dur-fast) var(--ease),
        background-color var(--dur-fast) var(--ease);
}

.shop-002-page .addr-pick-card:hover {
    background: var(--s2-canvas);
}

.shop-002-page .addr-pick-card.selected {
    border-color: var(--s2-ink);
}

.shop-002-page .addr-pick-card input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.shop-002-page .addr-pick-card:has(input:focus-visible) {
    outline: 2px solid var(--s2-focus);
    outline-offset: 2px;
}

.shop-002-page .addr-pick-body {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
}

.shop-002-page .addr-pick-title {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body);
    color: var(--s2-ink);
}

.shop-002-page .addr-pick-badge {
    padding: 2px var(--space-2);
    border-radius: var(--s2-r-pill);
    background: var(--s2-ink);
    color: #fff;
    font-family: var(--s2-ff);
    font-size: var(--fs-caption);
}

.shop-002-page .addr-pick-line,
.shop-002-page .addr-pick-meta {
    font-size: var(--fs-body-sm);
    line-height: var(--lh-snug);
    color: var(--s2-body);
}

.shop-002-page .addr-pick-meta {
    color: var(--s2-muted);
}

.shop-002-page .addr-pick-check {
    margin-inline-start: auto;
    color: transparent;
    font-size: 1rem;
}

.shop-002-page .addr-pick-card.selected .addr-pick-check {
    color: var(--s2-ink);
}

.shop-002-page .addr-pick-new {
    border-style: dashed;
}

.shop-002-page .addr-picker-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-4);
    margin-bottom: var(--space-4);
}

.shop-002-page .addr-edit-toggle {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--s2-link);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.shop-002-page .addr-book-link {
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.shop-002-page .addr-save-box {
    display: flex;
    /* flex-direction صریح است چون این جعبه **هم** .contact-form-group است و
       آن یکی ستونی‌اش می‌کند؛ بدونِ این، `flex: 1 1 220px` روی محورِ عمودی
       می‌نشست و ورودیِ «عنوان آدرس» ۲۲۰ پیکسل **بلند** می‌شد (یک کادرِ خالیِ
       بزرگ زیرِ چک‌باکس، که هیچ‌کس نمی‌فهمید چیست). */
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
}

/* عنوانِ آدرس کنارِ یک چک‌باکسِ ۱۸px می‌نشیند، پس ارتفاعِ پیش‌فرضِ فیلدهای
   فرم (padding 1.15rem) اینجا درشت به نظر می‌رسد. فقط همین یک فیلد کوتاه می‌شود. */
.shop-002-page .addr-save-box input[type="text"] {
    flex: 1 1 220px;
    padding: .65rem 1rem;
    font-size: 1.3rem;
}

.shop-002-page .ticket-chat {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    max-height: 460px;
    overflow-y: auto;
    padding-inline-end: var(--space-2);
    margin-bottom: var(--space-5);
}

.shop-002-page .ticket-row {
    display: flex;
}

.shop-002-page .ticket-row.is-admin {
    justify-content: flex-start;
}

.shop-002-page .ticket-row.is-user {
    justify-content: flex-end;
}

.shop-002-page .ticket-bubble {
    max-width: min(75%, 46ch);
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
}

.shop-002-page .ticket-row.is-admin .ticket-bubble {
    background: var(--s2-sunken);
    border-inline-start: 3px solid var(--s2-ink);
}

.shop-002-page .ticket-row.is-user .ticket-bubble {
    border-inline-end: 3px solid var(--s2-buy);
}

.shop-002-page .ticket-bubble-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: var(--space-1);
}

.shop-002-page .ticket-bubble-name {
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body-sm);
    color: var(--s2-ink);
}

.shop-002-page .ticket-bubble-time {
    font-size: var(--fs-caption);
    color: var(--s2-muted);
    white-space: nowrap;
}

.shop-002-page .ticket-bubble-text {
    margin: 0;
    font-size: var(--fs-body-sm);
    line-height: var(--lh-snug);
    color: var(--s2-body);
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.shop-002-page .ticket-attach {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    margin-top: var(--space-2);
    font-size: var(--fs-caption);
    color: var(--s2-link);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.shop-002-page .ticket-reply,
.shop-002-page .ticket-form-grid {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.shop-002-page .ticket-reply {
    border-top: 1px solid var(--s2-hairline);
    padding-top: var(--space-5);
}

.shop-002-page .ticket-optional,
.shop-002-page .ticket-hint {
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .ticket-hint {
    display: block;
    margin-top: var(--space-1);
}

.shop-002-page .ticket-form-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    margin-top: var(--space-5);
}

.shop-002-page .ticket-closed-note {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    margin: 0;
    padding: var(--space-4);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-md);
    background: var(--s2-sunken);
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .ticket-clip {
    color: var(--s2-muted);
    margin-inline-start: var(--space-1);
}

.shop-002-page .ticket-date {
    color: var(--s2-muted);
    white-space: nowrap;
}

.shop-002-page .ticket-count {
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .dashboard-page .pagination {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1);
    margin: 0;
    padding: 0;
    list-style: none;
}

.shop-002-page .dashboard-page .pagination .page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    min-height: 34px;
    padding-inline: var(--space-2);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-sm);
    color: var(--s2-body);
    font-size: var(--fs-body-sm);
    text-decoration: none;
}

.shop-002-page .dashboard-page .pagination .page-link:hover {
    background: var(--s2-sunken);
}

.shop-002-page .dashboard-page .pagination .page-item.active .page-link {
    border-color: var(--s2-ink);
    background: var(--s2-ink);
    color: #fff;
}

.shop-002-page .dashboard-page .justify-content-between {
    justify-content: space-between;
}

.shop-002-page .dashboard-page .align-items-center {
    align-items: center;
}

.shop-002-page .dashboard-page .gap-3 {
    gap: var(--space-3);
}

.shop-002-page .dashboard-page .mb-1 {
    margin-bottom: var(--space-1);
}

.shop-002-page .dashboard-page .mb-4 {
    margin-bottom: var(--space-4);
}

.shop-002-page .dashboard-page .mb-0 {
    margin-bottom: 0;
}

.shop-002-page .dashboard-page .me-1 {
    margin-inline-end: var(--space-1);
}

.shop-002-page .dashboard-page .ms-1 {
    margin-inline-start: var(--space-1);
}

.shop-002-page .dashboard-page .ms-3 {
    margin-inline-start: var(--space-3);
}

.shop-002-page .dashboard-page .small {
    font-size: var(--fs-caption);
}

.shop-002-page .track-page {
    padding-block: var(--space-6) var(--space-10);
}

.shop-002-page .track-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-5);
    align-items: start;
    max-width: 520px;
    margin-inline: auto;
}

@media (min-width: 1024px) {
    .shop-002-page .track-layout.has-result {
        grid-template-columns: 380px minmax(0, 1fr);
        gap: var(--space-6);
        max-width: none;
    }
}

.shop-002-page .track-form-card,
.shop-002-page .track-result {
    padding: var(--space-5);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
}

.shop-002-page .track-form-card form {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.shop-002-page .track-form-hint {
    margin: 0 0 var(--space-4);
    font-size: var(--fs-body-sm);
    line-height: var(--lh-snug);
    color: var(--s2-muted);
}

.shop-002-page .track-form-card .s2-input {
    padding-inline: var(--space-3);
}

.shop-002-page .track-submit {
    width: 100%;
}

.shop-002-page .track-error {
    margin: var(--space-4) 0 0;
    padding: var(--space-3);
    border: 1px solid rgba(179, 38, 30, .35);
    border-radius: var(--s2-r-md);
    background: #FEF2F2;
    font-size: var(--fs-body-sm);
    color: var(--s2-danger);
}

.shop-002-page .track-login-note {
    margin: var(--space-4) 0 0;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .track-login-note a {
    color: var(--s2-link);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.shop-002-page .track-result-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    flex-wrap: wrap;
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--s2-hairline);
}

.shop-002-page .track-result-label {
    display: block;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .track-result-code {
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-body-lg);
    color: var(--s2-ink);
}

.shop-002-page .track-steps {
    display: grid;
    gap: var(--space-4);
    margin: var(--space-5) 0;
    padding: 0;
    list-style: none;
}

@media (min-width: 640px) {
    .shop-002-page .track-steps {
        grid-auto-flow: column;
        grid-auto-columns: 1fr;
    }
}

.shop-002-page .track-step {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

@media (min-width: 640px) {
    .shop-002-page .track-step {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
        position: relative;
    }

    .shop-002-page .track-step:not(:last-child)::after {
        content: "";
        position: absolute;
        top: 7px;
        inset-inline-start: calc(-50% + 8px);
        width: calc(100% - 16px);
        height: 2px;
        background: var(--s2-hairline-strong);
    }

    .shop-002-page .track-step.is-done::after,
    .shop-002-page .track-step.is-current::after {
        background: var(--s2-ink);
    }
}

.shop-002-page .track-step-dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid var(--s2-hairline-strong);
    background: var(--s2-surface);
}

.shop-002-page .track-step.is-done .track-step-dot {
    border-color: var(--s2-ink);
    background: var(--s2-ink);
}

.shop-002-page .track-step.is-current .track-step-dot {
    border-color: var(--s2-buy);
    background: var(--s2-buy);
}

.shop-002-page .track-step.is-done,
.shop-002-page .track-step.is-current {
    color: var(--s2-ink);
}

.shop-002-page .track-step.is-current .track-step-title {
    font-family: var(--s2-ff-bold);
}

.shop-002-page .track-step-date {
    display: block;
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .track-steps.is-canceled .track-step.is-current .track-step-dot {
    border-color: var(--s2-danger);
    background: var(--s2-danger);
}

.shop-002-page .track-steps.is-canceled .track-step.is-current {
    color: var(--s2-danger);
}

.shop-002-page .track-facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--space-4);
    margin: 0;
    padding-top: var(--space-4);
    border-top: 1px solid var(--s2-hairline);
}

.shop-002-page .track-facts dt {
    font-size: var(--fs-caption);
    color: var(--s2-muted);
    margin-bottom: var(--space-1);
}

.shop-002-page .track-facts dd {
    margin: 0;
    font-size: var(--fs-body-sm);
    color: var(--s2-ink);
}

.shop-002-page .order-done-track {
    margin: var(--space-3) 0 0;
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
}

.shop-002-page .order-done-track a {
    color: var(--s2-link);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.shop-002-page .home-section,
.shop-002-page .home-newsletter,
.shop-002-page .section-lastblogs {
    content-visibility: auto;
    contain-intrinsic-size: auto 420px;
}

.shop-002-page .product-tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2, 8px);
    margin: var(--space-6, 24px) 0;
}

.shop-002-page .product-tags-label {
    color: var(--s2-muted);
    font-size: .875rem;
}

.shop-002-page .product-tag-chip {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0 12px;
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-pill);
    background: var(--s2-surface);
    color: var(--s2-ink);
    font-size: .875rem;
    text-decoration: none;
    transition: background var(--dur-fast) ease, border-color var(--dur-fast) ease;
}

.shop-002-page .product-tag-chip:hover,
.shop-002-page .product-tag-chip:focus-visible {
    background: var(--s2-shimmer);
    border-color: var(--s2-ink);
}

.shop-002-page .product-tag-chip:focus-visible {
    outline: none;
    box-shadow: var(--s2-focus-ring);
}

.shop-002-page .s2-nav-item {
    position: relative;
}

.shop-002-page .s2-nav-item--mega {
    position: static;
}

.shop-002-page .s2-hd-nav .s2-hd-in {
    position: relative;
}

.shop-002-page .s2-nav-link {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: 10px var(--space-4);
    border-radius: var(--s2-r-sm);
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
    text-decoration: none;
    white-space: nowrap;
    transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.shop-002-page .s2-nav-item:hover>.s2-nav-link,
.shop-002-page .s2-nav-item:focus-within>.s2-nav-link {
    background: var(--s2-sunken);
    color: var(--s2-ink);
}

.shop-002-page .s2-nav-link:focus-visible {
    outline: 2px solid var(--s2-link);
    outline-offset: -2px;
}

.shop-002-page .s2-nav-caret {
    flex: none;
    color: var(--s2-muted);
    transition: transform var(--dur) var(--ease);
}

.shop-002-page .s2-nav-item:hover>.s2-nav-link .s2-nav-caret {
    transform: rotate(180deg);
}

.shop-002-page .s2-nav-panel {
    position: absolute;
    top: 100%;
    inset-inline-start: auto;
    inset-inline-end: 0;
    z-index: 30;
    min-width: 15rem;
    max-width: 92vw;
    padding: var(--space-3);
    background: var(--s2-surface);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    box-shadow: var(--s2-sh-3);
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease), visibility var(--dur);
}

.shop-002-page .s2-nav-item:hover>.s2-nav-panel,
.shop-002-page .s2-nav-item:focus-within>.s2-nav-panel {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.shop-002-page .s2-nav-panel--mega {
    inset-inline-end: var(--s2-gutter);
    inset-inline-start: var(--s2-gutter);
    width: auto;
    max-width: none;
    padding: var(--space-5);
}

/* Mega-menu height follows the viewport: at most 34rem, never taller than what
   is left under the sticky header. The side column scrolls on its own; each
   pane is absolute over the same box and scrolls on its own too. */
.shop-002-page .s2-mega {
    position: relative;
    min-height: min(24rem, calc(100vh - 12rem));
}

.shop-002-page .s2-mega-side {
    width: 15.5rem;
    max-height: min(34rem, calc(100vh - 12rem));
    overflow-y: auto;
    overscroll-behavior: contain;
    list-style: none;
    margin: 0;
    padding: 0;

    border-inline-end: 1px solid var(--s2-hairline);
}

.shop-002-page .s2-mega-side-link {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: 9px var(--space-3);
    margin-inline-end: var(--space-2);
    border-radius: var(--s2-r-sm);
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
    text-decoration: none;
    transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.shop-002-page .s2-mega-side-text {
    flex: 1;
}

.shop-002-page .s2-mega-side-icon {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    flex: none;
    border-radius: var(--s2-r-sm);
    background: var(--s2-sunken);
    color: var(--s2-muted);
}

.shop-002-page .s2-mega-side-caret {
    flex: none;
    color: var(--s2-muted);
    opacity: 0;
    transform: rotate(90deg) translateY(4px);
    transition: opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}

.shop-002-page .s2-mega-side-item:hover>.s2-mega-side-link {
    background: var(--s2-sunken);
    color: var(--s2-ink);
}

.shop-002-page .s2-mega-side-item:hover>.s2-mega-side-link .s2-mega-side-icon {
    color: var(--s2-link);
}

.shop-002-page .s2-mega-side-item:hover>.s2-mega-side-link .s2-mega-side-caret {
    opacity: 1;
    transform: rotate(90deg) translateY(0);
}

.shop-002-page .s2-mega-pane {
    display: none;
    position: absolute;
    inset-block: 0;

    inset-inline-start: 15.5rem;
    inset-inline-end: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-inline-start: var(--space-6);
}

.shop-002-page .s2-mega-side-item:first-child>.s2-mega-pane {
    display: block;
}

.shop-002-page .s2-mega-side:hover .s2-mega-side-item:first-child:not(:hover)>.s2-mega-pane {
    display: none;
}

.shop-002-page .s2-mega-side-item:hover>.s2-mega-pane {
    display: block;
}

.shop-002-page .s2-mega-pane-head {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    margin-bottom: var(--space-4);
    font-size: var(--fs-body-sm);
    color: var(--s2-link);
    text-decoration: none;
}

.shop-002-page .s2-mega-pane-head svg {
    transform: rotate(90deg);
}

.shop-002-page .s2-nav-panel--mega::before {
    content: "";
    position: absolute;
    inset-inline: 0;
    top: -20px;
    height: 20px;
}

.shop-002-page .s2-nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.shop-002-page .s2-nav-list a {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: 9px var(--space-3);
    border-radius: var(--s2-r-sm);
    font-size: var(--fs-body-sm);
    color: var(--s2-body);
    text-decoration: none;
    transition: background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.shop-002-page .s2-nav-list a:hover {
    background: var(--s2-sunken);
    color: var(--s2-ink);
}

/* Two-level menu with many children: columns instead of one endless list.
   The <li> goes static so the panel hangs off the nav row, not the item — a
   4-column panel anchored on a left-hand item would run off the screen. */
.shop-002-page .s2-nav-item--wide {
    position: static;
}

.shop-002-page .s2-nav-panel--cols {
    inset-inline-start: var(--s2-gutter);
    inset-inline-end: auto;
    max-width: calc(100% - 2 * var(--s2-gutter));
}

.shop-002-page .s2-nav-panel--cols .s2-nav-list {
    columns: var(--s2-cols);
    column-gap: var(--space-4);
    width: calc(var(--s2-cols) * 13rem);
    max-width: 100%;
}

.shop-002-page .s2-nav-panel--cols .s2-nav-list li {
    break-inside: avoid;
}

/* Any dropdown taller than the screen scrolls inside itself. */
.shop-002-page .s2-nav-panel:not(.s2-nav-panel--mega) {
    max-height: calc(100vh - 11rem);
    overflow-y: auto;
    overscroll-behavior: contain;
}

/* Mobile drawer, level 4: listed under its level-3 name. */
.shop-002-page .s2-mob-l4 {
    padding: var(--space-2) var(--space-2) var(--space-3);
}

.shop-002-page .s2-mob-l4-head {
    display: block;
    margin-bottom: var(--space-2);
    padding-inline-start: var(--space-2);
    border-inline-start: 2px solid var(--s2-buy);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-caption);
    color: var(--s2-ink);
    text-decoration: none;
}

.shop-002-page .s2-mob-l4-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.shop-002-page .s2-mob-l4-list a {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding-inline: var(--space-3);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-pill);
    background: var(--s2-surface);
    font-size: var(--fs-caption);
    color: var(--s2-body);
    text-decoration: none;
}

/* Level 3 + 4 flow down the columns (Digikala), not across rows: a grid gave
   every row the height of its longest list, so short groups left big holes and
   the pane grew far taller than its content. */
.shop-002-page .s2-nav-grid {
    columns: 4;
    column-gap: var(--space-6);
}

@media (max-width: 1279px) {
    .shop-002-page .s2-nav-grid {
        columns: 3;
    }
}

.shop-002-page .s2-nav-col {
    break-inside: avoid;
    padding-bottom: var(--space-5);
}

.shop-002-page .s2-nav-col-head {
    display: block;
    margin-bottom: var(--space-2);
    padding-inline-start: var(--space-2);
    border-inline-start: 2px solid var(--s2-buy);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    line-height: 1.4;
    color: var(--s2-ink);
    text-decoration: none;
}

.shop-002-page .s2-nav-col-head:hover {
    color: var(--s2-link);
}

.shop-002-page .s2-nav-sub {
    list-style: none;
    margin: 0;
    padding: 0;
}

.shop-002-page .s2-nav-sub a {
    display: block;
    padding: 5px 0;
    font-size: var(--fs-body-sm);
    color: var(--s2-muted);
    text-decoration: none;
    transition: color var(--dur-fast) var(--ease);
}

.shop-002-page .s2-nav-sub a:hover {
    color: var(--s2-link);
}

.shop-002-page .s2-nav-all {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    margin-top: var(--space-3);
    padding-top: var(--space-3);
    border-top: 1px solid var(--s2-hairline);
    font-size: var(--fs-body-sm);
    color: var(--s2-link);
    text-decoration: none;
}

.shop-002-page .s2-nav-all svg {
    transform: rotate(90deg);
}

@media (prefers-reduced-motion: reduce) {

    .shop-002-page .s2-nav-panel,
    .shop-002-page .s2-nav-caret {
        transition: none;
    }
}

.shop-002-page .s2-ft-cols {
    justify-content: flex-start;
}

@media (min-width: 1024px) {
    .shop-002-page .s2-ft-cols {
        column-gap: var(--space-10);
    }
}

.shop-002-page .s2-ft-trust {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
}

.shop-002-page .s2-ft-trust-badge {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    flex: none;
    border-radius: var(--s2-r-md);
    background: rgba(255, 255, 255, .10);
    color: #fff;
}

.shop-002-page .s2-ft-trust-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.shop-002-page .s2-ft-trust-title {
    font-size: var(--fs-body-sm);
    color: var(--color-zinc-100, #f4f4f5);
}

.shop-002-page .s2-ft-trust-sub {
    font-size: 0.75rem;
    color: rgba(255, 255, 255, .62);
}

@media (max-width: 1023px) {
    .shop-002-page .s2-ft-trust {
        justify-content: flex-start;
    }
}

.shop-002-page .size-option.out-of-stock,
.shop-002-page .guarantee-option.out-of-stock {
    color: var(--s2-muted, #9a9a9a);
    border-style: dashed;
    text-decoration: line-through;
}

.shop-002-page .color-option.out-of-stock {
    opacity: .45;
}

.shop-002-page .size-option.unavailable,
.shop-002-page .guarantee-option.unavailable,
.shop-002-page .color-option.unavailable {
    pointer-events: none;
}

.shop-002-page .nm-variant {
    font-weight: 400;
    color: var(--s2-muted, #9a9a9a);
    font-size: .85em;
}

.shop-002-page .size-chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.shop-002-page .size-chip {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 52px;
    min-height: var(--s2-hit);
    padding-inline: var(--space-3);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    font-family: var(--s2-ff-med);
    font-size: var(--fs-body-sm);
    color: var(--s2-ink);
    cursor: pointer;
    transition: border-color var(--dur-fast) var(--ease),
        background-color var(--dur-fast) var(--ease),
        color var(--dur-fast) var(--ease);
}

.shop-002-page .size-chip input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.shop-002-page .size-chip:hover {
    border-color: var(--color-primary-300);
}

.shop-002-page .size-chip:focus-within {
    outline: var(--s2-focus-ring);
    outline-offset: 2px;
}

.shop-002-page .size-chip.active {
    border-color: var(--color-primary-500);
    background: var(--color-primary-500);
    color: #fff;
}

.shop-002-page .size-cm-row {
    margin-top: var(--space-4);
    padding-top: var(--space-3);
    border-top: 1px dashed var(--s2-hairline);
}

.shop-002-page .size-cm-label {
    display: block;
    margin-bottom: var(--space-2);
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .size-cm-input {
    width: 100%;
    min-height: var(--s2-input-h);
    padding-inline: var(--space-3);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    font-family: var(--s2-ff);
    font-size: var(--fs-body-sm);
    color: var(--s2-ink);
}

.shop-002-page .size-cm-input:focus {
    border-color: var(--color-primary-500);
    outline: none;
}

.shop-002-page .size-cm-hint {
    display: block;
    margin-top: var(--space-2);
    font-size: var(--fs-caption);
    line-height: var(--lh-body);
    color: var(--s2-muted);
}

.shop-002-page .size-cm-empty {
    display: block;
    margin-top: var(--space-2);
    font-size: var(--fs-caption);
    color: var(--s2-danger);
}

.shop-002-page .finder {
    padding-block: var(--space-6);
}

.shop-002-page .finder-form {
    padding: var(--space-5);
    border: 1px solid var(--s2-hairline);
    border-radius: var(--s2-r-lg);
    background: var(--s2-surface);
}

.shop-002-page .finder-title {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0 0 var(--space-4);
    font-family: var(--s2-ff-bold);
    font-size: var(--fs-h3);
    color: var(--s2-ink);
}

.shop-002-page .finder-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: var(--space-3);
    align-items: end;
}

.shop-002-page .finder-field {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    min-width: 0;
}

.shop-002-page .finder-field-wide {
    grid-column: span 2;
}

.shop-002-page .finder-label {
    font-size: var(--fs-caption);
    color: var(--s2-muted);
}

.shop-002-page .finder-input {
    width: 100%;
    min-height: var(--s2-input-h);
    padding-inline: var(--space-3);
    border: 1px solid var(--s2-hairline-strong);
    border-radius: var(--s2-r-md);
    background: var(--s2-surface);
    font-family: var(--s2-ff);
    font-size: var(--fs-body-sm);
    color: var(--s2-ink);
}

.shop-002-page .finder-input:focus {
    border-color: var(--color-primary-500);
    outline: none;
}

.shop-002-page .finder-submit {
    min-height: var(--s2-input-h);
}

.shop-002-page .finder-check {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-4);
    font-size: var(--fs-caption);
    color: var(--s2-muted);
    cursor: pointer;
}

@media (max-width: 575.98px) {
    .shop-002-page .finder-field-wide {
        grid-column: span 1;
    }
}

/* موبایل: زونی که بیش از یک بنر دارد به‌جای گریدِ فشرده یک ردیفِ swipe می‌شود.
   بنرِ بعدی کمی پیداست تا معلوم شود کشیدنی است — همان قاعدهٔ نوارِ ویژگی‌ها.
   کلاسِ banner-zone-slider را خودِ partial وقتی Banners.Count > 1 است می‌گذارد؛
   با یک بنر هیچ‌چیز عوض نمی‌شود. */
@media (max-width: 767px) {
    .shop-002-page .banner-zone-slider .banner-zone-grid {
        display: flex;
        grid-template-columns: none;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-bottom: .4rem;
    }

    .shop-002-page .banner-zone-slider .banner-zone-grid::-webkit-scrollbar {
        display: none;
    }

    .shop-002-page .banner-zone-slider .banner-zone-item {
        flex: 0 0 86%;
        scroll-snap-align: center;
    }
}

/* آکاردئونِ FAQ دو پیاده‌سازی دارد: کالا/صفحهٔ سوالات با جاوااسکریپت
   کلاسِ .open می‌گیرند، ولی مقاله از <details> بومی استفاده می‌کند و
   هیچ‌وقت .open نمی‌گیرد — یعنی display:none بالا پاسخ را برای همیشه
   پنهان می‌کرد: باکس باز می‌شد و زیرش خالی بود. */
details[open]>.faq-answer {
    display: block;
}

/* میان‌برِ ویرایشِ کالا — فقط کارکنان می‌بینندش. عمداً کم‌رنگ و کوچک
   است: بخشی از صفحهٔ فروش نیست، یک ابزارِ داخلی است. */
.admin-edit-shortcut {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0 0 10px;
    padding: 5px 12px;
    border: 1px dashed #c9a227;
    border-radius: 6px;
    background: #fffbe9;
    color: #8a6d1b;
    font-size: 1.2rem;
    line-height: 1.6;
    text-decoration: none;
}

.admin-edit-shortcut:hover {
    background: #fff4cc;
    color: #6d5514;
}

.blog-faq-title,
.product-faq-title {
    margin-bottom: 10px;
}