body {
            background: var(--theme-page-background);
            color: var(--theme-paragraph-text);
        }

        h1, h2, h3, h4, h5, h6 {
            color: var(--theme-heading-text);
        }

        .hero-section,
        .theme-banner-surface {
            color: var(--theme-banner-text);
        }

        .hero-section :is(h1, h2, h3, h4, h5, h6, .hero-title, .brand-title),
        .theme-banner-surface :is(h1, h2, h3, h4, h5, h6) {
            color: var(--theme-banner-text) !important;
            text-shadow: 0 2px 8px rgba(0, 0, 0, .22);
        }

        .hero-section :is(p, .breadcrumb-item, .breadcrumb-item a, .breadcrumb-item::before),
        .theme-banner-muted {
            color: var(--theme-banner-muted-text) !important;
        }

        .payment-card,
        .contact-card,
        .contact-form-card,
        .working-hours-card,
        .platform-card {
            color: var(--theme-paragraph-text);
        }

        .working-hours-card :is(h2, h3, h4, h5),
        .contact-card :is(h2, h3, h4, h5) {
            color: var(--theme-heading-text) !important;
        }

        .btn-theme,
        .btn-theme-primary,
        .theme-gradient-button {
            background: var(--theme-primary-fill) !important;
            border-color: var(--primary-color) !important;
            color: var(--theme-gradient-text) !important;
        }

        .btn-theme:hover,
        .btn-theme-primary:hover,
        .theme-gradient-button:hover {
            background: var(--theme-secondary-fill) !important;
            border-color: var(--secondary-color) !important;
            color: var(--theme-gradient-text) !important;
        }

        .alert-info,
        .alert-success,
        .alert-danger,
        .alert-warning {
            background: var(--theme-surface-background) !important;
            border: 1px solid var(--theme-surface-border) !important;
            color: var(--theme-heading-text) !important;
        }

        .alert-info i,
        .alert-success i,
        .alert-danger i,
        .alert-warning i,
        .text-danger,
        .text-success,
        .text-warning,
        .text-info {
            color: var(--primary-color) !important;
        }

        .form-control.is-invalid,
        .was-validated .form-control:invalid {
            border-color: var(--primary-color) !important;
        }

        /* Shared public business surfaces use the selected business palette. */
        .site-cookie-banner {
            border-color: color-mix(in srgb, var(--theme-gradient-text, #fff) 18%, transparent);
            background: var(--theme-primary-fill) !important;
            color: var(--theme-gradient-text, #fff);
            box-shadow: 0 18px 50px rgba(var(--secondary-rgb), .28);
        }

        .site-cookie-banner p {
            color: color-mix(in srgb, var(--theme-gradient-text, #fff) 82%, transparent);
        }

        .site-cookie-banner a {
            color: var(--theme-gradient-text, #fff);
            text-decoration-color: color-mix(in srgb, var(--theme-gradient-text, #fff) 55%, transparent);
        }

        /* Business menu and its product modal previously carried a fixed green palette. */
        .public-menu,
        .menu-product-modal {
            --pm-ink: var(--theme-heading-text);
            --pm-muted: var(--theme-paragraph-text);
        }

        .public-menu {
            background: linear-gradient(180deg, rgba(var(--primary-rgb), .065), rgba(var(--secondary-rgb), .025) 58%, rgba(var(--primary-rgb), .04));
        }

        .public-menu .category-nav-wrapper {
            border-color: var(--theme-surface-border);
            background: color-mix(in srgb, var(--theme-surface-background, #fff) 94%, transparent);
            box-shadow: 0 12px 34px rgba(var(--secondary-rgb), .1);
        }

        .public-menu .category-card {
            border-color: var(--theme-surface-border);
            background: var(--theme-primary-fill-5);
            color: var(--theme-heading-text);
        }

        .public-menu .category-card:hover,
        .public-menu .category-card.is-active {
            border-color: var(--primary-color);
            background: var(--theme-surface-background, #fff);
            color: var(--primary-color);
            box-shadow: 0 6px 16px rgba(var(--primary-rgb), .14);
        }

        .public-menu .category-root-scroll,
        .public-menu .pm-group-title,
        .public-menu .pm-parent-category-heading {
            border-color: var(--theme-surface-border);
        }

        .public-menu .category-root-card,
        .public-menu .category-root-card:hover,
        .public-menu .category-root-card.is-active {
            background: transparent;
        }

        .public-menu .pm-item {
            border-color: var(--theme-surface-border);
            background: var(--theme-surface-background, #fff);
            box-shadow: 0 8px 24px rgba(var(--secondary-rgb), .075);
        }

        .public-menu .pm-item:hover {
            box-shadow: 0 16px 34px rgba(var(--secondary-rgb), .14);
        }

        .public-menu .pm-item-media,
        .menu-product-modal .pm-modal-media {
            background: var(--theme-primary-fill-5);
        }

        .public-menu .pm-image-empty,
        .menu-product-modal .pm-modal-media > span {
            color: color-mix(in srgb, var(--primary-color) 65%, transparent);
        }

        .public-menu .pm-item-overlay {
            background: linear-gradient(0deg, rgba(var(--secondary-rgb), .62), transparent 56%);
        }

        .public-menu .pm-item-overlay span {
            color: var(--theme-heading-text);
        }

        .public-menu .pm-item-footer {
            border-color: var(--theme-surface-border);
        }

        .public-menu .pm-empty-category,
        .public-menu .pm-empty {
            border-color: var(--theme-surface-border);
            background: var(--theme-surface-background, #fff);
            color: var(--theme-paragraph-text);
        }

        .menu-product-modal {
            --pm-modal-heading: var(--theme-heading-text);
            --pm-modal-title: color-mix(in srgb, var(--secondary-color) 88%, #111 12%);
            --pm-modal-body: var(--theme-paragraph-text);
            --pm-modal-label: color-mix(in srgb, var(--secondary-color) 72%, #44514d 28%);
            --pm-modal-price: var(--primary-color);
        }

        .menu-product-modal .modal-content,
        .menu-product-modal .pm-modal-copy {
            background: var(--theme-surface-background, #fff);
        }

        .menu-product-modal .modal-content {
            box-shadow: 0 30px 80px rgba(var(--secondary-rgb), .24);
        }

        .menu-product-modal .modal-header,
        .menu-product-modal .pm-modal-section {
            border-color: var(--theme-surface-border);
            background: var(--theme-primary-fill-5);
        }

        .menu-product-modal .pm-modal-section p,
        .menu-product-modal .pm-modal-nutrition span {
            color: var(--theme-paragraph-text) !important;
        }

        .menu-product-modal .pm-modal-serving span,
        .menu-product-modal .pm-modal-chips span,
        .menu-product-modal .pm-modal-nutrition span {
            background: var(--theme-primary-fill-9);
            color: var(--theme-paragraph-text);
        }

        .menu-product-modal .pm-modal-price {
            border-color: color-mix(in srgb, var(--primary-color) 24%, transparent);
            background: var(--theme-primary-fill-9);
        }

        .contact-page-shell .contact-icon-wrapper {
            background: var(--theme-primary-fill-9);
            color: var(--primary-color);
        }

