        /* ── Shared section/layout primitives ── */
        .section {
            width: 80%;
            max-width: 1280px;
            margin: 0 auto;
            padding: 64px 0 0;
        }

        /* ── Breadcrumb ── */
        .breadcrumb {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 8px;
            font-size: 12px;
            color: var(--grey);
        }

        .breadcrumb__item { display: flex; align-items: center; gap: 8px; }
        .breadcrumb a { color: var(--grey); transition: color 0.2s; }
        .breadcrumb a:hover { color: var(--coral); }
        .breadcrumb__sep { opacity: 0.5; }
        .breadcrumb__current { color: var(--plum); font-weight: 500; }

        /* ── Category hero ── */
        .theme-hero-section { padding-top: 20px; }

        /* minmax(0, ...) + min-width: 0 let the columns shrink to the viewport. A plain "1fr" column
           can't get narrower than its widest content - here the non-wrapping filter-pills row - so on
           mobile it grew wider than the screen and pushed the banner image off to the side. */
        .theme-hero {
            display: grid;
            grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
            gap: 48px;
            align-items: center;
        }

        .theme-hero > * { min-width: 0; }

        .theme-hero--no-image { grid-template-columns: minmax(0, 1fr); }

        .theme-hero__title {
            font-family: 'Cormorant Garamond', serif;
            font-size: clamp(36px, 5vw, 56px);
            font-weight: 700;
            line-height: 1.05;
            color: var(--plum);
            margin-bottom: 14px;
        }

        .theme-hero__meta {
            display: flex;
            align-items: center;
            gap: 12px;
            flex-wrap: wrap;
            margin-bottom: 14px;
        }

        .theme-hero__count {
            font-size: 14px;
            font-weight: 600;
            color: var(--plum);
        }

        .theme-hero__badge {
            display: inline-flex;
            align-items: center;
            padding: 6px 14px;
            border-radius: 100px;
            background: var(--accent-pink);
            color: var(--coral);
            font-size: 12px;
            font-weight: 600;
        }

        .theme-hero__desc {
            font-size: 14px;
            line-height: 1.7;
            color: var(--grey);
            max-width: 420px;
        }

        .theme-hero__right {
            border-radius: 20px;
            overflow: hidden;
        }

        .theme-hero__img {
            width: 100%;
            aspect-ratio: 16/10;
            object-fit: cover;
            object-position: top;
            border-radius: 20px;
            background: var(--accent-pink);
        }

        /* ── Filter pills ── */
        .filter-pills {
            display: flex;
            align-items: center;
            gap: 10px;
            flex: 1;
            overflow-x: auto;
            scrollbar-width: none;
            padding-bottom: 4px;
        }

        .filter-pills::-webkit-scrollbar { /* display: none; */ }

        .filter-pill {
            flex: 0 0 auto;
            padding: 10px 18px;
            border-radius: 100px;
            border: 1.5px solid var(--beige);
            background: var(--white);
            color: var(--plum);
            font-size: 13px;
            font-weight: 500;
            cursor: pointer;
            white-space: nowrap;
            transition: background 0.2s, border-color 0.2s, color 0.2s;
        }

        .filter-pill.active {
            background: var(--accent-pink);
            border-color: var(--accent-pink);
            color: var(--coral);
            font-weight: 600;
        }

        .filter-pill:hover { border-color: var(--coral); }

        /* ── Filter bar ── */
        .filter-bar-section { padding-top: 32px; }

        .filter-bar {
            display: flex;
            align-items: center;
            gap: 16px;
        }

        .btn-filters {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            flex-shrink: 0;
            padding: 11px 20px;
            border-radius: 100px;
            border: 1.5px solid var(--beige);
            background: var(--white);
            color: var(--plum);
            font-size: 13px;
            font-weight: 600;
            cursor: pointer;
            font-family: 'Inter', sans-serif;
        }

        .btn-filters svg { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 2; }

        .sort-by {
            display: flex;
            align-items: center;
            gap: 8px;
            flex-shrink: 0;
            font-size: 13px;
            color: var(--grey);
        }

        .sort-by select {
            border: 1.5px solid var(--beige);
            border-radius: 100px;
            padding: 10px 16px;
            font-size: 13px;
            font-weight: 600;
            color: var(--plum);
            background: var(--white);
            cursor: pointer;
            font-family: 'Inter', sans-serif;
        }

        /* ── Shop layout ── */
        .shop-section { padding-top: 32px; }

        .shop-layout {
            display: grid;
            grid-template-columns: 260px 1fr;
            gap: 32px;
            align-items: start;
        }

        /* ── Sidebar / Refine by ── */
        .shop-sidebar {
            background: var(--white);
            border-radius: 20px;
            padding: 24px;
            box-shadow: 0 2px 12px rgba(75,38,50,0.05);
        }

        .shop-sidebar__title {
            font-family: 'Cormorant Garamond', serif;
            font-size: 20px;
            font-weight: 600;
            color: var(--plum);
            margin-bottom: 20px;
        }

        .shop-sidebar__close { display: none; }

        .refine-group {
            padding-bottom: 24px;
            margin-bottom: 24px;
            border-bottom: 1px solid var(--beige);
        }

        .refine-group:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }

        .refine-group__header {
            font-size: 12px;
            font-weight: 600;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            color: var(--plum);
            margin-bottom: 14px;
        }

        .color-swatches { display: flex; gap: 10px; flex-wrap: wrap; }

        .color-swatch {
            width: 28px;
            height: 28px;
            border-radius: 50%;
            border: 1px solid var(--beige);
            cursor: pointer;
            padding: 0;
        }

        .color-swatch--more {
            display: flex;
            align-items: center;
            justify-content: center;
            background: var(--bg);
            color: var(--grey);
            font-size: 11px;
            font-weight: 600;
            border-style: dashed;
        }

        .refine-checkbox {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            padding: 6px 0;
            font-size: 13px;
            color: var(--plum);
            cursor: pointer;
        }

        .refine-checkbox input { width: 16px; height: 16px; accent-color: var(--coral); cursor: pointer; }
        .refine-checkbox__count { font-size: 12px; color: var(--grey); }

        /* ── Shop by Type (left-nav product hierarchy) ── */
        .product-type-menu__category { border-bottom: 1px solid var(--beige); }
        .product-type-menu__category:last-child { border-bottom: none; }

        .product-type-menu__category-header {
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            padding: 10px 0;
            border: none;
            background: none;
            font-size: 13px;
            font-weight: 600;
            color: var(--plum);
            cursor: pointer;
            font-family: 'Inter', sans-serif;
            text-align: left;
        }

        .product-type-menu__category-header svg {
            width: 14px;
            height: 14px;
            stroke: var(--grey);
            fill: none;
            stroke-width: 2;
            flex-shrink: 0;
            transition: transform 0.2s;
        }

        .product-type-menu__category.is-open .product-type-menu__category-header svg { transform: rotate(180deg); }

        .product-type-menu__items {
            list-style: none;
            display: none;
            padding: 0 0 10px;
        }

        .product-type-menu__category.is-open .product-type-menu__items { display: block; }

        .product-type-menu__item {
            display: block;
            padding: 6px 0 6px 4px;
            font-size: 13px;
            color: var(--grey);
            border-radius: 8px;
            transition: color 0.2s, background 0.2s;
        }

        .product-type-menu__item:hover { color: var(--coral); }

        .product-type-menu__item.is-active {
            color: var(--coral);
            font-weight: 600;
            background: var(--accent-pink);
            padding-left: 10px;
        }

        .price-range input[type="range"] {
            width: 100%;
            accent-color: var(--coral);
        }

        .price-range__values {
            display: flex;
            justify-content: space-between;
            font-size: 13px;
            font-weight: 600;
            color: var(--plum);
            margin-top: 10px;
        }

        .btn-clear-all {
            width: 100%;
            margin-top: 24px;
            padding: 12px;
            border-radius: 100px;
            border: 1.5px solid var(--plum);
            background: transparent;
            color: var(--plum);
            font-size: 13px;
            font-weight: 600;
            cursor: pointer;
            transition: background 0.2s, color 0.2s;
        }

        .btn-clear-all:hover { background: var(--plum); color: #fff; }

        .shop-sidebar__backdrop { display: none; }

        /* ── Products ── */
        .products-meta {
            font-size: 13px;
            color: var(--grey);
            margin-bottom: 20px;
        }

        .product-grid {
            display: grid;
            grid-template-columns: repeat(5, minmax(0, 1fr));
            gap: 20px;
        }

        .product-card { cursor: pointer; }
        .product-card.is-hidden { display: none; }

        .product-card__img-wrap {
            position: relative;
            aspect-ratio: 1/1;
            border-radius: 16px;
            overflow: hidden;
            background: var(--beige);
            margin-bottom: 10px;
        }

        .product-card__img-wrap img {
            width: 100%;
            height: 100%;
            object-fit: contain;
            transition: transform 0.4s ease;
        }

        .product-card:hover .product-card__img-wrap img { transform: scale(1.06); }

        .product-card__wishlist {
            position: absolute;
            top: 10px;
            right: 10px;
            width: 32px;
            height: 32px;
            border-radius: 50%;
            border: none;
            background: rgba(255,255,255,0.92);
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            box-shadow: 0 2px 8px rgba(75,38,50,0.1);
        }

        .product-card__wishlist svg { width: 14px; height: 14px; stroke: var(--coral); fill: none; stroke-width: 2; }
        .product-card__wishlist.is-active svg { fill: var(--coral); }

        .product-card__name {
            font-size: 13px;
            font-weight: 500;
            color: var(--plum);
            line-height: 1.4;
            margin-bottom: 6px;
            min-height: 36px;
        }

        .product-card__price {
            font-size: 15px;
            font-weight: 700;
            color: var(--plum);
            margin-bottom: 10px;
        }

        .product-card__price s {
            font-size: 12px;
            font-weight: 400;
            color: var(--grey);
            margin-left: 6px;
        }

        .product-card__add {
            width: 100%;
            padding: 11px;
            border: none;
            border-radius: 100px;
            background: var(--coral);
            color: #fff;
            font-size: 12px;
            font-weight: 700;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            cursor: pointer;
            transition: background 0.2s;
        }

        .product-card__add:hover { background: #d04a5c; }
        .product-card__add.added { background: #4CAF50; }

        /* Item already in the cart - outlined, like the filled wishlist heart (set by partyedit.js) */
        .product-card .product-card__add.in-cart {
            background: var(--white);
            color: var(--coral);
            box-shadow: inset 0 0 0 1.5px var(--coral);
        }
        .product-card .product-card__add.in-cart:hover { background: var(--accent-pink); }

        /* Out of stock: card still shown (and opens the popup), but can't be quick-added. */
        .product-card.is-out-of-stock .product-card__img-wrap img { opacity: 0.55; }

        .product-card__add:disabled,
        .product-card__add:disabled:hover {
            background: var(--beige);
            color: var(--grey);
            cursor: default;
        }

        /* ── Pagination ── */
        .pagination {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            margin-top: 48px;
            flex-wrap: wrap;
        }

        .page-btn {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 36px;
            height: 36px;
            border-radius: 50%;
            border: 1.5px solid var(--beige);
            background: var(--white);
            color: var(--plum);
            font-size: 13px;
            font-weight: 600;
            text-decoration: none;
            cursor: pointer;
            transition: background 0.2s, color 0.2s, border-color 0.2s;
        }

        .page-btn:hover { border-color: var(--coral); }

        .page-btn.active {
            background: var(--coral);
            border-color: var(--coral);
            color: #fff;
        }

        .page-btn--ellipsis { border: none; cursor: default; color: var(--grey); }
        .page-btn--ellipsis:hover { border: none; }

        .page-btn svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2; }

        /* ── Related products (horizontal rows, styled after default.css Featured Experiences) ── */
        .related-section { padding-top: 48px; }

        .section__header {
            display: flex;
            align-items: flex-end;
            justify-content: space-between;
            margin-bottom: 20px;
            gap: 16px;
        }

        .section__heading {
            font-family: 'Cormorant Garamond', serif;
            font-size: clamp(24px, 2.4vw, 34px);
            font-weight: 600;
            line-height: 1.1;
            color: var(--plum);
        }

        .section__link {
            font-size: 12px;
            font-weight: 600;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: var(--coral);
            white-space: nowrap;
            transition: opacity 0.2s;
        }

        .section__link:hover { opacity: 0.7; }

        .related-scroll {
            display: flex;
            gap: 20px;
            overflow-x: auto;
            scroll-snap-type: x mandatory;
            -webkit-overflow-scrolling: touch;
            padding-bottom: 8px;
            scrollbar-width: none;
        }

        .related-scroll::-webkit-scrollbar { display: none; }

        /* Same card as the grid, fixed width so rows scroll sideways (~5 visible on desktop). */
        .related-card {
            flex: 0 0 200px;
            scroll-snap-align: start;
        }

        /* ── Poster strip: one full-width horizontal row inside the product grid ── */
        .poster-strip {
            grid-column: 1 / -1;
            min-width: 0; /* let the inner scroller shrink to the grid width instead of stretching it */
        }

        .poster-strip.is-hidden { display: none; }

        .poster-strip__title {
            font-family: 'Cormorant Garamond', serif;
            font-size: 22px;
            font-weight: 600;
            color: var(--plum);
            margin-bottom: 12px;
        }

        .page-end-pad { height: 80px; }

        /* ── Responsive ── */
        @media (max-width: 1024px) {
            .shop-layout { grid-template-columns: 1fr; }

            .shop-sidebar {
                position: fixed;
                top: 0;
                left: 0;
                bottom: 0;
                width: min(320px, 85vw);
                border-radius: 0;
                z-index: 2001;
                transform: translateX(-100%);
                transition: transform 0.3s ease;
                overflow-y: auto;
            }

            .shop-sidebar.open { transform: translateX(0); }

            .shop-sidebar__close {
                display: block;
                position: absolute;
                top: 16px;
                right: 16px;
                background: none;
                border: none;
                font-size: 22px;
                color: var(--grey);
                cursor: pointer;
            }

            .shop-sidebar__backdrop {
                display: block;
                position: fixed;
                inset: 0;
                background: rgba(75,38,50,0.4);
                opacity: 0;
                pointer-events: none;
                transition: opacity 0.3s ease;
                z-index: 2000;
            }

            .shop-sidebar__backdrop.open { opacity: 1; pointer-events: all; }

            .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
        }

        @media (max-width: 768px) {
            .section { width: 95%; }

            .theme-hero { grid-template-columns: minmax(0, 1fr); gap: 24px; }
            .theme-hero__right { order: -1; }
            .theme-hero__img { aspect-ratio: 32/15; }
            .theme-hero__desc { display: none; }

            .filter-bar { flex-wrap: wrap; justify-content: space-between; }
            .filter-pills { order: 3; flex: 0 0 100%; margin-top: 12px; }

            .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }

            .related-section { padding-top: 36px; }
            .related-scroll { gap: 14px; }
            .related-card { flex-basis: 42vw; }

            .page-end-pad { height: 32px; }
        }

        /* ── Featured Experiences: event gallery albums for this theme (same cards as the home page) ── */
        .exp-band {
            margin-top: 64px;
            padding: 0 0 48px;
            background: var(--accent-pink);
            background: color-mix(in srgb, var(--accent-pink) 55%, var(--bg));
        }

        .exp-band .exp-band__inner { padding-top: 44px; }

        .exp-band__eyebrow {
            font-size: 11px;
            font-weight: 600;
            letter-spacing: 0.14em;
            text-transform: uppercase;
            color: var(--coral);
            margin-bottom: 6px;
        }

        .experiences-scroll {
            display: flex;
            gap: 16px;
            overflow-x: auto;
            scroll-snap-type: x mandatory;
            -webkit-overflow-scrolling: touch;
            padding-bottom: 8px;
            scrollbar-width: thin;
        }

        .exp-card {
            flex: 0 0 260px;
            scroll-snap-align: start;
            border-radius: 20px;
            overflow: hidden;
            position: relative;
            background: var(--beige);
        }

        .exp-card > a { display: block; color: inherit; }
        .exp-card > a:focus-visible { outline: 3px solid var(--coral); outline-offset: -3px; border-radius: 20px; }

        .exp-card__img-wrap { height: 340px; overflow: hidden; }

        .exp-card__img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.5s cubic-bezier(0.25,0.46,0.45,0.94);
        }

        .exp-card:hover .exp-card__img { transform: scale(1.07); }

        .exp-card__overlay {
            position: absolute;
            inset: 0;
            background: linear-gradient(to top, rgba(75,38,50,0.8) 0%, transparent 55%);
        }

        .exp-card__content { position: absolute; bottom: 0; left: 0; right: 0; padding: 20px; }

        .exp-card__title {
            font-family: 'Cormorant Garamond', serif;
            font-size: 20px;
            font-weight: 600;
            line-height: 1.2;
            color: #fff;
            margin-bottom: 4px;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        .exp-card__count { font-size: 11px; color: rgba(255,255,255,0.75); letter-spacing: 0.04em; }

        @media (max-width: 768px) {
            .exp-band { margin-top: 40px; padding-bottom: 32px; }
            .exp-band .exp-band__inner { padding-top: 32px; }
            .exp-card { flex-basis: 64vw; }
            .exp-card__img-wrap { height: 280px; }
        }

        @media (prefers-reduced-motion: reduce) {
            .exp-card__img { transition: none; }
            .exp-card:hover .exp-card__img { transform: none; }
        }
