     :root {

    --ink: #24191B;

    --muted: #75686A;

    --bg: #F0E9E3;

    --paper: #FCF9F5;

    --em: #8B3F46;

    --em-d: #632D33;

    --sand: #D8B79C;

    --line: rgba(36, 25, 27, .11);

    --glass: rgba(255, 253, 249, .74);

    --shadow: 0 30px 80px rgba(55, 35, 32, .15);

}
        * {
            box-sizing: border-box
        }

        html {
            scroll-behavior: smooth
        }

        body {
            margin: 0;
            background: var(--bg);
            color: var(--ink);
            font-family: Inter, system-ui, sans-serif;
            overflow-x: hidden
        }

        h1,
        h2,
        h3,
        h4,
        h5,
        h6,
        .out {
            font-family: Outfit, Inter, sans-serif;
            letter-spacing: -.03em
        }

        a {
            color: inherit;
            text-decoration: none
        }

        img {
            max-width: 100%;
            display: block
        }

        section {
            padding: 90px 0;
            scroll-margin-top: 90px
        }

        .wrap {
            max-width: 1240px;
            margin: 0 auto;
            padding: 0 20px
        }

        /* NAV */
        .navbar {
            background: rgba(236, 238, 241, .82);
            backdrop-filter: blur(16px);
            border-bottom: 1px solid var(--line);
            z-index: 1050
        }

        .navbar-brand {
            font-family: Outfit;
            font-weight: 800;
            font-size: 1.45rem;
            color: var(--em) !important
        }

        .nav-glass {
            background: var(--glass);
            border: 1px solid rgba(255, 255, 255, .8);
            border-radius: 999px;
            padding: .28rem .55rem;
            box-shadow: 0 10px 30px rgba(20, 24, 30, .06)
        }

        .nav-link {
            font-weight: 600;
            font-size: .86rem;
            color: var(--ink) !important;
            border-radius: 999px;
            padding: .45rem .85rem !important
        }

        .nav-link:hover,
        .nav-link.active {
            background: #fff;
            color: var(--em) !important
        }

        .icon-btn {
            width: 42px;
            height: 42px;
            border-radius: 50%;
            border: 1px solid var(--line);
            background: #fff;
            display: inline-grid;
            place-items: center;
            transition: .25s
        }

        .icon-btn:hover {
            background: var(--em);
            color: #fff;
            transform: translateY(-2px)
        }

        #cartCount.pulse {
            animation: pulse .55s cubic-bezier(.18, .89, .32, 1.5)
        }

        @keyframes pulse {
            0% {
                transform: scale(1)
            }

            40% {
                transform: scale(1.85)
            }

            100% {
                transform: scale(1)
            }
        }

        /* HERO — kitchen AR stage */
        .hero {
            padding: 28px 0 70px
        }

        .stage-shell {
            --hx: #2f7d5b;
            --hs: #e8d9c4;
            position: relative;
            min-height: 680px;
            border-radius: 36px;
            overflow: hidden;
            background:
                linear-gradient(180deg, rgba(247, 248, 250, .2), rgba(247, 248, 250, .92) 72%),
                radial-gradient(circle at 18% 70%, rgba(255, 255, 255, .8), transparent 24%),
                linear-gradient(135deg, #dfe5ea 0%, #f4f1eb 48%, #e7ebe8 100%);
            box-shadow: var(--shadow);
            border: 1px solid rgba(255, 255, 255, .85);
        }

        .stage-shell::before {
            content: "";
            position: absolute;
            left: -8%;
            right: 28%;
            top: 8%;
            bottom: 18%;
            background: radial-gradient(ellipse at center, var(--hs) 0%, transparent 68%);
            opacity: .55;
            filter: blur(2px);
            transition: background .6s ease;
        }

        .stage-wall {
            position: absolute;
            inset: 0;
            background:
                linear-gradient(90deg, rgba(255, 255, 255, .08), transparent 18%, transparent 82%, rgba(255, 255, 255, .08)),
                linear-gradient(180deg, transparent 58%, rgba(140, 120, 95, .12) 59%, rgba(120, 100, 80, .18) 100%);
            pointer-events: none
        }

        .stage-floor {
            position: absolute;
            left: 0;
            right: 0;
            bottom: 0;
            height: 24%;
            background: linear-gradient(180deg, transparent, rgba(92, 74, 55, .18));
            pointer-events: none
        }

        .stage-grid {
            position: relative;
            z-index: 3;
            min-height: 680px;
            display: grid;
            grid-template-columns: 1.2fr .8fr;
            gap: 20px;
            padding: 28px;
        }

        .stage-left {
            position: relative;
            min-height: 620px
        }

        .hero-main {
            position: absolute;
            left: 50%;
            top: 42%;
            width: min(46vw, 360px);
            aspect-ratio: 1;
            transform: translate(-50%, -50%);
            border-radius: 28px;
            overflow: hidden;
            background: #fff;
            box-shadow: 0 40px 90px rgba(30, 36, 42, .28);
            opacity: 0;
            pointer-events: none;
        }

        .hero-main img {
            width: 100%;
            height: 100%;
            object-fit: cover
        }

        .hero-main.show {
            animation: dropSpin .95s cubic-bezier(.16, 1, .3, 1) both;
            pointer-events: auto;
        }

        .hero-main.hide {
            animation: vanishSpin .42s cubic-bezier(.55, .05, .67, .19) both;
        }

        @keyframes dropSpin {
            0% {
                opacity: 0;
                transform: translate(-50%, -160%) rotate(-180deg) scale(.55);
                filter: blur(10px)
            }

            60% {
                opacity: 1;
                filter: blur(0)
            }

            100% {
                opacity: 1;
                transform: translate(-50%, -50%) rotate(0deg) scale(1);
                filter: blur(0)
            }
        }

        @keyframes vanishSpin {
            0% {
                opacity: 1;
                transform: translate(-50%, -50%) rotate(0) scale(1);
                filter: blur(0)
            }

            100% {
                opacity: 0;
                transform: translate(-50%, -150%) rotate(180deg) scale(.4);
                filter: blur(8px)
            }
        }

        .ghost-side {
            position: absolute;
            left: -4%;
            top: 34%;
            width: 140px;
            height: 140px;
            border-radius: 50%;
            overflow: hidden;
            opacity: .35;
            filter: blur(1px);
            box-shadow: 0 18px 40px rgba(0, 0, 0, .12);
            background: #fff;
            transform: rotate(-8deg);
        }

        .ghost-side img {
            width: 100%;
            height: 100%;
            object-fit: cover
        }

        .hero-actions-mid {
            position: absolute;
            left: 50%;
            bottom: 168px;
            transform: translateX(-50%);
            display: flex;
            gap: 18px;
            align-items: center;
            z-index: 5;
        }

        .mid-btn {
            border: 0;
            background: #d9dde1;
            color: var(--muted);
            font-weight: 700;
            font-size: .9rem;
            display: inline-flex;
            align-items: center;
            gap: .45rem;
            transition: .25s;
            padding: 10px;
            border-radius: 20%;

        }

        .mid-btn:hover {
            color: var(--ink)
        }

        .mid-btn.primary {
            color: var(--em)
        }

        .thumb-rail {
            position: absolute;
            left: 50%;
            bottom: 52px;
            transform: translateX(-50%);
            display: flex;
            align-items: center;
            gap: 14px;
            z-index: 6;
            background: rgba(255, 255, 255, .55);
            backdrop-filter: blur(14px);
            border: 1px solid rgba(255, 255, 255, .8);
            border-radius: 28px;
            padding: 14px 18px;
            box-shadow: 0 20px 50px rgba(20, 24, 30, .12);
            max-width: min(92%, 720px);
        }

        .rail-btn {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            border: 1px solid var(--line);
            background: #fff;
            display: grid;
            place-items: center;
            flex-shrink: 0;
            transition: .25s;
        }

        .rail-btn:hover {
            background: var(--ink);
            color: #fff
        }

        .thumb-track {
            display: flex;
            gap: 14px;
            overflow: hidden
        }

        .thumb {
            width: 84px;
            border: 0;
            background: transparent;
            padding: 0;
            text-align: center;
            cursor: pointer;
            transition: .3s;
            opacity: .55;
            transform: scale(.92);
        }

        .thumb img {
            width: 68px;
            height: 68px;
            border-radius: 18px;
            object-fit: cover;
            margin: 0 auto 8px;
            box-shadow: 0 10px 24px rgba(0, 0, 0, .12);
            border: 3px solid transparent;
            transition: .3s;
        }

        .thumb span {
            display: block;
            font-size: .68rem;
            font-weight: 700;
            color: var(--muted);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            max-width: 84px
        }

        .thumb.on {
            opacity: 1;
            transform: scale(1)
        }

        .thumb.on img {
            border-color: #fff;
            box-shadow: 0 14px 30px rgba(47, 125, 91, .28);
            transform: translateY(-4px)
        }

        .dock {
            position: absolute;
            left: 50%;
            bottom: 10px;
            transform: translateX(-50%);
            display: flex;
            gap: 10px;
            z-index: 5;
        }

        .dock button {
            width: 42px;
            height: 42px;
            border-radius: 50%;
            border: 0;
            background: rgba(255, 255, 255, .7);
            color: var(--muted);
            display: grid;
            place-items: center;
            transition: .25s;
        }

        .dock button:hover,
        .dock button.on {
            background: #fff;
            color: var(--ink);
            box-shadow: 0 10px 24px rgba(0, 0, 0, .1)
        }

        /* right info card */
        .info-card {
            position: relative;
            align-self: center;
            justify-self: end;
            width: min(100%, 360px);
            background: rgba(255, 255, 255, .78);
            backdrop-filter: blur(18px);
            border: 1px solid rgba(255, 255, 255, .9);
            border-radius: 28px;
            box-shadow: 0 30px 70px rgba(24, 30, 36, .14);
            padding: 22px 22px 20px;
            min-height: 420px;
            overflow: hidden;
        }

        .info-card::before {
            content: "";
            position: absolute;
            right: -40px;
            top: -40px;
            width: 140px;
            height: 140px;
            border-radius: 50%;
            background: radial-gradient(circle, var(--hx), transparent 70%);
            opacity: .18;
            transition: background .5s;
        }

        .info-top {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 18px;
            position: relative;
            z-index: 2
        }

        .seg {
            display: inline-flex;
            background: rgba(26, 31, 36, .05);
            border-radius: 999px;
            padding: 4px
        }

        .seg button {
            border: 0;
            background: transparent;
            border-radius: 999px;
            padding: .4rem .85rem;
            font-size: .74rem;
            font-weight: 700;
            color: var(--muted)
        }

        .seg button.on {
            background: #fff;
            color: var(--ink);
            box-shadow: 0 6px 16px rgba(0, 0, 0, .08)
        }

        .info-body {
            position: relative;
            z-index: 2
        }

        .info-body.swap {
            animation: infoIn .55s cubic-bezier(.16, 1, .3, 1) both
        }

        @keyframes infoIn {
            from {
                opacity: 0;
                transform: translateY(18px) scale(.98)
            }

            to {
                opacity: 1;
                transform: none
            }
        }

        .rating-orb {
            width: 92px;
            height: 92px;
            border-radius: 28px;
            background: linear-gradient(145deg, #f4ebe0, #fff);
            display: grid;
            place-items: center;
            font-family: Outfit;
            font-weight: 800;
            font-size: 2rem;
            box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .04), 0 16px 30px rgba(0, 0, 0, .08);
            margin-bottom: 18px;
        }

        .rating-orb small {
            display: block;
            font-size: .62rem;
            font-weight: 700;
            color: var(--muted);
            letter-spacing: .08em;
            text-transform: uppercase
        }

        .info-cat {
            font-size: .72rem;
            font-weight: 800;
            letter-spacing: .12em;
            text-transform: uppercase;
            color: var(--hx);
            margin-bottom: 8px;
            transition: color .4s
        }

        .info-name {
            font-size: 1.55rem;
            font-weight: 800;
            line-height: 1.1;
            margin: 0 0 10px
        }

        .info-price {
            font-family: Outfit;
            font-weight: 800;
            font-size: 1.7rem;
            color: var(--hx);
            margin-bottom: 10px;
            transition: color .4s
        }

        .info-desc {
            color: var(--muted);
            font-size: .9rem;
            line-height: 1.65;
            margin-bottom: 18px;
            min-height: 72px
        }

        .info-actions {
            display: flex;
            gap: 10px;
            align-items: center
        }

        .qty {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            background: #fff;
            border: 1px solid var(--line);
            border-radius: 14px;
            padding: .4rem .55rem
        }

        .qty button {
            width: 28px;
            height: 28px;
            border: 1px solid var(--line);
            border-radius: 9px;
            background: #fff;
            font-weight: 800
        }

        .qty strong {
            min-width: 22px;
            text-align: center;
            font-family: Outfit
        }

        .btn-em {
            background: var(--em);
            color: #fff;
            border: 0;
            border-radius: 16px;
            padding: .85rem 1.25rem;
            font-weight: 800;
            box-shadow: 0 14px 30px rgba(47, 125, 91, .25);
            transition: .25s
        }

        .btn-em:hover {
            background: var(--em-d);
            color: #fff;
            transform: translateY(-2px)
        }

        .btn-gh {
            background: #fff;
            color: var(--ink);
            border: 1px solid var(--line);
            border-radius: 16px;
            padding: .85rem 1.15rem;
            font-weight: 800;
            transition: .25s
        }

        .btn-gh:hover {
            background: var(--ink);
            color: #fff
        }

        .info-foot {
            display: flex;
            gap: 8px;
            margin-top: 16px;
            flex-wrap: wrap
        }

        .info-foot span {
            font-size: .68rem;
            font-weight: 700;
            color: var(--muted);
            background: rgba(26, 31, 36, .05);
            border-radius: 999px;
            padding: .35rem .7rem
        }

        /* ALERTS */
        #alertStack {
            position: fixed;
            top: 88px;
            right: 18px;
            z-index: 3000;
            display: flex;
            flex-direction: column;
            gap: 12px;
            pointer-events: none
        }

        .ax {
            --a: #2f7d5b;
            pointer-events: auto;
            width: min(360px, calc(100vw - 36px));
            background: rgba(255, 255, 255, .92);
            backdrop-filter: blur(14px);
            border: 1px solid rgba(255, 255, 255, .9);
            border-radius: 20px;
            padding: 14px 14px 16px;
            box-shadow: 0 24px 50px rgba(20, 24, 30, .18);
            display: flex;
            gap: 12px;
            position: relative;
            overflow: hidden;
            animation: axIn .6s cubic-bezier(.18, .89, .32, 1.28) both
        }

        .ax.leave {
            animation: axOut .4s ease both
        }

        @keyframes axIn {
            from {
                opacity: 0;
                transform: translateX(120%) rotate(6deg)
            }

            60% {
                transform: translateX(-4%) rotate(-1deg)
            }

            to {
                transform: none;
                opacity: 1
            }
        }

        @keyframes axOut {
            to {
                opacity: 0;
                transform: translateX(120%) rotate(4deg)
            }
        }

        .ax .ic {
            width: 42px;
            height: 42px;
            border-radius: 14px;
            background: var(--a);
            color: #fff;
            display: grid;
            place-items: center;
            flex-shrink: 0
        }

        .ax h6 {
            margin: 0;
            font-weight: 800;
            font-size: .92rem
        }

        .ax p {
            margin: 2px 0 0;
            font-size: .78rem;
            color: var(--muted)
        }

        .ax .cls {
            position: absolute;
            top: 8px;
            right: 10px;
            border: 0;
            background: transparent;
            color: #aab2ba
        }

        .ax .bar {
            position: absolute;
            left: 0;
            bottom: 0;
            height: 4px;
            background: linear-gradient(90deg, var(--a), transparent);
            animation: axBar linear forwards
        }

        @keyframes axBar {
            from {
                width: 100%
            }

            to {
                width: 0
            }
        }

        /* generic */
        .kick {
            display: inline-block;
            background: rgba(47, 125, 91, .1);
            color: var(--em);
            font-weight: 800;
            font-size: .72rem;
            letter-spacing: .14em;
            text-transform: uppercase;
            padding: .48rem 1rem;
            border-radius: 999px;
            margin-bottom: 1rem
        }

        .stitle {
            font-size: clamp(1.9rem, 3.5vw, 2.9rem);
            font-weight: 800;
            margin-bottom: .55rem
        }

        .ssub {
            color: var(--muted);
            max-width: 620px
        }

        .paper {
            background: var(--paper)
        }

        .white {
            background: #fff
        }

        /* about — floating orbs */
        .about-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 18px
        }

        .a-card {
            position: relative;
            background: #fff;
            border-radius: 28px;
            padding: 28px 22px;
            border: 1px solid var(--line);
            overflow: hidden;
            transition: .35s
        }

        .a-card::before {
            content: "";
            position: absolute;
            width: 120px;
            height: 120px;
            border-radius: 50%;
            right: -30px;
            top: -30px;
            background: var(--c, #e8d9c4);
            opacity: .35
        }

        .a-card:hover {
            transform: translateY(-10px) rotate(-1deg);
            box-shadow: var(--shadow)
        }

        .a-ic {
            width: 56px;
            height: 56px;
            border-radius: 18px;
            display: grid;
            place-items: center;
            font-size: 1.4rem;
            background: var(--c, #e8d9c4);
            margin-bottom: 16px
        }

        /* categories — radial dial */
        .cat-dial {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 16px
        }

        .cat-chip {
            position: relative;
            border: 0;
            border-radius: 28px;
            min-height: 150px;
            padding: 20px;
            background: linear-gradient(160deg, #fff, var(--tint, #f3efe8));
            text-align: left;
            box-shadow: 0 16px 40px rgba(20, 24, 30, .06);
            overflow: hidden;
            transition: .35s;
        }

        .cat-chip:hover {
            transform: translateY(-8px) scale(1.02);
            box-shadow: var(--shadow)
        }

        .cat-chip .orb {
            width: 54px;
            height: 54px;
            border-radius: 50%;
            background: #fff;
            display: grid;
            place-items: center;
            font-size: 1.4rem;
            margin-bottom: 14px;
            box-shadow: 0 10px 24px rgba(0, 0, 0, .08)
        }

        .cat-chip h6 {
            font-weight: 800;
            margin: 0 0 4px
        }

        .cat-chip small {
            color: var(--muted);
            font-weight: 700
        }

        .cat-chip .ring {
            position: absolute;
            right: -20px;
            bottom: -20px;
            width: 90px;
            height: 90px;
            border-radius: 50%;
            border: 10px solid rgba(255, 255, 255, .55)
        }

        /* featured — stacked shelf with magnetic focus */
        .feature-stage {
            position: relative;
            height: 460px;
            display: grid;
            place-items: center;
            perspective: 1200px
        }

        .f-card {
            position: absolute;
            width: min(300px, 78vw);
            background: #fff;
            border-radius: 28px;
            overflow: hidden;
            border: 1px solid var(--line);
            box-shadow: 0 24px 60px rgba(20, 24, 30, .14);
            transition: transform .6s cubic-bezier(.16, 1, .3, 1), opacity .5s, filter .5s;
        }

        .f-card img {
            width: 100%;
            height: 200px;
            object-fit: contain
        }

        .f-card .body {
            padding: 16px
        }

        .f-card.c0 {
            transform: translateX(0) scale(1) rotateY(0);
            z-index: 5;
            opacity: 1
        }

        .f-card.c1 {
            transform: translateX(72%) scale(.78) rotateY(-18deg);
            z-index: 3;
            opacity: .8;
            filter: blur(1px)
        }

        .f-card.c-1 {
            transform: translateX(-72%) scale(.78) rotateY(18deg);
            z-index: 3;
            opacity: .8;
            filter: blur(1px)
        }

        .f-card.hide {
            opacity: 0;
            transform: scale(.5);
            z-index: 1;
            pointer-events: none
        }

        .f-nav {
            display: flex;
            justify-content: center;
            gap: 12px;
            margin-top: 18px
        }

        .f-nav button {
            width: 48px;
            height: 48px;
            border-radius: 50%;
            border: 1px solid var(--line);
            background: #fff
        }

        /* products — kitchen inventory board */
        .inv-board {
            display: grid;
            grid-template-columns: 270px minmax(0, 1fr);
            gap: 22px;
            align-items: start;
            background: linear-gradient(145deg, #f7f8fa, #fff);
            border-radius: 34px;
            padding: 22px;
            border: 1px solid rgba(255, 255, 255, .9);
            box-shadow: 0 24px 60px rgba(20, 24, 30, .08);
        }

        .inv-side {
            position: sticky;
            top: 96px;
            background: rgba(255, 255, 255, .7);
            border-radius: 28px;
            padding: 16px;
            border: 1px solid var(--line)
        }

        .inv-side h6 {
            font-size: .72rem;
            letter-spacing: .14em;
            text-transform: uppercase;
            color: var(--muted);
            margin-bottom: 12px
        }

        .inv-item {
            width: 100%;
            display: grid;
            grid-template-columns: 42px 1fr auto;
            gap: 10px;
            align-items: center;
            border: 0;
            background: transparent;
            border-radius: 18px;
            padding: 10px;
            text-align: left;
            margin-bottom: 6px;
            transition: .25s;
        }

        .inv-item:hover {
            background: #fff;
            transform: translateX(6px)
        }

        .inv-item.on {
            background: #fff;
            box-shadow: 0 12px 30px rgba(47, 125, 91, .12)
        }

        .inv-item .dot {
            width: 42px;
            height: 42px;
            border-radius: 14px;
            display: grid;
            place-items: center;
            background: var(--tint, #eef2f0);
            font-size: 1.1rem
        }

        .inv-item b {
            font-size: .8rem
        }

        .inv-item small {
            color: var(--muted);
            font-weight: 700
        }

        .inv-main {
            min-width: 0
        }

        .inv-tools {
            display: grid;
            grid-template-columns: 1fr 210px;
            gap: 12px;
            margin-bottom: 18px
        }

        .inv-tools input,
        .inv-tools select {
            border-radius: 18px;
            border: 1px solid var(--line);
            padding: .85rem 1rem;
            background: #fff
        }

        #productGrid {
            display: grid;
            grid-template-columns: repeat(12, 1fr);
            gap: 18px
        }

        #productGrid .cell {
            grid-column: span 3
        }

      

        .p-card {
            height: 100%;
            background: #fff;
            border-radius: 26px;
            overflow: hidden;
            border: 1px solid var(--line);
            transition: transform .2s, box-shadow .3s;
            transform-style: preserve-3d;
            position: relative;
        }

        .p-card:hover {
            box-shadow: var(--shadow)
        }

        .p-card::after {
            content: "";
            position: absolute;
            inset: 0;
            background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .45) 50%, transparent 70%);
            transform: translateX(-120%);
            transition: transform .7s;
            pointer-events: none
        }

        .p-card:hover::after {
            transform: translateX(120%)
        }

        .p-imgw {
            position: relative;
            height: 190px;
            overflow: hidden
        }

        .cell.wide .p-card {
            display: grid;
            grid-template-columns: 1.15fr .85fr
        }

        .cell.wide .p-imgw {
            height: 100%;
            min-height: 280px
        }

        .p-img {
            width: 100%;
            height: 100%;
            object-fit: contain;
            transition: .4s
        }

        .p-card:hover .p-img {
            transform: scale(1.07)
        }

        .p-price-tag {
            position: absolute;
            top: 12px;
            right: 12px;
            background: var(--em);
            color: #fff;
            font-family: Outfit;
            font-weight: 800;
            font-size: .78rem;
            padding: .35rem .7rem;
            border-radius: 12px;
            transform: rotate(-6deg)
        }

        .p-qv {
            position: absolute;
            left: 50%;
            bottom: 12px;
            transform: translate(-50%, 120%);
            border: 0;
            background: rgba(255, 255, 255, .95);
            border-radius: 999px;
            padding: .45rem 1rem;
            font-weight: 800;
            font-size: .74rem;
            transition: .3s
        }

        .p-card:hover .p-qv {
            transform: translate(-50%, 0)
        }

        .p-body {
            padding: 16px
        }

        .p-cat {
            font-size: .66rem;
            font-weight: 800;
            color: var(--em);
            background: rgba(47, 125, 91, .1);
            padding: .28rem .65rem;
            border-radius: 999px
        }

        .p-name {
            font-family: Outfit;
            font-weight: 700;
            font-size: 1rem;
            margin: .55rem 0 .35rem
        }

        .p-add {
            width: 100%;
            margin-top: 10px;
            border: 0;
            border-radius: 14px;
            background: var(--ink);
            color: #fff;
            font-weight: 800;
            padding: .7rem;
            transition: .25s
        }

        .p-add:hover {
            background: var(--em)
        }

        .pop {
            animation: popIn .55s cubic-bezier(.16, 1, .3, 1) both
        }

        @keyframes popIn {
            from {
                opacity: 0;
                transform: translateY(28px) scale(.92)
            }

            to {
                opacity: 1;
                transform: none
            }
        }

        #productGrid.leaving {
            opacity: .2;
            transform: scale(.98);
            transition: .2s
        }

        /* why — timeline */
        .why-line {
            position: relative;
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 18px
        }

        .why-line::before {
            content: "";
            position: absolute;
            left: 8%;
            right: 8%;
            top: 42px;
            height: 2px;
            background: linear-gradient(90deg, transparent, var(--em), transparent)
        }

        .w-card {
            background: #fff;
            border-radius: 28px;
            padding: 24px;
            border: 1px solid var(--line);
            position: relative;
            transition: .3s
        }

        .w-card:hover {
            transform: translateY(-8px);
            box-shadow: var(--shadow)
        }

        .w-card .n {
            width: 54px;
            height: 54px;
            border-radius: 50%;
            background: var(--em);
            color: #fff;
            display: grid;
            place-items: center;
            font-family: Outfit;
            font-weight: 800;
            margin-bottom: 14px;
            position: relative;
            z-index: 2
        }

        /* faq */
        .accordion-item {
            border: 0 !important;
            border-radius: 22px !important;
            overflow: hidden;
            margin-bottom: 12px;
            background: #fff;
            box-shadow: 0 10px 30px rgba(20, 24, 30, .05)
        }

        .accordion-button {
            font-family: Outfit;
            font-weight: 700;
            background: #fff !important
        }

        .accordion-button:not(.collapsed) {
            color: var(--em) !important;
            background: rgba(47, 125, 91, .06) !important
        }

        .accordion-button:focus {
            box-shadow: none
        }

        /* newsletter — glass slab */
        .nl {
            border-radius: 34px;
            padding: 34px;
            background:
                linear-gradient(135deg, rgba(255, 255, 255, .8), rgba(232, 217, 196, .45)),
                radial-gradient(circle at 85% 20%, rgba(47, 125, 91, .18), transparent 28%);
            border: 1px solid rgba(255, 255, 255, .9);
            box-shadow: var(--shadow);
        }

        /* contact */
        .c-card {
            background: #fff;
            border-radius: 28px;
            padding: 28px;
            border: 1px solid var(--line);
            height: 100%
        }

        .map-ph {
            min-height: 260px;
            border-radius: 24px;
            background: linear-gradient(135deg, #e7efe9, #f4efe6);
            display: grid;
            place-items: center;
            position: relative;
            overflow: hidden
        }

        .pin {
            width: 48px;
            height: 48px;
            border-radius: 50% 50% 50% 6px;
            background: var(--em);
            color: #fff;
            display: grid;
            place-items: center;
            transform: rotate(45deg);
            animation: pin 1.6s ease-in-out infinite
        }

        .pin i {
            transform: rotate(-45deg)
        }

        @keyframes pin {
            50% {
                transform: rotate(45deg) translate(-6px, -6px)
            }
        }

        /* footer */
        footer {
            background: #151a1f;
            color: rgba(255, 255, 255, .7);
            padding: 70px 0 26px;
            position: relative;
            overflow: hidden
        }

        footer::before {
            content: "Product Pulse Shop";
            position: absolute;
            left: 50%;
            bottom: -28px;
            transform: translateX(-50%);
            font-family: Outfit;
            font-weight: 800;
            font-size: clamp(5rem, 14vw, 11rem);
            color: transparent;
            -webkit-text-stroke: 1px rgba(255, 255, 255, .05);
            white-space: nowrap
        }

        footer h6 {
            color: #fff;
            margin-bottom: 14px
        }

        footer a {
            display: block;
            color: rgba(255, 255, 255, .68);
            margin-bottom: 8px;
            font-size: .9rem
        }

        footer a:hover {
            color: #fff
        }

        .soc {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            border: 1px solid rgba(255, 255, 255, .2);
            display: inline-grid !important;
            place-items: center;
            color: #fff;
            margin-right: 8px
        }

        .soc:hover {
            background: var(--em);
            border-color: var(--em)
        }

        /* unique legal modals */
        .legal-modal .modal-content {
            border: 0;
            border-radius: 28px;
            overflow: hidden;
            background: linear-gradient(160deg, #f7f8fa, #fff)
        }

        .legal-modal .legal-head {
            padding: 28px 28px 18px;
            background:
                radial-gradient(circle at 90% 10%, rgba(47, 125, 91, .2), transparent 28%),
                linear-gradient(135deg, #1a1f24, #2a3340);
            color: #fff;
        }

        .legal-modal .legal-head h5 {
            margin: 0;
            font-family: Outfit;
            font-weight: 800;
            font-size: 1.5rem
        }

        .legal-modal .legal-body {
            padding: 24px 28px 28px
        }

        .legal-block {
            background: #fff;
            border: 1px solid var(--line);
            border-radius: 18px;
            padding: 16px 18px;
            margin-bottom: 12px;
            box-shadow: 0 10px 24px rgba(20, 24, 30, .04)
        }

        .legal-block h6 {
            font-family: Outfit;
            font-weight: 800;
            color: var(--em);
            margin-bottom: 8px
        }

        .legal-block p {
            margin: 0;
            color: var(--muted);
            font-size: .9rem
        }

        /* quick view */
        .qv-wrap {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 24px
        }

        .qv-visual {
            min-height: 340px;
            border-radius: 28px;
            background: linear-gradient(145deg, #eef1f4, #fff);
            display: grid;
            place-items: center;
            overflow: hidden;
            position: relative
        }

        .qv-visual::before {
            content: "";
            position: absolute;
            width: 240px;
            height: 240px;
            border-radius: 40% 60% 55% 45%;
            background: var(--em);
            opacity: .14;
            animation: blob 8s ease-in-out infinite
        }

        @keyframes blob {
            50% {
                border-radius: 60% 40% 45% 55%
            }
        }

        .qv-img {
            width: min(78%, 300px);
            height: 280px;
            object-fit: cover;
            border-radius: 28px;
            position: relative;
            z-index: 2;
            animation: dropSpinQv .75s cubic-bezier(.16, 1, .3, 1) both
        }

        @keyframes dropSpinQv {
            from {
                opacity: 0;
                transform: translateY(-80px) rotate(-180deg) scale(.6)
            }

            to {
                opacity: 1;
                transform: none
            }
        }

        .related-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 10px;
            margin-top: 14px
        }

        .related-card {
            border: 1px solid var(--line);
            border-radius: 16px;
            background: #fff;
            padding: 8px;
            text-align: left;
            animation: popIn .5s ease both
        }

        .related-card img {
            width: 100%;
            height: 70px;
            object-fit: cover;
            border-radius: 12px;
            margin-bottom: 6px
        }

        .related-card b {
            display: block;
            font-size: .68rem;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis
        }

        .related-card small {
            color: var(--em);
            font-weight: 800;
            font-size: .66rem
        }

        /* misc */
        .ci-img {
            width: 68px;
            height: 68px;
            object-fit: cover;
            border-radius: 14px
        }

        .qbtn {
            width: 28px;
            height: 28px;
            border-radius: 50%;
            border: 1px solid var(--line);
            background: #fff;
            font-weight: 800;
            color: var(--em)
        }

        .back-top {
            position: fixed;
            right: 22px;
            bottom: 22px;
            z-index: 1040;
            display: none;
            width: 50px;
            height: 50px;
            border-radius: 50%;
            border: 0;
            background: var(--em);
            color: #fff;
            box-shadow: 0 14px 30px rgba(47, 125, 91, .35)
        }

        .modal-content {
            border: 0;
            border-radius: 24px
        }

        .form-control,
        .form-select {
            border-radius: 14px;
            border-color: var(--line);
            padding: .8rem 1rem
        }

        .form-control:focus,
        .form-select:focus {
            border-color: var(--em);
            box-shadow: 0 0 0 .18rem rgba(47, 125, 91, .14)
        }

        @media(max-width:991px) {
            .stage-grid {
                grid-template-columns: 1fr;
                min-height: auto
            }

            .stage-left {
                min-height: 560px
            }

            .info-card {
                justify-self: stretch;
                width: 100%;
                margin-top: 10px
            }

            .hero-main {
                width: min(70vw, 300px)
            }

            .about-grid,
            .cat-dial,
            .why-line {
                grid-template-columns: 1fr 1fr
            }

            .why-line::before {
                display: none
            }

            .inv-board {
                grid-template-columns: 1fr
            }

            .inv-side {
                position: relative;
                top: auto;
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 8px
            }

            .inv-side h6 {
                grid-column: 1/-1
            }

            .inv-tools {
                grid-template-columns: 1fr
            }

            #productGrid .cell,
            #productGrid .cell.wide {
                grid-column: span 6
            }

            .qv-wrap {
                grid-template-columns: 1fr
            }

            .f-card.c1 {
                transform: translateX(55%) scale(.74) rotateY(-14deg)
            }

            .f-card.c-1 {
                transform: translateX(-55%) scale(.74) rotateY(14deg)
            }
        }

        @media(max-width:575px) {

            .about-grid,
            .cat-dial,
            .why-line,
            .inv-side,
            .related-grid {
                grid-template-columns: 1fr
            }

            #productGrid .cell,
            #productGrid .cell.wide {
                grid-column: span 12
            }

            .cell.wide .p-card {
                display: block
            }

            .cell.wide .p-imgw {
                height: 200px;
                min-height: 0
            }

            .thumb-rail {
                max-width: 100%;
                padding: 12px
            }

            .thumb {
                width: 70px
            }

            .thumb img {
                width: 58px;
                height: 58px
            }

            .stage-left {
                min-height: 500px
            }

            .hero-main {
                width: 220px
            }
        }
    /* =============================
   Extra styles for separate pages
============================= */

.page-hero {
  padding: 80px 0 40px;
}

.page-card {
  background: #fff;
  border-radius: 28px;
  border: 1px solid var(--line);
  padding: 28px;
  box-shadow: 0 18px 45px rgba(20, 24, 30, .06);
}

.page-narrow {
  max-width: 860px;
  margin: 0 auto;
}

.page-medium {
  max-width: 1000px;
  margin: 0 auto;
}

.legal-page {
  border-radius: 34px;
  overflow: hidden;
  background: linear-gradient(160deg, #f7f8fa, #fff);
  border: 1px solid rgba(255, 255, 255, .92);
  box-shadow: var(--shadow);
}

.legal-page .legal-head {
  padding: 34px 28px 24px;
  background:
    radial-gradient(circle at 90% 10%, rgba(47, 125, 91, .2), transparent 28%),
    linear-gradient(135deg, #1a1f24, #2a3340);
  color: #fff;
}

.legal-page .legal-head h1 {
  margin: 0;
  font-family: Outfit, Inter, sans-serif;
  font-weight: 800;
  font-size: clamp(1.7rem, 3vw, 2.4rem);
}

.legal-page .legal-body {
  padding: 24px;
}

.legal-page .legal-block {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 16px 18px;
  margin-bottom: 12px;
  box-shadow: 0 10px 24px rgba(20, 24, 30, .04);
}

.legal-page .legal-block h6 {
  font-family: Outfit, Inter, sans-serif;
  font-weight: 800;
  color: var(--em);
  margin-bottom: 8px;
}

.legal-page .legal-block p {
  margin: 0;
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.7;
}

.checkout-summary-item {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px dashed rgba(26, 31, 36, .12);
}

.checkout-summary-item:last-child {
  border-bottom: 0;
}

.checkout-summary-item img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: 14px;
}

.checkout-summary-item .title {
  font-size: .86rem;
  font-weight: 800;
  margin-bottom: 2px;
}

.checkout-summary-item .meta {
  font-size: .78rem;
  color: var(--muted);
}

.checkout-controls {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
}

.checkout-controls button {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--em);
  font-weight: 800;
}

.form-shell {
  max-width: 780px;
  margin: 0 auto;
}

.newsletter-extra-links a {
  font-weight: 700;
  font-size: .84rem;
}

@media (max-width: 767px) {
  .legal-page .legal-head,
  .legal-page .legal-body {
    padding: 22px 18px;
  }
}