/* Public catalog + FAQ refinement. Intentionally excludes Admin, checkout,
   shared navigation, pricing and authorization. Existing Eden palette/type. */
.eden-public {
    --catalog-ink: #173f2b;
    --catalog-muted: #496655;
    --catalog-line: #cfe0cf;
    --catalog-gap: clamp(14px, 2.2vw, 30px);
    background: var(--light-gray);
}
.eden-public main { color: var(--catalog-ink); }
.eden-public main [hidden] { display: none !important; }
.eden-public main ::selection { background: var(--catalog-ink); color: var(--white); }
.eden-public main :is(input, select, textarea) { caret-color: var(--accent-color); }
.eden-public main :is(button, a, input, select, summary):focus-visible {
    outline: 3px solid var(--accent-color);
    outline-offset: 4px;
    box-shadow: none;
}
.eden-public main a { text-underline-offset: .25em; }
.eden-catalog :is(.menu-main, .shop-main) {
    padding-top: clamp(120px, 12vw, 160px);
    min-height: 80vh;
    background: var(--light-gray);
}
.eden-catalog :is(.menu-main, .shop-main) > .container {
    max-width: 1440px;
    padding-inline: clamp(20px, 4vw, 64px);
}
.eden-public .catalog-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
    padding-bottom: clamp(28px, 4vw, 48px);
    margin-bottom: 28px;
    border-bottom: 1px solid var(--catalog-line);
    text-align: left;
}
.eden-public .catalog-heading h1 {
    font-size: clamp(2.4rem, 5.5vw, 4.75rem);
    line-height: 1.2;
    letter-spacing: -.025em;
    font-weight: 600;
    color: var(--catalog-ink);
    margin: 0;
    text-wrap: balance;
}
.eden-public .catalog-heading p {
    max-width: 420px;
    margin: 0;
    color: var(--catalog-muted);
    font-size: 1rem;
    line-height: 1.8;
}
.eden-public :is(#menu-products, #online-shop) .category-filters {
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 28px;
    padding: 4px 0;
    overflow: visible;
}
.eden-public .filter-btn {
    min-height: 44px;
    padding: 10px 18px;
    border-radius: 24px;
    border-color: var(--catalog-line);
    color: var(--catalog-ink);
    font: inherit;
    font-size: .875rem;
    transition: background-color .15s ease, color .15s ease;
}
.eden-public .filter-btn.active {
    border-color: var(--catalog-ink);
    background: var(--catalog-ink);
    color: var(--white);
}
.eden-public :is(#menu-products, #online-shop) .shop-grid-online,
.eden-public :is(#menu-products, #online-shop) .eden-skeleton-grid.cards {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--catalog-gap);
    align-items: stretch;
}
.eden-public :is(#menu-products, #online-shop) .shop-card {
    min-width: 0;
    border: 0;
    border-radius: 14px;
    box-shadow: none;
    background: var(--white);
    overflow: hidden;
    transform: none;
}
.eden-public :is(#menu-products, #online-shop) .shop-img-wrapper {
    aspect-ratio: 1;
    flex: 0 0 auto;
    width: 100%;
    height: auto;
    background: var(--catalog-line);
    overflow: hidden;
}
.eden-public :is(#menu-products, #online-shop) .shop-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transform: none;
    transition: none;
}
.eden-public :is(#menu-products, #online-shop) .shop-img-wrapper:focus-visible {
    outline-offset: -5px;
}
.eden-public :is(#menu-products, #online-shop) .shop-details {
    padding: clamp(14px, 1.6vw, 24px);
    min-width: 0;
    gap: 0;
}
.eden-public :is(#menu-products, #online-shop) .shop-category {
    color: var(--catalog-muted);
    font-size: .78rem;
    margin-bottom: 6px;
}
.eden-public :is(#menu-products, #online-shop) .shop-details h3 {
    display: block;
    overflow: visible;
    min-height: 0;
    margin: 0 0 12px;
    color: var(--catalog-ink);
    font-size: clamp(1rem, 1.3vw, 1.2rem);
    line-height: 1.55;
    overflow-wrap: anywhere;
    -webkit-line-clamp: unset;
}
.eden-public :is(#menu-products, #online-shop) .shop-details p {
    font-size: .875rem;
    color: var(--catalog-muted);
    line-height: 1.7;
    margin-bottom: 14px;
    overflow-wrap: anywhere;
}
.eden-public :is(#menu-products, #online-shop) .shop-details p:empty { display: none; }
.eden-public :is(#menu-products, #online-shop) .shop-action {
    gap: 12px;
    padding-top: 16px;
    border-top: 1px solid var(--light-gray);
    margin-top: auto;
}
.eden-public :is(#menu-products, #online-shop) .shop-price {
    font-size: 1.35rem;
    line-height: 1.4;
    color: var(--catalog-ink);
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
}
.eden-public :is(#menu-products, #online-shop) .shop-action .btn {
    min-height: 46px;
    border-radius: 10px;
    font: inherit;
    font-size: .9rem;
    padding: 10px;
    white-space: normal;
    transition: background-color .15s ease;
}
.eden-public #menu-products .menu-variant-label {
    display: block;
    color: var(--catalog-muted);
    font-size: .8rem;
    font-weight: 600;
    letter-spacing: 0;
}
.eden-public #menu-products .menu-variant-summary { margin-top: 4px; }
.eden-public #menu-products .menu-variant-price-list {
    display: grid;
    gap: 0;
    margin: 7px 0 0;
    padding: 0;
    border-block: 1px solid var(--catalog-line);
}
.eden-public #menu-products .menu-variant-price-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
    padding: 9px 2px;
    color: var(--catalog-ink);
}
.eden-public #menu-products .menu-variant-price-row + .menu-variant-price-row {
    border-top: 1px solid var(--light-gray);
}
.eden-public #menu-products .menu-variant-price-row dt {
    min-width: 0;
    overflow-wrap: anywhere;
    font-size: .9rem;
}
.eden-public #menu-products .menu-variant-price-row dd {
    display: inline-flex;
    align-items: baseline;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 5px;
    margin: 0;
    text-align: right;
    font-size: .78rem;
    color: var(--catalog-muted);
}
.eden-public #menu-products .menu-variant-price-row strong {
    color: var(--catalog-ink);
    font-size: .95rem;
    font-variant-numeric: tabular-nums;
}
.eden-public #menu-products .menu-variant-price-row.is-unavailable :is(dt, strong) {
    color: var(--catalog-muted);
    text-decoration: line-through;
}
.eden-public #menu-products .menu-variant-select {
    background: var(--white);
    min-height: 46px;
    font-size: 1rem;
    padding: 10px;
    border-radius: 10px;
}
.eden-public #menu-products .menu-card.is-browse-only .menu-variant-order-control { display: none; }
.eden-public #menu-products .menu-card.is-order-enabled .menu-variant-summary { display: none; }
.eden-public #menu-products .menu-card.is-browse-only .btn-add-cart { display: none; }
.eden-public #menu-products .menu-card.is-browse-only.has-multiple-variants .shop-action { display: none; }
.eden-public #menu-products .menu-card.is-browse-only:not(.has-multiple-variants) .shop-action {
    justify-content: flex-start;
}
.eden-public #menu-products .menu-order-access-note {
    justify-content: flex-start;
    max-width: none;
    margin-bottom: 24px;
    padding: 14px 18px;
    text-align: left;
    border-radius: 12px;
    background: var(--white);
    border-color: var(--catalog-line);
}
.eden-public #menu-products .menu-order-access-note span { color: var(--catalog-muted); }
.eden-public #menu-products .btn-add-cart:disabled.menu-order-locked {
    background: var(--light-gray) !important;
    color: var(--catalog-muted);
}
.eden-public .faq-page-preview {
    padding: clamp(56px, 7vw, 96px) 0;
    background: var(--white);
    margin-top: 48px;
}
.eden-public .faq-page-preview h2 {
    font-size: clamp(1.6rem, 3vw, 2.5rem);
    line-height: 1.45;
    color: var(--catalog-ink);
    margin-bottom: 12px;
}
.eden-public .faq-grid { align-items: start; }
.eden-public .faq-card {
    border: 0;
    border-bottom: 1px solid var(--catalog-line);
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    margin: 0;
    overflow: visible;
    min-width: 0;
}
.eden-public .faq-card summary {
    padding: 24px 0;
    color: var(--catalog-ink);
    font-size: 1rem;
    line-height: 1.65;
    font-weight: 600;
    flex-direction: row;
    align-items: center;
    overflow-wrap: anywhere;
}
.eden-public .faq-card summary span { padding-right: 0; }
.eden-public .faq-card summary::after {
    position: static;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--white);
    color: var(--accent-color);
}
.eden-public .faq-card details[open] summary { color: var(--accent-color); }
.eden-public .faq-card p {
    padding: 0 48px 28px 0;
    max-width: 72ch;
    line-height: 1.9;
    color: var(--catalog-muted);
    overflow-wrap: anywhere;
}
.eden-faq .faq-layout {
    display: block;
    max-width: 1240px;
    margin: auto;
    padding: 140px clamp(20px, 4vw, 48px) 96px;
}
.eden-faq :is(.faq-hub-hero, .faq-hub) { background: none; padding: 0; min-width: 0; }
.eden-faq :is(.faq-hub-hero, .faq-hub) > .container { max-width: none; padding: 0; }
.eden-faq .faq-hub-hero {
    text-align: center;
    padding-bottom: 40px;
}
.eden-faq .faq-hub-hero h1 {
    color: var(--catalog-ink);
    font-size: clamp(2.2rem, 4.4vw, 3.7rem);
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -.025em;
    margin-bottom: 20px;
}
.eden-faq .faq-hub-hero p { color: var(--catalog-muted); font-size: 1rem; line-height: 1.9; max-width: 64ch; margin: auto; }
.eden-faq .faq-hub-panel { max-width: none; }
.eden-faq .faq-hub-toolbar { max-width: 720px; margin: 0 auto 40px; }
.eden-faq .faq-search-label { text-align: center; gap: 16px; }
.eden-faq .faq-search-label input { min-height: 60px; text-align: left; }
.eden-public .faq-search-label { display: grid; gap: 12px; font-weight: 600; color: var(--catalog-ink); }
.eden-public .faq-search-label input {
    font-weight: 400;
    font-size: 1rem;
    border-radius: 12px;
    border-color: var(--catalog-line);
    color: var(--catalog-ink);
}
.eden-public .faq-search-label input::placeholder { color: var(--catalog-muted); opacity: 1; }
.eden-faq .faq-hub-grid,
.eden-faq .eden-skeleton-grid.faq {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 24px;
}
.eden-faq .faq-hub-grid .faq-card {
    background: var(--white);
    border: 1px solid var(--catalog-line);
    border-radius: 16px;
    box-shadow: none;
}
.eden-faq .faq-hub-grid .faq-card summary { padding: 24px; gap: 16px; min-height: 88px; }
.eden-faq .faq-hub-grid .faq-card summary::after {
    background: var(--light-gray);
    width: 36px;
    height: 36px;
}
.eden-faq .faq-hub-grid .faq-card details[open] summary::after {
    background: var(--catalog-ink);
    color: var(--white);
}
.eden-faq .faq-hub-grid .faq-card p {
    padding: 0 24px 28px;
    font-size: .95rem;
    line-height: 1.85;
}
.eden-faq .faq-empty {
    background: var(--white);
    border: 1px solid var(--catalog-line);
    border-radius: 16px;
    padding: 40px 24px;
}
.eden-faq .faq-more-link { margin-top: 32px; }
@media (hover: hover) {
    .eden-public .filter-btn:hover { background: var(--catalog-ink); color: var(--white); }
    .eden-public .faq-card summary:hover { color: var(--accent-color); }
}
@media (max-width: 1000px) {
    .eden-public :is(#menu-products, #online-shop) .shop-grid-online,
    .eden-public :is(#menu-products, #online-shop) .eden-skeleton-grid.cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .eden-public .catalog-heading { align-items: flex-start; flex-direction: column; gap: 18px; }
    .eden-public .catalog-heading p { max-width: 60ch; }
    .eden-faq .faq-layout { padding-top: 124px; }
}
@media (max-width: 760px) {
    .eden-faq .faq-hub-grid,
    .eden-faq .eden-skeleton-grid.faq { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    .eden-faq .faq-hub-hero { padding-bottom: 28px; }
    .eden-faq .faq-hub-toolbar { margin-bottom: 28px; }
    .eden-faq .faq-hub-grid .faq-card summary { padding: 20px; }
    .eden-faq .faq-hub-grid .faq-card p { padding: 0 20px 24px; }
}
@media (max-width: 600px) {
    .eden-public :is(#menu-products, #online-shop) .shop-grid-online,
    .eden-public :is(#menu-products, #online-shop) .eden-skeleton-grid.cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .eden-public :is(#menu-products, #online-shop) .category-filters {
        flex-wrap: nowrap;
        overflow-x: auto;
        scrollbar-width: thin;
        scrollbar-color: var(--catalog-line) transparent;
        padding: 6px 4px 12px;
        margin-inline: -4px;
    }
    .eden-public .category-filters::-webkit-scrollbar { display: block; height: 4px; }
    .eden-public .category-filters::-webkit-scrollbar-thumb { background: var(--catalog-line); }
    .eden-public #menu-products .menu-order-access-note { flex-direction: column; align-items: flex-start; gap: 4px; }
    .eden-public :is(#menu-products, #online-shop) .shop-action .btn { font-size: .82rem; }
    .eden-public :is(#menu-products, #online-shop) .shop-price { font-size: 1.2rem; }
    .eden-public .faq-card p { padding-right: 0; }
    .eden-faq .faq-layout { padding-bottom: 64px; }
}
@media (max-width: 359px) {
    .eden-public :is(#menu-products, #online-shop) .shop-grid-online,
    .eden-public :is(#menu-products, #online-shop) .eden-skeleton-grid.cards { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
    .eden-public main *, .eden-public main *::before, .eden-public main *::after {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }
}

/* Category navigation and bounded page navigation; no catalog data is merged. */
.eden-public .menu-browse-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 14px 24px;
    margin-bottom: 28px;
    padding: 18px 20px 16px;
    border: 1px solid var(--catalog-line);
    border-radius: 16px;
    background: var(--white);
    box-shadow: 0 12px 30px rgba(23, 63, 43, .06);
}
.eden-public .menu-category-heading {
    display: grid;
    gap: 2px;
    min-width: 0;
}
.eden-public .menu-category-label {
    color: var(--catalog-ink);
    font-weight: 600;
}
.eden-public .menu-category-hint {
    color: var(--catalog-muted);
    font-size: .8rem;
    line-height: 1.5;
}
.eden-public .menu-category-options {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    min-width: 0;
}
.eden-public .menu-category-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 46px;
    max-width: 100%;
    padding: 9px 13px 9px 16px;
    border: 1px solid var(--catalog-line);
    border-radius: 999px;
    background: var(--light-gray);
    color: var(--catalog-ink);
    font: inherit;
    font-size: .875rem;
    font-weight: 500;
    line-height: 1.35;
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.eden-public .menu-category-chip span {
    min-width: 0;
    overflow-wrap: anywhere;
}
.eden-public .menu-category-chip strong {
    display: inline-grid;
    place-items: center;
    min-width: 26px;
    min-height: 26px;
    padding-inline: 6px;
    border-radius: 999px;
    background: var(--white);
    color: var(--catalog-muted);
    font-size: .72rem;
    font-variant-numeric: tabular-nums;
}
.eden-public .menu-category-chip:hover {
    border-color: var(--accent-color);
    background: #e8f4eb;
}
.eden-public .menu-category-chip.is-active {
    border-color: var(--catalog-ink);
    background: var(--catalog-ink);
    color: var(--white);
}
.eden-public .menu-category-chip.is-active strong {
    background: rgba(255, 255, 255, .16);
    color: var(--white);
}
.eden-public .menu-result-count {
    margin: 0;
    text-align: right;
    color: var(--catalog-muted);
    font-variant-numeric: tabular-nums;
}
.eden-public #menu-item-grid { scroll-margin-top: 110px; }
.eden-public #menu-item-grid:focus-visible {
    outline: 3px solid var(--accent-color);
    outline-offset: 6px;
}
.eden-public .menu-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-top: 32px;
}
.eden-public .menu-pagination[hidden] { display: none; }
.eden-public .menu-pagination button {
    min-height: 48px;
    min-width: 100px;
    padding: 10px 18px;
    border: 1px solid var(--catalog-ink);
    border-radius: 12px;
    background: var(--catalog-ink);
    color: var(--white);
    font: inherit;
    font-weight: 500;
    cursor: pointer;
}
.eden-public .menu-pagination button:hover:not(:disabled) {
    background: var(--accent-color);
    border-color: var(--accent-color);
}
.eden-public .menu-pagination button:disabled {
    background: transparent;
    color: var(--catalog-muted);
    border-color: var(--catalog-line);
    cursor: default;
}
.eden-public .menu-page-status {
    text-align: center;
    color: var(--catalog-muted);
    font-variant-numeric: tabular-nums;
}
@media (max-width: 600px) {
    .eden-public #menu-products .menu-variant-price-row { gap: 6px; padding-block: 8px; }
    .eden-public #menu-products .menu-variant-price-row :is(dt, strong) { font-size: .82rem; }
    .eden-public .menu-browse-toolbar {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 10px 14px;
        padding: 15px 14px 13px;
        margin-inline: -4px;
    }
    .eden-public .menu-category-hint { display: none; }
    .eden-public .menu-category-options {
        flex-wrap: nowrap;
        gap: 8px;
        margin-inline: -14px;
        padding: 2px 14px 8px;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: inline proximity;
        scrollbar-width: thin;
        scrollbar-color: var(--catalog-line) transparent;
    }
    .eden-public .menu-category-options::-webkit-scrollbar { height: 4px; }
    .eden-public .menu-category-options::-webkit-scrollbar-thumb {
        border-radius: 999px;
        background: var(--catalog-line);
    }
    .eden-public .menu-category-chip {
        flex: 0 0 auto;
        min-height: 44px;
        scroll-snap-align: start;
    }
    .eden-public .menu-result-count { text-align: right; }
    .eden-public .menu-pagination { gap: 10px; flex-wrap: wrap; }
    .eden-public .menu-pagination button { min-width: 88px; padding-inline: 12px; }
    .eden-public .menu-page-status { order: -1; flex-basis: 100%; }
}

/*
 * Menu + Shop catalog — Eden forest world 2026-09-27.
 * One sticky filter panel (search, live count, one-line category rail with
 * edge buttons), soft 20px product cards and pill controls that match the
 * member card, navbar, footer and home page.
 */
.eden-public.eden-catalog {
    --cat-ink: #17271d;
    --cat-text: #3d4d43;
    --cat-muted: #56675c;
    --cat-forest: #0f4a2b;
    --cat-green: #1a9345;
    --cat-green-strong: #137234;
    --cat-line: #e1ebe4;
    --cat-line-strong: #cfe0d5;
    --cat-mint: #f4f8f5;
    --cat-mint-strong: #e7f3eb;
    --cat-shadow: 0 1px 2px rgba(15, 74, 43, .05), 0 10px 28px rgba(15, 74, 43, .07);
    --cat-ease: cubic-bezier(.22, 1, .36, 1);
    background: var(--cat-mint);
}
.eden-public.eden-catalog :is(.menu-main, .shop-main) {
    padding-top: clamp(112px, 10vw, 136px);
    background: var(--cat-mint);
}
.eden-public.eden-catalog :is(.menu-main, .shop-main) > .container { max-width: 1280px; }

/* Heading: title and lead stacked on one left edge. */
.eden-public.eden-catalog .catalog-heading {
    display: grid;
    gap: 12px;
    justify-items: start;
    margin-bottom: 24px;
    padding-bottom: 0;
    border-bottom: 0;
}
.eden-public.eden-catalog .catalog-heading h1 {
    color: var(--cat-forest);
    font-size: clamp(2.25rem, 1.6rem + 2.6vw, 3.5rem);
    line-height: 1.15;
    letter-spacing: -.02em;
}
.eden-public.eden-catalog .catalog-heading p {
    max-width: 56ch;
    color: var(--cat-muted);
    font-size: clamp(1rem, .95rem + .2vw, 1.0625rem);
    line-height: 1.75;
}

/* Notices */
.eden-public.eden-catalog .shop-data-note {
    margin-bottom: 16px;
    padding: 12px 16px;
    border: 1px solid #f1d58a;
    border-radius: 14px;
    background: #fff8e1;
    color: #6b4f00;
}
.eden-public.eden-catalog .shop-empty-state {
    padding: 32px 24px;
    border: 1px solid var(--cat-line);
    border-radius: 20px;
    background: #fff;
    color: var(--cat-muted);
    text-align: center;
}

/* Filter panel */
.eden-public.eden-catalog .catalog-filter,
.eden-public.eden-catalog .menu-browse-toolbar.catalog-filter {
    grid-template-columns: minmax(0, 1fr);
    position: sticky;
    top: 92px;
    z-index: 20;
    display: grid;
    gap: 14px;
    margin: 0 0 28px;
    padding: 16px;
    border: 1px solid var(--cat-line);
    border-radius: 22px;
    background: rgba(255, 255, 255, .94);
    box-shadow: var(--cat-shadow);
    -webkit-backdrop-filter: saturate(1.4) blur(12px);
    backdrop-filter: saturate(1.4) blur(12px);
}
.eden-public.eden-catalog .catalog-filter-top {
    display: flex;
    align-items: center;
    gap: 16px;
}
.eden-public.eden-catalog .catalog-search {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1 1 auto;
    max-width: 520px;
    min-width: 0;
    margin: 0;
}
.eden-public.eden-catalog .catalog-search-icon {
    position: absolute;
    left: 16px;
    color: var(--cat-muted);
    pointer-events: none;
}
.eden-public.eden-catalog .catalog-search-input {
    width: 100%;
    min-height: 48px;
    margin: 0;
    padding: 0 48px 0 46px;
    border: 1px solid var(--cat-line-strong);
    border-radius: 999px;
    background: var(--cat-mint);
    color: var(--cat-ink);
    font: inherit;
    font-size: 1rem;
    transition: border-color .2s var(--cat-ease), background-color .2s var(--cat-ease), box-shadow .2s var(--cat-ease);
    -webkit-appearance: none;
    appearance: none;
}
.eden-public.eden-catalog .catalog-search-input::-webkit-search-cancel-button { display: none; }
.eden-public.eden-catalog .catalog-search-input::placeholder { color: #6f7f74; }
.eden-public.eden-catalog .catalog-search-input:hover { border-color: var(--cat-green); }
.eden-public.eden-catalog .catalog-search-input:focus {
    outline: none;
    border-color: var(--cat-green);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(26, 147, 69, .14);
}
.eden-public.eden-catalog .catalog-search-clear {
    position: absolute;
    right: 6px;
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--cat-mint-strong);
    color: var(--cat-forest);
    cursor: pointer;
}
.eden-public.eden-catalog .catalog-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
.eden-public.eden-catalog .catalog-result-count {
    margin: 0 0 0 auto;
    color: var(--cat-muted);
    font-size: .9375rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    text-align: right;
}

/* Category rail: one line on every width. */
.eden-public.eden-catalog .catalog-rail {
    position: relative;
    min-width: 0;
}
.eden-public.eden-catalog .catalog-rail-scroller,
.eden-public.eden-catalog :is(#menu-products, #online-shop) .catalog-rail-scroller {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    margin: 0;
    padding: 2px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-behavior: smooth;
    scroll-padding-inline: 48px;
    scrollbar-width: none;
}
.eden-public.eden-catalog .catalog-rail-scroller::-webkit-scrollbar { display: none; }
.eden-public.eden-catalog .catalog-rail.is-overflowing:not(.at-end) .catalog-rail-scroller {
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 64px), transparent);
    mask-image: linear-gradient(90deg, #000 calc(100% - 64px), transparent);
}
.eden-public.eden-catalog .catalog-rail.is-overflowing:not(.at-start):not(.at-end) .catalog-rail-scroller {
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 64px, #000 calc(100% - 64px), transparent);
    mask-image: linear-gradient(90deg, transparent, #000 64px, #000 calc(100% - 64px), transparent);
}
.eden-public.eden-catalog .catalog-rail.is-overflowing.at-end:not(.at-start) .catalog-rail-scroller {
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 64px);
    mask-image: linear-gradient(90deg, transparent, #000 64px);
}
.eden-public.eden-catalog .catalog-rail-button {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: inline-grid;
    place-items: center;
    width: 40px;
    height: 40px;
    margin-top: -20px;
    padding: 0;
    border: 1px solid var(--cat-line-strong);
    border-radius: 50%;
    background: #fff;
    color: var(--cat-forest);
    box-shadow: 0 4px 12px rgba(15, 74, 43, .12);
    cursor: pointer;
}
.eden-public.eden-catalog .catalog-rail-button.is-prev { left: -4px; }
.eden-public.eden-catalog .catalog-rail-button.is-next { right: -4px; }
.eden-public.eden-catalog .catalog-rail-button:hover { border-color: var(--cat-green); }

.eden-public.eden-catalog .menu-category-chip,
.eden-public.eden-catalog .filter-btn.menu-category-chip {
    display: inline-flex;
    align-items: center;
    flex: none;
    gap: 8px;
    min-height: 44px;
    margin: 0;
    padding: 0 8px 0 16px;
    border: 1px solid var(--cat-line);
    border-radius: 999px;
    background: #fff;
    color: var(--cat-text);
    font: inherit;
    font-size: .9375rem;
    font-weight: 500;
    white-space: nowrap;
    box-shadow: none;
    cursor: pointer;
    transition: background-color .2s var(--cat-ease), border-color .2s var(--cat-ease), color .2s var(--cat-ease);
}
.eden-public.eden-catalog .menu-category-chip strong {
    display: inline-grid;
    place-items: center;
    min-width: 28px;
    height: 28px;
    padding: 0 8px;
    border-radius: 999px;
    background: var(--cat-mint);
    color: var(--cat-muted);
    font-size: .8125rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.eden-public.eden-catalog .menu-category-chip:hover {
    border-color: var(--cat-line-strong);
    background: var(--cat-mint);
    color: var(--cat-ink);
}
.eden-public.eden-catalog .menu-category-chip.is-active,
.eden-public.eden-catalog .filter-btn.menu-category-chip.active {
    border-color: transparent;
    background: linear-gradient(150deg, #146b3c 0%, #0f4a2b 60%, #0a3520 100%);
    color: #fff;
    box-shadow: 0 4px 12px rgba(10, 53, 32, .2);
}
.eden-public.eden-catalog .menu-category-chip.is-active strong,
.eden-public.eden-catalog .filter-btn.menu-category-chip.active strong {
    background: rgba(255, 255, 255, .16);
    color: #fff;
}

/* Grid and cards */
.eden-public.eden-catalog :is(#menu-products, #online-shop) .shop-grid-online {
    gap: clamp(14px, 2vw, 24px);
    scroll-margin-top: 260px;
}
.eden-public.eden-catalog :is(#menu-products, #online-shop) .shop-card {
    border: 1px solid var(--cat-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--cat-shadow);
    transition: box-shadow .24s var(--cat-ease), border-color .24s var(--cat-ease);
}
.eden-public.eden-catalog :is(#menu-products, #online-shop) .shop-card:hover {
    border-color: var(--cat-line-strong);
    box-shadow: 0 2px 4px rgba(15, 74, 43, .06), 0 18px 36px rgba(15, 74, 43, .12);
}
.eden-public.eden-catalog :is(#menu-products, #online-shop) .shop-img-wrapper {
    border: 0;
    padding: 0;
    background: var(--cat-mint-strong);
}
.eden-public.eden-catalog :is(#menu-products, #online-shop) .shop-details { padding: 18px 20px 20px; }
.eden-public.eden-catalog :is(#menu-products, #online-shop) .shop-category {
    color: var(--cat-muted);
    font-size: .8125rem;
    font-weight: 500;
}
.eden-public.eden-catalog :is(#menu-products, #online-shop) .shop-details h3 {
    margin-bottom: 8px;
    color: var(--cat-ink);
    font-size: clamp(1.0625rem, 1rem + .3vw, 1.1875rem);
    font-weight: 600;
    line-height: 1.45;
}
.eden-public.eden-catalog :is(#menu-products, #online-shop) .shop-details p { color: var(--cat-muted); }
.eden-public.eden-catalog .menu-option-text { font-size: .85rem; }
.eden-public.eden-catalog :is(#menu-products, #online-shop) .catalog-stock {
    flex: 0 0 auto;
    height: auto;
    min-height: 0;
    display: inline-flex;
    align-self: flex-start;
    align-items: center;
    gap: 6px;
    margin: 0 0 14px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: .8125rem;
    font-weight: 500;
    line-height: 1.4;
}
.eden-public.eden-catalog :is(#menu-products, #online-shop) .catalog-stock::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
}
.eden-public.eden-catalog :is(#menu-products, #online-shop) .catalog-stock.is-in { background: var(--cat-mint-strong); color: var(--cat-green-strong); }
.eden-public.eden-catalog :is(#menu-products, #online-shop) .catalog-stock.is-out { background: #fdecea; color: #a8251c; }
.eden-public.eden-catalog :is(#menu-products, #online-shop) .shop-action {
    align-items: center;
    border-top: 1px solid var(--cat-line);
}
.eden-public.eden-catalog :is(#menu-products, #online-shop) .shop-price {
    color: var(--cat-forest);
    font-weight: 600;
}
.eden-public.eden-catalog :is(#menu-products, #online-shop) .shop-action .btn {
    min-height: 44px;
    padding: 0 18px;
    border-radius: 999px;
    font-weight: 500;
    white-space: nowrap;
}
.eden-public.eden-catalog :is(#menu-products, #online-shop) .shop-action .btn:disabled {
    border-color: var(--cat-line);
    background: var(--cat-mint);
    color: #6f7f74;
    box-shadow: none;
    cursor: not-allowed;
}

/* Empty result */
.eden-public.eden-catalog .catalog-empty {
    display: grid;
    justify-items: center;
    gap: 6px;
    padding: 48px 24px;
    border: 1px dashed var(--cat-line-strong);
    border-radius: 22px;
    background: #fff;
    text-align: center;
}
.eden-public.eden-catalog .catalog-empty strong { color: var(--cat-ink); font-size: 1.0625rem; font-weight: 600; }
.eden-public.eden-catalog .catalog-empty span { color: var(--cat-muted); }
.eden-public.eden-catalog .catalog-empty-reset {
    min-height: 44px;
    margin-top: 10px;
    padding: 0 20px;
    border: 1px solid var(--cat-green);
    border-radius: 999px;
    background: var(--cat-green);
    color: #fff;
    font: inherit;
    font-weight: 500;
    cursor: pointer;
}

/* Pagination */
.eden-public.eden-catalog .menu-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 32px;
}
.eden-public.eden-catalog .menu-pagination button {
    min-width: 120px;
    min-height: 46px;
    padding: 0 20px;
    border: 1px solid var(--cat-line-strong);
    border-radius: 999px;
    background: #fff;
    color: var(--cat-forest);
    font: inherit;
    font-weight: 500;
    cursor: pointer;
}
.eden-public.eden-catalog .menu-pagination button:hover:not(:disabled) {
    border-color: var(--cat-green);
    background: var(--cat-mint-strong);
}
.eden-public.eden-catalog .menu-pagination button:disabled { opacity: .45; cursor: not-allowed; }
.eden-public.eden-catalog .menu-page-status {
    min-width: 120px;
    color: var(--cat-muted);
    text-align: center;
    font-variant-numeric: tabular-nums;
}

/* FAQ preview under the catalog */
.eden-public.eden-catalog .faq-page-preview { background: #fff; }
.eden-public.eden-catalog .faq-page-preview h2 { color: var(--cat-forest); font-weight: 600; }
.eden-public.eden-catalog .faq-card {
    border: 1px solid var(--cat-line);
    border-radius: 18px;
    box-shadow: none;
}
.eden-public.eden-catalog .faq-card:has(details[open]) {
    border-color: var(--cat-line-strong);
    box-shadow: var(--cat-shadow);
}

@media (max-width: 760px) {
    .eden-public.eden-catalog .catalog-filter {
        top: 76px;
        gap: 12px;
        margin-inline: -4px;
        padding: 12px;
        border-radius: 18px;
    }
    .eden-public.eden-catalog .catalog-filter-top { flex-wrap: wrap; gap: 8px; }
    .eden-public.eden-catalog .catalog-search { flex-basis: 100%; max-width: none; }
    .eden-public.eden-catalog .catalog-result-count { margin-left: 4px; text-align: left; font-size: .875rem; }
    .eden-public.eden-catalog .catalog-rail-button { display: none; }
    .eden-public.eden-catalog .menu-category-chip { min-height: 40px; font-size: .875rem; }
    .eden-public.eden-catalog :is(#menu-products, #online-shop) .shop-details { padding: 14px; }
    .eden-public.eden-catalog :is(#menu-products, #online-shop) .shop-action { flex-wrap: wrap; }
    .eden-public.eden-catalog :is(#menu-products, #online-shop) .shop-action .btn { width: 100%; }
    .eden-public.eden-catalog .menu-pagination button { min-width: 96px; }
}

/* Catalog hero band — forest card like the member card, with live figures. */
.eden-public.eden-catalog :is(.menu-main, .shop-main) { padding-top: clamp(100px, 9vw, 120px); }
.eden-public.eden-catalog .catalog-heading {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 24px 40px;
    margin-bottom: 20px;
    padding: clamp(28px, 4vw, 48px);
    overflow: hidden;
    border-radius: 28px;
    background:
        radial-gradient(70% 120% at 100% 0%, rgba(127, 224, 161, .22) 0%, rgba(127, 224, 161, 0) 60%),
        radial-gradient(50% 80% at 0% 100%, rgba(10, 53, 32, .5) 0%, rgba(10, 53, 32, 0) 70%),
        linear-gradient(150deg, #146b3c 0%, #0f4a2b 50%, #0a3520 100%);
    box-shadow: 0 2px 4px rgba(10, 53, 32, .12), 0 20px 44px rgba(10, 53, 32, .18);
    isolation: isolate;
}
.eden-public.eden-catalog .catalog-heading::after {
    content: "";
    position: absolute;
    right: -90px;
    bottom: -150px;
    z-index: -1;
    width: 340px;
    height: 340px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .08);
    box-shadow: 0 0 0 44px rgba(255, 255, 255, .025), 0 0 0 88px rgba(255, 255, 255, .02);
}
.eden-public.eden-catalog .catalog-heading-copy { display: grid; gap: 12px; min-width: 0; }
.eden-public.eden-catalog .catalog-heading h1 { color: #fff; }
.eden-public.eden-catalog .catalog-heading p { color: rgba(255, 255, 255, .82); max-width: 48ch; }
.eden-public.eden-catalog .catalog-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(96px, auto));
    margin: 0;
    padding: 16px 4px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 20px;
    background: rgba(255, 255, 255, .07);
}
.eden-public.eden-catalog .catalog-stats > div {
    display: grid;
    gap: 2px;
    padding: 0 20px;
}
.eden-public.eden-catalog .catalog-stats > div + div { border-left: 1px solid rgba(255, 255, 255, .14); }
.eden-public.eden-catalog .catalog-stats dt {
    color: rgba(255, 255, 255, .72);
    font-size: .8125rem;
    white-space: nowrap;
}
.eden-public.eden-catalog .catalog-stats dd {
    margin: 0;
    color: #fff;
    font-size: clamp(1.375rem, 1.1rem + .9vw, 1.875rem);
    font-weight: 600;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
}
.eden-public.eden-catalog .catalog-stats:not(.is-ready) dd { color: rgba(255, 255, 255, .45); }

@media (max-width: 1000px) {
    .eden-public.eden-catalog .catalog-heading { grid-template-columns: minmax(0, 1fr); align-items: start; }
    .eden-public.eden-catalog .catalog-stats { justify-self: stretch; grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .eden-public.eden-catalog .catalog-heading { gap: 20px; padding: 26px 20px 20px; border-radius: 22px; }
    .eden-public.eden-catalog .catalog-stats { padding: 12px 0; border-radius: 16px; }
    .eden-public.eden-catalog .catalog-stats > div { padding: 0 12px; }
    .eden-public.eden-catalog .catalog-stats dt { font-size: .75rem; }
}

/*
 * Menu book — mobile-first reading layout (2026-09-28).
 * The menu reads like a printed menu: category sections with counts, light
 * rows (photo → name → short description → price), a pinned rail that marks
 * the section being read, and a bottom sheet for the full item.
 */
.eden-public.eden-catalog #menu-products .menu-book {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(28px, 4vw, 40px);
}
.eden-public.eden-catalog #menu-products .menu-section {
    min-width: 0;
    scroll-margin-top: 156px;
    content-visibility: auto;
    contain-intrinsic-block-size: auto 900px;
}
.eden-public.eden-catalog #menu-products .menu-section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 12px;
    padding: 0 4px 10px;
    border-bottom: 1px solid var(--cat-line-strong);
}
.eden-public.eden-catalog #menu-products .menu-section-head h2 {
    margin: 0;
    color: var(--cat-forest);
    font-size: clamp(1.25rem, 1.1rem + .6vw, 1.5rem);
    font-weight: 600;
    line-height: 1.35;
}
.eden-public.eden-catalog #menu-products .menu-section-head span {
    color: var(--cat-muted);
    font-size: .875rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.eden-public.eden-catalog #menu-products .menu-row-list {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.eden-public.eden-catalog #menu-products .menu-row { margin: 0; min-width: 0; }
.eden-public.eden-catalog #menu-products .menu-row-button {
    position: relative;
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    width: 100%;
    min-height: 108px;
    margin: 0;
    padding: 10px 14px 10px 10px;
    border: 1px solid var(--cat-line);
    border-radius: 18px;
    background: #fff;
    color: var(--cat-ink);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color .2s var(--cat-ease), box-shadow .2s var(--cat-ease);
    -webkit-tap-highlight-color: transparent;
}
.eden-public.eden-catalog #menu-products .menu-row-button:hover {
    border-color: var(--cat-line-strong);
    box-shadow: var(--cat-shadow);
}
.eden-public.eden-catalog #menu-products .menu-row-button:active { background: var(--cat-mint); }
.eden-public.eden-catalog #menu-products .menu-row-media {
    display: block;
    width: 88px;
    height: 88px;
    overflow: hidden;
    border-radius: 14px;
    background: var(--cat-mint-strong);
}
.eden-public.eden-catalog #menu-products .menu-row-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.eden-public.eden-catalog #menu-products .menu-row-body {
    display: grid;
    gap: 3px;
    min-width: 0;
}
.eden-public.eden-catalog #menu-products .menu-row-name {
    display: -webkit-box;
    overflow: hidden;
    padding-right: 4px;
    color: var(--cat-ink);
    font-size: 1.0625rem;
    font-weight: 600;
    line-height: 1.4;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.eden-public.eden-catalog #menu-products .menu-row-desc {
    display: -webkit-box;
    overflow: hidden;
    color: var(--cat-muted);
    font-size: .875rem;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
}
.eden-public.eden-catalog #menu-products .menu-row-prices {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 6px;
}
.eden-public.eden-catalog #menu-products .menu-row-price {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--cat-mint);
    line-height: 1.5;
}
.eden-public.eden-catalog #menu-products .menu-row-price span {
    color: var(--cat-muted);
    font-size: .75rem;
}
.eden-public.eden-catalog #menu-products .menu-row-price strong {
    color: var(--cat-forest);
    font-size: .9375rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.eden-public.eden-catalog #menu-products .menu-row-price.is-single {
    padding: 0;
    background: none;
}
.eden-public.eden-catalog #menu-products .menu-row-price.is-single strong { font-size: 1.0625rem; }
.eden-public.eden-catalog #menu-products .menu-row.is-sold-out .menu-row-media img { filter: grayscale(.7); opacity: .6; }
.eden-public.eden-catalog #menu-products .menu-row.is-sold-out :is(.menu-row-name, .menu-row-price strong) { color: var(--cat-muted); }
.eden-public.eden-catalog #menu-products .menu-row-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(23, 39, 29, .78);
    color: #fff;
    font-size: .75rem;
    font-weight: 500;
}

/* Pinned rail: the whole panel while near the top, then only the rail. */
.eden-public.eden-catalog .catalog-filter { margin-bottom: 20px; }
.eden-public.eden-catalog .catalog-filter { transition: padding .2s var(--cat-ease), gap .2s var(--cat-ease); }
.eden-public.eden-catalog .catalog-filter .catalog-rail:not([hidden]) { display: flex; align-items: center; gap: 8px; }
.eden-public.eden-catalog .catalog-filter .catalog-rail-scroller { flex: 1 1 auto; min-width: 0; }
.eden-public.eden-catalog .catalog-filter .menu-category-chip { text-decoration: none; }
.eden-public.eden-catalog .catalog-search-toggle {
    display: none;
    place-items: center;
    flex: none;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid var(--cat-line-strong);
    border-radius: 50%;
    background: var(--cat-mint);
    color: var(--cat-forest);
    cursor: pointer;
}
.eden-public.eden-catalog .catalog-search-toggle .catalog-search-icon { position: static; color: currentColor; }
.eden-public.eden-catalog .catalog-filter.is-stuck:not(.no-rail):not(.is-searching):not(.has-query) {
    gap: 0;
    padding: 8px;
    border-radius: 999px;
}
.eden-public.eden-catalog .catalog-filter.is-stuck:not(.no-rail):not(.is-searching):not(.has-query) .catalog-filter-top { display: none; }
.eden-public.eden-catalog .catalog-filter.is-stuck:not(.no-rail):not(.is-searching):not(.has-query) .catalog-search-toggle { display: inline-grid; }
.eden-public.eden-catalog .catalog-filter.is-stuck:not(.no-rail):not(.is-searching):not(.has-query) .catalog-rail-button.is-prev { left: 46px; }
.eden-public.eden-catalog .catalog-filter .menu-category-chip:focus-visible { outline-offset: 2px; }

/* Bottom sheet with the full item (the existing card). */
html.menu-sheet-open { overflow: hidden; }
.eden-public.eden-catalog .menu-sheet {
    width: 100%;
    max-width: none;
    height: 100%;
    max-height: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--cat-ink);
}
.eden-public.eden-catalog .menu-sheet[open] {
    display: flex;
    align-items: flex-end;
    justify-content: center;
}
.eden-public.eden-catalog .menu-sheet::backdrop {
    background: rgba(10, 30, 20, .5);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
}
.eden-public.eden-catalog .menu-sheet-panel {
    position: relative;
    width: min(560px, 100%);
    max-height: 90vh;
    max-height: 90dvh;
    overflow-y: auto;
    overscroll-behavior: contain;
    border-radius: 24px 24px 0 0;
    background: #fff;
    box-shadow: 0 -12px 40px rgba(10, 53, 32, .22);
    animation: menu-sheet-up .32s var(--cat-ease) both;
}
.eden-public.eden-catalog .menu-sheet-grip {
    position: absolute;
    top: 8px;
    left: 50%;
    z-index: 2;
    width: 40px;
    height: 4px;
    margin-left: -20px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .8);
    box-shadow: 0 1px 3px rgba(0, 0, 0, .2);
}
.eden-public.eden-catalog .menu-sheet-close {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .92);
    color: var(--cat-ink);
    box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
    cursor: pointer;
}
.eden-public.eden-catalog #menu-products .menu-sheet .shop-card {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.eden-public.eden-catalog #menu-products .menu-sheet .shop-img-wrapper { aspect-ratio: 4 / 3; }
.eden-public.eden-catalog #menu-products .menu-sheet .shop-details { padding: 20px 22px calc(24px + env(safe-area-inset-bottom)); }
.eden-public.eden-catalog #menu-products .menu-sheet .shop-details h3 { font-size: 1.375rem; }
.eden-public.eden-catalog #menu-products .menu-sheet .shop-details p {
    display: block;
    overflow: visible;
    -webkit-line-clamp: unset;
    font-size: .9375rem;
}
@keyframes menu-sheet-up {
    from { transform: translateY(40px); opacity: .001; }
    to { transform: none; opacity: 1; }
}

@media (min-width: 761px) {
    .eden-public.eden-catalog .menu-sheet[open] { align-items: center; }
    .eden-public.eden-catalog .menu-sheet-panel { border-radius: 24px; max-height: 88vh; }
    .eden-public.eden-catalog .menu-sheet-grip { display: none; }
}
@media (min-width: 900px) {
    .eden-public.eden-catalog #menu-products .menu-row-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px 16px;
    }
    .eden-public.eden-catalog #menu-products .menu-row-button { grid-template-columns: 96px minmax(0, 1fr); }
    .eden-public.eden-catalog #menu-products .menu-row-media { width: 96px; height: 96px; }
    .eden-public.eden-catalog #menu-products .menu-row-desc { -webkit-line-clamp: 2; }
    .eden-public.eden-catalog #menu-products .menu-section { scroll-margin-top: 176px; }
}
@media (max-width: 760px) {
    .eden-public.eden-catalog #menu-products .menu-section { scroll-margin-top: 140px; }
    .eden-public.eden-catalog .catalog-filter.is-stuck:not(.no-rail):not(.is-searching):not(.has-query) { margin-inline: -8px; }
}
@media (max-width: 359px) {
    .eden-public.eden-catalog #menu-products .menu-row-button { grid-template-columns: 72px minmax(0, 1fr); gap: 10px; }
    .eden-public.eden-catalog #menu-products .menu-row-media { width: 72px; height: 72px; }
}
@media (prefers-reduced-motion: reduce) {
    .eden-public.eden-catalog .menu-sheet-panel { animation: none; }
}

/* Shop with a single category: no rail, so the pinned bar is a slim search. */
.eden-public.eden-catalog .catalog-filter.no-rail.is-stuck {
    gap: 0;
    padding: 8px 8px 8px 8px;
    border-radius: 999px;
}
.eden-public.eden-catalog .catalog-filter.no-rail.is-stuck .catalog-search-input { min-height: 42px; }
.eden-public.eden-catalog .catalog-filter.no-rail.is-stuck .catalog-result-count { padding-right: 10px; }
@media (max-width: 760px) {
    .eden-public.eden-catalog .catalog-filter.no-rail.is-stuck { margin-inline: -8px; }
    .eden-public.eden-catalog .catalog-filter.no-rail.is-stuck .catalog-filter-top { flex-wrap: nowrap; }
    .eden-public.eden-catalog .catalog-filter.no-rail.is-stuck .catalog-search { flex: 1 1 auto; }
    .eden-public.eden-catalog .catalog-filter.no-rail.is-stuck .catalog-result-count { display: none; }
}

/* Loading placeholder shaped like the menu-book rows. */
.eden-public.eden-catalog .eden-skeleton-menu-book { display: grid; gap: 10px; }
.eden-public.eden-catalog .eden-skeleton-menu-row {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    min-height: 108px;
    padding: 10px;
    border: 1px solid var(--cat-line);
    border-radius: 18px;
    background: #fff;
}
.eden-public.eden-catalog .eden-skeleton-menu-row .eden-skeleton-media {
    display: block;
    width: 88px;
    height: 88px;
    margin: 0;
    border-radius: 14px;
    aspect-ratio: auto;
}
.eden-public.eden-catalog .eden-skeleton-menu-row > span:last-child { display: grid; gap: 10px; }
@media (min-width: 900px) {
    .eden-public.eden-catalog .eden-skeleton-menu-book { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
}

/* Spacing: the site-wide `section { padding: 100px 0 }` must not pad menu
   categories; the pinned filter keeps one even gap above the first heading. */
.eden-public.eden-catalog #menu-products .menu-section { padding: 0; }
.eden-public.eden-catalog .catalog-filter,
.eden-public.eden-catalog .menu-book-toolbar.catalog-filter { margin-bottom: 24px; }

/*
 * Catalog heading — "counter display" (2026-09-28). Same light, calm base as
 * the blog masthead, but its own identity: real product photos stand side by
 * side like a café counter, and the figures sit under the title as chips.
 */
.eden-public.eden-catalog .catalog-heading {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(20px, 4vw, 48px);
    padding: clamp(28px, 4vw, 44px);
    border: 1px solid var(--cat-line);
    background:
        radial-gradient(80% 120% at 100% 100%, rgba(26, 147, 69, .1) 0%, rgba(26, 147, 69, 0) 60%),
        #fff;
    box-shadow: 0 1px 2px rgba(15, 74, 43, .05), 0 18px 40px rgba(15, 74, 43, .08);
}
.eden-public.eden-catalog .catalog-heading::after { display: none; }
.eden-public.eden-catalog .catalog-heading:has(.catalog-hero-photos[hidden]) { grid-template-columns: minmax(0, 1fr); }
.eden-public.eden-catalog .catalog-heading h1 { color: var(--cat-forest); }
.eden-public.eden-catalog .catalog-heading p { color: var(--cat-text); }
.eden-public.eden-catalog .catalog-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
}
.eden-public.eden-catalog .catalog-stats > div,
.eden-public.eden-catalog .catalog-stats > div + div {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    padding: 8px 14px;
    border: 1px solid var(--cat-line);
    border-radius: 999px;
    background: var(--cat-mint);
}
.eden-public.eden-catalog .catalog-stats dt { order: 2; color: var(--cat-muted); font-size: .8125rem; }
.eden-public.eden-catalog .catalog-stats dd { order: 1; color: var(--cat-forest); font-size: 1.0625rem; }
.eden-public.eden-catalog .catalog-stats > div:last-child dt { order: 0; }
.eden-public.eden-catalog .catalog-stats:not(.is-ready) { visibility: hidden; }

.eden-public.eden-catalog .catalog-hero-photos {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: center;
    gap: clamp(10px, 1.6vw, 18px);
    min-width: 0;
}
.eden-public.eden-catalog .catalog-hero-photos[hidden] { display: none; }
.eden-public.eden-catalog .catalog-hero-photo {
    display: block;
    overflow: hidden;
    aspect-ratio: 4 / 5;
    border-radius: 20px;
    background: var(--cat-mint-strong);
    box-shadow: 0 10px 24px rgba(15, 74, 43, .14);
}
.eden-public.eden-catalog .catalog-hero-photo.is-2 { transform: translateY(-14px); }
.eden-public.eden-catalog .catalog-hero-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 1000px) {
    .eden-public.eden-catalog .catalog-heading { grid-template-columns: minmax(0, 1fr); }
    .eden-public.eden-catalog .catalog-hero-photos { max-width: 420px; }
}
@media (max-width: 600px) {
    .eden-public.eden-catalog .catalog-hero-photos { gap: 8px; }
    .eden-public.eden-catalog .catalog-hero-photo { border-radius: 14px; aspect-ratio: 1; }
    .eden-public.eden-catalog .catalog-hero-photo.is-2 { transform: none; }
    .eden-public.eden-catalog .catalog-stats > div { padding: 6px 12px; }
}

/*
 * FAQ — help centre (2026-09-28). Keeps the owner's centered heading, centered
 * search and two equal columns, and gives the page its own identity: a mint
 * help band with a question icon, a search card floating on its edge, topic
 * chips with counts, topic-tagged question cards and a "still need help" card.
 */
.eden-faq {
    --faq-ink: #17271d;
    --faq-text: #3d4d43;
    --faq-muted: #56675c;
    --faq-forest: #0f4a2b;
    --faq-green: #1a9345;
    --faq-green-strong: #137234;
    --faq-line: #e1ebe4;
    --faq-line-strong: #cfe0d5;
    --faq-mint: #f4f8f5;
    --faq-mint-strong: #e7f3eb;
    --faq-shadow: 0 1px 2px rgba(15, 74, 43, .05), 0 10px 28px rgba(15, 74, 43, .07);
    --faq-ease: cubic-bezier(.22, 1, .36, 1);
    background: var(--faq-mint);
}
.eden-faq .faq-layout { max-width: 1160px; padding: clamp(100px, 9vw, 120px) 16px 88px; }
.eden-faq .faq-hub-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(36px, 5vw, 56px) 20px clamp(72px, 8vw, 96px);
    border-radius: 28px;
    background:
        radial-gradient(60% 90% at 50% 0%, rgba(255, 255, 255, .85) 0%, rgba(255, 255, 255, 0) 70%),
        linear-gradient(180deg, #e3f1e7 0%, #d4eadb 100%);
    text-align: center;
}
.eden-faq .faq-hero-icon {
    display: inline-grid;
    place-items: center;
    width: 64px;
    height: 64px;
    margin-bottom: 14px;
    border-radius: 20px;
    background: linear-gradient(150deg, #146b3c 0%, #0f4a2b 60%, #0a3520 100%);
    color: #fff;
    box-shadow: 0 10px 24px rgba(10, 53, 32, .22);
}
.eden-faq .faq-hub-hero h1 {
    color: var(--faq-forest);
    font-size: clamp(2.25rem, 1.6rem + 2.6vw, 3.5rem);
    font-weight: 600;
    letter-spacing: -.02em;
}
.eden-faq .faq-hub-hero p { color: var(--faq-text); font-size: 1.0625rem; line-height: 1.75; }

/* Search card floats on the band's lower edge. */
.eden-faq .faq-hub-toolbar {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 14px;
    max-width: 760px;
    margin: clamp(-56px, -6vw, -44px) auto 20px;
    padding: 18px;
    border: 1px solid var(--faq-line);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 2px 4px rgba(15, 74, 43, .06), 0 20px 44px rgba(15, 74, 43, .12);
}
.eden-faq .faq-search-label { gap: 10px; color: var(--faq-ink); font-size: .9375rem; }
.eden-faq .faq-search-field { position: relative; display: flex; align-items: center; }
.eden-faq .faq-search-icon { position: absolute; left: 18px; color: var(--faq-muted); pointer-events: none; }
.eden-faq .faq-search-label input {
    width: 100%;
    min-height: 56px;
    padding: 0 20px 0 50px;
    border: 1px solid var(--faq-line-strong);
    border-radius: 999px;
    background: var(--faq-mint);
    font-size: 1rem;
}
.eden-faq .faq-search-label input:focus {
    outline: none;
    border-color: var(--faq-green);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(26, 147, 69, .14);
}
.eden-faq .faq-topic-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.eden-faq .faq-topic-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    padding: 0 6px 0 14px;
    border: 1px solid var(--faq-line);
    border-radius: 999px;
    background: #fff;
    color: var(--faq-text);
    font: inherit;
    font-size: .875rem;
    font-weight: 500;
    cursor: pointer;
    transition: background-color .2s var(--faq-ease), border-color .2s var(--faq-ease), color .2s var(--faq-ease);
}
.eden-faq .faq-topic-chip strong {
    display: inline-grid;
    place-items: center;
    min-width: 26px;
    height: 26px;
    padding: 0 7px;
    border-radius: 999px;
    background: var(--faq-mint);
    color: var(--faq-muted);
    font-size: .75rem;
}
.eden-faq .faq-topic-chip:hover { border-color: var(--faq-line-strong); background: var(--faq-mint); color: var(--faq-ink); }
.eden-faq .faq-topic-chip.is-active {
    border-color: transparent;
    background: linear-gradient(150deg, #146b3c 0%, #0f4a2b 60%, #0a3520 100%);
    color: #fff;
}
.eden-faq .faq-topic-chip.is-active strong { background: rgba(255, 255, 255, .16); color: #fff; }
.eden-faq .faq-hub-count { margin: 0 0 14px; color: var(--faq-muted); font-size: .9375rem; text-align: center; }

/* Question cards */
.eden-faq .faq-hub-grid { gap: 14px 16px; }
.eden-faq .faq-hub-grid .faq-card {
    border: 1px solid var(--faq-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--faq-shadow);
    transition: border-color .2s var(--faq-ease), box-shadow .2s var(--faq-ease);
}
.eden-faq .faq-hub-grid .faq-card:has(details[open]) { border-color: var(--faq-green); }
.eden-faq .faq-hub-grid .faq-card summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 4px 16px;
    min-height: 0;
    padding: 20px 22px;
    color: var(--faq-ink);
}
.eden-faq .faq-hub-grid .faq-card summary .faq-card-topic {
    grid-column: 1;
    justify-self: start;
    padding: 2px 10px;
    border-radius: 999px;
    background: var(--faq-mint-strong);
    color: var(--faq-green-strong);
    font-size: .75rem;
    font-weight: 600;
}
.eden-faq .faq-hub-grid .faq-card summary span { grid-column: 1; }
.eden-faq .faq-hub-grid .faq-card summary::after { grid-column: 2; grid-row: 1 / span 2; background: var(--faq-mint); }
.eden-faq .faq-hub-grid .faq-card details[open] summary { color: var(--faq-forest); }
.eden-faq .faq-hub-grid .faq-card details[open] summary::after { background: var(--faq-green); color: #fff; }
.eden-faq .faq-hub-grid .faq-card p {
    margin: 0 22px 20px;
    padding: 14px 16px;
    border-radius: 14px;
    background: var(--faq-mint);
    color: var(--faq-text);
    line-height: 1.8;
}

/* Still need help */
.eden-faq .faq-help-card {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px 24px;
    margin-top: 32px;
    padding: 22px 26px;
    border-radius: 22px;
    background: linear-gradient(150deg, #146b3c 0%, #0f4a2b 60%, #0a3520 100%);
    color: #fff;
    box-shadow: 0 2px 4px rgba(10, 53, 32, .12), 0 16px 36px rgba(10, 53, 32, .18);
}
.eden-faq .faq-help-card div { display: grid; gap: 4px; }
.eden-faq .faq-help-card strong { font-size: 1.25rem; font-weight: 600; }
.eden-faq .faq-help-card span { color: rgba(255, 255, 255, .82); }
.eden-faq .faq-help-link {
    min-height: 46px;
    padding: 0 22px;
    border-radius: 999px;
    background: #fff;
    color: var(--faq-forest);
    font-weight: 600;
    text-decoration: none;
}
.eden-faq .faq-help-link:hover { background: var(--faq-mint-strong); color: var(--faq-forest); }

@media (max-width: 760px) {
    .eden-faq .faq-hub-hero { border-radius: 22px; }
    .eden-faq .faq-hub-toolbar { margin: -48px 8px 16px; padding: 14px; border-radius: 20px; }
    .eden-faq .faq-topic-chips { flex-wrap: nowrap; justify-content: flex-start; margin: 0 -14px; padding: 0 14px 2px; overflow-x: auto; scrollbar-width: none; }
    .eden-faq .faq-topic-chip { flex: none; }
    .eden-faq .faq-hub-grid .faq-card summary { padding: 16px 18px; }
    .eden-faq .faq-hub-grid .faq-card p { margin: 0 16px 16px; }
    .eden-faq .faq-help-card { padding: 20px; }
    .eden-faq .faq-help-link { width: 100%; justify-content: center; }
}

/*
 * FAQ — calm single column (2026-09-28, replaces the band + floating card).
 * One centred reading column: icon, title, lead, search, topics, then every
 * question as a row inside one white list with hairline dividers. No layered
 * panels competing for attention.
 */
.eden-faq .faq-layout { max-width: 860px; padding: clamp(104px, 9vw, 124px) 16px 88px; }
.eden-faq .faq-hub-hero {
    overflow: visible;
    padding: 0 0 28px;
    border-radius: 0;
    background: none;
}
.eden-faq .faq-hero-icon {
    width: 56px;
    height: 56px;
    margin-bottom: 16px;
    border-radius: 18px;
    box-shadow: 0 8px 20px rgba(10, 53, 32, .18);
}
.eden-faq .faq-hub-hero h1 { margin-bottom: 12px; font-size: clamp(2rem, 1.5rem + 2vw, 2.75rem); }
.eden-faq .faq-hub-hero p { max-width: 46ch; color: var(--faq-muted); font-size: 1rem; line-height: 1.75; }

.eden-faq .faq-hub-toolbar {
    gap: 16px;
    max-width: none;
    margin: 0 0 28px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
}
.eden-faq .faq-search-label { gap: 0; }
.eden-faq .faq-search-label > :not(.faq-search-field) { display: none; }
.eden-faq .faq-search-label { font-size: 0; }
.eden-faq .faq-search-label input {
    min-height: 58px;
    border-color: var(--faq-line);
    background: #fff;
    font-size: 1.0625rem;
    box-shadow: 0 1px 2px rgba(15, 74, 43, .05), 0 8px 24px rgba(15, 74, 43, .06);
}
.eden-faq .faq-topic-chip { min-height: 38px; background: transparent; }
.eden-faq .faq-topic-chip:not(.is-active) { border-color: var(--faq-line-strong); }
.eden-faq .faq-hub-count { margin: 0 0 10px 4px; font-size: .875rem; text-align: left; }

/* The list */
.eden-faq .faq-hub-grid {
    display: block;
    overflow: hidden;
    border: 1px solid var(--faq-line);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 74, 43, .05), 0 12px 32px rgba(15, 74, 43, .06);
}
.eden-faq .faq-hub-grid .faq-card {
    border: 0;
    border-bottom: 1px solid var(--faq-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    transition: background-color .2s var(--faq-ease);
}
.eden-faq .faq-hub-grid .faq-card:last-child { border-bottom: 0; }
.eden-faq .faq-hub-grid .faq-card:has(details[open]) { border-color: var(--faq-line); background: var(--faq-mint); }
.eden-faq .faq-hub-grid .faq-card:hover { background: var(--faq-mint); }
.eden-faq .faq-hub-grid .faq-card summary { gap: 6px 20px; padding: 20px 24px; }
.eden-faq .faq-hub-grid .faq-card summary span { font-size: 1.0625rem; font-weight: 600; line-height: 1.55; }
.eden-faq .faq-hub-grid .faq-card summary .faq-card-topic { padding: 0; background: none; font-size: .75rem; }
.eden-faq .faq-hub-grid .faq-card summary::after { background: var(--faq-mint-strong); }
.eden-faq .faq-hub-grid .faq-card details[open] summary { padding-bottom: 8px; }
.eden-faq .faq-hub-grid .faq-card p {
    max-width: 64ch;
    margin: 0;
    padding: 0 72px 22px 24px;
    border-radius: 0;
    background: none;
    color: var(--faq-text);
    font-size: 1rem;
    line-height: 1.85;
}
.eden-faq .faq-more-link { margin-top: 20px; }
.eden-faq .faq-help-card { margin-top: 28px; }

@media (max-width: 760px) {
    .eden-faq .faq-hub-toolbar { margin: 0 0 22px; padding: 0; }
    .eden-faq .faq-hub-grid { border-radius: 20px; }
    .eden-faq .faq-hub-grid .faq-card summary { padding: 16px 18px; }
    .eden-faq .faq-hub-grid .faq-card summary span { font-size: 1rem; }
    .eden-faq .faq-hub-grid .faq-card p { margin: 0; padding: 0 18px 18px; }
    .eden-faq .faq-topic-chips { margin: 0 -16px; padding: 0 16px 2px; }
}
