/*
 * PG Food Menu Pro
 * Version 1.8.0 - Clean CSS Rebuild
 * This file intentionally replaces the old layered patch CSS.
 * Goal: stable public menu across themes + clean admin pages.
 */

:root {
    --pgfm-red: #9b3528;
    --pgfm-red-dark: #7e2b22;
    --pgfm-dark: #2f2723;
    --pgfm-body: #4a3b34;
    --pgfm-muted: #7a6961;
    --pgfm-border: rgba(155, 53, 40, .18);
    --pgfm-cream: #fffaf4;
    --pgfm-white: #ffffff;
    --pgfm-warm: #fff4e4;
    --pgfm-gold: #fff6dc;
    --pgfm-rustic: #fff4ef;
}

/* =========================================================
   Public Menu Isolation
   ========================================================= */

.pgfm-display-wrap,
.pgfm-public-output,
.pgfm-clean-public-menu {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
    text-align: center !important;
    float: none !important;
    clear: both !important;
    overflow: visible !important;
}

.pgfm-clean-public-menu,
.pgfm-clean-public-menu * {
    box-sizing: border-box !important;
}

.pgfm-clean-public-menu > br,
.pgfm-clean-public-menu > p:empty,
.pgfm-clean-public-menu > span:empty,
.pgfm-clean-public-menu > div:empty:not(.pgfm-tabs):not(.pgfm-menu-card) {
    display: none !important;
}

.pgfm-clean-public-menu.pgfm-no-tabs .pgfm-tabs,
.pgfm-clean-public-menu.pgfm-single-room-menu .pgfm-tabs {
    display: none !important;
}

/* Public tabs for [pg_food_menu_pro] */
.pgfm-tabs {
    display: flex !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    gap: 0 !important;
    margin: 20px auto 34px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.pgfm-tabs a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 48px !important;
    min-width: 104px !important;
    padding: 12px 22px !important;
    margin: 0 !important;
    color: var(--pgfm-red) !important;
    background: #fffdfb !important;
    border: 1px solid rgba(155, 53, 40, .22) !important;
    border-radius: 24px !important;
    box-shadow: none !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-decoration: none !important;
}

.pgfm-tabs a:hover,
.pgfm-tabs a.pgfm-active,
.pgfm-tabs a.active {
    color: #fff !important;
    background: var(--pgfm-red) !important;
    border-color: var(--pgfm-red) !important;
    text-decoration: none !important;
}

/* Menu paper/card */
.pgfm-clean-public-menu .pgfm-menu-card,
.pgfm-public-output .pgfm-menu-card {
    display: block !important;
    position: relative !important;
    width: min(100%, 820px) !important;
    max-width: 820px !important;
    min-height: auto !important;
    margin: 40px auto !important;
    padding: 58px 54px 54px !important;
    text-align: center !important;
    overflow: hidden !important;
    color: var(--pgfm-dark) !important;
    background: var(--pgfm-cream) !important;
    background-color: var(--pgfm-cream) !important;
    background-image: none !important;
    border: 1px solid var(--pgfm-border) !important;
    border-radius: 26px !important;
    box-shadow: none !important;
    float: none !important;
    clear: both !important;
    isolation: isolate !important;
}

.pgfm-clean-public-menu .pgfm-menu-card *,
.pgfm-clean-public-menu .pgfm-menu-card *::before,
.pgfm-clean-public-menu .pgfm-menu-card *::after {
    box-sizing: border-box !important;
}

/* Paper choices */
.pgfm-clean-public-menu .pgfm-menu-card.pgfm-paper-hacienda_cream {
    background: var(--pgfm-cream) !important;
    background-color: var(--pgfm-cream) !important;
    background-image: none !important;
}

.pgfm-clean-public-menu .pgfm-menu-card.pgfm-paper-clean_white {
    background: var(--pgfm-white) !important;
    background-color: var(--pgfm-white) !important;
    background-image: none !important;
}

.pgfm-clean-public-menu .pgfm-menu-card.pgfm-paper-warm_paper {
    background: var(--pgfm-warm) !important;
    background-color: var(--pgfm-warm) !important;
    background-image: none !important;
}

.pgfm-clean-public-menu .pgfm-menu-card.pgfm-paper-soft_gold {
    background: var(--pgfm-gold) !important;
    background-color: var(--pgfm-gold) !important;
    background-image: none !important;
}

.pgfm-clean-public-menu .pgfm-menu-card.pgfm-paper-rustic_red {
    background: var(--pgfm-rustic) !important;
    background-color: var(--pgfm-rustic) !important;
    background-image: none !important;
}

/* remove texture/ghosts */
.pgfm-clean-public-menu .pgfm-paper-texture,
.pgfm-clean-public-menu .pgfm-menu-card::before,
.pgfm-clean-public-menu .pgfm-menu-card::after,
.pgfm-clean-public-menu .pgfm-paper-texture::before,
.pgfm-clean-public-menu .pgfm-paper-texture::after {
    content: none !important;
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    background: none !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* Reset theme blocks inside card */
.pgfm-clean-public-menu .pgfm-menu-card h1,
.pgfm-clean-public-menu .pgfm-menu-card h2,
.pgfm-clean-public-menu .pgfm-menu-card h3,
.pgfm-clean-public-menu .pgfm-menu-card h4,
.pgfm-clean-public-menu .pgfm-menu-card h5,
.pgfm-clean-public-menu .pgfm-menu-card h6,
.pgfm-clean-public-menu .pgfm-menu-card p,
.pgfm-clean-public-menu .pgfm-menu-card div,
.pgfm-clean-public-menu .pgfm-menu-card span,
.pgfm-clean-public-menu .pgfm-menu-card strong,
.pgfm-clean-public-menu .pgfm-menu-card b,
.pgfm-clean-public-menu .pgfm-menu-card em,
.pgfm-clean-public-menu .pgfm-menu-card i,
.pgfm-clean-public-menu .pgfm-menu-card small,
.pgfm-clean-public-menu .pgfm-menu-card ul,
.pgfm-clean-public-menu .pgfm-menu-card ol,
.pgfm-clean-public-menu .pgfm-menu-card li {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
    text-shadow: none !important;
    outline: 0 !important;
}

/* Typography and spacing */
.pgfm-clean-public-menu .pgfm-room-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 74px !important;
    min-height: 34px !important;
    margin: 0 auto 18px !important;
    padding: 8px 18px !important;
    color: var(--pgfm-red) !important;
    background: #fffdfb !important;
    border: 1px solid rgba(155, 53, 40, .22) !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    font-size: 11px !important;
    line-height: 1 !important;
    letter-spacing: .18em !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
}

.pgfm-clean-public-menu .pgfm-title {
    display: block !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
    color: var(--pgfm-red) !important;
    font-size: 36px !important;
    line-height: 1.08 !important;
    letter-spacing: .12em !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    text-align: center !important;
}

.pgfm-clean-public-menu .pgfm-room-note {
    display: block !important;
    margin: 0 auto 26px !important;
    padding: 0 !important;
    color: var(--pgfm-dark) !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    text-align: center !important;
}

.pgfm-clean-public-menu .pgfm-section {
    display: block !important;
    width: 100% !important;
    max-width: 560px !important;
    margin: 28px auto 0 !important;
    padding: 0 !important;
    text-align: center !important;
}

.pgfm-clean-public-menu .pgfm-section > h2 {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 16px !important;
    margin: 0 0 16px !important;
    padding: 0 !important;
    color: var(--pgfm-red) !important;
    font-size: 24px !important;
    line-height: 1.15 !important;
    letter-spacing: .08em !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    text-align: center !important;
}

.pgfm-clean-public-menu .pgfm-section > h2::before,
.pgfm-clean-public-menu .pgfm-section > h2::after {
    content: "" !important;
    display: inline-block !important;
    width: 28px !important;
    height: 1px !important;
    background: var(--pgfm-red) !important;
    opacity: .45 !important;
    flex: 0 0 28px !important;
}

.pgfm-clean-public-menu .pgfm-menu-item {
    display: block !important;
    max-width: 560px !important;
    margin: 0 auto 34px !important;
    padding: 0 !important;
    text-align: center !important;
}

.pgfm-clean-public-menu .pgfm-menu-item h3,
.pgfm-clean-public-menu .pgfm-section h3 {
    display: block !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
    color: var(--pgfm-dark) !important;
    font-size: 18px !important;
    line-height: 1.35 !important;
    letter-spacing: .03em !important;
    font-weight: 700 !important;
    text-transform: none !important;
    text-align: center !important;
}

.pgfm-clean-public-menu .pgfm-description,
.pgfm-clean-public-menu .pgfm-description *,
.pgfm-clean-public-menu .pgfm-section p,
.pgfm-clean-public-menu .pgfm-section p * {
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0 !important;
    color: var(--pgfm-dark) !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
    font-weight: 400 !important;
    text-align: center !important;
}

.pgfm-clean-public-menu .pgfm-description p,
.pgfm-clean-public-menu .pgfm-section p {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    max-width: 560px !important;
}

.pgfm-clean-public-menu .pgfm-menu-updated-at {
    display: block !important;
    width: auto !important;
    max-width: max-content !important;
    margin: 26px auto 12px !important;
    padding: 0 !important;
    color: var(--pgfm-muted) !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
    letter-spacing: .08em !important;
    text-align: center !important;
    text-transform: uppercase !important;
}

.pgfm-clean-public-menu .pgfm-footer,
.pgfm-clean-public-menu .pgfm-real-logo-footer {
    display: block !important;
    margin: 26px auto 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    text-align: center !important;
}

.pgfm-clean-public-menu .pgfm-real-logo,
.pgfm-clean-public-menu .pgfm-footer img,
.pgfm-clean-public-menu .pgfm-real-logo-footer img {
    display: block !important;
    width: min(340px, 78%) !important;
    max-width: 340px !important;
    height: auto !important;
    margin: 0 auto !important;
    padding: 0 !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    filter: none !important;
    opacity: 1 !important;
}

/* =========================================================
   Admin/editor UI
   ========================================================= */

.pgfm-admin-wrap {
    max-width: 1180px;
}

.pgfm-admin-wrap h1,
.pgfm-admin-wrap h2,
.pgfm-admin-wrap h3 {
    color: var(--pgfm-red);
}

.pgfm-editor-form,
.pgfm-design-card,
.pgfm-template-box,
.pgfm-save-template-box,
.pgfm-template-delete-box,
.pgfm-template-save-form,
.pgfm-notes-card,
.pgfm-reset-demo-box {
    max-width: 920px;
    margin: 18px 0;
    padding: 18px;
    background: #fff;
    border: 1px solid #e5ddd8;
    border-radius: 14px;
    box-shadow: 0 6px 18px rgba(0,0,0,.04);
}

.pgfm-editor-form input[type="text"],
.pgfm-editor-form input[type="url"],
.pgfm-editor-form input[type="email"],
.pgfm-editor-form textarea,
.pgfm-editor-form select,
.pgfm-design-form input[type="text"],
.pgfm-design-form input[type="url"],
.pgfm-design-form textarea,
.pgfm-design-form select,
.pgfm-qr-settings-form input[type="url"],
.pgfm-qr-settings-form select,
.pgfm-template-box input,
.pgfm-template-box select,
.pgfm-template-delete-box select {
    width: 100%;
    max-width: 100%;
}

.pgfm-editor-section {
    padding: 16px 0;
    border-top: 1px solid #eee;
}

.pgfm-editor-section h2 {
    margin-bottom: 10px;
    color: var(--pgfm-red);
    text-transform: uppercase;
    letter-spacing: .04em;
}

.pgfm-room-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 16px 0;
}

.pgfm-room-tabs a,
.pgfm-template-actions a,
.pgfm-template-actions button {
    text-decoration: none;
}

.pgfm-collapsible-design-section {
    margin: 18px 0;
    padding: 0;
    background: #fff;
    border: 1px solid #e5ddd8;
    border-radius: 14px;
    box-shadow: 0 6px 18px rgba(0,0,0,.04);
    overflow: hidden;
}

.pgfm-collapsible-design-section summary {
    cursor: pointer;
    padding: 16px 18px;
    color: var(--pgfm-red);
    font-size: 18px;
    font-weight: 700;
    user-select: none;
}

.pgfm-collapsible-design-section summary:hover {
    background: #fffaf7;
}

.pgfm-collapsible-design-content {
    padding: 0 18px 18px;
}

.pgfm-custom-font-slot {
    margin: 14px 0;
    padding: 14px;
    background: #fffaf7;
    border: 1px solid #eaded6;
    border-radius: 12px;
}

.pgfm-custom-font-slot h4 {
    margin: 0 0 10px;
    color: var(--pgfm-red);
}

.pgfm-font-upload-form input[type="file"] {
    padding: 10px;
    background: #fffaf7;
    border: 1px dashed #d8c8bd;
    border-radius: 10px;
    width: 100%;
    max-width: 520px;
}

.pgfm-design-save-bottom {
    margin: 20px 0 0;
    padding: 18px;
    background: #fffaf7;
    border: 1px solid #eaded6;
    border-radius: 14px;
}

.pgfm-design-preview {
    max-width: 920px;
    margin: 18px 0;
    padding: 18px;
    background: #fff;
    border: 1px solid #e5ddd8;
    border-radius: 14px;
}

/* =========================================================
   QR Cards
   ========================================================= */

.pgfm-print-toolbar,
.pgfm-qr-room-toolbar,
.pgfm-print-menu-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin: 14px 0 18px;
}

.pgfm-qr-print-area {
    max-width: 1100px;
}

.pgfm-qr-print-note {
    margin: 12px 0 16px;
    color: var(--pgfm-muted);
}

.pgfm-qr-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 22px;
    align-items: start;
}

.pgfm-qr-card {
    page-break-inside: avoid;
}

.pgfm-qr-card-inner {
    max-width: 360px;
    margin: 0 auto;
    padding: 22px;
    background: #fffdfb;
    border: 1px solid rgba(155, 53, 40, .20);
    border-radius: 18px;
    text-align: center;
    box-shadow: 0 8px 22px rgba(0,0,0,.08);
}

.pgfm-qr-card h2 {
    margin: 0 0 16px;
    color: var(--pgfm-red);
    font-size: 26px;
    line-height: 1;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.pgfm-qr-image-wrap {
    position: relative;
    display: block;
    max-width: 280px;
    margin: 0 auto 12px;
    padding: 12px;
    background: #fff;
    border-radius: 14px;
}

.pgfm-qr-image-wrap img,
.pgfm-qr-image {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
}

.pgfm-qr-center-logo {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 56px;
    height: 56px;
    transform: translate(-50%, -50%);
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border-radius: 12px;
    padding: 5px;
}

.pgfm-qr-center-logo img {
    max-width: 100%;
    height: auto;
}

/* =========================================================
   Print
   ========================================================= */

.pgfm-menu-print-toolbar {
    display: none !important; /* public print removed */
}

@media print {
    @page {
        size: letter portrait;
        margin: 12mm;
    }

    body * {
        visibility: hidden !important;
    }

    .pgfm-print-menu-preview,
    .pgfm-print-menu-preview *,
    .pgfm-qr-print-area,
    .pgfm-qr-print-area *,
    .pgfm-qr-grid,
    .pgfm-qr-grid *,
    .pgfm-qr-card,
    .pgfm-qr-card * {
        visibility: visible !important;
    }

    .pgfm-print-menu-preview,
    .pgfm-qr-print-area {
        position: absolute !important;
        left: 0 !important;
        top: 0 !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
    }

    .pgfm-admin-print-toolbar,
    .pgfm-print-toolbar,
    .pgfm-qr-room-toolbar,
    .pgfm-print-menu-buttons,
    .notice,
    #wpadminbar,
    #adminmenuwrap,
    #adminmenuback,
    #screen-meta,
    #screen-meta-links,
    .update-nag,
    .post-edit-link {
        display: none !important;
        visibility: hidden !important;
    }

    .pgfm-print-menu-preview .pgfm-menu-card {
        box-shadow: none !important;
        margin: 0 auto !important;
        max-width: 720px !important;
        width: 100% !important;
        min-height: auto !important;
        page-break-inside: avoid;
    }

    .pgfm-qr-print-one-page .pgfm-qr-grid-print {
        display: block !important;
    }

    .pgfm-qr-print-one-page .pgfm-qr-card {
        display: block !important;
        width: 100% !important;
        min-height: calc(11in - 24mm) !important;
        page-break-after: always !important;
        break-after: page !important;
        page-break-inside: avoid !important;
        break-inside: avoid !important;
        padding-top: 10mm !important;
    }

    .pgfm-qr-print-one-page .pgfm-qr-card:last-child {
        page-break-after: auto !important;
        break-after: auto !important;
    }

    .pgfm-qr-print-one-page .pgfm-qr-card-inner {
        max-width: 4.4in !important;
        margin: 0 auto !important;
        box-shadow: none !important;
    }

    .pgfm-qr-image,
    .pgfm-qr-image-wrap img {
        print-color-adjust: exact !important;
        -webkit-print-color-adjust: exact !important;
    }
}

/* =========================================================
   Mobile
   ========================================================= */

@media (max-width: 640px) {
    .pgfm-clean-public-menu .pgfm-menu-card,
    .pgfm-public-output .pgfm-menu-card {
        width: 100% !important;
        max-width: 100% !important;
        margin: 20px auto !important;
        padding: 42px 22px 38px !important;
        border-radius: 20px !important;
    }

    .pgfm-clean-public-menu .pgfm-title {
        font-size: 32px !important;
    }

    .pgfm-clean-public-menu .pgfm-section > h2 {
        font-size: 22px !important;
        gap: 10px !important;
    }

    .pgfm-clean-public-menu .pgfm-section > h2::before,
    .pgfm-clean-public-menu .pgfm-section > h2::after {
        width: 18px !important;
        flex-basis: 18px !important;
    }

    .pgfm-tabs a {
        min-width: 92px !important;
        padding: 11px 16px !important;
        font-size: 14px !important;
    }
}


/* PG Food Menu Pro v1.8.1 - public preview shell
   Admin "Imprimir Menús" looked correct because it used a clean preview context.
   Public shortcodes now place the menu inside a similar shell to avoid theme interference. */

.pgfm-public-menu-preview {
    display: block !important;
    width: 100% !important;
    max-width: 900px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
    text-align: center !important;
    clear: both !important;
    float: none !important;
}

.pgfm-public-menu-preview,
.pgfm-public-menu-preview * {
    box-sizing: border-box !important;
}

.pgfm-public-menu-preview .pgfm-menu-card {
    display: block !important;
    position: relative !important;
    width: min(100%, 820px) !important;
    max-width: 820px !important;
    min-height: auto !important;
    margin: 40px auto !important;
    padding: 58px 54px 54px !important;
    text-align: center !important;
    overflow: hidden !important;
    color: var(--pgfm-dark) !important;
    background: var(--pgfm-cream) !important;
    background-color: var(--pgfm-cream) !important;
    background-image: none !important;
    border: 1px solid var(--pgfm-border) !important;
    border-radius: 26px !important;
    box-shadow: none !important;
    float: none !important;
    clear: both !important;
}

.pgfm-public-menu-preview .pgfm-menu-card.pgfm-paper-hacienda_cream {
    background: var(--pgfm-cream) !important;
    background-color: var(--pgfm-cream) !important;
    background-image: none !important;
}

.pgfm-public-menu-preview .pgfm-menu-card.pgfm-paper-clean_white {
    background: #fff !important;
    background-color: #fff !important;
    background-image: none !important;
}

.pgfm-public-menu-preview .pgfm-menu-card.pgfm-paper-warm_paper {
    background: var(--pgfm-warm) !important;
    background-color: var(--pgfm-warm) !important;
    background-image: none !important;
}

.pgfm-public-menu-preview .pgfm-menu-card.pgfm-paper-soft_gold {
    background: var(--pgfm-gold) !important;
    background-color: var(--pgfm-gold) !important;
    background-image: none !important;
}

.pgfm-public-menu-preview .pgfm-menu-card.pgfm-paper-rustic_red {
    background: var(--pgfm-rustic) !important;
    background-color: var(--pgfm-rustic) !important;
    background-image: none !important;
}

/* Full reset inside the public preview shell. */
.pgfm-public-menu-preview .pgfm-menu-card h1,
.pgfm-public-menu-preview .pgfm-menu-card h2,
.pgfm-public-menu-preview .pgfm-menu-card h3,
.pgfm-public-menu-preview .pgfm-menu-card h4,
.pgfm-public-menu-preview .pgfm-menu-card h5,
.pgfm-public-menu-preview .pgfm-menu-card h6,
.pgfm-public-menu-preview .pgfm-menu-card p,
.pgfm-public-menu-preview .pgfm-menu-card div,
.pgfm-public-menu-preview .pgfm-menu-card span,
.pgfm-public-menu-preview .pgfm-menu-card strong,
.pgfm-public-menu-preview .pgfm-menu-card b,
.pgfm-public-menu-preview .pgfm-menu-card em,
.pgfm-public-menu-preview .pgfm-menu-card i,
.pgfm-public-menu-preview .pgfm-menu-card small,
.pgfm-public-menu-preview .pgfm-menu-card ul,
.pgfm-public-menu-preview .pgfm-menu-card ol,
.pgfm-public-menu-preview .pgfm-menu-card li,
.pgfm-public-menu-preview .pgfm-menu-card img {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
    text-shadow: none !important;
    outline: 0 !important;
}

/* Typography copied to the preview shell so theme heading sizes cannot win. */
.pgfm-public-menu-preview .pgfm-room-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 74px !important;
    min-height: 34px !important;
    margin: 0 auto 18px !important;
    padding: 8px 18px !important;
    color: var(--pgfm-red) !important;
    background: #fffdfb !important;
    border: 1px solid rgba(155, 53, 40, .22) !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    font-size: 11px !important;
    line-height: 1 !important;
    letter-spacing: .18em !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
}

.pgfm-public-menu-preview .pgfm-title {
    display: block !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
    color: var(--pgfm-red) !important;
    font-size: 36px !important;
    line-height: 1.08 !important;
    letter-spacing: .12em !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    text-align: center !important;
}

.pgfm-public-menu-preview .pgfm-room-note {
    display: block !important;
    margin: 0 auto 26px !important;
    padding: 0 !important;
    color: var(--pgfm-dark) !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    text-align: center !important;
}

.pgfm-public-menu-preview .pgfm-section {
    display: block !important;
    width: 100% !important;
    max-width: 560px !important;
    margin: 28px auto 0 !important;
    padding: 0 !important;
    text-align: center !important;
}

.pgfm-public-menu-preview .pgfm-section > h2 {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 16px !important;
    margin: 0 0 16px !important;
    padding: 0 !important;
    color: var(--pgfm-red) !important;
    font-size: 24px !important;
    line-height: 1.15 !important;
    letter-spacing: .08em !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    text-align: center !important;
}

.pgfm-public-menu-preview .pgfm-section > h2::before,
.pgfm-public-menu-preview .pgfm-section > h2::after {
    content: "" !important;
    display: inline-block !important;
    width: 28px !important;
    height: 1px !important;
    background: var(--pgfm-red) !important;
    opacity: .45 !important;
    flex: 0 0 28px !important;
}

.pgfm-public-menu-preview .pgfm-menu-item {
    display: block !important;
    max-width: 560px !important;
    margin: 0 auto 34px !important;
    padding: 0 !important;
    text-align: center !important;
}

.pgfm-public-menu-preview .pgfm-menu-item h3,
.pgfm-public-menu-preview .pgfm-section h3 {
    display: block !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
    color: var(--pgfm-dark) !important;
    font-size: 18px !important;
    line-height: 1.35 !important;
    letter-spacing: .03em !important;
    font-weight: 700 !important;
    text-transform: none !important;
    text-align: center !important;
}

.pgfm-public-menu-preview .pgfm-description,
.pgfm-public-menu-preview .pgfm-description *,
.pgfm-public-menu-preview .pgfm-section p,
.pgfm-public-menu-preview .pgfm-section p * {
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0 !important;
    color: var(--pgfm-dark) !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
    font-weight: 400 !important;
    text-align: center !important;
}

.pgfm-public-menu-preview .pgfm-description p,
.pgfm-public-menu-preview .pgfm-section p {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    max-width: 560px !important;
}

.pgfm-public-menu-preview .pgfm-menu-updated-at {
    display: block !important;
    width: auto !important;
    max-width: max-content !important;
    margin: 26px auto 12px !important;
    padding: 0 !important;
    color: var(--pgfm-muted) !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
    letter-spacing: .08em !important;
    text-align: center !important;
    text-transform: uppercase !important;
}

.pgfm-public-menu-preview .pgfm-footer,
.pgfm-public-menu-preview .pgfm-real-logo-footer {
    display: block !important;
    margin: 26px auto 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    text-align: center !important;
}

.pgfm-public-menu-preview .pgfm-real-logo,
.pgfm-public-menu-preview .pgfm-footer img,
.pgfm-public-menu-preview .pgfm-real-logo-footer img {
    display: block !important;
    width: min(340px, 78%) !important;
    max-width: 340px !important;
    height: auto !important;
    margin: 0 auto !important;
    padding: 0 !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    filter: none !important;
    opacity: 1 !important;
}

.pgfm-public-menu-preview .pgfm-paper-texture,
.pgfm-public-menu-preview .pgfm-menu-card::before,
.pgfm-public-menu-preview .pgfm-menu-card::after,
.pgfm-public-menu-preview .pgfm-paper-texture::before,
.pgfm-public-menu-preview .pgfm-paper-texture::after {
    content: none !important;
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    background: none !important;
    border: 0 !important;
}

/* Single room public pages should not inherit theme gray blocks around the shell. */
.pgfm-clean-public-menu.pgfm-single-room-menu,
.pgfm-clean-public-menu.pgfm-single-room-menu .pgfm-public-menu-preview {
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
}

@media (max-width: 640px) {
    .pgfm-public-menu-preview .pgfm-menu-card {
        width: 100% !important;
        max-width: 100% !important;
        margin: 20px auto !important;
        padding: 42px 22px 38px !important;
        border-radius: 20px !important;
    }

    .pgfm-public-menu-preview .pgfm-title {
        font-size: 32px !important;
    }
}


/* PG Food Menu Pro v1.8.2 - isolated iframe room shortcodes */
.pgfm-room-frame-wrap {
    display: block !important;
    width: 100% !important;
    max-width: 900px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
}

.pgfm-room-frame {
    display: block !important;
    width: 100% !important;
    min-height: 900px;
    height: 1200px;
    margin: 0 auto !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: hidden !important;
}


/* PG Food Menu Pro v1.8.4 - center isolated room shortcode iframe */
.pgfm-room-frame-wrap {
    display: flex !important;
    justify-content: center !important;
    align-items: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    text-align: center !important;
    float: none !important;
    clear: both !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.pgfm-room-frame {
    display: block !important;
    width: min(100%, 900px) !important;
    max-width: 900px !important;
    min-height: 900px;
    height: 1200px;
    margin: 0 auto !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: hidden !important;
}

/* If the theme wraps the shortcode in a paragraph/code block, center that wrapper too. */
p:has(.pgfm-room-frame-wrap),
div:has(.pgfm-room-frame-wrap),
.wp-block-shortcode:has(.pgfm-room-frame-wrap),
.entry-content:has(.pgfm-room-frame-wrap),
.page-content:has(.pgfm-room-frame-wrap),
.wp-block-post-content:has(.pgfm-room-frame-wrap) {
    text-align: center !important;
}

/* Remove code styling only if the shortcode output was accidentally placed inside a code element. */
code:has(.pgfm-room-frame-wrap),
pre:has(.pgfm-room-frame-wrap) {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    text-align: center !important;
    white-space: normal !important;
}


/* PG Food Menu Pro v1.8.5 - stronger centering for individual room pages */
.pgfm-room-frame-wrap,
.entry-content .pgfm-room-frame-wrap,
.page-content .pgfm-room-frame-wrap,
.wp-block-post-content .pgfm-room-frame-wrap,
.wp-block-shortcode .pgfm-room-frame-wrap {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
    float: none !important;
    clear: both !important;
}

.pgfm-room-frame-wrap .pgfm-room-frame,
.entry-content .pgfm-room-frame,
.page-content .pgfm-room-frame,
.wp-block-post-content .pgfm-room-frame,
.wp-block-shortcode .pgfm-room-frame {
    display: block !important;
    width: min(100%, 900px) !important;
    max-width: 900px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
    clear: both !important;
}


/* PG Food Menu Pro v1.8.6 - iframe height and page wrapper cleanup */
.pgfm-room-frame-wrap {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.pgfm-room-frame {
    min-height: 0 !important;
    height: 800px;
    background: transparent !important;
}

/* If JS has reported height, inline height wins. This just prevents enormous fallback whitespace. */
@media (min-width: 1px) {
    .pgfm-room-frame {
        max-height: none !important;
    }
}

/* Clean common page wrappers only on pages that contain an isolated room frame. */
body.pgfm-has-room-frame .entry-content,
body.pgfm-has-room-frame .page-content,
body.pgfm-has-room-frame .wp-block-post-content,
body.pgfm-has-room-frame .wp-block-shortcode {
    background: transparent !important;
    box-shadow: none !important;
    border-color: transparent !important;
}

/* Modern-browser support: remove theme white card around the shortcode area when possible. */
.entry-content:has(.pgfm-room-frame-wrap),
.page-content:has(.pgfm-room-frame-wrap),
.wp-block-post-content:has(.pgfm-room-frame-wrap),
.wp-block-shortcode:has(.pgfm-room-frame-wrap) {
    background: transparent !important;
    box-shadow: none !important;
    border-color: transparent !important;
}
