/* mf-css-bundle 12 files, key b073ae27a933340eff65 */

/* --- mealfan-v3-mfv3-defensive-css.css --- */
/* Hide anything that looks like a header/nav/footer not from V3.
   V3's chrome is .mf-header / .mf-footer / .mf-deal-bar / .mf-nav. */
body.mf-v3 > header:not(.mf-header):not(.mf-deal-bar),
body.mf-v3 > footer:not(.mf-footer),
body.mf-v3 > nav:not(.mf-nav),
body.mf-v3 > .header,
body.mf-v3 > #header,
body.mf-v3 > .site-header,
body.mf-v3 > #site-header,
body.mf-v3 > #masthead,
body.mf-v3 > .mobile-menu,
body.mf-v3 > #mobMenu,
body.mf-v3 > .footer:not(.mf-footer),
body.mf-v3 > #footer,
body.mf-v3 > #colophon,
body.mf-v3 .mf-main > header:not(.mf-header),
body.mf-v3 .mf-main > .header,
body.mf-v3 .mf-main > #header,
body.mf-v3 .mf-main > .site-header,
body.mf-v3 .mf-main > #masthead,
body.mf-v3 .mf-main > .mobile-menu,
body.mf-v3 .mf-main > #mobMenu,
body.mf-v3 .mf-main > footer:not(.mf-footer),
/* Any nested doctype/html/body that the parent theme's header.php tried to inject. */
body.mf-v3 body,
body.mf-v3 html { display: none !important; }


/* --- quiz-cta-mealfan-quiz-compact-css.css --- */
.mfq-compact-outer.mfq-compact-injected { display: block !important; }
    .mfq-compact { max-width: 900px; margin: 48px auto; padding: 0 16px; box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
    .mfq-compact * { box-sizing: border-box; }
    .mfq-compact__inner { display: grid; grid-template-columns: 1.3fr 0.7fr; gap: 32px; align-items: center; padding: 32px 36px; border-radius: 20px; background: linear-gradient(135deg, #1a2332 0%, #2a3a52 100%); color: #fff; box-shadow: 0 12px 40px rgba(0,0,0,0.12); position: relative; overflow: hidden; }
    .mfq-compact__inner::before { content: ''; position: absolute; top: -40%; right: -10%; width: 280px; height: 280px; background: radial-gradient(circle, rgba(212,118,78,0.25) 0%, transparent 70%); pointer-events: none; }
    .mfq-compact__content { position: relative; z-index: 1; }
    .mfq-compact__eyebrow { display: inline-block; font-size: 11px; letter-spacing: 2px; color: #d4764e; font-weight: 700; margin-bottom: 12px; text-transform: uppercase; }
    .mfq-compact__headline { font-family: "Playfair Display", Georgia, serif; font-size: 26px; line-height: 1.2; font-weight: 500; color: #fff !important; margin: 0 0 10px 0 !important; }
    .mfq-compact__sub { font-size: 15px; line-height: 1.55; color: rgba(255,255,255,0.82) !important; margin: 0 !important; }
    .mfq-compact__action { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
    .mfq-compact__btn { display: inline-flex; align-items: center; gap: 8px; background: #d4764e; color: #fff !important; padding: 16px 28px; border-radius: 999px; font-size: 15px; font-weight: 600; letter-spacing: 0.3px; text-decoration: none !important; transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease; white-space: nowrap; }
    .mfq-compact__btn:hover { transform: translateY(-1px); box-shadow: 0 8px 24px rgba(212,118,78,0.45); background: #e08357; color: #fff !important; }
    .mfq-compact__btn-arrow { font-size: 18px; line-height: 1; transition: transform 0.15s ease; }
    .mfq-compact__btn:hover .mfq-compact__btn-arrow { transform: translateX(3px); }
    .mfq-compact__micro { font-size: 11px; color: rgba(255,255,255,0.55); letter-spacing: 0.5px; }
    @media (max-width: 720px) {
        .mfq-compact { margin: 32px auto; padding: 0 12px; }
        .mfq-compact__inner { grid-template-columns: 1fr; gap: 20px; padding: 24px 22px; border-radius: 16px; text-align: center; }
        .mfq-compact__headline { font-size: 22px; }
        .mfq-compact__sub { font-size: 14px; }
        .mfq-compact__action { align-items: center; }
        .mfq-compact__btn { padding: 14px 24px; font-size: 14px; }
    }


/* --- gf-e3834567683dc9c1aa94d435e3e7947e.css --- */
/* latin-ext */
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/dmmono/v16/aFTU7PB1QTsUX8KYthSQBLyM.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/dmmono/v16/aFTU7PB1QTsUX8KYthqQBA.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/dmmono/v16/aFTR7PB1QTsUX8KYvumzEY2tbZX9.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/dmmono/v16/aFTR7PB1QTsUX8KYvumzEYOtbQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKeiunDTbtPY_Q.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKeiunDYbtPY_Q.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKeiunDZbtPY_Q.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKeiunDXbtM.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* --- gf-e3834567683dc9c1aa94d435e3e7947e.css --- */
/* latin-ext */
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/dmmono/v16/aFTU7PB1QTsUX8KYthSQBLyM.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/dmmono/v16/aFTU7PB1QTsUX8KYthqQBA.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/dmmono/v16/aFTR7PB1QTsUX8KYvumzEY2tbZX9.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/dmmono/v16/aFTR7PB1QTsUX8KYvumzEYOtbQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKeiunDTbtPY_Q.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKeiunDYbtPY_Q.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKeiunDZbtPY_Q.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKeiunDXbtM.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* --- mf-review-menu-fab-v4-b0.css --- */
/* Hide v3 FAB */
#mf-fab2{display:none!important}
/* v4 FAB */
#mf-fab4{position:fixed;right:18px;bottom:18px;z-index:9998;display:flex;flex-direction:column;align-items:flex-end;gap:10px;}
#mf-fab4 a{display:inline-flex;align-items:center;gap:8px;font:700 14px/1 system-ui,-apple-system,"Segoe UI",sans-serif;padding:12px 16px;border-radius:999px;text-decoration:none;box-shadow:0 6px 20px rgba(28,33,56,.28);transition:transform .12s;}
#mf-fab4 a:hover{transform:translateY(-2px);}
#mf-fab4 .mf-fab-rev{background:#e5541b;color:#fff;}
#mf-fab4 .mf-fab-menu{background:#1a2332;color:#fff;}
#mf-fab4 svg{width:16px;height:16px;flex:none;}
#mf-fab4 .x{margin-left:2px;opacity:.75;font-weight:400;font-size:16px;cursor:pointer;line-height:1;}
@media(max-width:600px){#mf-fab4 .lbl{display:none;}#mf-fab4 a{padding:14px;}#mf-fab4{right:14px;bottom:14px;}}


/* --- mtbx-head-20260720.css --- */
#mtbx-hint{display:none;margin:7px 2px 0;font-size:13px;font-weight:700;color:#e59b9b;text-align:left;letter-spacing:.2px}
#mtbx-hint.on{display:block}
.mtbconf{position:fixed;top:-14px;width:9px;height:14px;z-index:2147483000;pointer-events:none;animation:mtbfall linear forwards;border-radius:2px}
@keyframes mtbfall{to{transform:translateY(110vh) rotate(720deg);opacity:.9}}
/* v3 inline sticky capture bar (replaces the click-to-open teaser) */
.mftb-bar{position:sticky!important;top:0;z-index:99990;background:#1a2332!important;color:#fff!important;padding:0!important;margin:0!important;border:0!important;box-shadow:0 2px 10px rgba(0,0,0,.18)}
.mftb-inline{display:flex;align-items:center;justify-content:center;gap:12px 16px;max-width:1060px;margin:0 auto;padding:9px 16px;flex-wrap:wrap;font-family:inherit}
.mftb-offer{font-size:14.5px;font-weight:600;color:#fff;letter-spacing:.1px}
.mftb-offer strong{color:#f0a882}
.mftb-offer em{font-style:normal;color:#aeb7c6;font-weight:500;font-size:13px}
.mftb-fields{display:flex;gap:8px;position:relative}
.mf-deal-bar{cursor:pointer}
.mf-deal-bar .mftb-fields{display:none!important}
.mf-deal-bar .mftb-claim{margin-left:12px;background:#e0895f;color:#1a2332;border:0;font-weight:800;font-size:12px;letter-spacing:.5px;padding:5px 14px;border-radius:999px;cursor:pointer;text-transform:uppercase;animation:mftbPulse 2s ease-in-out infinite}
.mf-deal-bar .mftb-claim:hover{background:#f0a882}
@keyframes mftbPulse{0%{box-shadow:0 0 0 0 rgba(224,137,95,.65);transform:scale(1)}50%{box-shadow:0 0 0 9px rgba(224,137,95,0);transform:scale(1.06)}100%{box-shadow:0 0 0 0 rgba(224,137,95,0);transform:scale(1)}}
.mf-deal-bar .mftb-claim.mftb-clicked{animation:mftbPress .5s cubic-bezier(.34,1.56,.64,1)}
@keyframes mftbPress{0%{transform:scale(1)}30%{transform:scale(.82);background:#f0a882}60%{transform:scale(1.14);box-shadow:0 0 0 10px rgba(224,137,95,.001),0 0 18px rgba(240,168,130,.9)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.mf-deal-bar .mftb-claim,.mf-deal-bar .mftb-claim.mftb-clicked{animation:none}}
.mftb-suggest{position:absolute;top:100%;left:0;right:0;margin-top:6px;background:#fff;color:#1a2332;border-radius:10px;padding:9px 13px;font-size:13px;font-weight:600;box-shadow:0 10px 26px rgba(0,0,0,.28);cursor:pointer;z-index:100001;display:none;text-align:left;line-height:1.35}
.mftb-suggest.on{display:block}
.mftb-suggest b{color:#c0603a}
.mftb-email{border:1.5px solid #47536b;background:#fff;color:#111;border-radius:999px;padding:9px 16px;font-size:14px;width:212px;outline:none;font-weight:600}
.mftb-email::placeholder{color:#9aa0aa;font-weight:500}
.mftb-email:focus{border-color:#d4764e;box-shadow:0 0 0 3px rgba(212,118,78,.28)}
.mftb-btn{border:0;background:linear-gradient(135deg,#d4764e,#c06840);color:#fff;border-radius:999px;padding:9px 20px;font-weight:800;font-size:14px;cursor:pointer;white-space:nowrap;transition:transform .12s,box-shadow .12s;box-shadow:0 4px 12px rgba(212,118,78,.3)}
.mftb-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(212,118,78,.42)}
@media(max-width:640px){.mftb-offer em{display:none}.mftb-offer{font-size:13px;flex-basis:100%;text-align:center}.mftb-inline{gap:8px;padding:8px 10px}.mftb-fields{flex:1;max-width:360px}.mftb-email{width:0;flex:1;min-width:110px}.mftb-btn{padding:9px 14px}}
.mf-okhint{display:none;margin:6px 2px 0;font-size:12.5px;font-weight:700;color:#2e9e57;text-align:left}
.mf-okhint.on{display:block}
@media(hover:none){button:not([disabled]){transition:transform .1s}button:not([disabled]):active{transform:scale(.96)}}


/* --- mtbx-modal-20260720.css --- */
#mtbx-ov{position:fixed;inset:0;background:rgba(20,16,8,.55);z-index:99998;display:none;opacity:0;transition:opacity .25s}
#mtbx-ov.on{display:block;opacity:1}
#mtbx{position:fixed;top:50%;left:50%;transform:translate(-50%,-46%) scale(.96);z-index:99999;display:none;opacity:0;
 width:min(640px,94vw);border-radius:20px;background:#fff;border:2px solid #d96b3f;
 box-shadow:0 24px 64px rgba(60,30,5,.28);transition:opacity .25s,transform .25s;font-family:inherit;text-align:left}
#mtbx.on{display:block;opacity:1;transform:translate(-50%,-50%) scale(1)}
#mtbx-badge{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);background:#d96b3f;color:#fff;
 font-weight:800;font-size:12.5px;letter-spacing:.08em;padding:8px 20px;border-radius:999px;z-index:2;
 box-shadow:0 4px 12px rgba(217,107,63,.35);white-space:nowrap}
#mtbx-x{position:absolute;top:12px;right:14px;border:0;background:#f6efe4;width:32px;height:32px;border-radius:50%;
 font-size:18px;line-height:1;color:#8a7f68;cursor:pointer;z-index:2}
#mtbx-flex{display:flex;align-items:stretch;border-radius:18px;overflow:hidden}
#mtbx-left{flex:0 0 44%;background:#faf3e7;display:flex;flex-direction:column;justify-content:center;padding:26px 0 26px 26px}
#mtbx-frame{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:1/1.06;background:#fff;
 box-shadow:0 8px 22px rgba(60,30,5,.14)}
#mtbx-pic{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
#mtbx-cap{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(17,12,6,.78));
 color:#fff;font-size:12px;font-weight:700;padding:26px 12px 10px;line-height:1.4;text-align:center}
#mtbx-body{flex:1;padding:38px 30px 26px;display:flex;flex-direction:column;justify-content:center}
#mtbx-kick{color:#d96b3f;font-weight:800;font-size:13.5px;letter-spacing:.05em;text-transform:uppercase;margin:0 0 10px}
#mtbx h3{margin:0;font-size:52px;line-height:.95;color:#111;font-weight:900;letter-spacing:-.02em}
#mtbx-sub{margin:8px 0 0;font-size:18px;font-weight:700;color:#111}
#mtbx-plus{margin:2px 0 16px;font-size:14.5px;color:#6b6355}
#mtbx-steps{display:flex;align-items:center;margin:0 0 14px}
#mtbx-steps .st{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:#9a8d7b}
#mtbx-steps .st .n{width:22px;height:22px;border-radius:50%;background:#efe6d8;color:#9a8d7b;display:flex;
 align-items:center;justify-content:center;font-size:12px;font-weight:800;transition:all .35s}
#mtbx-steps .st.active{color:#d96b3f}
#mtbx-steps .st.active .n{background:#d96b3f;color:#fff}
#mtbx.done #mtbx-steps .st{color:#2e9e57}
#mtbx.done #mtbx-steps .st .n{background:#2e9e57;color:#fff}
#mtbx-steps .track{flex:1;height:2px;background:#efe6d8;margin:0 10px;position:relative;min-width:28px}
#mtbx-steps .track i{position:absolute;inset:0;background:#2e9e57;transform:scaleX(0);transform-origin:left;transition:transform .5s;display:block}
#mtbx.done #mtbx-steps .track i{transform:scaleX(1)}
#mtbx-inwrap{position:relative}
#mtbx-in{width:100%;box-sizing:border-box;padding:15px 44px 15px 16px;font-size:16.5px;border:2px solid #e5dccb;border-radius:12px;
 outline:none;background:#fff;transition:border-color .3s,box-shadow .3s;text-align:center;font-weight:600;color:#111}
#mtbx-in::placeholder{color:#b9ad99;font-weight:500}
#mtbx-in:focus{border-color:#d96b3f;box-shadow:0 0 0 4px rgba(217,107,63,.12)}
#mtbx.ok #mtbx-in{border-color:#2e9e57;box-shadow:0 0 0 4px rgba(46,158,87,.12);background:#f2fbf5}
#mtbx.bad #mtbx-in{border-color:#d64545;box-shadow:0 0 0 4px rgba(214,69,69,.12);background:#ffe4ec}
#mtbx-in.key{animation:mtbxKey .3s ease-out}
@keyframes mtbxKey{0%{box-shadow:0 0 0 3px rgba(217,107,63,.25)}100%{box-shadow:0 0 0 10px rgba(217,107,63,0)}}
#mtbx-check{position:absolute;right:13px;top:50%;width:22px;height:22px;border-radius:50%;background:#2e9e57;
 display:flex;align-items:center;justify-content:center;transform:translateY(-50%) scale(0);transition:transform .35s cubic-bezier(.34,1.7,.5,1)}
#mtbx.ok #mtbx-check{transform:translateY(-50%) scale(1)}
#mtbx-check svg{width:12px;height:12px}
#mtbx-prog{height:4px;border-radius:99px;background:#f1e7d8;margin-top:8px;overflow:hidden}
#mtbx-prog i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,#d96b3f,#e8a13f,#9ec44f,#2e9e57);
 background-size:400px 100%;transition:width .35s cubic-bezier(.4,0,.2,1)}
#mtbx.done #mtbx-prog{display:none}
#mtbx.ok #mtbx-btn{position:relative;overflow:hidden}
#mtbx.ok #mtbx-btn::after{content:'';position:absolute;top:0;left:-80%;width:60%;height:100%;
 background:linear-gradient(105deg,transparent,rgba(255,255,255,.45),transparent);animation:mtbxShine 1.4s ease .15s 2}
@keyframes mtbxShine{to{left:130%}}
.mtbx-cf{position:absolute;width:8px;height:12px;border-radius:2px;pointer-events:none;z-index:3;
 animation:mtbxFall 1.1s cubic-bezier(.3,.6,.4,1) forwards}
@keyframes mtbxFall{0%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(var(--dx),110px) rotate(var(--rot))}}
#mtbx.done #mtbx-code{animation:mtbxReveal .6s cubic-bezier(.34,1.4,.5,1);cursor:pointer}
@keyframes mtbxReveal{0%{transform:scale(.85);letter-spacing:.3em;opacity:0}100%{transform:scale(1);letter-spacing:.06em;opacity:1}}
#mtbx-btn{width:100%;margin-top:12px;padding:16px;font-size:18px;font-weight:800;border:0;border-radius:12px;
 background:#f1e7d8;color:#b3a288;cursor:not-allowed;transition:all .35s}
#mtbx.ok #mtbx-btn{background:#d96b3f;color:#fff;cursor:pointer;box-shadow:0 8px 20px rgba(217,107,63,.35)}
#mtbx.ok #mtbx-btn:hover{background:#c05a30}
#mtbx-code{display:none;margin:0;padding:15px;border:2px solid #2e9e57;border-radius:12px;text-align:center;
 font-size:21px;font-weight:800;letter-spacing:.06em;color:#166b33;background:#f2fbf5}
#mtbx-code small{display:block;font-size:11px;font-weight:700;letter-spacing:.1em;color:#5aa877;margin-bottom:2px}
#mtbx.done #mtbx-code{display:block}
#mtbx.done #mtbx-in,#mtbx.done #mtbx-btn{display:none}
#mtbx-go{display:none;margin-top:12px;padding:16px;font-size:18px;font-weight:800;border-radius:12px;text-align:center;
 background:#d96b3f;color:#fff!important;text-decoration:none;box-shadow:0 8px 20px rgba(217,107,63,.35)}
#mtbx.done #mtbx-go{display:block}
#mtbx-fine{margin:12px 0 0;font-size:12.5px;color:#a99c86;text-align:center;font-weight:600}
@media(max-width:600px){#mtbx-left{display:none}#mtbx-body{padding:42px 22px 22px}#mtbx h3{font-size:40px}}
#mtbx-inwrap .mfw-email-ac{position:absolute;left:0;right:0;top:100%;margin-top:5px;background:#fff;border:1.5px solid #e5dccb;border-radius:12px;box-shadow:0 10px 24px rgba(60,30,5,.16);z-index:100000;overflow:hidden;display:none;text-align:left}
#mtbx-inwrap .mfw-email-ac.show{display:block}
#mtbx-inwrap .mfw-email-ac.mfw-ac-up{top:auto;bottom:100%;margin-top:0;margin-bottom:5px}
#mtbx-inwrap .mfw-ac-opt{padding:13px 16px;min-height:44px;box-sizing:border-box;display:flex;align-items:center;font-size:16px;color:#111;cursor:pointer;font-weight:600}
#mtbx-inwrap .mfw-ac-opt b{color:#a8502e;font-weight:700}
#mtbx-inwrap .mfw-ac-opt:hover,#mtbx-inwrap .mfw-ac-opt.hl{background:#faf3e7}
#mtbx-inwrap .mfw-ac-opt+.mfw-ac-opt{border-top:1px solid #f3ede3}
#mtbx.done .mfw-email-ac{display:none!important}


/* --- mf-footopt-20260720.css --- */
.mf-footopt{background:#faf8f4;border-top:1px solid #e8e0d2;padding:38px 20px}
.mf-footopt-in{max-width:640px;margin:0 auto;text-align:center;background:#fff;border:2px solid #e8e0d2;border-radius:20px;padding:28px 24px;box-shadow:0 10px 30px rgba(26,35,50,.08)}
.mf-footopt h4{font-size:21px;margin:0 0 6px;color:#1a2332!important;font-weight:800}
.mf-footopt p{margin:0 0 16px;font-size:14px;color:#5a6472!important}
.mf-footopt p strong{color:#c0603a}
.mf-footopt-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.mf-footopt-email{flex:1;min-width:220px;max-width:320px;border:1.5px solid #ddd4c8;background:#fff;color:#111;border-radius:999px;padding:12px 18px;font-size:15px;outline:none;font-weight:600}
.mf-footopt-email::placeholder{color:#9aa0aa;font-weight:500}
.mf-footopt-email:focus{border-color:#d4764e;box-shadow:0 0 0 3px rgba(212,118,78,.28)}
.mf-footopt-email.bad{border-color:#d64545!important;background:#ffe4ec;box-shadow:0 0 0 3px rgba(214,69,69,.15)!important}
.mf-footopt-email.ok{border-color:#2e9e57!important;background:#f2fbf5;box-shadow:0 0 0 3px rgba(46,158,87,.15)!important}
.mf-footopt-btn{border:0;background:#f1e7d8;color:#b3a288;border-radius:999px;padding:12px 24px;font-weight:800;font-size:15px;cursor:not-allowed;white-space:nowrap;transition:background .3s,color .3s,box-shadow .3s}
.mf-footopt-btn.on{background:linear-gradient(135deg,#d4764e,#c06840);color:#fff;cursor:pointer;box-shadow:0 4px 12px rgba(212,118,78,.3);animation:mfFootPulse 1.5s ease-in-out infinite}
@keyframes mfFootPulse{0%{box-shadow:0 0 0 0 rgba(212,118,78,.5)}50%{box-shadow:0 0 0 9px rgba(212,118,78,0)}100%{box-shadow:0 0 0 0 rgba(212,118,78,0)}}
@media(prefers-reduced-motion:reduce){.mf-footopt-btn.on{animation:none}}
.mf-footopt-chips{display:none;gap:8px;flex-wrap:wrap;justify-content:center;flex-basis:100%;margin-top:4px}
.mf-footopt-chips.on{display:flex}
.mf-footopt-chip{border:1.5px solid #ddd4c8;background:#fff;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:700;color:#1a2332;cursor:pointer}
.mf-footopt-chip:hover{background:#faf3e7}
.mf-footopt .mf-okhint{text-align:center}
.mf-footopt-done{font-size:16px;font-weight:700;color:#166b33}


/* --- mfnx-20260720.css --- */
#mfnx-ov{position:fixed;inset:0;background:rgba(20,16,8,.55);z-index:99998;display:none;opacity:0;transition:opacity .25s}
#mfnx-ov.on{display:block;opacity:1}
#mfnx{position:fixed;top:50%;left:50%;transform:translate(-50%,-46%) scale(.96);z-index:99999;display:none;opacity:0;
 width:min(640px,94vw);border-radius:20px;background:#fff;border:2px solid #d96b3f;
 box-shadow:0 24px 64px rgba(60,30,5,.28);transition:opacity .25s,transform .25s;font-family:inherit;text-align:left}
#mfnx.on{display:block;opacity:1;transform:translate(-50%,-50%) scale(1)}
#mfnx-badge{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);background:#d96b3f;color:#fff;
 font-weight:800;font-size:12.5px;letter-spacing:.08em;padding:8px 20px;border-radius:999px;z-index:2;
 box-shadow:0 4px 12px rgba(217,107,63,.35);white-space:nowrap}
#mfnx-x{position:absolute;top:8px;right:10px;border:0;background:#f6efe4;width:44px;height:44px;border-radius:50%;
 display:flex;align-items:center;justify-content:center;font-size:20px;line-height:1;color:#736955;cursor:pointer;z-index:2}
#mfnx-x:hover{background:#ecdfcd;color:#312b22}
#mfnx-x:focus-visible{outline:3px solid #2e6fb0;outline-offset:3px}
#mfnx-flex{display:flex;align-items:stretch;border-radius:18px;overflow:hidden}
#mfnx-left{flex:0 0 44%;background:#faf3e7;display:flex;flex-direction:column;justify-content:center;padding:26px 0 26px 26px}
#mfnx-frame{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:1/1.06;background:#fff;
 box-shadow:0 8px 22px rgba(60,30,5,.14)}
#mfnx-pic{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
#mfnx-cap{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(17,12,6,.78));
 color:#fff;font-size:12px;font-weight:700;padding:26px 12px 10px;line-height:1.4;text-align:center}
#mfnx-body{flex:1;padding:38px 30px 26px;display:flex;flex-direction:column;justify-content:center}
#mfnx-kick{color:#d96b3f;font-weight:800;font-size:13.5px;letter-spacing:.05em;text-transform:uppercase;margin:0 0 10px}
#mfnx h3{margin:0;font-size:52px;line-height:.95;color:#111;font-weight:900;letter-spacing:-.02em}
#mfnx-sub{margin:8px 0 0;font-size:18px;font-weight:700;color:#111}
#mfnx-plus{margin:2px 0 16px;font-size:14.5px;color:#6b6355}
#mfnx-steps{display:flex;align-items:center;margin:0 0 14px}
#mfnx-steps .st{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:#9a8d7b}
#mfnx-steps .st .n{width:22px;height:22px;border-radius:50%;background:#efe6d8;color:#9a8d7b;display:flex;
 align-items:center;justify-content:center;font-size:12px;font-weight:800;transition:all .35s}
#mfnx-steps .st.active{color:#d96b3f}
#mfnx-steps .st.active .n{background:#d96b3f;color:#fff}
#mfnx.done #mfnx-steps .st{color:#2e9e57}
#mfnx.done #mfnx-steps .st .n{background:#2e9e57;color:#fff}
#mfnx-steps .track{flex:1;height:2px;background:#efe6d8;margin:0 10px;position:relative;min-width:28px}
#mfnx-steps .track i{position:absolute;inset:0;background:#2e9e57;transform:scaleX(0);transform-origin:left;transition:transform .5s;display:block}
#mfnx.done #mfnx-steps .track i{transform:scaleX(1)}
#mfnx-inwrap{position:relative}
#mfnx-in{width:100%;box-sizing:border-box;padding:15px 44px 15px 16px;font-size:16.5px;border:2px solid #e5dccb;border-radius:12px;
 outline:none;background:#fff;transition:border-color .3s,box-shadow .3s,background-color .3s;text-align:center;font-weight:600;color:#111}
#mfnx-in::placeholder{color:#b9ad99;font-weight:500}
#mfnx-in:focus{border-color:#d96b3f;box-shadow:0 0 0 4px rgba(217,107,63,.12)}
#mfnx.ok #mfnx-in{border-color:#2e9e57;background:#f2fbf5;box-shadow:0 0 0 4px rgba(46,158,87,.12)}
#mfnx.bad #mfnx-in{border-color:#d64545;background:#fff1f1;box-shadow:0 0 0 4px rgba(214,69,69,.14)}
#mfnx-in.key{animation:mfnxKey .3s ease-out}
@keyframes mfnxKey{0%{box-shadow:0 0 0 3px rgba(217,107,63,.25)}100%{box-shadow:0 0 0 10px rgba(217,107,63,0)}}
#mfnx-check{position:absolute;right:13px;top:50%;width:22px;height:22px;border-radius:50%;background:#2e9e57;
 display:flex;align-items:center;justify-content:center;transform:translateY(-50%) scale(0);transition:transform .35s cubic-bezier(.34,1.7,.5,1)}
#mfnx.ok #mfnx-check{transform:translateY(-50%) scale(1)}
#mfnx-check svg{width:12px;height:12px}
#mfnx-prog{height:4px;border-radius:99px;background:#f1e7d8;margin-top:8px;overflow:hidden}
#mfnx-prog i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,#d96b3f,#e8a13f,#9ec44f,#2e9e57);
 background-size:400px 100%;transition:width .35s cubic-bezier(.4,0,.2,1)}
#mfnx.done #mfnx-prog{display:none}
#mfnx.ok #mfnx-btn{position:relative;overflow:hidden}
#mfnx.ok #mfnx-btn::after{content:'';position:absolute;top:0;left:-80%;width:60%;height:100%;
 background:linear-gradient(105deg,transparent,rgba(255,255,255,.45),transparent);animation:mfnxShine 1.4s ease .15s 2}
@keyframes mfnxShine{to{left:130%}}
.mfnx-cf{position:absolute;width:8px;height:12px;border-radius:2px;pointer-events:none;z-index:3;
 animation:mfnxFall 1.1s cubic-bezier(.3,.6,.4,1) forwards}
@keyframes mfnxFall{0%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(var(--dx),110px) rotate(var(--rot))}}
#mfnx.done #mfnx-code{animation:mfnxReveal .6s cubic-bezier(.34,1.4,.5,1);cursor:pointer}
@keyframes mfnxReveal{0%{transform:scale(.85);letter-spacing:.3em;opacity:0}100%{transform:scale(1);letter-spacing:.06em;opacity:1}}
#mfnx-btn{width:100%;margin-top:12px;padding:16px;font-size:18px;font-weight:800;border:0;border-radius:12px;
 background:#f1e7d8;color:#b3a288;cursor:not-allowed;transition:all .35s}
#mfnx.ok #mfnx-btn{background:#d96b3f;color:#fff;cursor:pointer;box-shadow:0 8px 20px rgba(217,107,63,.35)}
#mfnx.ok #mfnx-btn:hover{background:#c05a30}
#mfnx-code{display:none;margin:0;padding:15px;border:2px solid #2e9e57;border-radius:12px;text-align:center;
 font-size:21px;font-weight:800;letter-spacing:.06em;color:#166b33;background:#f2fbf5}
#mfnx-code small{display:block;font-size:11px;font-weight:700;letter-spacing:.1em;color:#5aa877;margin-bottom:2px}
#mfnx.done #mfnx-code{display:block}
#mfnx.done #mfnx-in,#mfnx.done #mfnx-btn,#mfnx.done #mfnx-ph,#mfnx.done #mfnx-smslbl{display:none}
#mfnx-go{display:none;margin-top:12px;padding:16px;font-size:18px;font-weight:800;border-radius:12px;text-align:center;
 background:#d96b3f;color:#fff!important;text-decoration:none;box-shadow:0 8px 20px rgba(217,107,63,.35)}
#mfnx.done #mfnx-go{display:block}
#mfnx-fine{margin:12px 0 0;font-size:12.5px;color:#a99c86;text-align:center;font-weight:600}
@media(max-width:600px){#mfnx-left{display:none}#mfnx-body{padding:42px 22px 22px}#mfnx h3{font-size:40px}}
#mfnx-inwrap .mfw-email-ac{position:absolute;left:0;right:0;top:100%;margin-top:5px;background:#fff;border:1.5px solid #e5dccb;border-radius:12px;box-shadow:0 10px 24px rgba(60,30,5,.16);z-index:100000;overflow:hidden;display:none;text-align:left}
#mfnx-inwrap .mfw-email-ac.show{display:block}
#mfnx-inwrap .mfw-email-ac.mfw-ac-up{top:auto;bottom:100%;margin-top:0;margin-bottom:5px}
#mfnx-inwrap .mfw-ac-opt{padding:13px 16px;min-height:44px;box-sizing:border-box;display:flex;align-items:center;font-size:16px;color:#111;cursor:pointer;font-weight:600}
#mfnx-inwrap .mfw-ac-opt b{color:#a8502e;font-weight:700}
#mfnx-inwrap .mfw-ac-opt:hover,#mfnx-inwrap .mfw-ac-opt.hl{background:#faf3e7}
#mfnx-inwrap .mfw-ac-opt+.mfw-ac-opt{border-top:1px solid #f3ede3}
#mfnx.done .mfw-email-ac{display:none!important}
#mfnx h3{font-size:38px;line-height:1.02}
#mfnx-hint{display:none;margin:7px 2px 0;font-size:13px;font-weight:700;color:#e59b9b;text-align:left;letter-spacing:.2px}
#mfnx-hint.on{display:block}
@media(max-width:600px){#mfnx h3{font-size:32px}}


/* --- 482-mealfan-opt-in-boost-get-my-code-with-go-mf-optin-boost-css.css --- */
.mftb-email.mfb-invalid,#mtbx-in.mfb-invalid,#mfnx-in.mfb-invalid{
    border-color:#d64545 !important;background:#fff1ef !important;box-shadow:0 0 0 3px rgba(214,69,69,.20) !important;}
  .mftb-email.mfb-valid,#mtbx-in.mfb-valid,#mfnx-in.mfb-valid{
    border-color:#2e9e57 !important;background:#f2fbf5 !important;box-shadow:0 0 0 3px rgba(46,158,87,.18) !important;}
  /* mf-fix-20260726: the field must AGREE with the message.
     Two independent layers were judging the same input and did not talk to each other:
     #mf-buzz-valid (topbar module) prints "checkmark Looks good" and sets data-mf-ok="1",
     while 482 owns the border and background colours. Result on screen was a red box with
     a green tick and the words "Looks good" underneath.
     Bind the green state to the SAME signal that prints the message, and let it win over
     any red left behind by the other layer. */
  input[type=email][data-mf-ok="1"],
  input[type=email][data-mf-ok="1"].mfb-invalid,
  .mftb-email[data-mf-ok="1"], #mtbx-in[data-mf-ok="1"], #mfnx-in[data-mf-ok="1"],
  #mfg-em[data-mf-ok="1"], #mfg2-em[data-mf-ok="1"], #mfg3-em[data-mf-ok="1"],
  #mfm-em[data-mf-ok="1"],
  .mf-footopt-email[data-mf-ok="1"], .mfsh-email[data-mf-ok="1"]{
    border-color:#2e9e57 !important;
    background:#f2fbf5 !important;
    box-shadow:0 0 0 3px rgba(46,158,87,.18) !important;
  }
  /* and never show the red mark while the message says it is fine */
  input[type=email][data-mf-ok="1"] ~ .mfb-mark.err{opacity:0 !important}
  .mfb-mark{font-weight:700;font-size:13px;pointer-events:none;transition:opacity .15s;opacity:0}
  .mfb-mark.on{opacity:1}.mfb-mark.err{color:#d64545}.mfb-mark.ok{color:#2e9e57}
  /* keep top-bar email + CTA + Google on one line */
  .mftb-fields{flex-wrap:nowrap !important;align-items:center !important}
  .mftb-fields .mfb-mark{margin-left:-30px;margin-right:12px;align-self:center}
  .mfb-or{color:#8f98a8;font-size:12px;font-weight:600;letter-spacing:.3px;white-space:nowrap}
  .mfb-gbtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#fff;color:#1f2430;
    border:1px solid #dcdfe6;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600;
    cursor:pointer;line-height:1;font-family:inherit;white-space:nowrap;transition:box-shadow .15s,transform .05s,background .15s}
  .mfb-gbtn:hover{box-shadow:0 2px 10px rgba(0,0,0,.18)}
  .mfb-gbtn:active{transform:translateY(1px)}
  .mfb-gbtn svg{width:16px;height:16px;flex:0 0 auto}
  /* top-bar Google = SECONDARY to the orange CTA: lighter + smaller so the primary clearly wins */
  .mftb-fields .mfb-gbtn{padding:7px 12px;font-size:12.5px;font-weight:500;color:#3c4043;border-color:#d6dae0}
  /* popup version: full-width pill under the email field (stays prominent there) */
  .mfb-gbtn.mfb-pop{width:100%;padding:11px 14px;font-size:14px;font-weight:600;margin-top:8px}
  .mfb-hide-native{display:none !important}
  /* MOBILE: stack the Google option as a full-width LABELED row under the field (no bare "G") */
  @media(max-width:640px){
    /* bigger, more legible offer text on mobile */
    .mftb-inline .mftb-offer{font-size:16.5px !important;line-height:1.34}
    .mftb-inline .mftb-offer em{font-size:14px !important}
    .mftb-fields{flex-wrap:wrap !important;justify-content:center;row-gap:8px}
    .mftb-fields .mftb-email{flex:1 1 150px;width:auto !important;min-width:0}
    .mftb-fields .mftb-btn{flex:0 0 auto}
    .mftb-fields .mfb-mark{margin-left:-28px;margin-right:10px}
    .mftb-fields .mfb-or{display:none}
    .mftb-fields .mfb-gbtn{flex:1 1 100%;width:100%;padding:11px 14px;font-size:13.5px;font-weight:600}
    .mftb-fields .mfb-gbtn .mfb-glabel{display:inline !important}
  }


/* --- mf-sheet-20260724.css --- */
/* ALL SIZES: collapse the inline fields once the sheet is ready; bar becomes a click target */
  html.mf-sheet-ready .mf-deal-bar .mftb-fields{display:none !important}
  html.mf-sheet-ready .mf-deal-bar{cursor:pointer}
  .mfsh,.mfsh *{box-sizing:border-box}
  /* #mtbx never had a border-box reset, so its 640px width sat inside the 2px
     border and its 44% rail sat inside 26px of padding. Matching the old modal's
     dimensions means matching that box model on these two elements. */
  /* Doubled class names on purpose. The theme ships `body.mf-v3 *` and
     `body.mf-v2 *` with box-sizing:border-box at specificity (0,1,1), which
     beats a plain `.mfsh-left` (0,1,0) — so the override silently lost on the
     live site and the image rail rendered 280px instead of 308px. Repeating the
     class lifts this to (0,2,0) without !important. Caught in a real browser on
     08-02; a standalone preview cannot see the theme's stylesheet. */
  .mfsh.mfsh,.mfsh-left.mfsh-left{box-sizing:content-box}
  .mfsh-ov{position:fixed;inset:0;z-index:2147483000;background:rgba(20,16,8,.55);backdrop-filter:blur(2px);
    opacity:0;pointer-events:none;transition:opacity .28s}
  .mfsh-ov.on{opacity:1;pointer-events:auto}
  /* ---------------------------------------------------------------------
     2026-08-01: dimensions copied from the July 20 modal (#mtbx) in
     mf-topbar-optin-v2 — min(640px,94vw) shell, 20px radius, 2px #d96b3f
     border, 44% image rail, 38/30/26 body padding, 52px headline, 1/1.06
     photo. The meal photo is back; this sheet shipped 07-24 without one,
     which is what made it feel flatter than the modal it replaced.
     If #mtbx changes, change these too or the two surfaces drift apart.
     --------------------------------------------------------------------- */
  .mfsh{position:fixed;left:50%;top:50%;transform:translate(-50%,-46%) scale(.96);z-index:2147483001;
    width:min(640px,94vw);background:#fff;border:2px solid #d96b3f;border-radius:20px;
    box-shadow:0 24px 64px rgba(60,30,5,.28);opacity:0;
    /* overflow MUST stay visible: the badge is translated 50% above the top
       edge, so any clipping on this element cuts it in half. Scrolling lives
       on .mfsh-flex instead. */
    overflow:visible;
    transition:transform .25s,opacity .25s;text-align:left;color:#111;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
  .mfsh.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
  .mfsh-grab{display:none}
  .mfsh-badge{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);background:#d96b3f;color:#fff;
    font-weight:800;font-size:12.5px;letter-spacing:.08em;padding:8px 20px;border-radius:999px;z-index:2;
    box-shadow:0 4px 12px rgba(217,107,63,.35);white-space:nowrap}
  .mfsh-x{position:absolute;top:10px;right:12px;border:0;background:#f6efe4;width:44px;height:44px;border-radius:50%;
    font-size:20px;line-height:1;color:#7a6f5c;cursor:pointer;z-index:2;display:flex;align-items:center;justify-content:center}
  .mfsh-flex{display:flex;align-items:stretch;border-radius:18px;overflow:auto;max-height:92vh}
  .mfsh-left{flex:0 0 44%;background:#faf3e7;display:flex;flex-direction:column;justify-content:center;
    padding:26px 0 26px 26px}
  /* The two image families have different native shapes and must not share one
     frame ratio: the chef cards are 1200x1200 COMPOSITIONS with a title and a
     nutrition panel baked in, the meal photos are 600x450. Cropping a chef card
     to a landscape frame cuts its title off (seen on mobile 08-01). The frame
     therefore takes the group's own ratio and object-fit:cover never actually
     crops anything. */
  .mfsh-frame{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:1/1.06;background:#fff;
    box-shadow:0 8px 22px rgba(60,30,5,.14)}
  .mfsh-frame.mfsh-f-sq{aspect-ratio:1/1}
  .mfsh-pic{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
  .mfsh-pic.mfsh-contain{object-fit:contain;padding:16px}
  .mfsh-cap{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(17,12,6,.78));
    color:#fff;font-size:12px;font-weight:700;padding:26px 12px 10px;line-height:1.4;text-align:center}
  .mfsh-body{flex:1;padding:38px 30px 26px;display:flex;flex-direction:column;justify-content:center}
  .mfsh-kick{color:#d96b3f;font-weight:800;font-size:13.5px;letter-spacing:.05em;text-transform:uppercase;margin:0 0 10px}
  .mfsh h3{margin:0;font-family:inherit;font-size:52px;line-height:.95;color:#111;font-weight:900;letter-spacing:-.02em}
  .mfsh-sub{margin:8px 0 0;font-size:18px;font-weight:700;color:#111}
  .mfsh-plus{margin:2px 0 16px;font-size:14.5px;color:#6b6355}
  .mfsh-email{width:100%;padding:15px 16px;font-size:16.5px;border:2px solid #e5dccb;border-radius:12px;
    outline:none;background:#fff;font-family:inherit}
  .mfsh-email::placeholder{color:#b9ad99;font-weight:500}
  .mfsh-email:focus{border-color:#d96b3f;box-shadow:0 0 0 4px rgba(217,107,63,.12)}
  .mfsh-email.mfsh-ok{border-color:#2e9e57;box-shadow:0 0 0 4px rgba(46,158,87,.12);background:#f2fbf5}
  .mfsh-email.mfsh-bad{border-color:#d64545;box-shadow:0 0 0 4px rgba(214,69,69,.12);background:#ffe4ec}
  /* Two states, same as the old modal: inert until the email parses, then
     live. Previously the button looked identical either way, so tapping it
     with a half-typed address did nothing visible and read as broken. */
  .mfsh-goBtn{width:100%;margin-top:12px;padding:16px;font-size:19px;font-weight:800;border:0;border-radius:12px;
    background:#d96b3f;color:#fff;cursor:pointer;font-family:inherit;box-shadow:0 8px 20px rgba(217,107,63,.35);
    transition:background .35s,color .35s,box-shadow .35s}
  .mfsh-goBtn:disabled{background:#f1e7d8;color:#b3a288;cursor:not-allowed;box-shadow:none;animation:none}
  .mfsh-goBtn.mfsh-ready{animation:mfshPulse 1.4s ease-in-out infinite}
  @keyframes mfshPulse{
    0%{box-shadow:0 8px 20px rgba(217,107,63,.35),0 0 0 0 rgba(217,107,63,.5);transform:translateY(0)}
    50%{box-shadow:0 8px 20px rgba(217,107,63,.35),0 0 0 10px rgba(217,107,63,0);transform:translateY(-2px)}
    100%{box-shadow:0 8px 20px rgba(217,107,63,.35),0 0 0 0 rgba(217,107,63,0);transform:translateY(0)}}
  /* The only addition to the old dimensions: Google as a secondary control
     under the orange CTA, never above the email field. */
  .mfsh-sep{display:flex;align-items:center;gap:12px;color:#a99c86;font-size:12px;font-weight:700;margin:12px 0}
  .mfsh-sep::before,.mfsh-sep::after{content:"";flex:1;height:1px;background:#efe6d8}
  .mfsh-g{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;background:#fff;
    border:2px solid #e5dccb;border-radius:12px;padding:14px;font-size:15.5px;font-weight:700;color:#1f2430;
    cursor:pointer;font-family:inherit}
  .mfsh-g+.mfsh-g{margin-top:10px}
  .mfsh-g svg{width:20px;height:20px;flex:0 0 auto}
  .mfsh-fine{margin:12px 0 0;font-size:12.5px;color:#7a6f5c;text-align:center;font-weight:600}
  /* Instruction moved OUT of the button (2026-08-02). In the button it sat at
     2.03:1 on the disabled fill and the label changed under people as they
     typed. As helper text it is 5.93:1 and the button label never moves. */
  .mfsh-hint{margin:8px 0 0;font-size:13px;font-weight:600;color:#6b6355;min-height:18px}
  .mfsh-hint.mfsh-warn{color:#a8321f}
  /* A real <form> element, purely so Chrome treats the field as a contact form
     and offers the saved address. A standalone input only ever gets
     same-site history autofill; inside a form with type=email + name=email +
     autocomplete=email, Chrome offers the profile. Layout is unchanged: the
     wrapper is just another flex column. */
  .mfsh-form{display:flex;flex-direction:column}
  .mfsh-chips{display:none;gap:8px;flex-wrap:wrap;margin:8px 0 0}
  .mfsh-chips.on{display:flex}
  .mfsh-chip{border:1.5px solid #e5dccb;background:#fff;border-radius:999px;padding:8px 13px;font-size:13.5px;
    font-weight:700;color:#111;cursor:pointer}
  /* mf-done-claim-20260724 (kept): code on screen + claim button in the done
     state, so this stops dead ending at "check your inbox". Recoloured to the
     modal palette only — behaviour untouched. */
  .mfsh-code{margin:14px 0 10px;padding:14px;border-radius:12px;text-align:center;background:#fff;
    border:2px dashed #d96b3f;font-size:23px;font-weight:800;letter-spacing:1.5px;color:#111;cursor:pointer}
  .mfsh-code small{display:block;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;
    color:#a99c86;margin-bottom:5px}
  .mfsh-claim{display:block;width:100%;border:0;border-radius:12px;padding:16px;font-size:16px;font-weight:800;
    color:#fff;text-align:center;text-decoration:none;background:#d96b3f;
    box-shadow:0 8px 20px rgba(217,107,63,.35)}
  .mfsh-inbox2{display:block;margin-top:12px;text-align:center;font-size:13px;color:#6b6355;text-decoration:underline}
  .mfsh-inbox{display:block;margin-top:12px;padding:14px;font-size:16px;font-weight:800;border-radius:12px;
    text-align:center;background:#f2fbf5;border:2px solid #2e9e57;color:#166b33;text-decoration:none}
  .mfsh-done{text-align:center;padding:18px 4px 6px}
  .mfsh-done .mfsh-emoji{font-size:40px}
  .mfsh-done p{font-size:22px;font-weight:900;color:#111;margin:8px 0 4px}
  .mfsh-done small{display:block;font-size:13px;color:#6b6355}
  /* mf-sms-preview-20260728 (kept): gated phone/SMS option, behind ?mfsms=1.
     Recoloured to the modal palette only. */
  .mfsh-phbtn{margin-top:12px}
  .mfsh-phpanel{margin-top:12px}
  .mfsh-phone{width:100%;padding:15px 16px;font-size:16.5px;border:2px solid #e5dccb;border-radius:12px;
    outline:none;background:#fff;margin-bottom:10px;font-family:inherit}
  .mfsh-phone:focus{border-color:#d96b3f;box-shadow:0 0 0 4px rgba(217,107,63,.12)}
  .mfsh-phone.mfsh-bad{border-color:#d64545;background:#ffe4ec;box-shadow:0 0 0 4px rgba(214,69,69,.12)}
  .mfsh-phone.mfsh-ok{border-color:#2e9e57;background:#f2fbf5;box-shadow:0 0 0 4px rgba(46,158,87,.12)}
  .mfsh-consent{display:flex;gap:8px;align-items:flex-start;font-size:11px;color:#a99c86;line-height:1.45;
    margin:0 0 10px;text-align:left}
  .mfsh-consent input{margin-top:3px;flex:0 0 auto;width:16px;height:16px}
  .mfsh-consent a{color:#8a6b52}
  /* 2026-08-02: parity with the coupon2-review LP phone field. */
  .mfsh-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
  .mfsh-phform{display:flex;flex-direction:column}
  .mfsh-phhint{display:block;font-size:11.5px;color:#6f6a5e;margin:-4px 2px 10px;transition:color .18s}
  .mfsh-phhint.warn{color:#b06a3a}
  .mfsh-phhint.ready{color:#2e9e57;font-weight:700}
  .mfsh-consent.cue{border-radius:10px;box-shadow:0 0 0 4px rgba(217,107,63,.14)}
  .mfsh-consent.err{border-radius:10px;box-shadow:0 0 0 4px rgba(209,67,91,.14)}
  .mfsh-consenterr{display:none;color:#d1435b;font-size:12px;font-weight:700;margin:-4px 2px 10px}
  .mfsh-consenterr.on{display:block}
  .mfsh-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
  /* PHONE: the old modal hid its image column below 600px. We keep the photo —
     its absence is what started this — and stack it instead, holding the old
     modal's phone type sizes (h3 40px, 42/22/22 body padding). */
  @media(max-width:640px){
    .mfsh{left:0;right:0;top:auto;bottom:0;width:auto;max-width:560px;margin:0 auto;opacity:1;
      border-radius:22px 22px 0 0;border-bottom:0;max-height:94vh;overflow:auto;transform:translateY(105%);
      transition:transform .34s cubic-bezier(.2,.85,.25,1)}
    .mfsh.on{transform:none}
    .mfsh-grab{display:block;width:44px;height:5px;border-radius:3px;background:#e5dccb;margin:8px auto 4px}
    .mfsh-badge{position:static;transform:none;display:inline-block;margin:2px 0 0 22px;box-shadow:none}
    .mfsh-flex{display:block;border-radius:0;max-height:none;overflow:visible}
    .mfsh-left{padding:12px 22px 0}
    .mfsh-frame.mfsh-f-wide{aspect-ratio:4/3}
    /* square card at full phone width is too tall to keep the email field near
       the fold, so bound the width instead of slicing the picture */
    /* width:100% + align-self are required: .mfsh-left is a flex column, and an
       auto margin on a flex item cancels the default stretch, collapsing the
       frame to 0x0 (hit exactly that on 08-02). */
    .mfsh-frame.mfsh-f-sq{aspect-ratio:1/1;width:100%;max-width:300px;align-self:center}
    .mfsh-body{padding:16px 22px calc(22px + env(safe-area-inset-bottom))}
    .mfsh h3{font-size:40px}
  }
  /* short phones: shrink the picture, still never crop it */
  @media(max-width:640px) and (max-height:680px){
    /* two-class selectors, or the .mfsh-f-sq max-width above out-specifies this */
    .mfsh-frame.mfsh-f-sq,.mfsh-frame.mfsh-f-wide{width:100%;max-width:210px;align-self:center}
  }

/* 2026-09-14: let the success column shrink within the desktop flex row. */
.mfsh .mfsh-body{min-width:0}
.mfsh .mfsh-claim{white-space:normal;font-size:14px}


/* --- mf-mobile-fixes-v6-mf-mobile-fixes.css --- */
/* ---------------------------------------------------------------
   1. Short screens: cap the two centred modals and let them scroll.
   --------------------------------------------------------------- */
@media (max-height: 760px) {
  #mtbx-body, #mfnx-body {
    max-height: calc(100vh - 78px) !important;
    max-height: calc(100dvh - 78px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    /* centred flex content that overflows cannot be scrolled back above its
       start, so the top of the form becomes unreachable */
    justify-content: flex-start !important;
  }
}

/* 1b. Very short screens: give back the ~60px the decorative rows spend. */
@media (max-height: 660px) and (max-width: 820px) {
  #mtbx-steps, #mfnx-steps { display: none !important; }
  #mtbx h3, #mfnx h3 { font-size: 30px !important; }
  #mtbx-kick, #mfnx-kick { margin: 0 0 4px !important; font-size: 12px !important; }
  #mtbx-sub, #mfnx-sub { font-size: 16px !important; }
  #mtbx-plus, #mfnx-plus { margin: 2px 0 10px !important; font-size: 13px !important; }
  #mtbx-body, #mfnx-body { padding-top: 22px !important; padding-bottom: 16px !important; }
  #mtbx-fine, #mfnx-fine { margin-top: 8px !important; }
}

/* ---------------------------------------------------------------
   2. Touch targets. 44px is the Apple HIG floor.
   --------------------------------------------------------------- */
@media (max-width: 860px) {
  .mftb-claim { padding: 11px 20px !important; font-size: 13.5px !important; min-height: 44px !important; }
  .mfb-gbtn { min-height: 44px !important; }
  #mtbx-x, #mfnx-x {
    width: 44px !important; height: 44px !important; font-size: 20px !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
  }
}

/* ---------------------------------------------------------------
   3. iOS auto-zoom: every field must be >= 16px.
   --------------------------------------------------------------- */
.mf-footopt-email { font-size: 16px !important; }

/* ---------------------------------------------------------------
   4. NEW in v3 — clear the iOS keyboard accessory bar.
   When a field is focused, Safari scrolls it into view with no regard for the
   native up/down/Done strip it draws above the keyboard. scroll-margin-bottom
   reserves space below the field during that scroll, so the CTA underneath
   ends up above the strip instead of behind it. ~150px = CTA (63) + hint (20)
   + gap (12) + the strip (~44) + slack.
   --------------------------------------------------------------- */
.mfsh-email, .mfsh-phone,
#mtbx-in, #mfnx-in, #mfm-em, .mf-footopt-email, .mftb-email {
  scroll-margin-bottom: 150px;
}

/* The scroll above needs somewhere to go: without trailing space inside the
   scroll container the sheet is already at its end and cannot move further. */
@media (max-width: 640px) {
  .mfsh-body { padding-bottom: calc(72px + env(safe-area-inset-bottom)) !important; }
}

/* ---------------------------------------------------------------
   5. The consent / privacy link is 12px tall. Vertical padding on an inline
   element grows the hit area without changing the line box.
   --------------------------------------------------------------- */
.mf-consent-line a, .mfsh-consent a,
#mtbx-fine a, #mfnx-fine a { padding: 10px 2px; }

/* ---------------------------------------------------------------
   6. Respect prefers-reduced-motion. Both CTAs pulse forever.
   --------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .mfsh-goBtn.mfsh-ready, .mftb-claim,
  #mtbx-btn, #mfnx-btn { animation: none !important; }
}

