/* GTGF v15.21 — unified Smart Fuel + complete mobile layer. */

/* GTGF v15.20 - Smart Fuel + Mobile repair layer.
 * Loaded last on purpose: it repairs mobile regressions introduced by compact
 * desktop/performance rules without re-inflating the critical CSS bundles.
 */


body.gtgf-v14 .recipe-library-more { display:flex; justify-content:center; padding:28px 0 0; }
body.gtgf-v14 .recipe-library-more .button { min-height:48px; }

/* ---------- Smart grocery: compact on every viewport ---------- */
body.gtgf-v14 .nutrition-shopping {
  max-width: 1120px;
  margin-inline: auto;
}
body.gtgf-v14 .nutrition-shopping__head {
  align-items: end;
  gap: 24px;
}
body.gtgf-v14 .nutrition-shopping__head h3 {
  max-width: 19ch;
}
body.gtgf-v14 .nutrition-shopping__summary {
  min-width: 124px;
  padding: 14px 16px;
}
body.gtgf-v14 .nutrition-shopping__summary strong {
  font-size: clamp(1.7rem, 3vw, 2.45rem) !important;
  line-height: .9;
}
body.gtgf-v14 .nutrition-shopping__summary span {
  font-size: .68rem !important;
  line-height: 1.25;
}
body.gtgf-v14 .nutrition-shopping__controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 18px 0 10px;
}
body.gtgf-v14 .nutrition-shopping__controls > .button {
  min-height: 44px;
  padding: 10px 15px;
  font-size: .7rem;
}
body.gtgf-v14 .nutrition-shopping__more {
  position: relative;
}
body.gtgf-v14 .nutrition-shopping__more > summary {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding: 10px 14px;
  border: 1px solid rgba(17,17,17,.25);
  font-size: .7rem;
  font-weight: 850;
  line-height: 1;
  letter-spacing: .05em;
  text-transform: uppercase;
  cursor: pointer;
  list-style: none;
}
body.gtgf-v14 .nutrition-shopping__more > summary::-webkit-details-marker { display: none; }
body.gtgf-v14 .nutrition-shopping__more > div {
  position: absolute;
  z-index: 30;
  top: calc(100% + 6px);
  right: 0;
  width: min(300px, calc(100vw - 32px));
  display: grid;
  gap: 7px;
  padding: 10px;
  background: #fff;
  border: 1px solid rgba(17,17,17,.2);
  box-shadow: 0 16px 40px rgba(0,0,0,.12);
}
body.gtgf-v14 .nutrition-shopping__more > div > * {
  width: 100%;
  min-height: 42px;
}
body.gtgf-v14 .nutrition-shopping__ah-help {
  margin: 8px 0 18px;
  border-top: 1px solid rgba(17,17,17,.12);
  border-bottom: 1px solid rgba(17,17,17,.12);
}
body.gtgf-v14 .nutrition-shopping__ah-help summary {
  min-height: 42px;
  display: flex;
  align-items: center;
  color: #59544e;
  font-size: .73rem;
  font-weight: 800;
  cursor: pointer;
}
body.gtgf-v14 .nutrition-shopping__ah-help p {
  margin: 0 0 14px;
  color: #625d56;
  font-size: .78rem;
  line-height: 1.55;
}
body.gtgf-v14 .nutrition-shopping__list {
  display: grid;
  gap: 0;
  border-top: 1px solid rgba(17,17,17,.16);
}
body.gtgf-v14 .nutrition-shopping__category {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(17,17,17,.16) !important;
  background: transparent !important;
}
body.gtgf-v14 .nutrition-shopping__category-head {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 9px 0;
}
body.gtgf-v14 .nutrition-shopping__category-head h4 {
  margin: 0 !important;
  font-family: var(--v14-body) !important;
  font-size: .82rem !important;
  line-height: 1.2 !important;
  letter-spacing: .01em !important;
}
body.gtgf-v14 .nutrition-shopping__category-head h4 small {
  margin-left: 5px;
  color: #8a857e;
  font-size: .66rem;
}
body.gtgf-v14 .nutrition-shopping__category-check {
  min-height: 36px;
  padding: 6px 0 6px 10px;
  border: 0;
  background: transparent;
  color: #68625c;
  font-size: .66rem;
  font-weight: 800;
  cursor: pointer;
}
body.gtgf-v14 .nutrition-shopping__items {
  display: grid;
  gap: 0 !important;
}
body.gtgf-v14 .nutrition-shopping__item {
  min-height: 54px !important;
  display: grid !important;
  grid-template-columns: 34px minmax(0,1fr) 38px !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 7px 0 !important;
  border: 0 !important;
  border-top: 1px solid rgba(17,17,17,.075) !important;
  background: transparent !important;
}
body.gtgf-v14 .nutrition-shopping__item:first-child { border-top: 0 !important; }
body.gtgf-v14 .nutrition-shopping__check-label {
  width: 34px;
  min-width: 34px;
  min-height: 44px;
  display: grid;
  place-items: center;
  margin: 0 !important;
  cursor: pointer;
}
body.gtgf-v14 .nutrition-shopping__check-label input {
  position: absolute;
  opacity: 0;
}
body.gtgf-v14 .nutrition-shopping__check-label > span[aria-hidden] {
  width: 22px;
  height: 22px;
  display: block;
  border: 1.5px solid #8f8981;
  background: #fff;
}
body.gtgf-v14 .nutrition-shopping__check-label input:checked + span[aria-hidden] {
  border-color: #111;
  background: #111;
  box-shadow: inset 0 0 0 5px #fff;
}
body.gtgf-v14 .nutrition-shopping__item-copy {
  min-width: 0;
  display: grid !important;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: baseline;
  gap: 6px 12px;
}
body.gtgf-v14 .nutrition-shopping__item-copy strong {
  min-width: 0;
  overflow: hidden;
  color: #171717;
  font-size: .88rem !important;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.gtgf-v14 .nutrition-shopping__amount {
  color: #4c4742;
  font-size: .8rem;
  font-weight: 800;
  white-space: nowrap;
}
body.gtgf-v14 .nutrition-shopping__always-badge {
  grid-column: 1 / -1;
  color: #6a655e !important;
  font-size: .62rem !important;
  line-height: 1.2;
}
body.gtgf-v14 .nutrition-shopping__item.is-checked .nutrition-shopping__item-copy,
body.gtgf-v14 .nutrition-shopping__item.is-always .nutrition-shopping__item-copy {
  opacity: .48;
}
body.gtgf-v14 .nutrition-shopping__item-more {
  position: relative;
  justify-self: end;
}
body.gtgf-v14 .nutrition-shopping__item-more > summary {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  color: #6b665f;
  font-size: .8rem;
  font-weight: 900;
  cursor: pointer;
  list-style: none;
}
body.gtgf-v14 .nutrition-shopping__item-more > summary::-webkit-details-marker { display: none; }
body.gtgf-v14 .nutrition-shopping__item-more > div {
  position: absolute;
  z-index: 20;
  top: 40px;
  right: 0;
  width: min(340px, calc(100vw - 40px));
  padding: 12px;
  background: #fff;
  border: 1px solid rgba(17,17,17,.18);
  box-shadow: 0 16px 42px rgba(0,0,0,.14);
}
body.gtgf-v14 .nutrition-shopping__item-more small {
  display: block;
  color: #625d56 !important;
  font-size: .68rem !important;
  line-height: 1.45;
}
body.gtgf-v14 .nutrition-shopping__item-actions {
  display: flex !important;
  flex-wrap: wrap;
  gap: 6px !important;
  margin-top: 10px;
}
body.gtgf-v14 .nutrition-shopping__item-actions a,
body.gtgf-v14 .nutrition-shopping__item-actions button {
  min-height: 38px !important;
  display: inline-flex;
  align-items: center;
  padding: 7px 9px !important;
  border: 1px solid rgba(17,17,17,.18) !important;
  background: transparent !important;
  color: #222 !important;
  font-size: .64rem !important;
  font-weight: 800 !important;
}
body.gtgf-v14 .nutrition-shopping__category.is-pantry > summary {
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  list-style: none;
}
body.gtgf-v14 .nutrition-shopping__category.is-pantry > summary::-webkit-details-marker { display: none; }
body.gtgf-v14 .nutrition-shopping__category.is-pantry > summary > span:first-child {
  display: grid;
  gap: 2px;
}
body.gtgf-v14 .nutrition-shopping__category.is-pantry > summary strong {
  font-size: .82rem;
}
body.gtgf-v14 .nutrition-shopping__category.is-pantry > summary small,
body.gtgf-v14 .nutrition-shopping__category.is-pantry > summary > span:last-child {
  color: #77716a;
  font-size: .65rem;
}
body.gtgf-v14 .nutrition-shopping__footnote {
  margin-top: 12px !important;
  color: #77716a !important;
  font-size: .67rem !important;
  line-height: 1.45;
}

/* ---------- Recipe library: less card, more scan ---------- */
body.gtgf-v14 .recipe-grid {
  align-items: start;
}
body.gtgf-v14 .recipe-card {
  min-height: 0 !important;
  height: auto !important;
  padding: 22px !important;
}
body.gtgf-v14 .recipe-card h2 {
  margin: 22px 0 10px !important;
  font-size: clamp(1.45rem, 2.7vw, 2rem) !important;
  line-height: 1 !important;
}
body.gtgf-v14 .recipe-card > p:not(.eyebrow) {
  margin-bottom: 14px !important;
  font-size: .84rem !important;
  line-height: 1.5;
}
body.gtgf-v14 .recipe-card__meta {
  margin: 12px 0 !important;
  padding: 9px 0 !important;
}
body.gtgf-v14 .recipe-card__macro-grid {
  gap: 4px !important;
  margin: 10px 0 4px !important;
}
body.gtgf-v14 .recipe-card__macro-grid span {
  min-height: 48px !important;
  padding: 8px !important;
}
body.gtgf-v14 .recipe-card__macro-grid strong {
  font-size: .86rem !important;
}
body.gtgf-v14 .recipe-card__macro-grid small {
  font-size: .55rem !important;
}
body.gtgf-v14 .recipe-card__macro-note {
  font-size: .58rem !important;
}
body.gtgf-v14 .recipe-card__footer {
  gap: 8px !important;
  margin-top: 15px !important;
}
body.gtgf-v14 .recipe-card__link,
body.gtgf-v14 .recipe-card__shopping {
  min-height: 42px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 9px 11px !important;
  font-size: .66rem !important;
}
body.gtgf-v14 .recipe-single__ah-note {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(17,17,17,.14);
  color: #625d56;
}
body.gtgf-v14 .recipe-single__ah-note summary {
  min-height: 38px;
  display: flex;
  align-items: center;
  font-size: .68rem;
  font-weight: 800;
  cursor: pointer;
}
body.gtgf-v14 .recipe-single__ah-note p {
  font-size: .7rem !important;
  line-height: 1.5;
}

/* ---------- Mobile foundation ---------- */
@media (max-width: 760px) {
  :root {
    --v14-shell: calc(100vw - 28px);
    --v14-header-h: 70px;
  }
  html, body.gtgf-v14 { overflow-x: clip; }
  body.gtgf-v14 {
    font-size: 16px;
    line-height: 1.55;
  }
  body.gtgf-v14 .wrap,
  body.gtgf-v14 .v14-shell,
  body.gtgf-v14 .v14-footer-top,
  body.gtgf-v14 .v14-footer-bottom {
    width: calc(100vw - 28px) !important;
    max-width: none !important;
  }
  body.gtgf-v14 h1 { font-size: clamp(2.35rem, 12vw, 3.35rem) !important; line-height: .92 !important; }
  body.gtgf-v14 h2 { font-size: clamp(2rem, 9vw, 2.8rem) !important; line-height: .95 !important; }
  body.gtgf-v14 h3 { font-size: clamp(1.35rem, 6.4vw, 1.8rem) !important; line-height: 1.02 !important; }
  body.gtgf-v14 .page-hero { min-height: 0 !important; padding: 52px 0 42px !important; }
  body.gtgf-v14 .page-hero__inner { gap: 13px !important; }
  body.gtgf-v14 .page-hero__intro { max-width: 38ch; font-size: .92rem !important; line-height: 1.5 !important; }
  body.gtgf-v14 .section { padding-block: 48px !important; }
  body.gtgf-v14 button,
  body.gtgf-v14 .button,
  body.gtgf-v14 .v14-btn { touch-action: manipulation; }
  body.gtgf-v14 input:not([type="checkbox"]):not([type="radio"]),
  body.gtgf-v14 select,
  body.gtgf-v14 textarea {
    min-height: 48px !important;
    font-size: 16px !important;
  }
  body.gtgf-v14 .v14-site-header { height: 70px; }
  body.gtgf-v14 .v14-header-inner {
    width: calc(100vw - 24px) !important;
    grid-template-columns: minmax(0,1fr) auto !important;
    gap: 10px !important;
  }
  body.gtgf-v14 .v14-brand img { max-width: 128px !important; max-height: 44px !important; }

  /* Training planner: restore readable controls and one-column results. */
  body.gtgf-v14 .planner-section { padding-top: 26px !important; }
  body.gtgf-v14 .planner-layout { width: calc(100vw - 20px) !important; }
  body.gtgf-v14 .planner-tool,
  body.gtgf-v14 .planner-form,
  body.gtgf-v14 .planner-wizard { width: 100% !important; min-width: 0 !important; }
  body.gtgf-v14 .planner-wizard__top {
    display: block !important;
    padding: 16px 12px 0 !important;
  }
  body.gtgf-v14 .planner-wizard__intro { display: none !important; }
  body.gtgf-v14 .planner-wizard__progress {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(4,minmax(0,1fr)) !important;
    gap: 0 !important;
    overflow: visible !important;
    border-bottom: 1px solid rgba(255,255,255,.16);
  }
  body.gtgf-v14 .planner-wizard__progress button {
    min-width: 0 !important;
    min-height: 52px !important;
    display: grid !important;
    align-content: center !important;
    gap: 2px !important;
    padding: 7px 3px !important;
    border: 0 !important;
    border-bottom: 3px solid transparent !important;
    background: transparent !important;
  }
  body.gtgf-v14 .planner-wizard__progress button.is-active { border-bottom-color: #ff5a00 !important; }
  body.gtgf-v14 .planner-wizard__progress button span { font-size: .64rem !important; line-height: 1 !important; }
  body.gtgf-v14 .planner-wizard__progress button strong { font-size: .76rem !important; line-height: 1.15 !important; }
  body.gtgf-v14 .planner-wizard__body { padding: 18px 14px 14px !important; }
  body.gtgf-v14 .planner-step { padding: 0 !important; }
  body.gtgf-v14 .planner-step legend {
    margin-bottom: 8px !important;
    font-size: 1.35rem !important;
    line-height: 1.05 !important;
  }
  body.gtgf-v14 .planner-step legend span {
    margin-bottom: 5px;
    font-size: .62rem !important;
  }
  body.gtgf-v14 .planner-step__intro {
    margin-bottom: 16px !important;
    font-size: .9rem !important;
    line-height: 1.5 !important;
  }
  body.gtgf-v14 .planner-fields,
  body.gtgf-v14 .planner-fields--step,
  body.gtgf-v14 .planner-calendar-fields {
    grid-template-columns: 1fr !important;
    gap: 13px !important;
  }
  body.gtgf-v14 .planner-field { min-width: 0 !important; }
  body.gtgf-v14 .planner-field label {
    margin-bottom: 6px !important;
    font-size: .82rem !important;
    line-height: 1.3 !important;
  }
  body.gtgf-v14 .planner-field input,
  body.gtgf-v14 .planner-field select,
  body.gtgf-v14 .planner-field textarea {
    min-height: 50px !important;
    padding: 11px 12px !important;
    font-size: 16px !important;
    line-height: 1.25 !important;
  }
  body.gtgf-v14 .planner-advanced-option summary,
  body.gtgf-v14 .planner-calendar-option summary {
    min-height: 46px !important;
    display: flex !important;
    align-items: center !important;
    font-size: .8rem !important;
  }
  body.gtgf-v14 .planner-v15-style-grid { grid-template-columns: 1fr !important; gap: 8px !important; }
  body.gtgf-v14 .planner-v15-choice span { min-height: 64px; padding: 12px !important; }
  body.gtgf-v14 .planner-v15-choice strong { font-size: .9rem !important; }
  body.gtgf-v14 .planner-v15-choice small { font-size: .78rem !important; line-height: 1.4 !important; }
  body.gtgf-v14 .planner-v15-availability {
    grid-template-columns: repeat(4,minmax(0,1fr)) !important;
    gap: 7px !important;
  }
  body.gtgf-v14 .planner-v15-day span {
    min-height: 46px !important;
    display: grid !important;
    place-items: center !important;
    padding: 8px 4px !important;
    font-size: .8rem !important;
  }
  body.gtgf-v14 .planner-live-summary {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    margin-top: 14px !important;
    padding: 12px !important;
  }
  body.gtgf-v14 .planner-live-summary strong { font-size: .88rem !important; }
  body.gtgf-v14 .planner-live-summary small,
  body.gtgf-v14 .planner-coach-note,
  body.gtgf-v14 .planner-date-hint { font-size: .8rem !important; line-height: 1.5 !important; }
  body.gtgf-v14 .planner-wizard__actions {
    display: grid !important;
    grid-template-columns: minmax(94px,.7fr) minmax(0,1.3fr) !important;
    gap: 8px !important;
    padding: 14px !important;
  }
  body.gtgf-v14 .planner-wizard__actions button,
  body.gtgf-v14 .planner-form__actions .button {
    min-height: 50px !important;
    padding: 10px 12px !important;
    font-size: .82rem !important;
  }
  body.gtgf-v14 .planner-wizard__action-spacer { display: none !important; }
  body.gtgf-v14 .planner-week {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  body.gtgf-v14 .planner-week > * { min-width: 0 !important; }
  body.gtgf-v14 .planner-method-summary { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 8px !important; }
  body.gtgf-v14 .planner-summary__stats { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.gtgf-v14 .planner-results__actions,
  body.gtgf-v14 .planner-export__controls,
  body.gtgf-v14 .planner-save-form__actions { grid-template-columns: 1fr !important; flex-direction: column !important; align-items: stretch !important; }
  body.gtgf-v14 .planner-results__actions .button,
  body.gtgf-v14 .planner-export__controls .button { width: 100% !important; min-height: 48px !important; }
  body.gtgf-v14 .planner-week-tabs,
  body.gtgf-v14 .planner-week-navigation {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }
  body.gtgf-v14 .planner-action-summary,
  body.gtgf-v14 .planner-advice,
  body.gtgf-v14 .planner-week-advice,
  body.gtgf-v14 .planner-fuel-bridge { padding: 16px !important; }

  /* Nutrition planner: one decision at a time on mobile. */
  body.gtgf-v14 .nutrition-planner { padding-top: 34px !important; }
  body.gtgf-v14 .nutrition-form { padding: 14px !important; }
  body.gtgf-v14 .nutrition-mode {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
  body.gtgf-v14 .nutrition-mode__option span { min-height: 66px !important; padding: 12px !important; }
  body.gtgf-v14 .nutrition-mode__option strong { font-size: .9rem !important; }
  body.gtgf-v14 .nutrition-mode__option small { margin-top: 3px; font-size: .78rem !important; line-height: 1.4 !important; }
  body.gtgf-v14 .nutrition-form__core-grid,
  body.gtgf-v14 .nutrition-fields,
  body.gtgf-v14 .nutrition-fields--profile,
  body.gtgf-v14 .nutrition-fields--standalone,
  body.gtgf-v14 .nutrition-training-link__controls {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  body.gtgf-v14 .nutrition-form__panel { padding: 16px 0 !important; }
  body.gtgf-v14 .nutrition-form__section-head p { font-size: .88rem !important; line-height: 1.5 !important; }
  body.gtgf-v14 .nutrition-allergen-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 6px !important; }
  body.gtgf-v14 .nutrition-allergen-grid label { min-height: 46px !important; padding: 8px !important; font-size: .8rem !important; }
  body.gtgf-v14 .nutrition-form__footer {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  body.gtgf-v14 .nutrition-form__footer .button { width: 100%; min-height: 50px !important; }
  body.gtgf-v14 .nutrition-results__head { grid-template-columns: 1fr !important; gap: 10px !important; }
  body.gtgf-v14 .nutrition-results__legend { justify-content: flex-start !important; flex-wrap: wrap; }
  body.gtgf-v14 .nutrition-week-overview,
  body.gtgf-v14 .nutrition-load-strip { max-width: 100%; overflow-x: auto; }
  body.gtgf-v14 .nutrition-day { padding: 14px !important; }
  body.gtgf-v14 .nutrition-day__targets { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 6px !important; }
  body.gtgf-v14 .nutrition-day__targets span { padding: 9px !important; }

  /* Smart shopping becomes a phone list, not a dashboard. */
  body.gtgf-v14 .nutrition-shopping { margin-top: 32px !important; padding: 18px 0 !important; }
  body.gtgf-v14 .nutrition-shopping__head {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto !important;
    align-items: start !important;
    gap: 12px !important;
  }
  body.gtgf-v14 .nutrition-shopping__head h3 { font-size: 1.45rem !important; max-width: 17ch; }
  body.gtgf-v14 .nutrition-shopping__head p:not(.eyebrow) { display: none; }
  body.gtgf-v14 .nutrition-shopping__summary { min-width: 78px; padding: 10px; }
  body.gtgf-v14 .nutrition-shopping__summary strong { font-size: 1.65rem !important; }
  body.gtgf-v14 .nutrition-shopping__summary span { font-size: .66rem !important; }
  body.gtgf-v14 .nutrition-shopping__controls {
    display: grid !important;
    grid-template-columns: 1.25fr 1fr 1fr auto !important;
    gap: 5px !important;
  }
  body.gtgf-v14 .nutrition-shopping__controls > .button,
  body.gtgf-v14 .nutrition-shopping__more > summary {
    min-width: 0 !important;
    min-height: 44px !important;
    padding: 8px 6px !important;
    font-size: .7rem !important;
    letter-spacing: .015em !important;
    white-space: nowrap;
  }
  body.gtgf-v14 .nutrition-shopping__more > summary { width: 44px; justify-content: center; font-size: 0 !important; }
  body.gtgf-v14 .nutrition-shopping__more > summary:after { content: "•••"; font-size: .7rem; }
  body.gtgf-v14 .nutrition-shopping__ah-help { margin-bottom: 8px; }
  body.gtgf-v14 .nutrition-shopping__item-copy strong { font-size: .82rem !important; }
  body.gtgf-v14 .nutrition-shopping__amount { font-size: .78rem !important; }
  body.gtgf-v14 .nutrition-shopping__item-more > div { position: fixed; left: 14px; right: 14px; top: auto; bottom: 14px; width: auto; max-height: 48vh; overflow: auto; }

  /* Recipe library: filters and cards should scan quickly with one hand. */
  body.gtgf-v14 .recipe-library-tools { padding: 14px !important; }
  body.gtgf-v14 .recipe-library-tools__row { display: grid !important; grid-template-columns: 1fr !important; gap: 10px !important; }
  body.gtgf-v14 .recipe-filters {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 5px !important;
    max-width: 100%;
    overflow-x: auto;
    padding-bottom: 4px;
    overscroll-behavior-inline: contain;
  }
  body.gtgf-v14 .recipe-filters a { flex: 0 0 auto; min-height: 42px !important; padding: 9px 12px !important; font-size: .72rem !important; }
  body.gtgf-v14 .recipe-library-tools__actions { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 7px !important; }
  body.gtgf-v14 .recipe-library-tools__actions > * { min-width: 0 !important; }
  body.gtgf-v14 .recipe-library-tools__actions select { min-height: 46px !important; font-size: 16px !important; }
  body.gtgf-v14 .recipe-saved-filter,
  body.gtgf-v14 .recipe-shopping-link,
  body.gtgf-v14 .recipe-protein-filter { min-height: 46px !important; font-size: .74rem !important; }
  body.gtgf-v14 .recipe-grid { grid-template-columns: 1fr !important; gap: 10px !important; }
  body.gtgf-v14 .recipe-card { min-height: 0 !important; padding: 16px !important; }
  body.gtgf-v14 .recipe-card__top { align-items: center !important; gap: 8px !important; }
  body.gtgf-v14 .recipe-card__top .eyebrow { font-size: .66rem !important; }
  body.gtgf-v14 .recipe-card__energy,
  body.gtgf-v14 .recipe-save { min-height: 36px !important; padding: 7px 9px !important; font-size: .66rem !important; }
  body.gtgf-v14 .recipe-card h2 { margin: 14px 0 7px !important; font-size: 1.42rem !important; }
  body.gtgf-v14 .recipe-card > p:not(.eyebrow) {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-size: .84rem !important;
    line-height: 1.45 !important;
  }
  body.gtgf-v14 .recipe-card__meta { margin: 8px 0 !important; padding: 7px 0 !important; font-size: .72rem !important; }
  body.gtgf-v14 .recipe-card__macro-grid { grid-template-columns: repeat(4,minmax(0,1fr)) !important; }
  body.gtgf-v14 .recipe-card__macro-grid span { min-height: 44px !important; padding: 6px 3px !important; }
  body.gtgf-v14 .recipe-card__macro-grid strong { font-size: .78rem !important; }
  body.gtgf-v14 .recipe-card__macro-grid small { font-size: .58rem !important; line-height: 1.2 !important; }
  body.gtgf-v14 .recipe-card__macro-note { display: none !important; }
  body.gtgf-v14 .recipe-card__footer { display: grid !important; grid-template-columns: 1fr auto !important; }
  body.gtgf-v14 .recipe-card__link,
  body.gtgf-v14 .recipe-card__shopping { min-height: 42px !important; font-size: .72rem !important; }
  body.gtgf-v14 .recipe-single { grid-template-columns: 1fr !important; gap: 18px !important; }
  body.gtgf-v14 .recipe-single__facts { position: static !important; padding: 14px !important; }
  body.gtgf-v14 .recipe-single__buttons { display: grid !important; grid-template-columns: 1fr !important; gap: 6px !important; }
  body.gtgf-v14 .recipe-single__buttons .button,
  body.gtgf-v14 .recipe-print { width: 100%; min-height: 46px !important; }

  /* v15.18 mobile QA: high-traffic public routes never keep desktop grids. */
  body.gtgf-v14 .events-intro__grid,
  body.gtgf-v14 .events-filter-layout,
  body.gtgf-v14 .events-community-cta__grid,
  body.gtgf-v14 .v156-featured-grid,
  body.gtgf-v14 .v153-knowledge-standard__grid,
  body.gtgf-v14 .v1515-topic-hubs__grid,
  body.gtgf-v14 .v156-route-grid,
  body.gtgf-v14 .v151-article-grid {
    grid-template-columns: 1fr !important;
    grid-template-areas: none !important;
    gap: 12px !important;
  }
  body.gtgf-v14 .events-filter-fields { grid-template-columns: 1fr !important; gap: 10px !important; }
  body.gtgf-v14 .events-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 7px !important; }
  body.gtgf-v14 .events-grid { grid-template-columns: 1fr !important; gap: 10px !important; }
  body.gtgf-v14 .events-filter-panel,
  body.gtgf-v14 .events-map-panel { grid-area: auto !important; }
  body.gtgf-v14 .events-filter-panel,
  body.gtgf-v14 .events-map-panel,
  body.gtgf-v14 .event-card,
  body.gtgf-v14 .v156-filter-panel { min-width: 0 !important; }
  body.gtgf-v14 .v156-filter-panel__body { padding: 14px !important; }
  body.gtgf-v14 .v156-knowledge-search input { min-height: 50px !important; font-size: 16px !important; }
  body.gtgf-v14 .recipe-library-more { display: flex; justify-content: center; padding: 20px 0 0; }
  body.gtgf-v14 .recipe-library-more .button { width: min(100%,360px); min-height: 48px !important; }

}

@media (max-width: 430px) {
  body.gtgf-v14 .planner-layout { width: calc(100vw - 16px) !important; }
  body.gtgf-v14 .planner-wizard__body { padding-inline: 11px !important; }
  body.gtgf-v14 .planner-v15-availability { grid-template-columns: repeat(4,minmax(0,1fr)) !important; }
  body.gtgf-v14 .planner-method-summary { grid-template-columns: 1fr !important; }
  body.gtgf-v14 .planner-wizard__actions { grid-template-columns: 1fr !important; }
  body.gtgf-v14 .planner-wizard__back { order: 2; }
  body.gtgf-v14 .nutrition-shopping__controls { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.gtgf-v14 #nutrition-shopping-ah { grid-column: 1 / -1; }
  body.gtgf-v14 .nutrition-shopping__more > summary { width: 100% !important; font-size: .72rem !important; }
  body.gtgf-v14 .nutrition-shopping__more > summary:after { content: none !important; }
  body.gtgf-v14 .recipe-library-tools__actions { grid-template-columns: 1fr !important; }
  body.gtgf-v14 .recipe-card__macro-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.gtgf-v14 .recipe-card__macro-grid span { min-height: 46px !important; }
}

@media (max-width: 360px) {
  body.gtgf-v14 .planner-wizard__progress { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.gtgf-v14 .planner-v15-availability { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
  body.gtgf-v14 .events-stat-grid { grid-template-columns: 1fr !important; }
}


/* ---------- GTGF v15.20 mobile planner hardening ----------
 * Permanent version of the 27 Aug live hotfix.
 * High-specificity selectors deliberately beat legacy compact rules that use
 * !important and desktop grids. Scoped to phones/tablets only.
 */
@media (max-width: 782px) {
  html body.gtgf-v14 #planner-goal-context.planner-goal-context,
  html body.gtgf-v14 #planner-level-context.planner-level-context {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    align-items: start !important;
    gap: 8px !important;
    width: 100% !important;
    min-width: 0 !important;
    margin-top: 10px !important;
    padding: 14px !important;
  }
  html body.gtgf-v14 #planner-goal-context.planner-goal-context > *,
  html body.gtgf-v14 #planner-level-context.planner-level-context > * {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }
  html body.gtgf-v14 #planner-goal-context.planner-goal-context span,
  html body.gtgf-v14 #planner-level-context.planner-level-context span {
    font-size: .72rem !important;
    line-height: 1.35 !important;
  }
  html body.gtgf-v14 #planner-goal-context.planner-goal-context span strong,
  html body.gtgf-v14 #planner-level-context.planner-level-context span strong {
    display: block !important;
    margin-top: 3px !important;
    font-size: 1rem !important;
    line-height: 1.1 !important;
  }
  html body.gtgf-v14 #planner-goal-context.planner-goal-context p,
  html body.gtgf-v14 #planner-level-context.planner-level-context p {
    margin: 0 !important;
    font-size: .9rem !important;
    line-height: 1.5 !important;
  }
  html body.gtgf-v14 #planner-goal-context.planner-goal-context .planner-recommended-action,
  html body.gtgf-v14 #planner-level-context.planner-level-context .planner-recommended-action {
    width: 100% !important;
    min-height: 46px !important;
    margin: 4px 0 0 !important;
    padding: 11px 12px !important;
    white-space: normal !important;
    font-size: .74rem !important;
    line-height: 1.25 !important;
  }

  html body.gtgf-v14 #planner-week-advice.planner-week-advice {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    align-items: start !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 14px !important;
  }
  html body.gtgf-v14 #planner-week-advice.planner-week-advice > * {
    min-width: 0 !important;
    max-width: 100% !important;
  }
  html body.gtgf-v14 #planner-week-advice.planner-week-advice .planner-week-advice__copy,
  html body.gtgf-v14 #planner-week-advice.planner-week-advice .planner-week-advice__copy * {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }
  html body.gtgf-v14 #planner-week-advice.planner-week-advice button {
    width: 100% !important;
    min-height: 44px !important;
    padding: 10px 12px !important;
    white-space: normal !important;
    font-size: .72rem !important;
  }

  html body.gtgf-v14 #planner-results.planner-results {
    width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
  }
  html body.gtgf-v14 #planner-results.planner-results > .planner-summary {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 16px !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 18px 16px !important;
  }
  html body.gtgf-v14 #planner-results.planner-results > .planner-summary > div {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  html body.gtgf-v14 #planner-results.planner-results .planner-summary .home-kicker {
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 0 8px !important;
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    font-size: .7rem !important;
    line-height: 1.2 !important;
    letter-spacing: .12em !important;
  }
  html body.gtgf-v14 #planner-results.planner-results #planner-title {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    font-size: clamp(2.1rem,10vw,3rem) !important;
    line-height: .88 !important;
    writing-mode: horizontal-tb !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }
  html body.gtgf-v14 #planner-results.planner-results .planner-summary__stats {
    display: grid !important;
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    gap: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  html body.gtgf-v14 #planner-results.planner-results .planner-summary__stats span {
    display: block !important;
    min-width: 0 !important;
    padding: 10px 10px 8px !important;
    border-left: 2px solid var(--v14-orange,#ff5a00) !important;
    font-size: .62rem !important;
    line-height: 1.25 !important;
    writing-mode: horizontal-tb !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }
  html body.gtgf-v14 #planner-results.planner-results .planner-summary__stats strong {
    display: block !important;
    min-width: 0 !important;
    margin: 0 0 5px !important;
    font-size: clamp(1rem,4.4vw,1.25rem) !important;
    line-height: 1.05 !important;
    writing-mode: horizontal-tb !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }

  html body.gtgf-v14 #planner-method-summary.planner-method-summary {
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 1px !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  html body.gtgf-v14 #planner-method-summary.planner-method-summary article {
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 14px !important;
    border: 0 !important;
    border-right: 0 !important;
    border-bottom: 1px solid #ddd !important;
  }
  html body.gtgf-v14 #planner-method-summary.planner-method-summary article strong {
    display: block !important;
    font-size: 1rem !important;
    line-height: 1.1 !important;
    writing-mode: horizontal-tb !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }
  html body.gtgf-v14 #planner-method-summary.planner-method-summary article p {
    margin: 6px 0 0 !important;
    font-size: .78rem !important;
    line-height: 1.45 !important;
    writing-mode: horizontal-tb !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }

  html body.gtgf-v14 #planner-architecture-summary.planner-architecture-summary {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 12px !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 18px 16px !important;
  }
  html body.gtgf-v14 #planner-architecture-summary.planner-architecture-summary > * {
    min-width: 0 !important;
    max-width: 100% !important;
    writing-mode: horizontal-tb !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }
  html body.gtgf-v14 #planner-architecture-summary.planner-architecture-summary p {
    font-size: .9rem !important;
    line-height: 1.55 !important;
  }

  html body.gtgf-v14 .planner-week-navigation {
    display: grid !important;
    grid-template-columns: 42px minmax(0,1fr) 42px !important;
    gap: 7px !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }
  html body.gtgf-v14 #planner-week-tabs.planner-week-tabs {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    white-space: nowrap !important;
    -webkit-overflow-scrolling: touch !important;
  }
  html body.gtgf-v14 #planner-week-heading.planner-week-heading {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 8px !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 18px 16px !important;
    align-items: start !important;
  }
  html body.gtgf-v14 #planner-week-heading.planner-week-heading > * {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    text-align: left !important;
    writing-mode: horizontal-tb !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }
  html body.gtgf-v14 #planner-week-heading.planner-week-heading strong {
    font-size: clamp(1.65rem,8vw,2.25rem) !important;
    line-height: .95 !important;
  }

  html body.gtgf-v14 #planner-week.planner-week {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }
  html body.gtgf-v14 #planner-week.planner-week > .planner-day {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 0 !important;
    padding: 18px 16px 16px !important;
    overflow: hidden !important;
    border: 1px solid rgba(17,17,17,.16) !important;
  }
  html body.gtgf-v14 #planner-week.planner-week .planner-day__top {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 12px !important;
    margin: -18px -16px 16px !important;
    padding: 12px 14px 11px 16px !important;
    font-size: .7rem !important;
    line-height: 1.25 !important;
  }
  html body.gtgf-v14 #planner-week.planner-week .planner-day h3,
  html body.gtgf-v14 #planner-week.planner-week .planner-session h3 {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 14px 0 8px !important;
    font-size: clamp(1.5rem,7vw,2rem) !important;
    line-height: .95 !important;
    writing-mode: horizontal-tb !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }
  html body.gtgf-v14 #planner-week.planner-week .planner-day__meta {
    margin: 0 0 10px !important;
    font-size: .76rem !important;
    line-height: 1.35 !important;
  }
  html body.gtgf-v14 #planner-week.planner-week .planner-day p,
  html body.gtgf-v14 #planner-week.planner-week .planner-session p {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-bottom: 12px !important;
    font-size: 1rem !important;
    line-height: 1.55 !important;
    writing-mode: horizontal-tb !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }
  html body.gtgf-v14 #planner-week.planner-week .planner-session__signals {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
  }
  html body.gtgf-v14 #planner-week.planner-week .planner-session__signals span {
    min-height: 28px !important;
    padding: 5px 8px !important;
    font-size: .62rem !important;
    line-height: 1.15 !important;
  }
  html body.gtgf-v14 #planner-week.planner-week .planner-day__open {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 48px !important;
    margin-top: 12px !important;
    padding: 12px !important;
    font-size: .8rem !important;
    line-height: 1.3 !important;
    white-space: normal !important;
  }
  html body.gtgf-v14 #planner-week.planner-week .planner-day.has-double::after,
  html body.gtgf-v14 #planner-week.planner-week .planner-day.has-triple::after {
    display: none !important;
  }
}

@media (max-width: 430px) {
  html body.gtgf-v14 #planner-results.planner-results .planner-summary__stats {
    grid-template-columns: minmax(0,1fr) !important;
  }
  html body.gtgf-v14 #planner-results.planner-results .planner-summary__stats span {
    border-left: 0 !important;
    border-top: 2px solid var(--v14-orange,#ff5a00) !important;
  }
  html body.gtgf-v14 #planner-method-summary.planner-method-summary {
    grid-template-columns: minmax(0,1fr) !important;
  }
}


/* ===== v15.21 complete site-wide mobile audit layer ===== */

/*
 * GTGF v15.21 — Complete Mobile Site Rebuild
 * Final cascade layer for phones/tablets. Loaded after every legacy, route,
 * compact and platform stylesheet. The goal is predictable mobile structure,
 * not a scaled-down desktop layout.
 */

/* ---------- Mobile navigation / shell ---------- */
@media (max-width: 1020px) {
  html { scroll-padding-top: 82px; }
  body.gtgf-v14 { overflow-x: clip !important; }
  body.gtgf-v14 .v14-site-header {
    height: 72px !important;
    min-height: 72px !important;
  }
  body.gtgf-v14 .v14-header-inner {
    width: calc(100vw - 24px) !important;
    max-width: none !important;
    grid-template-columns: minmax(0,1fr) auto !important;
    gap: 10px !important;
  }
  body.gtgf-v14 .v14-brand,
  body.gtgf-v14 .v14-brand__link { min-width: 0 !important; }
  body.gtgf-v14 .v14-brand img,
  body.gtgf-v14 .v14-brand__link img {
    width: auto !important;
    max-width: 150px !important;
    max-height: 48px !important;
  }
  body.gtgf-v14 .v14-desktop-nav,
  body.gtgf-v14 .v14-account-trigger { display: none !important; }
  body.gtgf-v14 .v14-mobile-toggle {
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    display: grid !important;
    place-content: center !important;
    padding: 0 !important;
  }
  body.gtgf-v14 .v14-mobile-toggle span { width: 22px !important; }
  body.gtgf-v14 .v14-mobile-menu {
    position: fixed !important;
    z-index: 10050 !important;
    left: 0 !important;
    right: 0 !important;
    top: 72px !important;
    width: 100vw !important;
    max-height: calc(100svh - 72px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    padding: 8px 18px calc(88px + env(safe-area-inset-bottom)) !important;
    background: #050505 !important;
  }
  body.admin-bar.gtgf-v14 .v14-mobile-menu { top: calc(72px + 46px) !important; }
  body.gtgf-v14 .v14-mobile-group > button {
    min-height: 56px !important;
    font-size: .98rem !important;
    line-height: 1.2 !important;
  }
  body.gtgf-v14 .v14-mobile-group a {
    min-height: 44px !important;
    padding: 10px 0 !important;
    font-size: .9rem !important;
    line-height: 1.35 !important;
  }
  body.gtgf-v14 .v14-mobile-actions {
    position: sticky !important;
    left: auto !important;
    right: auto !important;
    bottom: calc(-1 * (88px + env(safe-area-inset-bottom))) !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
    margin: 14px -18px calc(-88px - env(safe-area-inset-bottom)) !important;
    padding: 12px 18px calc(16px + env(safe-area-inset-bottom)) !important;
  }
}

/* ---------- Global phone foundation ---------- */
@media (max-width: 782px) {
  :root {
    --v14-shell: calc(100vw - 28px) !important;
    --v14-header-h: 72px !important;
  }

  html, body.gtgf-v14 { max-width: 100%; overflow-x: clip !important; }
  body.gtgf-v14 {
    font-size: 16px !important;
    line-height: 1.55 !important;
    -webkit-text-size-adjust: 100%;
  }
  body.gtgf-v14 *, body.gtgf-v14 *::before, body.gtgf-v14 *::after { box-sizing: border-box; }
  body.gtgf-v14 main,
  body.gtgf-v14 main > *,
  body.gtgf-v14 section,
  body.gtgf-v14 article,
  body.gtgf-v14 aside,
  body.gtgf-v14 form,
  body.gtgf-v14 fieldset { min-width: 0; }

  body.gtgf-v14 .wrap,
  body.gtgf-v14 .v14-shell,
  body.gtgf-v14 .v14-footer-top,
  body.gtgf-v14 .v14-footer-bottom {
    width: calc(100vw - 28px) !important;
    max-width: none !important;
    margin-inline: auto !important;
  }

  body.gtgf-v14 img,
  body.gtgf-v14 video,
  body.gtgf-v14 iframe,
  body.gtgf-v14 svg { max-width: 100%; }
  body.gtgf-v14 iframe { width: 100% !important; }

  body.gtgf-v14 h1,
  body.gtgf-v14 main:not(.v14-home-main):not(.v14-page) h1 {
    max-width: 100% !important;
    font-size: clamp(2.25rem, 11.5vw, 3.4rem) !important;
    line-height: .92 !important;
    letter-spacing: -.045em !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    text-wrap: balance;
  }
  body.gtgf-v14 h2,
  body.gtgf-v14 main:not(.v14-home-main):not(.v14-page) h2 {
    max-width: 100% !important;
    font-size: clamp(1.85rem, 9vw, 2.75rem) !important;
    line-height: .96 !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }
  body.gtgf-v14 h3 {
    max-width: 100% !important;
    font-size: clamp(1.3rem, 6.2vw, 1.8rem) !important;
    line-height: 1.02 !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }
  body.gtgf-v14 p,
  body.gtgf-v14 li,
  body.gtgf-v14 dd,
  body.gtgf-v14 dt,
  body.gtgf-v14 label {
    overflow-wrap: break-word;
    word-break: normal;
  }
  body.gtgf-v14 main p,
  body.gtgf-v14 main li { font-size: .92rem !important; line-height: 1.58 !important; }

  body.gtgf-v14 .v14-page > section,
  body.gtgf-v14 .v14-home-main > section,
  body.gtgf-v14 .section { padding-block: 46px !important; }
  body.gtgf-v14 .v14-page > section:first-child { padding-top: 48px !important; }
  body.gtgf-v14 .page-hero,
  body.gtgf-v14 .v14-page-hero { min-height: 0 !important; padding: 46px 0 38px !important; }
  body.gtgf-v14 .page-hero__inner,
  body.gtgf-v14 .v14-section-head--split,
  body.gtgf-v14 .section-head,
  body.gtgf-v14 .split {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 16px !important;
  }
  body.gtgf-v14 .page-hero__intro,
  body.gtgf-v14 .v14-lead { max-width: 100% !important; font-size: .96rem !important; line-height: 1.55 !important; }

  body.gtgf-v14 button,
  body.gtgf-v14 .button,
  body.gtgf-v14 .v14-btn,
  body.gtgf-v14 input:not([type="checkbox"]):not([type="radio"]),
  body.gtgf-v14 select,
  body.gtgf-v14 textarea { font-size: 16px !important; }
  body.gtgf-v14 button,
  body.gtgf-v14 .button,
  body.gtgf-v14 .v14-btn { min-height: 46px; }
  body.gtgf-v14 input:not([type="checkbox"]):not([type="radio"]),
  body.gtgf-v14 select { min-height: 48px !important; }
  body.gtgf-v14 textarea { min-height: 110px !important; }

  /* Generic desktop grids that occur throughout older GTGF templates. */
  body.gtgf-v14 .v14-product-grid,
  body.gtgf-v14 .v14-current-grid,
  body.gtgf-v14 .v14-step-grid,
  body.gtgf-v14 .v14-step-grid--four,
  body.gtgf-v14 .v14-level-grid,
  body.gtgf-v14 .v14-link-grid,
  body.gtgf-v14 .discipline-grid,
  body.gtgf-v14 .metric-grid,
  body.gtgf-v14 .principles,
  body.gtgf-v14 .supplement-grid,
  body.gtgf-v14 .feature-story,
  body.gtgf-v14 .week-band__grid,
  body.gtgf-v14 .project-band__grid,
  body.gtgf-v14 .home-section-title,
  body.gtgf-v14 .article-layout,
  body.gtgf-v14 .about-origin__grid,
  body.gtgf-v14 .about-definition__grid,
  body.gtgf-v14 .about-pillars__intro,
  body.gtgf-v14 .about-pillar-grid,
  body.gtgf-v14 .about-belong__grid,
  body.gtgf-v14 .roadmap-2028__grid,
  body.gtgf-v14 .story-evidence-grid,
  body.gtgf-v14 .split--story-chapter,
  body.gtgf-v14 .home-seo-band__grid {
    grid-template-columns: minmax(0,1fr) !important;
    grid-template-areas: none !important;
    gap: 12px !important;
  }

  /* ---------- Home ---------- */
  body.gtgf-v14 .v14-hero.v142-hero {
    min-height: calc(100svh - 72px) !important;
    max-height: none !important;
    align-items: end !important;
  }
  body.gtgf-v14 .v1516-hero-media { object-position: 58% center !important; }
  body.gtgf-v14 .v14-hero-shade {
    background: linear-gradient(0deg,rgba(0,0,0,.97) 0%,rgba(0,0,0,.78) 58%,rgba(0,0,0,.34) 100%) !important;
  }
  body.gtgf-v14 .v14-hero-content { padding: 88px 0 50px !important; }
  body.gtgf-v14 .v14-brand-heading {
    max-width: 100% !important;
    font-size: clamp(3.2rem, 16vw, 5rem) !important;
    line-height: .82 !important;
  }
  body.gtgf-v14 .v14-hero-actions,
  body.gtgf-v14 .v14-actions {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 8px !important;
    align-items: stretch !important;
  }
  body.gtgf-v14 .v14-hero-actions > *,
  body.gtgf-v14 .v14-actions > * { width: 100% !important; }
  body.gtgf-v14 .v14-goal-picker,
  body.gtgf-v14 .v151-goal-picker {
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 6px !important;
  }
  body.gtgf-v14 .v14-goal-picker button,
  body.gtgf-v14 .v151-goal-picker button { min-width: 0 !important; padding-inline: 8px !important; }
  body.gtgf-v14 .v142-story-grid,
  body.gtgf-v14 .v142-community-promo__grid,
  body.gtgf-v14 .v142-capability__grid,
  body.gtgf-v14 .v142-journey__grid,
  body.gtgf-v14 .v147-account-value__grid,
  body.gtgf-v14 .v151-discipline-grid,
  body.gtgf-v14 .v1514-training-clusters__grid {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 12px !important;
  }
  body.gtgf-v14 .v14-metrics,
  body.gtgf-v14 .v142-challenge-stats,
  body.gtgf-v14 .v142-hero-proof { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.gtgf-v14 .v14-product-card,
  body.gtgf-v14 .v14-current-card,
  body.gtgf-v14 .v151-discipline-card { min-height: 0 !important; }

  /* ---------- Training overview ---------- */
  body.gtgf-v14 .v142-training-hero__grid,
  body.gtgf-v14 .v142-training-outcomes__grid,
  body.gtgf-v14 .v142-discipline-media__grid,
  body.gtgf-v14 .v142-level-track,
  body.gtgf-v14 .v1514-training-clusters__grid {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 12px !important;
  }
  body.gtgf-v14 .v142-training-hero { padding-top: 28px !important; }
  body.gtgf-v14 .v142-training-hero__visual { min-height: 380px !important; }
  body.gtgf-v14 .v142-training-preview { left: 12px !important; right: 12px !important; bottom: 12px !important; }
  body.gtgf-v14 .v142-training-preview__days { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
  body.gtgf-v14 .v142-training-hero__proof { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.gtgf-v14 .v142-training-outcomes article,
  body.gtgf-v14 .v142-level-track article { min-height: 0 !important; }

  /* ---------- Planner: permanent one-column mobile app ---------- */
  html body.gtgf-v14 .planner-layout,
  html body.gtgf-v14 .planner-tool,
  html body.gtgf-v14 .planner-form,
  html body.gtgf-v14 .planner-wizard,
  html body.gtgf-v14 #planner-results.planner-results {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  html body.gtgf-v14 .planner-layout { display: block !important; }
  html body.gtgf-v14 .planner-wizard__top {
    display: block !important;
    grid-template-columns: 1fr !important;
    padding: 14px 12px 0 !important;
  }
  html body.gtgf-v14 .planner-wizard__intro { display: none !important; }
  html body.gtgf-v14 .planner-wizard__progress {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(4,minmax(0,1fr)) !important;
    overflow: visible !important;
  }
  html body.gtgf-v14 .planner-wizard__progress button {
    min-width: 0 !important;
    min-height: 52px !important;
    padding: 7px 3px !important;
  }
  html body.gtgf-v14 .planner-wizard__body,
  html body.gtgf-v14 .planner-fields,
  html body.gtgf-v14 .planner-fields--step,
  html body.gtgf-v14 .planner-calendar-fields,
  html body.gtgf-v14 .planner-v15-style-grid,
  html body.gtgf-v14 .planner-live-summary,
  html body.gtgf-v14 .planner-mail-form__fields,
  html body.gtgf-v14 .planner-auth-grid,
  html body.gtgf-v14 .planner-save-form__actions,
  html body.gtgf-v14 .planner-export__controls,
  html body.gtgf-v14 .planner-results__actions {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 10px !important;
  }
  html body.gtgf-v14 .planner-wizard__body { display: block !important; min-height: 0 !important; padding: 16px 12px !important; }
  html body.gtgf-v14 .planner-sidebar { display: none !important; }
  html body.gtgf-v14 .planner-v15-availability { grid-template-columns: repeat(4,minmax(0,1fr)) !important; gap: 6px !important; }
  html body.gtgf-v14 #planner-goal-context.planner-goal-context,
  html body.gtgf-v14 #planner-level-context.planner-level-context,
  html body.gtgf-v14 #planner-week-advice.planner-week-advice,
  html body.gtgf-v14 #planner-architecture-summary.planner-architecture-summary {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 9px !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 14px !important;
  }
  html body.gtgf-v14 #planner-goal-context.planner-goal-context > *,
  html body.gtgf-v14 #planner-level-context.planner-level-context > *,
  html body.gtgf-v14 #planner-week-advice.planner-week-advice > *,
  html body.gtgf-v14 #planner-architecture-summary.planner-architecture-summary > * {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }
  html body.gtgf-v14 #planner-results.planner-results > .planner-summary {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 14px !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 18px 16px !important;
  }
  html body.gtgf-v14 #planner-results .planner-summary .home-kicker,
  html body.gtgf-v14 #planner-results #planner-title {
    width: 100% !important;
    max-width: 100% !important;
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }
  html body.gtgf-v14 #planner-results #planner-title { font-size: clamp(2rem,10vw,2.85rem) !important; line-height: .9 !important; }
  html body.gtgf-v14 #planner-results .planner-summary__stats {
    display: grid !important;
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    width: 100% !important;
  }
  html body.gtgf-v14 #planner-results .planner-summary__stats span,
  html body.gtgf-v14 #planner-results .planner-summary__stats strong {
    min-width: 0 !important;
    writing-mode: horizontal-tb !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }
  html body.gtgf-v14 #planner-method-summary.planner-method-summary {
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 1px !important;
    width: 100% !important;
  }
  html body.gtgf-v14 .planner-week-navigation {
    display: grid !important;
    grid-template-columns: 42px minmax(0,1fr) 42px !important;
    width: 100% !important;
    gap: 6px !important;
    overflow: hidden !important;
  }
  html body.gtgf-v14 #planner-week-tabs.planner-week-tabs { overflow-x: auto !important; white-space: nowrap !important; }
  html body.gtgf-v14 #planner-week-heading.planner-week-heading {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 8px !important;
    width: 100% !important;
    padding: 18px 16px !important;
  }
  html body.gtgf-v14 #planner-week.planner-week {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
  }
  html body.gtgf-v14 #planner-week.planner-week > .planner-day {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    padding: 18px 16px 16px !important;
  }
  html body.gtgf-v14 #planner-week .planner-day h3,
  html body.gtgf-v14 #planner-week .planner-session h3,
  html body.gtgf-v14 #planner-week .planner-day p,
  html body.gtgf-v14 #planner-week .planner-session p {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    writing-mode: horizontal-tb !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }
  html body.gtgf-v14 #planner-week .planner-day h3,
  html body.gtgf-v14 #planner-week .planner-session h3 { font-size: clamp(1.45rem,7vw,1.95rem) !important; }
  html body.gtgf-v14 #planner-week .planner-day p,
  html body.gtgf-v14 #planner-week .planner-session p { font-size: .96rem !important; line-height: 1.55 !important; }
  html body.gtgf-v14 #planner-week .planner-day__open { width: 100% !important; min-height: 48px !important; }
  html body.gtgf-v14 #planner-week .planner-day.has-double::after,
  html body.gtgf-v14 #planner-week .planner-day.has-triple::after { display: none !important; }

  /* ---------- Nutrition centre / planner ---------- */
  body.gtgf-v14 .v148-fuel-intro__grid,
  body.gtgf-v14 .v154-fuel-reference__grid,
  body.gtgf-v14 .v154-nutrition-centre__grid,
  body.gtgf-v14 .v154-nutrition-principles__grid,
  body.gtgf-v14 .v154-nutrition-tools__grid,
  body.gtgf-v14 .v1515-nutrition-day-grid,
  body.gtgf-v14 .v1515-nutrition-faq__grid,
  body.gtgf-v14 .v1515-nutrition-search__grid,
  body.gtgf-v14 .nutrition-planner__intro,
  body.gtgf-v14 .nutrition-form__core-grid,
  body.gtgf-v14 .nutrition-fields,
  body.gtgf-v14 .nutrition-fields--profile,
  body.gtgf-v14 .nutrition-fields--standalone,
  body.gtgf-v14 .nutrition-training-link__intro,
  body.gtgf-v14 .nutrition-training-link__controls,
  body.gtgf-v14 .nutrition-form__footer,
  body.gtgf-v14 .nutrition-results__head {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 10px !important;
  }
  body.gtgf-v14 .nutrition-mode { grid-template-columns: minmax(0,1fr) !important; gap: 7px !important; }
  body.gtgf-v14 .nutrition-form { padding: 14px !important; }
  body.gtgf-v14 .nutrition-form__panel { padding: 14px !important; }
  body.gtgf-v14 .nutrition-form__section-head { display: block !important; }
  body.gtgf-v14 .nutrition-form__section-head > p:last-child { width: 100% !important; max-width: 100% !important; margin: 6px 0 0 !important; }
  body.gtgf-v14 .nutrition-allergen-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 6px !important; }
  body.gtgf-v14 .nutrition-week-overview,
  body.gtgf-v14 .nutrition-load-strip { max-width: 100% !important; overflow-x: auto !important; }
  body.gtgf-v14 .nutrition-day { padding: 14px !important; }
  body.gtgf-v14 .nutrition-day__targets { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 6px !important; }
  body.gtgf-v14 .nutrition-meal__toggle { grid-template-columns: minmax(0,1fr) auto !important; gap: 8px !important; }
  body.gtgf-v14 .nutrition-shopping { padding: 16px 0 !important; }
  body.gtgf-v14 .nutrition-shopping__head { grid-template-columns: minmax(0,1fr) auto !important; gap: 10px !important; align-items: start !important; }
  body.gtgf-v14 .nutrition-shopping__controls { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 6px !important; }
  body.gtgf-v14 .nutrition-shopping__controls > * { min-width: 0 !important; }
  body.gtgf-v14 .nutrition-shopping__item { grid-template-columns: 34px minmax(0,1fr) 38px !important; gap: 8px !important; }
  body.gtgf-v14 .nutrition-shopping__item-copy { grid-template-columns: minmax(0,1fr) auto !important; }

  /* ---------- Recipes ---------- */
  body.gtgf-v14 .recipe-library-tools__row,
  body.gtgf-v14 .recipe-grid,
  body.gtgf-v14 .recipe-single,
  body.gtgf-v14 .recipe-mail__grid { grid-template-columns: minmax(0,1fr) !important; gap: 12px !important; }
  body.gtgf-v14 .recipe-filters { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto !important; gap: 5px !important; }
  body.gtgf-v14 .recipe-filters > * { flex: 0 0 auto; }
  body.gtgf-v14 .recipe-library-tools__actions { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 6px !important; }
  body.gtgf-v14 .recipe-card { min-height: 0 !important; padding: 16px !important; }
  body.gtgf-v14 .recipe-card__macro-grid { grid-template-columns: repeat(4,minmax(0,1fr)) !important; gap: 4px !important; }
  body.gtgf-v14 .recipe-card__footer { grid-template-columns: minmax(0,1fr) auto !important; gap: 6px !important; }
  body.gtgf-v14 .recipe-single__facts { position: static !important; }
  body.gtgf-v14 .recipe-single__buttons { grid-template-columns: minmax(0,1fr) !important; gap: 6px !important; }

  /* ---------- Events ---------- */
  body.gtgf-v14 .events-intro__grid,
  body.gtgf-v14 .events-filter-layout,
  body.gtgf-v14 .events-community-cta__grid,
  body.gtgf-v14 .events-filter-fields,
  body.gtgf-v14 .events-grid,
  body.gtgf-v14 .seo-link-grid,
  body.gtgf-v14 .v1515-event-context__grid,
  body.gtgf-v14 .v1515-event-context__cards,
  body.gtgf-v14 .v1515-event-learning__grid,
  body.gtgf-v14 .v1515-event-snapshot__grid {
    grid-template-columns: minmax(0,1fr) !important;
    grid-template-areas: none !important;
    gap: 10px !important;
  }
  body.gtgf-v14 .events-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 6px !important; }
  body.gtgf-v14 .events-filter-panel,
  body.gtgf-v14 .events-map-panel { grid-area: auto !important; min-width: 0 !important; }
  body.gtgf-v14 .events-map-figure { min-height: 0 !important; }
  body.gtgf-v14 .events-map-image { width: 100% !important; height: auto !important; }
  body.gtgf-v14 .event-card { grid-template-columns: 72px minmax(0,1fr) !important; min-width: 0 !important; }
  body.gtgf-v14 .event-card__date { padding: 14px 8px !important; }
  body.gtgf-v14 .event-card__date strong { font-size: 1.7rem !important; }
  body.gtgf-v14 .event-card__body { min-width: 0 !important; padding: 14px !important; }
  body.gtgf-v14 .event-card h3 { font-size: 1.25rem !important; line-height: 1.05 !important; }
  body.gtgf-v14 .event-card__footer,
  body.gtgf-v14 .event-card__footer-actions { flex-wrap: wrap !important; gap: 6px !important; }

  /* ---------- Knowledge centre and articles ---------- */
  body.gtgf-v14 .v156-knowledge-hero__inner,
  body.gtgf-v14 .v156-section-head,
  body.gtgf-v14 .v156-featured-grid,
  body.gtgf-v14 .v153-knowledge-standard__grid,
  body.gtgf-v14 .v1515-topic-hubs__grid,
  body.gtgf-v14 .v156-route-grid,
  body.gtgf-v14 .v151-article-grid,
  body.gtgf-v14 .v145-article-grid,
  body.gtgf-v14 .v145-article-hero__grid,
  body.gtgf-v14 .v145-article-layout,
  body.gtgf-v14 .v153-related-knowledge__grid,
  body.gtgf-v14 .v1515-article-hubs {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 12px !important;
  }
  body.gtgf-v14 .v156-filter-panel { position: static !important; min-width: 0 !important; }
  body.gtgf-v14 .v156-filter-panel__body { padding: 14px !important; }
  body.gtgf-v14 .v156-knowledge-search { width: 100% !important; }
  body.gtgf-v14 .v156-knowledge-search input { width: 100% !important; min-height: 50px !important; }
  body.gtgf-v14 .v145-article-nav { position: static !important; width: 100% !important; }
  body.gtgf-v14 .v145-article-content { min-width: 0 !important; }
  body.gtgf-v14 .gtgf-article-sources,
  body.gtgf-v14 .gtgf-article-research { overflow-x: auto !important; }

  /* Visual explainer blocks inside knowledge articles. */
  body.gtgf-v14 .v155-data-flow,
  body.gtgf-v14 .v155-recovery-bars,
  body.gtgf-v14 .v155-stairs,
  body.gtgf-v14 .v155-camp-curve,
  body.gtgf-v14 .v157-zone-strip,
  body.gtgf-v14 .v157-concurrent,
  body.gtgf-v14 .v157-energy-balance,
  body.gtgf-v14 .v157-monitor-flow,
  body.gtgf-v14 .v157-environment,
  body.gtgf-v14 .v157-hydration-scale,
  body.gtgf-v14 .v157-traffic { grid-template-columns: minmax(0,1fr) !important; }
  body.gtgf-v14 .v155-week-chart,
  body.gtgf-v14 .v155-taper-chart,
  body.gtgf-v14 .v157-week-bars { overflow-x: auto !important; min-width: 0 !important; }

  /* ---------- Training week / Portugal ---------- */
  body.gtgf-v14 .trip-v146-hero__grid,
  body.gtgf-v14 .trip-v146-promise__grid,
  body.gtgf-v14 .trip-package-grid,
  body.gtgf-v14 .trip-booking__grid,
  body.gtgf-v14 .trip-v148-decision__grid,
  body.gtgf-v14 .trip-v158-clarity-grid,
  body.gtgf-v14 .trip-v158-package-grid,
  body.gtgf-v14 .trip-v158-extra-grid,
  body.gtgf-v14 .trip-v158-rules__grid,
  body.gtgf-v14 .trip-v161-package-grid,
  body.gtgf-v14 .trip-v161-self-block,
  body.gtgf-v14 .casa-location__grid,
  body.gtgf-v14 .casa-bed-grid,
  body.gtgf-v14 .casa-review-grid,
  body.gtgf-v14 .casa-sleeping,
  body.gtgf-v14 .casa-cta__inner {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 12px !important;
  }
  body.gtgf-v14 .trip-v146-hero__grid { min-height: 0 !important; padding: 76px 0 24px !important; }
  body.gtgf-v14 .trip-v146-hero__facts { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.gtgf-v14 .trip-v147-casa-rail__grid,
  body.gtgf-v14 .casa-gallery-v147__grid { grid-template-columns: minmax(0,1fr) !important; gap: 7px !important; }
  body.gtgf-v14 .trip-v147-casa-rail figure,
  body.gtgf-v14 .casa-gallery-v147__grid figure,
  body.gtgf-v14 .casa-gallery-v147__grid figure.is-wide { min-height: 230px !important; }
  body.gtgf-v14 .trip-v161-ladder { grid-template-columns: minmax(0,1fr) !important; gap: 7px !important; }
  body.gtgf-v14 .trip-v161-ladder__plus { transform: rotate(90deg) !important; min-height: 20px !important; }
  body.gtgf-v14 .trip-v161-comparison { width: 100% !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch; }
  body.gtgf-v14 .trip-v161-comparison__table { min-width: 650px !important; }
  body.gtgf-v14 .booking-calendar-wrap { overflow-x: auto !important; }
  body.gtgf-v14 .booking-calendar__weekdays,
  body.gtgf-v14 .booking-calendar { min-width: 315px !important; }
  body.gtgf-v14 .casa-location__map iframe { aspect-ratio: 4 / 3 !important; height: auto !important; min-height: 280px !important; }

  /* ---------- About ---------- */
  body.gtgf-v14 .v142-about-hero__grid,
  body.gtgf-v14 .v142-about-problem__grid,
  body.gtgf-v14 .v142-about-project__grid,
  body.gtgf-v14 .v146-origin__grid,
  body.gtgf-v14 .v142-about-route__flow {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 14px !important;
  }
  body.gtgf-v14 .v142-about-hero__media { min-height: 340px !important; }
  body.gtgf-v14 .v142-about-route__flow article { min-height: 0 !important; padding: 18px !important; }
  body.gtgf-v14 .v142-about-route__flow h3 { margin-top: 28px !important; }
  body.gtgf-v14 .v142-about-project__statement { justify-items: start !important; }

  /* ---------- Join / login ---------- */
  body.gtgf-v14 .join-grid,
  body.gtgf-v14 .join-choice-grid,
  body.gtgf-v14 .join-form__columns,
  body.gtgf-v14 .v147-join-account__grid,
  body.gtgf-v14 .login-intro,
  body.gtgf-v14 .login-auth-grid,
  body.gtgf-v14 .planner-auth-grid {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 12px !important;
  }
  body.gtgf-v14 .login-section { min-height: 0 !important; padding: 34px 0 50px !important; }
  body.gtgf-v14 .planner-auth-card,
  body.gtgf-v14 .login-account-card,
  body.gtgf-v14 .login-intro-card,
  body.gtgf-v14 .login-register-card { min-height: 0 !important; height: auto !important; padding: 18px !important; }
  body.gtgf-v14 .join-form,
  body.gtgf-v14 .planner-auth-card form { width: 100% !important; }

  /* ---------- Club / community ---------- */
  body.gtgf-v14 .gtgf-community-feed,
  body.gtgf-v14 .gtgf-community-dashboard-teaser,
  body.gtgf-v14 .gtgf-community-dashboard-teaser__grid,
  body.gtgf-v14 .gtgf-community-overview-grid,
  body.gtgf-v14 .gtgf-sharing-options,
  body.gtgf-v14 .gtgf-sharing-automation,
  body.gtgf-v14 .gtgf-private-ranking-preview,
  body.gtgf-v14 .gtgf-ae-checkin-grid,
  body.gtgf-v14 .gtgf-strava-shell {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 10px !important;
  }
  body.gtgf-v14 .gtgf-club-hero__stats,
  body.gtgf-v14 .gtgf-community-overview-card__metric,
  body.gtgf-v14 .gtgf-private-strava-totals { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.gtgf-v14 .gtgf-club-nav,
  body.gtgf-v14 .gtgf-metric-tabs,
  body.gtgf-v14 .gtgf-week-switcher {
    max-width: 100% !important;
    overflow-x: auto !important;
    flex-wrap: nowrap !important;
    -webkit-overflow-scrolling: touch;
  }
  body.gtgf-v14 .gtgf-club-nav > *,
  body.gtgf-v14 .gtgf-metric-tabs > *,
  body.gtgf-v14 .gtgf-week-switcher > * { flex: 0 0 auto; }
  body.gtgf-v14 .gtgf-club-rank,
  body.gtgf-v14 .gtgf-community-v144 .gtgf-club-rank {
    grid-template-columns: 28px 36px minmax(0,1fr) auto !important;
    gap: 7px !important;
    padding: 9px !important;
  }
  body.gtgf-v14 .gtgf-community-compose__bottom,
  body.gtgf-v14 .gtgf-sync-row { flex-wrap: wrap !important; gap: 7px !important; }
  body.gtgf-v14 .gtgf-ae-week-bars { min-width: 420px !important; }
  body.gtgf-v14 .gtgf-ae-week-bars-wrap { overflow-x: auto !important; }
  body.gtgf-v14 .gtgf-ae-toast { grid-template-columns: 42px minmax(0,1fr) !important; }
  body.gtgf-v14 .gtgf-ae-toast > :last-child { grid-column: 1 / -1 !important; }

  /* ---------- My GTGF dashboard ---------- */
  body.gtgf-v14 .member-profile-grid,
  body.gtgf-v14 .member-form-grid,
  body.gtgf-v14 .member-plan-grid,
  body.gtgf-v14 .member-event-grid,
  body.gtgf-v14 .v145-dashboard-actions,
  body.gtgf-v14 .v151-dashboard-actions,
  body.gtgf-v14 .v145-plan-panel {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 10px !important;
  }
  body.gtgf-v14 .member-stats { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 6px !important; }
  body.gtgf-v14 .member-section__head,
  body.gtgf-v14 .member-welcome,
  body.gtgf-v14 .v14-member-stage__head,
  body.gtgf-v14 .v14-member-progress-head { grid-template-columns: minmax(0,1fr) !important; gap: 10px !important; }
  body.gtgf-v14 .v14-dashboard-nav,
  body.gtgf-v14 .gtgf-v15-member-nav,
  body.gtgf-v14 .v145-planning-tabs {
    max-width: 100% !important;
    overflow-x: auto !important;
    flex-wrap: nowrap !important;
    -webkit-overflow-scrolling: touch;
  }
  body.gtgf-v14 .v14-dashboard-nav a,
  body.gtgf-v14 .gtgf-v15-member-nav a,
  body.gtgf-v14 .v145-planning-tabs > * { flex: 0 0 auto !important; }

  /* ---------- Story / editorial longform ---------- */
  body.gtgf-v14 .v1512-story-lead,
  body.gtgf-v14 .v1512-values,
  body.gtgf-v14 .v1512-completeness,
  body.gtgf-v14 .v1512-gates,
  body.gtgf-v14 .v1512-decision-table > div,
  body.gtgf-v14 .v1512-roadmap,
  body.gtgf-v14 .v1512-story-proof,
  body.gtgf-v14 .v1512-story-ending__grid {
    grid-template-columns: minmax(0,1fr) !important;
  }
  body.gtgf-v14 .v1512-metric-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.gtgf-v14 .v1512-story-nav { top: 72px !important; overflow-x: auto !important; }

  /* ---------- Feedback dialog ---------- */
  body.gtgf-v14 .gtgf-feedback {
    width: calc(100vw - 20px) !important;
    max-width: none !important;
    max-height: calc(100svh - 20px) !important;
    margin: auto !important;
    padding: 0 !important;
  }
  body.gtgf-v14 .gtgf-feedback__form { padding: 16px !important; }
  body.gtgf-v14 .gtgf-feedback__head { display: grid !important; grid-template-columns: minmax(0,1fr) auto !important; gap: 8px !important; }
  body.gtgf-v14 .gtgf-feedback__head h2 { font-size: 1.65rem !important; }
  body.gtgf-v14 .gtgf-feedback__actions { display: grid !important; grid-template-columns: minmax(0,1fr) !important; gap: 8px !important; }

  /* ---------- Footer ---------- */
  body.gtgf-v14 .v14-site-footer .v14-footer-top {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 24px 18px !important;
    padding: 32px 0 26px !important;
  }
  body.gtgf-v14 .v14-footer-brand { grid-column: 1 / -1 !important; }
  body.gtgf-v14 .v14-site-footer .v14-footer-column h2 { font-size: .72rem !important; }
  body.gtgf-v14 .v14-site-footer .v14-footer-column a,
  body.gtgf-v14 .v14-site-footer .v14-footer-muted { font-size: .8rem !important; line-height: 1.35 !important; }
  body.gtgf-v14 .v14-footer-bottom { display: grid !important; grid-template-columns: minmax(0,1fr) !important; gap: 6px !important; padding: 14px 0 !important; }
}

/* ---------- Small phones ---------- */
@media (max-width: 430px) {
  :root { --v14-shell: calc(100vw - 22px) !important; }
  body.gtgf-v14 .wrap,
  body.gtgf-v14 .v14-shell,
  body.gtgf-v14 .v14-footer-top,
  body.gtgf-v14 .v14-footer-bottom { width: calc(100vw - 22px) !important; }

  body.gtgf-v14 .v14-brand img,
  body.gtgf-v14 .v14-brand__link img { max-width: 132px !important; }
  body.gtgf-v14 .v14-mobile-toggle { width: 48px !important; height: 48px !important; min-width: 48px !important; }

  body.gtgf-v14 .v14-goal-picker,
  body.gtgf-v14 .v151-goal-picker,
  body.gtgf-v14 .v14-metrics,
  body.gtgf-v14 .v142-challenge-stats,
  body.gtgf-v14 .v142-hero-proof,
  body.gtgf-v14 .v142-training-hero__proof,
  body.gtgf-v14 .events-stat-grid,
  body.gtgf-v14 .member-stats,
  body.gtgf-v14 .gtgf-club-hero__stats,
  body.gtgf-v14 .gtgf-private-strava-totals,
  body.gtgf-v14 .v1512-metric-grid,
  html body.gtgf-v14 #planner-method-summary.planner-method-summary,
  html body.gtgf-v14 #planner-results .planner-summary__stats {
    grid-template-columns: minmax(0,1fr) !important;
  }
  html body.gtgf-v14 #planner-results .planner-summary__stats span { border-left: 0 !important; border-top: 2px solid var(--v14-orange,#ff5a00) !important; }
  html body.gtgf-v14 .planner-v15-availability { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
  html body.gtgf-v14 .planner-wizard__actions { grid-template-columns: minmax(0,1fr) !important; }

  body.gtgf-v14 .nutrition-shopping__head { grid-template-columns: minmax(0,1fr) !important; }
  body.gtgf-v14 .nutrition-shopping__controls { grid-template-columns: minmax(0,1fr) !important; }
  body.gtgf-v14 .nutrition-shopping__summary { justify-self: start !important; }
  body.gtgf-v14 .recipe-library-tools__actions,
  body.gtgf-v14 .recipe-card__macro-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.gtgf-v14 .recipe-card__footer { grid-template-columns: minmax(0,1fr) !important; }
  body.gtgf-v14 .event-card { grid-template-columns: 64px minmax(0,1fr) !important; }
  body.gtgf-v14 .trip-v146-hero__facts { grid-template-columns: minmax(0,1fr) !important; }
  body.gtgf-v14 .v14-site-footer .v14-footer-top { grid-template-columns: minmax(0,1fr) !important; }
  body.gtgf-v14 .v14-mobile-actions { grid-template-columns: minmax(0,1fr) !important; }
}

/* ---------- Extra narrow fallback ---------- */
@media (max-width: 360px) {
  body.gtgf-v14 .v14-brand img,
  body.gtgf-v14 .v14-brand__link img { max-width: 118px !important; }
  html body.gtgf-v14 .planner-wizard__progress { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.gtgf-v14 .recipe-card__macro-grid { grid-template-columns: minmax(0,1fr) !important; }
  body.gtgf-v14 .nutrition-allergen-grid { grid-template-columns: minmax(0,1fr) !important; }
}

/* ---------- Audit pass: remaining legacy multi-column components ---------- */
@media (max-width: 782px) {
  /* Homepage / generic legacy content. */
  html body.gtgf-v14 .v14-discipline-grid,
  html body.gtgf-v14 .v14-project-grid,
  html body.gtgf-v14 .v14-portugal-grid,
  html body.gtgf-v14 .v142-story-card--tool,
  html body.gtgf-v14 .home-seo-band__grid {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 12px !important;
  }
  html body.gtgf-v14 .v142-mini-plan > div { grid-template-columns: 30px 7px minmax(0,1fr) !important; }

  /* Planner secondary blocks. */
  html body.gtgf-v14 .planner-advice,
  html body.gtgf-v14 .planner-mail-card,
  html body.gtgf-v14 .planner-account__head,
  html body.gtgf-v14 .saved-plan-list,
  html body.gtgf-v14 .planner-fuel-bridge,
  html body.gtgf-v14 .planner-fuel-bridge__preview,
  html body.gtgf-v14 .planner-step-tip,
  html body.gtgf-v14 .planner-ready-note,
  html body.gtgf-v14 .planner-dialog__footer {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 8px !important;
  }
  html body.gtgf-v14 .planner-account__head > *,
  html body.gtgf-v14 .planner-fuel-bridge > * { min-width: 0 !important; }
  html body.gtgf-v14 .planner-coach-rhythm li { grid-template-columns: 62px minmax(0,1fr) !important; gap: 8px !important; }
  html body.gtgf-v14 .planner-join-consent,
  html body.gtgf-v14 .planner-export-guide { grid-template-columns: 24px minmax(0,1fr) !important; }
  html body.gtgf-v14 .planner-dialog { width: calc(100vw - 20px) !important; max-width: none !important; max-height: calc(100svh - 20px) !important; }

  /* Nutrition reference modules. */
  html body.gtgf-v14 .v154-fuel-check { grid-template-columns: minmax(0,1fr) !important; gap: 10px !important; }

  /* Knowledge centre legacy generations still present in the route bundle. */
  html body.gtgf-v14 .v151-knowledge-hero .v145-knowledge-hero__grid,
  html body.gtgf-v14 .v151-knowledge-search,
  html body.gtgf-v14 .v151-knowledge-overview,
  html body.gtgf-v14 .v151-knowledge-paths .v145-knowledge-paths__head,
  html body.gtgf-v14 .v151-knowledge-paths__grid,
  html body.gtgf-v14 .v151-knowledge-sports header,
  html body.gtgf-v14 .v151-knowledge-shortcuts__head,
  html body.gtgf-v14 .v151-knowledge-shortcuts header,
  html body.gtgf-v14 .v151-knowledge-shortcuts__grid,
  html body.gtgf-v14 .v145-knowledge-hero__grid,
  html body.gtgf-v14 .v145-knowledge-feature__grid,
  html body.gtgf-v14 .v145-knowledge-method__grid,
  html body.gtgf-v14 .v145-knowledge-paths__grid,
  html body.gtgf-v14 .brief-grid {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 10px !important;
  }
  html body.gtgf-v14 .v151-learning-goal,
  html body.gtgf-v14 .v145-author-note,
  html body.gtgf-v14 .v145-article-facts { grid-template-columns: minmax(0,1fr) !important; gap: 8px !important; }
  html body.gtgf-v14 .v151-knowledge-search button { width: 100% !important; }

  /* Events controls that previously stayed as desktop strips. */
  html body.gtgf-v14 .events-browser__head,
  html body.gtgf-v14 .events-filter-summary {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 8px !important;
  }
  html body.gtgf-v14 .events-sport-filter {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 6px !important;
  }
  html body.gtgf-v14 .events-filter-summary > * { min-width: 0 !important; }

  /* Portugal / booking legacy blocks. */
  html body.gtgf-v14 .trip-flow,
  html body.gtgf-v14 .trip-casa-band,
  html body.gtgf-v14 .trip-form-fields,
  html body.gtgf-v14 .trip-v148-day,
  html body.gtgf-v14 .trip-v148-day ol {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 10px !important;
  }
  html body.gtgf-v14 .trip-package-grid { grid-template-columns: minmax(0,1fr) !important; }
  html body.gtgf-v14 .trip-package--featured { transform: none !important; }
  html body.gtgf-v14 .trip-casa-band__image { min-height: 280px !important; }
  html body.gtgf-v14 .casa-reviews__heading { grid-template-columns: minmax(0,1fr) !important; gap: 8px !important; }
  html body.gtgf-v14 .casa-reviews__score { grid-template-columns: auto minmax(0,1fr) !important; justify-content: start !important; }

  /* Join. */
  html body.gtgf-v14 .join-intro { grid-template-columns: minmax(0,1fr) !important; gap: 12px !important; }

  /* Community: headings, check-in and integration rows. */
  html body.gtgf-v14 .gtgf-club-section__head,
  html body.gtgf-v14 .gtgf-community-v143 .gtgf-club-section__head,
  html body.gtgf-v14 .gtgf-community-v145 .gtgf-club-section__head,
  html body.gtgf-v14 .gtgf-week-checkin,
  html body.gtgf-v14 .gtgf-strava-club-bridge,
  html body.gtgf-v14 .gtgf-strava-club-bridge--compact,
  html body.gtgf-v14 .gtgf-community-source-setup,
  html body.gtgf-v14 .gtgf-community-v145 .gtgf-challenge-grid,
  html body.gtgf-v14 .gtgf-strava-share-guide {
    grid-template-columns: minmax(0,1fr) !important;
    gap: 8px !important;
  }
  html body.gtgf-v14 .gtgf-strava-club-bridge__actions { width: 100% !important; justify-content: flex-start !important; flex-wrap: wrap !important; }

  /* Account details. */
  html body.gtgf-v14 .member-profile-card dl div { grid-template-columns: minmax(0,1fr) !important; gap: 3px !important; }

  /* SEO intent landing pages. */
  html body.gtgf-v14 .seo-training-intent-links { grid-template-columns: minmax(0,1fr) !important; gap: 8px !important; }
}

@media (max-width: 430px) {
  html body.gtgf-v14 .events-sport-filter { grid-template-columns: minmax(0,1fr) !important; }
  html body.gtgf-v14 .v142-mini-plan > div { grid-template-columns: 28px minmax(0,1fr) !important; }
  html body.gtgf-v14 .v142-mini-plan > div > :nth-child(2) { display: none !important; }
}
