﻿:root {
    --bg: #fffdfc;
    --card: #ffffff;

    --text: #211d20;
    --muted: #978d91;

    --accent: #c72c50;
    --accent-secondary: #df5c79;
    --accent-soft: #fcecef;

    --border: #f1e4e7;
    --chip: #f7f5f5;

    --shadow: 0 8px 22px rgba(89, 60, 70, 0.08);
}


* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}


html,
body {
    width: 100%;
    min-height: 100%;
    overflow-x: hidden;
}


body {
    font-family: Arial, Helvetica, sans-serif;

    background: #353535;

    color: var(--text);

    -webkit-font-smoothing: antialiased;
}


button,
input,
a {
    font: inherit;
}


button {
    cursor: pointer;
}


button,
svg {
    -webkit-tap-highlight-color: transparent;
}


.app {
    width: 100%;
    max-width: 430px;
    min-height: 100vh;

    margin: 0 auto;

    background: var(--bg);

    padding-bottom: 84px;

    position: relative;

    overflow-x: hidden;
}



/* =========================
   HEADER
========================= */

.header {
    width: 100%;
    height: 86px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    padding: 14px 16px 10px;

    background: rgba(255, 253, 252, 0.98);

    position: sticky;
    top: 0;

    z-index: 30;

    backdrop-filter: blur(14px);
}


.brand {
    width: 125px;
    height: 58px;

    flex: 0 0 125px;

    display: flex;
    align-items: center;

    overflow: hidden;

    padding: 0;

    border: none;

    background: transparent;
}


.brand-logo {
    display: block !important;

    width: 125px !important;
    height: 58px !important;

    max-width: 125px !important;
    max-height: 58px !important;

    object-fit: contain !important;
    object-position: left center !important;
}


.header-actions {
    display: flex;
    align-items: center;

    gap: 8px;

    flex-shrink: 0;
}


.icon-button {
    width: 40px;
    height: 40px;

    flex: 0 0 40px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid var(--border);

    border-radius: 50%;

    background: #ffffff;

    color: var(--accent-secondary);

    box-shadow:
        0 5px 16px
        rgba(72, 48, 58, 0.08);
}


.icon-button svg {
    width: 18px;
    height: 18px;

    fill: none;
    stroke: currentColor;

    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


.header-actions
.icon-button:nth-child(2) svg {
    fill: currentColor;
    stroke: none;
}



/* =========================
   PAGES
========================= */

.page {
    display: none;
}


.page.active {
    display: block;
}


.content {
    width: 100%;
}



/* =========================
   HOME FILTERS
========================= */

.scroll-filters {
    position: fixed;

    top: 86px;
    left: 50%;

    width: min(100%, 430px);

    transform:
        translateX(-50%)
        translateY(-12px);

    z-index: 29;

    padding: 9px 0;

    background: rgba(255, 253, 252, 0.98);

    border-bottom:
        1px solid rgba(241, 228, 231, 0.8);

    box-shadow:
        0 5px 14px
        rgba(80, 55, 65, 0.05);

    backdrop-filter: blur(14px);

    opacity: 0;
    visibility: hidden;

    pointer-events: none;

    transition:
        opacity 0.18s ease,
        transform 0.18s ease,
        visibility 0.18s ease;
}


.scroll-filters.visible {
    opacity: 1;
    visibility: visible;

    pointer-events: auto;

    transform:
        translateX(-50%)
        translateY(0);
}



/* =========================
   FILTERS
========================= */

.filters-scroll {
    display: flex;
    align-items: center;

    gap: 8px;

    overflow-x: auto;

    padding: 0 16px;

    scrollbar-width: none;
}


.filters-scroll::-webkit-scrollbar {
    display: none;
}


.filter-chip {
    min-height: 42px;

    flex-shrink: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 5px;

    padding: 9px 17px;

    border: none;

    border-radius: 12px;

    background: var(--chip);

    color: var(--text);

    font-size: 14px;
}


.filter-chip.active {
    background: var(--accent-soft);

    color: var(--accent-secondary);
}


.filter-chip.filter-icon {
    width: 45px;

    padding: 0;
}


.filter-chip svg {
    width: 19px;
    height: 19px;

    fill: none;
    stroke: currentColor;

    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}


.chevron-icon {
    width: 14px !important;
    height: 14px !important;

    color: var(--muted);
}



/* =========================
   HOME
========================= */

.hero-section {
    padding: 8px 16px 30px;
}


.hero-section > h1 {
    margin: 8px 0 18px;

    font-size: 28px;
    line-height: 1.15;

    font-weight: 700;

    letter-spacing: -0.02em;
}



/* =========================
   CATALOG
========================= */

.catalog-page {
    padding: 18px 0 42px;
}


.catalog-page > .page-breadcrumb,
.catalog-page > h1,
.catalog-page > .catalog-title {
    margin-left: 16px;
    margin-right: 16px;
}


.catalog-page > h1 {
    margin-top: 4px;

    font-size: 30px;
    line-height: 1.15;

    font-weight: 700;
}


.catalog-filters {
    position: sticky;

    top: 86px;

    z-index: 24;

    margin-top: 22px;

    padding: 9px 0;

    background: rgba(255, 253, 252, 0.98);

    border-bottom:
        1px solid rgba(241, 228, 231, 0.8);

    backdrop-filter: blur(14px);
}


.catalog-filter-scroll {
    padding-left: 16px;
    padding-right: 16px;
}


.catalog-title {
    margin-top: 20px;
    margin-bottom: 18px;

    max-width: 360px;

    font-size: 25px;
    line-height: 1.15;

    font-weight: 600;

    letter-spacing: -0.02em;
}


.catalog-products {
    padding: 0 16px;
}



/* =========================
   PRODUCTS
========================= */

.products {
    width: 100%;

    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px;
}


.product-card {
    min-width: 0;

    overflow: hidden;

    border-radius: 17px;

    background: var(--card);

    box-shadow: var(--shadow);
}


.product-image {
    position: relative;

    width: 100%;

    aspect-ratio: 0.76;

    overflow: hidden;

    border-radius: 17px 17px 0 0;
}


.product-image.placeholder {
    display: flex;
    align-items: center;
    justify-content: center;

    background:
        linear-gradient(
            145deg,
            #fbe4e9 0%,
            #fff4f5 55%,
            #f8ece9 100%
        );

    color: #b76d7d;

    font-size: 12px;
}


.favorite {
    position: absolute;

    top: 10px;
    right: 10px;

    width: 36px;
    height: 36px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: none;

    border-radius: 50%;

    background:
        rgba(255, 255, 255, 0.96);

    color: var(--accent-secondary);

    box-shadow:
        0 4px 12px
        rgba(55, 39, 44, 0.10);
}


.favorite svg {
    width: 18px;
    height: 18px;

    fill: none;
    stroke: currentColor;

    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


.favorite.active svg {
    fill: var(--accent-secondary);
    stroke: var(--accent-secondary);
}


.product-meta {
    padding: 8px 9px 10px;
}


.product-meta h2 {
    min-height: 31px;

    display: flex;
    align-items: center;

    margin-bottom: 7px;

    overflow: hidden;

    color: #746c70;

    font-size: 11px;
    line-height: 1.25;

    font-weight: 500;

    white-space: nowrap;

    text-overflow: ellipsis;
}


.buy-button {
    width: 100%;
    height: 38px;

    padding: 0 12px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    border: none;

    border-radius: 14px;

    background: var(--accent-secondary);

    color: #ffffff;
}


.buy-price {
    flex: 1;

    text-align: center;

    font-size: 15px;

    font-weight: 600;
}


.buy-button svg {
    width: 18px;
    height: 18px;

    flex-shrink: 0;

    fill: none;
    stroke: currentColor;

    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}



/* =========================
   PAGINATION
========================= */

.pagination {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 8px;

    padding: 42px 16px 14px;
}


.pagination-page,
.pagination-arrow {
    width: 42px;
    height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: none;

    background: transparent;

    color: var(--text);

    border-radius: 11px;

    font-size: 18px;
}


.pagination-page.active {
    background: var(--accent-secondary);

    color: #ffffff;
}


.pagination-arrow {
    background: #ffffff;

    color: var(--accent-secondary);

    box-shadow:
        0 5px 16px
        rgba(72, 48, 58, 0.08);

    font-size: 28px;
}



/* =========================
   SIMPLE PAGES
========================= */

.simple-page {
    padding: 18px 16px 34px;
}


.page-breadcrumb {
    margin-bottom: 6px;

    color: var(--muted);

    font-size: 12px;
}


.simple-page > h1 {
    font-size: 30px;
    line-height: 1.15;

    font-weight: 700;
}



/* =========================
   FAVORITES
========================= */

.empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
}


.favorites-empty {
    padding: 30px 0 26px;
}


.favorites-empty.hidden {
    display: none;
}


.favorites-products {
    display: none;

    margin-top: 24px;
    margin-bottom: 34px;
}


.favorites-products.visible {
    display: grid;
}


.empty-state p {
    margin-bottom: 18px;

    text-align: center;

    font-size: 17px;
    line-height: 1.4;
}


.outline-button {
    min-width: 125px;
    min-height: 44px;

    padding: 10px 19px;

    border: 1px solid var(--accent-secondary);

    border-radius: 22px;

    background: #ffffff;

    color: var(--accent-secondary);

    font-size: 14px;
}


.primary-small-button {
    min-height: 42px;

    padding: 10px 18px;

    border: none;

    border-radius: 21px;

    background: var(--accent-secondary);

    color: #ffffff;

    font-size: 14px;
}


.favorites-catalog-button {
    align-self: flex-start;

    margin-top: 13px;
}



/* =========================
   CART
========================= */

.cart-heading-row {
    margin-top: 26px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;
}


.cart-heading-row > span {
    color: #686064;

    font-size: 18px;
}


.clear-cart-button {
    border: none;

    background: transparent;

    color: var(--accent-secondary);

    font-size: 14px;
    font-weight: 600;
}


.clear-cart-button.hidden {
    display: none;
}


.cart-empty-state {
    min-height: 270px;

    display: flex;
    flex-direction: column;

    align-items: center;
    justify-content: center;

    padding: 22px 0 26px;
}


.cart-empty-state.hidden {
    display: none;
}


.empty-cart-icon {
    width: 50px;
    height: 50px;

    margin-bottom: 18px;

    fill: none;

    stroke: var(--accent-secondary);

    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}


.cart-empty-state p {
    margin-bottom: 20px;

    color: #756c70;

    font-size: 18px;
}


.centered-button {
    align-self: center;
}


.cart-items {
    display: none;

    margin-top: 20px;
}


.cart-items.visible {
    display: flex;
    flex-direction: column;

    gap: 12px;
}


.cart-item {
    display: grid;

    grid-template-columns:
        86px
        minmax(0, 1fr);

    gap: 12px;

    padding: 10px;

    border-radius: 16px;

    background: #ffffff;

    box-shadow: var(--shadow);
}


.cart-item-image {
    width: 86px;
    height: 108px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 12px;

    background:
        linear-gradient(
            145deg,
            #fbe4e9,
            #fff4f5
        );

    color: #b76d7d;

    font-size: 10px;
}


.cart-item-content {
    min-width: 0;

    display: flex;
    flex-direction: column;

    justify-content: space-between;
}


.cart-item-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 8px;
}


.cart-item-name {
    min-width: 0;

    color: #5f575b;

    font-size: 14px;
    line-height: 1.3;

    font-weight: 500;
}


.cart-remove {
    width: 30px;
    height: 30px;

    flex: 0 0 30px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: none;

    border-radius: 50%;

    background: var(--accent-soft);

    color: var(--accent-secondary);

    font-size: 20px;
    line-height: 1;
}


.cart-item-bottom {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 10px;
}


.cart-quantity {
    display: flex;
    align-items: center;

    gap: 9px;
}


.quantity-button {
    width: 30px;
    height: 30px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid var(--border);

    border-radius: 50%;

    background: #ffffff;

    color: var(--accent-secondary);

    font-size: 20px;
    line-height: 1;
}


.quantity-value {
    min-width: 20px;

    text-align: center;

    font-size: 14px;
    font-weight: 600;
}


.cart-item-price {
    text-align: right;

    color: var(--text);

    font-size: 16px;
    font-weight: 700;
}


.cart-summary {
    display: none;

    margin-top: 18px;
    margin-bottom: 30px;

    padding: 18px;

    border-radius: 18px;

    background: #ffffff;

    box-shadow: var(--shadow);
}


.cart-summary.visible {
    display: block;
}


.cart-total-row {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    margin-bottom: 16px;

    font-size: 18px;
}


.cart-total-row strong {
    font-size: 21px;
}


.checkout-button {
    width: 100%;
    height: 50px;

    border: none;

    border-radius: 25px;

    background: var(--accent-secondary);

    color: #ffffff;

    font-size: 15px;
    font-weight: 600;
}


.cart-nav-item {
    position: relative;
}


.cart-badge {
    position: absolute;

    top: 2px;
    right: 15px;

    min-width: 17px;
    height: 17px;

    display: none;
    align-items: center;
    justify-content: center;

    padding: 0 5px;

    border-radius: 9px;

    background: var(--accent-secondary);

    color: #ffffff;

    font-size: 9px;
    font-weight: 700;
}


.cart-badge.visible {
    display: flex;
}



/* =========================
   EXTRAS
========================= */

.extras-section {
    margin-top: 4px;
}


.extras-section h2 {
    margin-bottom: 18px;

    font-size: 22px;
    line-height: 1.2;
}


.extras-scroll {
    display: flex;

    gap: 10px;

    overflow-x: auto;

    padding-bottom: 8px;

    scrollbar-width: none;
}


.extras-scroll::-webkit-scrollbar {
    display: none;
}


.extra-card {
    width: 170px;

    flex: 0 0 170px;

    overflow: hidden;

    border-radius: 16px;

    background: #ffffff;

    box-shadow: var(--shadow);
}


.extra-image {
    position: relative;

    width: 100%;
    height: 170px;

    display: flex;
    align-items: center;
    justify-content: center;

    background:
        linear-gradient(
            145deg,
            #fbe4e9,
            #fff4f5
        );

    color: #b76d7d;

    font-size: 12px;
}


.extra-info {
    padding: 11px;
}


.extra-info h3 {
    min-height: 38px;

    margin-bottom: 12px;

    font-size: 14px;
    line-height: 1.3;

    font-weight: 500;
}


.extra-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 10px;
}


.extra-bottom > span {
    font-size: 18px;

    font-weight: 600;
}


.extra-cart {
    width: 38px;
    height: 38px;

    flex: 0 0 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: none;

    border-radius: 50%;

    background: var(--accent-secondary);

    color: #ffffff;
}


.extra-cart svg {
    width: 18px;
    height: 18px;

    fill: none;
    stroke: currentColor;

    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}



/* =========================
   ACCOUNT
========================= */

.account-page {
    min-height: calc(100vh - 84px);

    padding: 20px 18px 46px;

    background: #ffffff;
}


.account-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 20px;
}


.account-heading h1 {
    max-width: 300px;

    font-size: 22px;
    line-height: 1.25;

    font-weight: 700;
}


.account-close {
    width: 38px;
    height: 38px;

    flex: 0 0 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: none;

    border-radius: 50%;

    background: #ffffff;

    color: #181518;

    font-size: 28px;
    line-height: 1;

    box-shadow:
        0 5px 16px
        rgba(50, 40, 44, 0.10);
}


.account-description {
    margin: 27px 0 22px;

    color: #8d8588;

    font-size: 15px;
    line-height: 1.4;
}


.form-group label {
    display: block;

    margin-bottom: 8px;

    font-size: 14px;
}


.phone-field {
    width: 100%;
    height: 58px;

    display: flex;
    align-items: center;

    gap: 6px;

    padding: 0 16px;

    border-radius: 10px;

    background: #f8f6f7;
}


.phone-prefix {
    color: #aaa2a5;

    font-size: 15px;
}


.phone-field input {
    min-width: 0;

    flex: 1;

    border: none;
    outline: none;

    background: transparent;

    color: var(--text);

    font-size: 15px;
}


.phone-field input::placeholder {
    color: #b8b1b4;
}


.consent-row {
    display: flex;
    align-items: center;

    gap: 11px;

    margin-top: 25px;

    cursor: pointer;
}


.consent-checkbox {
    position: absolute;

    opacity: 0;

    pointer-events: none;
}


.custom-checkbox {
    width: 28px;
    height: 28px;

    flex: 0 0 28px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 5px;

    border: 1px solid #cfc7ca;

    background: #ffffff;

    color: #ffffff;
}


.custom-checkbox svg {
    width: 18px;
    height: 18px;

    fill: none;
    stroke: currentColor;

    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;

    opacity: 0;
}


.consent-checkbox:checked
+ .custom-checkbox {
    border-color: var(--accent-secondary);

    background: var(--accent-secondary);
}


.consent-checkbox:checked
+ .custom-checkbox svg {
    opacity: 1;
}


.consent-text {
    color: #4f494c;

    font-size: 13px;
    line-height: 1.35;
}


.consent-text a {
    color: var(--accent-secondary);

    text-decoration: underline;
}


.get-code-button {
    width: 100%;
    height: 50px;

    margin-top: 27px;

    border: none;

    border-radius: 25px;

    background: var(--accent-secondary);

    color: #ffffff;

    font-size: 15px;
    font-weight: 600;
}


.get-code-button:disabled {
    background: #c9c7c8;

    color: #ffffff;

    cursor: default;
}



/* =========================
   MENU
========================= */

.menu-page {
    padding: 10px 16px 40px;
}


.menu-contact {
    display: flex;
    justify-content: flex-end;

    margin: 2px 0 23px;
}


.menu-phone {
    color: var(--text);

    text-decoration: none;

    font-size: 15px;
    font-weight: 600;

    white-space: nowrap;
}


.menu-group {
    margin-bottom: 30px;
}


.menu-group-title {
    margin-bottom: 12px;

    color: #5f565a;

    font-size: 11px;
    line-height: 1;

    letter-spacing: 0.08em;
}


.menu-link {
    width: 100%;
    min-height: 48px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 10px;

    padding: 0;

    border: none;

    background: transparent;

    color: #5c5558;

    text-align: left;

    font-size: 19px;

    font-weight: 300;
}


.menu-arrow {
    color: #9b9296;

    font-size: 26px;

    line-height: 1;
}



/* =========================
   BOTTOM NAV
========================= */

.bottom-nav {
    position: fixed;

    left: 50%;
    bottom: 0;

    z-index: 40;

    width: min(100%, 430px);

    transform: translateX(-50%);

    display: grid;

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

    padding:
        7px
        6px
        max(8px, env(safe-area-inset-bottom));

    border-top:
        1px solid var(--border);

    background:
        rgba(255, 255, 255, 0.98);

    backdrop-filter: blur(14px);
}


.nav-item {
    min-width: 0;
    min-height: 54px;

    display: flex;
    flex-direction: column;

    align-items: center;
    justify-content: center;

    gap: 4px;

    border: none;

    background: transparent;

    color: #aaa3a6;

    font-size: 10px;
}


.nav-item svg {
    width: 21px;
    height: 21px;

    fill: none;
    stroke: currentColor;

    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}


.nav-item.active {
    color: var(--accent-secondary);
}



/* =========================
   ACCOUNT MODE
========================= */

body.account-open .header {
    display: none;
}


body.account-open .scroll-filters {
    display: none;
}



/* =========================
   SMALL PHONES
========================= */

@media (max-width: 370px) {

    .header {
        padding-left: 12px;
        padding-right: 12px;

        gap: 8px;
    }


    .brand {
        width: 105px;
        height: 52px;

        flex-basis: 105px;
    }


    .brand-logo {
        width: 105px !important;
        height: 52px !important;

        max-width: 105px !important;
        max-height: 52px !important;
    }


    .icon-button {
        width: 35px;
        height: 35px;

        flex-basis: 35px;
    }


    .icon-button svg {
        width: 16px;
        height: 16px;
    }


    .hero-section,
    .simple-page,
    .menu-page {
        padding-left: 12px;
        padding-right: 12px;
    }


    .catalog-page > .page-breadcrumb,
    .catalog-page > h1,
    .catalog-page > .catalog-title {
        margin-left: 12px;
        margin-right: 12px;
    }


    .catalog-products {
        padding-left: 12px;
        padding-right: 12px;
    }


    .filters-scroll {
        padding-left: 12px;
        padding-right: 12px;
    }


    .account-page {
        padding-left: 16px;
        padding-right: 16px;
    }


    .products {
        gap: 8px;
    }


    .hero-section > h1 {
        font-size: 25px;
    }


    .catalog-title {
        font-size: 23px;
    }


    .buy-price {
        font-size: 14px;
    }


    .menu-link {
        font-size: 17px;
    }


    .pagination {
        gap: 5px;
    }


    .pagination-page,
    .pagination-arrow {
        width: 38px;
        height: 38px;
    }


    .cart-item {
        grid-template-columns:
            76px
            minmax(0, 1fr);
    }


    .cart-item-image {
        width: 76px;
        height: 100px;
    }


    .cart-badge {
        right: 10px;
    }
}

/* =========================
   PRODUCT DETAIL
========================= */

.product-detail-page {
    padding: 10px 16px 40px;
}

.product-back-button {
    display: inline-flex;
    align-items: center;
    gap: 6px;

    margin: 2px 0 14px;
    padding: 6px 0;

    border: none;
    background: transparent;

    color: #6f666a;

    font-size: 14px;
}

.product-back-arrow {
    color: var(--accent-secondary);
    font-size: 28px;
    line-height: 0.8;
}

.product-detail-gallery {
    margin-bottom: 22px;
}

.product-detail-image {
    position: relative;

    width: 100%;
    aspect-ratio: 0.92;

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;

    border-radius: 24px;

    background:
        linear-gradient(
            145deg,
            #fbe4e9 0%,
            #fff4f5 55%,
            #f8ece9 100%
        );

    color: #b76d7d;
    font-size: 13px;

    box-shadow: var(--shadow);
}

.product-detail-favorite {
    position: absolute;
    top: 14px;
    right: 14px;

    width: 44px;
    height: 44px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: none;
    border-radius: 50%;

    background: rgba(255, 255, 255, 0.96);
    color: var(--accent-secondary);

    box-shadow: 0 5px 16px rgba(55, 39, 44, 0.12);
}

.product-detail-favorite svg {
    width: 21px;
    height: 21px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.product-detail-favorite.active svg {
    fill: var(--accent-secondary);
}

.product-gallery-dots {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;

    margin-top: 12px;
}

.product-gallery-dots span {
    width: 6px;
    height: 6px;

    border-radius: 50%;
    background: #ded5d8;
}

.product-gallery-dots span.active {
    width: 18px;
    border-radius: 999px;
    background: var(--accent-secondary);
}

.product-detail-content {
    padding-bottom: 30px;
}

.product-detail-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.product-detail-category {
    margin-bottom: 5px;

    color: var(--accent-secondary);
    font-size: 12px;
    font-weight: 600;
}

.product-detail-heading h1 {
    max-width: 245px;

    font-size: 27px;
    line-height: 1.12;
    letter-spacing: -0.02em;
}

.product-detail-price {
    flex-shrink: 0;

    padding-top: 20px;

    color: var(--accent-secondary);
    font-size: 21px;
    font-weight: 700;
}

.product-detail-description {
    margin-top: 18px;

    color: #746c70;
    font-size: 14px;
    line-height: 1.55;
}

.product-detail-info {
    margin-top: 22px;

    overflow: hidden;

    border: 1px solid var(--border);
    border-radius: 16px;

    background: #ffffff;
}

.product-info-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;

    padding: 14px 15px;
}

.product-info-row + .product-info-row {
    border-top: 1px solid var(--border);
}

.product-info-row span {
    flex-shrink: 0;

    color: var(--muted);
    font-size: 13px;
}

.product-info-row strong {
    max-width: 240px;

    color: #62595d;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 500;
    text-align: right;
}

.product-detail-note {
    margin-top: 14px;
    padding: 13px 14px;

    border-radius: 14px;

    background: var(--accent-soft);

    color: #7e666d;
    font-size: 12px;
    line-height: 1.5;
}

.product-detail-cart-button {
    width: 100%;
    min-height: 54px;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;

    margin-top: 20px;
    padding: 0 18px;

    border: none;
    border-radius: 18px;

    background: var(--accent-secondary);
    color: #ffffff;

    box-shadow: 0 8px 20px rgba(199, 44, 80, 0.18);
}

.product-detail-cart-button span {
    font-size: 15px;
    font-weight: 600;
}

.product-detail-cart-button strong {
    font-size: 16px;
}

.product-recommendations {
    padding-top: 26px;

    border-top: 1px solid var(--border);
}

.product-recommendations-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;

    margin-bottom: 16px;
}

.product-recommendations-heading h2 {
    max-width: 280px;

    font-size: 20px;
    line-height: 1.2;
}

.product-recommendations-heading button {
    border: none;
    background: transparent;

    color: var(--accent-secondary);
    font-size: 13px;
    font-weight: 600;
}

.product-recommendations-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.product-card[data-product-id] .product-image,
.product-card[data-product-id] .product-meta h2 {
    cursor: pointer;
}

@media (max-width: 370px) {
    .product-detail-page {
        padding-left: 12px;
        padding-right: 12px;
    }

    .product-detail-heading h1 {
        font-size: 24px;
    }

    .product-detail-price {
        font-size: 19px;
    }
}



/* =========================
   CHECKOUT
========================= */

.checkout-page {
    padding: 14px 13px 42px;
}

.checkout-back-button {
    display: inline-flex;
    align-items: center;
    gap: 6px;

    margin-bottom: 12px;

    border: none;

    background: transparent;

    color: #6f666a;

    font-size: 16px;
}

.checkout-back-arrow {
    color: var(--accent-secondary);

    font-size: 27px;
    line-height: 1;
}

.checkout-page > h1 {
    margin: 4px 0 24px;

    font-size: 30px;
    line-height: 1.12;

    font-weight: 700;

    letter-spacing: -0.025em;
}

.checkout-form {
    display: flex;
    flex-direction: column;

    gap: 14px;
}

.checkout-form.hidden {
    display: none;
}

.checkout-section {
    padding: 17px;

    border: 1px solid var(--border);

    border-radius: 20px;

    background: #ffffff;

    box-shadow:
        0 7px 22px
        rgba(89, 60, 70, 0.045);
}

.checkout-section > h2,
.checkout-section-heading h2 {
    margin-bottom: 15px;

    font-size: 18px;
    line-height: 1.2;

    font-weight: 650;
}

.checkout-label {
    display: flex;
    flex-direction: column;

    gap: 7px;

    margin-top: 13px;

    color: #746a6e;

    font-size: 13px;
}

.checkout-section > .checkout-label:first-of-type {
    margin-top: 0;
}

.checkout-input,
.checkout-textarea {
    width: 100%;

    border: 1px solid var(--border);

    border-radius: 14px;

    outline: none;

    background: #fffdfc;

    color: var(--text);

    font-size: 15px;

    transition:
        border-color 0.16s ease,
        box-shadow 0.16s ease;
}

.checkout-input {
    height: 49px;

    padding: 0 14px;
}

.checkout-textarea {
    min-height: 104px;

    padding: 13px 14px;

    resize: vertical;

    line-height: 1.4;
}

.checkout-input:focus,
.checkout-textarea:focus {
    border-color:
        rgba(223, 92, 121, 0.58);

    box-shadow:
        0 0 0 3px
        rgba(223, 92, 121, 0.09);
}

.checkout-input::placeholder,
.checkout-textarea::placeholder {
    color: #b7adb1;
}

.delivery-switch {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 8px;

    margin-bottom: 15px;
}

.delivery-option {
    position: relative;
}

.delivery-option input {
    position: absolute;

    opacity: 0;

    pointer-events: none;
}

.delivery-option span {
    min-height: 46px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 9px 12px;

    border: 1px solid var(--border);

    border-radius: 14px;

    background: var(--chip);

    color: #6d6468;

    font-size: 14px;

    transition:
        background 0.16s ease,
        border-color 0.16s ease,
        color 0.16s ease;
}

.delivery-option input:checked + span {
    border-color:
        rgba(223, 92, 121, 0.30);

    background: var(--accent-soft);

    color: var(--accent-secondary);

    font-weight: 600;
}

.pickup-info {
    padding: 14px;

    border-radius: 14px;

    background: var(--accent-soft);

    color: #7d5962;

    font-size: 13px;
    line-height: 1.45;
}

.pickup-info strong {
    display: block;

    margin-bottom: 4px;

    color: var(--accent);
}

.pickup-info.hidden {
    display: none;
}

.checkout-two-columns {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px;
}

.checkout-two-columns .checkout-label {
    margin-top: 0;
}

.checkout-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    margin-bottom: 14px;
}

.checkout-section-heading h2 {
    margin-bottom: 0;
}

.checkout-edit-cart {
    border: none;

    background: transparent;

    color: var(--accent-secondary);

    font-size: 13px;
    font-weight: 600;
}

.checkout-order-items {
    display: flex;
    flex-direction: column;

    gap: 11px;
}

.checkout-order-item {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    padding-bottom: 11px;

    border-bottom:
        1px solid var(--border);
}

.checkout-order-item-info {
    min-width: 0;

    display: flex;
    flex-direction: column;

    gap: 3px;
}

.checkout-order-item-info span {
    overflow: hidden;

    color: #5e5559;

    font-size: 14px;
    line-height: 1.25;

    text-overflow: ellipsis;
    white-space: nowrap;
}

.checkout-order-item-info small {
    color: var(--muted);

    font-size: 12px;
}

.checkout-order-item > strong {
    flex-shrink: 0;

    color: var(--text);

    font-size: 14px;
}

.checkout-total-row {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    padding-top: 16px;

    font-size: 17px;
}

.checkout-total-row strong {
    color: var(--accent-secondary);

    font-size: 20px;
}

.checkout-consent {
    display: flex;
    align-items: flex-start;

    gap: 10px;

    padding: 4px 3px;

    color: #746a6e;

    font-size: 13px;
    line-height: 1.4;
}

.checkout-consent input {
    width: 18px;
    height: 18px;

    flex: 0 0 18px;

    margin-top: 1px;

    accent-color: var(--accent-secondary);
}

.checkout-submit-button {
    width: 100%;
    min-height: 64px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 14px;

    padding: 0 20px;

    border: none;

    border-radius: 22px;

    background: var(--accent-secondary);

    color: #ffffff;

    box-shadow:
        0 12px 28px
        rgba(223, 92, 121, 0.20);

    font-size: 16px;
    font-weight: 700;

    transition:
        opacity 0.16s ease,
        transform 0.16s ease;
}

.checkout-submit-button:active:not(:disabled) {
    transform: scale(0.99);
}

.checkout-submit-button:disabled {
    background: #e5dfe1;

    color: #aaa1a5;

    box-shadow: none;

    cursor: default;
}

.checkout-submit-button strong {
    font-size: 17px;
}

.checkout-note {
    padding: 0 5px;

    color: var(--muted);

    text-align: center;

    font-size: 11px;
    line-height: 1.45;
}

.checkout-success {
    min-height: 480px;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    padding: 40px 20px;

    text-align: center;
}

.checkout-success.hidden {
    display: none;
}

.checkout-success-icon {
    width: 70px;
    height: 70px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 20px;

    border-radius: 50%;

    background: var(--accent-soft);

    color: var(--accent-secondary);

    font-size: 34px;
    font-weight: 700;
}

.checkout-success h2 {
    margin-bottom: 10px;

    font-size: 24px;
}

.checkout-success p {
    max-width: 330px;

    margin-bottom: 22px;

    color: #756b6f;

    font-size: 14px;
    line-height: 1.55;
}

@media (max-width: 350px) {

    .checkout-two-columns {
        grid-template-columns: 1fr;
    }

}


/* =========================
   SHARED / NEW SECTIONS
========================= */

.hidden {
    display: none !important;
}

.header-actions a.icon-button {
    text-decoration: none;
}

.home-info-section,
.compact-help-block,
.product-help-block,
.menu-store-contacts {
    margin-top: 28px;
}

.home-info-section {
    display: grid;
    gap: 14px;
}

.home-hours-card,
.home-contacts-card,
.compact-help-block,
.product-help-block,
.account-sync-card,
.account-profile-card,
.account-dashboard-card,
.manager-status-card {
    border: 1px solid rgba(113, 26, 58, 0.12);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.8);
    box-shadow: 0 10px 30px rgba(92, 42, 58, 0.05);
}

.home-hours-card {
    padding: 24px 20px;
    text-align: center;
    background: linear-gradient(145deg, #fff8f8, #f8e6ea);
}

.home-info-eyebrow {
    margin-bottom: 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #9b5870;
}

.home-hours-card h2,
.home-contacts-card h2,
.compact-help-block h2,
.product-help-block h2 {
    margin: 0;
    font-size: 22px;
    line-height: 1.15;
}

.home-hours-time {
    margin: 14px 0 8px;
    font-size: 32px;
    font-weight: 700;
    color: #7b1f45;
}

.home-hours-card p,
.home-contacts-card p,
.compact-help-block p,
.product-help-block p {
    margin: 10px 0 0;
    color: #745f67;
    line-height: 1.5;
}

.manager-contact-button {
    width: 100%;
    margin-top: 18px;
    padding: 14px 18px;
    border: 0;
    border-radius: 16px;
    background: #8f2d52;
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.manager-contact-button.secondary {
    background: #f2dbe3;
    color: #7b1f45;
}

.home-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.home-stat-card {
    min-height: 112px;
    padding: 16px 10px;
    border-radius: 18px;
    background: #8f2d52;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
}

.home-stat-card strong {
    font-size: 18px;
}

.home-stat-card span {
    margin-top: 6px;
    font-size: 11px;
    line-height: 1.35;
    opacity: 0.9;
}

.home-contacts-card {
    padding: 22px 18px;
}

.home-contact-links {
    display: grid;
    gap: 10px;
    margin-top: 18px;
}

.home-contact-links a,
.menu-contact-link,
.compact-help-phone {
    color: #7b1f45;
    text-decoration: none;
    font-weight: 600;
}

.compact-help-block,
.product-help-block {
    padding: 20px 18px;
    margin-bottom: 18px;
}

.compact-help-phone {
    display: block;
    margin-top: 14px;
    text-align: center;
}

.catalog-search-panel {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 14px 0 8px;
    padding: 0 14px;
    min-height: 48px;
    border: 1px solid rgba(113, 26, 58, 0.14);
    border-radius: 16px;
    background: #fff;
}

.catalog-search-panel svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: #8f2d52;
    stroke-width: 1.7;
}

.catalog-search-panel input {
    flex: 1;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    font: inherit;
}

.catalog-search-panel button {
    width: 32px;
    height: 32px;
    border: 0;
    background: transparent;
    font-size: 22px;
    color: #8f2d52;
    cursor: pointer;
}

.catalog-search-empty {
    margin: 10px 0 18px;
    color: #8d737c;
    font-size: 14px;
}


/* =========================
   ACCOUNT PROFILE
========================= */

.account-profile-page {
    padding-bottom: 30px;
}

.account-sync-card {
    display: flex;
    gap: 12px;
    padding: 16px;
    margin-bottom: 14px;
    background: #fff4f6;
}

.account-sync-icon {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #8f2d52;
    color: white;
    font-weight: 700;
}

.account-sync-card strong,
.account-profile-card strong {
    display: block;
}

.account-sync-card p {
    margin: 5px 0 0;
    color: #715e66;
    font-size: 13px;
    line-height: 1.45;
}

.account-profile-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px;
    margin-bottom: 14px;
}

.account-avatar {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #f3dce4;
    color: #7b1f45;
    font-weight: 800;
}

.account-profile-main {
    display: grid;
    gap: 3px;
}

.account-profile-main span,
.account-card-heading span {
    font-size: 12px;
    color: #927883;
}

.account-profile-main small {
    color: #7f6b73;
}

.account-dashboard-card {
    padding: 18px;
    margin-bottom: 14px;
}

.account-card-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.account-card-heading h2 {
    margin: 4px 0 0;
    font-size: 18px;
}

.account-dashboard-card p {
    margin: 12px 0 0;
    color: #76646b;
    line-height: 1.45;
}

.account-status-badge {
    padding: 6px 8px;
    border-radius: 999px;
    background: #f4e4e9;
    color: #7b1f45 !important;
    white-space: nowrap;
    font-size: 10px !important;
}

.account-manager-button {
    margin-bottom: 12px;
}


/* =========================
   MANAGER CHAT
========================= */

.manager-page {
    min-height: calc(100vh - 150px);
    padding: 8px 0 26px;
}

.manager-heading {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 16px;
}

.manager-heading span {
    font-size: 11px;
    color: #9a7b87;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.manager-heading h1 {
    margin: 3px 0 0;
    font-size: 25px;
}

.manager-back-button {
    border: 0;
    background: transparent;
    padding: 8px 0;
    color: #7b1f45;
    font: inherit;
    cursor: pointer;
}

.manager-status-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 15px;
    margin-bottom: 14px;
}

.manager-status-card strong,
.manager-status-card small {
    display: block;
}

.manager-status-card small {
    margin-top: 2px;
    color: #86717a;
}

.manager-status-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #5ea66b;
}

.manager-chat {
    min-height: 330px;
    max-height: 50vh;
    overflow-y: auto;
    padding: 14px;
    border-radius: 20px;
    background: #f8edef;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.manager-message {
    max-width: 86%;
    padding: 12px 13px;
    border-radius: 16px;
    line-height: 1.42;
}

.manager-message p {
    margin: 4px 0 0;
}

.manager-message-store {
    align-self: flex-start;
    background: #fff;
    border-bottom-left-radius: 5px;
}

.manager-message-user {
    align-self: flex-end;
    background: #8f2d52;
    color: #fff;
    border-bottom-right-radius: 5px;
}

.manager-message-system {
    align-self: center;
    max-width: 95%;
    padding: 9px 12px;
    text-align: center;
    font-size: 12px;
    color: #7e6971;
    background: rgba(255,255,255,.65);
}

.manager-chat-form {
    display: flex;
    gap: 8px;
    margin-top: 12px;
}

.manager-chat-form textarea {
    flex: 1;
    resize: none;
    border: 1px solid rgba(113, 26, 58, 0.14);
    border-radius: 16px;
    padding: 12px 13px;
    outline: 0;
    font: inherit;
    background: #fff;
}

.manager-chat-form button {
    border: 0;
    border-radius: 16px;
    padding: 0 16px;
    background: #8f2d52;
    color: #fff;
    font-weight: 700;
}

.manager-demo-note {
    margin: 10px 2px 0;
    color: #907981;
    font-size: 11px;
    line-height: 1.4;
}


/* =========================
   MENU CONTACTS / CHECKOUT HELP
========================= */

.menu-store-contacts {
    margin-bottom: 24px;
    padding-top: 8px;
    display: grid;
    gap: 10px;
}

.menu-store-contacts p {
    margin: 0;
    color: #77636b;
}

.checkout-manager-help {
    margin-top: 14px;
    padding: 14px;
    border-radius: 16px;
    background: #f8edef;
    text-align: center;
}

.checkout-manager-help span {
    display: block;
    margin-bottom: 8px;
    color: #725e66;
    font-size: 13px;
}

.checkout-manager-help button {
    border: 0;
    background: transparent;
    color: #7b1f45;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.pickup-info p,
.pickup-info small {
    display: block;
    margin: 5px 0 0;
}

@media (max-width: 380px) {
    .home-stats-grid {
        grid-template-columns: 1fr;
    }

    .home-stat-card {
        min-height: 86px;
    }

    .account-card-heading {
        flex-direction: column;
    }
}


/* =========================================================
   MINI APP SHELL PATCH — styles for the new agreed sections
   ========================================================= */

.store-topbar-v2 {
    width: 100%;
    min-height: 48px;
    padding: 7px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    background: #fff8fa;
    border-bottom: 1px solid var(--border);
}

.store-city-v2 {
    flex: 0 0 auto;
    min-height: 34px;
    padding: 7px 12px;
    display: flex;
    align-items: center;
    gap: 7px;
    border-radius: 999px;
    background: #92284f;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
}

.store-city-v2 > svg,
.store-hours-v2 > svg {
    width: 17px !important;
    height: 17px !important;
    min-width: 17px !important;
    max-width: 17px !important;
    min-height: 17px !important;
    max-height: 17px !important;
    display: block !important;
    flex: 0 0 17px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.7 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}

.store-city-v2 .city-chevron-v2 {
    width: 13px !important;
    height: 13px !important;
    min-width: 13px !important;
    max-width: 13px !important;
    flex-basis: 13px !important;
}

.store-hours-v2 {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    color: #88777e;
    font-size: 11px;
    line-height: 1.25;
    text-align: right;
}

.header {
    top: 0;
}

.home-category-strip-v2 {
    width: 100%;
    padding: 5px 0 11px;
    background: var(--bg);
}

.home-category-scroll-v2 {
    display: flex;
    align-items: center;
    gap: 8px;
    overflow-x: auto;
    padding: 0 16px;
    scrollbar-width: none;
}

.home-category-scroll-v2::-webkit-scrollbar {
    display: none;
}

.home-category-chip-v2 {
    min-height: 40px;
    flex: 0 0 auto;
    padding: 9px 17px;
    border: 0;
    border-radius: 12px;
    background: var(--chip);
    color: var(--text);
    font-size: 14px;
}

.home-category-chip-v2.active {
    background: var(--accent-soft);
    color: var(--accent-secondary);
}

.home-info-section {
    padding: 8px 16px 0;
}

.home-service-intro,
.important-date-promo,
.home-hours-card {
    margin-top: 16px;
    padding: 22px 18px;
    border: 1px solid var(--border);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(89,60,70,.05);
}

.home-info-eyebrow {
    margin-bottom: 8px;
    color: #a04b69;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.home-service-intro h2,
.important-date-promo h2,
.home-hours-card h2 {
    margin: 0;
    font-size: 23px;
    line-height: 1.18;
}

.home-service-intro p,
.important-date-promo p {
    margin: 9px 0 0;
    color: #77656c;
    font-size: 14px;
    line-height: 1.5;
}

.home-benefits-section {
    margin-top: 24px;
}

.home-section-title {
    margin-bottom: 12px;
    font-size: 22px;
    font-weight: 700;
}

.home-benefits-scroll {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 3px;
    scrollbar-width: none;
}

.home-benefits-scroll::-webkit-scrollbar {
    display: none;
}

.home-benefit-card {
    min-height: 180px;
    flex: 0 0 190px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    border-radius: 18px;
    background: #f8f4f5;
}

.home-benefit-icon {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: #fff;
    color: var(--accent-secondary);
    font-size: 21px;
}

.home-benefit-card strong {
    margin-top: auto;
    font-size: 15px;
}

.home-benefit-card span {
    margin-top: 6px;
    color: #7c6b72;
    font-size: 12px;
    line-height: 1.4;
}

.important-date-promo {
    background: linear-gradient(145deg,#f9e7ec,#fff7f8);
}

.important-date-promo button,
.manager-contact-button {
    width: 100%;
    min-height: 46px;
    margin-top: 16px;
    border: 0;
    border-radius: 14px;
    background: #92284f;
    color: #fff;
    font-weight: 700;
}

.home-hours-time {
    margin-top: 8px;
    color: #92284f;
    font-size: 27px;
    font-weight: 700;
}

.site-footer {
    margin: 34px -16px 0;
    background: #fff;
}

.catalog-page > .site-footer,
.simple-page > .site-footer {
    margin-left: -16px;
    margin-right: -16px;
}

.site-footer-accent {
    padding: 27px 20px;
    background: #92284f;
    color: #fff;
}

.site-footer-accent .home-info-eyebrow {
    color: #f2c3d1;
}

.site-footer-accent h2 {
    margin: 0;
    font-size: 24px;
    line-height: 1.2;
}

.site-footer-accent p {
    margin: 9px 0 0;
    color: #fae9ee;
    font-size: 13px;
    line-height: 1.5;
}

.site-footer-body {
    padding: 22px 20px 26px;
    display: grid;
    gap: 20px;
}

.site-footer-column {
    display: grid;
    gap: 7px;
}

.site-footer-column strong {
    margin-bottom: 2px;
    font-size: 14px;
}

.site-footer-column a,
.site-footer-column span {
    color: #6f6066;
    text-decoration: none;
    font-size: 13px;
    line-height: 1.45;
}

.site-footer-socials {
    display: flex;
    gap: 9px;
    flex-wrap: wrap;
}

.site-footer-socials a {
    padding: 9px 13px;
    border-radius: 999px;
    background: #f6e6eb;
    color: #92284f;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
}

.site-footer-copy {
    color: #9b8b91;
    font-size: 11px;
}

.account-login-page {
    padding-bottom: 20px;
}

.account-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.account-close {
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    background: #f7eef1;
    color: #92284f;
    font-size: 23px;
}

.account-login-intro {
    margin: 20px 0 18px;
    color: #75636a;
    font-size: 14px;
    line-height: 1.5;
}

.account-login-form {
    display: grid;
    gap: 13px;
}

.account-login-label {
    color: #5f5056;
    font-size: 13px;
    font-weight: 600;
}

.account-phone-wrap {
    min-height: 54px;
    display: flex;
    align-items: center;
    border: 1px solid var(--border);
    border-radius: 15px;
    background: #fff;
    overflow: hidden;
}

.account-phone-prefix {
    padding-left: 15px;
    color: #5e5055;
    font-size: 18px;
}

.account-login-input {
    width: 100%;
    min-width: 0;
    min-height: 52px;
    padding: 0 14px 0 7px;
    border: 0;
    outline: 0;
    background: transparent;
}

.account-login-consent {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    color: #77666c;
    font-size: 12px;
    line-height: 1.4;
}

.account-login-consent a {
    color: #92284f;
}

.account-login-button {
    min-height: 50px;
    border: 0;
    border-radius: 15px;
    background: #92284f;
    color: #fff;
    font-weight: 700;
}

.account-login-button:disabled {
    opacity: .42;
}

.account-dashboard {
    display: grid;
    gap: 13px;
    margin-top: 20px;
}

.account-dashboard-card {
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: #fff;
}

.account-card-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.account-card-heading span {
    color: #a04b69;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.account-card-heading h2 {
    margin: 5px 0 0;
    font-size: 18px;
}

.account-empty-text,
.account-dashboard-card > p {
    margin: 10px 0 0;
    color: #7c6970;
    font-size: 13px;
    line-height: 1.45;
}

.important-date-add-button {
    flex: 0 0 auto;
    padding: 8px 11px;
    border: 0;
    border-radius: 999px;
    background: #f6e5eb;
    color: #92284f;
    font-size: 12px;
    font-weight: 700;
}

.important-date-list {
    display: grid;
    gap: 9px;
    margin-top: 13px;
}

.important-date-empty {
    color: #8b787f;
    font-size: 13px;
}

.important-date-item {
    padding: 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border-radius: 13px;
    background: #faf4f6;
}

.important-date-item strong,
.important-date-item span {
    display: block;
}

.important-date-item span {
    margin-top: 4px;
    color: #806e75;
    font-size: 11px;
}

.important-date-delete {
    border: 0;
    background: transparent;
    color: #ad4e6c;
    font-size: 20px;
}

.important-date-form {
    display: grid;
    gap: 11px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--border);
}

.important-date-form label {
    display: grid;
    gap: 6px;
    color: #65565c;
    font-size: 12px;
}

.important-date-form select,
.important-date-form input {
    width: 100%;
    min-height: 44px;
    padding: 0 11px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
}

.important-date-form-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9px;
}

.important-date-cancel,
.important-date-save {
    min-height: 44px;
    border: 0;
    border-radius: 12px;
    font-weight: 700;
}

.important-date-cancel {
    background: #f4f0f1;
    color: #65575c;
}

.important-date-save {
    background: #92284f;
    color: #fff;
}

@media (max-width: 360px) {
    .store-hours-v2 span {
        font-size: 10px;
    }

    .store-city-v2 {
        padding-left: 10px;
        padding-right: 10px;
    }
}


/* =========================================================
   CATALOG FILTERS + HOME COMPACT FIX
   ========================================================= */

.home-info-section {
    overflow: hidden;
}

.important-date-promo,
.home-hours-card {
    width: 100%;
    min-width: 0;
    padding: 18px 16px;
}

.important-date-promo > div,
.home-hours-card > * {
    min-width: 0;
    max-width: 100%;
}

.important-date-promo h2,
.home-hours-card h2,
.important-date-promo p {
    overflow-wrap: anywhere;
}

.important-date-promo h2,
.home-hours-card h2 {
    font-size: 21px;
}

.important-date-promo p {
    font-size: 13px;
}

.home-hours-card {
    text-align: center;
}

.home-hours-time {
    font-size: 25px;
}

.catalog-filter-panel {
    margin: 0 16px 16px;
    padding-top: 10px;
}

.catalog-filter-menu {
    padding: 8px;
    display: grid;
    gap: 5px;
    border: 1px solid var(--border);
    border-radius: 15px;
    background: #fff;
    box-shadow: var(--shadow);
}

.catalog-filter-menu.hidden,
.catalog-filter-panel.hidden {
    display: none;
}

.catalog-filter-menu button {
    width: 100%;
    min-height: 42px;
    padding: 9px 12px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--text);
    text-align: left;
    font-size: 14px;
}

.catalog-filter-menu button:hover,
.catalog-filter-menu button.active {
    background: var(--accent-soft);
    color: var(--accent-secondary);
}


/* =========================================================
   INTERNAL PAGE SHELL
   Home keeps the full shop header.
   Catalog, favorites, cart, checkout, account, manager and menu
   use their own page content without duplicated global blocks.
   ========================================================= */

.app.internal-page > .store-topbar-v2,
.app.internal-page > .header,
.app.internal-page > .home-category-strip-v2 {
    display: none !important;
}

.app.internal-page .content {
    padding-top: 0;
}

.app.internal-page #catalogPage .catalog-page,
.app.internal-page #favoritesPage .simple-page,
.app.internal-page #cartPage .simple-page,
.app.internal-page #checkoutPage .simple-page,
.app.internal-page #accountPage .simple-page,
.app.internal-page #managerPage .simple-page,
.app.internal-page #menuPage .simple-page,
.app.internal-page #productPage .simple-page {
    padding-top: 18px;
}

/* Catalog filters stay visible and usable inside the catalog page. */
.app.internal-page .catalog-filters {
    top: 0;
}

/* No old floating filter row on scroll. */
.scroll-filters {
    display: none !important;
}


/* =========================================================
   HOME WIDTH FINAL FIX + MENU BRAND HEADER
   ========================================================= */

#homePage,
#homePage .home-info-section,
#homePage .important-date-promo,
#homePage .home-hours-card,
#homePage .site-footer,
#homePage .site-footer-accent,
#homePage .site-footer-body {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

#homePage .home-info-section {
    padding-left: 14px !important;
    padding-right: 14px !important;
    overflow: hidden !important;
}

#homePage .important-date-promo,
#homePage .home-hours-card {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 18px !important;
    overflow: hidden !important;
}

#homePage .important-date-promo > div,
#homePage .important-date-promo h2,
#homePage .important-date-promo p,
#homePage .home-hours-card > *,
#homePage .home-hours-card h2,
#homePage .home-hours-time {
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
}

#homePage .important-date-promo h2,
#homePage .home-hours-card h2 {
    font-size: 20px !important;
    line-height: 1.22 !important;
}

#homePage .important-date-promo p {
    font-size: 13px !important;
    line-height: 1.45 !important;
}

#homePage .important-date-promo button,
#homePage .manager-contact-button {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    white-space: normal !important;
    line-height: 1.25 !important;
}

#homePage .home-hours-card {
    text-align: center !important;
}

#homePage .home-hours-time {
    font-size: 25px !important;
    line-height: 1.15 !important;
}

/* Cancel the old negative margins that made the Home footer overflow. */
#homePage .site-footer {
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow: hidden !important;
}

#homePage .site-footer-accent,
#homePage .site-footer-body {
    overflow: hidden !important;
}

#homePage .site-footer-accent h2,
#homePage .site-footer-accent p,
#homePage .site-footer-column a,
#homePage .site-footer-column span {
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}

/* Menu-only header: logo left, main phone right. */
#menuPage .menu-brand-header {
    width: 100%;
    min-height: 104px;
    padding: 18px 20px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    box-sizing: border-box;
}

#menuPage .menu-brand-logo {
    display: block;
    width: 128px;
    height: 64px;
    max-width: 128px;
    object-fit: contain;
    object-position: left center;
}

#menuPage .menu-brand-phone {
    flex: 0 0 auto;
    color: #211d20;
    text-decoration: none;
    font-size: 16px;
    line-height: 1.2;
    font-weight: 700;
    white-space: nowrap;
}

.app.internal-page #menuPage .simple-page {
    padding-top: 6px !important;
}

@media (max-width: 360px) {
    #menuPage .menu-brand-header {
        padding-left: 14px;
        padding-right: 14px;
        gap: 10px;
    }

    #menuPage .menu-brand-logo {
        width: 112px;
        max-width: 112px;
    }

    #menuPage .menu-brand-phone {
        font-size: 14px;
    }
}


/* =========================================================
   FIX 4 — pager, home cards, favorites/cart footer, menu
   ========================================================= */

.home-catalog-pager {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    padding: 18px 16px 6px;
}

.home-pager-button {
    width: 36px;
    height: 36px;
    border: 1px solid #f0dce3;
    border-radius: 50%;
    background: #fff;
    color: #9f2852;
    font-weight: 700;
}

.home-pager-button.active {
    background: #9f2852;
    color: #fff;
    border-color: #9f2852;
}

/* The two Home promo cards must use the viewport width, not old fixed widths. */
#homePage .important-date-promo,
#homePage .home-hours-card {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    width: calc(100% - 28px) !important;
    max-width: calc(100% - 28px) !important;
    margin: 18px 14px !important;
    padding: 18px !important;
    box-sizing: border-box !important;
}

#homePage .important-date-promo *,
#homePage .home-hours-card * {
    box-sizing: border-box !important;
}

#homePage .important-date-promo p,
#homePage .important-date-promo h2,
#homePage .home-hours-card h2 {
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
}

#homePage .important-date-promo button,
#homePage .home-hours-card button,
#homePage .manager-contact-button {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Same normal site ending on Favorites and Cart, but not on account/checkout/chat. */
#favoritesPage .site-footer,
#cartPage .site-footer {
    width: 100% !important;
    max-width: 100% !important;
    margin: 34px 0 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

#favoritesPage .site-footer *,
#cartPage .site-footer * {
    box-sizing: border-box !important;
}

/* Keep only the dedicated menu header phone visually. */
#menuPage .menu-brand-header {
    margin-bottom: 8px;
}


/* =========================================================
   HOME INFO CARDS — FINAL MOBILE WIDTH FIX
   ========================================================= */

#homePage .home-info-section {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}

#homePage .home-info-section .important-date-promo,
#homePage .home-info-section .home-hours-card {
    position: static !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin-left: 0 !important;
    margin-right: 0 !important;

    padding: 18px 16px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

#homePage .important-date-promo h2,
#homePage .important-date-promo p,
#homePage .home-hours-card h2,
#homePage .home-hours-card .home-hours-time {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin-left: 0 !important;
    margin-right: 0 !important;

    white-space: normal !important;
    overflow: visible !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    text-overflow: clip !important;
    box-sizing: border-box !important;
}

#homePage .important-date-promo h2 {
    font-size: 20px !important;
    line-height: 1.25 !important;
}

#homePage .important-date-promo p {
    font-size: 13px !important;
    line-height: 1.45 !important;
}

#homePage .home-hours-card h2 {
    font-size: 19px !important;
    line-height: 1.25 !important;
    text-align: center !important;
}

#homePage .home-hours-card .home-hours-time {
    font-size: 25px !important;
    line-height: 1.15 !important;
    text-align: center !important;
}

#homePage .important-date-promo button,
#homePage .home-hours-card button,
#homePage .home-hours-card .manager-contact-button {
    position: static !important;
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin-left: 0 !important;
    margin-right: 0 !important;

    padding: 12px 10px !important;
    box-sizing: border-box !important;

    white-space: normal !important;
    overflow-wrap: break-word !important;
}


/* =========================================================
   HOME CARDS — HARD 430px SHELL FIX
   The app shell itself is max-width: 430px.
   Do not calculate these cards from the inherited parent width.
   ========================================================= */

#homePage .home-info-section {
    display: block !important;
    width: 100% !important;
    max-width: 430px !important;
    padding: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

#homePage .home-info-section > .home-benefits-section {
    margin-left: 14px !important;
    margin-right: 14px !important;
}

#homePage .home-info-section > .important-date-promo,
#homePage .home-info-section > .home-hours-card {
    display: block !important;
    position: relative !important;
    inset: auto !important;
    transform: none !important;

    width: calc(100% - 28px) !important;
    max-width: 402px !important;
    min-width: 0 !important;

    margin: 28px auto 0 !important;
    padding: 18px 16px !important;

    box-sizing: border-box !important;
    overflow: hidden !important;
}

#homePage .home-info-section > .important-date-promo *,
#homePage .home-info-section > .home-hours-card * {
    position: static !important;
    transform: none !important;
    left: auto !important;
    right: auto !important;

    max-width: 100% !important;
    min-width: 0 !important;

    box-sizing: border-box !important;
}

#homePage .home-info-section > .important-date-promo h2,
#homePage .home-info-section > .important-date-promo p,
#homePage .home-info-section > .home-hours-card h2,
#homePage .home-info-section > .home-hours-card .home-hours-time {
    display: block !important;
    width: 100% !important;

    margin-left: 0 !important;
    margin-right: 0 !important;

    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: anywhere !important;
}

#homePage .home-info-section > .important-date-promo button,
#homePage .home-info-section > .home-hours-card button {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    margin-left: 0 !important;
    margin-right: 0 !important;

    white-space: normal !important;
    overflow: hidden !important;
}


/* PRODUCT DETAIL — NEW CARD */
.product-detail-v2{padding:16px 14px 0}
.product-back-v2{border:0;background:transparent;color:var(--accent);font-size:16px;padding:4px 0 14px}
.product-main-photo-v2{position:relative;height:430px;border-radius:22px;background:linear-gradient(145deg,#fbe4e9,#fff4f5);display:flex;align-items:center;justify-content:center;color:#b76d7d;overflow:hidden}
.product-favorite-v2{position:absolute;top:14px;right:14px;width:46px;height:46px;border:0;border-radius:50%;background:#fff;color:var(--accent-secondary);font-size:27px;box-shadow:var(--shadow)}
.product-gallery-dots-v2{display:flex;justify-content:center;gap:7px;margin-top:-20px;position:relative;z-index:2;padding-bottom:18px}
.product-gallery-dots-v2 span{width:8px;height:8px;border-radius:50%;background:#fff;opacity:.75}
.product-gallery-dots-v2 span.active{background:var(--accent);opacity:1}
.product-summary-v2{padding:8px 4px 22px}
.product-category-v2{margin:0 0 8px;color:var(--accent-secondary);font-size:12px;font-weight:700;letter-spacing:.12em}
.product-summary-v2 h1{margin:0 0 10px;font-size:30px;line-height:1.1}
.product-price-v2{color:var(--accent);font-size:26px;font-weight:700;margin-bottom:14px}
.product-description-v2{color:#765f67;line-height:1.5;margin:0}
.product-options-v2,.included-v2,.product-info-v2,.product-addons-v2,.similar-v2{padding:24px 4px;border-top:1px solid var(--border)}
.product-options-v2 h2,.included-v2 h2,.product-info-v2 h2,.product-addons-v2 h2,.similar-v2 h2{margin:0 0 18px;font-size:23px}
.product-options-v2 h3{margin:22px 0 12px;font-size:16px;color:#654b53}
.product-option-chips-v2,.addon-tabs-v2{display:flex;gap:9px;overflow-x:auto;scrollbar-width:none}
.product-option-chips-v2 button,.addon-tabs-v2 button{flex:0 0 auto;border:0;border-radius:18px;background:var(--chip);padding:11px 16px;font-size:14px}
.product-option-chips-v2 button.active,.addon-tabs-v2 button.active{background:var(--accent-soft);color:var(--accent-secondary)}
.wrap-colors-v2{display:flex;gap:12px}
.wrap-colors-v2 button{width:46px;height:46px;border-radius:50%;border:1px solid #d8cbd0;background:#fff}
.wrap-colors-v2 button:nth-child(2){background:#fbe8ee}.wrap-colors-v2 button:nth-child(3){background:#dceff5}.wrap-colors-v2 button:nth-child(4){background:#dcefe4}
.wrap-colors-v2 button.active{outline:2px solid var(--accent);outline-offset:3px}
.product-option-note-v2{color:var(--muted);font-size:12px;margin:14px 0 0}
.included-scroll-v2,.addon-scroll-v2,.similar-scroll-v2{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}
.included-scroll-v2 article{flex:0 0 132px}
.included-photo-v2,.addon-photo-v2,.similar-photo-v2{background:linear-gradient(145deg,#fbe4e9,#fff4f5);border-radius:16px;display:flex;align-items:center;justify-content:center;color:#b76d7d}
.included-photo-v2{height:135px}.included-scroll-v2 p{margin:8px 4px 0;font-size:13px;line-height:1.3}
.product-info-v2 details{border-bottom:1px solid var(--border);padding:15px 0}
.product-info-v2 summary{cursor:pointer;font-size:18px;list-style:none;display:flex;justify-content:space-between}
.product-info-v2 summary::after{content:"⌄";color:var(--accent)}.product-info-v2 details[open] summary::after{content:"⌃"}
.product-info-v2 details p{color:#765f67;line-height:1.5;margin:14px 0 2px}
.addon-scroll-v2 article{flex:0 0 150px}.addon-photo-v2{height:180px}
.addon-scroll-v2 p,.similar-scroll-v2 p{margin:8px 2px 4px;font-size:14px}
.similar-card-v2{flex:0 0 190px;cursor:pointer}.similar-photo-v2{height:230px}.similar-card-v2 strong{color:var(--accent)}
.product-detail-spacer-v2{height:105px}
.product-buy-bar-v2{position:fixed;left:50%;bottom:66px;transform:translateX(-50%);width:min(402px,calc(100% - 28px));z-index:20;pointer-events:none}
.product-buy-bar-v2 button{pointer-events:auto;width:100%;border:0;border-radius:22px;background:var(--accent);color:#fff;padding:16px 18px;font-size:17px;font-weight:700;box-shadow:0 10px 28px rgba(100,20,50,.18)}


/* =========================================================
   ACCOUNT — INTERACTIVE CABINET
   ========================================================= */
.account-clickable-card{cursor:pointer;position:relative;transition:transform .16s ease,box-shadow .16s ease}
.account-clickable-card:active{transform:scale(.99)}
.account-card-arrow{margin-left:auto;font-size:30px;line-height:1;color:#b43a62;font-weight:300}
.account-inline-panel{margin:0 0 18px;padding:22px;border:1px solid #efd9df;border-radius:22px;background:#fff}
.account-inline-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.account-inline-heading span{display:block;color:#b43a62;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.account-inline-heading h2{margin:4px 0 0;font-size:23px}
.account-inline-close{border:0;width:38px;height:38px;border-radius:50%;background:#f8e7ed;color:#a32650;font-size:24px;line-height:1}
#accountProfileForm{display:grid;gap:14px}
#accountProfileForm label{display:grid;gap:7px;color:#76555f;font-size:14px}
#accountProfileForm input{width:100%;box-sizing:border-box;border:1px solid #ecd7dd;border-radius:16px;background:#fff;padding:15px 16px;font:inherit;outline:none}
#accountProfileForm input:focus{border-color:#b43a62}
.account-profile-save,.promo-check-button,.account-orders-catalog{width:100%;border:0;border-radius:16px;background:#a32650;color:#fff;padding:15px 16px;font-size:16px;font-weight:700}
.account-demo-note{margin:0;color:#9b7c85;font-size:12px;line-height:1.45}
.promo-state-card{display:grid;gap:12px}
.promo-state-label{display:inline-flex;width:max-content;padding:7px 11px;border-radius:999px;background:#f8e7ed;color:#a32650;font-size:12px;font-weight:700}
.promo-state-card p{margin:0;color:#76555f;line-height:1.5}
.promo-channel-button{display:block;text-align:center;text-decoration:none;border:1px solid #a32650;border-radius:16px;color:#a32650;padding:14px 16px;font-weight:700}
.promo-state-card small{color:#9b7c85;line-height:1.45}
.account-orders-empty{text-align:center;padding:12px 2px 4px}
.account-orders-icon{width:58px;height:58px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:#f8e7ed;color:#a32650;font-size:28px}
.account-orders-empty strong{display:block;font-size:19px;margin-bottom:7px}
.account-orders-empty p{margin:0 0 18px;color:#8d6c75;line-height:1.5}


/* =========================================================
   PRODUCT DETAIL — CLEAN FINAL LAYOUT
   ========================================================= */
#productPage .product-detail-page{
    padding:18px 16px 0;
    background:#fff;
}
#productPage .product-detail-content{
    padding:20px 0 0;
}
#productPage .product-detail-description{
    margin:14px 0 24px;
    color:#745c64;
    font-size:16px;
    line-height:1.55;
}
#productPage .product-clean-info{
    margin:0 0 26px;
    padding:4px 0;
    border-top:1px solid #f0dde2;
    border-bottom:1px solid #f0dde2;
}
#productPage .product-clean-info-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    padding:15px 0;
    border-bottom:1px solid #f5e8ec;
}
#productPage .product-clean-info-row:last-of-type{
    border-bottom:0;
}
#productPage .product-clean-info-row span{
    color:#94747d;
    font-size:14px;
}
#productPage .product-clean-info-row strong{
    max-width:66%;
    text-align:right;
    color:#241b1e;
    font-size:14px;
    font-weight:600;
}
#productPage .product-sync-note{
    margin:5px 0 15px;
    padding:13px 14px;
    border-radius:14px;
    background:#fff5f7;
    color:#9a737e;
    font-size:12px;
    line-height:1.45;
}
#productPage .product-extra-clean{
    margin:0;
    padding:0 0 28px;
}
#productPage .product-extra-clean h2,
#productPage .product-addon-placeholder h2,
#productPage .product-similar-after-cart h2{
    margin:0;
    color:#181214;
    font-size:24px;
    line-height:1.2;
}
#productPage .product-info-details{
    border-bottom:1px solid #efdde2;
}
#productPage .product-info-details summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:18px 0;
    cursor:pointer;
    list-style:none;
    color:#35272c;
    font-size:16px;
    font-weight:600;
}
#productPage .product-info-details summary::-webkit-details-marker{
    display:none;
}
#productPage .product-info-details summary span{
    color:#b52c58;
    transition:transform .2s ease;
}
#productPage .product-info-details[open] summary span{
    transform:rotate(180deg);
}
#productPage .product-info-details p{
    margin:-3px 0 18px;
    color:#80636c;
    font-size:14px;
    line-height:1.55;
}
#productPage .product-addon-placeholder{
    display:grid;
    gap:17px;
    margin:0 0 26px;
    padding:22px;
    border:1px solid #efd9df;
    border-radius:22px;
    background:#fffafb;
}
#productPage .product-addon-placeholder .home-info-eyebrow{
    margin-bottom:5px;
}
#productPage .product-addon-placeholder p{
    margin:10px 0 0;
    color:#85666f;
    font-size:14px;
    line-height:1.5;
}
#productPage .product-addon-placeholder .manager-contact-button{
    width:100%;
    margin:0;
}
#productPage .product-primary-cart{
    position:relative;
    z-index:3;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    width:100%;
    margin:0 0 34px;
    padding:18px 20px;
    border:0;
    border-radius:20px;
    background:#df5578;
    color:#fff;
    box-shadow:0 12px 28px rgba(179,42,83,.16);
    font-size:17px;
    font-weight:700;
}
#productPage .product-primary-cart strong{
    color:#fff;
    font-size:18px;
}
#productPage .product-similar-after-cart{
    margin:0;
    padding:28px 0 10px;
    border-top:1px solid #efdde2;
}
#productPage .product-recommendations-heading{
    margin-bottom:18px;
}
#productPage .product-recommendations-grid{
    margin-bottom:0;
}
#productPage .product-help-block{
    margin-top:28px;
}
/* The old fixed product CTA must not cover recommendations/footer. */
#productPage .mate-sticky-cart,
#productPage .product-buy-bar-v2{
    position:static !important;
    transform:none !important;
}


/* =========================================================
   PRODUCT DETAIL — SIMILAR PRODUCTS CARD FIX
   ========================================================= */
#productPage .product-recommendations-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
#productPage .product-recommendations-grid .product-card{
    min-width:0;
    width:100%;
    overflow:hidden;
    border-radius:20px;
    background:#fff;
    box-shadow:0 5px 18px rgba(78,42,53,.06);
}
#productPage .product-recommendations-grid .product-image{
    aspect-ratio:1 / 1.12;
    height:auto;
    min-height:0;
}
#productPage .product-recommendations-grid .product-info{
    padding:11px 12px 12px;
}
#productPage .product-recommendations-grid .product-info h3{
    margin:0 0 9px;
    min-height:0;
    overflow:visible;
    white-space:normal;
    text-overflow:clip;
    color:#3d3035;
    font-size:14px;
    font-weight:500;
    line-height:1.3;
}
#productPage .product-recommendations-grid .product-bottom{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
}
#productPage .product-recommendations-grid .product-price{
    color:#df5578;
    font-size:16px;
    font-weight:700;
}
#productPage .product-recommendations-grid .product-cart{
    flex:0 0 38px;
    width:38px;
    height:38px;
    border-radius:12px;
}
#productPage .product-recommendations-grid .favorite-button{
    width:40px;
    height:40px;
}


/* =========================================================
   BOUQUET TYPOGRAPHY — BRAND DISPLAY FONT
   ========================================================= */
:root {
    --bouquet-font: "Cormorant Garamond", Georgia, "Times New Roman", serif;
}

/* Product names on Home, Catalog and Favorites */
.product-card .product-meta h2 {
    min-height: 42px;
    display: -webkit-box;
    align-items: initial;
    margin-bottom: 8px;
    overflow: hidden;
    color: #34272c;
    font-family: var(--bouquet-font);
    font-size: 18px;
    line-height: 1.08;
    font-weight: 600;
    letter-spacing: 0;
    white-space: normal;
    text-overflow: clip;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

/* Main product title */
#productPage #productDetailName {
    font-family: var(--bouquet-font);
    font-size: 38px;
    line-height: 1;
    font-weight: 600;
    letter-spacing: -0.01em;
}

/* Similar bouquet cards — same typography, compact size */
#productPage .product-recommendations-grid .product-meta h2,
#productPage .product-recommendations-grid .product-info h3 {
    min-height: 39px;
    margin: 0 0 8px;
    overflow: hidden;
    color: #34272c;
    font-family: var(--bouquet-font);
    font-size: 18px;
    line-height: 1.08;
    font-weight: 600;
    letter-spacing: 0;
    white-space: normal;
    text-overflow: clip;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}


/* =========================
   HOME CATALOG BUTTON
========================= */

.home-catalog-pager {
    display: flex;
    justify-content: center;

    padding: 24px 16px 30px;
}

.home-catalog-button {
    width: 100%;
    min-height: 48px;

    border: none;
    border-radius: 15px;

    background: var(--accent-secondary);
    color: #ffffff;

    font-size: 15px;
    font-weight: 600;

    box-shadow:
        0 6px 18px
        rgba(72, 48, 58, 0.10);
}
