/* mobile.css — global mobile pass for the MilletsFit redesign
   Targets the inline-style patterns used across the editorial components.
   Loaded after the Google Fonts <link> on every page; uses !important
   because the components ship inline styles.                              */

/* Swallow off-screen translated mobile drawer so it doesn't add scroll width */
html, body { overflow-x: clip; }

/* ───────────────── Tablet & below (≤ 980px) ───────────────── */
@media (max-width: 980px) {
  /* WRAP padding */
  [style*="max-width: 1180px"][style*="padding: 0 56px"],
  [style*="max-width: 1180px"][style*="padding-left: 56px"] {
    padding-left: 32px !important;
    padding-right: 32px !important;
  }

  /* Section vertical paddings (84/96px → 64px) */
  [style*="padding: 96px 56px"] { padding: 64px 32px !important; }
  [style*="padding: 84px 56px"] { padding: 60px 32px !important; }
  [style*="padding: 76px 56px"] { padding: 56px 32px !important; }
  [style*="padding: 72px 56px"] { padding: 52px 32px !important; }
  [style*="padding: 64px 56px"] { padding: 48px 32px !important; }
  [style*="padding: 60px 56px"] { padding: 44px 32px !important; }
  [style*="padding: 56px 56px"] { padding: 40px 32px !important; }
  [style*="padding: 14px 56px"] { padding: 14px 22px !important; }
  [style*="paddingTop: 92px"], [style*="padding-top: 92px"] { padding-top: 56px !important; }
  [style*="paddingTop: 72px"], [style*="padding-top: 72px"] { padding-top: 44px !important; }
  [style*="paddingBottom: 88px"], [style*="padding-bottom: 88px"] { padding-bottom: 56px !important; }
  [style*="paddingBottom: 72px"], [style*="padding-bottom: 72px"] { padding-bottom: 44px !important; }

  /* Editorial 2-col layouts → 1-col */
  [style*="grid-template-columns: 0.92fr 1.08fr"],
  [style*="grid-template-columns: 1.05fr 0.95fr"],
  [style*="grid-template-columns: 1.25fr 0.75fr"],
  [style*="grid-template-columns: 1.55fr 1fr"],
  [style*="grid-template-columns: 1.4fr 1fr"],
  [style*="grid-template-columns: 1.2fr 0.8fr"],
  [style*="grid-template-columns: 1.1fr 0.9fr"],
  [style*="grid-template-columns: 0.9fr 1.1fr"],
  [style*="grid-template-columns: 1fr 1.1fr"],
  [style*="grid-template-columns: 1.1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }

  /* repeat() grids → 2 columns (except gallery thumbs) */
  [style*="grid-template-columns: repeat(3,1fr)"]:not(.gallery-thumbs),
  [style*="grid-template-columns: repeat(3, 1fr)"]:not(.gallery-thumbs),
  [style*="grid-template-columns: repeat(4,1fr)"]:not(.gallery-thumbs),
  [style*="grid-template-columns: repeat(4, 1fr)"]:not(.gallery-thumbs),
  [style*="grid-template-columns: repeat(6,1fr)"]:not(.gallery-thumbs) {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* Hero / headline sizes */
  [style*="font-size: 92px"] { font-size: 56px !important; line-height: 1 !important; }
  [style*="font-size: 64px"] { font-size: 42px !important; line-height: 1 !important; }
  [style*="font-size: 62px"],
  [style*="font-size: 60px"],
  [style*="font-size: 58px"],
  [style*="font-size: 56px"],
  [style*="font-size: 54px"],
  [style*="font-size: 50px"] { font-size: 40px !important; line-height: 1.08 !important; }
  [style*="font-size: 48px"],
  [style*="font-size: 46px"],
  [style*="font-size: 44px"],
  [style*="font-size: 42px"],
  [style*="font-size: 40px"] { font-size: 30px !important; line-height: 1.12 !important; }
  [style*="font-size: 38px"],
  [style*="font-size: 36px"],
  [style*="font-size: 34px"] { font-size: 26px !important; line-height: 1.18 !important; }
  [style*="font-size: 30px"],
  [style*="font-size: 28px"],
  [style*="font-size: 27px"] { font-size: 21px !important; line-height: 1.35 !important; }

  /* Hide desktop nav row + show hamburger */
  .mf-nav-desktop { display: none !important; }
  .mf-nav-account { display: none !important; }
  .mf-nav-burger { display: inline-flex !important; }
  .mf-nav-wrap { height: 64px !important; }
  .mf-nav-actions { gap: 12px !important; }
}

/* ───────────────── Phones (≤ 640px) ───────────────── */
@media (max-width: 640px) {
  [style*="max-width: 1180px"][style*="padding: 0 56px"],
  [style*="max-width: 1180px"][style*="padding-left: 56px"] {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  [style*="padding: 96px 56px"] { padding: 56px 20px !important; }
  [style*="padding: 84px 56px"] { padding: 48px 20px !important; }
  [style*="padding: 76px 56px"] { padding: 44px 20px !important; }
  [style*="padding: 64px 56px"] { padding: 40px 20px !important; }
  [style*="padding: 60px 56px"] { padding: 36px 20px !important; }
  [style*="padding: 56px 56px"] { padding: 32px 20px !important; }
  [style*="padding: 14px 56px"] { padding: 12px 14px !important; }

  /* All multi-column grids → 1 column (except gallery thumbs) */
  [style*="grid-template-columns: repeat(3,1fr)"]:not(.gallery-thumbs),
  [style*="grid-template-columns: repeat(3, 1fr)"]:not(.gallery-thumbs),
  [style*="grid-template-columns: repeat(4,1fr)"]:not(.gallery-thumbs),
  [style*="grid-template-columns: repeat(4, 1fr)"]:not(.gallery-thumbs),
  [style*="grid-template-columns: repeat(6,1fr)"]:not(.gallery-thumbs) {
    grid-template-columns: 1fr !important;
    gap: 26px !important;
  }

  /* 1fr 1fr → 1fr (keep duration toggles repeat(3) explicit) */
  [style*="grid-template-columns: 1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  /* Headline sizes — push smaller on phones */
  [style*="font-size: 92px"] { font-size: 48px !important; line-height: 1 !important; }
  [style*="font-size: 64px"] { font-size: 36px !important; line-height: 1 !important; }
  [style*="font-size: 62px"],
  [style*="font-size: 60px"],
  [style*="font-size: 58px"],
  [style*="font-size: 56px"],
  [style*="font-size: 54px"],
  [style*="font-size: 50px"] { font-size: 34px !important; line-height: 1.06 !important; letter-spacing: -.02em !important; }
  [style*="font-size: 48px"],
  [style*="font-size: 46px"],
  [style*="font-size: 44px"],
  [style*="font-size: 42px"],
  [style*="font-size: 40px"] { font-size: 26px !important; line-height: 1.15 !important; }
  [style*="font-size: 38px"],
  [style*="font-size: 36px"],
  [style*="font-size: 34px"] { font-size: 22px !important; line-height: 1.2 !important; }
  [style*="font-size: 30px"] { font-size: 20px !important; }
  [style*="font-size: 28px"],
  [style*="font-size: 27px"] { font-size: 19px !important; line-height: 1.4 !important; }

  /* Section heading band — tighter */

  /* Cart line item — collapse 3-col grid to stacked */
  [style*="grid-template-columns: 140px 1fr auto"] {
    grid-template-columns: 92px 1fr !important;
    gap: 18px !important;
  }
  [style*="grid-template-columns: 140px 1fr auto"] > *:last-child {
    grid-column: 1 / -1 !important;
    text-align: left !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: baseline !important;
    padding-top: 6px !important;
    border-top: 1px dashed rgba(27,58,45,.12) !important;
  }

  /* Product page gallery main image height */
  [style*="height: 472px"] { height: 320px !important; }
  [style*="height: 380px"] { height: 280px !important; }
  [style*="height: 320px"] { height: 240px !important; }

  /* Sticky purchase bar → simplified */
  [style*="position: fixed"][style*="bottom: 0"][style*="zIndex"],
  [style*="position: fixed"][style*="bottom: 0"][style*="z-index"] {
    /* keep visible but make it readable */
  }

  /* Footer cols stack */
  footer [style*="gap: 64px"] { gap: 32px !important; flex-direction: column !important; }
  footer [style*="gap: 32px"] { gap: 24px !important; }

  /* "From" price cards still readable */
  [style*="height: 170px"] { height: 200px !important; }
  [style*="height: 150px"] { height: 180px !important; }

  /* Body copy hugs container */
  p[style*="max-width: 520px"],
  p[style*="max-width: 500px"],
  p[style*="max-width: 540px"] { max-width: 100% !important; }
}

/* ───────────────── Touch-friendly hit targets ───────────────── */
@media (max-width: 640px) {
  button, .mf-cta { min-height: 44px; }

  /* phone sticky purchase bar: hide name+image, just total + CTA */
  .mf-sticky-meta { display: none !important; }
  .mf-sticky-inner { padding: 12px 18px !important; gap: 14px !important; justify-content: flex-end !important; }
  .mf-sticky-total { margin-right: auto !important; }
}

/* ───────────────── Sticky elements unstick on tablets/phones ───────────────── */
@media (max-width: 880px) {
  aside[style*="position: sticky"] {
    position: relative !important;
    top: auto !important;
  }
}

/* ═════════════════════════════════════════════════════════════════
   About Us page — mobile pass (scoped via .mf-about on root)
   The default editorial sizes are tuned for desktop; on mobile we
   want noticeably calmer headlines, tighter vertical rhythm, and
   the 0.32fr/0.68fr label-and-body grid stacked.
   ═════════════════════════════════════════════════════════════════ */
@media (max-width: 980px) {
  /* Stack the label-and-body grids used in Mission */
  .mf-about [style*="grid-template-columns: 0.32fr 0.68fr"] {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  /* Intro h1 — smaller and a touch tighter */
  .mf-about h1[style*="font-size: 60px"] {
    font-size: 38px !important;
    line-height: 1.05 !important;
    letter-spacing: -.02em !important;
  }

  /* Mission paragraph — calmer body type */
  .mf-about p[style*="font-size: 27px"] {
    font-size: 19px !important;
    line-height: 1.55 !important;
  }

  /* Philosophy quote — tighter padding + smaller quote */
  .mf-about section[style*="padding: 96px 0"] {
    padding: 56px 0 !important;
  }
  .mf-about blockquote[style*="font-size: 44px"] {
    font-size: 26px !important;
    line-height: 1.28 !important;
    padding: 0 8px !important;
  }
  .mf-about [style*="font-size: 92px"][style*="line-height: 0.5"] {
    font-size: 64px !important;
    height: 28px !important;
  }

  /* People intro header */
  .mf-about h2[style*="font-size: 46px"] {
    font-size: 28px !important;
    line-height: 1.12 !important;
  }

  /* Profile blocks */
  .mf-about section[style*="padding-top: 56px"][style*="padding-bottom: 56px"] {
    padding-top: 32px !important;
    padding-bottom: 32px !important;
  }
  .mf-about h3[style*="font-size: 38px"] {
    font-size: 24px !important;
    line-height: 1.15 !important;
  }
  .mf-about img[alt] {
    /* shrink hero portrait heights */
  }
  .mf-about div[style*="height: 540px"] {
    height: 360px !important;
  }
  .mf-about p[style*="font-size: 15.5px"] {
    font-size: 14.5px !important;
    line-height: 1.7 !important;
  }
  .mf-about p[style*="font-size: 18px"][style*="font-style: italic"] {
    font-size: 15px !important;
    line-height: 1.5 !important;
    padding-left: 14px !important;
  }

  /* Our Promise heading + items */
  .mf-about h2[style*="font-size: 38px"] {
    font-size: 24px !important;
    line-height: 1.15 !important;
  }
  .mf-about div[style*="font-size: 22px"][style*="font-weight: 700"] {
    font-size: 17px !important;
    line-height: 1.2 !important;
  }
  .mf-about p[style*="font-size: 13.5px"] {
    font-size: 13px !important;
    line-height: 1.55 !important;
  }

  /* CTA */
  .mf-about h2[style*="font-size: 50px"] {
    font-size: 28px !important;
    line-height: 1.1 !important;
  }
  .mf-about section[style*="padding: 96px 56px"] {
    padding: 56px 24px !important;
  }
}

@media (max-width: 640px) {
  /* Even calmer on phones */
  .mf-about h1[style*="font-size: 60px"] {
    font-size: 30px !important;
    line-height: 1.08 !important;
    letter-spacing: -.018em !important;
  }
  .mf-about h1[style*="font-size: 60px"] br {
    /* let h1 wrap naturally on tiny screens */
    display: none !important;
  }
  .mf-about p[style*="font-size: 27px"] {
    font-size: 17.5px !important;
    line-height: 1.58 !important;
  }
  .mf-about blockquote[style*="font-size: 44px"] {
    font-size: 22px !important;
    line-height: 1.3 !important;
  }
  .mf-about [style*="font-size: 92px"][style*="line-height: 0.5"] {
    font-size: 52px !important;
    height: 22px !important;
  }
  .mf-about h2[style*="font-size: 46px"] {
    font-size: 24px !important;
  }
  .mf-about h3[style*="font-size: 38px"] {
    font-size: 22px !important;
  }
  .mf-about div[style*="height: 540px"] {
    height: 300px !important;
  }
  .mf-about h2[style*="font-size: 50px"] {
    font-size: 26px !important;
  }
  .mf-about h2[style*="font-size: 38px"] {
    font-size: 22px !important;
  }

  /* Tighten intro section vertical padding */
  .mf-about section[style*="padding-top: 92px"] {
    padding-top: 44px !important;
    padding-bottom: 36px !important;
  }
  .mf-about section[style*="padding-bottom: 88px"] {
    padding-bottom: 44px !important;
  }

  /* CTA buttons — stack and full-width-feel */
  .mf-about section[style*="padding: 96px 56px"] div[style*="display: inline-flex"][style*="gap: 16px"] {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
  }
  .mf-about section[style*="padding: 96px 56px"] a[style*="background"] {
    justify-content: center !important;
  }
}

/* ───────────────── Plan detail mobile fixes ───────────────── */
@media (max-width: 640px) {
  /* Gallery thumbnails: keep horizontal row, make square on mobile */
  .gallery-thumbs {
    grid-template-columns: repeat(auto-fit, 70px) !important;
    gap: 8px !important;
  }
  .gallery-thumbs button {
    width: 70px !important;
    height: 70px !important;
    padding: 4px !important;
  }
  .gallery-thumbs img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  /* Meal explorer card: stack the 2-col layout */
  .mealcard {
    grid-template-columns: 1fr !important;
    min-height: auto !important;
  }
  .mealcard > div:first-child {
    max-height: 240px;
  }
  .mealcard [style*="min-height: 432px"] {
    min-height: 220px !important;
  }

  /* Meal rows inside card: stack label + description */
  .mealcard [style*="grid-template-columns: 120px 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 4px !important;
    padding: 14px 0 !important;
  }

  /* Add bottom padding so sticky bar doesn't cover footer */
  .mf-sticky-bar ~ footer,
  footer {
    padding-bottom: 80px !important;
  }
}

/* ───────────────── Footer contact band ───────────────── */
@media (max-width: 880px) {
  .mf-contact-band {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
}
@media (max-width: 640px) {
  .mf-contact-items {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }
}
