/* ============================================================
   BLOCKS

   assets/css/blocks.css

   Part of the Rodi Express child theme. Loaded by inc/enqueue.php.
   Gutenberg core blocks: buttons, groups, separators, lists.

   FoodMaster predates block themes and ships no theme.json, so
   core blocks arrive almost unstyled. Two consequences were
   visible on the Trade Account page:

   - wp-block-button rendered as a plain text link, so the
     primary call to action looked like body copy while the
     outline button beside it looked like the real one.

   - Group blocks with a border set in the editor showed no
     border at all. Gutenberg writes border-color and
     border-width inline but not border-style, and a border
     without a style is never painted.
   ============================================================ */

/* ---- Buttons ---- */

.wp-block-button__link {
    display: inline-block;
    padding: 0.85rem 1.9rem;
    border: 2px solid var(--fm-primary, #cf2027);
    border-radius: 10px;
    background-color: var(--fm-primary, #cf2027);
    color: #fff;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.wp-block-button__link:hover,
.wp-block-button__link:focus {
    background-color: var(--fm-primary-hover, #b91c22);
    border-color: var(--fm-primary-hover, #b91c22);
    color: #fff;
    text-decoration: none;
}

.wp-block-button.is-style-outline .wp-block-button__link {
    background-color: transparent;
    color: var(--fm-primary, #cf2027);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:focus {
    background-color: var(--fm-primary, #cf2027);
    color: #fff;
}

.wp-block-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}

/* ---- Group borders ----
   Gutenberg emits border-color and border-width but never
   border-style, so any border set in the editor is invisible. */

.wp-block-group[style*="border-color"],
.wp-block-group[style*="border-width"],
.wp-block-column[style*="border-color"],
.wp-block-column[style*="border-width"] {
    border-style: solid;
}

/* ---- Equal height cards in a row ----

   Gutenberg columns stretch, but a group inside a column sizes
   to its own content, so a row of cards ends with a ragged
   bottom edge whenever one has more text than the others.

   Making the column a flex container and the group grow to fill
   it lines the bottoms up without touching the markup. */

.modern-page-body .wp-block-columns > .wp-block-column {
    display: flex;
    flex-direction: column;
}

.modern-page-body .wp-block-columns > .wp-block-column > .wp-block-group {
    flex: 1;
}

/* ---- Links in page content ----
   Default browser blue looks wrong against the brand. */

/* The wrapper is .modern-page-body - see the parent theme's page.php
   line 34. .entry-content and .page-content are kept as a fallback for
   posts and any template that uses them. */

.modern-page-body a:not(.wp-block-button__link):not(.button),
.entry-content a:not(.wp-block-button__link):not(.button),
.page-content a:not(.wp-block-button__link):not(.button) {
    color: var(--fm-primary, #cf2027);
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

.modern-page-body a:not(.wp-block-button__link):not(.button):hover,
.entry-content a:not(.wp-block-button__link):not(.button):hover,
.page-content a:not(.wp-block-button__link):not(.button):hover {
    color: var(--fm-primary-hover, #b91c22);
}

/* ---- Separator ---- */

.wp-block-separator {
    border: none;
    border-top: 1px solid var(--fm-border, #ececec);
    height: 0;
}

/* ---- Lists inside content ----
   A little more room between items than the browser default,
   which runs them together when each item is a full sentence. */

.modern-page-body .wp-block-list li,
.entry-content .wp-block-list li,
.page-content .wp-block-list li {
    margin-bottom: 0.55rem;
    line-height: 1.6;
}

.modern-page-body .wp-block-list li:last-child,
.entry-content .wp-block-list li:last-child,
.page-content .wp-block-list li:last-child {
    margin-bottom: 0;
}

/* ---- Columns on tablet ----
   Gutenberg only stacks columns below 782px, which leaves them
   very narrow on a tablet in portrait - worse when the order
   sidebar is also taking a quarter of the width. */

@media (max-width: 1024px) and (min-width: 783px) {

    .wp-block-columns {
        gap: 1.25rem;
    }
}

@media (max-width: 782px) {

    .wp-block-buttons {
        justify-content: stretch;
    }

    .wp-block-button {
        flex: 1 1 100%;
    }

    .wp-block-button__link {
        display: block;
        width: 100%;
    }
}

/* ---- Paragraph rhythm inside blocks ----

   The theme sets .modern-page-body p { margin-bottom: 20px }. That is
   reasonable for prose but wrong inside a block layout, where the block
   itself already carries spacing - it double-spaces group and column
   contents and pushes the privacy line away from the form above it. */

.modern-page-body .wp-block-group p:last-child,
.modern-page-body .wp-block-column p:last-child,
.modern-page-body .wp-block-buttons {
    margin-bottom: 0;
}

.modern-page-body .wp-block-shortcode {
    margin-bottom: 0;
}

.modern-page-body .wp-block-shortcode + p {
    margin-top: 1rem;
}
/* ============================================================
   BUFFETS PAGE - .rodi-bp

   The page's own content (pages/buffets-page.html), written as one
   HTML block so it looks the same in either editor. The ordering part
   at the bottom comes from [rodi_buffet].

   ============================================================ */

.rodi-bp {
    --bp-red: var(--fm-primary, #cf2027);
    --bp-red-dark: var(--fm-primary-hover, #b91c22);
    --bp-wash: #fdf3f2;
    --bp-line: var(--fm-border, #ececec);
    --bp-ink: var(--fm-dark, #222);
    --bp-muted: #5f5f5f;
    color: var(--fm-text, #333);
    line-height: 1.6;
}

.rodi-bp > * + * {
    margin-top: 2.25rem;
}

.rodi-bp h2,
.rodi-bp h3 {
    color: var(--bp-ink);
    line-height: 1.25;
}

.rodi-bp-eyebrow {
    margin: 0 0 0.4rem;
    color: var(--bp-red);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.rodi-bp-h {
    margin: 0 0 1rem;
    font-size: 1.35rem;
}

.rodi-bp-note {
    margin: 1rem 0 0;
    padding: 0.75rem 0.9rem;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.7);
    font-size: 0.9rem;
}

.rodi-bp-small {
    margin: 1rem 0 0;
    font-size: 0.85rem;
    color: var(--bp-muted);
}

/* The opening panel */

.rodi-bp-hero {
    position: relative;
    overflow: hidden;
    padding: 2.2rem 2rem 2rem;
    border-radius: 16px;
    background:
        radial-gradient(120% 90% at 100% 0%, rgba(207, 32, 39, 0.07), transparent 60%),
        var(--bp-wash);
}

.rodi-bp-title {
    max-width: 24ch;
    text-wrap: balance;
    margin: 0 0 0.75rem;
    font-size: clamp(1.6rem, 1.1rem + 2vw, 2.3rem);
    letter-spacing: -0.01em;
}

.rodi-bp-lead {
    max-width: 58ch;
    margin: 0;
    font-size: 1.05rem;
}

.rodi-bp-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: 1.5rem 0 0;
}

.rodi-bp-btn {
    display: inline-flex;
    align-items: center;
    min-height: 46px;
    padding: 0 1.4rem;
    border: 2px solid var(--bp-red);
    border-radius: 999px;
    background: var(--bp-red);
    color: #fff !important;
    font-weight: 600;
    text-decoration: none !important;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.rodi-bp-btn:hover {
    background: var(--bp-red-dark);
    border-color: var(--bp-red-dark);
}

.rodi-bp-btn--ghost {
    background: transparent;
    color: var(--bp-red) !important;
}

.rodi-bp-btn--ghost:hover {
    background: #fff;
    color: var(--bp-red-dark) !important;
}

.rodi-bp-btn:focus-visible {
    outline: 3px solid var(--bp-red);
    outline-offset: 3px;
}

/* How it works */

.rodi-bp-steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: none;
}

/* Same card as "How to order" on the Contact page: a red top edge and a
   soft shadow, no outline. */

.rodi-bp-steps li {
    margin: 0;
    padding: 1.25rem 1.2rem 1.1rem;
    border: 0;
    border-top: 4px solid var(--bp-red);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.rodi-bp-steps li::before,
.rodi-bp-steps li::marker {
    content: none;
}

.rodi-bp-num {
    display: inline-grid;
    place-items: center;
    width: 2.1rem;
    height: 2.1rem;
    margin-bottom: 0.7rem;
    border: 2px solid var(--bp-red);
    border-radius: 50%;
    color: var(--bp-red);
    font-weight: 700;
}

.rodi-bp-steps h3 {
    margin: 0 0 0.35rem;
    font-size: 1.02rem;
}

.rodi-bp-steps p {
    margin: 0;
    font-size: 0.92rem;
    color: var(--bp-muted);
}

/* Example menu and Good to know, side by side when there is room */

.rodi-bp-split {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: 1rem;
    align-items: start;
}

.rodi-bp-card {
    padding: 1.5rem 1.4rem;
    border: 0;
    border-top: 4px solid var(--bp-red);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.rodi-bp-menu {
    background: var(--bp-wash);
}

.rodi-bp-menu-base {
    margin: 0 0 0.75rem;
}

/* A plain list, not a definition list: the classic editor strips
   <div>s out of a <dl>, which ran each course into its description. */

.rodi-bp .rodi-bp-courses {
    margin: 0;
    padding: 0;
    list-style: none;
}

.rodi-bp .rodi-bp-courses li {
    display: block;
    margin: 0;
    padding: 0.6rem 0;
    border-top: 1px dashed rgba(207, 32, 39, 0.25);
}

.rodi-bp .rodi-bp-courses li::before,
.rodi-bp .rodi-bp-courses li::marker {
    content: none;
}

.rodi-bp .rodi-bp-courses strong {
    display: block;
    color: var(--bp-ink);
}

.rodi-bp .rodi-bp-courses span {
    display: block;
    margin-top: 0.1rem;
    color: var(--bp-muted);
    font-size: 0.93rem;
}

.rodi-bp-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.rodi-bp-list li {
    position: relative;
    margin: 0 0 0.7rem;
    padding-left: 1.7rem;
    font-size: 0.95rem;
}

.rodi-bp-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.3em;
    width: 1.05rem;
    height: 1.05rem;
    border-radius: 50%;
    background: var(--bp-red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 80% no-repeat;
}

.rodi-bp-list li:last-child {
    margin-bottom: 0;
}

/* Allergy note - the same amber as the legal pages */

.rodi-bp-allergy {
    padding: 1rem 1.25rem;
    border-left: 5px solid #e6a23c;
    border-radius: 10px;
    background: #fffaf0;
}

.rodi-bp-allergy strong {
    display: block;
    margin-bottom: 0.2rem;
    color: #7a4b00;
}

.rodi-bp-allergy p {
    margin: 0;
    font-size: 0.93rem;
}

/* The ordering part: [rodi_buffet] */

.rodi-bp-order .rodi-buffet {
    margin: 0;
}

.rodi-bp-order .rodi-buffet-order {
    padding: 1.6rem 1.5rem;
    margin-bottom: 2rem;
    border: 1px solid var(--bp-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

/* The request form already sits in the site's own form panel (forms.css),
   so the section around it is not a second card. */

.rodi-bp-order .rodi-buffet-request {
    max-width: none;
    scroll-margin-top: 110px;
}

.rodi-bp-order .rodi-buffet-request .wpcf7 {
    max-width: none;
}

.rodi-bp-order .rodi-buffet-heading {
    margin-top: 0;
}

/* The request form inside it */

.rodi-buffet-request .wpcf7-form > p {
    margin: 0 0 1rem;
}

.rodi-buffet-request .wpcf7 label {
    display: block;
    font-weight: 600;
    font-size: 0.92rem;
    color: var(--fm-dark, #222);
}

.rodi-buffet-request .wpcf7 input[type="text"],
.rodi-buffet-request .wpcf7 input[type="email"],
.rodi-buffet-request .wpcf7 input[type="tel"],
.rodi-buffet-request .wpcf7 input[type="number"],
.rodi-buffet-request .wpcf7 input[type="date"],
.rodi-buffet-request .wpcf7 textarea {
    width: 100%;
    margin-top: 0.3rem;
    padding: 0.65rem 0.8rem;
    border: 1px solid #d6d6d6;
    border-radius: 8px;
    background: #fff;
    font: inherit;
    font-weight: 400;
}

.rodi-buffet-request .wpcf7 input:focus,
.rodi-buffet-request .wpcf7 textarea:focus {
    outline: 2px solid var(--fm-primary, #cf2027);
    outline-offset: 1px;
    border-color: transparent;
}

.rodi-buffet-request .wpcf7-radio .wpcf7-list-item {
    margin: 0.35rem 1.25rem 0 0;
}

.rodi-buffet-request .wpcf7-radio label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 400;
}

.rodi-buffet-request .rodi-identity {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
    gap: 0 20px;
    margin: 0 0 1.25rem;
    padding: 2.4rem 1.1rem 0.25rem;
    position: relative;
    border: 1px dashed #d9cfc4;
    border-radius: 10px;
    background: #fff;
}

.rodi-buffet-request .rodi-identity::before {
    content: "About you";
    position: absolute;
    top: 0.85rem;
    left: 1.1rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--fm-primary, #cf2027);
}

.rodi-buffet-request .rodi-identity p:has([name="your-company"]) {
    grid-column: 1 / -1;
}

/* Postcode only once Delivery is chosen (assets/js/main.js). */

.rodi-buffet-request .rodi-hidden {
    display: none !important;
}

.rodi-buffet-request .wpcf7-submit {
    min-height: 48px;
    padding: 0 1.8rem;
    border: 0;
    border-radius: 999px;
    background: var(--fm-primary, #cf2027);
    color: #fff;
    font-weight: 600;
    cursor: pointer;
}

.rodi-buffet-request .wpcf7-submit:hover {
    background: var(--fm-primary-hover, #b91c22);
}

@media (max-width: 600px) {

    .rodi-bp-hero {
        padding: 1.75rem 1.25rem 1.5rem;
    }

    .rodi-bp-order .rodi-buffet-order,
    .rodi-bp-card {
        padding: 1.25rem 1.1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rodi-bp-btn {
        transition: none;
    }
}

.rodi-buffet-intro a,
.rodi-bp a:not(.rodi-bp-btn) {
    color: var(--fm-primary, #cf2027);
    font-weight: 600;
}


/* =======================================================
   INFORMATION PAGES (.rp)
   Shared look for Refunds, Catering, Trade, Catering Request,
   Contact, Terms and Privacy. Same style as the Story and
   Allergy pages, kept here so each page holds only its text.
======================================================= */

.rp{--red:#c62828;--soft:#fdecea;--ink:#212121;--muted:#666;--line:#eee;max-width:980px;margin:0 auto;color:var(--ink);font-size:16px;line-height:1.65}
.rp *{box-sizing:border-box}
.rp a{color:var(--red);font-weight:600;text-decoration:none}
.rp a:hover{text-decoration:underline}
.rp h2{font-size:24px;line-height:1.25;margin:0 0 8px;font-weight:800}
.rp h3{font-size:17px;line-height:1.3;margin:0 0 6px;font-weight:700}
.rp p{margin:0 0 12px}
.rp ul{margin:0 0 12px;padding-left:20px}
.rp li{margin:0 0 6px}
.rp-section{margin:48px 0 0;scroll-margin-top:110px}
.rp-lead{color:var(--muted);margin:0 0 20px!important}
.rp-kicker{display:inline-block;margin-bottom:8px;color:var(--red);font-size:12px;font-weight:800;letter-spacing:1.1px;text-transform:uppercase}
.rp-updated{color:#999;font-size:13px;margin:0 0 14px!important}

.rp-hero{position:relative;overflow:hidden;border-radius:18px;padding:34px 32px 52px;background:linear-gradient(135deg,#b71c1c 0%,#d32f2f 60%,#e57373 100%);color:#fff}
.rp-hero::after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.08)}
.rp-hero>*{position:relative;z-index:1}
.rp-hero .rp-kicker{color:#ffcdd2}
.rp-hero h2{color:#fff;font-size:30px;margin-bottom:10px}
.rp-hero p{max-width:640px;color:rgba(255,255,255,.94);font-size:17px}
.rp-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.rp-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:12px;font-weight:700;font-size:15px;line-height:1;text-decoration:none!important;transition:transform .15s ease,box-shadow .15s ease}
.rp-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,0,0,.15)}
.rp-btn--light{background:#fff;color:var(--red)!important}
.rp-btn--ghost{border:2px solid rgba(255,255,255,.8);color:#fff!important}
.rp-btn--red{background:var(--red);color:#fff!important}
.rp-btn--outline{border:2px solid var(--red);color:var(--red)!important}

.rp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.rp-grid--2{grid-template-columns:repeat(2,1fr)}
.rp-grid--4{grid-template-columns:repeat(4,1fr)}
.rp-card{padding:22px;border:1px solid var(--line);border-radius:16px;background:#fff}
.rp-card p,.rp-card li{color:#555;font-size:15px}
.rp-card p:last-child,.rp-card ul:last-child{margin-bottom:0}
.rp-card--soft{border:0;background:#fafafa}
.rp-card--red{border:2px solid var(--red);background:#fffafa}
.rp-float{margin-top:-26px;position:relative;z-index:2;padding:0 16px}
.rp-float .rp-card{border:0;box-shadow:0 8px 24px rgba(0,0,0,.08)}

.rp-ic{display:inline-flex;width:42px;height:42px;margin-bottom:10px;border-radius:12px;background:var(--soft);color:var(--red);align-items:center;justify-content:center;font-size:0;line-height:0}
.rp-ic::before{content:"";width:22px;height:22px;background:currentColor;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.rp-ic--x{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m15 9-6 6M9 9l6 6'/%3E%3C/svg%3E")}
.rp-ic--alert{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 9v4M12 17h.01'/%3E%3Cpath d='M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z'/%3E%3C/svg%3E")}
.rp-ic--undo{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7v6h6'/%3E%3Cpath d='M21 17a9 9 0 0 0-15-6.7L3 13'/%3E%3C/svg%3E")}
.rp-ic--party{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20 9 7l8 8z'/%3E%3Cpath d='M14 4v2M19 5l-1.5 1.5M20 10h-2'/%3E%3C/svg%3E")}
.rp-ic--glass{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 22h8M12 15v7M5 3h14l-1 7a6 6 0 0 1-12 0z'/%3E%3C/svg%3E")}
.rp-ic--card{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='5' width='20' height='14' rx='2'/%3E%3Cpath d='M2 10h20M6 15h4'/%3E%3C/svg%3E")}
.rp-ic--phone{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E")}
.rp-ic--mail{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 6-10 7L2 6'/%3E%3C/svg%3E")}
.rp-ic--pin{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s7-7.5 7-13a7 7 0 0 0-14 0c0 5.5 7 13 7 13z'/%3E%3Ccircle cx='12' cy='9' r='2.5'/%3E%3C/svg%3E")}
.rp-ic--clock{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E")}
.rp-ic--bag{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z'/%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E")}
.rp-ic--truck{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 4h14v12H1z'/%3E%3Cpath d='M15 8h4l4 4v4h-8'/%3E%3Ccircle cx='6' cy='18' r='2'/%3E%3Ccircle cx='18' cy='18' r='2'/%3E%3C/svg%3E")}
.rp-ic--office{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='18' rx='1'/%3E%3Cpath d='M9 7h2M13 7h2M9 11h2M13 11h2M9 15h2M13 15h2'/%3E%3C/svg%3E")}
.rp-ic--cake{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21h16v-8H4z'/%3E%3Cpath d='M4 16c2 1 4 1 6 0s4-1 6 0 3 1 4 0'/%3E%3Cpath d='M12 13V9M12 5v.01'/%3E%3C/svg%3E")}
.rp-ic--people{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='7' r='3'/%3E%3Ccircle cx='17' cy='9' r='2.5'/%3E%3Cpath d='M3 20c0-3.5 2.7-6 6-6s6 2.5 6 6'/%3E%3Cpath d='M14 20c.2-2.6 1.6-4.5 3-4.5s3 1.9 3 4.5'/%3E%3C/svg%3E")}
.rp-ic--tag{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.6 13.4 13.4 20.6a2 2 0 0 1-2.8 0L3 13V3h10l7.6 7.6a2 2 0 0 1 0 2.8z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1'/%3E%3C/svg%3E")}
.rp-ic--receipt{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 2h14v20l-3-2-2 2-2-2-2 2-2-2-3 2z'/%3E%3Cpath d='M9 7h6M9 11h6M9 15h4'/%3E%3C/svg%3E")}
.rp-ic--repeat{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 2l4 4-4 4'/%3E%3Cpath d='M3 11V9a3 3 0 0 1 3-3h15'/%3E%3Cpath d='M7 22l-4-4 4-4'/%3E%3Cpath d='M21 13v2a3 3 0 0 1-3 3H3'/%3E%3C/svg%3E")}
.rp-ic--shield{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3C/svg%3E")}
.rp-ic--leaf{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 20A7 7 0 0 1 4 13c0-6 7-9 16-9 0 9-3 16-9 16z'/%3E%3Cpath d='M4 20c4-4 7-7 12-12'/%3E%3C/svg%3E")}
.rp-ic--check{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}
.rp-ic--lock{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='11' width='16' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E")}
.rp-ic--user{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4 3.6-7 8-7s8 3 8 7'/%3E%3C/svg%3E")}
.rp-ic--cookie{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a9 9 0 1 1-9-9 3 3 0 0 0 3 3 3 3 0 0 0 3 3 3 3 0 0 0 3 3z'/%3E%3Cpath d='M8.5 8.5h.01M15.5 15.5h.01M10 15h.01'/%3E%3C/svg%3E")}

.rp-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;counter-reset:rpstep;padding-top:14px}
.rp-steps--3{grid-template-columns:repeat(3,1fr)}
.rp-step{position:relative;padding:24px 18px 18px;border:1px solid var(--line);border-radius:16px;background:#fff}
.rp-step::before{counter-increment:rpstep;content:counter(rpstep);position:absolute;top:-14px;left:18px;width:28px;height:28px;border-radius:50%;background:var(--red);color:#fff;font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center}
.rp-step p{color:#555;font-size:14.5px;margin:0}

.rp-note{padding:16px 18px;border-left:4px solid var(--red);border-radius:10px;background:var(--soft);color:#5d1010}
.rp-note p:last-child{margin:0}

.rp-toc{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0}
.rp-toc a{padding:7px 13px;border:1px solid #f0d6d6;border-radius:999px;background:#fff;color:#333!important;font-size:13.5px;font-weight:600}
.rp-toc a:hover{border-color:var(--red);color:var(--red)!important;text-decoration:none}

.rp-table{width:100%;border-collapse:collapse;font-size:15px}
.rp-table th,.rp-table td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.rp-table th{background:#fafafa;font-weight:700}
.rp-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px}

.rp-faq details{border:1px solid var(--line);border-radius:14px;background:#fff;margin-bottom:10px;overflow:hidden}
.rp-faq summary{list-style:none;cursor:pointer;padding:16px 48px 16px 18px;font-weight:700;position:relative}
.rp-faq summary::-webkit-details-marker{display:none}
.rp-faq summary::after{content:"";position:absolute;right:20px;top:50%;width:9px;height:9px;border-right:2px solid var(--red);border-bottom:2px solid var(--red);transform:translateY(-70%) rotate(45deg);transition:transform .2s ease}
.rp-faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.rp-faq details[open] summary{border-bottom:1px solid var(--line)}
.rp-faq .rp-answer{padding:14px 18px 16px;color:#444;font-size:15px}
.rp-faq .rp-answer p:last-child,.rp-faq .rp-answer ul:last-child{margin-bottom:0}

.rp-formcard{margin-top:48px;padding:28px;border-radius:18px;background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.07)}
.rp-formcard .wpcf7{margin-top:10px}

.rp-hours{list-style:none;margin:0;padding:0}
.rp-hours li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed #eee;font-size:15px}
.rp-hours li:last-child{border-bottom:0}

.rp-map{border-radius:16px;overflow:hidden;min-height:260px;background:#f3f3f3 center/cover no-repeat;display:flex;align-items:flex-end}
.rp-map a{margin:14px}

.rp-cta{margin-top:52px;padding:32px;border-radius:18px;background:var(--soft);text-align:center}
.rp-cta p{color:#5d1010}
.rp-cta .rp-actions{justify-content:center}

@media (max-width:820px){
  .rp-hero{padding:26px 22px}.rp-hero h2{font-size:25px}
  .rp-grid,.rp-grid--2,.rp-grid--4,.rp-steps,.rp-steps--3{grid-template-columns:1fr}
  .rp-float{margin-top:16px;padding:0}
  .rp-steps{gap:26px}
  .rp-formcard{padding:20px 16px}
}


/* =======================================================
   COOKIE BANNER (inc/cookies.php)
======================================================= */

.rodi-cc{position:fixed;left:16px;right:16px;bottom:16px;z-index:100000;display:flex;justify-content:center;pointer-events:none}
.rodi-cc[hidden]{display:none}
.rodi-cc-box{position:relative;pointer-events:auto;width:100%;max-width:720px;padding:22px 24px 20px;border-radius:18px;background:#fff;box-shadow:0 16px 48px rgba(0,0,0,.22);font-size:14.5px;line-height:1.55;color:#212121}
.rodi-cc.is-in .rodi-cc-box{animation:rodiCcIn .28s ease both}
@keyframes rodiCcIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.rodi-cc-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.rodi-cc-icon{width:34px;height:34px;border-radius:10px;background:#fdecea;flex-shrink:0;position:relative}
.rodi-cc-icon::before{content:"";position:absolute;inset:7px;background:#c62828;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a9 9 0 1 1-9-9 3 3 0 0 0 3 3 3 3 0 0 0 3 3 3 3 0 0 0 3 3z'/%3E%3Cpath d='M8.5 8.5h.01M15.5 15.5h.01M10 15h.01'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a9 9 0 1 1-9-9 3 3 0 0 0 3 3 3 3 0 0 0 3 3 3 3 0 0 0 3 3z'/%3E%3Cpath d='M8.5 8.5h.01M15.5 15.5h.01M10 15h.01'/%3E%3C/svg%3E") center/contain no-repeat}
.rodi-cc-title{font-size:16.5px}
.rodi-cc-intro{margin:0;color:#444}
.rodi-cc-intro a{color:#c62828;font-weight:600}
.rodi-cc-close{position:absolute;top:10px;right:12px;width:34px;height:34px;border:0;border-radius:50%;background:transparent;color:#888;font-size:24px;line-height:1;cursor:pointer}
.rodi-cc-close:hover{background:#f5f5f5;color:#212121}
.rodi-cc-close[hidden]{display:none}
.rodi-cc-choose{margin:16px 0 0;display:grid;gap:10px}
.rodi-cc-choose[hidden]{display:none}
.rodi-cc-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid #eee;border-radius:12px;background:#fafafa;cursor:pointer}
.rodi-cc-row:first-child{cursor:default}
.rodi-cc-row-text strong{display:block;font-size:14.5px;color:#212121}
.rodi-cc-row-text span{display:block;font-size:13px;color:#666;line-height:1.45}
.rodi-cc-always{flex-shrink:0;padding:4px 10px;border-radius:999px;background:#e8f5e9;color:#2e7d32;font-size:12px;font-weight:700;white-space:nowrap}
.rodi-cc-switch{position:relative;flex-shrink:0;display:flex;align-items:center;gap:8px}
.rodi-cc-switch input{position:absolute;opacity:0;width:46px;height:26px;margin:0;cursor:pointer}
.rodi-cc-slider{width:46px;height:26px;border-radius:999px;background:#ccc;position:relative;transition:background .2s ease}
.rodi-cc-slider::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s ease}
.rodi-cc-switch input:checked + .rodi-cc-slider{background:#c62828}
.rodi-cc-switch input:checked + .rodi-cc-slider::after{transform:translateX(20px)}
.rodi-cc-switch input:focus-visible + .rodi-cc-slider{outline:3px solid rgba(198,40,40,.35);outline-offset:2px}
.rodi-cc-state{min-width:24px;font-size:12px;font-weight:700;color:#888}
.rodi-cc-state::after{content:"Off"}
.rodi-cc-switch input:checked ~ .rodi-cc-state{color:#c62828}
.rodi-cc-switch input:checked ~ .rodi-cc-state::after{content:"On"}
.rodi-cc-status{margin:2px 0 0;font-size:13px;color:#666}
.rodi-cc-status[hidden]{display:none}
.rodi-cc-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px}
.rodi-cc-btn{min-height:44px;padding:0 20px;border-radius:12px;font-size:14.5px;font-weight:700;cursor:pointer;border:2px solid #c62828;transition:background .15s ease}
.rodi-cc-btn[hidden]{display:none}
.rodi-cc-btn--red{background:#c62828;color:#fff}
.rodi-cc-btn--red:hover{background:#b71c1c;border-color:#b71c1c}
.rodi-cc-btn--ghost{background:#fff;color:#c62828}
.rodi-cc-btn--ghost:hover{background:#fdecea}
.rodi-cc-btn:focus-visible{outline:3px solid rgba(198,40,40,.35);outline-offset:2px}
.rodi-cc-footer-link{margin-left:14px;color:inherit;opacity:.8;font-size:inherit;text-decoration:underline}
.rodi-cc-footer-link:hover{opacity:1}
@media (max-width:600px){
  .rodi-cc{left:8px;right:8px;bottom:8px}
  .rodi-cc-box{padding:18px 16px 16px}
  .rodi-cc-actions{display:grid;grid-template-columns:1fr 1fr}
  .rodi-cc-actions .rodi-cc-btn--red{grid-column:1 / -1;order:-1}
  .rodi-cc-row{padding:12px}
  .rodi-cc-actions:has([data-cc="choose"][hidden]) [data-cc="reject"]{grid-column:1 / -1}
}
@media (prefers-reduced-motion:reduce){.rodi-cc.is-in .rodi-cc-box{animation:none}}

/* =======================================================
   FOOTER (widgets pasted from footer-widgets.html)
======================================================= */

.rodi-foot p{margin:0 0 10px;line-height:1.6}
.rodi-foot a{color:inherit;text-decoration:none}
.rodi-foot a:hover{color:#fff;text-decoration:underline}
.rodi-foot-links{list-style:none;margin:0;padding:0}
.rodi-foot-links li{margin:0 0 9px}
.rodi-foot-links a{opacity:.9}
.rodi-foot-social{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.rodi-foot-social a{padding:6px 12px;border:1px solid rgba(255,255,255,.25);border-radius:999px;font-size:13px;opacity:.95}
.rodi-foot-social a:hover{border-color:#fff;text-decoration:none}
.rodi-foot-cta{display:inline-block;margin-top:6px;padding:9px 16px;border-radius:10px;background:#c62828;color:#fff!important;font-weight:700;font-size:14px}
.rodi-foot-cta:hover{background:#b71c1c;text-decoration:none!important}
.rodi-foot-links a.rodi-foot-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;background:#c62828;color:#fff!important;font-weight:700;opacity:1}
.rodi-foot-links a.rodi-foot-btn:before{content:"%";display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#fff;color:#c62828;font-size:11px;font-weight:800}
.rodi-foot-links a.rodi-foot-btn:hover{background:#b71c1c;text-decoration:none!important}
.footer-bottom-right{font-size:12.5px;opacity:.75}
@media (max-width:700px){.footer-bottom-content{flex-direction:column;gap:6px;text-align:center}}
.rodi-foot-logo{margin:0 0 16px;line-height:0}

/* Footer social links: small round icons on one line */
.rodi-foot-social{flex-wrap:nowrap;gap:8px;margin-top:14px}
.rodi-foot-social a.rodi-soc{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid rgba(255,255,255,.25);border-radius:50%;opacity:.9;transition:all .15s ease}
.rodi-foot-social a.rodi-soc::before{content:'';width:17px;height:17px;background:#fff;-webkit-mask:var(--soc) center/contain no-repeat;mask:var(--soc) center/contain no-repeat}
.rodi-foot-social a.rodi-soc:hover{border-color:#c62828;background:#c62828;opacity:1}
.rodi-foot .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rodi-soc--instagram{--soc:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='17.5' cy='6.5' r='.6' fill='black'/%3E%3C/svg%3E")}
.rodi-soc--facebook{--soc:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M14 8h2.5V4.5H14A4 4 0 0 0 10 8.5V11H7.5v3.5H10V21h3.5v-6.5H16l.5-3.5h-3V8.8c0-.5.3-.8.5-.8z'/%3E%3C/svg%3E")}
.rodi-soc--google{--soc:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M20.5 12.2c0-.6-.1-1.2-.2-1.7H12v3.3h4.8a4.1 4.1 0 0 1-1.8 2.7v2.2h2.9c1.7-1.6 2.6-3.9 2.6-6.5z'/%3E%3Cpath d='M12 21c2.4 0 4.4-.8 5.9-2.2L15 16.5c-.8.5-1.8.9-3 .9-2.3 0-4.3-1.6-5-3.7H4v2.3A9 9 0 0 0 12 21z'/%3E%3Cpath d='M7 13.7a5.4 5.4 0 0 1 0-3.4V8H4a9 9 0 0 0 0 8z'/%3E%3Cpath d='M12 6.6c1.3 0 2.5.5 3.4 1.3l2.6-2.6A9 9 0 0 0 4 8l3 2.3c.7-2.1 2.7-3.7 5-3.7z'/%3E%3C/svg%3E")}
.rodi-soc--tripadvisor{--soc:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='7' cy='13' r='3.5'/%3E%3Ccircle cx='17' cy='13' r='3.5'/%3E%3Ccircle cx='7' cy='13' r='.8' fill='black'/%3E%3Ccircle cx='17' cy='13' r='.8' fill='black'/%3E%3Cpath d='M3 9.5c2.5-2 5.7-3 9-3s6.5 1 9 3'/%3E%3Cpath d='M10.5 16.5 12 18.5l1.5-2'/%3E%3C/svg%3E")}

/* Footer on phones: the theme centres the columns; centre our parts too. */
@media (max-width:768px){
  .rodi-foot-social{justify-content:center}
  .modern-footer .footer-section h4::after{left:50%!important;transform:translateX(-50%)!important;margin-left:0!important;margin-right:0!important}
  .modern-footer .rodi-hours[data-hours]{margin-left:auto;margin-right:auto}
  .modern-footer .rodi-hours-status{justify-content:center}
}


/* =======================================================
   FAVOURITES (inc/favourites.php, main.js)
======================================================= */

li.wf-template-product.rodi-has-heart{position:relative}
.rodi-heart{position:relative;flex-shrink:0;width:34px;height:34px;padding:0;border:1.5px solid #e8b4b4;border-radius:50%;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.12);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s ease,border-color .15s ease,background .15s ease}
.rodi-heart::before{content:"";width:19px;height:19px;background:#c62828;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1-1.1a5.5 5.5 0 0 0-7.8 7.8L12 21l8.8-8.6a5.5 5.5 0 0 0 0-7.8z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1-1.1a5.5 5.5 0 0 0-7.8 7.8L12 21l8.8-8.6a5.5 5.5 0 0 0 0-7.8z'/%3E%3C/svg%3E") center/contain no-repeat;transition:background .15s ease}
.rodi-heart:hover{border-color:#c62828;background:#fff5f5}
.rodi-heart:hover::before{background:#c62828}
.rodi-heart.is-on{border-color:#c62828;background:#fdecea}
.rodi-heart.is-on::before{background:#c62828;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1-1.1a5.5 5.5 0 0 0-7.8 7.8L12 21l8.8-8.6a5.5 5.5 0 0 0 0-7.8z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1-1.1a5.5 5.5 0 0 0-7.8 7.8L12 21l8.8-8.6a5.5 5.5 0 0 0 0-7.8z'/%3E%3C/svg%3E")}
.rodi-heart.pop{animation:rodiHeartPop .3s ease}
@keyframes rodiHeartPop{0%{transform:scale(1)}40%{transform:scale(1.25)}100%{transform:scale(1)}}
.rodi-heart:focus-visible{outline:3px solid rgba(198,40,40,.35);outline-offset:2px}

.rodi-fav-row{margin:0 0 18px;padding:16px 16px 6px;border:1px solid #f3dede;border-radius:16px;background:#fffafa}
.rodi-fav-row[hidden]{display:none}
.rodi-fav-row-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 6px}
.rodi-fav-row-head h3{margin:0;font-size:17px;font-weight:800;display:flex;align-items:center;gap:8px}
.rodi-fav-row-head h3::before{content:"";width:18px;height:18px;background:#c62828;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1-1.1a5.5 5.5 0 0 0-7.8 7.8L12 21l8.8-8.6a5.5 5.5 0 0 0 0-7.8z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1-1.1a5.5 5.5 0 0 0-7.8 7.8L12 21l8.8-8.6a5.5 5.5 0 0 0 0-7.8z'/%3E%3C/svg%3E") center/contain no-repeat}
.rodi-fav-row-head a{color:#c62828;font-weight:700;font-size:14px;text-decoration:none}

/* My Account → Favourites */
.rodi-fav-intro{color:#555}
.rodi-fav-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.rodi-fav-card{display:flex;gap:14px;padding:12px;border:1px solid #eee;border-radius:14px;background:#fff}
.rodi-fav-img{flex-shrink:0;width:84px;height:84px;border-radius:10px;background:#f5f5f5 center/cover no-repeat}
.rodi-fav-body{flex:1;min-width:0}
.rodi-fav-name{margin:0 0 2px!important;padding:0!important;font-size:16px!important;font-weight:700;line-height:1.3!important;border:0!important}
.rodi-fav-name::after,.rodi-fav-name::before{display:none!important}
.rodi-fav-card{min-width:0}
.rodi-fav-price{color:#c62828;font-weight:700;font-size:15px}
.rodi-fav-warn{margin:6px 0 0!important;display:inline-block;padding:2px 8px;border-radius:6px;background:#fdecea;color:#8e1b1b;font-size:12.5px;font-weight:700}
.rodi-fav-off{margin:6px 0 0!important;color:#888;font-size:13px}
.rodi-fav-actions{display:flex;align-items:center;gap:10px;margin-top:10px}
.rodi-fav-actions form{margin:0}
.rodi-fav-order{display:inline-block;padding:7px 16px;border-radius:9px;background:#c62828;color:#fff!important;font-weight:700;font-size:14px;text-decoration:none!important}
.rodi-fav-order:hover{background:#b71c1c}
.rodi-fav-remove{padding:6px 10px!important;border:0!important;background:none!important;color:#888!important;font-size:13px!important;font-weight:600!important;text-decoration:underline;cursor:pointer;min-height:0!important}
.rodi-fav-remove:hover{color:#c62828!important}
.rodi-fav-empty{padding:34px 20px;text-align:center}
.rodi-fav-empty h3,.rodi-fav-empty h2{margin:10px 0 6px;font-size:18px}
.rodi-fav-empty p{color:#666;max-width:420px;margin:0 auto 16px}
.rodi-fav-empty-heart{display:inline-block;width:54px;height:54px;border-radius:50%;background:#fdecea;position:relative}
.rodi-fav-empty-heart::before{content:"";position:absolute;inset:15px;background:#c62828;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1-1.1a5.5 5.5 0 0 0-7.8 7.8L12 21l8.8-8.6a5.5 5.5 0 0 0 0-7.8z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1-1.1a5.5 5.5 0 0 0-7.8 7.8L12 21l8.8-8.6a5.5 5.5 0 0 0 0-7.8z'/%3E%3C/svg%3E") center/contain no-repeat}
body.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--favourites a{--rodi-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1-1.1a5.5 5.5 0 0 0-7.8 7.8L12 21l8.8-8.6a5.5 5.5 0 0 0 0-7.8z'/%3E%3C/svg%3E")}
@media (max-width:640px){.rodi-fav-grid{grid-template-columns:1fr}.rodi-fav-img{width:72px;height:72px}}

li.wf-template-product.rodi-fav-flash{animation:rodiFlash 1.6s ease}
@keyframes rodiFlash{0%,60%{box-shadow:0 0 0 3px rgba(198,40,40,.45)}100%{box-shadow:none}}

.rodi-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.rodi-title-row > span:first-child,.rodi-title-row > .product-title{flex:1;min-width:0}
.rodi-heart.rodi-heart--corner{position:absolute;top:8px;right:8px;z-index:3}

/* =======================================================
   TRADE SIGN IN (/my-account/?trade=1)
======================================================= */

.rodi-trade-signin #customer_login .u-column2{display:none!important}
.rodi-trade-signin #customer_login.u-columns.col2-set{grid-template-columns:minmax(0,520px)!important;justify-content:center}
.rodi-trade-signin .u-column1.col-1 h2::before{content:"TRADE";display:block;margin:0 auto 8px;width:max-content;padding:3px 10px;border-radius:999px;background:#212121;color:#fff;font-size:11px;letter-spacing:1px}


/* =======================================================
   SIGN IN AND CREATE AN ACCOUNT ON SEPARATE PAGES
   /my-account           sign in only
   /my-account/?register=1  create an account only
======================================================= */

.rodi-mode-signin #customer_login .u-column2,
.rodi-mode-register #customer_login .u-column1{display:none!important}
.rodi-mode-signin #customer_login.u-columns.col2-set{grid-template-columns:minmax(0,480px)!important;justify-content:center}
.rodi-mode-register #customer_login.u-columns.col2-set{grid-template-columns:minmax(0,620px)!important;justify-content:center}

.rodi-new-here{text-align:center}
.rodi-new-here h3{margin-bottom:6px}
.rodi-new-here p{color:#555;font-size:14.5px}
.rodi-new-here-btn{display:inline-block;margin:6px 0 14px;padding:12px 22px;border:2px solid #c62828;border-radius:12px;color:#c62828!important;font-weight:800;text-decoration:none!important}
.rodi-new-here-btn:hover{background:#fdecea}
.rodi-switch-link{margin:16px 0 0!important;text-align:center;font-size:14.5px;padding:0!important;border:0!important;background:none!important;color:#555!important}
.rodi-switch-link a{color:#c62828;font-weight:700}


/* =======================================================
   PAGE TITLES
   The big title at the top of every page is hidden from view. Each
   page already says what it is (its red header, the account menu, the
   sign-in card), so pages now start straight with their content. The
   title is still there for search engines and screen readers.
======================================================= */

.modern-page-header .modern-h1{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.modern-page-header:not(:has(.modern-page-featured-image)){margin:0!important;padding:0!important;min-height:0!important}
.modern-main-content .modern-content-area{padding-top:8px}

/* =======================================================
   DEALS OF THE WEEK ([rodi_deals])
======================================================= */

.rodi-deals{max-width:1100px;margin:0 auto}
.rodi-deals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.rodi-deal{display:flex;flex-direction:column;padding:14px;border:1px solid #eee;border-radius:16px;background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.05)}
.rodi-deal-day{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}
.rodi-deal-day strong{font-size:16px}
.rodi-deal-day span{color:#888;font-size:13px}
.rodi-deal-today{margin-left:auto;padding:2px 9px;border-radius:999px;background:#c62828;color:#fff;font-size:11px;font-style:normal;font-weight:800;letter-spacing:.5px;text-transform:uppercase}
.rodi-deal-img{aspect-ratio:4/3;border-radius:12px;background:#f5f5f5 center/cover no-repeat;margin-bottom:10px}
.rodi-deal-name{margin:0 0 4px!important;font-size:16px!important;line-height:1.3;border:0!important;padding:0!important}
.rodi-deal-name::after{display:none!important}
.rodi-deal-note{margin:0 0 6px!important;color:#666;font-size:13.5px}
.rodi-deal-price{margin:auto 0 10px!important;font-size:15px}
.rodi-deal-price del{color:#999;font-weight:400;margin-right:4px}
.rodi-deal-price strong{color:#c62828;font-size:19px}
.rodi-deal-btn{display:block;padding:11px 12px;border-radius:10px;background:#c62828;color:#fff!important;font-weight:700;font-size:14.5px;text-align:center;text-decoration:none!important}
.rodi-deal-btn:hover{background:#b71c1c}
.rodi-deal-btn.is-off{background:#eee;color:#888!important;cursor:default}
.rodi-deal--today{border:2px solid #c62828;background:#fffafa}
.rodi-deal--past{opacity:.55;filter:grayscale(.7)}
.rodi-deal--none .rodi-deal-empty{margin:auto 0;padding:24px 0;color:#aaa;text-align:center;font-size:14px}
.rodi-deals-none{margin-top:18px;text-align:center;color:#666}
.rodi-deals-small{margin-top:16px!important;color:#888;font-size:13px;text-align:center}
@media (max-width:600px){.rodi-deals-grid{grid-template-columns:1fr 1fr}.rodi-deal{padding:10px}}
@media (max-width:380px){.rodi-deals-grid{grid-template-columns:1fr}}

/* Several deals on one day: the first large, the rest as compact rows. */
.rodi-deal-item{display:flex;flex-direction:column;flex:1}
.rodi-deal-info{display:flex;flex-direction:column;flex:1}
.rodi-deal-item--more{flex-direction:row;gap:10px;flex:none;margin-top:12px;padding-top:12px;border-top:1px dashed #eee}
.rodi-deal-item--more .rodi-deal-img{flex-shrink:0;width:64px;height:64px;aspect-ratio:auto;margin:0;border-radius:10px}
.rodi-deal-item--more .rodi-deal-name{font-size:14.5px!important}
.rodi-deal-item--more .rodi-deal-price{margin:2px 0 8px!important}
.rodi-deal-item--more .rodi-deal-price strong{font-size:16px}
.rodi-deal-item--more .rodi-deal-btn{padding:8px 10px;font-size:13.5px}
.rodi-deal-hours{margin:0 0 6px!important;display:inline-block;align-self:flex-start;padding:2px 9px;border-radius:999px;background:#fff3e0;color:#e65100;font-size:12.5px;font-weight:700}
.rodi-deal-timer{margin:0 0 8px!important;font-size:13.5px;font-weight:700;color:#555}
.rodi-deal-timer.is-live{color:#c62828}
.rodi-deal-timer.is-live::before{content:"";display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:#c62828;animation:rodiPulse 1.2s ease infinite;vertical-align:1px}
@keyframes rodiPulse{0%,100%{opacity:1}50%{opacity:.3}}

/* Offers on the Deals page */
.rodi-deals-h{margin:0 0 12px!important;font-size:22px!important;font-weight:800}
.rodi-deals-offers{margin:0 0 30px}
.rodi-deals-offers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.rodi-deals-offer{position:relative;padding:16px 16px 14px;border-radius:16px;background:linear-gradient(135deg,#fff 0%,#fff6f6 100%);border:1px solid #f3d3d3;box-shadow:0 4px 16px rgba(0,0,0,.05)}
.rodi-deals-offer h3{margin:8px 0 4px!important;font-size:17px!important;line-height:1.3;border:0!important;padding:0!important}
.rodi-deals-offer h3::after{display:none!important}
.rodi-deals-offer-tag{display:inline-block;padding:3px 10px;border-radius:999px;background:#c62828;color:#fff;font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase}
.rodi-deals-offer-what{margin:0 0 6px!important;color:#444;font-size:14px}
.rodi-deals-offer-when{margin:0!important;color:#777;font-size:13px}
.rodi-deals-offer-now{position:absolute;top:14px;right:14px;padding:2px 9px;border-radius:999px;background:#e8f5e9;color:#2e7d32;font-size:11.5px;font-weight:800}
.rodi-deals-empty{display:flex;flex-direction:column;gap:4px;padding:22px;border-radius:16px;background:#fafafa;border:1px dashed #ddd;text-align:center;color:#666}
.rodi-deals-empty strong{color:#212121;font-size:16px}
.rodi-deals-sub{margin:-6px 0 12px!important;color:#777;font-size:14px}
a.rodi-deals-offer{display:block;color:inherit!important;text-decoration:none!important;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
a.rodi-deals-offer:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(198,40,40,.15);border-color:#c62828}
.rodi-deals-offer-btn{display:inline-block;margin-top:12px;padding:9px 16px;border-radius:10px;background:#c62828;color:#fff;font-weight:800;font-size:14px}
.rodi-deals-offer.is-chosen{border:2px solid #2e7d32;background:linear-gradient(135deg,#fff 0%,#f3faf4 100%)}
.rodi-deals-offer.is-chosen .rodi-deals-offer-btn{background:#2e7d32}
.rodi-deals-sub a{color:#c62828;font-weight:700;margin-left:6px}

/* =======================================================
   App-like site: phone bottom bar and "add to home screen" tip
======================================================= */

.rodi-tabbar{display:none}
@media (max-width:782px){
  .rodi-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:99990;display:flex;justify-content:space-around;align-items:stretch;padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));background:rgba(255,255,255,.97);border-top:1px solid #eee;box-shadow:0 -4px 18px rgba(0,0,0,.06);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
  .rodi-tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0;color:#6b6b6b!important;text-decoration:none!important;font-size:11.5px;font-weight:600;-webkit-tap-highlight-color:transparent}
  .rodi-tabbar a.is-here{color:#c62828!important}
  .rodi-tab-ic{position:relative;width:26px;height:26px}
  .rodi-tab-ic svg{width:24px;height:24px}
  .rodi-tab-count{position:absolute;top:-4px;right:-10px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#c62828;color:#fff;font-style:normal;font-size:11px;font-weight:800;line-height:18px;text-align:center}
  body.has-rodi-tabbar{padding-bottom:calc(66px + env(safe-area-inset-bottom,0px))!important}
  /* FoodMaster's own basket bar sits just above ours */
  body.has-rodi-tabbar .foodmaster-mini-cart-wrapper.sticky-cart{bottom:calc(64px + env(safe-area-inset-bottom,0px))!important}
  /* the cookie banner too */
  body.has-rodi-tabbar .rodi-cc{bottom:calc(74px + env(safe-area-inset-bottom,0px))!important}
  /* A white strip where the bottom bar goes, there from the very first
     moment a page shows (the bar itself is added a split second later).
     Without it the red basket bar sat at the very bottom while a page
     loaded, and iPhone Safari flashed its own bottom bar red. */
  body.has-rodi-tabbar::after{content:"";position:fixed;left:0;right:0;bottom:0;height:calc(66px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid #eee;z-index:99989;pointer-events:none}
  body.foodmaster-modal-open::after{display:none}
}

.rodi-app-tip{position:fixed;left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom,0px));z-index:99995;display:flex;align-items:center;gap:10px;padding:12px 12px 12px 14px;border-radius:16px;background:#212121;color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.3);transform:translateY(160%);transition:transform .35s ease}
.rodi-app-tip.is-in{transform:none}
.rodi-app-tip-txt{display:flex;flex-direction:column;gap:2px;flex:1;font-size:13.5px;line-height:1.4}
.rodi-app-tip-txt b{color:#fff}
.rodi-app-tip-add{padding:9px 16px;border:0;border-radius:10px;background:#c62828;color:#fff;font-weight:800}
.rodi-app-tip-x{width:30px;height:30px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:18px;line-height:30px}

/* Opened from the home screen: a little more room at the top */
html.rodi-is-app body{padding-top:env(safe-area-inset-top,0px)}

/* =======================================================
   Phones: more like an app
======================================================= */

/* Sticky category tabs on the menu */
.rodi-cats{display:none}
@media (max-width:1099px){
  .rodi-cats{position:sticky;top:var(--rodi-header-h,64px);z-index:50;display:flex;gap:8px;overflow-x:auto;margin:0 -16px 14px;padding:10px 16px;background:rgba(255,255,255,.97);border-bottom:1px solid #f0f0f0;scrollbar-width:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
  .rodi-cats::-webkit-scrollbar{display:none}
  .rodi-cats button{flex-shrink:0;padding:8px 14px;border:1px solid #e6e6e6;border-radius:999px;background:#fff;color:#333;font-size:13.5px;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent;transition:background .2s,color .2s,border-color .2s}
  .rodi-cats button.is-on{background:#c62828;border-color:#c62828;color:#fff}
}

@media (max-width:782px){
  /* Header: the bottom bar does the navigating, so the header stays slim */
  body.has-rodi-tabbar .modern-header .order-now-btn{display:none!important}

  /* Bottom bar: a soft pill behind the current tab, and a press effect */
  .rodi-tabbar a{position:relative;transition:transform .12s ease}
  .rodi-tabbar a:active{transform:scale(.92)}
  .rodi-tabbar a.is-here::before{content:"";position:absolute;top:0;left:50%;width:46px;height:30px;margin-left:-23px;border-radius:999px;background:#fdecea;z-index:-1}
  .rodi-tab-txt{position:relative}

  /* Menu sections a little tighter, like app lists */
  .foodmaster-menu-layout .foodmaster-accordion-header{padding:14px 16px!important;border-radius:14px!important}
  .foodmaster-menu-layout .foodmaster-accordion-title{font-size:16px!important}
}

/* "Order again" card */
.rodi-again{display:flex;align-items:center;gap:14px;margin:0 0 14px;padding:14px 16px;border-radius:16px;background:#fff;border:1px solid #eee;box-shadow:0 4px 14px rgba(0,0,0,.05)}
.rodi-again-txt{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.rodi-again-txt b{font-size:15px}
.rodi-again-txt b small{font-weight:500;color:#999;font-size:12.5px;margin-left:4px}
.rodi-again-txt span{color:#555;font-size:13.5px;line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.rodi-again-txt em{font-style:normal;font-size:12px;color:#e65100}
.rodi-again-btn{flex-shrink:0;padding:11px 16px;border:0;border-radius:12px;background:#c62828;color:#fff;font-weight:800;font-size:14px;cursor:pointer}
.rodi-again-btn:disabled{opacity:.8}

/* =======================================================
   PHONES: EVERY PAGE LIKE AN APP
   (html.rodi-phone is set by main.js on screens up to 782px)
======================================================= */

@media (max-width:782px){

  /* (No fade on page load: it made pages feel slower.) */

  /* Header: logo, search and basket only; the bottom bar does the rest */
  .modern-header .mobile-menu-toggle,.modern-header .header-nav,.modern-header .order-now-btn{display:none!important}
  .modern-header .header-content{min-height:56px}
  .modern-header .logo-img{max-height:52px!important;width:auto}

  /* No big website footer: its links live under "More" */
  html.rodi-phone .modern-footer{display:none!important}

  /* Inputs at 16px so iPhones don't zoom in when typing */
  input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],input[type=search],select,textarea{font-size:16px!important}

  /* Title bar on inner pages: back arrow and the page name */
  .rodi-titlebar{position:sticky;top:var(--rodi-header-h,0px);z-index:60;display:flex;align-items:center;gap:6px;min-height:50px;padding:4px 10px;background:rgba(255,255,255,.97);border-bottom:1px solid #f0f0f0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
  .rodi-titlebar h1{margin:0!important;font-size:18px!important;font-weight:800!important;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rodi-titlebar-back{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:none;color:#212121;-webkit-tap-highlight-color:transparent}
  .rodi-titlebar-back:active{background:#f2f2f2}
  .rodi-titlebar-back svg{width:24px;height:24px}

  /* Our information pages (.rp): tighter, card-like sections */
  .rp{padding-top:4px}
  .rp .rp-hero,.rp [class*="hero"]{padding:22px 18px!important;border-radius:20px!important;margin:12px 12px 18px!important}
  .rp .rp-hero h1,.rp [class*="hero"] h1{font-size:26px!important;line-height:1.2!important}
  .rp .rp-hero p,.rp [class*="hero"] p{font-size:15px!important}
  .rp section,.rp .rp-section{padding-left:16px!important;padding-right:16px!important;margin-bottom:22px!important}
  .rp h2{font-size:21px!important;line-height:1.25!important}
  .rp [class*="card"]{border-radius:16px!important}
  .rp [class*="grid"]{gap:12px!important}
  .rp details{border-radius:14px!important}
  .rp .rp-cta,.rp [class*="cta"]{border-radius:20px!important;margin-left:12px!important;margin-right:12px!important}
  .rp .rp-btn,.rp a.button,.rp .wp-element-button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;border-radius:14px!important}

  /* Deals page */
  .rodi-deals{padding:0 4px}
  .rodi-deals-offers-grid,.rodi-deals-grid{grid-template-columns:1fr!important}
  .rodi-deals-h{font-size:20px!important}

  /* My account: menu as an app settings list */
  body.woocommerce-account .woocommerce-MyAccount-navigation{margin:6px 0 18px!important;padding:0!important;border-radius:16px!important;overflow:hidden;border:1px solid #eee!important;background:#fff!important}
  body.woocommerce-account .woocommerce-MyAccount-navigation ul{margin:0!important;padding:0!important}
  body.woocommerce-account .woocommerce-MyAccount-navigation ul li{margin:0!important;border-bottom:1px solid #f2f2f2!important}
  body.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child{border-bottom:0!important}
  body.woocommerce-account .woocommerce-MyAccount-navigation ul li a{display:flex!important;align-items:center;justify-content:space-between;padding:15px 16px!important;font-size:15.5px!important;font-weight:600;color:#212121!important;background:none!important;border:0!important;border-radius:0!important}
  body.woocommerce-account .woocommerce-MyAccount-navigation ul li a::after{content:"\203A";font-size:22px;color:#bbb;line-height:1}
  body.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a{color:#c62828!important;background:#fff6f6!important}
  body.woocommerce-account .woocommerce-MyAccount-content{padding:0 2px}
  body.woocommerce-account table.shop_table{border-radius:14px;overflow:hidden}

  /* Sign in / create account forms: full-width, big buttons */
  .woocommerce form .form-row input.input-text{min-height:48px;border-radius:12px!important}
  .woocommerce form .button,.woocommerce-button,.woocommerce .button{min-height:48px;border-radius:14px!important;font-weight:700!important}

  /* Checkout: each part as a card, with room to breathe */
  .wc-block-checkout__main .wc-block-components-checkout-step{background:#fff;border:1px solid #f0f0f0;border-radius:16px;padding:16px 14px!important;margin-bottom:12px!important}
  .wc-block-checkout__main .wc-block-components-checkout-step__heading{margin-top:0!important}
  .wc-block-components-checkout-place-order-button{min-height:54px!important;border-radius:14px!important;font-size:16.5px!important;font-weight:800!important}
  .wc-block-checkout__sidebar{border-radius:16px}

  /* Basket page */
  .wc-block-cart .wc-block-cart-items{border-radius:16px;overflow:hidden}
  .wc-block-cart__submit-button{min-height:54px!important;border-radius:14px!important;font-weight:800!important}
}

@keyframes rodiPageIn{from{opacity:0}to{opacity:1}}

/* "More" sheet */
.rodi-more{position:fixed;inset:0;z-index:100003;pointer-events:none}
.rodi-more-back{position:absolute;inset:0;background:rgba(0,0,0,.4);opacity:0;transition:opacity .25s ease}
.rodi-more-panel{position:absolute;left:0;right:0;bottom:0;max-height:86vh;overflow-y:auto;padding:6px 16px calc(18px + env(safe-area-inset-bottom,0px));border-radius:22px 22px 0 0;background:#f7f7f7;transform:translateY(100%);transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.rodi-more.is-open{pointer-events:auto}
.rodi-more.is-open .rodi-more-back{opacity:1}
.rodi-more.is-open .rodi-more-panel{transform:none}
.rodi-more-handle{display:flex;justify-content:center;padding:6px 0 12px}
.rodi-more-handle span{width:42px;height:5px;border-radius:999px;background:#d6d6d6}
.rodi-more-call{display:flex;align-items:center;justify-content:space-between;margin:0 0 14px;padding:14px 16px;border-radius:16px;background:#c62828;color:#fff!important;font-weight:800;font-size:16px;text-decoration:none!important}
.rodi-more-call small{font-weight:600;opacity:.9;font-size:14px}
.rodi-more-group{margin:0 0 14px;border-radius:16px;background:#fff;overflow:hidden}
.rodi-more-group h4{margin:0!important;padding:12px 16px 6px;font-size:12px!important;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:#999}
.rodi-more-group a{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-top:1px solid #f2f2f2;color:#212121!important;font-size:15.5px;font-weight:600;text-decoration:none!important}
.rodi-more-group h4 + a{border-top:0}
.rodi-more-group a span{color:#bbb;font-size:22px;line-height:1}
html.rodi-more-open,html.rodi-more-open body{overflow:hidden!important}
@media (max-width:782px){
  /* Empty basket: no "£0.00 Start Shopping" bar above the bottom bar */
  body.has-rodi-tabbar .foodmaster-mini-cart-wrapper.sticky-cart:has(.continue-shopping-sticky){display:none!important}
}

/* =======================================================
   Today's status bar (every page, every device)
======================================================= */
.rodi-status{background:#fafafa;border-bottom:1px solid #eee}
.rodi-status-in{display:flex;justify-content:center;gap:22px;max-width:1200px;margin:0 auto;padding:7px 16px;overflow-x:auto;scrollbar-width:none}
.rodi-status-in::-webkit-scrollbar{display:none}
.rodi-st-item{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:13px;color:#555}
.rodi-st-item b{color:#212121;font-weight:700}
.rodi-st-item i{width:8px;height:8px;border-radius:50%;background:#bbb;flex-shrink:0}
.rodi-st-item.is-open i{background:#2e7d32}
.rodi-st-item.is-later i{background:#ef6c00}
.rodi-st-item.is-busy i{background:#ef6c00;animation:rodiPulse 1.4s ease infinite}
.rodi-st-item.is-closed i,.rodi-st-item.is-off i{background:#c62828}
.rodi-st-item.is-busy span{color:#b54700;font-weight:600}
.rodi-st-item.is-off span{color:#c62828;font-weight:600}
@media (max-width:782px){
  .rodi-status-in{justify-content:space-between;gap:10px;padding:6px 12px}
  .rodi-st-item{font-size:11.5px;gap:4px}
  .rodi-st-item i{width:7px;height:7px}
}

/* Status bar, refined: the same pill style on every device */
.rodi-status{background:linear-gradient(180deg,#fff 0%,#fbf8f6 100%);border-bottom:1px solid #f0ebe7}
.rodi-status-in{gap:10px;padding:9px 16px}
.rodi-st-item{gap:7px;padding:6px 14px 6px 11px;border-radius:999px;background:#fff;border:1px solid #ececec;font-size:13px;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.rodi-st-item b{font-weight:800;letter-spacing:.1px}
.rodi-st-item i{width:9px;height:9px;box-shadow:0 0 0 3px rgba(0,0,0,.04)}
.rodi-st-item.is-open{background:#f3faf4;border-color:#cfe8d1}
.rodi-st-item.is-open span{color:#1b5e20}
.rodi-st-item.is-open i{box-shadow:0 0 0 3px rgba(46,125,50,.15)}
.rodi-st-item.is-later,.rodi-st-item.is-busy{background:#fff8ee;border-color:#ffd8a8}
.rodi-st-item.is-later span{color:#8a4a00}
.rodi-st-item.is-later i,.rodi-st-item.is-busy i{box-shadow:0 0 0 3px rgba(239,108,0,.15)}
.rodi-st-item.is-closed,.rodi-st-item.is-off{background:#fff5f5;border-color:#f3c9c9}
.rodi-st-item.is-closed span{color:#9a1b1b}
.rodi-st-item.is-closed i,.rodi-st-item.is-off i{box-shadow:0 0 0 3px rgba(198,40,40,.12)}
@media (max-width:782px){
  .rodi-status-in{justify-content:center;gap:6px;padding:7px 8px}
  .rodi-st-item{padding:5px 9px 5px 8px;font-size:11.5px;gap:5px}
  .rodi-st-item i{width:7px;height:7px}
}
@media (max-width:360px){
  .rodi-st-item b{display:none}
}

/* Status bar: more visible */
.rodi-status{background:#fff;border-bottom:1px solid #eee;box-shadow:0 2px 10px rgba(0,0,0,.04)}
.rodi-status-in{gap:12px;padding:11px 16px}
.rodi-st-item{padding:8px 16px 8px 13px;font-size:14.5px;gap:8px;border-width:1.5px}
.rodi-st-item b{font-size:14.5px}
.rodi-st-item span{font-weight:600}
.rodi-st-item i{width:11px;height:11px}
.rodi-st-item.is-open{background:#e8f5e9;border-color:#a5d6a7}
.rodi-st-item.is-open b,.rodi-st-item.is-open span{color:#1b5e20}
.rodi-st-item.is-open i{background:#2e7d32;animation:rodiLive 2s ease-in-out infinite}
.rodi-st-item.is-later,.rodi-st-item.is-busy{background:#fff3e0;border-color:#ffcc80}
.rodi-st-item.is-later b,.rodi-st-item.is-later span,.rodi-st-item.is-busy b,.rodi-st-item.is-busy span{color:#a04400}
.rodi-st-item.is-closed,.rodi-st-item.is-off{background:#fdecea;border-color:#ef9a9a}
.rodi-st-item.is-closed b,.rodi-st-item.is-closed span,.rodi-st-item.is-off b,.rodi-st-item.is-off span{color:#b71c1c}
@keyframes rodiLive{0%,100%{box-shadow:0 0 0 0 rgba(46,125,50,.45)}50%{box-shadow:0 0 0 5px rgba(46,125,50,0)}}
@media (max-width:782px){
  .rodi-status-in{gap:6px;padding:8px 8px}
  .rodi-st-item{padding:6px 10px 6px 9px;font-size:12.5px;gap:6px}
  .rodi-st-item b{font-size:12.5px}
  .rodi-st-item i{width:8px;height:8px}
}
@media (max-width:782px){
  .rodi-status-in{gap:5px;padding:8px 6px;justify-content:center}
  .rodi-st-item{padding:5px 8px 5px 7px;font-size:11.5px;gap:5px;border-width:1px}
  .rodi-st-item b{font-size:11.5px}
  .rodi-st-item i{width:7px;height:7px}
}
@media (max-width:400px){
  .rodi-st-item{font-size:11px;padding:5px 7px}
  .rodi-st-item b{font-size:11px}
}
/* Status pills are buttons: tap for the hours */
button.rodi-st-item{font-family:inherit;line-height:1.2;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s ease}
button.rodi-st-item:active{transform:scale(.96)}
.rodi-status{position:relative}
.rodi-status.is-alert{position:sticky;top:var(--rodi-header-h,0px);z-index:61}
.rodi-st-tip{position:absolute;left:50%;top:100%;z-index:70;width:min(92vw,420px);margin-top:6px;padding:12px 14px;border-radius:14px;background:#212121;color:#fff;font-size:13.5px;line-height:1.5;box-shadow:0 10px 30px rgba(0,0,0,.25);transform:translateX(-50%);animation:rodiPageIn .2s ease}

/* Availability sheet (tap a status pill) */
.rodi-av .rodi-more-panel{background:#fff}
@media (min-width:783px){
  .rodi-av .rodi-more-panel{left:50%;right:auto;bottom:auto;top:50%;width:440px;max-height:86vh;border-radius:22px;transform:translate(-50%,-46%) scale(.98);opacity:0;transition:transform .25s ease,opacity .25s ease}
  .rodi-av.is-open .rodi-more-panel{transform:translate(-50%,-50%);opacity:1}
  .rodi-av .rodi-more-handle{display:none}
}
.rodi-av-title{display:flex;align-items:center;justify-content:space-between;margin:2px 0 12px}
.rodi-av-title h3{margin:0!important;font-size:20px!important;font-weight:800}
.rodi-av-x{width:34px;height:34px;border:0;border-radius:50%;background:#f2f2f2;font-size:20px;line-height:34px;cursor:pointer}
.rodi-av-ic{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:#fdecea;color:#c62828;flex-shrink:0}
.rodi-av-ic svg{width:20px;height:20px}
.rodi-av-kitchen{display:flex;gap:12px;align-items:flex-start;margin:0 0 12px;padding:12px;border-radius:14px;background:#e8f5e9}
.rodi-av-kitchen .rodi-av-ic{background:#fff;color:#2e7d32}
.rodi-av-kitchen b{display:block;color:#1b5e20}
.rodi-av-kitchen span{font-size:13.5px;color:#2f5f33}
.rodi-av-kitchen.is-busy{background:#fff3e0}
.rodi-av-kitchen.is-busy .rodi-av-ic{color:#e65100}
.rodi-av-kitchen.is-busy b{color:#a04400}
.rodi-av-kitchen.is-busy span{color:#7a4a10}
.rodi-av-block{margin:0 0 10px;padding:12px;border:1px solid #eee;border-radius:14px}
.rodi-av-block.is-focus{border-color:#c62828;box-shadow:0 0 0 3px rgba(198,40,40,.08)}
.rodi-av-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.rodi-av-head b{font-size:16px}
.rodi-av-pill{margin-left:auto;display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;background:#f2f2f2;color:#555}
.rodi-av-pill i{width:7px;height:7px;border-radius:50%;background:currentColor}
.rodi-av-pill.is-open{background:#e8f5e9;color:#1b5e20}
.rodi-av-pill.is-later{background:#fff3e0;color:#a04400}
.rodi-av-pill.is-closed,.rodi-av-pill.is-off{background:#fdecea;color:#b71c1c}
.rodi-av-row{display:flex;gap:12px;padding:6px 0;border-top:1px dashed #f0f0f0;font-size:14px}
.rodi-av-row em{flex:0 0 80px;font-style:normal;color:#888}
.rodi-av-row div{display:flex;flex-direction:column;font-weight:600}
.rodi-av-closed{color:#b71c1c}
.rodi-av-ok{width:100%;height:50px;margin-top:6px;border:0;border-radius:14px;background:#c62828;color:#fff;font-weight:800;font-size:15.5px;cursor:pointer}

/* Checkout: a stopped order type, greyed out */
.foodmaster-order-type-tab.rodi-tab-stopped{opacity:.45!important;cursor:not-allowed!important;background:#f2f2f2!important;color:#777!important;display:inline-flex;flex-direction:column;align-items:center;justify-content:center}
.rodi-tab-note{display:block;font-size:11px;font-weight:700;color:#b71c1c;line-height:1.1;margin-top:2px}

/* Busy / stopped line in the side basket and at checkout */
.rodi-busy-line{margin:8px 10px;padding:9px 12px;border-radius:10px;background:#fff3e0;border:1px solid #ffcc80;color:#8a4a00;font-size:13px;font-weight:700;line-height:1.4}

/* Phones: FoodMaster's basket bar above the dish "+" buttons */
@media (max-width:782px){
  .rodi-applist li.wf-template-product .product-button{z-index:1!important}
}

/* Status pills always centred; if they don't fit, they scroll from the
   first one (instead of the first one being cut off on the left). */
.rodi-status-in{justify-content:flex-start!important}
.rodi-status-in > :first-child{margin-left:auto}
.rodi-status-in > :last-child{margin-right:auto}
.rodi-status-in > .rodi-st-item{flex-shrink:0}

/* =======================================================
   Reviews: the review page and [rodi_reviews]
======================================================= */
.rodi-rv{display:flex;justify-content:center;padding:34px 16px 60px;background:#f6f2ee;min-height:60vh}
.rodi-rv-card{width:100%;max-width:520px;padding:28px 24px;border-radius:20px;background:#fff;box-shadow:0 8px 28px rgba(0,0,0,.06);text-align:center}
.rodi-rv-card h1{margin:0 0 6px!important;font-size:26px!important;font-weight:800}
.rodi-rv-order{color:#777;font-size:14px;margin:0 0 16px!important}
.rodi-rv-stars{display:inline-flex;flex-direction:row-reverse;gap:6px;margin:6px 0 18px}
.rodi-rv-stars input{position:absolute;opacity:0;pointer-events:none}
.rodi-rv-stars label{font-size:46px;line-height:1;color:#ddd;cursor:pointer;transition:transform .12s,color .12s}
.rodi-rv-stars label:hover,.rodi-rv-stars label:hover ~ label,.rodi-rv-stars input:checked ~ label{color:#e6a700}
.rodi-rv-stars label:active{transform:scale(.9)}
.rodi-rv-l{display:block;text-align:left;font-weight:700;margin:0 0 6px}
.rodi-rv-l small{font-weight:400;color:#999}
.rodi-rv-card textarea{width:100%;padding:12px;border:1px solid #ddd;border-radius:12px;font-size:16px;font-family:inherit;resize:vertical}
.rodi-rv-check{display:flex;gap:8px;align-items:flex-start;text-align:left;margin:12px 0 18px;font-size:14px;color:#555}
.rodi-rv-btn{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:52px;border:0;border-radius:14px;background:#c62828;color:#fff!important;font-weight:800;font-size:16px;text-decoration:none!important;cursor:pointer}
.rodi-rv-small{color:#999;font-size:12.5px;margin-top:10px!important}

.rodi-reviews{margin:10px 0}
.rodi-reviews-head{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 16px}
.rodi-reviews-head b{font-size:34px;font-weight:800}
.rodi-reviews-stars{color:#e6a700;font-size:22px;letter-spacing:2px}
.rodi-reviews-head small{color:#777}
.rodi-reviews-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.rodi-review{margin:0;padding:16px;border-radius:16px;background:#fff;border:1px solid #eee;box-shadow:0 4px 14px rgba(0,0,0,.04)}
.rodi-review-stars{color:#e6a700;letter-spacing:2px}
.rodi-review blockquote{margin:8px 0!important;padding:0!important;border:0!important;font-size:15px;line-height:1.55;color:#333;font-style:normal}
.rodi-review figcaption{color:#888;font-size:13px}
.rodi-rv-choice{display:flex;flex-direction:column;gap:8px;margin:14px 0 4px;text-align:left}
.rodi-rv-choice label{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid #e6e6e6;border-radius:12px;cursor:pointer}
.rodi-rv-choice label:has(input:checked){border-color:#c62828;background:#fff6f6}
.rodi-rv-choice b{display:block;font-size:14.5px}
.rodi-rv-choice small{color:#777;font-size:12.5px}
.rodi-review-reply{margin-top:10px;padding:10px 12px;border-radius:10px;background:#f7f7f7;font-size:14px;color:#444}
.rodi-review-reply b{display:block;font-size:12.5px;color:#c62828;margin-bottom:2px}


/* =======================================================
   FoodMaster's "Check Availability" pop-up, in the Rodi app style:
   a sheet from the bottom on phones, a centred card on computers.
======================================================= */
.foodmaster-availability-modal .foodmaster-availability-overlay{background:rgba(0,0,0,.45)!important;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.foodmaster-availability-modal .foodmaster-availability-container{max-width:460px!important;width:calc(100% - 32px)!important;padding:0!important;border:0!important;border-radius:22px!important;background:#fff!important;box-shadow:0 20px 50px rgba(0,0,0,.25)!important;overflow:hidden}
.foodmaster-availability-modal .foodmaster-availability-header{position:relative;padding:22px 22px 6px!important;background:#fff!important;border:0!important;text-align:left!important}
.foodmaster-availability-modal .foodmaster-availability-title{margin:0!important;font-size:22px!important;font-weight:800!important;color:#212121!important}
.foodmaster-availability-modal .foodmaster-availability-header::after{content:"Tell us how you'd like your food, and we'll check we can do it.";display:block;margin-top:4px;font-size:14px;color:#777;font-weight:400}
.foodmaster-availability-modal .foodmaster-availability-close{position:absolute!important;top:16px!important;right:16px!important;width:36px!important;height:36px!important;border-radius:50%!important;background:#f2f2f2!important;color:#333!important;border:0!important;display:flex!important;align-items:center;justify-content:center;font-size:20px!important}
.foodmaster-availability-modal .foodmaster-availability-content{padding:12px 22px 22px!important}
.foodmaster-availability-modal .foodmaster-form-label,.foodmaster-availability-modal .foodmaster-store-label{display:block;margin:0 0 8px!important;font-size:13px!important;font-weight:800!important;letter-spacing:.5px;text-transform:uppercase;color:#888!important}
.foodmaster-availability-modal .foodmaster-availability-section{margin:0 0 16px!important}

/* Delivery / Collection as two big tiles */
.foodmaster-availability-modal .foodmaster-order-type-group{display:grid!important;grid-template-columns:1fr 1fr;gap:10px!important}
.foodmaster-availability-modal .foodmaster-order-type-item{position:relative;margin:0!important}
.foodmaster-availability-modal .foodmaster-order-type-item input{position:absolute;opacity:0;pointer-events:none}
.foodmaster-availability-modal .foodmaster-order-type-item label{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:86px;padding:12px!important;border:2px solid #eee!important;border-radius:16px!important;background:#fafafa!important;font-weight:800!important;font-size:15px!important;color:#333!important;cursor:pointer;transition:border-color .15s,background .15s}
.foodmaster-availability-modal .foodmaster-order-type-item label::before{content:"";width:28px;height:28px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 7h12l-1 13H7L6 7z'/%3E%3Cpath d='M9 7a3 3 0 0 1 6 0'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 7h12l-1 13H7L6 7z'/%3E%3Cpath d='M9 7a3 3 0 0 1 6 0'/%3E%3C/svg%3E") center/contain no-repeat}
.foodmaster-availability-modal .foodmaster-order-type-item input[value="delivery"] + label::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 13l2-5h11l3 5'/%3E%3Crect x='2' y='13' width='20' height='5' rx='1.5'/%3E%3Ccircle cx='7' cy='18.5' r='1.5'/%3E%3Ccircle cx='17' cy='18.5' r='1.5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 13l2-5h11l3 5'/%3E%3Crect x='2' y='13' width='20' height='5' rx='1.5'/%3E%3Ccircle cx='7' cy='18.5' r='1.5'/%3E%3Ccircle cx='17' cy='18.5' r='1.5'/%3E%3C/svg%3E")}
.foodmaster-availability-modal .foodmaster-order-type-item input:checked + label{border-color:#c62828!important;background:#fff6f6!important;color:#c62828!important}

/* Address: a big box with a location button */
.foodmaster-availability-modal .foodmaster-address-input-wrapper{display:flex!important;align-items:center;gap:8px;padding:4px 4px 4px 14px;border:2px solid #eee;border-radius:14px;background:#fff}
.foodmaster-availability-modal .foodmaster-address-input-wrapper:focus-within{border-color:#c62828}
.foodmaster-availability-modal .foodmaster-address-input{flex:1;min-width:0;height:46px!important;border:0!important;outline:0!important;box-shadow:none!important;font-size:16px!important;background:none!important;padding:0!important}
.foodmaster-availability-modal .foodmaster-location-btn{flex-shrink:0;width:44px!important;height:44px!important;border-radius:12px!important;border:0!important;background:#fdecea!important;color:#c62828!important;font-size:0!important;position:relative}
.foodmaster-availability-modal .foodmaster-location-btn::after{content:"";position:absolute;inset:11px;background:#c62828;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s7-7.5 7-13a7 7 0 0 0-14 0c0 5.5 7 13 7 13z'/%3E%3Ccircle cx='12' cy='9' r='2.5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s7-7.5 7-13a7 7 0 0 0-14 0c0 5.5 7 13 7 13z'/%3E%3Ccircle cx='12' cy='9' r='2.5'/%3E%3C/svg%3E") center/contain no-repeat}
.foodmaster-availability-modal .foodmaster-location-btn > *{display:none!important}

/* The main button */
.foodmaster-availability-modal .foodmaster-check-btn{width:100%!important;min-height:54px!important;border:0!important;border-radius:14px!important;background:#c62828!important;color:#fff!important;font-size:16.5px!important;font-weight:800!important;box-shadow:0 6px 16px rgba(198,40,40,.25)}
.foodmaster-availability-modal .foodmaster-check-btn:hover{background:#b71c1c!important}

/* Answers */
.foodmaster-availability-modal .foodmaster-availability-results{border-radius:14px!important;font-size:14.5px}
.foodmaster-availability-modal .foodmaster-form-feedback{font-size:13px;color:#b71c1c}

@media (max-width:782px){
  .foodmaster-availability-modal.active,.foodmaster-availability-modal.foodmaster-auto-open{align-items:flex-end!important}
  .foodmaster-availability-modal .foodmaster-availability-container{position:fixed!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;width:100%!important;max-width:100%!important;max-height:90vh;overflow-y:auto;margin:0!important;transform:none!important;border-radius:22px 22px 0 0!important;padding-bottom:env(safe-area-inset-bottom,0px)!important;animation:rodiSheetUp .32s cubic-bezier(.2,.8,.2,1)}
  .foodmaster-availability-modal .foodmaster-availability-header{padding-top:26px!important}
  .foodmaster-availability-modal .foodmaster-availability-header::before{content:"";position:absolute;top:8px;left:50%;width:42px;height:5px;margin-left:-21px;border-radius:999px;background:#ddd}
  body.foodmaster-modal-open .rodi-tabbar{display:none}
}
@keyframes rodiSheetUp{from{transform:translateY(100%)}to{transform:none}}

/* =======================================================
   "On this page" contents (Terms, Privacy and other long pages)
   Computers: a card with numbered links in columns.
   Phones: a row of chips that stays at the top while reading, and
   lights up the section you're in.
======================================================= */
.rp-toc{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:4px 18px!important;margin:22px 0 8px!important;padding:16px 18px 14px!important;border-radius:18px;background:#fff;border:1px solid #f0e4e4;box-shadow:0 4px 16px rgba(0,0,0,.04);counter-reset:rptoc}
.rp-toc::before{content:"On this page";grid-column:1/-1;margin:0 0 6px;font-size:12px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:#999}
.rp-toc a{counter-increment:rptoc;display:flex!important;align-items:center;gap:10px;padding:8px 6px!important;border:0!important;border-radius:10px!important;background:none!important;color:#333!important;font-size:14.5px!important;font-weight:600!important;text-decoration:none!important;transition:background .15s,color .15s}
.rp-toc a::before{content:counter(rptoc);flex-shrink:0;width:24px;height:24px;border-radius:50%;background:#fdecea;color:#c62828;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center}
.rp-toc a:hover,.rp-toc a.is-here{background:#fff6f6!important;color:#c62828!important}
.rp-toc a.is-here::before{background:#c62828;color:#fff}
.rp-section{scroll-margin-top:calc(var(--rodi-header-h,0px) + 70px)}

@media (max-width:782px){
  .rp-toc{position:sticky;top:calc(var(--rodi-header-h,0px) + 50px);z-index:40;display:flex!important;flex-wrap:nowrap!important;gap:6px!important;overflow-x:auto;margin:10px -16px 14px!important;padding:8px 12px!important;border-radius:0;border:0;border-bottom:1px solid #f0f0f0;box-shadow:0 4px 10px rgba(0,0,0,.04);background:rgba(255,255,255,.97);scrollbar-width:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
  .rp-toc::-webkit-scrollbar{display:none}
  .rp-toc::before{display:none}
  .rp-toc a{flex-shrink:0;padding:7px 12px 7px 7px!important;border:1px solid #eee!important;border-radius:999px!important;background:#fff!important;font-size:13px!important;white-space:nowrap}
  .rp-toc a::before{width:20px;height:20px;font-size:11px}
  .rp-toc a.is-here{border-color:#c62828!important}
}

/* Company details: a small box at the end of Terms and Privacy */
.rp-company{margin:26px 0 8px;padding:14px 16px;border-radius:14px;background:#f7f7f7;color:#666;font-size:13.5px;line-height:1.6}
.rp-company-label{display:block;margin-bottom:4px;font-size:11.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:#999}
.rp-company p{margin:0 0 4px!important}
.rp-company-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px!important}
.rp-company-links a{padding:6px 12px;border-radius:999px;background:#fff;border:1px solid #e6e6e6;color:#c62828!important;font-weight:700;text-decoration:none!important}
.rodi-av-extra{margin:8px 0 0!important;padding:10px 12px;border-radius:12px;background:#f3faf4;color:#1b5e20;font-weight:600;font-size:14px}.foodmaster-result-card.warning .rodi-av-extra{background:#fff8ee;color:#8a4a00}

/* =======================================================
   Basket bar: a calm white bar before an order is started, the Rodi red
   bar once something is in the basket.
======================================================= */
html.rodi-basket-empty body.has-rodi-tabbar .foodmaster-mini-cart-wrapper.sticky-cart,
html.rodi-basket-empty body.has-rodi-tabbar .foodmaster-mini-cart-wrapper.sticky-cart:has(.continue-shopping-sticky){display:block!important}
html.rodi-basket-empty .foodmaster-sticky-cart-bar{background:#fff!important;color:#212121!important;border-top:1px solid #eee!important;box-shadow:0 -4px 14px rgba(0,0,0,.06)!important}
html.rodi-basket-empty .foodmaster-sticky-cart-bar *{color:#212121!important}
html.rodi-basket-empty .foodmaster-sticky-cart-bar button,
html.rodi-basket-empty .foodmaster-sticky-cart-bar .button,
html.rodi-basket-empty .foodmaster-sticky-cart-bar a{background:#fdecea!important;color:#c62828!important;border:1px solid #f3c9c9!important}
html:not(.rodi-basket-empty) .foodmaster-sticky-cart-bar{background:#c62828!important;color:#fff!important}

/* A little bounce on the basket when a dish is added */
.rodi-bump{animation:rodiBump .45s ease}
@keyframes rodiBump{0%{transform:scale(1)}35%{transform:scale(1.25)}70%{transform:scale(.95)}100%{transform:scale(1)}}
.rodi-glow{animation:rodiGlow 1.2s ease}
@keyframes rodiGlow{0%{box-shadow:0 0 0 0 rgba(198,40,40,.55)}100%{box-shadow:0 0 0 14px rgba(198,40,40,0)}}

/* Things that stick to the top sit below the status bar when it sticks too */
@media (max-width:1099px){
  .rodi-cats{top:calc(var(--rodi-header-h,64px) + var(--rodi-status-h,0px))!important}
}
@media (max-width:782px){
  .rodi-titlebar{top:calc(var(--rodi-header-h,0px) + var(--rodi-status-h,0px))!important}
  .rp-toc{top:calc(var(--rodi-header-h,0px) + var(--rodi-status-h,0px) + 50px)!important}
}

/* Phones: the bottom tab bar is solid white (not see-through), so the
   browser's own toolbar below it always picks up white. */
@media (max-width:782px){
  .rodi-tabbar{background:#fff!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  html,body{background-color:#fff}
}

/* Phones: while the basket panel is open, nothing from the page sits on
   top of it (the category tabs used to show through). */
@media (max-width:1099px){
  .rodi-cats{z-index:2!important}
  /* (The tabs now sit at the very top, above the basket panel, so they
     stay visible while it's open.) */
}
@media (max-width:1099px){
  html.rodi-basket-open .rodi-cats:not(.rodi-cats--top),html.rodi-basket-open .rp-toc{visibility:hidden}
}

/* Computers too (17 Oct 2026): the Kitchen / Collection / Delivery bar
   stays under the header while scrolling, on every screen size. */
.rodi-status{position:sticky;top:var(--rodi-header-h,0px);z-index:61}

/* Phones and tablets: the opening-times bar and the menu category tabs
   stay together at the top of the screen, always visible. */
@media (max-width:1099px){
  .rodi-status{position:sticky!important;top:var(--rodi-header-h,0px)!important;z-index:61}
  .rodi-cats.rodi-cats--top{margin:0!important;padding:8px 12px!important;border-bottom:1px solid #eee;box-shadow:0 4px 10px rgba(0,0,0,.05)}
}


/* =======================================================
   Show / hide password eye, on every password box (sign in,
   register, reset password, account details, checkout).
   (In blocks.css, which every page loads.) It was only styled inside My account, so on the reset page it
   showed as a tiny grey dash under each box.
======================================================= */
.woocommerce .password-input,
.woocommerce-page .password-input {
    position: relative !important;
    display: block !important;
    width: 100%;
}
.woocommerce .password-input input,
.woocommerce-page .password-input input {
    padding-right: 48px !important;
}
.woocommerce .show-password-input,
.woocommerce-page .show-password-input {
    position: absolute !important;
    top: 50% !important;
    right: 10px !important;
    left: auto !important;
    width: 32px !important;
    height: 32px !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: translateY(-50%);
    cursor: pointer;
    font-size: 0 !important;
    line-height: 0 !important;
}
.woocommerce .show-password-input::after,
.woocommerce-page .show-password-input::after {
    content: "" !important;
    position: absolute;
    inset: 6px;
    background: #888;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-7 11-7 11 7 11 7-4 7-11 7S1 12 1 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-7 11-7 11 7 11 7-4 7-11 7S1 12 1 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
}
.woocommerce .show-password-input:hover::after,
.woocommerce-page .show-password-input:hover::after { background: #555; }
.woocommerce .show-password-input.display-password::after,
.woocommerce-page .show-password-input.display-password::after { background: #c62828; }

/* Phones: the basket bar always sits on top of the page content.
   FoodMaster puts it inside the sidebar, which on phones formed its own
   layer, so cards with their own layer (e.g. on The Story) covered it. */
@media (max-width:782px){
  .modern-sidebar-content{position:static!important;z-index:auto!important}
}

/* Page stays still while a panel is open (37-scroll-lock.js). Fixing the
   body is the only way iPhone Safari reliably stops the page behind
   from scrolling; the script puts it back exactly where it was. */
html.rodi-noscroll, html.rodi-noscroll body { overflow: hidden !important; overscroll-behavior: none; }
html.rodi-noscroll body { position: fixed !important; left: 0; right: 0; width: 100%; }
.foodmaster-sticky-cart-content, .rodi-more, #product_view, .rodi-fb-sheet { overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }

/* No gap between the opening-times bar and the menu tabs: the tabs tuck
   1px under the bar and paint white above themselves, so dishes can't
   show through a sub-pixel gap. */
@media (max-width:1099px){
  .rodi-cats.rodi-cats--top{top:calc(var(--rodi-header-h,0px) + var(--rodi-status-h,0px) - 1px)!important;box-shadow:0 -8px 0 #fff,0 4px 10px rgba(0,0,0,.05)!important}
  .rodi-status{margin-bottom:0!important}
}

/* No search in the header (it wasn't useful; removed 12 Oct 2026). The menu
   has its own search box. Only search items inside the header are hidden. */
.modern-header [class*="search" i],
.modern-header [aria-label*="search" i],
.modern-header a[href*="?s="],
header.site-header [class*="search" i],
header.site-header [aria-label*="search" i],
#masthead [class*="search" i],
[class*="search-overlay" i],
[class*="search-modal" i],
[class*="search-popup" i] { display: none !important; }

/* iPhones and iPads zoom the whole page in when a box with text smaller
   than 16px is tapped, and don't zoom back out. Boxes are 16px there. */
@supports (-webkit-touch-callout: none) {
    @media (max-width: 1099px) {
        input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]):not([type="range"]),
        select,
        textarea {
            font-size: 16px !important;
        }
    }
}

/* Phones turned sideways and tablets: the header's round "Order now"
   button no longer fits beside the menu links and was cut off at the
   right edge. "Menu" in the header does the same job. */
@media (min-width:769px) and (max-width:1099px){
  .modern-header .order-now-btn,header .order-now-btn{display:none!important}

  /* The menu and "Your Order" side by side, both inside the screen: the
     menu column may shrink (long rows of tabs scroll inside it instead of
     pushing the page wider), and the basket column is a little narrower. */
  .modern-content-wrapper{gap:20px!important}
  .modern-content-area{flex:1 1 auto!important;min-width:0!important;max-width:100%}
  .modern-sidebar{flex:0 0 270px!important;width:270px!important;max-width:270px!important;min-width:0!important;position:sticky!important;top:calc(var(--rodi-header-h,64px) + var(--rodi-status-h,0px) + 60px);align-self:flex-start!important;max-height:calc(100vh - var(--rodi-header-h,64px) - var(--rodi-status-h,0px) - 70px);overflow-y:auto;overscroll-behavior:contain}
  .modern-sidebar .widget,.modern-sidebar .foodmaster-mini-cart-wrapper,.modern-sidebar .foodmaster-mini-cart{max-width:100%!important;min-width:0!important;box-sizing:border-box}
  .modern-content-area img,.modern-content-area table{max-width:100%}
  /* Nothing can make the page scroll sideways. */
  .modern-main-content,.modern-container{max-width:100%;overflow-x:clip}
}

/* Phones turned sideways use the whole screen (inc/app.php): the page keeps
   its words and buttons clear of the camera notch at the sides. */
@media (orientation: landscape) and (pointer: coarse) {
  body{padding-left:env(safe-area-inset-left,0px)!important;padding-right:env(safe-area-inset-right,0px)!important;background-color:#fff}
}

/* =======================================================
   Phones turned sideways (14 Oct 2026), any size. The screen is only about 390px
   tall, and the header, the open/closed line and the category tabs were
   all stuck to the top: nearly half the screen, before a single dish.
   Now only the category tabs stay at the top (slim); the header and the
   open/closed line scroll away with the page, and the basket on the right
   fits the screen and scrolls on its own.
======================================================= */
@media (orientation: landscape) and (max-height: 500px) and (pointer: coarse) {
  .modern-header{position:relative!important;top:auto!important}
  .modern-header .modern-header-container,.modern-header > div{min-height:0!important;padding-top:6px!important;padding-bottom:6px!important}
  .rodi-status,.rodi-status.is-alert{position:relative!important;top:auto!important}
  .rodi-status-in{padding:4px 10px!important;gap:6px!important}
  .rodi-st-item{font-size:12px!important}
  .rodi-cats,.rodi-cats.rodi-cats--top{top:0!important;padding:6px 12px!important;margin-bottom:8px!important}
  .rodi-cats button{padding:5px 11px!important;font-size:12.5px!important}
  /* "Your Order" (15 Oct 2026): only the outer box sticks and scrolls on
     its own. It used to be a sticky box inside another sticky box, both
     scrolling, which iPhones redraw while the page moves (flicker). Its
     height uses the screen height without the address bar (svh), which
     stays the same while Safari's bar slides in and out. */
  .modern-sidebar{top:52px!important;max-height:calc(100vh - 62px)!important;max-height:calc(100svh - 62px)!important;overflow-y:auto!important;overscroll-behavior:contain;-webkit-transform:translateZ(0);transform:translateZ(0)}
  .modern-sidebar-content{position:static!important;top:auto!important;max-height:none!important;overflow:visible!important}
  .modern-sidebar .foodmaster-mini-cart-items{max-height:none!important}
  /* Big welcome boxes: less padding so the first buttons are on screen. */
  .rp-hero,.rmp-hero{padding-top:18px!important;padding-bottom:18px!important}
}
/* Small phones turned sideways (under 783px wide) keep the bottom bar, but
   on one slim line, and the empty "Start shopping" bar steps aside until
   something is in the basket. */
@media (orientation: landscape) and (max-height: 500px) and (max-width: 782px) and (pointer: coarse) {
  .rodi-tabbar{padding:3px 8px calc(3px + env(safe-area-inset-bottom,0px))!important}
  .rodi-tabbar a{flex-direction:row!important;justify-content:center;gap:6px!important;padding:6px 0!important;font-size:12.5px!important}
  .rodi-tab-ic{width:22px!important;height:22px!important}
  .rodi-tab-ic svg{width:20px!important;height:20px!important}
  body.has-rodi-tabbar{padding-bottom:calc(44px + env(safe-area-inset-bottom,0px))!important}
  body.has-rodi-tabbar::after{height:calc(44px + env(safe-area-inset-bottom,0px))}
  body.has-rodi-tabbar .foodmaster-mini-cart-wrapper.sticky-cart{bottom:calc(42px + env(safe-area-inset-bottom,0px))!important}
  html.rodi-basket-empty body.has-rodi-tabbar .foodmaster-mini-cart-wrapper.sticky-cart,
  html.rodi-basket-empty body.has-rodi-tabbar .foodmaster-mini-cart-wrapper.sticky-cart:has(.continue-shopping-sticky){display:none!important}
  body.has-rodi-tabbar .rodi-cc{bottom:calc(50px + env(safe-area-inset-bottom,0px))!important}
}
/* Daily deals that run between two dates (15 Oct 2026): "Until Thu 29 Oct". */
.rodi-deal-until{margin:0 0 6px!important;display:inline-block;align-self:flex-start;padding:2px 9px;border-radius:999px;background:#eef4ff;color:#1d4ed8;font-size:12.5px;font-weight:700}
