/* ===========================================================
   FFW Design System overrides (mu-plugin)
   Loaded after page inline styles - safe to use !important sparingly
   =========================================================== */

/* ---- Section A2 + A3: Book button accessibility ---- */
.btn-primary, .btn--primary, a.btn-primary, a.btn--primary,
button.btn-primary, button.btn--primary,
.hero-actions a.btn-primary, .hero-actions a.btn--primary,
.ffw-class-status a {
    text-align: center !important;          /* A3 */
    color: var(--paper, #f5efe4) !important; /* A2 - white on hover too */
    background: var(--terracotta-text, #9a4827);
    transition: background 200ms ease, color 200ms ease, border-color 200ms ease;
}
.btn-primary:hover, .btn--primary:hover, a.btn-primary:hover, a.btn--primary:hover,
button.btn-primary:hover, button.btn--primary:hover,
.hero-actions a.btn-primary:hover, .hero-actions a.btn--primary:hover,
.ffw-class-status a:hover {
    background: var(--olive-deep, #3d4a2a) !important;
    color: var(--paper, #f5efe4) !important;   /* A2 enforced */
    border-color: var(--olive-deep, #3d4a2a) !important;
}
.btn-secondary, .btn--secondary, a.btn-secondary, a.btn--secondary {
    text-align: center !important;
    color: var(--terracotta-text, #9a4827);
    background: transparent;
    border: 1px solid var(--terracotta-text, #9a4827);
    transition: background 200ms ease, color 200ms ease;
}
.btn-secondary:hover, .btn--secondary:hover, a.btn-secondary:hover, a.btn--secondary:hover {
    background: var(--terracotta-text, #9a4827) !important;
    color: var(--paper, #f5efe4) !important;   /* A2 */
}

/* ---- Section A4: MEC date number bigger ---- */
.mec-event-date .mec-start-date-label,
.mec-event-date,
.mec-event-meta .mec-start-date-label,
.mec-event-grid-modern .mec-event-date,
.mec-event-list-modern .mec-event-date {
    font-size: 28px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    color: var(--terracotta-text, #9a4827) !important;
}
.mec-event-date .mec-day-number,
.mec-event-day {
    font-size: 32px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}

/* ---- Section A5: Breadcrumb &amp; decode (CSS approach for "& uppercase" headings) ---- */
.breadcrumb [aria-current="page"] {
    text-transform: none;
}

/* ---- /ui-ux-pro-max #7: hero img mobile responsiveness ---- */
@media (max-width: 600px) {
    .ffw-venue-hero-img {
        max-height: 60vh !important;
        aspect-ratio: 4 / 3;
    }
    .ffw-photo-strip img {
        height: 140px !important;
    }
}

/* ---- /ui-ux-pro-max #8: focus-visible on venue card components ---- */
.ffw-class-status a:focus-visible,
.ffw-venue-class-row a:focus-visible,
.venue-class-card:focus-visible,
.nearby-card a:focus-visible {
    outline: 2px solid var(--terracotta, #b85c38);
    outline-offset: 3px;
}

/* ---- /ui-ux-pro-max layout fix: venue classes block becomes a column grid
       of vertical cards (text on top, widget UNDERNEATH) per Jackie's brief.
       Replaces the previous side-by-side 2-column row pattern. ---- */
#classes-here {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 360px));
    gap: 24px;
    align-items: stretch;
    justify-content: center;     /* centre the grid when it does not fill the row */
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 6vw;
    padding-right: 6vw;
    box-sizing: border-box;
}
@media (max-width: 768px) {
    #classes-here { padding-left: 5vw; padding-right: 5vw; }
}
/* Section header + deck + final CTAs span the full width of the grid */
#classes-here > .section-eyebrow,
#classes-here > .section-title,
#classes-here > .section-deck,
#classes-here > p:not(.ffw-mini-label) {
    grid-column: 1 / -1;
}
/* Each card: single-column vertical stack, full height, widget BELOW text */
.ffw-venue-class-row {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: 1fr !important;   /* defeat any 1fr 320px desktop override */
    gap: 16px !important;
    margin-bottom: 0 !important;
    border-left-color: var(--terracotta-text, #9a4827) !important; /* AA contrast */
    height: 100%;
}
.ffw-venue-class-row .ffw-class-info {
    flex: 1 1 auto;
}
.ffw-venue-class-row .ffw-class-status {
    margin-top: auto;     /* always pushes widget to the bottom of the card */
}
@media (max-width: 600px) {
    #classes-here { grid-template-columns: 1fr; }
}

/* ---- /ui-ux-pro-max #10: mini-label uses olive-deep for AA contrast ---- */
.ffw-mini-label,
.ffw-class-status .ffw-mini-label {
    color: var(--olive-deep, #3d4a2a) !important;
}

/* ---- Touch target enforcement (CRITICAL §2) ---- */
.btn-primary, .btn-secondary, .btn--primary, .btn--secondary,
.ffw-class-status a, .venue-class-card .link {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* ---- Active-nav highlighting (WordPress current-menu-* classes) ---- */
.menu-item.current-menu-item > a,
.menu-item.current-menu-parent > a,
.menu-item.current-menu-ancestor > a,
.menu-item.current_page_item > a,
.menu-item.current_page_parent > a,
nav a[aria-current="page"],
.menu a[aria-current="page"] {
    color: var(--terracotta-text, #9a4827) !important;
    font-weight: 600;
    position: relative;
}
.menu-item.current-menu-item > a::after,
.menu-item.current-menu-parent > a::after,
.menu-item.current-menu-ancestor > a::after,
.menu-item.current_page_item > a::after,
.menu-item.current_page_parent > a::after,
nav a[aria-current="page"]::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -4px;
    height: 2px;
    background: var(--terracotta-text, #9a4827);
}

/* ---- FAQ accordion overflow / box-sizing fix ---- */
.faq-list .faq-item,
details.faq-item {
    overflow: hidden;
    box-sizing: border-box;
    width: 100%;
}
.faq-item summary {
    word-break: break-word;
    overflow-wrap: anywhere;
    hyphens: auto;
    padding-right: 48px; /* room for the open/close indicator */
    box-sizing: border-box;
}
.faq-item .faq-answer,
.faq-item .faq-answer p {
    word-break: break-word;
    overflow-wrap: anywhere;
    hyphens: auto;
    max-width: 100%;
    box-sizing: border-box;
}
.faq-item .faq-answer {
    padding: 16px 24px 24px;
    background: var(--paper, #f5efe4);
    border-top: 1px solid var(--rule-soft, rgba(42,31,21,0.22));
}
.faq-item .faq-answer p {
    margin: 0 0 12px;
    line-height: 1.65;
}
.faq-item .faq-answer p:last-child { margin-bottom: 0; }

/* ---- prefers-reduced-motion respect ---- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* ===========================================================
   BATCH 8 — Designer-grade polish + WCAG accessibility pass.
   Ready-for-judging: tourism award + designer/marketer audit.
   =========================================================== */

/* Smooth scroll for anchor links (jump nav) — respected by prefers-reduced-motion */
@media (prefers-reduced-motion: no-preference) {
    html { scroll-behavior: smooth; }
}

/* Consistent focus rings on every interactive element — visible, terracotta, NOT removed */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid var(--terracotta, #b85c38) !important;
    outline-offset: 3px !important;
    border-radius: 2px;
}

/* Make sure all images are responsive + lazy by default */
.editorial-page img:not([loading]) { /* keep aspect ratio, avoid CLS */
    max-width: 100%;
    height: auto;
}

/* Skip-link visible when focused */
.skip-nav:focus,
.skip-nav:focus-visible {
    position: absolute !important;
    left: 16px !important;
    top: 16px !important;
    z-index: 9999 !important;
    background: var(--terracotta-text, #9a4827) !important;
    color: var(--paper, #f5efe4) !important;
    padding: 12px 20px !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 500 !important;
    text-decoration: none !important;
}

/* Consistent paragraph rhythm on body content */
.editorial-page p { hanging-punctuation: first; }

/* "Where to stay" / "Things to do" cards — consistent EE look */
.nearby-card {
    background: var(--paper, #f5efe4);
    border-left: 4px solid var(--terracotta-text, #9a4827);
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.nearby-card h3 {
    font-family: 'Fraunces', serif !important;
    font-weight: 500 !important;
    font-size: 19px !important;
    color: var(--olive-deep, #3d4a2a) !important;
    margin: 0 0 6px !important;
    line-height: 1.25 !important;
}
.nearby-card p {
    font-family: 'Fraunces', serif !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
    color: var(--ink, #2a1f15) !important;
    margin: 0 !important;
}
.nearby-card a {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--terracotta-text, #9a4827);
    text-decoration: none;
}
.nearby-card a:hover { color: var(--olive-deep, #3d4a2a); text-decoration: underline; }

/* Recipe related-cards hover */
.ee-related a:hover { background: var(--paper-warm, #ede4d2) !important; }

/* Recipe body: gentle constraint, larger leading, link colour */
.ee-recipe-body h2,
.ee-recipe-body h3 {
    font-family: 'Fraunces', serif !important;
    color: var(--olive-deep, #3d4a2a) !important;
    margin: 36px 0 14px !important;
}
.ee-recipe-body h2 { font-size: 28px !important; font-weight: 400 !important; }
.ee-recipe-body h3 { font-size: 22px !important; font-weight: 500 !important; }
.ee-recipe-body em { font-style: italic; color: var(--terracotta, #b85c38); }
.ee-recipe-body a { color: var(--terracotta-text, #9a4827); text-decoration: underline; text-underline-offset: 2px; }
.ee-recipe-body ul, .ee-recipe-body ol { padding-left: 24px; margin: 0 0 24px; }
.ee-recipe-body li { margin: 0 0 8px; }
.ee-recipe-body img { border-radius: 0; border: 1px solid var(--rule, rgba(42,31,21,0.32)); margin: 24px 0; }

/* Tame Recipe Maker plugin cards so they fit the EE palette */
.wprm-recipe-container,
.wprm-recipe {
    border: 1px solid var(--rule, rgba(42,31,21,0.32)) !important;
    background: var(--paper-warm, #ede4d2) !important;
    border-left: 4px solid var(--terracotta-text, #9a4827) !important;
    padding: 28px !important;
    margin: 32px 0 !important;
}
.wprm-recipe-name {
    font-family: 'Fraunces', serif !important;
    color: var(--olive-deep, #3d4a2a) !important;
    font-weight: 400 !important;
}
.wprm-recipe-print-button,
.wprm-recipe-jump-link,
.wprm-recipe-pin-button {
    background: var(--terracotta-text, #9a4827) !important;
    color: var(--paper, #f5efe4) !important;
    border-radius: 0 !important;
}

/* Container max-width for typography readability */
.editorial-page main:not(.editorial-single-post) > section .container {
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
}

/* Ensure all our links are AAA-readable on every background colour */
a:not(:focus):not(:hover) { text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }

/* ===========================================================
   BATCH 6 — Venue + class card grid alignment: keep widget cards and
   waitlist cards aligned at the TOP of each grid cell (instead of
   stretching to the height of the tallest widget).
   =========================================================== */
#classes-here {
    align-items: start !important;
}
.ffw-venue-class-row {
    align-self: start !important;
    height: auto !important;
    min-height: 0 !important;
}
.ffw-venue-class-row .ffw-class-info {
    flex: 0 0 auto !important;
}
.ffw-venue-class-row .ffw-mini-widget,
.ffw-venue-class-row .ffw-class-status {
    margin-top: 12px !important;
}
/* On the class-page Book-by-venue grid, also align at top */
.ffw-class-venue-grid,
[id^="book-"] + div,
section[aria-labelledby^="book-"] > div {
    align-items: start !important;
}

/* ===========================================================
   PHASE 1 — Fix MEC shortcode buttons, dark-background colour clashes,
   footer images, and the "Book the..." button colour issue.
   (Per Jackie 2026-05-25 round 2 feedback.)
   =========================================================== */

/* --- Footer logo border kill (round 10): high-specificity sweep to defeat
   any leftover theme/plugin rules that still draw a chip/border around
   each <img> inside .footer-trust. --- */
.site-footer .footer-trust .award-logo,
footer .footer-trust .award-logo,
footer.site-footer .footer-trust a.award-logo,
.wrap .site-footer .footer-trust a.award-logo,
.editorial-footer .footer-trust a.award-logo,
body .footer-trust .award-logo {
    background: transparent !important;
    background-color: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
}
.site-footer .footer-trust .award-logo img,
footer .footer-trust .award-logo img,
.wrap .site-footer .footer-trust a.award-logo img,
.editorial-footer .footer-trust a.award-logo img,
body .footer-trust .award-logo img {
    background: transparent !important;
    background-color: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
    padding: 0 !important;
}

/* --- Footer trust strip container: remove any border/box, match footer bg --- */
.site-footer .footer-trust,
footer.site-footer .footer-trust,
.editorial-footer .footer-trust {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 32px 0 !important;
    margin: 16px auto !important;
    border-radius: 0 !important;
}

/* --- ULTRA-SPECIFIC Subscribe button kill rule. Defeats Kadence + plugin
       defaults + any blue/native button styling anywhere on the page. --- */
html body .footer-newsletter input[name="mc_signup_submit"],
html body .footer-newsletter .mc_signup_submit_button,
html body .footer-newsletter input.button[type="submit"],
html body .footer-newsletter input[type="submit"],
html body .footer-newsletter [id^="mc_signup_submit"],
html body .ffw-newsletter-popup input[name="mc_signup_submit"],
html body .ffw-newsletter-popup .mc_signup_submit_button,
html body .ffw-newsletter-popup input.button[type="submit"],
html body .ffw-newsletter-popup input[type="submit"],
html body .ffw-newsletter-popup [id^="mc_signup_submit"] {
    background: #9a4827 !important;
    background-color: #9a4827 !important;
    background-image: none !important;
    color: #f5efe4 !important;
    border: 1px solid #9a4827 !important;
    border-radius: 4px !important;
    box-shadow: none !important;
    text-shadow: none !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    letter-spacing: 0.24em !important;
    text-transform: uppercase !important;
    padding: 14px 28px !important;
    min-height: 48px !important;
    width: 100% !important;
    margin: 8px 0 0 !important;
    cursor: pointer !important;
    opacity: 1 !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    line-height: 1 !important;
    text-align: center !important;
    display: block !important;
}
html body .footer-newsletter input[name="mc_signup_submit"]:hover,
html body .footer-newsletter .mc_signup_submit_button:hover,
html body .footer-newsletter [id^="mc_signup_submit"]:hover,
html body .ffw-newsletter-popup input[name="mc_signup_submit"]:hover,
html body .ffw-newsletter-popup .mc_signup_submit_button:hover,
html body .ffw-newsletter-popup [id^="mc_signup_submit"]:hover {
    background: #3d4a2a !important;
    background-color: #3d4a2a !important;
    color: #f5efe4 !important;
    border-color: #3d4a2a !important;
}

/* --- Official Mailchimp plugin form: HIDE everything except EMAIL + SUBMIT,
       and re-render the input + button in clean Editorial Earth styling.
       The plugin outputs labels, required asterisks, name fields, group hidden
       inputs etc. — none of that fits our popup/footer card layout. --- */

/* hide the plugin chrome we don't want visible */
.footer-newsletter #mc_signup_form .indicates-required,
.ffw-newsletter-popup #mc_signup_form .indicates-required,
.footer-newsletter #mc_signup_form > h3,
.ffw-newsletter-popup #mc_signup_form > h3,
.footer-newsletter #mc_signup_form .small-meta,
.ffw-newsletter-popup #mc_signup_form .small-meta,
.footer-newsletter h3.widget-title,
.ffw-newsletter-popup h3.widget-title,
.footer-newsletter #mc-indicates-required,
.ffw-newsletter-popup #mc-indicates-required {
    display: none !important;
}

/* hide every form field EXCEPT the email one and the submit button */
.footer-newsletter #mc_signup_form .mc-field-group,
.ffw-newsletter-popup #mc_signup_form .mc-field-group {
    display: none !important;
}
.footer-newsletter #mc_signup_form .mc-field-group:has(input[type="email"]),
.ffw-newsletter-popup #mc_signup_form .mc-field-group:has(input[type="email"]) {
    display: block !important;
}
.footer-newsletter #mc_signup_form .mc-field-group:has(input[id*="EMAIL"]),
.ffw-newsletter-popup #mc_signup_form .mc-field-group:has(input[id*="EMAIL"]) {
    display: block !important;
}

/* the visible email field: bury its label visually (we have our own deck copy above) */
.footer-newsletter #mc_signup_form label[for*="EMAIL"],
.ffw-newsletter-popup #mc_signup_form label[for*="EMAIL"] {
    position: absolute !important;
    width: 1px !important; height: 1px !important;
    overflow: hidden !important; clip: rect(0,0,0,0) !important;
    margin: -1px !important; padding: 0 !important; border: 0 !important;
    white-space: nowrap !important;
}

/* the email input itself, styled like our original popup */
.footer-newsletter #mc_signup_form input[type="email"],
.ffw-newsletter-popup #mc_signup_form input[type="email"] {
    width: 100% !important;
    padding: 14px 18px !important;
    font-family: 'Fraunces', serif !important;
    font-size: 16px !important;
    background: var(--paper-warm, #ede4d2) !important;
    color: var(--ink, #2a1f15) !important;
    border: 1px solid var(--rule, rgba(42,31,21,0.32)) !important;
    border-radius: 4px !important;
    min-height: 48px !important;
    box-sizing: border-box !important;
    display: block !important;
    margin: 0 0 12px !important;
}
.ffw-newsletter-popup #mc_signup_form input[type="email"] {
    background: var(--paper-warm, #ede4d2) !important;
}
.footer-newsletter #mc_signup_form input[type="email"] {
    background: var(--paper, #f5efe4) !important;
}

/* the submit row + button — restore the clean look.
   IMPORTANT: the plugin's submit button id has a dynamic suffix
   (#mc_signup_submit_xxxxxxxx_1) so target by name attribute + class instead. */
.footer-newsletter #mc_signup_form .clear,
.ffw-newsletter-popup #mc_signup_form .clear {
    display: block !important;
    margin-top: 4px !important;
}
.footer-newsletter input[name="mc_signup_submit"],
.footer-newsletter input.mc_signup_submit_button,
.footer-newsletter #mc_signup_form input[type="submit"],
.footer-newsletter [id^="mc_signup_submit"],
.ffw-newsletter-popup input[name="mc_signup_submit"],
.ffw-newsletter-popup input.mc_signup_submit_button,
.ffw-newsletter-popup #mc_signup_form input[type="submit"],
.ffw-newsletter-popup [id^="mc_signup_submit"] {
    background: var(--terracotta-text, #9a4827) !important;
    background-color: var(--terracotta-text, #9a4827) !important;
    color: var(--paper, #f5efe4) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    letter-spacing: 0.24em !important;
    text-transform: uppercase !important;
    border: 1px solid var(--terracotta-text, #9a4827) !important;
    border-radius: 4px !important;
    padding: 14px 28px !important;
    min-height: 48px !important;
    width: 100% !important;
    cursor: pointer !important;
    box-shadow: none !important;
    opacity: 1 !important;
    margin: 0 !important;
    transition: background 200ms ease, color 200ms ease !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}
.footer-newsletter input[name="mc_signup_submit"]:hover,
.footer-newsletter input.mc_signup_submit_button:hover,
.footer-newsletter [id^="mc_signup_submit"]:hover,
.ffw-newsletter-popup input[name="mc_signup_submit"]:hover,
.ffw-newsletter-popup input.mc_signup_submit_button:hover,
.ffw-newsletter-popup [id^="mc_signup_submit"]:hover {
    background: var(--olive-deep, #3d4a2a) !important;
    background-color: var(--olive-deep, #3d4a2a) !important;
    color: var(--paper, #f5efe4) !important;
    border-color: var(--olive-deep, #3d4a2a) !important;
}

/* status/error messages */
.footer-newsletter #mc_signup_form #mc_signup_response,
.ffw-newsletter-popup #mc_signup_form #mc_signup_response,
.footer-newsletter #mce-error-response,
.ffw-newsletter-popup #mce-error-response,
.footer-newsletter #mce-success-response,
.ffw-newsletter-popup #mce-success-response {
    font-family: 'Fraunces', serif !important;
    font-size: 14px !important;
    padding: 8px 0 !important;
    margin: 8px 0 0 !important;
}
.footer-newsletter #mce-success-response { color: var(--paper, #f5efe4) !important; }
.footer-newsletter #mce-error-response { color: #f8d2c2 !important; }
.ffw-newsletter-popup #mce-success-response { color: var(--olive-deep, #3d4a2a) !important; }
.ffw-newsletter-popup #mce-error-response { color: var(--terracotta, #b85c38) !important; }

/* original target rules (left for safety) ---------------------------------- */
.footer-newsletter #mc_signup_form,
.ffw-newsletter-popup #mc_signup_form { margin: 0 !important; padding: 0 !important; }
.footer-newsletter #mc_signup_form ul,
.ffw-newsletter-popup #mc_signup_form ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.footer-newsletter #mc_signup_form li,
.ffw-newsletter-popup #mc_signup_form li {
    margin: 0 0 12px !important;
    padding: 0 !important;
    list-style: none !important;
}
.footer-newsletter #mc_signup_form label,
.ffw-newsletter-popup #mc_signup_form label {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin-bottom: 6px;
}
.footer-newsletter #mc_signup_form label { color: var(--paper, #f5efe4) !important; }
.ffw-newsletter-popup #mc_signup_form label { color: var(--olive-deep, #3d4a2a) !important; }
.footer-newsletter #mc_signup_form input[type="text"],
.footer-newsletter #mc_signup_form input[type="email"],
.ffw-newsletter-popup #mc_signup_form input[type="text"],
.ffw-newsletter-popup #mc_signup_form input[type="email"] {
    width: 100% !important;
    max-width: 100% !important;
    padding: 14px 18px !important;
    font-family: 'Fraunces', serif !important;
    font-size: 16px !important;
    background: var(--paper, #f5efe4) !important;
    color: var(--ink, #2a1f15) !important;
    border: 1px solid var(--paper, #f5efe4) !important;
    border-radius: 4px !important;
    min-height: 48px !important;
    box-sizing: border-box !important;
}
.footer-newsletter #mc_signup_submit,
.footer-newsletter input#mc_signup_submit,
.footer-newsletter #mc_signup_form input[type="submit"],
.ffw-newsletter-popup #mc_signup_submit,
.ffw-newsletter-popup input#mc_signup_submit,
.ffw-newsletter-popup #mc_signup_form input[type="submit"] {
    background: var(--terracotta-text, #9a4827) !important;
    background-color: var(--terracotta-text, #9a4827) !important;
    color: var(--paper, #f5efe4) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    letter-spacing: 0.24em !important;
    text-transform: uppercase !important;
    border: 1px solid var(--terracotta-text, #9a4827) !important;
    border-radius: 4px !important;
    padding: 14px 28px !important;
    min-height: 48px !important;
    width: auto !important;
    cursor: pointer !important;
    box-shadow: none !important;
    transition: background 200ms ease, color 200ms ease !important;
    opacity: 1 !important;
    margin-top: 8px !important;
}
.footer-newsletter #mc_signup_submit:hover,
.ffw-newsletter-popup #mc_signup_submit:hover {
    background: var(--paper, #f5efe4) !important;
    color: var(--terracotta-text, #9a4827) !important;
}
.footer-newsletter .mc_required,
.ffw-newsletter-popup .mc_required { color: var(--terracotta, #b85c38) !important; }
.footer-newsletter #mc_signup_form #mc_message,
.ffw-newsletter-popup #mc_signup_form #mc_message {
    font-family: 'Fraunces', serif !important;
    font-size: 14px !important;
    padding: 8px 0 !important;
}
.footer-newsletter #mc_signup_form #mc_message { color: var(--paper, #f5efe4) !important; }
.ffw-newsletter-popup #mc_signup_form #mc_message { color: var(--ink, #2a1f15) !important; }
.footer-newsletter h3.widget-title,
.ffw-newsletter-popup h3.widget-title { display: none !important; } /* hide plugin's own widget title — our section heading handles it */

/* --- MC4WP form button styling (Round 10): high-specificity since plugin
   renders its own structure that doesn't match .footer-newsletter-submit --- */
.footer-newsletter .mc4wp-form,
.ffw-newsletter-popup .mc4wp-form {
    margin: 0 !important;
    padding: 0 !important;
}
.footer-newsletter .mc4wp-form p,
.ffw-newsletter-popup .mc4wp-form p {
    margin: 0 0 12px !important;
}
.footer-newsletter .mc4wp-form label,
.ffw-newsletter-popup .mc4wp-form label {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--paper, #f5efe4);
    margin-bottom: 6px;
}
.footer-newsletter .mc4wp-form input[type="email"],
.footer-newsletter .mc4wp-form input[type="text"],
.ffw-newsletter-popup .mc4wp-form input[type="email"],
.ffw-newsletter-popup .mc4wp-form input[type="text"] {
    width: 100% !important;
    padding: 14px 18px !important;
    font-family: 'Fraunces', serif !important;
    font-size: 16px !important;
    background: var(--paper, #f5efe4) !important;
    color: var(--ink, #2a1f15) !important;
    border: 1px solid var(--paper, #f5efe4) !important;
    border-radius: 4px !important;
    min-height: 48px !important;
    box-sizing: border-box !important;
    display: block !important;
}
.footer-newsletter .mc4wp-form input[type="submit"],
.footer-newsletter .mc4wp-form button[type="submit"],
.ffw-newsletter-popup .mc4wp-form input[type="submit"],
.ffw-newsletter-popup .mc4wp-form button[type="submit"] {
    background: var(--terracotta-text, #9a4827) !important;
    background-color: var(--terracotta-text, #9a4827) !important;
    color: var(--paper, #f5efe4) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    letter-spacing: 0.24em !important;
    text-transform: uppercase !important;
    border: 1px solid var(--terracotta-text, #9a4827) !important;
    border-radius: 4px !important;
    padding: 14px 28px !important;
    min-height: 48px !important;
    width: auto !important;
    cursor: pointer !important;
    box-shadow: none !important;
    transition: background 200ms ease, color 200ms ease, border-color 200ms ease !important;
    opacity: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-top: 8px !important;
}
.footer-newsletter .mc4wp-form input[type="submit"]:hover,
.footer-newsletter .mc4wp-form button[type="submit"]:hover,
.ffw-newsletter-popup .mc4wp-form input[type="submit"]:hover,
.ffw-newsletter-popup .mc4wp-form button[type="submit"]:hover {
    background: var(--paper, #f5efe4) !important;
    background-color: var(--paper, #f5efe4) !important;
    color: var(--terracotta-text, #9a4827) !important;
}
.footer-newsletter .mc4wp-form-fields p,
.ffw-newsletter-popup .mc4wp-form-fields p {
    margin: 0 0 10px !important;
}
.footer-newsletter .mc4wp-response,
.ffw-newsletter-popup .mc4wp-response {
    font-family: 'Fraunces', serif !important;
    font-size: 14px !important;
    color: var(--paper, #f5efe4) !important;
    padding: 10px 0 !important;
}
.ffw-newsletter-popup .mc4wp-form label { color: var(--olive-deep, #3d4a2a) !important; }
.ffw-newsletter-popup .mc4wp-response { color: var(--ink, #2a1f15) !important; }

/* ============================================================
 * Official Mailchimp plugin (v2.0+) — CORRECT selectors.
 * The plugin uses .mc_container / .mc_custom_border_hdr /
 * .mc_signup_form / .mc_form_inside / .mc_merge_var / .mc_var_label
 * / .mc_input / .mergeRow / .mc_email_format / .mc_email_options
 * / .mc_signup_submit / .mc_signup_submit_button — NOT
 * #mc_signup_form / .mc-field-group / label[for*=EMAIL].
 * Sitewide (no .footer-newsletter / .ffw-newsletter-popup scope)
 * so the form is always clean wherever the shortcode renders.
 * ============================================================ */

/* hide plugin chrome: "Sign up for Fleurieu Food and Wine" heading,
   email-label, format-radio row, indicates-required, widget title */
.mc_container .mc_custom_border_hdr,
.mc_container .mc_var_label,
.mc_container .mc_email_format,
.mc_container .mergeRow,
.mc_container .mc_email_options,
.mc_container .indicates-required,
.mc_container .mc-indicates-required,
.mc_container h3.widget-title,
.mc_container .mc_header_email {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* reset form box */
.mc_container,
.mc_container .mc_signup_form,
.mc_container .mc_form_inside {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    max-width: 100% !important;
}
.mc_container .mc_merge_var {
    margin: 0 0 12px !important;
    padding: 0 !important;
}

/* style the email text input (plugin uses input[type="text"] name="mc_mv_EMAIL") */
.mc_container .mc_input,
.mc_container input[name="mc_mv_EMAIL"],
.mc_container input.mc_input {
    width: 100% !important;
    max-width: 100% !important;
    padding: 14px 18px !important;
    font-family: 'Fraunces', serif !important;
    font-size: 16px !important;
    color: var(--ink, #2a1f15) !important;
    border-radius: 4px !important;
    min-height: 48px !important;
    box-sizing: border-box !important;
    display: block !important;
    margin: 0 !important;
}
.footer-newsletter .mc_container .mc_input,
.footer-newsletter .mc_container input[name="mc_mv_EMAIL"] {
    background: var(--paper, #f5efe4) !important;
    border: 1px solid var(--paper, #f5efe4) !important;
}
.ffw-newsletter-popup .mc_container .mc_input,
.ffw-newsletter-popup .mc_container input[name="mc_mv_EMAIL"] {
    background: var(--paper-warm, #ede4d2) !important;
    border: 1px solid var(--rule, rgba(42,31,21,0.32)) !important;
}

/* style the submit row + button — sitewide override of plugin defaults */
.mc_container .mc_signup_submit {
    margin: 12px 0 0 !important;
    padding: 0 !important;
    width: 100% !important;
}
html body .mc_container .mc_signup_submit_button,
html body .mc_container input[name="mc_signup_submit"],
html body .mc_container input.mc_signup_submit_button,
html body .mc_container [id^="mc_signup_submit"],
html body .mc_container input[type="submit"] {
    background: var(--terracotta-text, #9a4827) !important;
    background-color: var(--terracotta-text, #9a4827) !important;
    background-image: none !important;
    color: var(--paper, #f5efe4) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    letter-spacing: 0.24em !important;
    text-transform: uppercase !important;
    border: 1px solid var(--terracotta-text, #9a4827) !important;
    border-radius: 4px !important;
    padding: 14px 28px !important;
    min-height: 48px !important;
    width: 100% !important;
    cursor: pointer !important;
    box-shadow: none !important;
    opacity: 1 !important;
    margin: 0 !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    transition: background 200ms ease, color 200ms ease, border-color 200ms ease !important;
}
html body .mc_container .mc_signup_submit_button:hover,
html body .mc_container input[name="mc_signup_submit"]:hover,
html body .mc_container [id^="mc_signup_submit"]:hover {
    background: var(--olive-deep, #3d4a2a) !important;
    background-color: var(--olive-deep, #3d4a2a) !important;
    color: var(--paper, #f5efe4) !important;
    border-color: var(--olive-deep, #3d4a2a) !important;
}

/* hide the honeypot alt-email field robustly (plugin already hides it but
   some themes restore display) */
.mc_container input[name="mailchimp_sf_alt_email"],
.mc_container label[for="mailchimp_sf_alt_email"] {
    display: none !important;
}

/* validation + success message styling */
.mc_container .mc_message_wrapper,
.mc_container .mc_error_msg,
.mc_container .mc_success_msg {
    font-family: 'Fraunces', serif !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
}
.footer-newsletter .mc_container .mc_error_msg,
.footer-newsletter .mc_container .mc_message_wrapper { color: #f8d2c2 !important; }
.footer-newsletter .mc_container .mc_success_msg { color: var(--paper, #f5efe4) !important; }
.ffw-newsletter-popup .mc_container .mc_error_msg,
.ffw-newsletter-popup .mc_container .mc_message_wrapper { color: var(--terracotta, #b85c38) !important; }
.ffw-newsletter-popup .mc_container .mc_success_msg { color: var(--olive-deep, #3d4a2a) !important; }

/* --- Footer newsletter (Round 9) --- */
.footer-newsletter {
    background: transparent !important;
    border: none !important;
    padding: 32px 0 !important;
    margin: 16px auto 0;
    text-align: center;
    max-width: 640px;
}
.footer-newsletter-title {
    font-family: 'Fraunces', serif;
    font-weight: 300;
    font-size: clamp(24px, 3vw, 32px);
    color: var(--paper, #f5efe4);
    margin: 0 0 8px;
    line-height: 1.2;
}
.footer-newsletter-title em {
    font-style: italic;
    color: var(--terracotta, #b85c38);
}
.footer-newsletter-deck {
    font-family: 'Fraunces', serif;
    font-size: 15px;
    line-height: 1.55;
    color: var(--paper, #f5efe4);
    opacity: 0.88;
    margin: 0 0 20px;
}
.footer-newsletter-form {
    display: flex;
    gap: 8px;
    max-width: 480px;
    margin: 0 auto;
}
.footer-newsletter-input {
    flex: 1;
    padding: 14px 18px;
    font-family: 'Fraunces', serif;
    font-size: 15px;
    background: var(--paper, #f5efe4);
    color: var(--ink, #2a1f15);
    border: 1px solid var(--paper, #f5efe4);
    border-radius: 4px;
    min-height: 48px;
    box-sizing: border-box;
}
.footer-newsletter-input::placeholder { color: rgba(42,31,21,0.55); }
.footer-newsletter-submit {
    background: var(--terracotta-text, #9a4827);
    color: var(--paper, #f5efe4);
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    border: 1px solid var(--terracotta-text, #9a4827);
    border-radius: 4px;
    padding: 14px 24px;
    min-height: 48px;
    cursor: pointer;
    transition: background 200ms ease, border-color 200ms ease;
}
.footer-newsletter-submit:hover {
    background: var(--paper, #f5efe4);
    color: var(--terracotta-text, #9a4827);
}
.visually-hidden {
    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;
}
@media (max-width: 600px) {
    .footer-newsletter-form { flex-direction: column; gap: 12px; }
}

/* --- Newsletter popup modal (Round 9) --- */
.ffw-newsletter-popup-backdrop {
    position: fixed; inset: 0;
    background: rgba(42,31,21,0.55);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    padding: 24px;
}
.ffw-newsletter-popup-backdrop.is-open { display: flex; }
.ffw-newsletter-popup {
    background: var(--paper, #f5efe4);
    max-width: 480px;
    width: 100%;
    padding: 40px 32px 32px;
    border-radius: 6px;
    border-top: 4px solid var(--terracotta-text, #9a4827);
    position: relative;
    box-shadow: 0 24px 64px rgba(0,0,0,0.3);
}
.ffw-newsletter-popup-close {
    position: absolute;
    top: 12px;
    right: 12px;
    background: transparent;
    border: 0;
    font-size: 24px;
    line-height: 1;
    color: var(--olive-deep, #3d4a2a);
    cursor: pointer;
    padding: 8px;
    min-width: 40px;
    min-height: 40px;
}
.ffw-newsletter-popup-eyebrow {
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--terracotta-text, #9a4827);
    font-weight: 600;
    margin: 0 0 8px;
}
.ffw-newsletter-popup-title {
    font-family: 'Fraunces', serif;
    font-weight: 300;
    font-size: 32px;
    color: var(--olive-deep, #3d4a2a);
    line-height: 1.15;
    margin: 0 0 12px;
}
.ffw-newsletter-popup-title em { font-style: italic; color: var(--terracotta, #b85c38); }
.ffw-newsletter-popup-deck {
    font-family: 'Fraunces', serif;
    font-size: 16px;
    line-height: 1.6;
    margin: 0 0 20px;
}
.ffw-newsletter-popup-form { display: flex; flex-direction: column; gap: 10px; }
.ffw-newsletter-popup-form input {
    padding: 14px 18px;
    font-family: 'Fraunces', serif;
    font-size: 16px;
    border: 1px solid var(--rule, rgba(42,31,21,0.32));
    background: var(--paper-warm, #ede4d2);
    min-height: 48px;
    border-radius: 4px;
}
.ffw-newsletter-popup-form button {
    background: var(--terracotta-text, #9a4827);
    color: var(--paper, #f5efe4);
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    border: 1px solid var(--terracotta-text, #9a4827);
    padding: 14px 24px;
    min-height: 48px;
    cursor: pointer;
}

/* --- Footer award logos: directly on the green footer (no white chip) --- */
.footer-trust {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 32px !important;
    margin: 32px auto !important;
}
.footer-trust .award-logo {
    background: transparent !important;
    border-radius: 0 !important;
    padding: 4px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 72px !important;
    transition: transform 200ms ease, opacity 200ms ease !important;
}
.footer-trust .award-logo:hover {
    transform: translateY(-2px);
    opacity: 0.92;
}
.footer-trust .award-logo img {
    max-height: 72px !important;
    max-width: 130px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
}

/* --- Hero star rating (Round 7 P0): gold stars for instant credibility --- */
.hero-star-rating { margin-top: 24px; }

/* --- A11y: ensure any link with only an image inside has its alt text serve as accessible name.
   Also catch the announcement-rotator CTA links. --- */
a:not([aria-label]):empty,
a:not([aria-label]):has(> svg:only-child),
a:not([aria-label]):has(> i:only-child) {
    /* mark for review — these will fail a11y audit until labelled */
    outline: 0;
}

/* --- Hero trust v2: stacked logo row + clean text line below (Round 7) --- */
.hero-trust-v2 {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 18px !important;
    margin-top: 32px !important;
}
.hero-trust-v2 .hero-trust-logos {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 20px !important;
    background: var(--paper, #f5efe4) !important;
    padding: 16px 28px !important;
    border-radius: 6px !important;
}
.hero-trust-v2 .hero-trust-logos img {
    height: 70px !important;
    width: auto !important;
    max-width: 130px !important;
    object-fit: contain !important;
    display: block !important;
}
.hero-trust-v2 .hero-trust-line {
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
    color: var(--olive-deep, #3d4a2a) !important;
    max-width: 760px !important;
    text-align: center !important;
    margin: 0 !important;
    opacity: 0.95;
}
@media (max-width: 600px) {
    .hero-trust-v2 .hero-trust-logos img { height: 48px !important; max-width: 100px !important; }
}

/* --- Awards section logos: even sizing per Round 7 (all logos same display) --- */
.trust-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
    gap: 32px !important;
    align-items: start !important;
    max-width: 1200px !important;
    margin: 32px auto 0 !important;
}
.trust-item {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 12px !important;
}
.trust-item .trust-badge {
    width: 160px !important;
    height: 160px !important;
    background: var(--paper, #f5efe4) !important;
    border-radius: 6px !important;
    border: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 16px !important;
    box-sizing: border-box !important;
    margin: 0 !important;
}
.trust-item .trust-badge img {
    max-width: 100% !important;
    max-height: 100% !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
}
.trust-item .trust-name {
    font-family: 'Fraunces', serif !important;
    font-weight: 500 !important;
    font-size: 16px !important;
    color: var(--olive-deep, #3d4a2a) !important;
}
.trust-item .trust-year {
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    letter-spacing: 0.2em !important;
    text-transform: uppercase !important;
    color: var(--terracotta-text, #9a4827) !important;
}

/* --- LOAD MORE button: text must be centred, not at bottom (MEC) --- */
.mec-load-more-button,
button.mec-load-more-button,
a.mec-load-more-button,
.mec-events-button.mec-load-more-button,
.mec-wrap .mec-load-more-button,
.mec-load-more,
.mec-wrap .mec-load-more {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    text-align: center !important;
    padding: 16px 32px !important;
    min-height: 48px !important;
    background: var(--olive-deep, #3d4a2a) !important;
    color: var(--paper, #f5efe4) !important;
    border: 1px solid var(--olive-deep, #3d4a2a) !important;
    border-radius: 4px !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    letter-spacing: 0.24em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    vertical-align: middle !important;
}
.mec-load-more-button:hover,
a.mec-load-more-button:hover {
    background: var(--terracotta-text, #9a4827) !important;
    border-color: var(--terracotta-text, #9a4827) !important;
}

/* --- Tighter section gaps sitewide (less scrolling) --- */
.editorial-page main > section.section,
.editorial-page main > section.story,
.editorial-page main > section.trust,
.editorial-page main > section.experience,
.editorial-page main > section.partners,
.editorial-page main > section.faqs,
.editorial-page main > section.feature-cards,
.editorial-page main > section.awards,
.editorial-page main > section.newsletter,
.editorial-page main > section.ffw-carousel-section {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
}
.editorial-page main > section + section { margin-top: 0 !important; }

/* --- Trust badges (awards section): real logos sized larger per Jackie --- */
.trust-badge:has(img) {
    background: transparent !important;
    border: none !important;
    width: 150px !important;
    height: 150px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
}
.trust-badge img {
    max-width: 100% !important;
    max-height: 100% !important;
    width: auto;
    height: auto;
    object-fit: contain;
}
/* Bigger for Quality Tourism Accredited + TICSA Sustainable specifically */
.trust-badge img[alt*="Quality Tourism"],
.trust-badge img[alt*="TICSA"],
.trust-badge img[alt*="Sustainable"] {
    max-width: 180px !important;
    max-height: 180px !important;
}
.trust-badge:has(img[alt*="Quality Tourism"]),
.trust-badge:has(img[alt*="TICSA"]),
.trust-badge:has(img[alt*="Sustainable"]) {
    width: 180px !important;
    height: 180px !important;
}

/* --- Tighter gap between reviews carousel and the MEC #classes section --- */
.ffw-carousel-section[aria-labelledby="reviews-carousel-title"] { padding-bottom: 16px !important; }
.ffw-carousel-section[aria-labelledby="reviews-carousel-title"] + .section[id="classes"],
.ffw-carousel-section + .section[id="classes"] {
    padding-top: 24px !important;
    margin-top: 0 !important;
}
#classes { padding-top: 32px !important; }
#classes .section-eyebrow { margin-top: 0 !important; }

/* --- MEC card grid: even height + tidy boxes per Jackie 2026-05-25 round 2.
   Targets the card-style display where MEC renders columns of events.
   Don't force grid-template-columns on the card itself; equalise heights
   using grid auto-rows + display:flex inside the cards. --- */
.mec-wrap .mec-events-list,
.mec-wrap .mec-event-grid-modern,
.mec-wrap .mec-event-grid-classic,
.mec-wrap .mec-event-list-classic {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
    gap: 24px !important;
    align-items: stretch !important;
}
.mec-wrap .mec-events-list > article,
.mec-wrap .mec-event-grid-modern > article,
.mec-wrap .mec-event-grid-classic > article,
.mec-wrap .mec-event-list-classic > article {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    background: var(--paper, #f5efe4) !important;
    border: 1px solid var(--rule, rgba(42,31,21,0.18)) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 24px !important;
    box-sizing: border-box !important;
}
.mec-wrap .mec-events-list > article > *,
.mec-wrap .mec-event-grid-modern > article > * { flex: 0 0 auto; }
.mec-wrap .mec-events-list > article .mec-event-content,
.mec-wrap .mec-event-grid-modern > article .mec-event-content { flex: 1 1 auto; }
.mec-wrap .mec-events-list > article .mec-booking-button,
.mec-wrap .mec-event-grid-modern > article .mec-booking-button { margin-top: auto !important; }
/* Hide the chunky LIMITED SPOTS / SOLD OUT label on the card if it clashes */
.mec-wrap .mec-event-cost,
.mec-wrap .mec-event-tickets { font-size: 12px !important; letter-spacing: 0.18em !important; text-transform: uppercase !important; }

/* --- MEC shortcode buttons: ensure visible contrast + centred text --- */
.mec-booking-button,
a.mec-booking-button,
.mec-wrap .mec-booking-button,
.mec-event-list-modern .mec-booking-button,
.mec-wrap .mec-event-button,
.mec-wrap a.mec-event-button,
.mec-event-list-modern .mec-event-button,
.mec-event-grid-modern .mec-event-button,
.mec-events-button,
.mec-events-button-bordered,
.mec-event-sharing a {
    background-color: var(--terracotta-text, #9a4827) !important;
    color: var(--paper, #f5efe4) !important;
    border: 1px solid var(--terracotta-text, #9a4827) !important;
    border-radius: 0 !important;
    padding: 14px 24px !important;
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    text-align: center !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 500 !important;
    font-size: 13px !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
}
.mec-booking-button:hover,
.mec-wrap .mec-booking-button:hover,
.mec-wrap .mec-event-button:hover,
.mec-wrap a.mec-event-button:hover,
.mec-event-list-modern .mec-event-button:hover,
.mec-event-grid-modern .mec-event-button:hover,
.mec-events-button:hover,
.mec-events-button-bordered:hover {
    background-color: var(--olive-deep, #3d4a2a) !important;
    color: var(--paper, #f5efe4) !important;
    border-color: var(--olive-deep, #3d4a2a) !important;
}

/* MEC "Book Event" / "Book Now" CTAs */
.mec-wrap .mec-book-form-button,
.mec-event-content .mec-book-form-button,
.mec-booking-form .mec-book-form-button {
    background-color: var(--terracotta-text, #9a4827) !important;
    color: #fff !important;
    border: 1px solid var(--terracotta-text, #9a4827) !important;
}

/* MEC list/grid card titles + meta — ensure readable on backgrounds */
.mec-wrap .mec-event-title a,
.mec-single-title {
    color: var(--olive-deep, #3d4a2a) !important;
}
.mec-event-meta,
.mec-event-meta a,
.mec-event-list-meta {
    color: var(--ink, #2a1f15) !important;
}

/* --- Dark/olive surfaces: enforce light text + visible accent --- */
.surface-olive,
.surface-olive-deep,
section.surface-full,
[style*="background:var(--olive-deep"],
[style*="background: var(--olive-deep"],
[style*="background:#3d4a2a"],
[style*="background: #3d4a2a"] {
    color: var(--paper, #f5efe4);
}
.surface-olive *:not(em):not(a),
.surface-olive-deep *:not(em):not(a),
section.surface-full *:not(em):not(a) {
    color: var(--paper, #f5efe4) !important;
}
.surface-olive em,
.surface-olive-deep em,
section.surface-full em,
[style*="background:var(--olive-deep"] em,
[style*="background:#3d4a2a"] em {
    color: var(--terracotta, #b85c38) !important;
    font-style: italic;
}
.surface-olive a:not(.btn-primary):not(.btn-secondary):not(.wp-block-button__link),
.surface-olive-deep a:not(.btn-primary):not(.btn-secondary):not(.wp-block-button__link),
section.surface-full a:not(.btn-primary):not(.btn-secondary):not(.wp-block-button__link) {
    color: var(--terracotta, #b85c38) !important;
    text-decoration: underline;
}

/* --- Terracotta surfaces: enforce paper text + olive accent (not orange-on-orange) --- */
.surface-terracotta,
[style*="background:var(--terracotta-text"],
[style*="background: var(--terracotta-text"],
[style*="background:#9a4827"],
[style*="background: #9a4827"] {
    color: var(--paper, #f5efe4);
}
.surface-terracotta *:not(em):not(a),
[style*="background:#9a4827"] *:not(em):not(a) {
    color: var(--paper, #f5efe4) !important;
}
.surface-terracotta em,
[style*="background:#9a4827"] em {
    color: var(--olive-deep, #3d4a2a) !important;
}

/* --- "Book the X class" CTA — force terracotta bg with paper text always --- */
.ffw-class-cta a.btn-primary,
.class-cta a.btn-primary,
.book-class-cta a,
a.btn-primary[href*="rezdy"],
.cta-strip .btn-primary,
section.cta-strip a {
    background: var(--terracotta-text, #9a4827) !important;
    color: var(--paper, #f5efe4) !important;
    border: 1px solid var(--terracotta-text, #9a4827) !important;
}

/* --- Footer images — many were 404'ing because they used live-site URLs --- */
.site-footer img,
footer.site-footer img,
.ffw-footer img {
    max-width: 100%;
    height: auto;
    display: block;
}
.site-footer img[src*="fleurieufoodandwine.com.au"]:not([src*=".local"]) {
    /* Substitute live-site image refs with a graceful placeholder so the
       footer doesn't show broken-image icons during local development. */
    visibility: hidden;
}

/* --- Sectional surface fallbacks if inline-style backgrounds collide with text colour --- */
[style*="background:var(--olive)"] h1,
[style*="background:var(--olive)"] h2,
[style*="background:var(--olive)"] h3,
[style*="background:var(--olive-deep)"] h1,
[style*="background:var(--olive-deep)"] h2,
[style*="background:var(--olive-deep)"] h3 {
    color: var(--paper, #f5efe4) !important;
}
[style*="background:var(--olive)"] h1 em,
[style*="background:var(--olive)"] h2 em,
[style*="background:var(--olive-deep)"] h1 em,
[style*="background:var(--olive-deep)"] h2 em {
    color: var(--terracotta, #b85c38) !important;
}

/* ===========================================================
   AUTO TYPOGRAPHY for editorial pages that DON'T ship a custom hero.
   Lifts plain Gutenberg pages (classes/, cheese-making/, terms-and-conditions/,
   adelaide_cooking_school/, jackie-mazzocato/, etc.) to Editorial Earth
   typography without rewriting content. Modern :has() selector means pages
   WITH a custom <section class="hero"> keep their existing design unchanged.
   =========================================================== */
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) {
    background: var(--paper, #f5efe4);
    color: var(--ink, #2a1f15);
    padding: 0 0 96px;
}
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) > .entry-content,
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) > article,
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) {
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 6vw;
    padding-right: 6vw;
}

/* Page-title bar — appears at top, mimics our custom hero pattern */
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero))::before {
    content: "";
    display: block;
    height: 16px;
}

/* Headings */
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) h1 {
    font-family: 'Fraunces', serif !important;
    font-weight: 300 !important;
    color: var(--olive-deep, #3d4a2a) !important;
    font-size: clamp(36px, 5vw, 56px) !important;
    line-height: 1.1 !important;
    letter-spacing: -0.015em !important;
    margin: 48px 0 24px !important;
    text-align: left;
}
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) h2 {
    font-family: 'Fraunces', serif !important;
    font-weight: 400 !important;
    color: var(--olive-deep, #3d4a2a) !important;
    font-size: clamp(26px, 3.2vw, 36px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.012em !important;
    margin: 48px 0 16px !important;
}
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) h3 {
    font-family: 'Fraunces', serif !important;
    font-weight: 500 !important;
    color: var(--olive-deep, #3d4a2a) !important;
    font-size: clamp(20px, 2.4vw, 24px) !important;
    line-height: 1.3 !important;
    margin: 32px 0 12px !important;
}
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) h1 em,
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) h2 em,
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) h3 em {
    font-style: italic;
    font-weight: 400;
    color: var(--terracotta, #b85c38);
}

/* Body copy */
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) p,
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) li {
    font-family: 'Fraunces', serif;
    font-size: 17px;
    line-height: 1.65;
    color: var(--ink, #2a1f15);
}
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) p { margin: 0 0 18px; }
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) a {
    color: var(--terracotta-text, #9a4827);
    text-decoration: underline;
    text-underline-offset: 2px;
}
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) a:hover {
    color: var(--olive-deep, #3d4a2a);
}

/* Gutenberg buttons */
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) .wp-block-button__link {
    background: var(--terracotta-text, #9a4827) !important;
    color: var(--paper, #f5efe4) !important;
    border: 1px solid var(--terracotta-text, #9a4827) !important;
    border-radius: 0 !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 500 !important;
    font-size: 12px !important;
    letter-spacing: 0.24em !important;
    text-transform: uppercase !important;
    padding: 14px 28px !important;
    min-height: 44px !important;
    text-decoration: none !important;
}
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) .wp-block-button__link:hover {
    background: var(--olive-deep, #3d4a2a) !important;
    border-color: var(--olive-deep, #3d4a2a) !important;
}
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) .wp-block-button.is-style-outline .wp-block-button__link {
    background: transparent !important;
    color: var(--terracotta-text, #9a4827) !important;
    border: 1px solid var(--terracotta-text, #9a4827) !important;
}
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) .wp-block-button.is-style-outline .wp-block-button__link:hover {
    background: var(--terracotta-text, #9a4827) !important;
    color: var(--paper, #f5efe4) !important;
}

/* Lists */
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) ul,
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) ol {
    padding-left: 24px;
    margin: 0 0 24px;
}
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) ul li,
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) ol li {
    margin: 0 0 10px;
}

/* Recipe Maker / single post — gentle styling without overriding plugin chrome */
body.single-post #main h1.entry-title,
body.single-post #main .wprm-recipe-name {
    font-family: 'Fraunces', serif !important;
    font-weight: 300 !important;
    color: var(--olive-deep, #3d4a2a) !important;
}
body.single-post #main h1.entry-title em,
body.single-post #main h2 em {
    color: var(--terracotta, #b85c38);
    font-style: italic;
}

/* Details/summary (FAQ patterns inside plain Gutenberg pages) */
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) details.wp-block-details {
    background: var(--paper-warm, #ede4d2);
    border-left: 3px solid var(--terracotta-text, #9a4827);
    padding: 18px 22px;
    margin: 0 0 12px;
}
body.editorial-page #main:not(:has(.hero)):not(:has(.class-hero)):not(:has(.ffw-venue-class-row)):not(:has(.page-hero)) details.wp-block-details summary {
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    cursor: pointer;
    color: var(--olive-deep, #3d4a2a);
}

/* ===========================================================
   CRITICAL: restore the Kadence header on editorial pages.
   The parent style.css hides body.editorial-page #masthead, expecting
   each editorial page to ship its own header. They do not — so we
   un-hide the Kadence header (which now carries the About + Shop
   dropdowns) and hide Kadence's "Entry Hero" page-title bar instead,
   since every Editorial Earth page already contains its own hero
   section with the H1.
   =========================================================== */
body.editorial-page #masthead,
body.editorial-page > header#masthead,
body.editorial-page header.site-header { display: block !important; }
body.editorial-page #masthead .site-header-inner-wrap,
body.editorial-page #masthead .site-container,
body.editorial-page #masthead .site-header-row-container,
body.editorial-page #masthead .site-header-row-container-inner,
body.editorial-page #masthead .site-header-main-section,
body.editorial-page #masthead .site-header-row { display: revert !important; }

/* Hide Kadence's auto page-title bar — the page content carries its own H1 */
body.editorial-page .entry-hero,
body.editorial-page .entry-hero.page-hero-section,
body.editorial-page .page-hero-section { display: none !important; }

/* ===========================================================
   Main-nav DROPDOWN (Audit A6 follow-up)
   The theme already styles .nav-list, .nav-list > li, .nav-list > li > a
   (style.css lines 214-265) and hides .nav-list on mobile so the drawer
   takes over. We DO NOT touch any of those rules — we only add the missing
   .sub-menu positioning + reveal + the caret indicator on parents.
   =========================================================== */
.site-header .nav-list li.menu-item-has-children > a::after {
    content: "";
    display: inline-block;
    width: 0; height: 0;
    margin-left: 6px;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 4px solid currentColor;
    transition: transform 200ms ease;
    vertical-align: middle;
}
.site-header .nav-list li.menu-item-has-children:hover > a::after,
.site-header .nav-list li.menu-item-has-children:focus-within > a::after,
.site-header .nav-list li.menu-item-has-children.is-open > a::after { transform: rotate(180deg); }

.site-header .nav-list .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 240px;
    list-style: none;
    margin: 0;
    padding: 8px 0;
    background: var(--paper, #f5efe4);
    border: 1px solid var(--rule, rgba(42,31,21,0.32));
    border-top: 3px solid var(--terracotta-text, #9a4827);
    box-shadow: 0 8px 24px rgba(42,31,21,0.12);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: opacity 180ms ease, transform 180ms ease, visibility 180ms;
    z-index: 100;
}
.site-header .nav-list li.menu-item-has-children:hover > .sub-menu,
.site-header .nav-list li.menu-item-has-children:focus-within > .sub-menu,
.site-header .nav-list li.menu-item-has-children.is-open > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.site-header .nav-list .sub-menu li { display: block; margin: 0; }
.site-header .nav-list .sub-menu a {
    display: block;
    padding: 10px 20px;
    min-height: 44px;
    line-height: 1.4;
    text-decoration: none;
    color: var(--ink, #2a1f15);
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 400;
    background: transparent;
    transition: background 150ms ease, color 150ms ease;
}
.site-header .nav-list .sub-menu a:hover,
.site-header .nav-list .sub-menu a:focus {
    background: var(--paper-warm, #ede4d2);
    color: var(--terracotta-text, #9a4827);
    outline: none;
}
.site-header .nav-list .sub-menu a:focus-visible { outline: 2px solid var(--terracotta, #b85c38); outline-offset: -2px; }