 :root {
  /* Book-inspired Mr. Stevey palette */
  --msf-ink: #241D1A;
  --msf-white: #ffffff;
  --msf-cream: #F8F2E4;
  --msf-cream-deep: #EFE2C7;
  --msf-mint: #54C8A6;
  --msf-teal: #087E86;
  --msf-teal-dark: #075E66;
  --msf-sky: #C9EEF1;
  --msf-coral: #D95745;
  --msf-coral-dark: #A83228;
  --msf-salmon: #E78372;
  --msf-marigold: #E6B23A;
  --msf-marigold-light: #F3CF6D;
  --msf-leaf: #7FA23A;
  --msf-plum: #46384F;
  --msf-brown: #5B3A2E;
  --msf-muted: #594F48;
  --msf-border: rgba(36,29,26,.16);
  --msf-radius-sm: 14px;
  --msf-radius: 22px;
  --msf-max: 1160px;
  --msf-shadow-soft: 0 14px 34px rgba(36,29,26,.12);
  --msf-yellow: #F3CF6D;
  --msf-interior-top-space: clamp(32px, 5vw, 72px);
}

html { scroll-behavior: smooth; }

body.msf-theme {
  background: var(--msf-white);
  color: var(--msf-ink);
  font-size: clamp(17px, 1vw, 19px);
  line-height: 1.62;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.msf-theme h1,
.msf-theme h2,
.msf-theme h3,
.msf-theme h4,
.msf-theme .site-title,
.msf-theme .entry-title {
  color: inherit;
  font-weight: 800;
  letter-spacing: -0.025em;
  line-height: 1.08;
}

.msf-theme h1 { font-size: clamp(2.1rem, 4.8vw, 4.4rem); }
.msf-theme h2 { font-size: clamp(1.85rem, 3.55vw, 3.25rem); }
.msf-theme h3 { font-size: clamp(1.22rem, 1.9vw, 1.58rem); }

.msf-theme p,
.msf-theme li {
  font-size: clamp(1rem, 1.02vw, 1.125rem);
  line-height: 1.66;
}

.msf-theme a:focus-visible,
.msf-theme button:focus-visible,
.msf-theme input:focus-visible,
.msf-theme textarea:focus-visible,
.msf-theme select:focus-visible,
.msf-theme [tabindex]:focus-visible {
  outline: 4px solid var(--msf-yellow) !important;
  outline-offset: 4px !important;
  border-radius: 10px;
}

/* Keep Inspiro's native header/video behavior. The child theme no longer paints a cream bar over the hero. */
.msf-theme .site-header,
.msf-theme .navbar,
.msf-theme .headroom,
.msf-theme .site-header.headroom,
.msf-theme .site-header.has-header-image {
  background-color: transparent !important;
  box-shadow: none !important;
}

.msf-theme .site-header:not(.headroom--not-top) a,
.msf-theme .navbar:not(.headroom--not-top) a {
  text-shadow: 0 1px 7px rgba(0,0,0,.45);
}

.msf-theme .site-header .custom-logo,
.msf-theme .site-logo img,
.msf-theme .navbar-brand img {
  max-height: clamp(44px, 5.5vw, 70px) !important;
  width: auto !important;
}


/* Interior pages need a solid nav bar so links stay readable over white pages. Keep the homepage/video hero transparent. */
body.msf-theme:not(.home) .site-header,
body.msf-theme:not(.home) .navbar,
body.msf-theme:not(.home) .headroom,
body.msf-theme:not(.home) .site-header.headroom,
body.msf-theme:not(.home) .site-header.has-header-image,
body.msf-theme.home .site-header.headroom--not-top,
body.msf-theme.home .navbar.headroom--not-top {
  background-color: var(--msf-teal-dark) !important;
  box-shadow: 0 8px 24px rgba(33,31,32,.12) !important;
}

body.msf-theme:not(.home) .site-header a,
body.msf-theme:not(.home) .navbar a,
body.msf-theme.home .site-header.headroom--not-top a,
body.msf-theme.home .navbar.headroom--not-top a {
  color: #ffffff !important;
  text-shadow: none !important;
}

body.msf-theme:not(.home) .site-header .navbar-toggle,
body.msf-theme:not(.home) .navbar .navbar-toggle {
  color: #ffffff !important;
}

.msf-theme .navbar-nav a,
.msf-theme .site-header a,
.msf-theme .button,
.msf-theme .wp-block-button__link,
.msf-theme .woocommerce a.button,
.msf-theme .woocommerce button.button {
  font-weight: 800;
}

/* Full-bleed layout helpers. */
.msf-theme .entry-content,
.msf-theme .page .entry-content,
.msf-theme .site-content .entry-content {
  max-width: none !important;
  overflow-x: clip;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.msf-full-bleed,
.msf-alignfull,
.msf-theme .entry-content > .msf-full-bleed,
.msf-theme .entry-content > .msf-alignfull,
.msf-theme .wp-block-group.alignfull.msf-full-bleed,
.msf-theme .wp-block-group.alignfull.msf-alignfull {
  position: relative !important;
  left: 50% !important;
  right: 50% !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  box-sizing: border-box !important;
}

.msf-wrap,
.msf-theme .msf-wrap,
.msf-theme .wp-block-group.msf-wrap {
  width: min(calc(100% - 40px), var(--msf-max)) !important;
  max-width: var(--msf-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box;
}

.msf-theme .msf-full-bleed > .wp-block-group__inner-container,
.msf-theme .msf-alignfull > .wp-block-group__inner-container {
  max-width: none !important;
  width: 100% !important;
}

.msf-home-shell,
.msf-interior-shell {
  background: var(--msf-white);
  overflow-x: clip;
}

.msf-section {
  padding: clamp(54px, 7vw, 96px) 0;
  position: relative;
  box-sizing: border-box;
}

.msf-section h1,
.msf-section h2 { margin: 0 0 20px; }
.msf-section h3 { margin: 0 0 8px; }
.msf-section p { margin-top: 0; font-weight: 700; }

/* Cloud background from the Figma direction. */
.msf-cloud-top,
.msf-interior-intro {
  position: relative;
  overflow: hidden;
}

.msf-cloud-top {
  background-color: var(--msf-white) !important;
  padding-top: clamp(110px, 12vw, 170px);
}

.msf-cloud-top::before,
.msf-interior-intro::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: clamp(86px, 14vw, 200px);
  background-image: url('../images/clouds.png');
  background-repeat: no-repeat;
  background-position: top center;
  background-size: 100% 100%;
  pointer-events: none;
  z-index: 0;
}

.msf-cloud-top > *,
.msf-interior-intro > * {
  position: relative;
  z-index: 1;
}

.msf-two-col {
  display: grid !important;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: clamp(28px, 5vw, 76px);
  align-items: center;
}

.msf-two-col.reverse { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }

/* Book image should float cleanly on the white/cloud background. */
.msf-book-card {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  display: grid !important;
  place-items: center;
  overflow: visible !important;
}

.msf-book-card img,
.msf-media-card img {
  width: 100%;
  max-width: 520px;
  height: auto;
  display: block;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.msf-intro-copy h1,
.msf-intro-copy h2,
.msf-section-heading-row h2,
.msf-downloads-section h2 { color: var(--msf-teal); }
.msf-section-heading-row h2,
.msf-downloads-section h2 { color: var(--msf-ink); }

.msf-band-purple { background: var(--msf-teal-dark) !important; color: #fff; }
.msf-band-teal { background: var(--msf-coral) !important; color: #fff; }
.msf-band-purple h2,
.msf-band-purple h3,
.msf-band-purple p,
.msf-band-teal h2,
.msf-band-teal h3,
.msf-band-teal p { color: #fff !important; }

.msf-button,
.msf-theme .wp-block-button__link,
.msf-theme .button,
.msf-theme input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  background: var(--msf-teal) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: .78rem 1.45rem !important;
  font-weight: 900 !important;
  font-size: clamp(.95rem, 1vw, 1.05rem);
  text-decoration: none !important;
}
.msf-theme .wp-block-button__link:hover,
.msf-theme .button:hover,
.msf-button:hover {
  background: var(--msf-coral-dark) !important;
  color: #fff !important;
}

.msf-video-frame {
  aspect-ratio: 16 / 9;
  background: #111;
  overflow: hidden;
  border-radius: 0;
  box-shadow: none;
}
.msf-video-frame iframe,
.msf-video-frame video,
.msf-video-frame .wp-block-embed__wrapper,
.msf-video-frame .wp-block-embed__wrapper iframe,
.msf-video-frame .wp-block-video video {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}
.msf-video-frame .wp-block-embed,
.msf-video-frame figure { margin: 0 !important; }

.msf-section-heading-row {
  display: flex !important;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  margin-bottom: clamp(22px, 4vw, 38px);
}
.msf-section-heading-row h2 { margin: 0; }
.msf-view-all {
  color: var(--msf-ink) !important;
  font-weight: 900;
  text-decoration: none !important;
  border-bottom: 3px solid var(--msf-teal);
}

.msf-video-section { background: var(--msf-cream) !important; }

.msf-downloads-section { background: var(--msf-sky) !important; color: var(--msf-ink); }
.msf-shortcode-shell,
.msf-product-loop {
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.msf-downloads-section .woocommerce ul.products,
.msf-downloads-section ul.products { margin-bottom: 0; }

.msf-partners-section { background: var(--msf-white) !important; text-align: center; }
.msf-slider-dropzone {
  margin-top: 22px;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
.msf-slider-dropzone p { margin: 0; color: var(--msf-muted); }

/* Hide Inspiro's default footer/credit so the editable Mr. Stevey footer is the only footer box. */
.msf-theme .site-footer,
.msf-theme #colophon,
.msf-theme footer.site-footer {
  display: none !important;
}

.msf-footer-cta {
  background: var(--msf-coral-dark) !important;
  color: #fff !important;
  text-align: center;
  padding: clamp(34px, 5vw, 66px) 0;
}
.msf-footer-cta h2,
.msf-footer-cta a,
.msf-footer-cta p { color: #fff !important; }
.msf-footer-logo img { max-width: 210px; height: auto; }
.msf-footer-link-row,
.msf-footer-social-row,
.msf-footer-legal-row {
  display: flex !important;
  flex-wrap: wrap;
  gap: 12px 28px;
  justify-content: center;
  align-items: center;
  margin-top: 14px;
}
.msf-footer-link-row a,
.msf-footer-social-row a,
.msf-footer-legal-row a {
  color: #fff !important;
  font-weight: 900;
  text-decoration: none !important;
}
.msf-footer-social-row a {
  border: 2px solid rgba(255,255,255,.72);
  border-radius: 999px;
  min-height: 44px;
  padding: .55rem 1rem;
}
.msf-footer-copy { margin-top: 20px; font-size: .95rem; }

/* Interior page. */
.msf-interior-intro {
  background: var(--msf-white) !important;
  padding: clamp(112px, 12vw, 170px) 0 clamp(58px, 8vw, 100px);
}
.msf-narrow {
  width: min(calc(100% - 40px), 760px) !important;
  margin-inline: auto !important;
}
.msf-narrow h1,
.msf-narrow h2 { text-align: center; }
.msf-stats-band { background: var(--msf-plum) !important; color: #fff; padding: clamp(58px, 8vw, 96px) 0; }
.msf-stats-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(18px, 3vw, 32px);
  margin-top: clamp(30px, 5vw, 50px);
  text-align: center;
}
.msf-stat strong {
  display: block;
  color: #fff;
  font-size: clamp(2rem, 4.6vw, 3.7rem);
  font-weight: 900;
  line-height: 1;
}
.msf-stat span { display: block; color: #fff; font-size: .98rem; font-weight: 800; line-height: 1.25; margin-top: 8px; }

/* WooCommerce/free downloads cards. */
.msf-theme .wc-block-grid__product,
.msf-theme li.product,
.msf-theme .products .product {
  background: #fff !important;
  border-radius: var(--msf-radius-sm) !important;
  box-shadow: var(--msf-shadow-soft);
  overflow: hidden;
  padding: 16px !important;
}
.msf-theme .woocommerce-loop-product__title,
.msf-theme .wc-block-grid__product-title {
  color: var(--msf-ink);
  font-size: clamp(1rem, 1.25vw, 1.2rem);
  font-weight: 900;
}

/* YouTube Playlist API carousel */
.msf-youtube-carousel-shell { width: 100%; }
.msf-youtube-carousel-topline { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.msf-youtube-carousel-topline h3 { margin: 0; font-size: clamp(1.35rem, 2.6vw, 2.1rem); }
.msf-youtube-carousel {
  --msf-card-width: clamp(250px, 30vw, 360px);
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: var(--msf-card-width);
  gap: clamp(16px, 2vw, 28px);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: inline mandatory;
  scroll-padding-inline: 6px;
  padding: 6px 6px 20px;
  -webkit-overflow-scrolling: touch;
}
.msf-youtube-carousel::-webkit-scrollbar { height: 12px; }
.msf-youtube-carousel::-webkit-scrollbar-track { background: rgba(0, 92, 102, .18); border-radius: 999px; }
.msf-youtube-carousel::-webkit-scrollbar-thumb { background: var(--msf-teal-dark); border-radius: 999px; border: 3px solid var(--msf-sky); }
.msf-youtube-card {
  scroll-snap-align: start;
  background: var(--msf-white);
  border: 0 !important;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--msf-shadow-soft);
}
.msf-youtube-thumb { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--msf-cream); }
.msf-youtube-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .18s ease; }
.msf-youtube-thumb:hover img,
.msf-youtube-thumb:focus-visible img { transform: scale(1.035); }
.msf-youtube-play {
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  width: 58px;
  height: 58px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: var(--msf-marigold);
  color: var(--msf-white);
  border: 0 !important;
  box-shadow: 0 3px 10px rgba(0,0,0,.18);
  font-size: 1.25rem;
  line-height: 1;
}
.msf-youtube-card-body { background: var(--msf-teal); color: var(--msf-white); padding: 1rem; }
.msf-youtube-card-body h3 { margin: 0 0 .8rem; color: var(--msf-white); font-size: clamp(1rem, 1.55vw, 1.22rem); line-height: 1.16; }
.msf-youtube-card-body h3 a,
.msf-watch-now { color: var(--msf-white) !important; }
.msf-watch-now {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: .55rem .95rem;
  border-radius: 999px;
  background: var(--msf-teal-dark);
  border: 2px solid rgba(255,255,255,.72);
  font-weight: 900;
  text-decoration: none !important;
}
.msf-watch-now:hover,
.msf-watch-now:focus-visible { background: var(--msf-coral); }
.msf-youtube-empty { background: var(--msf-white); border: 3px dashed var(--msf-teal-dark); border-radius: 22px; padding: 1.25rem; color: var(--msf-ink); }


/* Book-palette refinement and responsive polish */
.msf-theme main,
.msf-home-shell,
.msf-interior-shell {
  background: var(--msf-white);
}

.msf-section p {
  font-weight: 600;
}

.msf-intro-copy p,
.msf-narrow p {
  font-size: clamp(1.1rem, 1.35vw, 1.28rem);
  line-height: 1.55;
}

.msf-band-purple .wp-block-button__link,
.msf-band-teal .wp-block-button__link {
  background: var(--msf-white) !important;
  color: var(--msf-teal-dark) !important;
}

.msf-band-purple .wp-block-button__link:hover,
.msf-band-teal .wp-block-button__link:hover {
  background: var(--msf-marigold-light) !important;
  color: var(--msf-ink) !important;
}

.msf-view-all {
  color: var(--msf-teal-dark) !important;
  border-bottom-color: var(--msf-marigold);
}

.msf-downloads-section .msf-view-all,
.msf-video-section .msf-view-all {
  color: var(--msf-teal-dark) !important;
}

.msf-theme .woocommerce ul.products li.product .button,
.msf-theme .woocommerce a.button,
.msf-theme .wc-block-grid__product-add-to-cart a {
  background: var(--msf-teal) !important;
  color: var(--msf-white) !important;
  border-radius: 999px !important;
  min-height: 42px;
}

.msf-theme .woocommerce ul.products li.product .button:hover,
.msf-theme .woocommerce a.button:hover,
.msf-theme .wc-block-grid__product-add-to-cart a:hover {
  background: var(--msf-coral-dark) !important;
}

.msf-theme .price,
.msf-theme .woocommerce-Price-amount {
  color: var(--msf-teal-dark) !important;
  font-weight: 800;
}

.msf-youtube-play {
  color: var(--msf-ink);
}

.msf-youtube-card-body {
  background: var(--msf-teal-dark);
}

.msf-watch-now {
  background: transparent;
  border-color: rgba(255,255,255,.8);
}

.msf-footer-social-row a:hover,
.msf-footer-link-row a:hover,
.msf-footer-legal-row a:hover {
  color: var(--msf-marigold-light) !important;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

@media (max-width: 980px) {
  .msf-two-col,
  .msf-two-col.reverse { grid-template-columns: 1fr; }
  .msf-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {

  body.msf-theme { font-size: 17px; }
  .msf-theme h1 { font-size: clamp(2rem, 11vw, 3rem); }
  .msf-theme h2 { font-size: clamp(1.75rem, 9vw, 2.55rem); }
  .msf-theme h3 { font-size: 1.2rem; }
  .msf-theme p, .msf-theme li { font-size: 1rem; line-height: 1.58; }
  .msf-intro-copy p, .msf-narrow p { font-size: 1.05rem; }
  .msf-button, .msf-theme .wp-block-button__link, .msf-theme .button, .msf-theme input[type="submit"] { width: auto; min-width: 44px; }
  .msf-wrap,
  .msf-narrow { width: min(calc(100% - 28px), var(--msf-max)) !important; }
  .msf-stats-grid { grid-template-columns: 1fr; }
  .msf-section-heading-row { align-items: flex-start; flex-direction: column; }
  .msf-section { padding: 46px 0; }
  .msf-cloud-top { padding-top: 96px; }
  .msf-cloud-top::before,
  .msf-interior-intro::before { height: 88px; background-size: auto 88px; background-repeat: repeat-x; }
  .msf-interior-intro { padding-top: 102px; }
  .msf-youtube-carousel { --msf-card-width: min(82vw, 330px); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
  }
}


@media (max-width: 782px) {
  body.msf-theme { font-size: 17px; }
  .msf-theme h1 { font-size: clamp(2rem, 11vw, 3.1rem); line-height: 1.05; }
  .msf-theme h2 { font-size: clamp(1.75rem, 9vw, 2.55rem); line-height: 1.08; }
  .msf-theme h3 { font-size: clamp(1.2rem, 5.5vw, 1.5rem); }
  .msf-theme p, .msf-theme li { font-size: 1rem; line-height: 1.65; }
}


/* v1.4 refinements: TikTok Sans + Geist, tighter section rhythm, and cleaner cards */
body.msf-theme {
  font-size: clamp(17px, 1vw, 19px);
  letter-spacing: -0.005em;
}

.msf-theme h1,
.msf-theme h2,
.msf-theme h3,
.msf-theme h4,
.msf-theme .site-title,
.msf-theme .entry-title,
.msf-theme .navbar-nav a,
.msf-theme .site-header a,
.msf-theme .button,
.msf-theme .wp-block-button__link,
.msf-theme .woocommerce a.button,
.msf-theme .woocommerce button.button,
.msf-youtube-card-body h3,
.msf-theme .woocommerce-loop-product__title,
.msf-theme .wc-block-grid__product-title {
}

/* Larger, cleaner navigation. */
.msf-theme .navbar-nav > li > a,
.msf-theme .site-header .navbar-nav a,
.msf-theme .site-navigation a,
.msf-theme .primary-menu a {
  font-size: clamp(1rem, 1.15vw, 1.18rem);
  font-weight: 800 !important;
  letter-spacing: .01em;
  line-height: 1.15;
}

.msf-theme .navbar-nav > li,
.msf-theme .primary-menu > li {
  margin-left: clamp(14px, 2vw, 30px) !important;
}

.msf-theme .site-header .custom-logo,
.msf-theme .site-logo img,
.msf-theme .navbar-brand img {
  max-height: clamp(54px, 6vw, 82px) !important;
}

/* Hide stray Inspiro/header text labels such as “Hero Loop” while preserving the logo and nav. */
body.msf-theme.home .site-description,
body.msf-theme.home .custom-header .entry-title,
body.msf-theme.home .custom-header .page-title,
body.msf-theme.home .intro-title,
body.msf-theme.home .hero-title,
body.msf-theme.home .wp-custom-header .wp-custom-header-video-button,
body.msf-theme.home .wp-custom-header .screen-reader-text:not(:focus):not(:active) {
  display: none !important;
}

/* Let color bands touch. WordPress loves surprise margins; we do not. */
.msf-theme .entry-content > .msf-home-shell,
.msf-theme .entry-content > .wp-block-group.msf-home-shell,
.msf-home-shell,
.msf-home-shell > .wp-block-group,
.msf-home-shell > .msf-full-bleed,
.msf-home-shell > .msf-alignfull,
.msf-section,
.msf-full-bleed,
.msf-alignfull {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.msf-theme .entry-content > .wp-block-group + .wp-block-group,
.msf-home-shell > .wp-block-group + .wp-block-group,
.msf-home-shell > .msf-section + .msf-section,
.msf-home-shell > .msf-full-bleed + .msf-full-bleed {
  margin-top: 0 !important;
}

.msf-section + .msf-section::before,
.msf-full-bleed + .msf-full-bleed::before {
  content: none !important;
}

/* Stronger typographic scale with mobile-safe limits. */
.msf-theme h1 { font-size: clamp(2.35rem, 4.8vw, 4.6rem); }
.msf-theme h2 { font-size: clamp(2rem, 3.65vw, 3.4rem); }
.msf-theme h3 { font-size: clamp(1.25rem, 1.75vw, 1.65rem); }
.msf-theme p, .msf-theme li { font-size: clamp(1rem, 1.04vw, 1.14rem); line-height: 1.62; }

/* YouTube carousel cards: uniform height, no white bottom gap, full-width thumbs. */
.msf-youtube-carousel {
  align-items: stretch;
}

.msf-youtube-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  background: var(--msf-teal-dark) !important;
  border-radius: 20px !important;
  box-shadow: var(--msf-shadow-soft);
}

.msf-youtube-thumb {
  width: 100%;
  flex: 0 0 auto;
  border-radius: 20px 20px 0 0;
  background: var(--msf-teal-dark) !important;
}

.msf-youtube-thumb img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.msf-youtube-card-body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: var(--msf-teal-dark) !important;
  padding: 1rem 1.05rem 1.1rem !important;
  border-radius: 0 0 20px 20px;
}

.msf-youtube-card-body h3 {
  font-size: clamp(1.08rem, 1.35vw, 1.25rem);
  min-height: 3.4em;
  margin-bottom: .9rem !important;
}

.msf-watch-now {
  align-self: flex-start;
  margin-top: auto;
}

/* Free download product cards should visually match the YouTube cards, without price/cart noise. */
.msf-downloads-section .woocommerce ul.products,
.msf-downloads-section ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 2.6vw, 34px) !important;
  align-items: stretch;
}

.msf-downloads-section .woocommerce ul.products::before,
.msf-downloads-section .woocommerce ul.products::after,
.msf-downloads-section ul.products::before,
.msf-downloads-section ul.products::after {
  display: none !important;
}

.msf-downloads-section .woocommerce ul.products li.product,
.msf-downloads-section ul.products li.product,
.msf-theme .msf-downloads-section li.product,
.msf-theme .msf-downloads-section .products .product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  background: var(--msf-teal-dark) !important;
  border-radius: 20px !important;
  box-shadow: var(--msf-shadow-soft) !important;
  min-height: 100%;
}

.msf-downloads-section li.product a.woocommerce-LoopProduct-link,
.msf-downloads-section li.product a.woocommerce-loop-product__link {
  display: flex !important;
  flex-direction: column !important;
  min-height: 100%;
  text-decoration: none !important;
}

.msf-downloads-section li.product img,
.msf-theme .msf-downloads-section .products .product img,
.msf-theme .msf-downloads-section ul.products li.product a img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  margin: 0 !important;
  border-radius: 20px 20px 0 0 !important;
  background: var(--msf-cream);
}

.msf-downloads-section .woocommerce-loop-product__title,
.msf-downloads-section .wc-block-grid__product-title,
.msf-theme .msf-downloads-section li.product .woocommerce-loop-product__title {
  flex: 1 1 auto;
  display: flex !important;
  align-items: center;
  min-height: 92px;
  margin: 0 !important;
  padding: 1rem 1.05rem 1.15rem !important;
  background: var(--msf-teal-dark) !important;
  color: #ffffff !important;
  font-size: clamp(1.15rem, 1.7vw, 1.45rem);
  line-height: 1.14 !important;
  font-weight: 900 !important;
  text-align: left !important;
}

.msf-downloads-section .price,
.msf-downloads-section .woocommerce-Price-amount,
.msf-downloads-section .button,
.msf-downloads-section .add_to_cart_button,
.msf-downloads-section .added_to_cart,
.msf-downloads-section .wc-block-grid__product-price,
.msf-downloads-section .wc-block-grid__product-add-to-cart {
  display: none !important;
}

.msf-downloads-section li.product:hover .woocommerce-loop-product__title,
.msf-downloads-section li.product:focus-within .woocommerce-loop-product__title {
  background: var(--msf-teal) !important;
}

@media (max-width: 980px) {
  .msf-downloads-section .woocommerce ul.products,
  .msf-downloads-section ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .msf-theme .navbar-nav > li > a,
  .msf-theme .site-header .navbar-nav a,
  .msf-theme .site-navigation a,
  .msf-theme .primary-menu a {
    font-size: 1.05rem;
  }

  .msf-theme h1 { font-size: clamp(2.05rem, 10vw, 3.05rem); }
  .msf-theme h2 { font-size: clamp(1.85rem, 8.8vw, 2.65rem); }
  .msf-theme h3 { font-size: clamp(1.18rem, 5.6vw, 1.5rem); }

  .msf-downloads-section .woocommerce ul.products,
  .msf-downloads-section ul.products {
    grid-template-columns: 1fr;
  }

  .msf-downloads-section .woocommerce-loop-product__title,
  .msf-downloads-section .wc-block-grid__product-title,
  .msf-theme .msf-downloads-section li.product .woocommerce-loop-product__title {
    min-height: auto;
    font-size: 1.2rem;
  }

  .msf-youtube-card-body h3 {
    min-height: auto;
  }
}


/* v1.6 typography reset: Customizer-controlled font stacks + intentional homepage hierarchy */
body.msf-theme,
.msf-theme input,
.msf-theme textarea,
.msf-theme select,
.msf-theme button {
  font-weight: 400;
  letter-spacing: 0;
}

.msf-theme h1,
.msf-theme h2,
.msf-theme h3,
.msf-theme h4,
.msf-theme .site-title,
.msf-theme .entry-title,
.msf-theme .navbar-nav a,
.msf-theme .site-header a,
.msf-theme .button,
.msf-theme .wp-block-button__link,
.msf-theme .woocommerce a.button,
.msf-theme .woocommerce button.button,
.msf-youtube-card-body h3,
.msf-theme .woocommerce-loop-product__title,
.msf-theme .wc-block-grid__product-title {
  font-weight: 700 !important;
  letter-spacing: -0.025em;
}

body.msf-theme {
  font-size: clamp(16px, 1vw, 18px);
  line-height: 1.6;
}

.msf-theme p,
.msf-theme li {
  font-weight: 400 !important;
  font-size: clamp(1rem, 1.02vw, 1.125rem);
  line-height: 1.65 !important;
}

/* Navigation: larger, but not cartoon-heavy. */
.msf-theme .navbar-nav > li > a,
.msf-theme .site-header .navbar-nav a,
.msf-theme .site-navigation a,
.msf-theme .primary-menu a {
  font-size: clamp(1.08rem, 1.25vw, 1.28rem);
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
}

/* Global fallback hierarchy. */
.msf-theme h1 { font-size: clamp(2.5rem, 5vw, 4.75rem); line-height: 1.02 !important; }
.msf-theme h2 { font-size: clamp(2rem, 3.4vw, 3.25rem); line-height: 1.04 !important; }
.msf-theme h3 { font-size: clamp(1.25rem, 1.7vw, 1.55rem); line-height: 1.16 !important; }

/* Homepage-specific hierarchy so every headline does not look identical. */
.msf-intro-copy h1,
.msf-intro-copy h2 {
  font-size: clamp(2.05rem, 3.1vw, 3rem);
  line-height: 1.08 !important;
  letter-spacing: -0.035em;
}

.msf-band-purple h2,
.msf-band-teal h2 {
  font-size: clamp(2.25rem, 4vw, 3.75rem);
  line-height: 1.02 !important;
  letter-spacing: -0.045em;
}

.msf-section-heading-row h2,
.msf-youtube-carousel-topline h3 {
  font-size: clamp(2.05rem, 3.3vw, 3.35rem);
  line-height: 1.04 !important;
  letter-spacing: -0.045em;
}

.msf-downloads-section h2 {
  font-size: clamp(1.95rem, 3vw, 3rem);
  line-height: 1.05 !important;
  letter-spacing: -0.04em;
}

.msf-partners-section h2,
.msf-trusted h2,
.msf-theme .msf-partners h2 {
  font-size: clamp(1.8rem, 2.7vw, 2.6rem);
  line-height: 1.06 !important;
}

/* Card titles should be clearly smaller than section titles. */
.msf-youtube-card-body h3,
.msf-downloads-section .woocommerce-loop-product__title,
.msf-downloads-section .wc-block-grid__product-title,
.msf-theme .msf-downloads-section li.product .woocommerce-loop-product__title {
  font-size: clamp(1.05rem, 1.25vw, 1.22rem);
  letter-spacing: -0.025em !important;
  line-height: 1.18 !important;
}

/* Make buttons feel consistent with Inter instead of the previous heavy display treatment. */
.msf-theme .button,
.msf-theme .wp-block-button__link,
.msf-theme .woocommerce a.button,
.msf-theme .woocommerce button.button,
.msf-watch-now {
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
}

/* Keep full-width color bands touching after typography reset. */
.msf-home-shell > .wp-block-group,
.msf-home-shell > .msf-section,
.msf-home-shell > .msf-full-bleed,
.msf-section,
.msf-full-bleed,
.msf-alignfull {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

@media (max-width: 782px) {
  body.msf-theme { font-size: 16px; }
  .msf-theme h1 { font-size: clamp(2.15rem, 10vw, 3rem); }
  .msf-theme h2 { font-size: clamp(1.85rem, 8.5vw, 2.55rem); }
  .msf-intro-copy h1,
  .msf-intro-copy h2,
  .msf-band-purple h2,
  .msf-band-teal h2,
  .msf-section-heading-row h2,
  .msf-youtube-carousel-topline h3,
  .msf-downloads-section h2 {
    font-size: clamp(1.85rem, 8.5vw, 2.45rem);
    line-height: 1.07 !important;
  }
  .msf-theme p,
  .msf-theme li {
    font-size: 1rem;
    line-height: 1.65 !important;
  }
  .msf-theme .navbar-nav > li > a,
  .msf-theme .site-header .navbar-nav a,
  .msf-theme .site-navigation a,
  .msf-theme .primary-menu a {
    font-size: 1.08rem;
  }
}


/* v1.6: Customizer typography overrides. */
body.msf-theme,
.msf-theme input,
.msf-theme textarea,
.msf-theme select,
.msf-theme button {
}

.msf-theme h1,
.msf-theme h2,
.msf-theme h3,
.msf-theme h4,
.msf-theme .site-title,
.msf-theme .entry-title,
.msf-youtube-card-body h3,
.msf-theme .woocommerce-loop-product__title,
.msf-theme .wc-block-grid__product-title {
}

.msf-theme .navbar-nav a,
.msf-theme .site-header a,
.msf-theme .site-navigation a,
.msf-theme .primary-menu a,
.msf-theme .button,
.msf-theme .wp-block-button__link,
.msf-theme .woocommerce a.button,
.msf-theme .woocommerce button.button,
.msf-watch-now {
}


/* v1.9: Keep the Inspiro header/nav visible while scrolling.
   Inspiro's Headroom behavior can hide/unpin the header on downward scroll; for this child theme
   we want the homepage navigation to stay available and become solid/readable once it leaves the hero. */
body.msf-theme .headroom,
body.msf-theme .headroom--pinned,
body.msf-theme .headroom--unpinned,
body.msf-theme .site-header.headroom,
body.msf-theme .site-header.headroom--pinned,
body.msf-theme .site-header.headroom--unpinned,
body.msf-theme .navbar.headroom,
body.msf-theme .navbar.headroom--pinned,
body.msf-theme .navbar.headroom--unpinned {
  transform: translateY(0) !important;
  top: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

body.msf-theme.home .headroom--not-top,
body.msf-theme.home .headroom--not-top .site-header,
body.msf-theme.home .headroom--not-top .navbar,
body.msf-theme.home .site-header.headroom--not-top,
body.msf-theme.home .navbar.headroom--not-top,
body.msf-theme.home .site-header.is-sticky,
body.msf-theme.home .navbar.is-sticky,
body.msf-theme.home .site-header.sticky,
body.msf-theme.home .navbar.sticky {
  background-color: var(--msf-teal-dark) !important;
  box-shadow: 0 8px 24px rgba(33,31,32,.12) !important;
}

body.msf-theme.home .headroom--not-top a,
body.msf-theme.home .headroom--not-top .site-header a,
body.msf-theme.home .headroom--not-top .navbar a,
body.msf-theme.home .site-header.headroom--not-top a,
body.msf-theme.home .navbar.headroom--not-top a,
body.msf-theme.home .site-header.is-sticky a,
body.msf-theme.home .navbar.is-sticky a,
body.msf-theme.home .site-header.sticky a,
body.msf-theme.home .navbar.sticky a {
  color: #ffffff !important;
  text-shadow: none !important;
}

/* Prevent the logo from visually crashing into the first content section when the header is fixed/sticky. */
body.msf-theme.home .msf-home-shell {
  position: relative;
  z-index: 1;
}


/* v2.0: Gutenberg editing respect layer
   Keep our default responsive hierarchy, but allow editor-selected heading/text sizes to win. */
.msf-theme .has-small-font-size { font-size: var(--wp--preset--font-size--small, 0.875rem) !important; }
.msf-theme .has-medium-font-size { font-size: var(--wp--preset--font-size--medium, 1.125rem) !important; }
.msf-theme .has-large-font-size { font-size: var(--wp--preset--font-size--large, 1.75rem) !important; }
.msf-theme .has-x-large-font-size { font-size: var(--wp--preset--font-size--x-large, 2.25rem) !important; }
.msf-theme .has-xx-large-font-size { font-size: var(--wp--preset--font-size--xx-large, 3rem) !important; }

/* WordPress outputs custom font sizes as inline styles. No child-theme font-size rule uses !important now, so inline custom sizes can override the defaults. */
.msf-theme :where(h1, h2, h3, h4, h5, h6, p, li, a, span)[style*="font-size"] {
  line-height: 1.12;
}
.msf-theme :where(p, li)[style*="font-size"] {
  line-height: 1.55;
}

/* Keep default rhythm when no custom size is selected. */
.msf-theme :where(h1, h2, h3, h4, h5, h6).has-small-font-size,
.msf-theme :where(h1, h2, h3, h4, h5, h6).has-medium-font-size,
.msf-theme :where(h1, h2, h3, h4, h5, h6).has-large-font-size,
.msf-theme :where(h1, h2, h3, h4, h5, h6).has-x-large-font-size,
.msf-theme :where(h1, h2, h3, h4, h5, h6).has-xx-large-font-size {
  margin-bottom: 0.55em;
}

/* v2.1: Interior page polish
   Make standard pages feel connected to the homepage while keeping Gutenberg editable. */
body.msf-theme:not(.home) .site-content,
body.msf-theme:not(.home) main.site-main {
  position: relative;
  background: var(--msf-white) !important;
  overflow-x: clip;
}

/* Soft cloud wash at the top of interior pages, echoing the homepage/Figma direction. */
body.msf-theme:not(.home) .site-content::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  height: clamp(58px, 8vw, 112px);
  transform: translateX(-50%);
  background-image: url('../images/clouds.png');
  background-repeat: repeat-x;
  background-position: top center;
  background-size: auto 100%;
  pointer-events: none;
  opacity: .92;
  z-index: 0;
}

body.msf-theme:not(.home) .entry-content {
  position: relative;
  z-index: 1;
  padding-top: var(--msf-interior-top-space) !important;
  padding-bottom: clamp(40px, 6vw, 84px) !important;
}

/* Give regular Gutenberg interior content a consistent page width without breaking alignfull sections. */
body.msf-theme:not(.home) .entry-content > :where(h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,figure,.wp-block-image,.wp-block-embed,.wp-block-video,.wp-block-buttons,.wp-block-columns,.wp-block-group:not(.alignfull),.wp-block-separator,.wp-block-shortcode,.wp-block-table) {
  width: min(calc(100% - 40px), var(--msf-max));
  max-width: var(--msf-max);
  margin-left: auto;
  margin-right: auto;
}

/* Narrow reading text a bit inside wider interior layouts for better legibility. */
body.msf-theme:not(.home) .entry-content > :where(p,ul,ol,blockquote):not(.alignwide):not(.alignfull) {
  max-width: 860px;
}

body.msf-theme:not(.home) .entry-content > :where(h1,h2):first-child {
  margin-top: 0 !important;
}

body.msf-theme:not(.home) .entry-content h1,
body.msf-theme:not(.home) .entry-content h2 {
  color: var(--msf-ink);
}

/* Interior section rhythm: make plain Groups feel like designed modules. */
body.msf-theme:not(.home) .entry-content > .wp-block-group:not(.alignfull):not(.msf-footer-cta):not(.msf-partners-section):not(.msf-full-bleed) {
  padding-top: clamp(34px, 5vw, 68px);
  padding-bottom: clamp(34px, 5vw, 68px);
}

body.msf-theme:not(.home) .entry-content > .wp-block-separator {
  border: 0;
  border-top: 2px solid rgba(36,29,26,.12);
  margin-top: clamp(42px, 6vw, 78px);
  margin-bottom: clamp(42px, 6vw, 78px);
}

/* Better interior video treatment. Make videos larger, centered, responsive, and less 'dropped on the page'. */
body.msf-theme:not(.home) .entry-content > figure.wp-block-embed,
body.msf-theme:not(.home) .entry-content > figure.wp-block-video,
body.msf-theme:not(.home) .entry-content > .wp-block-embed,
body.msf-theme:not(.home) .entry-content > .wp-block-video {
  width: min(calc(100% - 40px), 1040px) !important;
  max-width: 1040px !important;
  margin-top: clamp(28px, 5vw, 64px) !important;
  margin-bottom: clamp(36px, 6vw, 76px) !important;
}

body.msf-theme:not(.home) .wp-block-embed.is-type-video,
body.msf-theme:not(.home) .wp-block-embed-youtube,
body.msf-theme:not(.home) .wp-block-video {
  background: var(--msf-teal-dark);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 18px 40px rgba(36,29,26,.16);
}

body.msf-theme:not(.home) .wp-block-embed.is-type-video .wp-block-embed__wrapper,
body.msf-theme:not(.home) .wp-block-embed-youtube .wp-block-embed__wrapper {
  aspect-ratio: 16 / 9;
  width: 100%;
}

body.msf-theme:not(.home) .wp-block-embed.is-type-video iframe,
body.msf-theme:not(.home) .wp-block-embed-youtube iframe,
body.msf-theme:not(.home) .wp-block-video video {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  border: 0 !important;
}

body.msf-theme:not(.home) .wp-block-video video {
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

/* If a video sits inside a two-column layout, still make it feel intentional. */
body.msf-theme:not(.home) .wp-block-columns .wp-block-embed.is-type-video,
body.msf-theme:not(.home) .wp-block-columns .wp-block-embed-youtube,
body.msf-theme:not(.home) .wp-block-columns .wp-block-video,
body.msf-theme:not(.home) .msf-two-col .wp-block-embed.is-type-video,
body.msf-theme:not(.home) .msf-two-col .wp-block-video {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

/* Interior image cards: keep book art polished and consistent. */
body.msf-theme:not(.home) .entry-content figure.wp-block-image img,
body.msf-theme:not(.home) .entry-content .wp-block-gallery img {
  border-radius: 18px;
}

body.msf-theme:not(.home) .entry-content figure.wp-block-image:not(.is-style-rounded) img {
  box-shadow: 0 12px 32px rgba(36,29,26,.10);
}

/* Friend/profile grids and book cards feel closer to homepage cards. */
body.msf-theme:not(.home) .wp-block-columns {
  gap: clamp(28px, 4vw, 62px) !important;
}

body.msf-theme:not(.home) .wp-block-columns .wp-block-column > figure.wp-block-image:first-child img {
  width: 100%;
  height: auto;
}

/* Book/Event form styling: keep it accessible, cleaner, and brand-matched. */
body.msf-theme:not(.home) :where(.gform_wrapper,.wpforms-container,.frm_forms,.nf-form-cont,form) input:not([type='checkbox']):not([type='radio']):not([type='submit']),
body.msf-theme:not(.home) :where(.gform_wrapper,.wpforms-container,.frm_forms,.nf-form-cont,form) textarea,
body.msf-theme:not(.home) :where(.gform_wrapper,.wpforms-container,.frm_forms,.nf-form-cont,form) select {
  border: 2px solid rgba(7,94,102,.24) !important;
  border-radius: 10px !important;
  min-height: 44px;
  padding: .65rem .75rem !important;
  font-size: 1rem !important;
  background: #fff !important;
  color: var(--msf-ink) !important;
}

body.msf-theme:not(.home) :where(.gform_wrapper,.wpforms-container,.frm_forms,.nf-form-cont,form) input:focus,
body.msf-theme:not(.home) :where(.gform_wrapper,.wpforms-container,.frm_forms,.nf-form-cont,form) textarea:focus,
body.msf-theme:not(.home) :where(.gform_wrapper,.wpforms-container,.frm_forms,.nf-form-cont,form) select:focus {
  border-color: var(--msf-teal) !important;
  box-shadow: 0 0 0 4px rgba(243,207,109,.45) !important;
}

body.msf-theme:not(.home) :where(.gform_wrapper,.wpforms-container,.frm_forms,.nf-form-cont,form) input[type='submit'],
body.msf-theme:not(.home) :where(.gform_wrapper,.wpforms-container,.frm_forms,.nf-form-cont,form) button[type='submit'] {
  background: var(--msf-teal) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 999px !important;
  min-height: 48px;
  padding: .82rem 1.65rem !important;
  font-weight: 800 !important;
}

/* Make trusted partners and the custom footer full-width on interior pages, even if the block was not set to alignfull. */
body.msf-theme:not(.home) .entry-content > .msf-partners-section,
body.msf-theme:not(.home) .entry-content > .msf-footer-cta,
body.msf-theme:not(.home) .entry-content > .wp-block-group.msf-partners-section,
body.msf-theme:not(.home) .entry-content > .wp-block-group.msf-footer-cta {
  position: relative !important;
  left: 50% !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
}

body.msf-theme:not(.home) .msf-partners-section {
  padding-top: clamp(48px, 7vw, 88px) !important;
  padding-bottom: clamp(34px, 5vw, 62px) !important;
}

body.msf-theme:not(.home) .msf-footer-cta {
  margin-top: 0 !important;
}



/* Interior design utilities: use these as Additional CSS classes on Group/Video blocks. */
body.msf-theme:not(.home) .msf-section-cream,
body.msf-theme:not(.home) .msf-section-sky,
body.msf-theme:not(.home) .msf-section-teal,
body.msf-theme:not(.home) .msf-section-coral,
body.msf-theme:not(.home) .msf-section-plum,
body.msf-theme:not(.home) .msf-section-marigold,
body.msf-theme:not(.home) .msf-section-white {
  position: relative !important;
  left: 50% !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  padding-top: clamp(50px, 7vw, 92px) !important;
  padding-bottom: clamp(50px, 7vw, 92px) !important;
  box-sizing: border-box !important;
}

body.msf-theme:not(.home) .msf-section-cream { background: var(--msf-cream) !important; color: var(--msf-ink) !important; }
body.msf-theme:not(.home) .msf-section-sky { background: var(--msf-sky) !important; color: var(--msf-ink) !important; }
body.msf-theme:not(.home) .msf-section-white { background: var(--msf-white) !important; color: var(--msf-ink) !important; }
body.msf-theme:not(.home) .msf-section-marigold { background: var(--msf-marigold-light) !important; color: var(--msf-ink) !important; }
body.msf-theme:not(.home) .msf-section-teal { background: var(--msf-teal-dark) !important; color: #fff !important; }
body.msf-theme:not(.home) .msf-section-coral { background: var(--msf-coral) !important; color: #fff !important; }
body.msf-theme:not(.home) .msf-section-plum { background: var(--msf-plum) !important; color: #fff !important; }
body.msf-theme:not(.home) :where(.msf-section-teal,.msf-section-coral,.msf-section-plum) :where(h1,h2,h3,h4,p,li,a) { color: #fff !important; }

body.msf-theme:not(.home) :where(.msf-section-cream,.msf-section-sky,.msf-section-teal,.msf-section-coral,.msf-section-plum,.msf-section-marigold,.msf-section-white) > :where(.wp-block-group__inner-container, .wp-block-columns, h1,h2,h3,h4,p,ul,ol,figure,.wp-block-buttons,.wp-block-shortcode) {
  width: min(calc(100% - 40px), var(--msf-max));
  max-width: var(--msf-max);
  margin-left: auto;
  margin-right: auto;
}

/* Full-size interior video hero, similar in spirit to the homepage video. Add class msf-interior-video-hero to a Group containing a Video/YouTube block. */
body.msf-theme:not(.home) .entry-content > .msf-interior-video-hero,
body.msf-theme:not(.home) .entry-content > .wp-block-group.msf-interior-video-hero,
body.msf-theme:not(.home) .entry-content > figure.msf-interior-video-hero,
body.msf-theme:not(.home) .entry-content > .wp-block-video.msf-interior-video-hero,
body.msf-theme:not(.home) .entry-content > .wp-block-embed.msf-interior-video-hero {
  position: relative !important;
  left: 50% !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  margin-top: calc(-1 * var(--msf-interior-top-space)) !important;
  margin-bottom: clamp(44px, 7vw, 86px) !important;
  padding: 0 !important;
  background: #111 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

body.msf-theme:not(.home) .msf-interior-video-hero .wp-block-group__inner-container,
body.msf-theme:not(.home) .msf-interior-video-hero figure,
body.msf-theme:not(.home) .msf-interior-video-hero .wp-block-embed,
body.msf-theme:not(.home) .msf-interior-video-hero .wp-block-embed__wrapper,
body.msf-theme:not(.home) .msf-interior-video-hero .wp-block-video {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.msf-theme:not(.home) .msf-interior-video-hero iframe,
body.msf-theme:not(.home) .msf-interior-video-hero video {
  display: block !important;
  width: 100vw !important;
  max-width: 100vw !important;
  height: clamp(360px, 56.25vw, 760px) !important;
  object-fit: cover !important;
  border: 0 !important;
  border-radius: 0 !important;
}

body.msf-theme:not(.home) .msf-interior-video-hero figcaption {
  position: absolute;
  left: max(20px, calc((100vw - var(--msf-max)) / 2));
  right: max(20px, calc((100vw - var(--msf-max)) / 2));
  bottom: clamp(20px, 4vw, 56px);
  color: #fff;
  font-weight: 800;
  text-shadow: 0 2px 10px rgba(0,0,0,.55);
}

/* Full-bleed custom footer should always reach browser edges, even when placed inside a constrained page. */
body.msf-theme .entry-content .msf-footer-cta,
body.msf-theme .entry-content .wp-block-group.msf-footer-cta {
  position: relative !important;
  left: 50% !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
}

body.msf-theme:not(.home) .entry-content > .msf-footer-cta,
body.msf-theme:not(.home) .entry-content > .wp-block-group.msf-footer-cta {
  margin-bottom: calc(-1 * clamp(40px, 6vw, 84px)) !important;
}

@media (max-width: 980px) {
  body.msf-theme:not(.home) .entry-content > :where(.wp-block-columns) {
    width: min(calc(100% - 32px), var(--msf-max));
  }
  body.msf-theme:not(.home) .wp-block-columns:not(.is-not-stacked-on-mobile) {
    gap: 28px !important;
  }
}

@media (max-width: 640px) {
  body.msf-theme:not(.home) .entry-content {
    padding-top: 34px !important;
  }
  body.msf-theme:not(.home) .entry-content > :where(h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,figure,.wp-block-image,.wp-block-embed,.wp-block-video,.wp-block-buttons,.wp-block-columns,.wp-block-group:not(.alignfull),.wp-block-separator,.wp-block-shortcode,.wp-block-table) {
    width: min(calc(100% - 28px), var(--msf-max));
  }
  body.msf-theme:not(.home) .entry-content > figure.wp-block-embed,
  body.msf-theme:not(.home) .entry-content > figure.wp-block-video,
  body.msf-theme:not(.home) .entry-content > .wp-block-embed,
  body.msf-theme:not(.home) .entry-content > .wp-block-video {
    width: min(calc(100% - 28px), 1040px) !important;
    margin-top: 26px !important;
    margin-bottom: 42px !important;
  }
  body.msf-theme:not(.home) .wp-block-embed.is-type-video,
  body.msf-theme:not(.home) .wp-block-embed-youtube,
  body.msf-theme:not(.home) .wp-block-video {
    border-radius: 18px;
  }
}


/* v2.3: Interior hero and pattern refinements */
body.msf-theme {
  overflow-x: hidden;
}

body.msf-theme:not(.home) .entry-content,
body.msf-theme:not(.home) .entry-content > .wp-block-group {
  overflow: visible !important;
}

/* When an interior video hero is present, let it sit directly under the nav instead of after the cloud/top spacer. */
body.msf-theme:not(.home).msf-has-interior-video-hero .site-content::before {
  display: none !important;
}

body.msf-theme:not(.home).msf-has-interior-video-hero .entry-content {
  padding-top: 0 !important;
}

body.msf-theme:not(.home).msf-has-interior-video-hero .entry-content > .msf-interior-video-hero:first-child,
body.msf-theme:not(.home).msf-has-interior-video-hero .entry-content > .wp-block-group.msf-interior-video-hero:first-child,
body.msf-theme:not(.home).msf-has-interior-video-hero .entry-content > figure.msf-interior-video-hero:first-child,
body.msf-theme:not(.home).msf-has-interior-video-hero .entry-content > .wp-block-embed.msf-interior-video-hero:first-child,
body.msf-theme:not(.home).msf-has-interior-video-hero .entry-content > .wp-block-video.msf-interior-video-hero:first-child {
  margin-top: 0 !important;
}

/* Stronger full-bleed logic that works even if a block is nested inside a constrained group. */
body.msf-theme .msf-interior-video-hero,
body.msf-theme .msf-footer-cta,
body.msf-theme .msf-partners-section,
body.msf-theme .msf-section-cream,
body.msf-theme .msf-section-sky,
body.msf-theme .msf-section-teal,
body.msf-theme .msf-section-coral,
body.msf-theme .msf-section-plum,
body.msf-theme .msf-section-marigold,
body.msf-theme .msf-section-white {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  left: auto !important;
  right: auto !important;
}

/* Make the interior video hero feel like the homepage hero: edge-to-edge, tall, no frame. */
body.msf-theme:not(.home) .msf-interior-video-hero {
  display: block !important;
  min-height: clamp(420px, calc(100vh - 92px), 820px) !important;
  margin-bottom: 0 !important;
  background: #111 !important;
}

body.msf-theme:not(.home) .msf-interior-video-hero .wp-block-group__inner-container,
body.msf-theme:not(.home) .msf-interior-video-hero figure,
body.msf-theme:not(.home) .msf-interior-video-hero .wp-block-embed,
body.msf-theme:not(.home) .msf-interior-video-hero .wp-block-embed__wrapper,
body.msf-theme:not(.home) .msf-interior-video-hero .wp-block-video,
body.msf-theme:not(.home) .msf-interior-video-hero .wp-block-video video {
  min-height: inherit !important;
}

body.msf-theme:not(.home) .msf-interior-video-hero iframe,
body.msf-theme:not(.home) .msf-interior-video-hero video {
  width: 100vw !important;
  height: clamp(420px, calc(100vh - 92px), 820px) !important;
  min-height: clamp(420px, calc(100vh - 92px), 820px) !important;
  object-fit: cover !important;
  object-position: center center !important;
}

/* For a cleaner video hero, uploaded MP4/WebM files behave better than YouTube embeds. */
body.msf-theme:not(.home) .msf-interior-video-hero .wp-embed-aspect-16-9 .wp-block-embed__wrapper::before {
  padding-top: 0 !important;
}

/* Designed program-page pattern based on the screenshot you shared. */
body.msf-theme:not(.home) .msf-program-intro-band {
  margin-top: 0 !important;
  padding-top: clamp(54px, 7vw, 92px) !important;
  padding-bottom: clamp(54px, 7vw, 92px) !important;
}

body.msf-theme:not(.home) .msf-program-intro-band h2 {
  max-width: 980px;
  margin-bottom: 22px !important;
}

body.msf-theme:not(.home) .msf-program-intro-band p {
  max-width: 1080px;
}

body.msf-theme:not(.home) .msf-program-intro-band .wp-block-buttons {
  margin-top: 26px;
}

body.msf-theme:not(.home) .msf-program-feature-layout {
  padding-top: clamp(54px, 7vw, 96px) !important;
  padding-bottom: clamp(54px, 7vw, 96px) !important;
}

body.msf-theme:not(.home) .msf-program-feature-layout > .wp-block-group__inner-container,
body.msf-theme:not(.home) .msf-program-feature-layout {
  max-width: var(--msf-max) !important;
}

body.msf-theme:not(.home) .msf-program-feature-layout h2 {
  margin-bottom: clamp(28px, 4vw, 52px) !important;
}

body.msf-theme:not(.home) .msf-feature-statement {
  max-width: 1040px;
  font-size: clamp(2.15rem, 5.2vw, 4.75rem) !important;
  line-height: .98 !important;
  letter-spacing: -.045em !important;
  margin-bottom: 28px !important;
}

body.msf-theme:not(.home) .msf-feature-lede {
  max-width: 1060px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: left;
  font-weight: 500;
}

body.msf-theme:not(.home) .msf-stat-grid {
  margin-top: clamp(38px, 6vw, 76px) !important;
  gap: clamp(22px, 4vw, 52px) !important;
  align-items: start !important;
}

body.msf-theme:not(.home) .msf-stat-grid .wp-block-column {
  text-align: center;
}

body.msf-theme:not(.home) .msf-stat-grid h3 {
  font-size: clamp(2.4rem, 5vw, 4.6rem) !important;
  line-height: .95 !important;
  letter-spacing: -.04em !important;
  margin-bottom: 12px !important;
  font-weight: 500 !important;
}

body.msf-theme:not(.home) .msf-stat-grid p {
  max-width: 220px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  font-size: clamp(.95rem, 1vw, 1.05rem) !important;
  line-height: 1.38 !important;
  font-weight: 500 !important;
}

/* Keep custom footer truly edge-to-edge on all pages. */
body.msf-theme .msf-footer-cta {
  margin-bottom: 0 !important;
}

body.msf-theme .msf-footer-cta > .wp-block-group__inner-container {
  max-width: var(--msf-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

@media (max-width: 782px) {
  body.msf-theme:not(.home) .msf-interior-video-hero,
  body.msf-theme:not(.home) .msf-interior-video-hero iframe,
  body.msf-theme:not(.home) .msf-interior-video-hero video {
    min-height: 64vh !important;
    height: 64vh !important;
  }

  body.msf-theme:not(.home) .msf-feature-statement {
    font-size: clamp(2rem, 11vw, 3.45rem) !important;
  }

  body.msf-theme:not(.home) .msf-program-intro-band,
  body.msf-theme:not(.home) .msf-program-feature-layout {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.msf-theme:not(.home) .msf-stat-grid:not(.is-not-stacked-on-mobile) {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
  }
}

@media (max-width: 520px) {
  body.msf-theme:not(.home) .msf-stat-grid:not(.is-not-stacked-on-mobile) {
    grid-template-columns: 1fr !important;
  }
}


/* v2.4: Standardize visible custom play buttons.
   YouTube iframe and browser-native video controls are controlled by YouTube/the browser,
   so this normalizes the theme-owned carousel/play overlays to the same visual language. */
.msf-theme {
  --msf-play-red: #FF0033;
  --msf-play-red-dark: #D9002B;
}

.msf-youtube-play,
.msf-video-play,
.msf-play-button,
.msf-card-play,
.msf-theme .play-button,
.msf-theme .video-play-button {
  width: clamp(46px, 5vw, 62px) !important;
  height: clamp(46px, 5vw, 62px) !important;
  border-radius: 999px !important;
  background: var(--msf-play-red) !important;
  color: #fff !important;
  border: 3px solid rgba(255,255,255,.92) !important;
  box-shadow: 0 8px 22px rgba(0,0,0,.22) !important;
  display: grid !important;
  place-items: center !important;
  line-height: 1 !important;
  text-align: center !important;
  transition: transform .16s ease, background-color .16s ease, box-shadow .16s ease !important;
}

.msf-youtube-play {
  font-size: 0 !important;
}

.msf-youtube-play::before,
.msf-video-play::before,
.msf-play-button::before,
.msf-card-play::before,
.msf-theme .play-button::before,
.msf-theme .video-play-button::before {
  content: '';
  display: block;
  width: 0;
  height: 0;
  margin-left: 4px;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 16px solid #fff;
}

.msf-youtube-thumb:hover .msf-youtube-play,
.msf-youtube-thumb:focus-visible .msf-youtube-play,
.msf-theme a:hover .msf-video-play,
.msf-theme a:focus-visible .msf-video-play,
.msf-theme a:hover .msf-play-button,
.msf-theme a:focus-visible .msf-play-button {
  background: var(--msf-play-red-dark) !important;
  transform: translate(-50%, -50%) scale(1.06) !important;
}

/* Keep video containers visually consistent even when the actual play control is controlled by YouTube/browser. */
.msf-video-frame,
.msf-interior-video-hero,
body.msf-theme:not(.home) .wp-block-embed-youtube,
body.msf-theme:not(.home) .wp-block-video {
  --msf-video-radius: 0px;
}

.msf-section .msf-video-frame,
body.msf-theme:not(.home) .wp-block-embed-youtube:not(.alignfull),
body.msf-theme:not(.home) .wp-block-video:not(.alignfull) {
  --msf-video-radius: 20px;
}

.msf-video-frame iframe,
.msf-video-frame video,
body.msf-theme:not(.home) .wp-block-embed-youtube iframe,
body.msf-theme:not(.home) .wp-block-video video {
  border-radius: var(--msf-video-radius) !important;
}


/* v2.5: Reliable Program full-video pattern. */
body.msf-theme:not(.home).msf-has-program-page-layout-v2 .site-content::before,
body.msf-theme:not(.home).msf-has-program-page-layout-v2 .entry-header,
body.msf-theme:not(.home).msf-has-program-page-layout-v2 .page .entry-header,
body.msf-theme:not(.home).msf-has-program-page-layout-v2 .entry-title {
  display: none !important;
}

body.msf-theme:not(.home).msf-has-program-page-layout-v2 .site-content,
body.msf-theme:not(.home).msf-has-program-page-layout-v2 .content-area,
body.msf-theme:not(.home).msf-has-program-page-layout-v2 .site-main,
body.msf-theme:not(.home).msf-has-program-page-layout-v2 article,
body.msf-theme:not(.home).msf-has-program-page-layout-v2 .entry-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.msf-theme .msf-program-page-layout-v2 {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: 0 !important;
  overflow-x: clip !important;
}

body.msf-theme .msf-program-page-layout-v2 > .wp-block-group__inner-container {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
}

body.msf-theme:not(.home) .msf-program-page-layout-v2 .msf-program-video-hero {
  width: 100vw !important;
  max-width: 100vw !important;
  margin: 0 !important;
  min-height: clamp(420px, calc(100vh - 86px), 820px) !important;
}

body.msf-theme:not(.home) .msf-program-page-layout-v2 .msf-program-video-hero iframe,
body.msf-theme:not(.home) .msf-program-page-layout-v2 .msf-program-video-hero video {
  width: 100vw !important;
  height: clamp(420px, calc(100vh - 86px), 820px) !important;
  min-height: clamp(420px, calc(100vh - 86px), 820px) !important;
  border-radius: 0 !important;
  object-fit: cover !important;
}

body.msf-theme:not(.home) .msf-program-page-layout-v2 .msf-program-intro-band,
body.msf-theme:not(.home) .msf-program-page-layout-v2 .msf-program-feature-layout {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  width: 100vw !important;
  max-width: 100vw !important;
  padding-left: max(24px, calc((100vw - var(--msf-max)) / 2)) !important;
  padding-right: max(24px, calc((100vw - var(--msf-max)) / 2)) !important;
}

body.msf-theme:not(.home) .msf-program-page-layout-v2 .msf-program-intro-band > .wp-block-group__inner-container,
body.msf-theme:not(.home) .msf-program-page-layout-v2 .msf-program-feature-layout > .wp-block-group__inner-container {
  width: 100% !important;
  max-width: var(--msf-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.msf-theme:not(.home) .msf-program-page-layout-v2 .msf-section-marigold {
  background: #F4CD62 !important;
}

body.msf-theme:not(.home) .msf-program-page-layout-v2 .msf-stat-grid {
  margin-top: clamp(36px, 6vw, 76px) !important;
}

@media (max-width: 782px) {
  body.msf-theme:not(.home) .msf-program-page-layout-v2 .msf-program-video-hero,
  body.msf-theme:not(.home) .msf-program-page-layout-v2 .msf-program-video-hero iframe,
  body.msf-theme:not(.home) .msf-program-page-layout-v2 .msf-program-video-hero video {
    min-height: 62vh !important;
    height: 62vh !important;
  }
}


/* v2.6: Reliable full-width section utilities for nested Gutenberg Groups and Inspiro containers. */
body.msf-theme :where(.msf-force-full,.msf-full-bleed,.msf-section-cream,.msf-section-sky,.msf-section-teal,.msf-section-coral,.msf-section-plum,.msf-section-marigold,.msf-section-white) {
  position: relative !important;
  display: block !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  box-sizing: border-box !important;
  padding-top: clamp(50px, 7vw, 96px) !important;
  padding-bottom: clamp(50px, 7vw, 96px) !important;
  padding-left: max(24px, calc((100vw - var(--msf-max, 1180px)) / 2)) !important;
  padding-right: max(24px, calc((100vw - var(--msf-max, 1180px)) / 2)) !important;
  left: auto !important;
  right: auto !important;
  clear: both !important;
}

body.msf-theme :where(.msf-section-cream) { background: var(--msf-cream) !important; color: var(--msf-ink) !important; }
body.msf-theme :where(.msf-section-sky) { background: var(--msf-sky) !important; color: var(--msf-ink) !important; }
body.msf-theme :where(.msf-section-white) { background: var(--msf-white) !important; color: var(--msf-ink) !important; }
body.msf-theme :where(.msf-section-marigold) { background: var(--msf-marigold-light) !important; color: var(--msf-ink) !important; }
body.msf-theme :where(.msf-section-teal) { background: var(--msf-teal-dark) !important; color: #fff !important; }
body.msf-theme :where(.msf-section-coral) { background: var(--msf-coral) !important; color: #fff !important; }
body.msf-theme :where(.msf-section-plum) { background: var(--msf-plum) !important; color: #fff !important; }
body.msf-theme :where(.msf-section-teal,.msf-section-coral,.msf-section-plum) :where(h1,h2,h3,h4,h5,h6,p,li,a,strong,span) { color: #fff !important; }

/* Keep the actual content aligned inside full-bleed color rows. */
body.msf-theme :where(.msf-force-full,.msf-full-bleed,.msf-section-cream,.msf-section-sky,.msf-section-teal,.msf-section-coral,.msf-section-plum,.msf-section-marigold,.msf-section-white) > :where(.wp-block-group__inner-container,.wp-block-columns,.wp-block-column,h1,h2,h3,h4,h5,h6,p,ul,ol,figure,.wp-block-buttons,.wp-block-shortcode,.wp-block-spacer) {
  max-width: var(--msf-max, 1180px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Editor view: show color rows across the editor canvas without spilling behind the settings panels. */
.editor-styles-wrapper :where(.msf-force-full,.msf-full-bleed,.msf-section-cream,.msf-section-sky,.msf-section-teal,.msf-section-coral,.msf-section-plum,.msf-section-marigold,.msf-section-white) {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
  padding: 56px 40px !important;
  clear: both !important;
}
.editor-styles-wrapper :where(.msf-section-cream) { background: var(--msf-cream, #f7f3e8) !important; color: var(--msf-ink, #241f1c) !important; }
.editor-styles-wrapper :where(.msf-section-sky) { background: var(--msf-sky, #c7eef0) !important; color: var(--msf-ink, #241f1c) !important; }
.editor-styles-wrapper :where(.msf-section-white) { background: #fff !important; color: var(--msf-ink, #241f1c) !important; }
.editor-styles-wrapper :where(.msf-section-marigold) { background: var(--msf-marigold-light, #f5d36f) !important; color: var(--msf-ink, #241f1c) !important; }
.editor-styles-wrapper :where(.msf-section-teal) { background: var(--msf-teal-dark, #00666b) !important; color: #fff !important; }
.editor-styles-wrapper :where(.msf-section-coral) { background: var(--msf-coral, #e35d4f) !important; color: #fff !important; }
.editor-styles-wrapper :where(.msf-section-plum) { background: var(--msf-plum, #4b3a5b) !important; color: #fff !important; }
.editor-styles-wrapper :where(.msf-section-teal,.msf-section-coral,.msf-section-plum) :where(h1,h2,h3,h4,h5,h6,p,li,a,strong,span) { color: #fff !important; }

@media (max-width: 782px) {
  body.msf-theme :where(.msf-force-full,.msf-full-bleed,.msf-section-cream,.msf-section-sky,.msf-section-teal,.msf-section-coral,.msf-section-plum,.msf-section-marigold,.msf-section-white) {
    padding-left: 22px !important;
    padding-right: 22px !important;
    padding-top: 42px !important;
    padding-bottom: 42px !important;
  }
  .editor-styles-wrapper :where(.msf-force-full,.msf-full-bleed,.msf-section-cream,.msf-section-sky,.msf-section-teal,.msf-section-coral,.msf-section-plum,.msf-section-marigold,.msf-section-white) {
    padding: 42px 22px !important;
  }
}

/* ======================================================
   v2.8: Conservative book-palette rebuild
   Uses the stable v2.6 layout, then swaps the visual color system only.
   Also bakes in the two CSS fixes that worked: full-width color backgrounds
   and reduced interior page top gap.
====================================================== */

:root,
body.msf-theme {
  --msf-soft-ivory: #F7F0DF;
  --msf-breath-aqua: #73CFCF;
  --msf-deep-aqua: #2FA6B1;
  --msf-sunny-gold: #E8C34A;
  --msf-buttercream: #F5E3A7;
  --msf-peach-coral: #E79A74;
  --msf-terracotta: #C86C4E;
  --msf-sage-leaf: #9AA346;
  --msf-cocoa-brown: #6E412A;
  --msf-ink: #241F21;

  /* Map the old theme variables to the newer book palette. */
  --msf-white: #ffffff;
  --msf-cream: var(--msf-soft-ivory);
  --msf-cream-deep: var(--msf-buttercream);
  --msf-mint: var(--msf-breath-aqua);
  --msf-teal: var(--msf-deep-aqua);
  --msf-teal-dark: #197D88;
  --msf-sky: #D7EFEB;
  --msf-coral: var(--msf-peach-coral);
  --msf-coral-dark: var(--msf-terracotta);
  --msf-salmon: var(--msf-peach-coral);
  --msf-marigold: var(--msf-sunny-gold);
  --msf-marigold-light: var(--msf-buttercream);
  --msf-leaf: var(--msf-sage-leaf);
  --msf-plum: var(--msf-cocoa-brown);
  --msf-brown: var(--msf-cocoa-brown);
  --msf-muted: #5C5147;
  --msf-yellow: var(--msf-sunny-gold);
}

body.msf-theme {
  background: var(--msf-soft-ivory) !important;
  color: var(--msf-ink) !important;
}

body.msf-theme main,
.msf-home-shell,
.msf-interior-shell,
body.msf-theme:not(.home) .site-content,
body.msf-theme:not(.home) main.site-main {
  background: var(--msf-soft-ivory) !important;
}

/* Header/nav: lighter, livelier book aqua instead of heavy teal. */
body.msf-theme:not(.home) .site-header,
body.msf-theme:not(.home) .navbar,
body.msf-theme:not(.home) .headroom,
body.msf-theme:not(.home) .site-header.headroom,
body.msf-theme:not(.home) .site-header.has-header-image,
body.msf-theme.home .site-header.headroom--not-top,
body.msf-theme.home .navbar.headroom--not-top,
body.msf-theme.home .site-header.is-sticky,
body.msf-theme.home .navbar.is-sticky,
body.msf-theme.home .site-header.sticky,
body.msf-theme.home .navbar.sticky {
  background-color: var(--msf-deep-aqua) !important;
  box-shadow: 0 8px 24px rgba(36,31,33,.13) !important;
}

body.msf-theme:not(.home) .site-header a,
body.msf-theme:not(.home) .navbar a,
body.msf-theme.home .site-header.headroom--not-top a,
body.msf-theme.home .navbar.headroom--not-top a,
body.msf-theme.home .site-header.is-sticky a,
body.msf-theme.home .navbar.is-sticky a,
body.msf-theme.home .site-header.sticky a,
body.msf-theme.home .navbar.sticky a {
  color: #ffffff !important;
  text-shadow: none !important;
}

body.msf-theme .site-header a:hover,
body.msf-theme .navbar a:hover,
body.msf-theme .site-header .current-menu-item > a,
body.msf-theme .site-header .current_page_item > a {
  color: var(--msf-sunny-gold) !important;
}

/* Buttons: book aqua with terracotta hover. */
.msf-button,
.msf-theme .wp-block-button__link,
.msf-theme .wp-element-button,
.msf-theme .button,
.msf-theme input[type="submit"],
.msf-theme button:not(.navbar-toggle),
.msf-theme .woocommerce a.button,
.msf-theme .woocommerce button.button,
.msf-theme .woocommerce input.button {
  background: var(--msf-deep-aqua) !important;
  background-color: var(--msf-deep-aqua) !important;
  color: #ffffff !important;
  border-color: var(--msf-deep-aqua) !important;
}

.msf-theme .wp-block-button__link:hover,
.msf-theme .wp-element-button:hover,
.msf-theme .button:hover,
.msf-button:hover,
.msf-theme input[type="submit"]:hover,
.msf-theme button:not(.navbar-toggle):hover,
.msf-theme .woocommerce a.button:hover,
.msf-theme .woocommerce button.button:hover,
.msf-theme .woocommerce input.button:hover {
  background: var(--msf-terracotta) !important;
  background-color: var(--msf-terracotta) !important;
  color: #ffffff !important;
  border-color: var(--msf-terracotta) !important;
}

/* Homepage bands: warmer, lighter, closer to the book pages. */
.msf-cloud-top,
.msf-video-section,
.msf-partners-section,
.msf-interior-intro {
  background-color: var(--msf-soft-ivory) !important;
}

.msf-band-purple {
  background: var(--msf-breath-aqua) !important;
  color: var(--msf-ink) !important;
}

.msf-band-teal {
  background: var(--msf-peach-coral) !important;
  color: var(--msf-ink) !important;
}

.msf-band-purple h1,
.msf-band-purple h2,
.msf-band-purple h3,
.msf-band-purple p,
.msf-band-purple li,
.msf-band-purple a,
.msf-band-teal h1,
.msf-band-teal h2,
.msf-band-teal h3,
.msf-band-teal p,
.msf-band-teal li,
.msf-band-teal a {
  color: var(--msf-ink) !important;
}

.msf-band-purple .wp-block-button__link,
.msf-band-teal .wp-block-button__link {
  background: var(--msf-ink) !important;
  color: #ffffff !important;
}

.msf-band-purple .wp-block-button__link:hover,
.msf-band-teal .wp-block-button__link:hover {
  background: var(--msf-terracotta) !important;
  color: #ffffff !important;
}

.msf-downloads-section {
  background: #D7EFEB !important;
  color: var(--msf-ink) !important;
}

/* Cards stay strong for contrast, but use aqua instead of drab teal. */
.msf-youtube-card,
.msf-youtube-thumb,
.msf-youtube-card-body,
.msf-downloads-section .woocommerce ul.products li.product,
.msf-downloads-section ul.products li.product,
.msf-theme .msf-downloads-section li.product,
.msf-theme .msf-downloads-section .products .product,
.msf-downloads-section .woocommerce-loop-product__title,
.msf-downloads-section .wc-block-grid__product-title,
.msf-theme .msf-downloads-section li.product .woocommerce-loop-product__title {
  background: var(--msf-deep-aqua) !important;
  color: #ffffff !important;
}

.msf-youtube-card-body h3,
.msf-youtube-card-body h3 a,
.msf-watch-now,
.msf-downloads-section .woocommerce-loop-product__title,
.msf-downloads-section .wc-block-grid__product-title,
.msf-theme .msf-downloads-section li.product .woocommerce-loop-product__title {
  color: #ffffff !important;
}

.msf-watch-now {
  background: rgba(36,31,33,.14) !important;
  border-color: rgba(255,255,255,.84) !important;
}

.msf-watch-now:hover,
.msf-watch-now:focus-visible,
.msf-downloads-section li.product:hover .woocommerce-loop-product__title,
.msf-downloads-section li.product:focus-within .woocommerce-loop-product__title {
  background: var(--msf-terracotta) !important;
  color: #ffffff !important;
}

/* Footer: warm terracotta, not heavy teal. */
.msf-footer-cta {
  background: var(--msf-terracotta) !important;
  color: #ffffff !important;
}

.msf-footer-cta h1,
.msf-footer-cta h2,
.msf-footer-cta h3,
.msf-footer-cta p,
.msf-footer-cta a,
.msf-footer-cta li,
.msf-footer-copy {
  color: #ffffff !important;
}

.msf-footer-cta a:hover {
  color: var(--msf-sunny-gold) !important;
}

/* Utility color sections. These use the exact full-width pseudo-background method that worked. */
body.msf-theme .site-content,
body.msf-theme .content-area,
body.msf-theme .site-main,
body.msf-theme #primary,
body.msf-theme .entry-content,
body.msf-theme .page .entry-content,
body.msf-theme .wp-block-post-content {
  overflow: visible !important;
}

body.msf-theme :where(.msf-section-cream,.msf-section-sky,.msf-section-teal,.msf-section-coral,.msf-section-plum,.msf-section-marigold,.msf-section-white) {
  position: relative !important;
  isolation: isolate;
  overflow: visible !important;
  background: transparent !important;
}

body.msf-theme :where(.msf-section-cream,.msf-section-sky,.msf-section-teal,.msf-section-coral,.msf-section-plum,.msf-section-marigold,.msf-section-white)::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  pointer-events: none;
}

body.msf-theme .msf-section-cream::before { background: var(--msf-soft-ivory) !important; }
body.msf-theme .msf-section-sky::before { background: #D7EFEB !important; }
body.msf-theme .msf-section-teal::before { background: var(--msf-breath-aqua) !important; }
body.msf-theme .msf-section-coral::before { background: var(--msf-peach-coral) !important; }
body.msf-theme .msf-section-marigold::before { background: var(--msf-buttercream) !important; }
body.msf-theme .msf-section-plum::before { background: var(--msf-cocoa-brown) !important; }
body.msf-theme .msf-section-white::before { background: #ffffff !important; }

body.msf-theme :where(.msf-section-cream,.msf-section-sky,.msf-section-teal,.msf-section-coral,.msf-section-marigold,.msf-section-white),
body.msf-theme :where(.msf-section-cream,.msf-section-sky,.msf-section-teal,.msf-section-coral,.msf-section-marigold,.msf-section-white) :where(h1,h2,h3,h4,h5,h6,p,li,a,strong,span) {
  color: var(--msf-ink) !important;
}

body.msf-theme .msf-section-plum,
body.msf-theme .msf-section-plum :where(h1,h2,h3,h4,h5,h6,p,li,a,strong,span) {
  color: #ffffff !important;
}

/* Interior page top-gap fix that worked in Customizer CSS. */
body.msf-theme:not(.home) .site-content,
body.msf-theme:not(.home) .content-area,
body.msf-theme:not(.home) #primary,
body.msf-theme:not(.home) .site-main,
body.msf-theme:not(.home) .entry-content {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

body.msf-theme:not(.home) .entry-content > *:first-child,
body.msf-theme:not(.home) .wp-block-post-content > *:first-child {
  margin-top: 0 !important;
}

body.msf-theme:not(.home) .entry-content > .wp-block-video:first-child,
body.msf-theme:not(.home) .entry-content > .wp-block-embed:first-child,
body.msf-theme:not(.home) .entry-content > .msf-video-hero-full:first-child,
body.msf-theme:not(.home) .entry-content > .msf-video-flush-top:first-child,
body.msf-theme:not(.home) .entry-content > .msf-interior-video-hero:first-child {
  margin-top: 0 !important;
}

/* Keep nav readable on mobile after palette change. */
@media (max-width: 782px) {
  body.msf-theme:not(.home) .site-header,
  body.msf-theme:not(.home) .navbar,
  body.msf-theme.home .site-header.headroom--not-top,
  body.msf-theme.home .navbar.headroom--not-top {
    background-color: var(--msf-deep-aqua) !important;
  }

  .msf-band-purple,
  .msf-band-teal {
    color: var(--msf-ink) !important;
  }
}


/* ==========================================================
   v2.9: YouTube + Free Downloads card alignment/accessibility
   ========================================================== */

/* Keep large text/background combinations WCAG-conscious. White text is only used on dark teal. */
:root {
  --msf-teal: #087E86;
  --msf-teal-dark: #075E66;
  --msf-coral-dark: #B93A32;
}

/* Center the View All Videos link under the section headline. */
.msf-youtube-carousel-topline {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  gap: .45rem !important;
  margin: 0 auto clamp(20px, 3vw, 34px) !important;
}

.msf-youtube-carousel-topline h3 {
  margin: 0 !important;
  text-align: center !important;
}

.msf-youtube-carousel-topline .msf-view-all,
.msf-video-section .msf-view-all {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 auto !important;
  text-align: center !important;
}

/* Make video cards match the Free Downloads card rhythm more closely. */
.msf-youtube-carousel {
  --msf-card-width: clamp(290px, 30vw, 380px);
  gap: clamp(18px, 2.6vw, 34px) !important;
  padding: 6px 6px 24px !important;
}

.msf-youtube-card {
  display: flex !important;
  flex-direction: column !important;
  background: var(--msf-teal) !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  box-shadow: var(--msf-shadow-soft) !important;
  scroll-snap-align: start;
}

.msf-youtube-thumb {
  width: 100% !important;
  aspect-ratio: 16 / 9;
  border-radius: 20px 20px 0 0 !important;
}

.msf-youtube-thumb img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.msf-youtube-card-body {
  flex: 1 1 auto !important;
  display: flex !important;
  align-items: center !important;
  background: var(--msf-teal) !important;
  color: #ffffff !important;
  padding: 1.05rem 1.15rem 1.2rem !important;
  min-height: 92px !important;
}

.msf-youtube-card-body h3 {
  margin: 0 !important;
  min-height: 0 !important;
  font-size: clamp(1.08rem, 1.55vw, 1.38rem) !important;
  line-height: 1.14 !important;
  font-weight: 900 !important;
  color: #ffffff !important;
}

.msf-youtube-card-body h3 a {
  color: #ffffff !important;
  text-decoration: none !important;
}

.msf-youtube-card-body h3 a:hover,
.msf-youtube-card-body h3 a:focus-visible {
  text-decoration: underline !important;
  text-underline-offset: .18em;
}

/* Remove the extra Watch Now button from older cached/rendered markup too. */
.msf-watch-now {
  display: none !important;
}

/* Make Free Downloads scroll horizontally like the YouTube carousel. */
.msf-downloads-section .woocommerce ul.products,
.msf-downloads-section ul.products {
  --msf-card-width: clamp(290px, 30vw, 380px);
  display: grid !important;
  grid-auto-flow: column !important;
  grid-auto-columns: var(--msf-card-width) !important;
  grid-template-columns: none !important;
  gap: clamp(18px, 2.6vw, 34px) !important;
  overflow-x: auto !important;
  overscroll-behavior-inline: contain;
  scroll-snap-type: inline mandatory;
  scroll-padding-inline: 6px;
  padding: 6px 6px 24px !important;
  -webkit-overflow-scrolling: touch;
}

.msf-downloads-section .woocommerce ul.products::-webkit-scrollbar,
.msf-downloads-section ul.products::-webkit-scrollbar {
  height: 12px;
}

.msf-downloads-section .woocommerce ul.products::-webkit-scrollbar-track,
.msf-downloads-section ul.products::-webkit-scrollbar-track {
  background: rgba(7, 94, 102, .18);
  border-radius: 999px;
}

.msf-downloads-section .woocommerce ul.products::-webkit-scrollbar-thumb,
.msf-downloads-section ul.products::-webkit-scrollbar-thumb {
  background: var(--msf-teal-dark);
  border-radius: 999px;
  border: 3px solid var(--msf-sky);
}

.msf-downloads-section .woocommerce ul.products li.product,
.msf-downloads-section ul.products li.product,
.msf-theme .msf-downloads-section li.product,
.msf-theme .msf-downloads-section .products .product {
  scroll-snap-align: start;
  min-width: 0 !important;
  background: var(--msf-teal) !important;
}

.msf-downloads-section .woocommerce-loop-product__title,
.msf-downloads-section .wc-block-grid__product-title,
.msf-theme .msf-downloads-section li.product .woocommerce-loop-product__title {
  background: var(--msf-teal) !important;
  color: #ffffff !important;
  font-size: clamp(1.08rem, 1.55vw, 1.38rem) !important;
  min-height: 92px !important;
}

.msf-downloads-section li.product:hover .woocommerce-loop-product__title,
.msf-downloads-section li.product:focus-within .woocommerce-loop-product__title {
  background: var(--msf-teal-dark) !important;
}

/* Footer tone adjusted so white footer text clears WCAG contrast for normal text. */
#colophon,
.site-footer,
.footer,
.msf-footer,
body footer {
  background-color: var(--msf-coral-dark) !important;
  color: #ffffff !important;
}

/* Mobile card widths. */
@media (max-width: 640px) {
  .msf-youtube-carousel,
  .msf-downloads-section .woocommerce ul.products,
  .msf-downloads-section ul.products {
    --msf-card-width: min(84vw, 340px);
  }

  .msf-youtube-card-body,
  .msf-downloads-section .woocommerce-loop-product__title,
  .msf-downloads-section .wc-block-grid__product-title,
  .msf-theme .msf-downloads-section li.product .woocommerce-loop-product__title {
    min-height: auto !important;
  }
}

/* ======================================================
   v3.0 Layout correction release
   - Equal homepage feature-section depth
   - Interior full-screen video hero utility/pattern
   - WooCommerce product top spacing + related products cards
   - Accessibility-conscious contrast/focus refinements
====================================================== */

body.msf-theme {
  --msf-header-safe-space: clamp(92px, 8vw, 132px);
  --msf-section-depth: clamp(82px, 9vw, 132px);
  --msf-section-depth-mobile: clamp(58px, 12vw, 84px);
}

/* 1) Homepage: make the key narrative color sections feel equally substantial. */
body.msf-theme.home :where(
  .msf-home-shell > .msf-section,
  .msf-home-shell > .wp-block-group.msf-section,
  .msf-band-purple,
  .msf-band-teal,
  .msf-section-teal,
  .msf-section-coral,
  .msf-section-marigold,
  .msf-section-sky,
  .msf-section-cream
) {
  padding-top: var(--msf-section-depth) !important;
  padding-bottom: var(--msf-section-depth) !important;
}

body.msf-theme.home :where(.msf-band-purple,.msf-band-teal,.msf-section-teal,.msf-section-coral) .msf-wrap,
body.msf-theme.home :where(.msf-band-purple,.msf-band-teal,.msf-section-teal,.msf-section-coral) > .wp-block-group__inner-container {
  min-height: clamp(300px, 32vw, 430px);
  display: grid;
  align-items: center;
}

body.msf-theme.home :where(.msf-band-purple,.msf-band-teal,.msf-section-teal,.msf-section-coral) .msf-two-col {
  align-items: center;
}

@media (max-width: 782px) {
  body.msf-theme.home :where(
    .msf-home-shell > .msf-section,
    .msf-home-shell > .wp-block-group.msf-section,
    .msf-band-purple,
    .msf-band-teal,
    .msf-section-teal,
    .msf-section-coral,
    .msf-section-marigold,
    .msf-section-sky,
    .msf-section-cream
  ) {
    padding-top: var(--msf-section-depth-mobile) !important;
    padding-bottom: var(--msf-section-depth-mobile) !important;
  }

  body.msf-theme.home :where(.msf-band-purple,.msf-band-teal,.msf-section-teal,.msf-section-coral) .msf-wrap,
  body.msf-theme.home :where(.msf-band-purple,.msf-band-teal,.msf-section-teal,.msf-section-coral) > .wp-block-group__inner-container {
    min-height: 0;
  }
}

/* 2) Interior pages: avoid sticky nav covering normal page/product content. */
body.msf-theme:not(.home):not(.msf-has-interior-video-hero):not(.msf-has-program-page-layout-v2) .site-content,
body.msf-theme:not(.home):not(.msf-has-interior-video-hero):not(.msf-has-program-page-layout-v2) .content-area,
body.msf-theme:not(.home):not(.msf-has-interior-video-hero):not(.msf-has-program-page-layout-v2) #primary,
body.msf-theme:not(.home):not(.msf-has-interior-video-hero):not(.msf-has-program-page-layout-v2) .site-main {
  padding-top: var(--msf-header-safe-space) !important;
}

body.msf-theme.single-product .site-content,
body.msf-theme.single-product .content-area,
body.msf-theme.single-product #primary,
body.msf-theme.single-product .site-main {
  padding-top: var(--msf-header-safe-space) !important;
}

body.msf-theme.single-product div.product {
  margin-top: 0 !important;
}

/* 3) Interior full-screen video hero: add class to a full-width Group wrapping the video. */
body.msf-theme:not(.home) .msf-interior-fullscreen-video,
body.msf-theme:not(.home) .msf-interior-video-hero.msf-fullscreen,
body.msf-theme:not(.home) .msf-video-hero-fullscreen {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: var(--msf-ink) !important;
  position: relative !important;
}

body.msf-theme:not(.home) .msf-interior-fullscreen-video > .wp-block-group__inner-container,
body.msf-theme:not(.home) .msf-interior-video-hero.msf-fullscreen > .wp-block-group__inner-container,
body.msf-theme:not(.home) .msf-video-hero-fullscreen > .wp-block-group__inner-container {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

body.msf-theme:not(.home) .msf-interior-fullscreen-video :where(.wp-block-embed,.wp-block-video,.wp-block-embed__wrapper),
body.msf-theme:not(.home) .msf-interior-video-hero.msf-fullscreen :where(.wp-block-embed,.wp-block-video,.wp-block-embed__wrapper),
body.msf-theme:not(.home) .msf-video-hero-fullscreen :where(.wp-block-embed,.wp-block-video,.wp-block-embed__wrapper) {
  width: 100vw !important;
  max-width: 100vw !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.msf-theme:not(.home) .msf-interior-fullscreen-video iframe,
body.msf-theme:not(.home) .msf-interior-fullscreen-video video,
body.msf-theme:not(.home) .msf-interior-video-hero.msf-fullscreen iframe,
body.msf-theme:not(.home) .msf-interior-video-hero.msf-fullscreen video,
body.msf-theme:not(.home) .msf-video-hero-fullscreen iframe,
body.msf-theme:not(.home) .msf-video-hero-fullscreen video {
  display: block !important;
  width: 100vw !important;
  height: clamp(520px, calc(100vh - 0px), 860px) !important;
  min-height: clamp(520px, calc(100vh - 0px), 860px) !important;
  object-fit: cover !important;
  border-radius: 0 !important;
}

/* When the full-screen hero is first, let it sit like the homepage instead of adding interior top padding. */
body.msf-theme.msf-has-interior-video-hero:not(.home) .site-content,
body.msf-theme.msf-has-interior-video-hero:not(.home) .content-area,
body.msf-theme.msf-has-interior-video-hero:not(.home) #primary,
body.msf-theme.msf-has-interior-video-hero:not(.home) .site-main,
body.msf-theme.msf-has-interior-video-hero:not(.home) .entry-content {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

@media (max-width: 782px) {
  body.msf-theme:not(.home) .msf-interior-fullscreen-video iframe,
  body.msf-theme:not(.home) .msf-interior-fullscreen-video video,
  body.msf-theme:not(.home) .msf-interior-video-hero.msf-fullscreen iframe,
  body.msf-theme:not(.home) .msf-interior-video-hero.msf-fullscreen video,
  body.msf-theme:not(.home) .msf-video-hero-fullscreen iframe,
  body.msf-theme:not(.home) .msf-video-hero-fullscreen video {
    height: 64vh !important;
    min-height: 420px !important;
  }
}

/* 4) Related products: match the Resources for Home & School card language. */
body.msf-theme.single-product .related.products {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: clamp(72px, 8vw, 118px) max(24px, calc((100vw - var(--msf-max, 1180px)) / 2)) !important;
  background: var(--msf-sky) !important;
  color: var(--msf-ink) !important;
  clear: both !important;
}

body.msf-theme.single-product .related.products > h2,
body.msf-theme.single-product .related.products h2:first-child {
  max-width: var(--msf-max, 1180px) !important;
  margin: 0 auto clamp(28px, 4vw, 48px) !important;
  text-align: center !important;
  color: var(--msf-ink) !important;
  font-size: clamp(2.05rem, 3.3vw, 3.35rem) !important;
  line-height: 1.04 !important;
  letter-spacing: -0.045em !important;
  font-weight: 800 !important;
}

body.msf-theme.single-product .related.products ul.products {
  max-width: var(--msf-max, 1180px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(18px, 2.6vw, 34px) !important;
}

body.msf-theme.single-product .related.products ul.products::before,
body.msf-theme.single-product .related.products ul.products::after {
  display: none !important;
}

body.msf-theme.single-product .related.products ul.products li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: var(--msf-teal) !important;
  border-radius: 20px !important;
  box-shadow: var(--msf-shadow-soft) !important;
  display: flex !important;
  flex-direction: column !important;
}

body.msf-theme.single-product .related.products li.product a.woocommerce-loop-product__link,
body.msf-theme.single-product .related.products li.product a.woocommerce-LoopProduct-link {
  display: flex !important;
  flex-direction: column !important;
  min-height: 100% !important;
  text-decoration: none !important;
}

body.msf-theme.single-product .related.products li.product img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
  display: block !important;
  margin: 0 !important;
  border-radius: 20px 20px 0 0 !important;
  background: var(--msf-cream) !important;
}

body.msf-theme.single-product .related.products .woocommerce-loop-product__title {
  flex: 1 1 auto !important;
  display: flex !important;
  align-items: center !important;
  min-height: 86px !important;
  margin: 0 !important;
  padding: 1rem 1.05rem 1.15rem !important;
  background: var(--msf-teal) !important;
  color: #ffffff !important;
  font-size: clamp(1.05rem, 1.25vw, 1.22rem) !important;
  line-height: 1.18 !important;
  font-weight: 800 !important;
  letter-spacing: -0.025em !important;
  text-align: left !important;
}

body.msf-theme.single-product .related.products .price,
body.msf-theme.single-product .related.products .woocommerce-Price-amount,
body.msf-theme.single-product .related.products .button,
body.msf-theme.single-product .related.products .add_to_cart_button,
body.msf-theme.single-product .related.products .added_to_cart {
  display: none !important;
}

body.msf-theme.single-product .related.products li.product:hover .woocommerce-loop-product__title,
body.msf-theme.single-product .related.products li.product:focus-within .woocommerce-loop-product__title {
  background: var(--msf-teal-dark) !important;
}

@media (max-width: 980px) {
  body.msf-theme.single-product .related.products ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  body.msf-theme.single-product .related.products ul.products {
    grid-template-columns: 1fr !important;
  }
}

/* 5) Focus visibility and contrast support for linked card titles. */
body.msf-theme :where(a,.wp-block-button__link,button,input,select,textarea):focus-visible {
  outline: 3px solid var(--msf-marigold-light) !important;
  outline-offset: 4px !important;
}

body.msf-theme :where(.msf-youtube-card,.msf-downloads-section li.product,.related.products li.product) a:focus-visible {
  outline: 4px solid var(--msf-marigold-light) !important;
  outline-offset: 4px !important;
}

/* ======================================================
   v3.1 Refinement release
   - Larger homepage embedded video cards
   - Safer WCAG contrast on aqua/coral content bands
   - Interior video hero scroll cue + responsive behavior
   - Reduced About/interior top spacing
   - Cleaner WooCommerce related product typography/cards
====================================================== */

body.msf-theme {
  --msf-header-safe-space: clamp(74px, 6.5vw, 108px);
  --msf-video-radius-card: 24px;
}

/* WCAG contrast pass: use ink text on light book colors. */
body.msf-theme :where(.msf-band-purple, .msf-band-teal, .msf-section-teal, .msf-section-coral),
body.msf-theme :where(.msf-band-purple, .msf-band-teal, .msf-section-teal, .msf-section-coral) :where(h1,h2,h3,h4,h5,h6,p,li,a,strong,span) {
  color: var(--msf-ink) !important;
}

body.msf-theme :where(.msf-band-purple, .msf-band-teal, .msf-section-teal, .msf-section-coral) .wp-block-button__link,
body.msf-theme :where(.msf-band-purple, .msf-band-teal, .msf-section-teal, .msf-section-coral) .wp-element-button {
  background: var(--msf-ink) !important;
  color: #ffffff !important;
  border-color: var(--msf-ink) !important;
}

body.msf-theme :where(.msf-band-purple, .msf-band-teal, .msf-section-teal, .msf-section-coral) .wp-block-button__link:hover,
body.msf-theme :where(.msf-band-purple, .msf-band-teal, .msf-section-teal, .msf-section-coral) .wp-element-button:hover {
  background: var(--msf-terracotta) !important;
  color: #ffffff !important;
  border-color: var(--msf-terracotta) !important;
}

/* Homepage embedded videos: make Program/Story videos feel designed instead of tiny embeds. */
body.msf-theme.home .msf-band-purple .msf-two-col.reverse {
  grid-template-columns: minmax(0, .82fr) minmax(420px, 1.18fr) !important;
}

body.msf-theme.home .msf-band-teal .msf-two-col {
  grid-template-columns: minmax(420px, 1.18fr) minmax(0, .82fr) !important;
}

body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-video-frame {
  width: 100% !important;
  max-width: 620px !important;
  aspect-ratio: 16 / 9 !important;
  border-radius: var(--msf-video-radius-card) !important;
  box-shadow: 0 18px 42px rgba(36,31,33,.18) !important;
  overflow: hidden !important;
  background: var(--msf-ink) !important;
}

body.msf-theme.home .msf-band-purple .msf-video-frame {
  justify-self: end !important;
}

body.msf-theme.home .msf-band-teal .msf-video-frame {
  justify-self: start !important;
}

body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-video-frame iframe,
body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-video-frame video {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  border-radius: var(--msf-video-radius-card) !important;
}

/* Small affordance so the video feels intentionally playable. */
body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-video-frame::after {
  content: "Watch the video";
  position: absolute;
  left: 18px;
  bottom: 16px;
  z-index: 3;
  padding: .45rem .75rem;
  border-radius: 999px;
  background: rgba(36,31,33,.78);
  color: #fff;
  font-size: .88rem;
  font-weight: 800;
  line-height: 1;
  pointer-events: none;
}

body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-video-frame {
  position: relative;
}

@media (max-width: 980px) {
  body.msf-theme.home .msf-band-purple .msf-two-col.reverse,
  body.msf-theme.home .msf-band-teal .msf-two-col {
    grid-template-columns: 1fr !important;
  }

  body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-video-frame {
    max-width: 100% !important;
    justify-self: stretch !important;
    order: -1;
  }
}

/* About/interior spacing: reduce the oversized gap below the nav on non-video interior pages. */
body.msf-theme:not(.home):not(.single-product):not(.msf-has-interior-video-hero):not(.msf-has-program-page-layout-v2) .site-content,
body.msf-theme:not(.home):not(.single-product):not(.msf-has-interior-video-hero):not(.msf-has-program-page-layout-v2) .content-area,
body.msf-theme:not(.home):not(.single-product):not(.msf-has-interior-video-hero):not(.msf-has-program-page-layout-v2) #primary,
body.msf-theme:not(.home):not(.single-product):not(.msf-has-interior-video-hero):not(.msf-has-program-page-layout-v2) .site-main {
  padding-top: clamp(54px, 5vw, 84px) !important;
}

body.msf-theme:not(.home) .msf-cloud-top {
  padding-top: clamp(54px, 6vw, 96px) !important;
}

/* Remove the odd box/shadow behind the main book art when using the book-card class. */
body.msf-theme .wp-block-image.msf-book-card,
body.msf-theme figure.msf-book-card,
body.msf-theme .msf-book-card,
body.msf-theme .msf-book-card > * {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}

body.msf-theme .wp-block-image.msf-book-card img,
body.msf-theme figure.msf-book-card img,
body.msf-theme .msf-book-card img {
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* Interior full-screen video hero: better affordance that there is content below. */
body.msf-theme:not(.home) :where(.msf-interior-fullscreen-video, .msf-interior-video-hero, .msf-video-hero-fullscreen) {
  position: relative !important;
}

body.msf-theme:not(.home) :where(.msf-interior-fullscreen-video, .msf-interior-video-hero, .msf-video-hero-fullscreen)::before {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 28%;
  z-index: 2;
  background: linear-gradient(to bottom, rgba(36,31,33,0), rgba(36,31,33,.38));
  pointer-events: none;
}

body.msf-theme:not(.home) :where(.msf-interior-fullscreen-video, .msf-interior-video-hero, .msf-video-hero-fullscreen)::after {
  content: "Scroll to learn more ↓";
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: clamp(18px, 4vw, 42px);
  transform: translateX(-50%);
  padding: .65rem 1rem;
  border-radius: 999px;
  background: rgba(36,31,33,.78);
  color: #ffffff;
  font-weight: 800;
  font-size: clamp(.9rem, 1vw, 1rem);
  line-height: 1;
  text-align: center;
  pointer-events: none;
}

body.msf-theme:not(.home) :where(.msf-interior-fullscreen-video, .msf-interior-video-hero, .msf-video-hero-fullscreen) iframe,
body.msf-theme:not(.home) :where(.msf-interior-fullscreen-video, .msf-interior-video-hero, .msf-video-hero-fullscreen) video {
  height: clamp(480px, calc(100vh - 70px), 820px) !important;
  min-height: clamp(480px, calc(100vh - 70px), 820px) !important;
}

/* Product page and related products polish. */
body.msf-theme.single-product .site-content,
body.msf-theme.single-product .content-area,
body.msf-theme.single-product #primary,
body.msf-theme.single-product .site-main {
  padding-top: clamp(96px, 8vw, 132px) !important;
}

body.msf-theme.single-product .product_title,
body.msf-theme.single-product .entry-summary .product_title {
  font-family: inherit !important;
  font-weight: 800 !important;
  letter-spacing: -0.035em !important;
  text-transform: none !important;
  color: var(--msf-ink) !important;
}

body.msf-theme.single-product .related.products > h2,
body.msf-theme.single-product .related.products h2:first-child {
  font-family: inherit !important;
  text-transform: none !important;
  color: var(--msf-ink) !important;
}

body.msf-theme.single-product .related.products .woocommerce-loop-product__title,
body.msf-theme.single-product .related.products .wc-block-grid__product-title {
  font-family: inherit !important;
  text-transform: none !important;
  letter-spacing: -0.025em !important;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
  min-height: 96px !important;
  padding: 1.1rem 1.15rem !important;
}

body.msf-theme.single-product .related.products ul.products li.product {
  min-height: 100% !important;
}

body.msf-theme.single-product .related.products li.product a.woocommerce-loop-product__link,
body.msf-theme.single-product .related.products li.product a.woocommerce-LoopProduct-link {
  height: 100% !important;
}

/* Preserve title case if product names were entered in title case; prevent theme/plugin uppercase styling. */
body.msf-theme.single-product .related.products :where(h2,h3,.woocommerce-loop-product__title,.wc-block-grid__product-title),
body.msf-theme .woocommerce :where(.woocommerce-loop-product__title,.wc-block-grid__product-title) {
  text-transform: none !important;
}

/* Mobile/tablet refinements. */
@media (max-width: 782px) {
  body.msf-theme:not(.home) :where(.msf-interior-fullscreen-video, .msf-interior-video-hero, .msf-video-hero-fullscreen) iframe,
  body.msf-theme:not(.home) :where(.msf-interior-fullscreen-video, .msf-interior-video-hero, .msf-video-hero-fullscreen) video {
    height: 62vh !important;
    min-height: 360px !important;
  }

  body.msf-theme:not(.home) :where(.msf-interior-fullscreen-video, .msf-interior-video-hero, .msf-video-hero-fullscreen)::after {
    bottom: 16px;
    font-size: .88rem;
  }

  body.msf-theme.single-product .site-content,
  body.msf-theme.single-product .content-area,
  body.msf-theme.single-product #primary,
  body.msf-theme.single-product .site-main {
    padding-top: clamp(86px, 16vw, 112px) !important;
  }
}

/* v3.2 UX refinement: larger feature videos, cleaner images, safer color contrast, no nav search */

/* Remove the search icon/button from the main navigation. */
body.msf-theme .site-header .search-form,
body.msf-theme .site-header .search-toggle,
body.msf-theme .site-header .navbar-search,
body.msf-theme .site-header .sb-search,
body.msf-theme .site-header .search-icon,
body.msf-theme .site-header .wpzoom-search-form,
body.msf-theme .navbar .search-form,
body.msf-theme .navbar .search-toggle,
body.msf-theme .navbar .navbar-search,
body.msf-theme .navbar .sb-search,
body.msf-theme .navbar .search-icon,
body.msf-theme .navbar .wpzoom-search-form,
body.msf-theme #search-toggle,
body.msf-theme .menu-item-search,
body.msf-theme .menu-item.menu-item-search,
body.msf-theme a[href*='?s='],
body.msf-theme button[aria-label*='Search'],
body.msf-theme a[aria-label*='Search'] {
  display: none !important;
}

/* Larger homepage feature videos in The Program and The Story sections. */
body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-wrap {
  max-width: min(1320px, calc(100% - 48px)) !important;
}

body.msf-theme.home .msf-band-purple .msf-two-col.reverse,
body.msf-theme.home .msf-band-teal .msf-two-col {
  grid-template-columns: minmax(320px, .8fr) minmax(520px, 1.35fr) !important;
  gap: clamp(32px, 5.5vw, 96px) !important;
}

body.msf-theme.home .msf-band-teal .msf-two-col {
  grid-template-columns: minmax(520px, 1.35fr) minmax(320px, .8fr) !important;
}

body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-video-frame {
  width: 100% !important;
  max-width: 760px !important;
  min-height: 0 !important;
  aspect-ratio: 16 / 9 !important;
  border-radius: 18px !important;
  box-shadow: none !important;
  background: var(--msf-ink) !important;
}

body.msf-theme.home .msf-band-purple .msf-video-frame,
body.msf-theme.home .msf-band-teal .msf-video-frame {
  justify-self: stretch !important;
}

body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-video-frame::after {
  background: rgba(36,29,26,.82) !important;
  color: #fff !important;
}

/* Use dark text on teal/aqua and coral/peach backgrounds for stronger WCAG contrast. */
body.msf-theme :where(.msf-band-purple, .msf-band-teal, .msf-section-teal, .msf-section-coral) {
  color: var(--msf-ink) !important;
}

body.msf-theme :where(.msf-band-purple, .msf-band-teal, .msf-section-teal, .msf-section-coral) :where(h1,h2,h3,h4,h5,h6,p,li,strong,em,a:not(.wp-block-button__link)) {
  color: var(--msf-ink) !important;
  text-shadow: none !important;
}

body.msf-theme:not(.home) :where(.msf-section-teal,.msf-section-coral) :where(h1,h2,h3,h4,p,li,a:not(.wp-block-button__link)) {
  color: var(--msf-ink) !important;
}

body.msf-theme :where(.msf-band-purple, .msf-band-teal, .msf-section-teal, .msf-section-coral) .wp-block-button__link,
body.msf-theme :where(.msf-band-purple, .msf-band-teal, .msf-section-teal, .msf-section-coral) .wp-element-button {
  background: var(--msf-ink) !important;
  color: #fff !important;
  border-color: var(--msf-ink) !important;
}

body.msf-theme :where(.msf-band-purple, .msf-band-teal, .msf-section-teal, .msf-section-coral) .wp-block-button__link:hover,
body.msf-theme :where(.msf-band-purple, .msf-band-teal, .msf-section-teal, .msf-section-coral) .wp-element-button:hover {
  background: var(--msf-terracotta) !important;
  color: #fff !important;
  border-color: var(--msf-terracotta) !important;
}

/* Remove image shadows/glows that were making the color around images look muddy. */
body.msf-theme :where(.wp-block-image, figure, .msf-media-card, .msf-book-card) img,
body.msf-theme :where(.wp-block-image, figure, .msf-media-card, .msf-book-card),
body.msf-theme :where(.wp-block-image, figure, .msf-media-card, .msf-book-card) > *,
body.msf-theme .wp-block-image.has-custom-border img,
body.msf-theme .wp-block-media-text__media img {
  box-shadow: none !important;
  filter: none !important;
}

body.msf-theme .msf-media-card,
body.msf-theme .msf-book-card,
body.msf-theme .wp-block-image.msf-media-card,
body.msf-theme .wp-block-image.msf-book-card {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Product/related product typography refinement. */
body.msf-theme.single-product .related.products > h2,
body.msf-theme.single-product .related.products h2:first-child {
  font-size: clamp(2rem, 4vw, 3.25rem) !important;
  line-height: 1.05 !important;
  font-weight: 800 !important;
  letter-spacing: -0.035em !important;
  text-align: center !important;
  margin-bottom: clamp(28px, 4vw, 48px) !important;
}

body.msf-theme.single-product .related.products .woocommerce-loop-product__title,
body.msf-theme.single-product .related.products .wc-block-grid__product-title,
body.msf-theme .woocommerce :where(.woocommerce-loop-product__title,.wc-block-grid__product-title) {
  font-family: inherit !important;
  text-transform: none !important;
  letter-spacing: -0.02em !important;
  line-height: 1.12 !important;
}

body.msf-theme.single-product .related.products ul.products li.product {
  display: flex !important;
  flex-direction: column !important;
  justify-content: stretch !important;
  padding: 0 !important;
}

body.msf-theme.single-product .related.products li.product a.woocommerce-loop-product__link,
body.msf-theme.single-product .related.products li.product a.woocommerce-LoopProduct-link {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

body.msf-theme.single-product .related.products .woocommerce-loop-product__title {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 1 1 auto !important;
  min-height: 88px !important;
  padding: 1rem 1.15rem !important;
  text-align: left !important;
}

/* Keep feature sections and videos responsive. */
@media (max-width: 1100px) {
  body.msf-theme.home .msf-band-purple .msf-two-col.reverse,
  body.msf-theme.home .msf-band-teal .msf-two-col,
  body.msf-theme.home .msf-band-teal .msf-two-col {
    grid-template-columns: 1fr !important;
  }

  body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-video-frame {
    max-width: 100% !important;
    order: -1;
  }
}

@media (max-width: 640px) {
  body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-wrap {
    max-width: min(100% - 28px, 1320px) !important;
  }

  body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-video-frame {
    border-radius: 14px !important;
  }
}

/* ======================================================
   v3.3 Accessibility + UX refinement release
   - Video captions/summary support
   - Keep controls visible for self-hosted videos
   - Breathe/Create/Play 3-step block pattern styling
   - Responsive scroll cue button for interior and home heroes
   - Dark text on peach/aqua backgrounds
====================================================== */

body.msf-theme {
  --msf-scroll-cue-bg: rgba(36,31,33,.84);
  --msf-scroll-cue-fg: #ffffff;
  --msf-caption-bg: rgba(255,255,255,.72);
}

/* Video captions and summary text under major videos. Add class msf-video-summary or msf-video-caption to a paragraph/group below a video. */
body.msf-theme :where(.msf-video-summary, .msf-video-caption, .msf-video-transcript-note),
body.msf-theme figure.wp-block-video figcaption,
body.msf-theme figure.wp-block-embed figcaption {
  width: min(calc(100% - 40px), 880px);
  margin: .85rem auto 0 !important;
  padding: .85rem 1rem;
  border-radius: 14px;
  background: var(--msf-caption-bg) !important;
  color: var(--msf-ink) !important;
  font-size: clamp(.95rem, 1vw, 1.05rem) !important;
  line-height: 1.55 !important;
  font-weight: 500 !important;
  text-align: left;
}

body.msf-theme :where(.msf-video-summary, .msf-video-caption) a {
  color: var(--msf-teal-dark) !important;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: .18em;
}

body.msf-theme .msf-video-frame + :where(.msf-video-summary, .msf-video-caption),
body.msf-theme .wp-block-video + :where(.msf-video-summary, .msf-video-caption),
body.msf-theme .wp-block-embed + :where(.msf-video-summary, .msf-video-caption) {
  margin-top: clamp(12px, 1.6vw, 20px) !important;
}

/* Keep native video controls visible and usable when videos include sound. */
body.msf-theme video[controls],
body.msf-theme .wp-block-video video[controls],
body.msf-theme .msf-video-frame video[controls] {
  cursor: pointer;
}

body.msf-theme video::-webkit-media-controls,
body.msf-theme .wp-block-video video::-webkit-media-controls,
body.msf-theme .msf-video-frame video::-webkit-media-controls {
  display: flex !important;
  opacity: 1 !important;
}

/* YouTube embeds keep their native controls. This prevents decorative overlays from blocking clicks. */
body.msf-theme .msf-video-frame::after {
  pointer-events: none !important;
}

/* Strong no-white-text rule for light book colors: aqua/teal, peach/coral, gold, cream, sky. */
body.msf-theme :where(.msf-band-purple, .msf-band-teal, .msf-section-teal, .msf-section-coral, .msf-section-marigold, .msf-section-sky, .msf-section-cream) :where(h1,h2,h3,h4,h5,h6,p,li,strong,em,span,a:not(.wp-block-button__link):not(.wp-element-button)) {
  color: var(--msf-ink) !important;
  text-shadow: none !important;
}

body.msf-theme :where(.msf-band-purple, .msf-band-teal, .msf-section-teal, .msf-section-coral, .msf-section-marigold, .msf-section-sky, .msf-section-cream) .wp-block-button__link,
body.msf-theme :where(.msf-band-purple, .msf-band-teal, .msf-section-teal, .msf-section-coral, .msf-section-marigold, .msf-section-sky, .msf-section-cream) .wp-element-button {
  background: var(--msf-ink) !important;
  border-color: var(--msf-ink) !important;
  color: #fff !important;
}

/* What happens at an event? 3-step block. */
.msf-event-steps {
  background: var(--msf-soft-ivory) !important;
  color: var(--msf-ink) !important;
  text-align: center;
}

.msf-event-steps .msf-wrap > h2,
.msf-event-steps .msf-wrap > p {
  max-width: 820px;
  margin-left: auto !important;
  margin-right: auto !important;
}

.msf-event-steps-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 3vw, 34px);
  margin-top: clamp(28px, 4vw, 48px) !important;
}

.msf-event-step-card {
  position: relative;
  overflow: hidden;
  border-radius: 24px;
  background: #fff !important;
  color: var(--msf-ink) !important;
  padding: clamp(24px, 3.2vw, 38px) clamp(20px, 2.5vw, 30px) !important;
  text-align: left;
  box-shadow: none !important;
  border: 2px solid rgba(36,31,33,.10);
}

.msf-event-step-card::before {
  content: attr(data-step);
  display: inline-grid;
  place-items: center;
  width: 46px;
  height: 46px;
  margin-bottom: 18px;
  border-radius: 999px;
  background: var(--msf-breath-aqua);
  color: var(--msf-ink);
  font-weight: 900;
  line-height: 1;
}

.msf-event-step-card:nth-child(2)::before { background: var(--msf-sunny-gold); }
.msf-event-step-card:nth-child(3)::before { background: var(--msf-peach-coral); }

.msf-event-step-card h3 {
  margin-top: 0 !important;
  margin-bottom: .5rem !important;
  color: var(--msf-ink) !important;
  font-size: clamp(1.35rem, 2vw, 1.85rem) !important;
}

.msf-event-step-card p {
  color: var(--msf-ink) !important;
  margin-bottom: 0 !important;
  font-weight: 500 !important;
}

@media (max-width: 900px) {
  .msf-event-steps-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Responsive scroll cue button for interior full-screen video hero. */
body.msf-theme:not(.home) :where(.msf-interior-fullscreen-video, .msf-interior-video-hero, .msf-video-hero-fullscreen)::after {
  content: "Scroll to learn more ↓";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  max-width: min(calc(100vw - 32px), 360px);
  min-height: 44px;
  padding: .7rem 1.05rem;
  white-space: nowrap;
  background: var(--msf-scroll-cue-bg);
  color: var(--msf-scroll-cue-fg);
  border: 2px solid rgba(255,255,255,.72);
  border-radius: 999px;
  font-size: clamp(.88rem, 1.1vw, 1rem);
  line-height: 1.1;
  text-align: center;
  box-shadow: 0 8px 22px rgba(0,0,0,.18);
}

@media (max-width: 520px) {
  body.msf-theme:not(.home) :where(.msf-interior-fullscreen-video, .msf-interior-video-hero, .msf-video-hero-fullscreen)::after {
    white-space: normal;
    width: max-content;
    max-width: calc(100vw - 40px);
    padding: .65rem .9rem;
  }
}

/* Home hero scroll cue injected by msf-theme.js. */
.msf-home-scroll-cue {
  position: absolute;
  z-index: 50;
  left: 50%;
  bottom: clamp(16px, 4vw, 42px);
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  max-width: min(calc(100vw - 32px), 360px);
  padding: .7rem 1.05rem;
  border-radius: 999px;
  background: var(--msf-scroll-cue-bg);
  color: var(--msf-scroll-cue-fg) !important;
  border: 2px solid rgba(255,255,255,.72);
  font-weight: 800;
  font-size: clamp(.88rem, 1.1vw, 1rem);
  line-height: 1.1;
  text-align: center;
  text-decoration: none !important;
  box-shadow: 0 8px 22px rgba(0,0,0,.18);
}

.msf-home-scroll-cue:hover,
.msf-home-scroll-cue:focus-visible {
  background: var(--msf-terracotta) !important;
  color: #fff !important;
}

body.home .custom-header,
body.home .wp-custom-header,
body.home .site-header-video,
body.home .hero,
body.home .intro {
  position: relative;
}

@media (max-width: 520px) {
  .msf-home-scroll-cue {
    white-space: normal;
    max-width: calc(100vw - 40px);
    padding: .65rem .9rem;
  }
}

/* ======================================================
   v3.4 Video summary/caption hardening
   Works in both the front end and Gutenberg editor, without needing body.msf-theme.
====================================================== */
.msf-video-summary,
.msf-video-caption,
.msf-video-transcript-note,
.wp-block-video figcaption,
.wp-block-embed figcaption,
.editor-styles-wrapper .msf-video-summary,
.editor-styles-wrapper .msf-video-caption,
.editor-styles-wrapper .msf-video-transcript-note,
.editor-styles-wrapper .wp-block-video figcaption,
.editor-styles-wrapper .wp-block-embed figcaption {
  display: block !important;
  width: min(100%, 880px) !important;
  max-width: 880px !important;
  margin: clamp(10px, 1.4vw, 18px) auto clamp(24px, 3vw, 44px) auto !important;
  padding: clamp(14px, 1.6vw, 20px) clamp(16px, 2vw, 26px) !important;
  box-sizing: border-box !important;
  background-color: #f7f0df !important;
  color: #241f21 !important;
  border-left: 6px solid #2fa6b1 !important;
  border-radius: 14px !important;
  box-shadow: none !important;
  font-size: clamp(0.98rem, 1.05vw, 1.1rem) !important;
  line-height: 1.55 !important;
  font-weight: 500 !important;
  text-align: left !important;
}

/* When the class is placed on a Group block, style the inner paragraph cleanly. */
.wp-block-group.msf-video-summary,
.wp-block-group.msf-video-caption,
.editor-styles-wrapper .wp-block-group.msf-video-summary,
.editor-styles-wrapper .wp-block-group.msf-video-caption {
  display: block !important;
  width: min(100%, 880px) !important;
  max-width: 880px !important;
  margin: clamp(10px, 1.4vw, 18px) auto clamp(24px, 3vw, 44px) auto !important;
  padding: clamp(14px, 1.6vw, 20px) clamp(16px, 2vw, 26px) !important;
  background-color: #f7f0df !important;
  color: #241f21 !important;
  border-left: 6px solid #2fa6b1 !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}

.wp-block-group.msf-video-summary p,
.wp-block-group.msf-video-caption p,
.editor-styles-wrapper .wp-block-group.msf-video-summary p,
.editor-styles-wrapper .wp-block-group.msf-video-caption p {
  margin: 0 !important;
  color: #241f21 !important;
  font-size: clamp(0.98rem, 1.05vw, 1.1rem) !important;
  line-height: 1.55 !important;
  font-weight: 500 !important;
}

.msf-video-summary a,
.msf-video-caption a,
.editor-styles-wrapper .msf-video-summary a,
.editor-styles-wrapper .msf-video-caption a {
  color: #005f66 !important;
  font-weight: 800 !important;
  text-decoration: underline !important;
  text-underline-offset: 0.18em !important;
}

@media (max-width: 768px) {
  .msf-video-summary,
  .msf-video-caption,
  .msf-video-transcript-note,
  .wp-block-video figcaption,
  .wp-block-embed figcaption,
  .wp-block-group.msf-video-summary,
  .wp-block-group.msf-video-caption {
    width: calc(100% - 32px) !important;
    max-width: calc(100% - 32px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 14px 16px !important;
  }
}

/* ======================================================
   v3.5 Consistency + accessibility pass
   - Consistent section depth across Home/About/Program/Book
   - Removes odd cloud/color strip below header on interior pages
   - Stronger video summary/caption support
   - Dark text on light book-color sections
   - Responsive media/card cleanup
====================================================== */

:root {
  --msf-header-offset: clamp(74px, 7vw, 104px);
  --msf-section-pad-y: clamp(76px, 8vw, 124px);
  --msf-section-pad-y-mobile: clamp(48px, 10vw, 76px);
  --msf-section-pad-x: clamp(24px, 5vw, 72px);
  --msf-media-radius: 22px;
}

/* Remove the faint/odd strip between the fixed header and the first content area. */
body.msf-theme:not(.home) .site-content::before,
body.msf-theme:not(.home) main.site-main::before,
body.msf-theme:not(.home) .content-area::before,
body.msf-theme:not(.home) #primary::before {
  content: none !important;
  display: none !important;
  background: transparent !important;
  height: 0 !important;
}

body.msf-theme:not(.home) .site-content,
body.msf-theme:not(.home) .content-area,
body.msf-theme:not(.home) #primary,
body.msf-theme:not(.home) .site-main {
  background: var(--msf-soft-ivory, #f7f0df) !important;
  margin-top: 0 !important;
}

/* Standard interior pages should sit closer to the nav, while still avoiding overlap. */
body.msf-theme:not(.home):not(.single-product):not(.msf-has-interior-video-hero):not(.msf-has-program-page-layout-v2) .site-content,
body.msf-theme:not(.home):not(.single-product):not(.msf-has-interior-video-hero):not(.msf-has-program-page-layout-v2) .content-area,
body.msf-theme:not(.home):not(.single-product):not(.msf-has-interior-video-hero):not(.msf-has-program-page-layout-v2) #primary,
body.msf-theme:not(.home):not(.single-product):not(.msf-has-interior-video-hero):not(.msf-has-program-page-layout-v2) .site-main {
  padding-top: clamp(24px, 3.5vw, 54px) !important;
}

body.msf-theme:not(.home) .entry-content {
  padding-top: 0 !important;
}

body.msf-theme:not(.home) .entry-content > :first-child {
  margin-top: 0 !important;
}

/* Product pages need safe spacing because the WooCommerce template starts directly under the sticky nav. */
body.msf-theme.single-product .site-content,
body.msf-theme.single-product .content-area,
body.msf-theme.single-product #primary,
body.msf-theme.single-product .site-main {
  padding-top: clamp(96px, 9vw, 132px) !important;
}

/* Fullscreen video heroes touch the nav and fill the width cleanly. */
body.msf-theme:not(.home) :where(.msf-interior-fullscreen-video, .msf-interior-video-hero, .msf-video-hero-fullscreen) {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  overflow: hidden !important;
  background: var(--msf-ink, #241f21) !important;
}

body.msf-theme:not(.home) :where(.msf-interior-fullscreen-video, .msf-interior-video-hero, .msf-video-hero-fullscreen) :where(iframe, video) {
  display: block !important;
  width: 100vw !important;
  max-width: 100vw !important;
  height: clamp(420px, 72vh, 760px) !important;
  object-fit: cover !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Consistent section depth across Home, About, Program, Book, and reusable color bands. */
body.msf-theme :where(
  .msf-cloud-top,
  .msf-welcome,
  .msf-home-intro,
  .msf-band-teal,
  .msf-band-purple,
  .msf-section-teal,
  .msf-section-coral,
  .msf-section-marigold,
  .msf-section-sky,
  .msf-section-cream,
  .msf-section-white,
  .msf-event-steps,
  .msf-page-section,
  .msf-feature-section
) {
  padding-top: var(--msf-section-pad-y) !important;
  padding-bottom: var(--msf-section-pad-y) !important;
  box-sizing: border-box !important;
}

/* Keep content centered and consistent inside major sections. */
body.msf-theme :where(
  .msf-cloud-top,
  .msf-welcome,
  .msf-home-intro,
  .msf-band-teal,
  .msf-band-purple,
  .msf-section-teal,
  .msf-section-coral,
  .msf-section-marigold,
  .msf-section-sky,
  .msf-section-cream,
  .msf-section-white,
  .msf-event-steps,
  .msf-page-section,
  .msf-feature-section
) > :where(.wp-block-group__inner-container, .msf-wrap, .wp-block-columns) {
  width: min(calc(100% - 48px), var(--msf-wide, 1180px)) !important;
  max-width: var(--msf-wide, 1180px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Light book-color sections must use dark text. White text on aqua/peach/gold fails too easily. */
body.msf-theme :where(
  .msf-section-teal,
  .msf-band-teal,
  .msf-section-coral,
  .msf-section-marigold,
  .msf-section-sky,
  .msf-section-cream,
  .msf-section-white
),
body.msf-theme :where(
  .msf-section-teal,
  .msf-band-teal,
  .msf-section-coral,
  .msf-section-marigold,
  .msf-section-sky,
  .msf-section-cream,
  .msf-section-white
) :where(h1,h2,h3,h4,h5,h6,p,li,strong,em,span,a:not(.wp-block-button__link):not(.wp-element-button)) {
  color: var(--msf-ink, #241f21) !important;
  text-shadow: none !important;
}

body.msf-theme :where(.msf-section-teal, .msf-band-teal) { background-color: var(--msf-breath-aqua, #73cfcf) !important; }
body.msf-theme :where(.msf-section-coral) { background-color: var(--msf-peach-coral, #e79a74) !important; }
body.msf-theme :where(.msf-section-marigold) { background-color: var(--msf-buttercream, #f5e3a7) !important; }
body.msf-theme :where(.msf-section-sky) { background-color: #d7efeb !important; }
body.msf-theme :where(.msf-section-cream, .msf-section-white) { background-color: var(--msf-soft-ivory, #f7f0df) !important; }

/* Pseudo full-width section backgrounds inherit the same safer colors. */
body.msf-theme .msf-section-teal::before { background: var(--msf-breath-aqua, #73cfcf) !important; }
body.msf-theme .msf-section-coral::before { background: var(--msf-peach-coral, #e79a74) !important; }
body.msf-theme .msf-section-marigold::before { background: var(--msf-buttercream, #f5e3a7) !important; }
body.msf-theme .msf-section-sky::before { background: #d7efeb !important; }
body.msf-theme .msf-section-cream::before,
body.msf-theme .msf-section-white::before { background: var(--msf-soft-ivory, #f7f0df) !important; }

/* Dark impact/stat sections keep white text, but only when intentionally using cocoa/plum/deep sections. */
body.msf-theme :where(.msf-section-plum, .msf-impact-section, .msf-stats-band) {
  background-color: var(--msf-cocoa-brown, #6e412a) !important;
  color: #fff !important;
}

body.msf-theme :where(.msf-section-plum, .msf-impact-section, .msf-stats-band) :where(h1,h2,h3,h4,h5,h6,p,li,strong,em,span,a:not(.wp-block-button__link):not(.wp-element-button)) {
  color: #fff !important;
}

/* Make two-column media/text sections feel like the homepage across the site. */
body.msf-theme :where(.msf-band-teal, .msf-band-purple, .msf-section-teal, .msf-section-coral, .msf-section-marigold, .msf-section-cream) :where(.wp-block-columns, .msf-two-col) {
  align-items: center !important;
  gap: clamp(34px, 6vw, 88px) !important;
}

body.msf-theme :where(.msf-band-teal, .msf-band-purple, .msf-section-teal, .msf-section-coral, .msf-section-marigold, .msf-section-cream) :where(.wp-block-image, .wp-block-embed, .wp-block-video, .msf-video-frame) {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

body.msf-theme :where(.wp-block-image img, .msf-book-card img, .msf-section-teal img, .msf-section-coral img, .msf-section-marigold img, .msf-section-cream img, .msf-band-teal img, .msf-band-purple img) {
  border-radius: var(--msf-media-radius) !important;
  box-shadow: none !important;
  filter: none !important;
  background: transparent !important;
}

body.msf-theme :where(.wp-block-image, figure, .msf-book-card) {
  box-shadow: none !important;
  filter: none !important;
}

/* Homepage embedded videos: larger, cleaner, and more consistent without overpowering the section. */
body.msf-theme.home :where(.msf-band-teal, .msf-band-purple, .msf-section-teal, .msf-section-coral) :where(.msf-video-frame, .wp-block-embed, .wp-block-video) {
  width: min(100%, 640px) !important;
  max-width: 640px !important;
  justify-self: center !important;
}

body.msf-theme.home :where(.msf-band-teal, .msf-band-purple, .msf-section-teal, .msf-section-coral) :where(.msf-video-frame iframe, .wp-block-embed iframe, .wp-block-video video) {
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  height: auto !important;
  min-height: clamp(210px, 24vw, 360px) !important;
  border-radius: 18px !important;
  box-shadow: none !important;
}

/* Video captions / summaries: make this work whether class is on Paragraph, Group, Details, or automatically added by JS. */
body.msf-theme .msf-video-summary,
body.msf-theme .msf-video-caption,
body.msf-theme .msf-video-summary-auto,
body.msf-theme .msf-video-transcript-note,
.msf-video-summary,
.msf-video-caption,
.msf-video-summary-auto,
.msf-video-transcript-note,
.editor-styles-wrapper .msf-video-summary,
.editor-styles-wrapper .msf-video-caption,
.editor-styles-wrapper .msf-video-summary-auto,
.editor-styles-wrapper .msf-video-transcript-note {
  display: block !important;
  clear: both !important;
  width: min(100% - 32px, 880px) !important;
  max-width: 880px !important;
  margin: clamp(12px, 1.5vw, 18px) auto clamp(28px, 4vw, 52px) auto !important;
  padding: clamp(14px, 1.7vw, 20px) clamp(16px, 2vw, 28px) !important;
  background: rgba(247, 240, 223, .96) !important;
  color: var(--msf-ink, #241f21) !important;
  border-left: 6px solid var(--msf-deep-aqua, #2fa6b1) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
  font-size: clamp(.98rem, 1vw, 1.08rem) !important;
  line-height: 1.55 !important;
  font-weight: 500 !important;
  text-align: left !important;
}

body.msf-theme :where(.msf-video-summary, .msf-video-caption, .msf-video-summary-auto) p,
.editor-styles-wrapper :where(.msf-video-summary, .msf-video-caption, .msf-video-summary-auto) p {
  margin: 0 !important;
  color: var(--msf-ink, #241f21) !important;
  font-size: inherit !important;
  line-height: inherit !important;
}

body.msf-theme :where(.msf-section-teal, .msf-band-teal, .msf-section-coral, .msf-section-marigold, .msf-section-sky) :where(.msf-video-summary, .msf-video-caption, .msf-video-summary-auto) {
  background: rgba(255, 248, 232, .94) !important;
  color: var(--msf-ink, #241f21) !important;
}

/* Related products / product cards should match the Resources card system. */
body.msf-theme .related.products {
  background: #d7efeb !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: var(--msf-section-pad-y) var(--msf-section-pad-x) !important;
  text-align: center !important;
}

body.msf-theme .related.products > h2 {
  font-family: inherit !important;
  font-size: clamp(2rem, 4vw, 3.7rem) !important;
  line-height: .98 !important;
  letter-spacing: -0.03em !important;
  text-transform: none !important;
  color: var(--msf-ink, #241f21) !important;
  margin: 0 auto clamp(30px, 4vw, 54px) auto !important;
  text-align: center !important;
}

body.msf-theme .related.products ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(22px, 3vw, 42px) !important;
  width: min(100%, 1180px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  align-items: stretch !important;
  justify-items: center !important;
}

body.msf-theme .related.products ul.products li.product {
  float: none !important;
  width: 100% !important;
  max-width: 360px !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  align-items: stretch !important;
  min-height: 100% !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  background: var(--msf-deep-aqua, #2fa6b1) !important;
  box-shadow: none !important;
}

body.msf-theme .related.products ul.products li.product img {
  width: 100% !important;
  aspect-ratio: 16 / 10 !important;
  object-fit: cover !important;
  margin: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.msf-theme .related.products .woocommerce-loop-product__title,
body.msf-theme .related.products ul.products li.product h2,
body.msf-theme .related.products ul.products li.product h3 {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  min-height: 74px !important;
  padding: 18px 20px !important;
  margin: 0 !important;
  font-family: inherit !important;
  font-size: clamp(1rem, 1.45vw, 1.25rem) !important;
  line-height: 1.14 !important;
  font-weight: 900 !important;
  letter-spacing: -0.01em !important;
  text-transform: none !important;
  color: #fff !important;
  text-align: left !important;
}

body.msf-theme .related.products ul.products li.product .price,
body.msf-theme .related.products ul.products li.product .button,
body.msf-theme .related.products ul.products li.product .add_to_cart_button {
  display: none !important;
}

/* Mobile and tablet consistency. */
@media (max-width: 900px) {
  body.msf-theme :where(
    .msf-cloud-top,
    .msf-welcome,
    .msf-home-intro,
    .msf-band-teal,
    .msf-band-purple,
    .msf-section-teal,
    .msf-section-coral,
    .msf-section-marigold,
    .msf-section-sky,
    .msf-section-cream,
    .msf-section-white,
    .msf-event-steps,
    .msf-page-section,
    .msf-feature-section
  ) {
    padding-top: var(--msf-section-pad-y-mobile) !important;
    padding-bottom: var(--msf-section-pad-y-mobile) !important;
  }

  body.msf-theme :where(.wp-block-columns, .msf-two-col) {
    gap: clamp(22px, 6vw, 38px) !important;
  }

  body.msf-theme .related.products ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  body.msf-theme:not(.home):not(.single-product):not(.msf-has-interior-video-hero):not(.msf-has-program-page-layout-v2) .site-content,
  body.msf-theme:not(.home):not(.single-product):not(.msf-has-interior-video-hero):not(.msf-has-program-page-layout-v2) .content-area,
  body.msf-theme:not(.home):not(.single-product):not(.msf-has-interior-video-hero):not(.msf-has-program-page-layout-v2) #primary,
  body.msf-theme:not(.home):not(.single-product):not(.msf-has-interior-video-hero):not(.msf-has-program-page-layout-v2) .site-main {
    padding-top: clamp(18px, 6vw, 36px) !important;
  }

  body.msf-theme:not(.home) :where(.msf-interior-fullscreen-video, .msf-interior-video-hero, .msf-video-hero-fullscreen) :where(iframe, video) {
    height: clamp(360px, 68vh, 560px) !important;
  }

  body.msf-theme .related.products ul.products {
    grid-template-columns: 1fr !important;
  }

  body.msf-theme .related.products ul.products li.product {
    max-width: 420px !important;
  }
}

/* ======================================================
   v3.6 Hotfix
   - Do not auto-style normal content after embedded videos as captions
   - Restore homepage Program/Story two-column rhythm if a previous runtime class affected it
   - Keep explicit video captions available via .msf-video-summary or .msf-video-caption only
====================================================== */

/* Safety: if an old cached script added the auto class during a session, do not let it turn feature copy into a caption card. */
body.msf-theme.home :where(.msf-band-teal, .msf-band-purple, .msf-section-teal, .msf-section-coral) .msf-video-summary-auto:not(.msf-video-summary):not(.msf-video-caption) {
  display: block !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--msf-ink, #241f21) !important;
  box-shadow: none !important;
  font-size: inherit !important;
  line-height: inherit !important;
  font-weight: inherit !important;
  text-align: inherit !important;
}

body.msf-theme.home :where(.msf-band-teal, .msf-band-purple, .msf-section-teal, .msf-section-coral) .msf-video-summary-auto:not(.msf-video-summary):not(.msf-video-caption) :where(h1,h2,h3,h4,h5,h6,p,li,strong,em,span,a:not(.wp-block-button__link):not(.wp-element-button)) {
  color: var(--msf-ink, #241f21) !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Restore the homepage feature sections as proper side-by-side layouts. */
body.msf-theme.home :where(.msf-band-teal, .msf-band-purple) > .wp-block-group__inner-container,
body.msf-theme.home :where(.msf-band-teal, .msf-band-purple) > .msf-wrap,
body.msf-theme.home :where(.msf-section-teal, .msf-section-coral) > .wp-block-group__inner-container,
body.msf-theme.home :where(.msf-section-teal, .msf-section-coral) > .msf-wrap {
  width: min(calc(100% - 48px), 1180px) !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.msf-theme.home :where(.msf-band-teal, .msf-band-purple, .msf-section-teal, .msf-section-coral) :where(.msf-two-col, .wp-block-columns) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  align-items: center !important;
  gap: clamp(36px, 6vw, 88px) !important;
}

body.msf-theme.home :where(.msf-band-teal, .msf-band-purple, .msf-section-teal, .msf-section-coral) :where(.msf-video-frame, .wp-block-embed, .wp-block-video) {
  width: 100% !important;
  max-width: 640px !important;
  justify-self: center !important;
}

body.msf-theme.home :where(.msf-band-teal, .msf-band-purple, .msf-section-teal, .msf-section-coral) :where(.msf-video-frame iframe, .wp-block-embed iframe, .wp-block-video video) {
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  height: auto !important;
  min-height: clamp(220px, 26vw, 370px) !important;
  border: 0 !important;
  border-radius: 18px !important;
  box-shadow: none !important;
}

body.msf-theme.home :where(.msf-band-teal, .msf-band-purple, .msf-section-teal, .msf-section-coral) :where(.wp-block-group:not(.msf-video-frame)) {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.msf-theme.home :where(.msf-band-teal, .msf-band-purple, .msf-section-teal, .msf-section-coral) :where(h2) {
  margin-top: 0 !important;
  margin-bottom: clamp(14px, 2vw, 24px) !important;
}

body.msf-theme.home :where(.msf-band-teal, .msf-band-purple, .msf-section-teal, .msf-section-coral) :where(.wp-block-buttons) {
  margin-top: clamp(18px, 2.4vw, 28px) !important;
}

@media (max-width: 900px) {
  body.msf-theme.home :where(.msf-band-teal, .msf-band-purple, .msf-section-teal, .msf-section-coral) :where(.msf-two-col, .wp-block-columns) {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  body.msf-theme.home :where(.msf-band-teal, .msf-band-purple, .msf-section-teal, .msf-section-coral) :where(.msf-video-frame, .wp-block-embed, .wp-block-video) {
    max-width: 100% !important;
  }
}

/* ======================================================
   v3.7 WooCommerce + Home + Supporter + Updates refinement
   - Fix cart/checkout overflow
   - Normalize Program/Story homepage video cards
   - Tighten related product section height
   - Add reusable Event Menu / Supporter card UI
   - Hide default blog/Updates page header
   - Keep contrast-conscious text/button pairings
====================================================== */

body.msf-theme {
  --msf-accessible-teal: #087E86;
  --msf-accessible-footer: #A84835;
  --msf-card-gap: clamp(18px, 2.6vw, 34px);
}

/* Keep key brand areas within WCAG-minded contrast. */
body.msf-theme:not(.home) .site-header,
body.msf-theme:not(.home) .navbar,
body.msf-theme:not(.home) .headroom,
body.msf-theme.home .site-header.headroom--not-top,
body.msf-theme.home .navbar.headroom--not-top,
body.msf-theme.home .site-header.is-sticky,
body.msf-theme.home .navbar.is-sticky,
body.msf-theme.home .site-header.sticky,
body.msf-theme.home .navbar.sticky {
  background-color: var(--msf-accessible-teal) !important;
}

.msf-theme .wp-block-button__link,
.msf-theme .wp-element-button,
.msf-theme .button,
.msf-theme input[type="submit"],
.msf-theme .woocommerce a.button,
.msf-theme .woocommerce button.button,
.msf-theme .woocommerce input.button {
  background-color: var(--msf-accessible-teal) !important;
  border-color: var(--msf-accessible-teal) !important;
  color: #fff !important;
}

.msf-footer-cta,
#colophon,
.site-footer,
.footer,
.msf-footer,
body footer {
  background-color: var(--msf-accessible-footer) !important;
  color: #fff !important;
}

/* ------------------------------------------------------
   Cart + Checkout: prevent WooCommerce from running off-screen
------------------------------------------------------ */
body.msf-theme.woocommerce-cart .site-content,
body.msf-theme.woocommerce-checkout .site-content,
body.msf-theme.woocommerce-cart .content-area,
body.msf-theme.woocommerce-checkout .content-area,
body.msf-theme.woocommerce-cart #primary,
body.msf-theme.woocommerce-checkout #primary,
body.msf-theme.woocommerce-cart .site-main,
body.msf-theme.woocommerce-checkout .site-main {
  padding-top: clamp(112px, 9vw, 150px) !important;
  overflow-x: hidden !important;
}

body.msf-theme.woocommerce-cart .entry-content,
body.msf-theme.woocommerce-checkout .entry-content,
body.msf-theme.woocommerce-cart .woocommerce,
body.msf-theme.woocommerce-checkout .woocommerce,
body.msf-theme.woocommerce-cart .wp-block-woocommerce-cart,
body.msf-theme.woocommerce-checkout .wp-block-woocommerce-checkout,
body.msf-theme.woocommerce-cart .wc-block-components-sidebar-layout,
body.msf-theme.woocommerce-checkout .wc-block-components-sidebar-layout {
  width: min(calc(100% - 40px), 1180px) !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}

body.msf-theme.woocommerce-cart .entry-content > *,
body.msf-theme.woocommerce-checkout .entry-content > * {
  max-width: 100% !important;
}

body.msf-theme.woocommerce-cart .woocommerce-cart-form,
body.msf-theme.woocommerce-cart .cart-collaterals,
body.msf-theme.woocommerce-checkout form.checkout,
body.msf-theme.woocommerce-checkout .woocommerce-checkout-review-order,
body.msf-theme.woocommerce-checkout .wc-block-checkout,
body.msf-theme.woocommerce-cart .wc-block-cart {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

body.msf-theme.woocommerce-cart table.shop_table,
body.msf-theme.woocommerce-checkout table.shop_table,
body.msf-theme.woocommerce-cart .wc-block-cart-items,
body.msf-theme.woocommerce-checkout .wc-block-components-order-summary,
body.msf-theme.woocommerce-cart .wc-block-components-sidebar,
body.msf-theme.woocommerce-checkout .wc-block-components-sidebar,
body.msf-theme.woocommerce-cart .wc-block-components-main,
body.msf-theme.woocommerce-checkout .wc-block-components-main {
  max-width: 100% !important;
  box-sizing: border-box !important;
}

body.msf-theme.woocommerce-cart input,
body.msf-theme.woocommerce-checkout input,
body.msf-theme.woocommerce-cart select,
body.msf-theme.woocommerce-checkout select,
body.msf-theme.woocommerce-cart textarea,
body.msf-theme.woocommerce-checkout textarea {
  max-width: 100% !important;
  box-sizing: border-box !important;
}

body.msf-theme.woocommerce-cart .product-thumbnail img,
body.msf-theme.woocommerce-checkout .wc-block-components-product-image img {
  max-width: 96px !important;
  height: auto !important;
}

body.msf-theme.woocommerce-cart .cart_totals,
body.msf-theme.woocommerce-checkout .wc-block-components-sidebar,
body.msf-theme.woocommerce-checkout #order_review {
  background: rgba(255,255,255,.55) !important;
  border: 1px solid rgba(36,31,33,.16) !important;
  border-radius: 18px !important;
  padding: clamp(18px, 2.5vw, 28px) !important;
}

@media (max-width: 782px) {
  body.msf-theme.woocommerce-cart .entry-content,
  body.msf-theme.woocommerce-checkout .entry-content,
  body.msf-theme.woocommerce-cart .woocommerce,
  body.msf-theme.woocommerce-checkout .woocommerce,
  body.msf-theme.woocommerce-cart .wp-block-woocommerce-cart,
  body.msf-theme.woocommerce-checkout .wp-block-woocommerce-checkout,
  body.msf-theme.woocommerce-cart .wc-block-components-sidebar-layout,
  body.msf-theme.woocommerce-checkout .wc-block-components-sidebar-layout {
    width: min(calc(100% - 28px), 1180px) !important;
  }

  body.msf-theme.woocommerce-cart .wc-block-components-sidebar-layout,
  body.msf-theme.woocommerce-checkout .wc-block-components-sidebar-layout {
    display: block !important;
  }
}

/* ------------------------------------------------------
   Homepage Program/Story video consistency
------------------------------------------------------ */
body.msf-theme.home :where(.msf-band-purple,.msf-band-teal,.msf-section-teal,.msf-section-coral) :where(.msf-video-frame,.wp-block-embed,.wp-block-video,.wp-block-html) {
  width: 100% !important;
  max-width: 680px !important;
  justify-self: center !important;
  align-self: center !important;
  margin: 0 auto !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  background: var(--msf-ink) !important;
  box-shadow: none !important;
}

body.msf-theme.home :where(.msf-band-purple,.msf-band-teal,.msf-section-teal,.msf-section-coral) :where(.msf-video-frame,.wp-block-embed,.wp-block-video,.wp-block-html) iframe,
body.msf-theme.home :where(.msf-band-purple,.msf-band-teal,.msf-section-teal,.msf-section-coral) :where(.msf-video-frame,.wp-block-embed,.wp-block-video,.wp-block-html) video {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  height: auto !important;
  min-height: clamp(230px, 28vw, 382px) !important;
  object-fit: cover !important;
  border: 0 !important;
  border-radius: 18px !important;
  box-shadow: none !important;
}

body.msf-theme.home :where(.msf-band-purple,.msf-section-teal) :where(.msf-video-frame,.wp-block-embed,.wp-block-video,.wp-block-html),
body.msf-theme.home :where(.msf-band-teal,.msf-section-coral) :where(.msf-video-frame,.wp-block-embed,.wp-block-video,.wp-block-html) {
  max-width: 680px !important;
}

body.msf-theme.home :where(.msf-band-purple,.msf-band-teal,.msf-section-teal,.msf-section-coral) :where(.wp-block-columns,.msf-two-col) {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr) !important;
}

body.msf-theme.home :where(.msf-band-teal,.msf-section-coral) :where(.wp-block-columns,.msf-two-col) {
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr) !important;
}

@media (max-width: 900px) {
  body.msf-theme.home :where(.msf-band-purple,.msf-band-teal,.msf-section-teal,.msf-section-coral) :where(.wp-block-columns,.msf-two-col) {
    grid-template-columns: 1fr !important;
  }
  body.msf-theme.home :where(.msf-band-purple,.msf-band-teal,.msf-section-teal,.msf-section-coral) :where(.msf-video-frame,.wp-block-embed,.wp-block-video,.wp-block-html) {
    max-width: 100% !important;
  }
}

/* ------------------------------------------------------
   Product page related products: reduce vertical gap and align card titles
------------------------------------------------------ */
body.msf-theme.single-product .related.products {
  padding-top: clamp(48px, 5vw, 76px) !important;
  padding-bottom: clamp(64px, 7vw, 104px) !important;
}

body.msf-theme.single-product .related.products > h2,
body.msf-theme.single-product .related.products h2:first-child,
body.msf-theme .related.products > h2 {
  margin-bottom: clamp(18px, 2.4vw, 30px) !important;
  text-transform: none !important;
}

body.msf-theme.single-product .related.products ul.products,
body.msf-theme .related.products ul.products {
  align-items: stretch !important;
}

body.msf-theme.single-product .related.products ul.products li.product,
body.msf-theme .related.products ul.products li.product {
  justify-content: flex-start !important;
}

body.msf-theme.single-product .related.products .woocommerce-loop-product__title,
body.msf-theme .related.products .woocommerce-loop-product__title {
  min-height: 70px !important;
  align-items: center !important;
  justify-content: flex-start !important;
  text-transform: none !important;
}

/* ------------------------------------------------------
   Supporter/Event Menu UI: apply to a parent Group with class msf-event-menu
   or msf-supporter-menu. Also styles pricing-card blocks if added manually.
------------------------------------------------------ */
body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) {
  background: var(--msf-soft-ivory) !important;
  color: var(--msf-ink) !important;
  padding-top: clamp(60px, 7vw, 100px) !important;
  padding-bottom: clamp(60px, 7vw, 100px) !important;
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) > :where(.wp-block-group__inner-container) {
  width: min(calc(100% - 40px), 1120px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) :where(.wp-block-columns,.msf-pricing-cards) {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: var(--msf-card-gap) !important;
  align-items: stretch !important;
  margin-top: clamp(28px, 4vw, 48px) !important;
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) :where(.wp-block-column,.msf-pricing-card) {
  background: rgba(255,255,255,.38) !important;
  border: 2px solid rgba(36,31,33,.32) !important;
  border-radius: 20px !important;
  padding: clamp(22px, 2.4vw, 32px) !important;
  display: flex !important;
  flex-direction: column !important;
  min-height: 100% !important;
  box-shadow: none !important;
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) :where(.wp-block-column,.msf-pricing-card):hover,
body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) :where(.wp-block-column,.msf-pricing-card):focus-within {
  border-color: var(--msf-accessible-teal) !important;
  background: #fff !important;
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) :where(h2,h3,h4) {
  color: var(--msf-ink) !important;
  text-align: center;
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) .wp-block-column :where(h3,h4),
body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) .msf-pricing-card :where(h3,h4) {
  text-align: left !important;
  margin-top: 0 !important;
  margin-bottom: .5rem !important;
  font-size: clamp(1.25rem, 1.8vw, 1.65rem) !important;
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) :where(p,li) {
  color: var(--msf-ink) !important;
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) :where(.wp-block-buttons) {
  margin-top: auto !important;
  padding-top: clamp(18px, 2vw, 28px) !important;
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) :where(.wp-block-button,.wp-block-button__link) {
  width: 100% !important;
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) em {
  display: block;
  margin-top: clamp(20px, 3vw, 34px);
  text-align: center;
  color: var(--msf-muted) !important;
}

@media (max-width: 980px) {
  body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) :where(.wp-block-columns,.msf-pricing-cards) {
    grid-template-columns: 1fr !important;
  }
}

/* A safer general cleanup for outline-style card columns on interior pages. */
body.msf-theme:not(.home) .entry-content .wp-block-column:has(.wp-block-button__link):has(h3) {
  border-radius: 20px;
}

/* ------------------------------------------------------
   Blog / Updates page: remove default header/title area when page controls do not
------------------------------------------------------ */
body.msf-theme.blog .page-header,
body.msf-theme.blog .entry-header,
body.msf-theme.blog .page-title,
body.msf-theme.blog h1.page-title,
body.msf-theme.archive .page-header,
body.msf-theme.archive .archive-header,
body.msf-theme.archive .page-title,
body.msf-theme.archive h1.page-title,
body.msf-theme.page-blog .entry-header,
body.msf-theme.page-updates .entry-header,
body.msf-theme.page-news .entry-header,
body.msf-theme .blog .page-header {
  display: none !important;
}

body.msf-theme.blog .site-content,
body.msf-theme.archive .site-content,
body.msf-theme.page-blog .site-content,
body.msf-theme.page-updates .site-content,
body.msf-theme.page-news .site-content {
  padding-top: clamp(92px, 8vw, 126px) !important;
}

body.msf-theme.blog .entry-content,
body.msf-theme.archive .entry-content,
body.msf-theme.page-blog .entry-content,
body.msf-theme.page-updates .entry-content,
body.msf-theme.page-news .entry-content {
  padding-top: 0 !important;
}

body.msf-theme.blog article,
body.msf-theme.archive article,
body.msf-theme .posts-navigation,
body.msf-theme .navigation.pagination {
  width: min(calc(100% - 40px), 1040px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.msf-theme.blog article,
body.msf-theme.archive article {
  margin-bottom: clamp(48px, 6vw, 86px) !important;
}

body.msf-theme.blog article .entry-title,
body.msf-theme.archive article .entry-title {
  text-align: center !important;
  text-transform: none !important;
}

body.msf-theme.blog article .post-thumbnail img,
body.msf-theme.archive article .post-thumbnail img,
body.msf-theme.blog article img.wp-post-image,
body.msf-theme.archive article img.wp-post-image {
  width: 100% !important;
  max-height: 320px !important;
  object-fit: cover !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}


/* ======================================================
   v3.8 Store + homepage + updates refinement
   - Stronger cart/checkout containment
   - More consistent homepage feature video styling
   - Tighter related products vertical rhythm
   - Better event/supporter menu card pattern support
   - Hide default page/blog title headers more reliably
====================================================== */

body.msf-theme {
  --msf-store-max: 1180px;
  --msf-page-gutter: clamp(18px, 4vw, 40px);
}

/* Store pages: stop WooCommerce/Blocks from sliding under the left edge. */
body.msf-theme.woocommerce-page:not(.single-product) .site-content,
body.msf-theme.woocommerce-cart .site-content,
body.msf-theme.woocommerce-checkout .site-content,
body.msf-theme.woocommerce-page:not(.single-product) .content-area,
body.msf-theme.woocommerce-cart .content-area,
body.msf-theme.woocommerce-checkout .content-area,
body.msf-theme.woocommerce-page:not(.single-product) #primary,
body.msf-theme.woocommerce-cart #primary,
body.msf-theme.woocommerce-checkout #primary,
body.msf-theme.woocommerce-page:not(.single-product) .site-main,
body.msf-theme.woocommerce-cart .site-main,
body.msf-theme.woocommerce-checkout .site-main {
  overflow-x: hidden !important;
  padding-top: clamp(112px, 9vw, 150px) !important;
}

body.msf-theme.woocommerce-page:not(.single-product) .entry-content,
body.msf-theme.woocommerce-cart .entry-content,
body.msf-theme.woocommerce-checkout .entry-content,
body.msf-theme.woocommerce-page:not(.single-product) .woocommerce,
body.msf-theme.woocommerce-cart .woocommerce,
body.msf-theme.woocommerce-checkout .woocommerce,
body.msf-theme.woocommerce-page:not(.single-product) .wp-block-woocommerce-cart,
body.msf-theme.woocommerce-page:not(.single-product) .wp-block-woocommerce-checkout,
body.msf-theme.woocommerce-cart .wp-block-woocommerce-cart,
body.msf-theme.woocommerce-checkout .wp-block-woocommerce-checkout,
body.msf-theme.woocommerce-cart .wc-block-cart,
body.msf-theme.woocommerce-checkout .wc-block-checkout,
body.msf-theme.woocommerce-cart .wc-block-components-sidebar-layout,
body.msf-theme.woocommerce-checkout .wc-block-components-sidebar-layout {
  width: min(calc(100vw - (var(--msf-page-gutter) * 2)), var(--msf-store-max)) !important;
  max-width: var(--msf-store-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
  transform: none !important;
  left: auto !important;
  right: auto !important;
}

body.msf-theme.woocommerce-page:not(.single-product) .entry-content > *,
body.msf-theme.woocommerce-cart .entry-content > *,
body.msf-theme.woocommerce-checkout .entry-content > *,
body.msf-theme.woocommerce-cart .woocommerce > *,
body.msf-theme.woocommerce-checkout .woocommerce > * {
  max-width: 100% !important;
  box-sizing: border-box !important;
}

body.msf-theme.woocommerce-cart table.shop_table,
body.msf-theme.woocommerce-checkout table.shop_table,
body.msf-theme.woocommerce-cart .woocommerce-cart-form,
body.msf-theme.woocommerce-cart .cart-collaterals,
body.msf-theme.woocommerce-checkout form.checkout,
body.msf-theme.woocommerce-checkout .woocommerce-checkout-review-order,
body.msf-theme.woocommerce-cart .wc-block-cart-items,
body.msf-theme.woocommerce-checkout .wc-block-components-order-summary,
body.msf-theme.woocommerce-cart .wc-block-components-main,
body.msf-theme.woocommerce-checkout .wc-block-components-main,
body.msf-theme.woocommerce-cart .wc-block-components-sidebar,
body.msf-theme.woocommerce-checkout .wc-block-components-sidebar {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

body.msf-theme.woocommerce-checkout .wc-block-components-sidebar-layout,
body.msf-theme.woocommerce-cart .wc-block-components-sidebar-layout {
  gap: clamp(24px, 4vw, 48px) !important;
}

body.msf-theme.woocommerce-cart .cart_totals,
body.msf-theme.woocommerce-checkout .wc-block-components-sidebar,
body.msf-theme.woocommerce-checkout #order_review,
body.msf-theme.woocommerce-checkout .woocommerce-checkout-review-order {
  background: rgba(255,255,255,.58) !important;
  border: 1px solid rgba(36,31,33,.16) !important;
  border-radius: 18px !important;
  padding: clamp(18px, 2.5vw, 30px) !important;
}

body.msf-theme.woocommerce-cart .quantity,
body.msf-theme.woocommerce-cart .quantity input,
body.msf-theme.woocommerce-cart .wc-block-components-quantity-selector,
body.msf-theme.woocommerce-checkout input,
body.msf-theme.woocommerce-checkout select,
body.msf-theme.woocommerce-checkout textarea {
  max-width: 100% !important;
  box-sizing: border-box !important;
}

@media (max-width: 900px) {
  body.msf-theme.woocommerce-cart .wc-block-components-sidebar-layout,
  body.msf-theme.woocommerce-checkout .wc-block-components-sidebar-layout,
  body.msf-theme.woocommerce-checkout form.checkout {
    display: block !important;
  }
}

/* Home: make Program and Story embeds behave the same, whether they are Embed, Video, or Custom HTML iframe blocks. */
body.msf-theme.home :where(.msf-band-purple,.msf-band-teal,.msf-section-teal,.msf-section-coral) :where(.wp-block-html iframe) {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  height: auto !important;
  min-height: clamp(230px, 28vw, 382px) !important;
  border: 0 !important;
  border-radius: 18px !important;
}

body.msf-theme.home :where(.msf-band-purple,.msf-band-teal,.msf-section-teal,.msf-section-coral) :where(.wp-block-html) {
  aspect-ratio: 16 / 9 !important;
}

/* Related products: tighten the section so the heading and cards feel connected. */
body.msf-theme.single-product .related.products,
body.msf-theme .related.products {
  padding-top: clamp(34px, 4vw, 58px) !important;
  padding-bottom: clamp(54px, 6vw, 90px) !important;
}

body.msf-theme.single-product .related.products > h2,
body.msf-theme.single-product .related.products h2:first-child,
body.msf-theme .related.products > h2 {
  margin-top: 0 !important;
  margin-bottom: clamp(12px, 2vw, 22px) !important;
  font-size: clamp(2rem, 3.5vw, 3.2rem) !important;
  line-height: 1.02 !important;
  text-transform: none !important;
}

body.msf-theme .related.products .woocommerce-loop-product__title,
body.msf-theme.single-product .related.products .woocommerce-loop-product__title {
  min-height: 58px !important;
  padding: 14px 18px !important;
  justify-content: flex-start !important;
  align-items: center !important;
  text-transform: none !important;
}

/* Supporter / Event Menu: improved card UI. Add msf-supporter-menu or msf-event-menu to the parent Group. */
body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) {
  background: var(--msf-soft-ivory) !important;
  color: var(--msf-ink) !important;
  padding-top: clamp(56px, 7vw, 96px) !important;
  padding-bottom: clamp(60px, 8vw, 112px) !important;
  text-align: center !important;
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) > .wp-block-group__inner-container,
body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) > .msf-wrap {
  width: min(calc(100% - 40px), 1120px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) :where(.wp-block-columns,.msf-pricing-cards) {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(20px, 3vw, 34px) !important;
  align-items: stretch !important;
  margin-top: clamp(26px, 4vw, 46px) !important;
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) :where(.wp-block-column,.msf-pricing-card) {
  background: rgba(255,255,255,.62) !important;
  border: 2px solid rgba(36,31,33,.20) !important;
  border-radius: 22px !important;
  padding: clamp(22px, 2.8vw, 34px) !important;
  text-align: left !important;
  box-shadow: none !important;
  display: flex !important;
  flex-direction: column !important;
  min-height: 100% !important;
  transition: background-color .16s ease, border-color .16s ease, transform .16s ease !important;
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) :where(.wp-block-column,.msf-pricing-card):hover,
body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) :where(.wp-block-column,.msf-pricing-card):focus-within {
  background: #ffffff !important;
  border-color: var(--msf-accessible-teal, #087E86) !important;
  transform: translateY(-2px);
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) :where(h2) {
  text-align: center !important;
  color: var(--msf-ink) !important;
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) :where(.wp-block-column,.msf-pricing-card) :where(h3,h4) {
  text-align: left !important;
  margin-top: 0 !important;
  margin-bottom: .65rem !important;
  color: var(--msf-ink) !important;
  font-size: clamp(1.35rem, 2vw, 1.85rem) !important;
  line-height: 1.05 !important;
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) :where(.wp-block-column,.msf-pricing-card) :where(p,li) {
  color: var(--msf-ink) !important;
  font-weight: 500 !important;
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) :where(.wp-block-buttons) {
  margin-top: auto !important;
  padding-top: clamp(16px, 2vw, 26px) !important;
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) :where(.wp-block-button,.wp-block-button__link) {
  width: 100% !important;
}

body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) em {
  display: block;
  max-width: 780px;
  margin: clamp(24px, 4vw, 40px) auto 0 !important;
  text-align: center;
  color: var(--msf-muted) !important;
}

@media (max-width: 980px) {
  body.msf-theme :where(.msf-event-menu,.msf-supporter-menu) :where(.wp-block-columns,.msf-pricing-cards) {
    grid-template-columns: 1fr !important;
  }
}

/* Updates / Blog: hide the stubborn default page/archive title and avoid the huge top gap. */
body.msf-theme.blog :where(.page-header,.entry-header,.page-title,h1.page-title),
body.msf-theme.archive :where(.page-header,.archive-header,.entry-header,.page-title,h1.page-title),
body.msf-theme.page:not(.woocommerce-page):not(.home) > .site-content .entry-header,
body.msf-theme.page:not(.woocommerce-page):not(.home) article > .entry-header,
body.msf-theme.page:not(.woocommerce-page):not(.home) .page .entry-header {
  display: none !important;
}

body.msf-theme.blog .site-content,
body.msf-theme.archive .site-content,
body.msf-theme.page:not(.woocommerce-page):not(.home) .site-content {
  padding-top: clamp(72px, 7vw, 108px) !important;
}

body.msf-theme.blog article,
body.msf-theme.archive article {
  width: min(calc(100% - 40px), 1040px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: clamp(46px, 6vw, 78px) !important;
}

body.msf-theme.blog article .entry-title,
body.msf-theme.archive article .entry-title {
  text-align: center !important;
  text-transform: none !important;
}

body.msf-theme.blog article img.wp-post-image,
body.msf-theme.archive article img.wp-post-image,
body.msf-theme.blog article .post-thumbnail img,
body.msf-theme.archive article .post-thumbnail img {
  width: 100% !important;
  max-height: 320px !important;
  object-fit: cover !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* =========================================================
   v4.0 FIX: Mobile, Blog, Single Posts, WooCommerce
   Important: this lives in assets/css/msf-theme.css because that is the enqueued stylesheet.
========================================================= */

/* ---------- Mobile partner logos: show 3 at a time ---------- */
@media (max-width: 767px) {
  body.msf-theme :where(.msf-partners-section,.trusted-partners,.wp-block-group:has(.gutenbee-slider),.wp-block-group:has(.slick-slider)) {
    overflow: hidden !important;
  }

  body.msf-theme :where(.msf-partners-section,.trusted-partners,.gutenbee-slider) :where(.slick-slide,.swiper-slide) {
    width: 33.333% !important;
    max-width: 33.333% !important;
    flex: 0 0 33.333% !important;
    box-sizing: border-box !important;
    padding: 0 0.4rem !important;
  }

  body.msf-theme :where(.msf-partners-section,.trusted-partners,.gutenbee-slider) img {
    max-height: 58px !important;
    width: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    margin: 0 auto !important;
  }

  body.msf-theme :where(.msf-partners-section,.trusted-partners,.gutenbee-slider) .slick-track {
    display: flex !important;
    align-items: center !important;
  }
}

/* ---------- Horizontal scroll sections: visual scroll cue ---------- */
body.msf-theme :where(.msf-youtube-section,.msf-resources-section,.msf-card-scroll,.msf-resource-scroll,.msf-youtube-scroll) {
  position: relative !important;
}

@media (max-width: 767px) {
  body.msf-theme :where(.msf-youtube-section,.msf-resources-section,.msf-card-scroll,.msf-resource-scroll,.msf-youtube-scroll)::after {
    content: "Swipe →";
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: max-content !important;
    margin: 1.25rem auto 0 !important;
    padding: 0.45rem 0.9rem !important;
    border-radius: 999px !important;
    background: #241f21 !important;
    color: #ffffff !important;
    font-size: 0.9rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.02em !important;
  }

  body.msf-theme :where(.msf-youtube-section,.msf-resources-section) {
    padding-bottom: 3rem !important;
    text-align: center !important;
  }

  body.msf-theme :where(.msf-youtube-section .wp-block-columns,.msf-resources-section .wp-block-columns,.msf-card-scroll,.msf-resource-scroll,.msf-youtube-scroll,.wc-block-grid__products,.products.columns-3,.products.columns-4) {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
    padding-bottom: 1.25rem !important;
  }

  body.msf-theme :where(.msf-youtube-section .wp-block-column,.msf-resources-section .wp-block-column,.msf-card-scroll > *,.msf-resource-scroll > *,.msf-youtube-scroll > *,.wc-block-grid__product,.products li.product) {
    scroll-snap-align: start !important;
  }

  body.msf-theme :where(.msf-youtube-section .wp-block-columns,.msf-resources-section .wp-block-columns,.msf-card-scroll,.msf-resource-scroll,.msf-youtube-scroll)::-webkit-scrollbar {
    height: 8px !important;
  }

  body.msf-theme :where(.msf-youtube-section .wp-block-columns,.msf-resources-section .wp-block-columns,.msf-card-scroll,.msf-resource-scroll,.msf-youtube-scroll)::-webkit-scrollbar-track {
    background: rgba(36, 31, 33, 0.12) !important;
    border-radius: 999px !important;
  }

  body.msf-theme :where(.msf-youtube-section .wp-block-columns,.msf-resources-section .wp-block-columns,.msf-card-scroll,.msf-resource-scroll,.msf-youtube-scroll)::-webkit-scrollbar-thumb {
    background: #2fa6b1 !important;
    border-radius: 999px !important;
  }
}

/* ---------- Blog archive / Updates: restore headlines and improve readability ---------- */
body.msf-theme.blog :where(.page-header,.page-title,h1.page-title),
body.msf-theme.archive :where(.page-header,.archive-header,.page-title,h1.page-title),
body.msf-theme.blog .site-main > header,
body.msf-theme.archive .site-main > header {
  display: none !important;
}

body.msf-theme.blog article,
body.msf-theme.archive article,
body.msf-theme.search article {
  width: min(calc(100% - 40px), 900px) !important;
  max-width: 900px !important;
  margin: 0 auto clamp(56px, 7vw, 90px) !important;
  padding: 0 !important;
  text-align: center !important;
}

body.msf-theme.blog article :where(.entry-header,.entry-title),
body.msf-theme.archive article :where(.entry-header,.entry-title),
body.msf-theme.search article :where(.entry-header,.entry-title) {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

body.msf-theme.blog article .entry-title,
body.msf-theme.archive article .entry-title,
body.msf-theme.search article .entry-title,
body.msf-theme.blog article h2.entry-title,
body.msf-theme.archive article h2.entry-title {
  font-size: clamp(2rem, 4vw, 3.5rem) !important;
  line-height: 1.05 !important;
  max-width: 760px !important;
  margin: 1.5rem auto 1rem !important;
  color: #241f21 !important;
  text-align: center !important;
  text-transform: none !important;
}

body.msf-theme.blog article .entry-title a,
body.msf-theme.archive article .entry-title a,
body.msf-theme.search article .entry-title a {
  color: #241f21 !important;
  text-decoration: none !important;
}

body.msf-theme.blog article .entry-title a:hover,
body.msf-theme.archive article .entry-title a:hover,
body.msf-theme.search article .entry-title a:hover,
body.msf-theme.blog article .entry-title a:focus-visible,
body.msf-theme.archive article .entry-title a:focus-visible,
body.msf-theme.search article .entry-title a:focus-visible {
  color: #007c89 !important;
  text-decoration: underline !important;
  text-underline-offset: 0.2em !important;
}

body.msf-theme.blog article :where(.entry-summary,.entry-content),
body.msf-theme.archive article :where(.entry-summary,.entry-content),
body.msf-theme.search article :where(.entry-summary,.entry-content) {
  max-width: 680px !important;
  margin: 0 auto 1.5rem !important;
  font-size: clamp(1rem, 1.2vw, 1.125rem) !important;
  line-height: 1.65 !important;
  text-align: left !important;
  color: #241f21 !important;
}

body.msf-theme.blog article :where(.post-thumbnail,img.wp-post-image),
body.msf-theme.archive article :where(.post-thumbnail,img.wp-post-image),
body.msf-theme.search article :where(.post-thumbnail,img.wp-post-image) {
  max-width: 900px !important;
  margin: 0 auto 1.5rem !important;
}

body.msf-theme.blog article :where(.post-thumbnail img,img.wp-post-image),
body.msf-theme.archive article :where(.post-thumbnail img,img.wp-post-image),
body.msf-theme.search article :where(.post-thumbnail img,img.wp-post-image) {
  width: 100% !important;
  max-height: 340px !important;
  object-fit: cover !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.msf-theme.blog :where(.read-more,.more-link),
body.msf-theme.archive :where(.read-more,.more-link),
body.msf-theme.search :where(.read-more,.more-link) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: 0.65rem 1.5rem !important;
  border: 2px solid rgba(36, 31, 33, 0.2) !important;
  border-radius: 999px !important;
  color: #241f21 !important;
  background: transparent !important;
  font-weight: 800 !important;
  text-transform: none !important;
  letter-spacing: 0.03em !important;
}

body.msf-theme.blog :where(.read-more,.more-link):hover,
body.msf-theme.archive :where(.read-more,.more-link):hover,
body.msf-theme.search :where(.read-more,.more-link):hover {
  background: #2fa6b1 !important;
  color: #ffffff !important;
  border-color: #2fa6b1 !important;
}

/* ---------- Single post cleanup ---------- */
body.msf-theme.single-post :where(
  .entry-meta,
  .entry-footer,
  .author-info,
  .post-author,
  .about-author,
  .comments-area,
  #comments,
  .comment-respond,
  .post-navigation,
  .navigation.post-navigation,
  .nav-links,
  .previous-post,
  .next-post,
  .single-post-nav,
  .wp-block-post-navigation-link,
  .inspiro-author-bio,
  .author-bio
) {
  display: none !important;
}

body.msf-theme.single-post article {
  max-width: 860px !important;
  margin: 0 auto !important;
  padding: clamp(2.5rem, 6vw, 5rem) 1.25rem !important;
}

body.msf-theme.single-post article .entry-header {
  margin: 0 auto 1.5rem !important;
  padding: 0 !important;
  text-align: left !important;
}

body.msf-theme.single-post .entry-title {
  font-size: clamp(2.25rem, 5vw, 4.25rem) !important;
  line-height: 1.05 !important;
  max-width: 760px !important;
  margin: 0 auto 1.5rem !important;
  color: #241f21 !important;
  text-transform: none !important;
}

body.msf-theme.single-post .entry-content {
  max-width: 700px !important;
  margin: 0 auto !important;
  font-size: clamp(1rem, 1.2vw, 1.125rem) !important;
  line-height: 1.75 !important;
  color: #241f21 !important;
}

body.msf-theme.single-post .entry-content p {
  margin-bottom: 1.35rem !important;
}

body.msf-theme.single-post .entry-content a {
  color: #007c89 !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
  text-underline-offset: 0.2em !important;
}

body.msf-theme.single-post .entry-content img {
  max-width: 100% !important;
  height: auto !important;
  box-shadow: none !important;
}

/* Hide previous/next hero blocks that Inspiro may output outside article. */
body.msf-theme.single-post main ~ .post-navigation,
body.msf-theme.single-post .site-content ~ .post-navigation,
body.msf-theme.single-post .entry-cover-image,
body.msf-theme.single-post .previous-post-cover,
body.msf-theme.single-post .next-post-cover {
  display: none !important;
}

/* ---------- Product / Related Products tightening ---------- */
body.msf-theme.single-product .related.products {
  padding-top: clamp(2rem, 4vw, 3rem) !important;
  padding-bottom: clamp(3rem, 6vw, 5rem) !important;
}

body.msf-theme.single-product .related.products > h2 {
  margin-bottom: clamp(1.25rem, 2.5vw, 2rem) !important;
  font-size: clamp(2.25rem, 4vw, 3.75rem) !important;
  line-height: 1.05 !important;
  text-align: center !important;
  text-transform: none !important;
}

body.msf-theme.single-product .related.products ul.products {
  margin-top: 0 !important;
}

body.msf-theme.single-product .related.products li.product {
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
}

body.msf-theme.single-product .related.products li.product .woocommerce-loop-product__title {
  min-height: auto !important;
  margin: 0 !important;
  padding: 1rem !important;
  text-transform: none !important;
  line-height: 1.15 !important;
}

/* ---------- Mobile overflow safety ---------- */
@media (max-width: 767px) {
  body.msf-theme {
    overflow-x: hidden !important;
  }

  body.msf-theme :where(.site-header,.navbar,.headroom) {
    max-width: 100vw !important;
  }

  body.msf-theme :where(.single-post article,.blog article,.archive article,.search article) {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }

  body.msf-theme :where(.blog article .entry-summary,.archive article .entry-summary,.search article .entry-summary) {
    text-align: left !important;
  }
}

/* =========================================================
   v4.1 Blog headline restoration
   Fixes earlier broad rules that hid every .entry-header on blog/archive pages.
========================================================= */

/* Hide only the archive/page heading, NOT each post's title wrapper. */
body.msf-theme.blog main > header,
body.msf-theme.archive main > header,
body.msf-theme.blog .site-main > header.page-header,
body.msf-theme.archive .site-main > header.archive-header,
body.msf-theme.blog h1.page-title,
body.msf-theme.archive h1.page-title {
  display: none !important;
}

/* Force post title containers back on. This beats older .blog .entry-header display:none rules. */
body.msf-theme.blog article.post .entry-header,
body.msf-theme.archive article.post .entry-header,
body.msf-theme.search article.post .entry-header,
body.msf-theme.blog article.hentry .entry-header,
body.msf-theme.archive article.hentry .entry-header,
body.msf-theme.search article.hentry .entry-header,
body.msf-theme.blog .site-main article .entry-header,
body.msf-theme.archive .site-main article .entry-header,
body.msf-theme.search .site-main article .entry-header {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  margin: 1.5rem auto 1rem !important;
  padding: 0 !important;
  text-align: center !important;
}

/* Restore all common post-title outputs, including Query Loop / block titles. */
body.msf-theme.blog article.post .entry-title,
body.msf-theme.archive article.post .entry-title,
body.msf-theme.search article.post .entry-title,
body.msf-theme.blog article.hentry .entry-title,
body.msf-theme.archive article.hentry .entry-title,
body.msf-theme.search article.hentry .entry-title,
body.msf-theme.blog .site-main article h2.entry-title,
body.msf-theme.archive .site-main article h2.entry-title,
body.msf-theme.search .site-main article h2.entry-title,
body.msf-theme .wp-block-post-template .wp-block-post-title,
body.msf-theme .wp-block-query .wp-block-post-title,
body.msf-theme .wp-block-latest-posts__post-title {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  font-size: clamp(2rem, 4vw, 3.5rem) !important;
  line-height: 1.05 !important;
  max-width: 760px !important;
  margin: 1.5rem auto 1rem !important;
  color: #241f21 !important;
  text-align: center !important;
  text-transform: none !important;
  letter-spacing: -0.025em !important;
}

/* Link treatment for restored titles. */
body.msf-theme.blog .site-main article .entry-title a,
body.msf-theme.archive .site-main article .entry-title a,
body.msf-theme.search .site-main article .entry-title a,
body.msf-theme .wp-block-post-template .wp-block-post-title a,
body.msf-theme .wp-block-query .wp-block-post-title a,
body.msf-theme .wp-block-latest-posts__post-title {
  color: #241f21 !important;
  text-decoration: none !important;
}

body.msf-theme.blog .site-main article .entry-title a:hover,
body.msf-theme.archive .site-main article .entry-title a:hover,
body.msf-theme.search .site-main article .entry-title a:hover,
body.msf-theme .wp-block-post-template .wp-block-post-title a:hover,
body.msf-theme .wp-block-query .wp-block-post-title a:hover,
body.msf-theme .wp-block-latest-posts__post-title:hover,
body.msf-theme.blog .site-main article .entry-title a:focus-visible,
body.msf-theme.archive .site-main article .entry-title a:focus-visible,
body.msf-theme.search .site-main article .entry-title a:focus-visible {
  color: #007c89 !important;
  text-decoration: underline !important;
  text-underline-offset: 0.2em !important;
}

/* Remove post meta from archive cards while keeping the title visible. */
body.msf-theme.blog .site-main article .entry-meta,
body.msf-theme.archive .site-main article .entry-meta,
body.msf-theme.search .site-main article .entry-meta,
body.msf-theme .wp-block-post-template .wp-block-post-date,
body.msf-theme .wp-block-post-template .wp-block-post-author,
body.msf-theme .wp-block-query .wp-block-post-date,
body.msf-theme .wp-block-query .wp-block-post-author {
  display: none !important;
}

/* Better reading width for excerpts on archive/query pages. */
body.msf-theme.blog .site-main article :where(.entry-summary,.entry-content,.wp-block-post-excerpt),
body.msf-theme.archive .site-main article :where(.entry-summary,.entry-content,.wp-block-post-excerpt),
body.msf-theme.search .site-main article :where(.entry-summary,.entry-content,.wp-block-post-excerpt),
body.msf-theme .wp-block-query .wp-block-post-excerpt {
  max-width: 680px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: left !important;
}

/* If Updates is a regular Page with a Query Loop, do not let page-level header hiding kill post titles. */
body.msf-theme.page .wp-block-query article .entry-header,
body.msf-theme.page .wp-block-post-template article .entry-header,
body.msf-theme.page .wp-block-query .wp-block-post-title,
body.msf-theme.page .wp-block-post-template .wp-block-post-title {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* =========================================================
   v4.2 Footer UX refresh
   Works with existing footer markup and the updated pattern.
========================================================= */

body.msf-theme .msf-footer-cta {
  position: relative !important;
  overflow: hidden !important;
  background: #b14a37 !important;
  color: #fff !important;
  padding: clamp(48px, 7vw, 84px) 0 clamp(34px, 5vw, 58px) !important;
  text-align: center !important;
}

/* Soft book-world divider. */
body.msf-theme .msf-footer-cta::before {
  content: "" !important;
  position: absolute !important;
  top: -1px !important;
  left: 0 !important;
  right: 0 !important;
  height: 18px !important;
  background:
    radial-gradient(34px 18px at 34px 18px, #f7f0df 98%, transparent 100%) 0 0 / 68px 18px repeat-x !important;
  opacity: 1 !important;
  pointer-events: none !important;
}

body.msf-theme .msf-footer-cta .msf-wrap {
  width: min(calc(100% - 40px), 1080px) !important;
  margin-inline: auto !important;
}

/* New/footer pattern: structured columns */
body.msf-theme .msf-footer-grid {
  display: grid !important;
  grid-template-columns: minmax(260px, 1.35fr) minmax(150px, .7fr) minmax(170px, .8fr) !important;
  gap: clamp(28px, 5vw, 72px) !important;
  align-items: start !important;
  text-align: left !important;
}

/* Existing footer fallback: keep centered but more intentional */
body.msf-theme .msf-footer-cta > .msf-wrap:not(.msf-footer-grid),
body.msf-theme .msf-footer-cta .wp-block-group:not(.msf-footer-grid) > .msf-footer-logo:first-child {
  text-align: center !important;
}

body.msf-theme .msf-footer-logo {
  margin: 0 0 1rem !important;
}

body.msf-theme .msf-footer-logo img {
  width: min(280px, 82vw) !important;
  max-width: 280px !important;
  height: auto !important;
  filter: none !important;
}

body.msf-theme .msf-footer-mission {
  max-width: 34rem !important;
  margin: 0 0 1.25rem !important;
  color: #fff !important;
  font-size: clamp(1rem, 1.2vw, 1.15rem) !important;
  line-height: 1.55 !important;
  font-weight: 650 !important;
}

/* If the old footer has no mission line, add one visually after the logo. */
body.msf-theme .msf-footer-cta .msf-wrap:not(.msf-footer-grid) .msf-footer-logo::after {
  content: "Helping children breathe, create, play, and feel better so they can learn better." !important;
  display: block !important;
  max-width: 560px !important;
  margin: 0.75rem auto 1.35rem !important;
  color: #fff !important;
  font-size: clamp(1rem, 1.2vw, 1.15rem) !important;
  line-height: 1.55 !important;
  font-weight: 650 !important;
}

body.msf-theme .msf-footer-heading {
  margin: 0 0 .9rem !important;
  color: #fff !important;
  font-size: clamp(1.1rem, 1.5vw, 1.35rem) !important;
  line-height: 1.1 !important;
  text-transform: none !important;
  letter-spacing: .01em !important;
}

/* Footer links */
body.msf-theme .msf-footer-link-row,
body.msf-theme .msf-footer-legal-row {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: .35rem !important;
  margin-top: 0 !important;
}

body.msf-theme .msf-footer-cta .msf-wrap:not(.msf-footer-grid) .msf-footer-link-row,
body.msf-theme .msf-footer-cta .msf-wrap:not(.msf-footer-grid) .msf-footer-legal-row {
  flex-direction: row !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 12px 28px !important;
  margin-top: 16px !important;
}

body.msf-theme .msf-footer-link-row p,
body.msf-theme .msf-footer-legal-row p,
body.msf-theme .msf-footer-social-row p,
body.msf-theme .msf-footer-bottom p {
  margin: 0 !important;
}

body.msf-theme .msf-footer-link-row a,
body.msf-theme .msf-footer-legal-row a,
body.msf-theme .msf-footer-bottom a {
  color: #fff !important;
  font-weight: 850 !important;
  text-decoration: none !important;
  line-height: 1.35 !important;
  border-bottom: 2px solid transparent !important;
}

body.msf-theme .msf-footer-link-row a:hover,
body.msf-theme .msf-footer-legal-row a:hover,
body.msf-theme .msf-footer-bottom a:hover,
body.msf-theme .msf-footer-link-row a:focus-visible,
body.msf-theme .msf-footer-legal-row a:focus-visible,
body.msf-theme .msf-footer-bottom a:focus-visible {
  color: #f5e3a7 !important;
  border-bottom-color: #f5e3a7 !important;
  outline: none !important;
}

/* Social icons / tap targets */
body.msf-theme .msf-footer-social-row {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  align-items: center !important;
  gap: .65rem !important;
  margin-top: 1.25rem !important;
}

body.msf-theme .msf-footer-cta .msf-wrap:not(.msf-footer-grid) .msf-footer-social-row {
  justify-content: center !important;
}

body.msf-theme .msf-footer-social-row a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 44px !important;
  min-height: 44px !important;
  padding: .45rem .7rem !important;
  border: 2px solid rgba(255,255,255,.72) !important;
  border-radius: 999px !important;
  color: #fff !important;
  font-weight: 900 !important;
  text-decoration: none !important;
  background: rgba(36,31,33,.12) !important;
}

body.msf-theme .msf-footer-social-row a:hover,
body.msf-theme .msf-footer-social-row a:focus-visible {
  background: #f5e3a7 !important;
  border-color: #f5e3a7 !important;
  color: #241f21 !important;
  outline: 3px solid rgba(255,255,255,.45) !important;
  outline-offset: 3px !important;
}

/* Bottom legal line */
body.msf-theme .msf-footer-bottom {
  width: min(calc(100% - 40px), 1080px) !important;
  margin: clamp(30px, 5vw, 56px) auto 0 !important;
  padding-top: 1.25rem !important;
  border-top: 1px solid rgba(255,255,255,.28) !important;
  color: #fff !important;
  gap: .6rem 1.25rem !important;
}

body.msf-theme .msf-footer-copy {
  margin: 0 !important;
  color: #fff !important;
  font-size: clamp(.9rem, 1vw, 1rem) !important;
  line-height: 1.5 !important;
}

/* Existing old footer: make copyright cleaner. */
body.msf-theme .msf-footer-cta .msf-wrap:not(.msf-footer-grid) .msf-footer-copy {
  margin-top: 1.35rem !important;
}

/* Optional website pill, only if manually added */
body.msf-theme .msf-footer-url a,
body.msf-theme a.msf-footer-url {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: .55rem 1.2rem !important;
  border-radius: 999px !important;
  background: #ffd4c3 !important;
  color: #241f21 !important;
  font-weight: 900 !important;
  text-decoration: none !important;
}

@media (max-width: 820px) {
  body.msf-theme .msf-footer-grid {
    grid-template-columns: 1fr !important;
    text-align: center !important;
    gap: 2rem !important;
  }

  body.msf-theme .msf-footer-mission {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.msf-theme .msf-footer-link-row,
  body.msf-theme .msf-footer-legal-row,
  body.msf-theme .msf-footer-social-row {
    align-items: center !important;
    justify-content: center !important;
  }

  body.msf-theme .msf-footer-link-row {
    gap: .65rem !important;
  }

  body.msf-theme .msf-footer-logo img {
    max-width: 300px !important;
  }
}

@media (max-width: 480px) {
  body.msf-theme .msf-footer-cta {
    padding-top: 56px !important;
  }

  body.msf-theme .msf-footer-logo img {
    max-width: 260px !important;
  }

  body.msf-theme .msf-footer-cta .msf-wrap:not(.msf-footer-grid) .msf-footer-link-row,
  body.msf-theme .msf-footer-cta .msf-wrap:not(.msf-footer-grid) .msf-footer-legal-row {
    flex-direction: column !important;
    gap: .65rem !important;
  }
}

/* =========================================================
   v4.3 Global editable footer
========================================================= */

/* Hide old editable footer blocks now that the footer is global. */
body.msf-theme :where(.entry-content, .wp-site-blocks, main) > .msf-footer-cta,
body.msf-theme :where(.entry-content, .wp-site-blocks, main) .msf-footer-cta {
  display: none !important;
}

/* Keep parent/theme footer hidden; global footer replaces it. */
body.msf-theme :where(.site-footer, #colophon, footer.site-footer) {
  display: none !important;
}

/* Global footer solid rectangle. */
body.msf-theme .msf-global-footer {
  width: 100% !important;
  margin: 0 !important;
  padding: clamp(56px, 7vw, 92px) 0 clamp(34px, 5vw, 58px) !important;
  background: #b14a37 !important;
  color: #ffffff !important;
  text-align: left !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.msf-theme .msf-global-footer,
body.msf-theme .msf-global-footer * {
  box-sizing: border-box !important;
}

body.msf-theme .msf-global-footer a {
  color: #ffffff !important;
  text-decoration: none !important;
}

body.msf-theme .msf-global-footer-inner {
  width: min(calc(100% - 40px), 1080px) !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: minmax(260px, 1.35fr) minmax(150px, .7fr) minmax(170px, .8fr) !important;
  gap: clamp(30px, 5vw, 76px) !important;
  align-items: start !important;
}

body.msf-theme .msf-global-footer-logo {
  display: inline-block !important;
  line-height: 0 !important;
}

body.msf-theme .msf-global-footer-logo img {
  display: block !important;
  width: min(280px, 82vw) !important;
  max-width: 280px !important;
  height: auto !important;
  margin: 0 0 1.05rem !important;
  filter: none !important;
}

body.msf-theme .msf-global-footer-mission {
  max-width: 36rem !important;
  margin: 0 0 1.35rem !important;
  color: #ffffff !important;
  font-size: clamp(1rem, 1.1vw, 1.125rem) !important;
  line-height: 1.58 !important;
  font-weight: 650 !important;
}

body.msf-theme .msf-global-footer-col h2 {
  margin: 0 0 .9rem !important;
  padding: 0 !important;
  color: #ffffff !important;
  font-family: inherit !important;
  font-size: clamp(1.1rem, 1.5vw, 1.35rem) !important;
  line-height: 1.1 !important;
  font-weight: 900 !important;
  letter-spacing: .01em !important;
  text-transform: none !important;
}

body.msf-theme .msf-global-footer-menu {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  gap: .55rem !important;
}

body.msf-theme .msf-global-footer-menu li {
  margin: 0 !important;
  padding: 0 !important;
  font-size: 1rem !important;
  line-height: 1.35 !important;
}

body.msf-theme .msf-global-footer-menu a,
body.msf-theme .msf-global-footer-bottom a {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 32px !important;
  color: #ffffff !important;
  font-weight: 850 !important;
  line-height: 1.35 !important;
  text-decoration: none !important;
  border-bottom: 2px solid transparent !important;
}

body.msf-theme .msf-global-footer-menu a:hover,
body.msf-theme .msf-global-footer-menu a:focus-visible,
body.msf-theme .msf-global-footer-bottom a:hover,
body.msf-theme .msf-global-footer-bottom a:focus-visible {
  color: #f5e3a7 !important;
  border-bottom-color: #f5e3a7 !important;
  outline: none !important;
}

body.msf-theme .msf-global-footer-social {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: .65rem !important;
  align-items: center !important;
  justify-content: flex-start !important;
  margin-top: 1.25rem !important;
}

body.msf-theme .msf-global-footer-social a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  min-height: 46px !important;
  padding: 0 !important;
  border: 2px solid rgba(255,255,255,.78) !important;
  border-radius: 999px !important;
  background: rgba(36,31,33,.12) !important;
  color: #ffffff !important;
}

body.msf-theme .msf-global-footer-social svg {
  width: 20px !important;
  height: 20px !important;
  display: block !important;
  fill: currentColor !important;
}

body.msf-theme .msf-global-footer-social a:hover,
body.msf-theme .msf-global-footer-social a:focus-visible {
  background: #f5e3a7 !important;
  border-color: #f5e3a7 !important;
  color: #241f21 !important;
  outline: 3px solid rgba(255,255,255,.45) !important;
  outline-offset: 3px !important;
}

body.msf-theme .msf-global-footer-bottom {
  width: min(calc(100% - 40px), 1080px) !important;
  margin: clamp(32px, 5vw, 56px) auto 0 !important;
  padding-top: 1.25rem !important;
  border-top: 1px solid rgba(255,255,255,.28) !important;
  color: #ffffff !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: .65rem 1.35rem !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}

body.msf-theme .msf-global-footer-bottom p {
  margin: 0 !important;
  color: #ffffff !important;
  font-size: clamp(.92rem, 1vw, 1rem) !important;
  line-height: 1.5 !important;
}

body.msf-theme .msf-global-footer-bottom nav {
  display: inline-flex !important;
  flex-wrap: wrap !important;
  gap: .65rem 1.35rem !important;
  align-items: center !important;
  justify-content: center !important;
}

@media (max-width: 860px) {
  body.msf-theme .msf-global-footer {
    padding-top: clamp(46px, 8vw, 70px) !important;
    text-align: center !important;
  }

  body.msf-theme .msf-global-footer-inner {
    grid-template-columns: 1fr !important;
    gap: 2.2rem !important;
    text-align: center !important;
  }

  body.msf-theme .msf-global-footer-logo img,
  body.msf-theme .msf-global-footer-mission {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.msf-theme .msf-global-footer-menu {
    justify-items: center !important;
  }

  body.msf-theme .msf-global-footer-social {
    justify-content: center !important;
  }
}

@media (max-width: 480px) {
  body.msf-theme .msf-global-footer-logo img {
    max-width: 260px !important;
  }

  body.msf-theme .msf-global-footer-bottom,
  body.msf-theme .msf-global-footer-bottom nav {
    flex-direction: column !important;
  }
}

/* =========================================================
   v4.4 Layout QA + mobile refinements
   Removes Free page bullets, closes footer gaps, normalizes spacing.
========================================================= */

/* Free / product grid: remove stray dots above images */
body.msf-theme :where(
  .products,
  ul.products,
  .wc-block-grid__products,
  .wp-block-post-template,
  .wp-block-query ul,
  .wp-block-latest-posts
) {
  list-style: none !important;
  padding-left: 0 !important;
}

body.msf-theme :where(
  .products li.product,
  .wc-block-grid__product,
  .wp-block-post,
  .wp-block-post-template li,
  .wp-block-latest-posts li
) {
  list-style: none !important;
}

body.msf-theme :where(
  .products li.product,
  .wc-block-grid__product,
  .wp-block-post,
  .wp-block-post-template li,
  .wp-block-latest-posts li
)::marker {
  content: "" !important;
  display: none !important;
  font-size: 0 !important;
}

body.msf-theme :where(
  .products li.product,
  .wc-block-grid__product,
  .wp-block-post,
  .wp-block-post-template li,
  .wp-block-latest-posts li
)::before {
  content: none !important;
  display: none !important;
}

/* Remove unwanted gaps before global footer */
body.msf-theme .site-content,
body.msf-theme .content-area,
body.msf-theme main,
body.msf-theme .entry-content {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

body.msf-theme .entry-content > :last-child,
body.msf-theme main > :last-child,
body.msf-theme .site-main > :last-child,
body.msf-theme .wp-site-blocks > :last-child {
  margin-bottom: 0 !important;
}

body.msf-theme .entry-content > :where(.alignfull,.msf-alignfull,.msf-full-bleed,.msf-section,.msf-section-cream,.msf-section-aqua,.msf-section-coral,.msf-section-marigold,.msf-section-plum):last-child {
  margin-bottom: 0 !important;
  padding-bottom: clamp(56px, 7vw, 92px) !important;
}

body.msf-theme .msf-global-footer {
  margin-top: 0 !important;
}

body.msf-theme .entry-content > :where(.wp-block-spacer,.wp-block-separator):last-child {
  display: none !important;
}

/* Consistent section rhythm across pages */
body.msf-theme :where(.msf-section,.msf-section-cream,.msf-section-aqua,.msf-section-coral,.msf-section-marigold,.msf-section-plum) {
  padding-top: clamp(56px, 7vw, 92px) !important;
  padding-bottom: clamp(56px, 7vw, 92px) !important;
}

body.msf-theme :where(.msf-section,.msf-section-cream,.msf-section-aqua,.msf-section-coral,.msf-section-marigold,.msf-section-plum) + :where(.msf-section,.msf-section-cream,.msf-section-aqua,.msf-section-coral,.msf-section-marigold,.msf-section-plum) {
  margin-top: 0 !important;
}

body.msf-theme :where(.msf-two-col,.msf-feature-row,.msf-text-image-row,.wp-block-columns.is-layout-flex) {
  gap: clamp(28px, 5vw, 72px) !important;
}

body.msf-theme :where(.msf-two-col img,.msf-feature-row img,.msf-text-image-row img) {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  box-shadow: none !important;
}

/* Navigation / focus / touch targets */
body.msf-theme :where(a, button, input, textarea, select, summary):focus-visible {
  outline: 3px solid #f5d33d !important;
  outline-offset: 3px !important;
}

body.msf-theme :where(.wp-block-button__link, .button, button, input[type="submit"]) {
  min-height: 44px !important;
}

/* Mobile cards and section sizing */
@media (max-width: 767px) {
  body.msf-theme :where(.msf-youtube-section .wp-block-columns,.msf-resources-section .wp-block-columns,.msf-card-scroll,.msf-resource-scroll,.msf-youtube-scroll,.products,.wc-block-grid__products) {
    scroll-padding-left: 20px !important;
  }

  body.msf-theme :where(.msf-youtube-section .wp-block-column,.msf-resources-section .wp-block-column,.msf-card-scroll > *,.msf-resource-scroll > *,.msf-youtube-scroll > *,.products li.product,.wc-block-grid__product) {
    min-width: min(82vw, 360px) !important;
  }

  body.msf-theme :where(.msf-partners-section,.trusted-partners) :where(.slick-slide,.swiper-slide,.wp-block-image) {
    width: 33.333% !important;
    max-width: 33.333% !important;
    flex: 0 0 33.333% !important;
  }

  body.msf-theme :where(.msf-partners-section,.trusted-partners) img {
    max-height: 64px !important;
    object-fit: contain !important;
  }

  body.msf-theme :where(.msf-section,.msf-section-cream,.msf-section-aqua,.msf-section-coral,.msf-section-marigold,.msf-section-plum) {
    padding-top: clamp(44px, 10vw, 64px) !important;
    padding-bottom: clamp(44px, 10vw, 64px) !important;
  }

  body.msf-theme h1,
  body.msf-theme .has-x-large-font-size {
    font-size: clamp(2.2rem, 10vw, 3.6rem) !important;
    line-height: 1.02 !important;
  }

  body.msf-theme h2 {
    font-size: clamp(1.9rem, 8vw, 3rem) !important;
    line-height: 1.05 !important;
  }

  body.msf-theme p {
    font-size: clamp(1rem, 4vw, 1.125rem) !important;
    line-height: 1.6 !important;
  }
}

/* Footer polish after global footer rollout */
body.msf-theme .msf-global-footer {
  padding-top: clamp(52px, 7vw, 78px) !important;
  padding-bottom: clamp(30px, 5vw, 48px) !important;
}

body.msf-theme .msf-global-footer-inner {
  align-items: start !important;
}

body.msf-theme .msf-global-footer-logo img {
  margin-bottom: 1rem !important;
}

@media (min-width: 861px) {
  body.msf-theme .msf-global-footer-inner {
    grid-template-columns: minmax(280px, 1.25fr) minmax(150px, .65fr) minmax(170px, .75fr) !important;
  }
}

/* =========================================================
   v4.5 Product/resource card bullet fix
   Stronger WooCommerce + Gutenberg grid bullet removal.
========================================================= */

/* Remove markers from every known product/resource list wrapper. */
body.msf-theme :is(
  ul.products,
  .products,
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .wc-block-grid__products,
  .wp-block-woocommerce-product-collection ul,
  .wp-block-product-new ul,
  .wp-block-product-best-sellers ul,
  .wp-block-product-on-sale ul,
  .wp-block-product-category ul,
  .wp-block-post-template,
  .wp-block-query ul,
  .wp-block-latest-posts
) {
  list-style: none !important;
  list-style-type: none !important;
  margin-left: 0 !important;
  padding-left: 0 !important;
}

/* Remove markers and generated bullets from product/resource cards. */
body.msf-theme :is(
  ul.products li,
  ul.products li.product,
  .products li,
  .products li.product,
  .woocommerce ul.products li.product,
  .woocommerce-page ul.products li.product,
  .wc-block-grid__product,
  .wp-block-woocommerce-product-collection li,
  .wp-block-product-new li,
  .wp-block-product-best-sellers li,
  .wp-block-product-on-sale li,
  .wp-block-product-category li,
  .wp-block-post-template li,
  .wp-block-query li,
  .wp-block-latest-posts li
) {
  list-style: none !important;
  list-style-type: none !important;
  margin-left: 0 !important;
}

/* Kill marker pseudo-elements. */
body.msf-theme :is(
  ul.products li,
  ul.products li.product,
  .products li,
  .products li.product,
  .woocommerce ul.products li.product,
  .woocommerce-page ul.products li.product,
  .wc-block-grid__product,
  .wp-block-woocommerce-product-collection li,
  .wp-block-product-new li,
  .wp-block-product-best-sellers li,
  .wp-block-product-on-sale li,
  .wp-block-product-category li,
  .wp-block-post-template li,
  .wp-block-query li,
  .wp-block-latest-posts li
)::marker {
  content: "" !important;
  display: none !important;
  font-size: 0 !important;
}

/* Some themes use ::before instead of a true list marker. */
body.msf-theme :is(
  ul.products li,
  ul.products li.product,
  .products li,
  .products li.product,
  .woocommerce ul.products li.product,
  .woocommerce-page ul.products li.product,
  .wc-block-grid__product,
  .wp-block-woocommerce-product-collection li,
  .wp-block-product-new li,
  .wp-block-product-best-sellers li,
  .wp-block-product-on-sale li,
  .wp-block-product-category li,
  .wp-block-post-template li,
  .wp-block-query li,
  .wp-block-latest-posts li
)::before {
  content: none !important;
  display: none !important;
}

/* Extra guard: if the dot is coming from the first child link/image wrapper. */
body.msf-theme :is(
  ul.products li.product > a:first-child,
  .products li.product > a:first-child,
  .woocommerce ul.products li.product > a:first-child,
  .woocommerce-page ul.products li.product > a:first-child,
  .wc-block-grid__product > a:first-child,
  .wp-block-woocommerce-product-collection li > a:first-child
)::before,
body.msf-theme :is(
  ul.products li.product > figure:first-child,
  .products li.product > figure:first-child,
  .woocommerce ul.products li.product > figure:first-child,
  .woocommerce-page ul.products li.product > figure:first-child,
  .wc-block-grid__product > figure:first-child,
  .wp-block-woocommerce-product-collection li > figure:first-child
)::before {
  content: none !important;
  display: none !important;
}

/* If product cards are inside columns/list blocks, prevent parent list styling from leaking. */
body.msf-theme .entry-content :is(.wp-block-column, .wp-block-group, .wp-block-cover):has(:is(.products, .wc-block-grid__products, .wp-block-woocommerce-product-collection)) {
  list-style: none !important;
}

body.msf-theme .entry-content :is(.wp-block-column, .wp-block-group, .wp-block-cover):has(:is(.products, .wc-block-grid__products, .wp-block-woocommerce-product-collection))::before {
  content: none !important;
  display: none !important;
}

/* Product/resource images should sit cleanly inside cards. */
body.msf-theme :is(
  ul.products li.product img,
  .products li.product img,
  .woocommerce ul.products li.product img,
  .woocommerce-page ul.products li.product img,
  .wc-block-grid__product img,
  .wp-block-woocommerce-product-collection img
) {
  display: block !important;
  margin-top: 0 !important;
}

/* =========================================================
   v4.9 Mobile stabilization: video heroes, partner scrollers,
   footer mobile, swipe cues, optional More menu, desktop video modal
========================================================= */

/* ---------- Interior video heroes: standard desktop + safe mobile ---------- */
body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) {
  position: relative !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  overflow: hidden !important;
  background: #1f1f1f !important;
  border-radius: 0 !important;
}

body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) :is(.wp-block-embed,.wp-block-embed__wrapper,figure,.wp-block-video) {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
}

body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) iframe,
body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) video {
  display: block !important;
  width: 100vw !important;
  max-width: 100vw !important;
  height: clamp(420px, 56.25vw, 760px) !important;
  min-height: 0 !important;
  object-fit: cover !important;
  object-position: center center !important;
  border: 0 !important;
  border-radius: 0 !important;
}

/* On phones, YouTube must be usable. No full-screen/cropped hero. */
@media (max-width: 767px) {
  body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #1f1f1f !important;
  }

  body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) :is(.wp-block-embed,.wp-block-embed__wrapper,figure,.wp-block-video) {
    position: relative !important;
    display: block !important;
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
  }

  body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) .wp-embed-aspect-16-9 .wp-block-embed__wrapper::before {
    content: none !important;
    display: none !important;
    padding: 0 !important;
  }

  body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) iframe,
  body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) video {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
  }

  /* Hide decorative scroll cue on mobile because it was blocking video controls and content. */
  body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen)::after {
    content: none !important;
    display: none !important;
  }
}

/* ---------- Home Program/Story embedded videos: same size/spacing ---------- */
body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(.msf-video-frame),
body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(iframe),
body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(video) {
  min-height: clamp(430px, 45vw, 560px) !important;
  padding-top: clamp(72px, 8vw, 108px) !important;
  padding-bottom: clamp(72px, 8vw, 108px) !important;
  display: flex !important;
  align-items: center !important;
}

body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(.msf-video-frame) .wp-block-columns,
body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(iframe) .wp-block-columns,
body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(video) .wp-block-columns {
  width: min(calc(100% - 40px), 1080px) !important;
  margin-inline: auto !important;
  align-items: center !important;
  gap: clamp(40px, 6vw, 84px) !important;
}

body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral) .msf-video-frame,
body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral) .wp-block-embed,
body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral) .wp-block-video {
  width: 100% !important;
  max-width: 540px !important;
  margin-inline: auto !important;
}

body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral) iframe,
body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral) video {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9 !important;
  border-radius: 10px !important;
  object-fit: contain !important;
}

@media (max-width: 767px) {
  body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(.msf-video-frame),
  body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(iframe),
  body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(video) {
    min-height: 0 !important;
    padding-top: 52px !important;
    padding-bottom: 52px !important;
  }

  body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(.msf-video-frame) .wp-block-columns,
  body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(iframe) .wp-block-columns,
  body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(video) .wp-block-columns {
    gap: 26px !important;
  }
}

/* ---------- Trusted Partners: independent horizontal scroll, no dots ---------- */
body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) {
  position: relative !important;
}

body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-dots,.swiper-pagination,.splide__pagination,.gutenbee-slider-dots,.gutenbee-slider-pagination,.tns-nav,.glide__bullets,.flickity-page-dots) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-list,.swiper,.swiper-container,.splide__track,.tns-outer,.gutenbee-slider-wrapper) {
  overflow: hidden !important;
}

body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) img {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: 160px !important;
  max-height: 96px !important;
  object-fit: contain !important;
}

@media (max-width: 767px) {
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-list,.swiper,.swiper-container,.splide__track,.gutenbee-slider-wrapper,.wp-block-gallery,.wp-block-columns) {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    padding-bottom: 10px !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-track,.swiper-wrapper,.splide__list,.wp-block-gallery,.wp-block-columns) {
    display: flex !important;
    gap: 10px !important;
    align-items: center !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-slide,.swiper-slide,.splide__slide,.wp-block-image,.wp-block-column,figure) {
    flex: 0 0 calc((100vw - 56px) / 3) !important;
    min-width: calc((100vw - 56px) / 3) !important;
    max-width: calc((100vw - 56px) / 3) !important;
    scroll-snap-align: start !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 8px !important;
    box-sizing: border-box !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) img {
    max-width: 82px !important;
    max-height: 64px !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos)::after {
    content: "Swipe to see more →";
    display: block;
    margin-top: 12px;
    text-align: center;
    color: var(--msf-teal-dark, #007a80);
    font-weight: 800;
    font-size: .9rem;
  }
}

/* ---------- Mobile swipe cues for horizontal video/resource sections ---------- */
@media (max-width: 767px) {
  body.msf-theme :is(.msf-youtube-carousel-shell,.msf-mobile-scroll,.msf-resource-scroll,.msf-card-scroll) {
    position: relative !important;
  }

  body.msf-theme :is(.msf-youtube-carousel,.msf-resource-scroll,.msf-card-scroll,.products,.wc-block-grid__products) {
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
  }

  body.msf-theme :is(.msf-youtube-carousel-shell,.msf-mobile-scroll,.msf-resource-scroll,.msf-card-scroll)::after {
    content: "Swipe to explore →";
    display: block;
    text-align: center;
    color: var(--msf-teal-dark, #007a80);
    font-size: .9rem;
    font-weight: 800;
    margin: 14px auto 0;
  }

  body.msf-theme :is(.msf-youtube-carousel-shell,.msf-mobile-scroll,.msf-resource-scroll,.msf-card-scroll)::before {
    content: "";
    position: absolute;
    right: 0;
    top: 42%;
    width: 42px;
    height: 38%;
    pointer-events: none;
    z-index: 2;
    background: linear-gradient(90deg, rgba(248,243,229,0), rgba(248,243,229,.94));
  }

  body.msf-theme .msf-resources-section::before,
  body.msf-theme .msf-section-sky::before {
    background: linear-gradient(90deg, rgba(219,242,240,0), rgba(219,242,240,.94));
  }
}

/* ---------- Footer: mobile optimized, no Explore/Connect headings ---------- */
body.msf-theme .msf-global-footer-col > h2 {
  display: none !important;
}

@media (max-width: 767px) {
  body.msf-theme .msf-global-footer {
    padding: 44px 24px 34px !important;
    text-align: center !important;
  }

  body.msf-theme .msf-global-footer-inner {
    display: block !important;
    max-width: 420px !important;
    margin: 0 auto !important;
  }

  body.msf-theme .msf-global-footer-logo img {
    max-width: 210px !important;
    margin: 0 auto 16px !important;
  }

  body.msf-theme .msf-global-footer-mission {
    max-width: 330px !important;
    margin: 0 auto 22px !important;
    font-size: 1rem !important;
    line-height: 1.45 !important;
  }

  body.msf-theme .msf-global-footer-social {
    justify-content: center !important;
    gap: 12px !important;
    margin: 0 auto 28px !important;
  }

  body.msf-theme .msf-global-footer-social a {
    width: 42px !important;
    height: 42px !important;
  }

  body.msf-theme .msf-global-footer-menu {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px 18px !important;
    margin: 0 auto 10px !important;
    padding: 0 !important;
    max-width: 330px !important;
  }

  body.msf-theme .msf-global-footer-menu li {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }

  body.msf-theme .msf-global-footer-menu a {
    display: block !important;
    padding: 6px 2px !important;
    font-size: .98rem !important;
    line-height: 1.2 !important;
  }

  body.msf-theme .msf-global-footer-bottom {
    max-width: 360px !important;
    margin: 28px auto 0 !important;
    padding-top: 22px !important;
    font-size: .92rem !important;
    line-height: 1.45 !important;
  }

  body.msf-theme .msf-global-footer-bottom nav {
    display: flex !important;
    justify-content: center !important;
    gap: 18px !important;
    flex-wrap: wrap !important;
    margin-top: 10px !important;
  }
}

/* ---------- Optional desktop More menu ---------- */
.msf-more-menu {
  display: none;
}

@media (min-width: 1024px) {
  .msf-more-menu {
    display: block;
    position: fixed;
    top: 22px;
    right: max(22px, calc((100vw - 1180px) / 2));
    z-index: 9998;
  }

  .admin-bar .msf-more-menu {
    top: 54px;
  }

  .msf-more-menu-toggle {
    width: 46px;
    height: 46px;
    border-radius: 999px;
    border: 2px solid rgba(255,255,255,.62);
    background: rgba(0,0,0,.26);
    color: #fff;
    display: grid;
    place-items: center;
    cursor: pointer;
  }

  .msf-more-menu-toggle span:not(.screen-reader-text),
  .msf-more-menu-toggle span:not(.screen-reader-text)::before,
  .msf-more-menu-toggle span:not(.screen-reader-text)::after {
    display: block;
    width: 20px;
    height: 2px;
    background: currentColor;
    border-radius: 99px;
    content: "";
  }

  .msf-more-menu-toggle span:not(.screen-reader-text)::before {
    transform: translateY(-7px);
  }

  .msf-more-menu-toggle span:not(.screen-reader-text)::after {
    transform: translateY(5px);
  }

  .msf-more-menu-panel {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    min-width: 220px;
    padding: 14px;
    border-radius: 18px;
    background: #241f21;
    box-shadow: 0 16px 34px rgba(0,0,0,.24);
  }

  .msf-more-menu-panel[hidden] {
    display: none !important;
  }

  .msf-more-menu-list {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .msf-more-menu-list a {
    display: block;
    padding: 10px 12px;
    color: #fff !important;
    text-decoration: none !important;
    font-weight: 900;
  }

  .msf-more-menu-list a:hover,
  .msf-more-menu-list a:focus-visible {
    color: #f5d33d !important;
  }
}

/* ---------- Desktop YouTube lightbox ---------- */
.msf-video-modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: clamp(18px, 4vw, 54px);
  background: rgba(0,0,0,.78);
}

.msf-video-modal.is-open {
  display: flex;
}

.msf-video-modal-inner {
  position: relative;
  width: min(100%, 980px);
  aspect-ratio: 16 / 9;
  background: #000;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 28px 70px rgba(0,0,0,.42);
}

.msf-video-modal iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.msf-video-modal-close {
  position: absolute;
  top: -48px;
  right: 0;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 2px solid #fff;
  background: #241f21;
  color: #fff;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
}

@media (max-width: 767px) {
  .msf-video-modal {
    display: none !important;
  }
}

/* =========================================================
   v5.0 Mobile cleanup + menu overlay + partner scroller rebuild
========================================================= */

/* ---------- Mobile menu: use one clean Mr. Stevey overlay ---------- */
.msf-mobile-menu-button,
.msf-mobile-menu-overlay {
  display: none;
}

@media (max-width: 1023px) {
  body.msf-theme .site-header :is(.navbar-toggle, .menu-toggle, .hamburger, .wp-block-navigation__responsive-container-open),
  body.msf-theme :is(.navbar-toggle, .menu-toggle).msf-hide-default-toggle {
    display: none !important;
  }

  .msf-mobile-menu-button {
    display: grid;
    place-items: center;
    position: fixed;
    top: 22px;
    right: 22px;
    z-index: 100002;
    width: 48px;
    height: 48px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #fff;
    cursor: pointer;
  }

  .admin-bar .msf-mobile-menu-button {
    top: 54px;
  }

  .msf-mobile-menu-button span:not(.screen-reader-text),
  .msf-mobile-menu-button span:not(.screen-reader-text)::before,
  .msf-mobile-menu-button span:not(.screen-reader-text)::after {
    content: "";
    display: block;
    width: 28px;
    height: 3px;
    border-radius: 99px;
    background: currentColor;
  }

  .msf-mobile-menu-button span:not(.screen-reader-text)::before {
    transform: translateY(-9px);
  }

  .msf-mobile-menu-button span:not(.screen-reader-text)::after {
    transform: translateY(6px);
  }

  .msf-mobile-menu-overlay:not([hidden]) {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 100001;
  }

  .msf-mobile-menu-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.55);
  }

  .msf-mobile-menu-drawer {
    position: absolute;
    top: 0;
    right: 0;
    width: min(86vw, 390px);
    height: 100%;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background: #111;
    color: #fff;
    padding: 76px 28px 36px;
    box-shadow: -18px 0 42px rgba(0,0,0,.32);
  }

  .msf-mobile-menu-close {
    position: absolute;
    top: 20px;
    left: 24px;
    width: 48px;
    height: 48px;
    border: 0;
    background: transparent;
    color: #fff;
    font-size: 52px;
    line-height: 1;
    cursor: pointer;
  }

  .msf-mobile-menu-overlay-list {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .msf-mobile-menu-overlay-list li {
    margin: 0;
    padding: 0;
    list-style: none;
    border-bottom: 1px solid rgba(255,255,255,.18);
  }

  .msf-mobile-menu-overlay-list a {
    display: block;
    color: #fff !important;
    text-decoration: none !important;
    font-weight: 900;
    font-size: clamp(1.65rem, 7vw, 2.45rem);
    line-height: 1.1;
    letter-spacing: .03em;
    text-transform: uppercase;
    padding: 18px 0;
  }

  .msf-mobile-menu-overlay-list .current-menu-item > a,
  .msf-mobile-menu-overlay-list a:hover,
  .msf-mobile-menu-overlay-list a:focus-visible {
    color: #2aa7ad !important;
  }
}

/* ---------- Optional desktop More menu: do not float/overlap by default ---------- */
.msf-more-menu {
  display: none !important;
}

@media (min-width: 1024px) {
  .msf-more-inline {
    position: relative;
    display: inline-flex;
    align-items: center;
  }

  .msf-more-inline-toggle {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 999px;
    background: var(--msf-teal, #087E86);
    color: #fff;
    cursor: pointer;
    margin-left: 14px;
  }

  .msf-more-inline-toggle span,
  .msf-more-inline-toggle span::before,
  .msf-more-inline-toggle span::after {
    content: "";
    display: block;
    width: 20px;
    height: 2px;
    border-radius: 99px;
    background: currentColor;
  }

  .msf-more-inline-toggle span::before {
    transform: translateY(-7px);
  }

  .msf-more-inline-toggle span::after {
    transform: translateY(5px);
  }

  .msf-more-inline-panel {
    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    min-width: 220px;
    padding: 14px;
    border-radius: 18px;
    background: #111;
    box-shadow: 0 16px 34px rgba(0,0,0,.24);
    z-index: 9999;
  }

  .msf-more-inline-panel[hidden] {
    display: none !important;
  }

  .msf-more-inline-panel ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .msf-more-inline-panel a {
    display: block;
    padding: 10px 12px;
    color: #fff !important;
    text-decoration: none !important;
    font-weight: 900;
  }

  .msf-more-inline-panel a:hover,
  .msf-more-inline-panel a:focus-visible {
    color: #f5d33d !important;
  }
}

/* ---------- Interior video heroes: one reliable mobile behavior ---------- */
@media (max-width: 767px) {
  body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) {
    display: block !important;
    position: relative !important;
    left: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #111 !important;
    border-radius: 0 !important;
  }

  body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) > .wp-block-group__inner-container,
  body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) :is(.wp-block-embed,.wp-block-embed__wrapper,figure,.wp-block-video) {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    aspect-ratio: 16 / 9 !important;
    overflow: hidden !important;
    background: #111 !important;
  }

  body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) .wp-block-embed__wrapper::before {
    content: none !important;
    display: none !important;
    padding: 0 !important;
  }

  body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) iframe,
  body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) video {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
    border: 0 !important;
  }

  /* Hide mobile scroll cue inside video heroes so controls remain reachable. */
  body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) :is(.msf-scroll-cue,.msf-scroll-more,.wp-block-button),
  body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen)::after {
    display: none !important;
    content: none !important;
  }

  body.msf-theme:not(.home) :is(.msf-program-intro-band,.msf-book-intro-band,.msf-supporter-intro-band,.msf-section-cream,.msf-section-marigold,.msf-section-coral,.msf-section-aqua):first-of-type {
    padding-top: 44px !important;
  }
}

/* ---------- Home embedded videos: Program and Story exact parity ---------- */
body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(iframe),
body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(video) {
  min-height: clamp(430px, 44vw, 560px) !important;
  padding-top: clamp(70px, 8vw, 106px) !important;
  padding-bottom: clamp(70px, 8vw, 106px) !important;
  display: flex !important;
  align-items: center !important;
}

body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(iframe) .wp-block-columns,
body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(video) .wp-block-columns {
  width: min(calc(100% - 40px), 1080px) !important;
  margin-inline: auto !important;
  align-items: center !important;
  gap: clamp(40px, 6vw, 84px) !important;
}

body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(iframe) .wp-block-column,
body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(video) .wp-block-column {
  flex-basis: 50% !important;
}

body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral) :is(.wp-block-embed,.wp-block-embed__wrapper,.wp-block-video,figure) {
  width: 100% !important;
  max-width: 540px !important;
  margin-inline: auto !important;
}

body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral) iframe,
body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral) video {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9 !important;
  border-radius: 10px !important;
  object-fit: contain !important;
}

@media (min-width: 768px) {
  body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral) :is(.wp-block-embed,.wp-block-video) {
    position: relative !important;
  }

  body.home.msf-theme .msf-video-lightbox-overlay {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 10px;
    background: rgba(0,0,0,.08);
    cursor: pointer;
  }

  body.home.msf-theme .msf-video-lightbox-overlay span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 92px;
    min-height: 52px;
    padding: 0 22px;
    border-radius: 999px;
    color: #fff;
    background: rgba(0,0,0,.72);
    font-weight: 900;
  }
}

@media (max-width: 767px) {
  body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(iframe),
  body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(video) {
    min-height: 0 !important;
    padding-top: 52px !important;
    padding-bottom: 52px !important;
  }

  body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(iframe) .wp-block-columns,
  body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral):has(video) .wp-block-columns {
    gap: 26px !important;
  }

  body.home.msf-theme :is(.msf-section-aqua,.msf-section-coral) :is(.wp-block-embed,.wp-block-video) {
    max-width: 100% !important;
  }
}

/* ---------- Trusted Partners: independent mobile scroll, bigger logos, no dots ---------- */
body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-dots,.swiper-pagination,.splide__pagination,.gutenbee-slider-dots,.gutenbee-slider-pagination,.tns-nav,.glide__bullets,.flickity-page-dots) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) img {
  display: block !important;
  width: 100% !important;
  max-width: 160px !important;
  height: 88px !important;
  object-fit: contain !important;
  margin: 0 auto !important;
}

@media (max-width: 767px) {
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) {
    overflow: hidden !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-list,.swiper,.swiper-container,.splide__track,.gutenbee-slider-wrapper,.wp-block-gallery,.wp-block-columns) {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    padding: 0 18px 12px !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-track,.swiper-wrapper,.splide__list,.wp-block-gallery,.wp-block-columns) {
    display: flex !important;
    gap: 14px !important;
    align-items: stretch !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-slide,.swiper-slide,.splide__slide,.wp-block-image,.wp-block-column,figure) {
    flex: 0 0 calc((100vw - 82px) / 3) !important;
    min-width: calc((100vw - 82px) / 3) !important;
    max-width: calc((100vw - 82px) / 3) !important;
    height: 86px !important;
    scroll-snap-align: start !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 8px !important;
    box-sizing: border-box !important;
    background: #fff !important;
    border-radius: 8px !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) img {
    width: 100% !important;
    max-width: 94px !important;
    height: 64px !important;
    max-height: 64px !important;
    object-fit: contain !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos)::after {
    content: "Swipe to see more →";
    display: block;
    margin-top: 12px;
    text-align: center;
    color: var(--msf-teal-dark, #007a80);
    font-weight: 800;
    font-size: .9rem;
  }
}

/* ---------- Swipe cues: prevent duplicates and make cue clearer ---------- */
@media (max-width: 767px) {
  body.msf-theme :is(.msf-youtube-carousel-shell,.msf-mobile-scroll,.msf-resource-scroll,.msf-card-scroll)::after {
    content: none !important;
    display: none !important;
  }

  body.msf-theme :is(.msf-youtube-section,.msf-resources-section,.msf-mobile-scroll) .msf-scroll-hint {
    display: block !important;
    text-align: center;
    color: var(--msf-teal-dark, #007a80);
    font-size: .9rem;
    font-weight: 800;
    margin: 14px auto 0;
  }

  body.msf-theme :is(.msf-youtube-section,.msf-resources-section):has(.msf-scroll-hint)::after {
    content: none !important;
    display: none !important;
  }
}

/* ---------- Footer mobile polish ---------- */
@media (max-width: 767px) {
  body.msf-theme .msf-global-footer {
    padding: 42px 22px 34px !important;
  }

  body.msf-theme .msf-global-footer-logo img {
    max-width: 190px !important;
  }

  body.msf-theme .msf-global-footer-menu {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px 22px !important;
    max-width: 330px !important;
  }

  body.msf-theme .msf-global-footer-menu a {
    font-size: .95rem !important;
    padding: 5px 2px !important;
  }
}

/* =========================================================
   v5.1 Mobile polish: menu dropdowns, video strategy, partner rebuild,
   and consistent desktop lightbox behavior
========================================================= */

/* ---------- Header / mobile menu icon cleanup ---------- */
@media (max-width: 1023px) {
  body.msf-theme .msf-mobile-menu-button {
    top: 19px !important;
    right: 20px !important;
    width: 48px !important;
    height: 48px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  body.msf-theme .msf-mobile-menu-button::before {
    content: "";
    position: absolute;
    inset: 4px;
    border-radius: 999px;
    background: rgba(255,255,255,.13);
    opacity: .55;
  }

  body.msf-theme .msf-mobile-menu-button span:not(.screen-reader-text) {
    position: relative !important;
    width: 28px !important;
    height: 3px !important;
    background: #fff !important;
    border-radius: 99px !important;
  }

  body.msf-theme .msf-mobile-menu-button span:not(.screen-reader-text)::before,
  body.msf-theme .msf-mobile-menu-button span:not(.screen-reader-text)::after {
    position: absolute !important;
    left: 0 !important;
    width: 28px !important;
    height: 3px !important;
    background: #fff !important;
    border-radius: 99px !important;
    transform: none !important;
  }

  body.msf-theme .msf-mobile-menu-button span:not(.screen-reader-text)::before {
    top: -9px !important;
  }

  body.msf-theme .msf-mobile-menu-button span:not(.screen-reader-text)::after {
    top: 9px !important;
  }

  body.msf-theme .msf-mobile-menu-close {
    top: 22px !important;
    left: 26px !important;
    width: 52px !important;
    height: 52px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #fff !important;
    font-size: 0 !important;
    line-height: 1 !important;
  }

  body.msf-theme .msf-mobile-menu-close::before,
  body.msf-theme .msf-mobile-menu-close::after {
    content: "";
    position: absolute;
    left: 11px;
    top: 25px;
    width: 30px;
    height: 4px;
    border-radius: 99px;
    background: #fff;
  }

  body.msf-theme .msf-mobile-menu-close::before {
    transform: rotate(45deg);
  }

  body.msf-theme .msf-mobile-menu-close::after {
    transform: rotate(-45deg);
  }

  body.msf-theme .msf-mobile-menu-overlay-list li {
    position: relative;
  }

  body.msf-theme .msf-mobile-menu-overlay-list a {
    padding-right: 64px !important;
  }

  body.msf-theme .msf-mobile-submenu-toggle {
    position: absolute;
    top: 9px;
    right: -6px;
    width: 52px;
    height: 52px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #fff;
    cursor: pointer;
  }

  body.msf-theme .msf-mobile-submenu-toggle::before {
    content: "＋";
    font-weight: 900;
    font-size: 1.8rem;
    line-height: 1;
  }

  body.msf-theme .msf-mobile-submenu-toggle[aria-expanded="true"]::before {
    content: "–";
  }

  body.msf-theme .msf-mobile-menu-overlay-list .sub-menu {
    display: none;
    margin: 0 0 8px 0;
    padding: 0 0 0 18px;
    list-style: none;
    border-left: 3px solid #2aa7ad;
  }

  body.msf-theme .msf-mobile-menu-overlay-list .sub-menu.is-open {
    display: block;
  }

  body.msf-theme .msf-mobile-menu-overlay-list .sub-menu li {
    border-bottom: 0;
  }

  body.msf-theme .msf-mobile-menu-overlay-list .sub-menu a {
    font-size: clamp(1.15rem, 5vw, 1.55rem) !important;
    letter-spacing: .02em;
    padding: 10px 0 !important;
    text-transform: none;
  }
}

/* ---------- Interior video heroes: reduce gap and make videos consistent ---------- */
body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) + :is(.wp-block-group,.msf-section-cream,.msf-section-aqua,.msf-section-coral,.msf-section-marigold) {
  margin-top: 0 !important;
}

@media (max-width: 767px) {
  body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) {
    margin-bottom: 0 !important;
  }

  body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) + :is(.wp-block-group,.msf-section-cream,.msf-section-aqua,.msf-section-coral,.msf-section-marigold) {
    padding-top: 36px !important;
  }

  body.msf-theme:not(.home) :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-interior-fullscreen-video,.msf-video-hero-fullscreen) :is(.wp-block-embed,.wp-block-embed__wrapper,figure,.wp-block-video) {
    aspect-ratio: 16 / 9 !important;
  }
}

/* Desktop: all YouTube/video embeds get the same popup affordance. */
@media (min-width: 768px) {
  body.msf-theme .msf-lightbox-ready {
    position: relative !important;
  }

  body.msf-theme .msf-video-lightbox-overlay {
    position: absolute;
    inset: 0;
    z-index: 4;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: inherit;
    background: rgba(0,0,0,.04);
    cursor: pointer;
  }

  body.msf-theme .msf-video-lightbox-overlay span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 92px;
    min-height: 52px;
    padding: 0 22px;
    border-radius: 999px;
    color: #fff;
    background: rgba(0,0,0,.76);
    font-weight: 900;
  }

  body.msf-theme .msf-video-lightbox-overlay span::before {
    content: "▶";
    margin-right: .45em;
  }
}

/* ---------- Book / Program hero relationship: video leads, image supports ---------- */
@media (min-width: 768px) {
  body.msf-theme :is(.msf-book-intro-band,.msf-program-intro-band) .wp-block-image img {
    max-width: min(100%, 460px) !important;
  }
}

@media (max-width: 767px) {
  body.msf-theme :is(.msf-book-intro-band,.msf-program-intro-band) .wp-block-image img {
    max-width: min(86vw, 330px) !important;
    margin-inline: auto !important;
  }

  body.msf-theme :is(.msf-book-intro-band,.msf-program-intro-band) h1,
  body.msf-theme :is(.msf-book-intro-band,.msf-program-intro-band) h2 {
    margin-top: 22px !important;
  }
}

/* ---------- Trusted Partners rebuild: bigger, readable, independently scrollable ---------- */
body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) {
  overflow: hidden !important;
}

body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-dots,.swiper-pagination,.splide__pagination,.gutenbee-slider-dots,.gutenbee-slider-pagination,.tns-nav,.glide__bullets,.flickity-page-dots) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.wp-block-gallery,.wp-block-columns,.slick-list,.swiper,.swiper-container,.splide__track,.gutenbee-slider-wrapper) {
  max-width: 1120px !important;
  margin-inline: auto !important;
}

@media (min-width: 768px) {
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.wp-block-gallery,.wp-block-columns) {
    display: flex !important;
    justify-content: center !important;
    gap: 24px !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.wp-block-image,.wp-block-column,figure) {
    flex: 0 0 170px !important;
    width: 170px !important;
    min-height: 116px !important;
    padding: 14px !important;
    background: #fff !important;
    border-radius: 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) img {
    width: 100% !important;
    max-width: 142px !important;
    height: 84px !important;
    max-height: 84px !important;
    object-fit: contain !important;
  }
}

@media (max-width: 767px) {
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) {
    padding-inline: 0 !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-list,.swiper,.swiper-container,.splide__track,.gutenbee-slider-wrapper,.wp-block-gallery,.wp-block-columns) {
    display: flex !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    gap: 12px !important;
    padding: 0 18px 12px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-track,.swiper-wrapper,.splide__list) {
    display: flex !important;
    gap: 12px !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-slide,.swiper-slide,.splide__slide,.wp-block-image,.wp-block-column,figure) {
    flex: 0 0 132px !important;
    width: 132px !important;
    min-width: 132px !important;
    max-width: 132px !important;
    height: 100px !important;
    min-height: 100px !important;
    scroll-snap-align: start !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px !important;
    box-sizing: border-box !important;
    background: #fff !important;
    border-radius: 10px !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) img {
    display: block !important;
    width: 100% !important;
    max-width: 108px !important;
    height: 76px !important;
    max-height: 76px !important;
    object-fit: contain !important;
    margin: 0 auto !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos)::after {
    content: "Swipe to see more →";
    display: block;
    margin-top: 12px;
    text-align: center;
    color: var(--msf-teal-dark, #007a80);
    font-weight: 800;
    font-size: .92rem;
  }
}

/* ---------- Bring page: clearer mobile hierarchy ---------- */
@media (max-width: 767px) {
  body.msf-theme .msf-event-menu .wp-block-column,
  body.msf-theme :is(.msf-pricing-card,.msf-support-card,.msf-event-card) {
    padding: 24px 22px !important;
    border-radius: 16px !important;
  }

  body.msf-theme .msf-event-menu h3,
  body.msf-theme :is(.msf-pricing-card,.msf-support-card,.msf-event-card) h3 {
    font-size: 1.35rem !important;
    line-height: 1.05 !important;
    margin-bottom: 16px !important;
  }
}

/* ---------- Home: reduce cramped mobile sections and improve scan rhythm ---------- */
@media (max-width: 767px) {
  body.home.msf-theme :is(.msf-section-cream,.msf-section-aqua,.msf-section-coral,.msf-section-marigold,.msf-section-sky) {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }

  body.home.msf-theme .msf-youtube-section,
  body.home.msf-theme .msf-resources-section {
    padding-top: 54px !important;
    padding-bottom: 54px !important;
  }

  body.home.msf-theme :is(.msf-youtube-section,.msf-resources-section) h2 {
    margin-bottom: 10px !important;
  }
}

/* ---------- Remove duplicate swipe hints ---------- */
@media (max-width: 767px) {
  body.msf-theme :is(.msf-youtube-carousel-shell,.msf-mobile-scroll,.msf-resource-scroll,.msf-card-scroll)::after {
    content: none !important;
    display: none !important;
  }

  body.msf-theme .msf-scroll-hint + .msf-scroll-hint {
    display: none !important;
  }
}

/* =========================================================
   v5.2 Focused fixes: Cover video hero button, modal close,
   mobile dropdowns, larger Trusted Partners, no swipe text
========================================================= */

/* ---------- Cover Video Hero + Play Video button ---------- */
body.msf-theme .msf-interior-video-hero.wp-block-cover,
body.msf-theme .wp-block-cover.msf-interior-video-hero,
body.msf-theme .msf-program-video-hero.wp-block-cover,
body.msf-theme .wp-block-cover.msf-program-video-hero,
body.msf-theme .msf-video-hero-fullscreen.wp-block-cover,
body.msf-theme .wp-block-cover.msf-video-hero-fullscreen {
  min-height: clamp(420px, 56vw, 740px) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

body.msf-theme .msf-interior-video-hero.wp-block-cover .wp-block-cover__inner-container,
body.msf-theme .wp-block-cover.msf-interior-video-hero .wp-block-cover__inner-container,
body.msf-theme .msf-program-video-hero.wp-block-cover .wp-block-cover__inner-container,
body.msf-theme .wp-block-cover.msf-program-video-hero .wp-block-cover__inner-container,
body.msf-theme .msf-video-hero-fullscreen.wp-block-cover .wp-block-cover__inner-container,
body.msf-theme .wp-block-cover.msf-video-hero-fullscreen .wp-block-cover__inner-container {
  width: 100% !important;
  max-width: 1180px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}

/* Button class can go on the Button block OR Buttons wrapper. JS also auto-adds this class when text is Play Video. */
body.msf-theme .msf-play-video-button,
body.msf-theme .wp-block-button.msf-play-video-button,
body.msf-theme .wp-block-buttons.msf-play-video-button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.msf-theme .msf-play-video-button .wp-block-button__link,
body.msf-theme .wp-block-button.msf-play-video-button .wp-block-button__link,
body.msf-theme .wp-block-buttons.msf-play-video-button .wp-block-button__link,
body.msf-theme .wp-block-cover .msf-play-video-button .wp-block-button__link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  background: #1f1d1f !important;
  color: #ffffff !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 15px 28px !important;
  min-height: 52px !important;
  min-width: 178px !important;
  font-family: inherit !important;
  font-size: 1rem !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  letter-spacing: .035em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

body.msf-theme .msf-play-video-button .wp-block-button__link::before,
body.msf-theme .wp-block-button.msf-play-video-button .wp-block-button__link::before,
body.msf-theme .wp-block-buttons.msf-play-video-button .wp-block-button__link::before {
  content: "▶" !important;
  display: inline-block !important;
  font-size: .9em !important;
  line-height: 1 !important;
  transform: translateY(-1px);
}

body.msf-theme .msf-play-video-button .wp-block-button__link:hover,
body.msf-theme .msf-play-video-button .wp-block-button__link:focus-visible,
body.msf-theme .wp-block-button.msf-play-video-button .wp-block-button__link:hover,
body.msf-theme .wp-block-button.msf-play-video-button .wp-block-button__link:focus-visible {
  background: #007a80 !important;
  color: #ffffff !important;
  outline: 3px solid #f5d33d !important;
  outline-offset: 3px !important;
}

/* Option: add msf-hide-scroll-button to hero Group/Cover to remove Scroll to learn more. */
body.msf-theme .msf-hide-scroll-button :is(.msf-scroll-more,.msf-scroll-cue,.scroll-to-learn-more,.wp-block-button:has(a[href^="#"])),
body.msf-theme .msf-no-scroll-cue :is(.msf-scroll-more,.msf-scroll-cue,.scroll-to-learn-more,.wp-block-button:has(a[href^="#"])) {
  display: none !important;
}

@media (max-width: 767px) {
  body.msf-theme .msf-interior-video-hero.wp-block-cover,
  body.msf-theme .wp-block-cover.msf-interior-video-hero,
  body.msf-theme .msf-program-video-hero.wp-block-cover,
  body.msf-theme .wp-block-cover.msf-program-video-hero,
  body.msf-theme .msf-video-hero-fullscreen.wp-block-cover,
  body.msf-theme .wp-block-cover.msf-video-hero-fullscreen {
    display: flex !important;
    min-height: 260px !important;
    height: auto !important;
    aspect-ratio: 16 / 9 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 24px !important;
    margin: 0 !important;
    overflow: hidden !important;
    background-color: #111 !important;
  }

  body.msf-theme .msf-interior-video-hero.wp-block-cover img.wp-block-cover__image-background,
  body.msf-theme .wp-block-cover.msf-interior-video-hero img.wp-block-cover__image-background,
  body.msf-theme .msf-program-video-hero.wp-block-cover img.wp-block-cover__image-background,
  body.msf-theme .wp-block-cover.msf-program-video-hero img.wp-block-cover__image-background,
  body.msf-theme .msf-video-hero-fullscreen.wp-block-cover img.wp-block-cover__image-background,
  body.msf-theme .wp-block-cover.msf-video-hero-fullscreen img.wp-block-cover__image-background {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  body.msf-theme .msf-play-video-button .wp-block-button__link,
  body.msf-theme .wp-block-button.msf-play-video-button .wp-block-button__link {
    min-height: 48px !important;
    min-width: 160px !important;
    padding: 14px 24px !important;
    font-size: .94rem !important;
  }
}

/* ---------- Video modal: clear close button ---------- */
body.msf-theme .msf-video-modal {
  padding: clamp(24px, 5vw, 64px) !important;
}

body.msf-theme .msf-video-modal-inner {
  overflow: visible !important;
  border-radius: 18px !important;
}

body.msf-theme .msf-video-modal-close {
  position: absolute !important;
  top: -58px !important;
  right: 0 !important;
  z-index: 100002 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  width: auto !important;
  height: 44px !important;
  min-width: 112px !important;
  padding: 0 18px !important;
  border: 2px solid #fff !important;
  border-radius: 999px !important;
  background: #1f1d1f !important;
  color: #fff !important;
  font-size: 0 !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.28) !important;
}

body.msf-theme .msf-video-modal-close::before {
  content: "×" !important;
  display: inline-block !important;
  font-size: 1.7rem !important;
  line-height: 1 !important;
  transform: translateY(-1px);
}

body.msf-theme .msf-video-modal-close::after {
  content: "Close" !important;
  display: inline-block !important;
  font-size: .9rem !important;
  letter-spacing: .04em !important;
}

body.msf-theme .msf-video-modal-close:hover,
body.msf-theme .msf-video-modal-close:focus-visible {
  background: #007a80 !important;
  outline: 3px solid #f5d33d !important;
  outline-offset: 3px !important;
}

/* ---------- Mobile menu dropdown indicator + functionality styles ---------- */
@media (max-width: 1023px) {
  body.msf-theme .msf-mobile-menu-overlay-list li.menu-item-has-children > a,
  body.msf-theme .msf-mobile-menu-overlay-list li:has(> .sub-menu) > a {
    padding-right: 72px !important;
  }

  body.msf-theme .msf-mobile-submenu-toggle {
    position: absolute !important;
    top: 10px !important;
    right: 0 !important;
    z-index: 2 !important;
    width: 54px !important;
    height: 54px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 2px solid rgba(255,255,255,.35) !important;
    border-radius: 999px !important;
    background: rgba(42,167,173,.22) !important;
    color: #fff !important;
    cursor: pointer !important;
  }

  body.msf-theme .msf-mobile-submenu-toggle::before {
    content: "⌄" !important;
    display: block !important;
    font-size: 2rem !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    transform: translateY(-2px);
  }

  body.msf-theme .msf-mobile-submenu-toggle[aria-expanded="true"]::before {
    content: "⌃" !important;
  }

  body.msf-theme .msf-mobile-menu-overlay-list .sub-menu {
    display: none !important;
    margin: 0 0 12px 0 !important;
    padding: 8px 0 8px 18px !important;
    list-style: none !important;
    border-left: 4px solid #2aa7ad !important;
  }

  body.msf-theme .msf-mobile-menu-overlay-list .sub-menu.is-open {
    display: block !important;
  }

  body.msf-theme .msf-mobile-menu-overlay-list .sub-menu li {
    border-bottom: 0 !important;
  }

  body.msf-theme .msf-mobile-menu-overlay-list .sub-menu a {
    font-size: clamp(1.12rem, 5vw, 1.55rem) !important;
    line-height: 1.2 !important;
    letter-spacing: .02em !important;
    padding: 10px 0 !important;
    text-transform: none !important;
    color: #fff !important;
  }
}

/* ---------- Trusted Partners: larger mobile cards, no swipe text ---------- */
body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos)::after,
body.msf-theme .msf-scroll-hint {
  content: none !important;
  display: none !important;
}

body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-dots,.swiper-pagination,.splide__pagination,.gutenbee-slider-dots,.gutenbee-slider-pagination,.tns-nav,.glide__bullets,.flickity-page-dots) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

@media (max-width: 767px) {
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-list,.swiper,.swiper-container,.splide__track,.gutenbee-slider-wrapper,.wp-block-gallery,.wp-block-columns) {
    display: flex !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    gap: 14px !important;
    padding: 0 22px 14px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-track,.swiper-wrapper,.splide__list) {
    display: flex !important;
    gap: 14px !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-slide,.swiper-slide,.splide__slide,.wp-block-image,.wp-block-column,figure) {
    flex: 0 0 calc((100vw - 58px) / 2) !important;
    width: calc((100vw - 58px) / 2) !important;
    min-width: calc((100vw - 58px) / 2) !important;
    max-width: calc((100vw - 58px) / 2) !important;
    height: 124px !important;
    min-height: 124px !important;
    scroll-snap-align: start !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 14px !important;
    box-sizing: border-box !important;
    background: #fff !important;
    border-radius: 12px !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) img {
    display: block !important;
    width: 100% !important;
    max-width: 145px !important;
    height: 92px !important;
    max-height: 92px !important;
    object-fit: contain !important;
    margin: 0 auto !important;
  }
}

/* =========================================================
   v5.3 Focused cleanup: dropdowns, video heroes, partners
========================================================= */

/* Remove header/video hairline. */
body.msf-theme .site-header,
body.msf-theme .navbar,
body.msf-theme header.site-header,
body.msf-theme .site-branding {
  border-bottom: 0 !important;
  box-shadow: none !important;
}

body.msf-theme .entry-content > :first-child {
  margin-top: 0 !important;
}

/* Hide Scroll to learn more when this class is on the hero Cover/Group. */
body.msf-theme :is(.msf-hide-scroll-button,.msf-no-scroll-cue) :is(.msf-scroll-more,.msf-scroll-cue,.scroll-to-learn-more),
body.msf-theme :is(.msf-hide-scroll-button,.msf-no-scroll-cue) .wp-block-button:not(.msf-play-video-button),
body.msf-theme :is(.msf-hide-scroll-button,.msf-no-scroll-cue) .wp-block-buttons:not(.msf-play-video-button) .wp-block-button:not(.msf-play-video-button) {
  display: none !important;
}

body.msf-theme :is(.msf-hide-scroll-button,.msf-no-scroll-cue) .msf-play-video-button,
body.msf-theme :is(.msf-hide-scroll-button,.msf-no-scroll-cue) .wp-block-button.msf-play-video-button {
  display: flex !important;
}

/* Play Video button */
body.msf-theme .msf-play-video-button,
body.msf-theme .wp-block-button.msf-play-video-button,
body.msf-theme .wp-block-buttons.msf-play-video-button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.msf-theme .msf-play-video-button .wp-block-button__link,
body.msf-theme .wp-block-button.msf-play-video-button .wp-block-button__link,
body.msf-theme .wp-block-buttons.msf-play-video-button .wp-block-button__link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  background: #1f1d1f !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 15px 28px !important;
  min-height: 52px !important;
  min-width: 178px !important;
  font-weight: 900 !important;
  font-size: 1rem !important;
  line-height: 1 !important;
  letter-spacing: .035em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
}

body.msf-theme .msf-play-video-button .wp-block-button__link::before,
body.msf-theme .wp-block-button.msf-play-video-button .wp-block-button__link::before,
body.msf-theme .wp-block-buttons.msf-play-video-button .wp-block-button__link::before {
  content: "▶" !important;
  display: inline-block !important;
  font-size: .9em !important;
  line-height: 1 !important;
}

/* Bring video helper. Add this class to the Cover/Group: msf-bring-video */
body.msf-theme .msf-bring-video,
body.msf-theme .wp-block-cover.msf-bring-video {
  width: min(100%, 460px) !important;
  max-width: 460px !important;
  min-height: 250px !important;
  aspect-ratio: 16 / 9 !important;
  margin-inline: auto !important;
  overflow: hidden !important;
}

body.msf-theme .wp-block-cover.msf-bring-video {
  padding: 24px !important;
}

body.msf-theme .msf-bring-video .wp-block-cover__inner-container {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

@media (max-width: 767px) {
  body.msf-theme .msf-bring-video,
  body.msf-theme .wp-block-cover.msf-bring-video {
    width: 100% !important;
    max-width: 100% !important;
    min-height: auto !important;
    aspect-ratio: 16 / 9 !important;
    margin-top: 28px !important;
  }
}

/* Desktop dropdown menus */
@media (min-width: 1024px) {
  body.msf-theme .site-header :is(nav,.main-navigation) ul,
  body.msf-theme .msf-desktop-nav ul {
    overflow: visible !important;
  }

  body.msf-theme .site-header :is(nav,.main-navigation) li,
  body.msf-theme .msf-desktop-nav li {
    position: relative !important;
  }

  body.msf-theme .site-header :is(nav,.main-navigation) li.menu-item-has-children > a::after,
  body.msf-theme .site-header :is(nav,.main-navigation) li:has(> .sub-menu) > a::after,
  body.msf-theme .msf-desktop-nav li.menu-item-has-children > a::after,
  body.msf-theme .msf-desktop-nav li:has(> .sub-menu) > a::after {
    content: "⌄";
    display: inline-block;
    margin-left: .45em;
    font-size: .85em;
  }

  body.msf-theme .site-header :is(nav,.main-navigation) .sub-menu,
  body.msf-theme .msf-desktop-nav .sub-menu {
    display: none !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    z-index: 10010 !important;
    min-width: 220px !important;
    margin: 0 !important;
    padding: 12px !important;
    list-style: none !important;
    background: #111 !important;
    border-radius: 16px !important;
    box-shadow: 0 18px 38px rgba(0,0,0,.24) !important;
  }

  body.msf-theme .site-header :is(nav,.main-navigation) li:hover > .sub-menu,
  body.msf-theme .site-header :is(nav,.main-navigation) li:focus-within > .sub-menu,
  body.msf-theme .msf-desktop-nav li:hover > .sub-menu,
  body.msf-theme .msf-desktop-nav li:focus-within > .sub-menu {
    display: block !important;
  }

  body.msf-theme .site-header :is(nav,.main-navigation) .sub-menu a,
  body.msf-theme .msf-desktop-nav .sub-menu a {
    display: block !important;
    padding: 10px 12px !important;
    color: #fff !important;
    font-size: 1rem !important;
    white-space: nowrap !important;
  }
}

/* Mobile dropdown indicator */
@media (max-width: 1023px) {
  body.msf-theme .msf-mobile-menu-overlay-list li.menu-item-has-children > a,
  body.msf-theme .msf-mobile-menu-overlay-list li:has(> .sub-menu) > a {
    padding-right: 76px !important;
  }

  body.msf-theme .msf-mobile-submenu-toggle {
    position: absolute !important;
    top: 11px !important;
    right: 0 !important;
    z-index: 3 !important;
    width: 52px !important;
    height: 52px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 2px solid rgba(255,255,255,.55) !important;
    border-radius: 999px !important;
    background: #087E86 !important;
    color: #fff !important;
    cursor: pointer !important;
  }

  body.msf-theme .msf-mobile-submenu-toggle::before {
    content: "⌄" !important;
    font-size: 2rem !important;
    font-weight: 900 !important;
    transform: translateY(-3px);
  }

  body.msf-theme .msf-mobile-submenu-toggle[aria-expanded="true"]::before {
    content: "⌃" !important;
    transform: translateY(2px);
  }

  body.msf-theme .msf-mobile-menu-overlay-list .sub-menu {
    display: none !important;
    margin: 0 0 16px 0 !important;
    padding: 10px 0 10px 22px !important;
    list-style: none !important;
    border-left: 4px solid #2aa7ad !important;
  }

  body.msf-theme .msf-mobile-menu-overlay-list .sub-menu.is-open {
    display: block !important;
  }
}

/* Trusted Partners: restore desktop scale and enlarge mobile. No swipe text. */
body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos)::after,
body.msf-theme .msf-scroll-hint {
  content: none !important;
  display: none !important;
}

body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-dots,.swiper-pagination,.splide__pagination,.gutenbee-slider-dots,.gutenbee-slider-pagination,.tns-nav,.glide__bullets,.flickity-page-dots) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

@media (min-width: 768px) {
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.wp-block-gallery,.wp-block-columns) {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 28px !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.wp-block-image,.wp-block-column,figure) {
    flex: 0 0 176px !important;
    width: 176px !important;
    min-width: 176px !important;
    height: 126px !important;
    min-height: 126px !important;
    padding: 18px !important;
    background: #fff !important;
    border-radius: 6px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) img {
    display: block !important;
    width: 100% !important;
    max-width: 148px !important;
    height: 92px !important;
    max-height: 92px !important;
    object-fit: contain !important;
    margin: 0 auto !important;
  }
}

@media (max-width: 767px) {
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-list,.swiper,.swiper-container,.splide__track,.gutenbee-slider-wrapper,.wp-block-gallery,.wp-block-columns) {
    display: flex !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    gap: 16px !important;
    padding: 0 24px 16px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-slide,.swiper-slide,.splide__slide,.wp-block-image,.wp-block-column,figure) {
    flex: 0 0 190px !important;
    width: 190px !important;
    min-width: 190px !important;
    max-width: 190px !important;
    height: 136px !important;
    min-height: 136px !important;
    scroll-snap-align: start !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 16px !important;
    box-sizing: border-box !important;
    background: #fff !important;
    border-radius: 12px !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) img {
    display: block !important;
    width: 100% !important;
    max-width: 158px !important;
    height: 100px !important;
    max-height: 100px !important;
    object-fit: contain !important;
    margin: 0 auto !important;
  }
}

/* =========================================================
   v5.4 Focused fixes: video hero, scroll-button removal,
   mobile video modal, dropdown arrows, partners
========================================================= */

/* Header/hero seam cleanup */
body.msf-theme .site-header,
body.msf-theme .navbar,
body.msf-theme header.site-header,
body.msf-theme .site-branding,
body.msf-theme .msf-site-header {
  border-bottom: 0 !important;
  box-shadow: none !important;
}

body.msf-theme main,
body.msf-theme .site-main,
body.msf-theme .entry-content,
body.msf-theme .content-area {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.msf-theme .entry-content > :first-child,
body.msf-theme main > :first-child {
  margin-top: 0 !important;
}

/* Play Video button */
body.msf-theme .msf-play-video-button,
body.msf-theme .wp-block-button.msf-play-video-button,
body.msf-theme .wp-block-buttons.msf-play-video-button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.msf-theme .msf-play-video-button .wp-block-button__link,
body.msf-theme .wp-block-button.msf-play-video-button .wp-block-button__link,
body.msf-theme .wp-block-buttons.msf-play-video-button .wp-block-button__link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  background: #1f1d1f !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 15px 28px !important;
  min-height: 52px !important;
  min-width: 178px !important;
  font-weight: 900 !important;
  font-size: 1rem !important;
  line-height: 1 !important;
  letter-spacing: .035em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
}

body.msf-theme .msf-play-video-button .wp-block-button__link::before,
body.msf-theme .wp-block-button.msf-play-video-button .wp-block-button__link::before,
body.msf-theme .wp-block-buttons.msf-play-video-button .wp-block-button__link::before {
  content: "▶" !important;
  display: inline-block !important;
  font-size: .9em !important;
  line-height: 1 !important;
}

/* Large interior cover video hero */
body.msf-theme :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-video-hero-fullscreen).wp-block-cover,
body.msf-theme .wp-block-cover:is(.msf-interior-video-hero,.msf-program-video-hero,.msf-video-hero-fullscreen) {
  min-height: clamp(420px, 56vw, 740px) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  overflow: hidden !important;
}

body.msf-theme :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-video-hero-fullscreen).wp-block-cover .wp-block-cover__inner-container,
body.msf-theme .wp-block-cover:is(.msf-interior-video-hero,.msf-program-video-hero,.msf-video-hero-fullscreen) .wp-block-cover__inner-container {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Hide Scroll to learn more. Use on Cover/outer Group: msf-hide-scroll-button */
body.msf-theme .msf-hide-scroll-button :is(.msf-scroll-more,.msf-scroll-cue,.scroll-to-learn-more),
body.msf-theme .msf-no-scroll-cue :is(.msf-scroll-more,.msf-scroll-cue,.scroll-to-learn-more) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.msf-theme .msf-hide-scroll-button .wp-block-button:not(.msf-play-video-button):not(:has(.msf-play-video-button)):not(:has(a[href*="youtube.com"])):not(:has(a[href*="youtu.be"])),
body.msf-theme .msf-no-scroll-cue .wp-block-button:not(.msf-play-video-button):not(:has(.msf-play-video-button)):not(:has(a[href*="youtube.com"])):not(:has(a[href*="youtu.be"])) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.msf-theme .msf-hide-scroll-button .msf-play-video-button,
body.msf-theme .msf-hide-scroll-button .wp-block-button.msf-play-video-button,
body.msf-theme .msf-no-scroll-cue .msf-play-video-button,
body.msf-theme .msf-no-scroll-cue .wp-block-button.msf-play-video-button {
  display: flex !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

/* Bring video helper: smaller video teaser */
body.msf-theme .msf-bring-video,
body.msf-theme .wp-block-cover.msf-bring-video {
  width: min(100%, 560px) !important;
  max-width: 560px !important;
  min-height: 315px !important;
  aspect-ratio: 16 / 9 !important;
  margin-inline: auto !important;
  overflow: hidden !important;
}

body.msf-theme .wp-block-cover.msf-bring-video {
  padding: 24px !important;
}

body.msf-theme .msf-bring-video .wp-block-cover__inner-container {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

@media (max-width: 767px) {
  body.msf-theme :is(.msf-interior-video-hero,.msf-program-video-hero,.msf-video-hero-fullscreen).wp-block-cover,
  body.msf-theme .wp-block-cover:is(.msf-interior-video-hero,.msf-program-video-hero,.msf-video-hero-fullscreen) {
    min-height: 260px !important;
    aspect-ratio: 16 / 9 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 24px !important;
    overflow: hidden !important;
  }

  body.msf-theme .msf-bring-video,
  body.msf-theme .wp-block-cover.msf-bring-video {
    width: 100% !important;
    max-width: 100% !important;
    min-height: auto !important;
    aspect-ratio: 16 / 9 !important;
    margin-top: 28px !important;
  }
}

/* Desktop dropdown menus */
@media (min-width: 1024px) {
  body.msf-theme .site-header :is(nav,.main-navigation) ul,
  body.msf-theme .msf-desktop-nav ul {
    overflow: visible !important;
  }

  body.msf-theme .site-header :is(nav,.main-navigation) li,
  body.msf-theme .msf-desktop-nav li {
    position: relative !important;
  }

  body.msf-theme .site-header :is(nav,.main-navigation) li.menu-item-has-children > a::after,
  body.msf-theme .site-header :is(nav,.main-navigation) li:has(> .sub-menu) > a::after,
  body.msf-theme .msf-desktop-nav li.menu-item-has-children > a::after,
  body.msf-theme .msf-desktop-nav li:has(> .sub-menu) > a::after {
    content: "▾" !important;
    display: inline-block !important;
    margin-left: .45em !important;
    font-size: .75em !important;
    line-height: 1 !important;
    transform: translateY(-1px) !important;
  }

  body.msf-theme .site-header :is(nav,.main-navigation) .sub-menu,
  body.msf-theme .msf-desktop-nav .sub-menu {
    display: none !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    z-index: 10010 !important;
    min-width: 220px !important;
    margin: 0 !important;
    padding: 12px !important;
    list-style: none !important;
    background: #111 !important;
    border-radius: 16px !important;
    box-shadow: 0 18px 38px rgba(0,0,0,.24) !important;
  }

  body.msf-theme .site-header :is(nav,.main-navigation) li:hover > .sub-menu,
  body.msf-theme .site-header :is(nav,.main-navigation) li:focus-within > .sub-menu,
  body.msf-theme .msf-desktop-nav li:hover > .sub-menu,
  body.msf-theme .msf-desktop-nav li:focus-within > .sub-menu {
    display: block !important;
  }

  body.msf-theme .site-header :is(nav,.main-navigation) .sub-menu a,
  body.msf-theme .msf-desktop-nav .sub-menu a {
    display: block !important;
    padding: 10px 12px !important;
    color: #fff !important;
    font-size: 1rem !important;
    white-space: nowrap !important;
  }
}

/* Mobile dropdown menu: aligned arrow */
@media (max-width: 1023px) {
  body.msf-theme .msf-mobile-menu-overlay-list li.menu-item-has-children,
  body.msf-theme .msf-mobile-menu-overlay-list li:has(> .sub-menu) {
    position: relative !important;
  }

  body.msf-theme .msf-mobile-menu-overlay-list li.menu-item-has-children > a,
  body.msf-theme .msf-mobile-menu-overlay-list li:has(> .sub-menu) > a {
    padding-right: 76px !important;
  }

  body.msf-theme .msf-mobile-submenu-toggle {
    position: absolute !important;
    top: 50% !important;
    right: 0 !important;
    z-index: 3 !important;
    width: 48px !important;
    height: 48px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transform: translateY(-50%) !important;
    border: 2px solid rgba(255,255,255,.55) !important;
    border-radius: 999px !important;
    background: #087E86 !important;
    color: #fff !important;
    cursor: pointer !important;
    padding: 0 !important;
  }

  body.msf-theme .msf-mobile-submenu-toggle::before {
    content: "▾" !important;
    display: block !important;
    font-size: 1.35rem !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    transform: translateY(-1px) !important;
  }

  body.msf-theme .msf-mobile-submenu-toggle[aria-expanded="true"]::before {
    content: "▴" !important;
    transform: translateY(0) !important;
  }

  body.msf-theme .msf-mobile-menu-overlay-list .sub-menu {
    display: none !important;
    margin: 0 0 16px 0 !important;
    padding: 10px 0 10px 22px !important;
    list-style: none !important;
    border-left: 4px solid #2aa7ad !important;
  }

  body.msf-theme .msf-mobile-menu-overlay-list .sub-menu.is-open {
    display: block !important;
  }
}

/* Video modal: desktop and mobile stay on-site */
body.msf-theme .msf-video-modal {
  padding: clamp(24px, 5vw, 64px) !important;
}

body.msf-theme .msf-video-modal-inner {
  overflow: visible !important;
  border-radius: 18px !important;
}

body.msf-theme .msf-video-modal-close {
  position: absolute !important;
  top: -58px !important;
  right: 0 !important;
  z-index: 100002 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  width: auto !important;
  height: 44px !important;
  min-width: 112px !important;
  padding: 0 18px !important;
  border: 2px solid #fff !important;
  border-radius: 999px !important;
  background: #1f1d1f !important;
  color: #fff !important;
  font-size: 0 !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.28) !important;
}

body.msf-theme .msf-video-modal-close::before {
  content: "×" !important;
  display: inline-block !important;
  font-size: 1.7rem !important;
  line-height: 1 !important;
}

body.msf-theme .msf-video-modal-close::after {
  content: "Close" !important;
  display: inline-block !important;
  font-size: .9rem !important;
  letter-spacing: .04em !important;
}

/* Trusted Partners: bigger again */
body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos)::after,
body.msf-theme .msf-scroll-hint {
  content: none !important;
  display: none !important;
}

body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-dots,.swiper-pagination,.splide__pagination,.gutenbee-slider-dots,.gutenbee-slider-pagination,.tns-nav,.glide__bullets,.flickity-page-dots) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

@media (min-width: 768px) {
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.wp-block-gallery,.wp-block-columns) {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 32px !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.wp-block-image,.wp-block-column,figure) {
    flex: 0 0 210px !important;
    width: 210px !important;
    min-width: 210px !important;
    height: 148px !important;
    min-height: 148px !important;
    padding: 14px !important;
    background: #fff !important;
    border-radius: 6px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) img {
    display: block !important;
    width: 100% !important;
    max-width: 190px !important;
    height: 118px !important;
    max-height: 118px !important;
    object-fit: contain !important;
    margin: 0 auto !important;
  }
}

@media (max-width: 767px) {
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-list,.swiper,.swiper-container,.splide__track,.gutenbee-slider-wrapper,.wp-block-gallery,.wp-block-columns) {
    display: flex !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    gap: 14px !important;
    padding: 0 18px 14px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-slide,.swiper-slide,.splide__slide,.wp-block-image,.wp-block-column,figure) {
    flex: 0 0 188px !important;
    width: 188px !important;
    min-width: 188px !important;
    max-width: 188px !important;
    height: 112px !important;
    min-height: 112px !important;
    scroll-snap-align: start !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 6px !important;
    box-sizing: border-box !important;
    background: transparent !important;
    border-radius: 10px !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) img {
    display: block !important;
    width: 100% !important;
    max-width: 176px !important;
    height: 100px !important;
    max-height: 100px !important;
    object-fit: contain !important;
    margin: 0 auto !important;
    background: #fff !important;
    border-radius: 8px !important;
    padding: 6px !important;
    box-sizing: border-box !important;
  }
}

/* =========================================================
   v5.5 Shortcode video system: no Cover block needed
========================================================= */

/* Kill header/hero seam. */
body.msf-theme .site-header,
body.msf-theme .navbar,
body.msf-theme header.site-header,
body.msf-theme .site-branding,
body.msf-theme .msf-site-header {
  border-bottom: 0 !important;
  box-shadow: none !important;
}

body.msf-theme main,
body.msf-theme .site-main,
body.msf-theme .entry-content,
body.msf-theme .content-area {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.msf-theme .entry-content > .msf-shortcode-video:first-child,
body.msf-theme main > .msf-shortcode-video:first-child {
  margin-top: 0 !important;
}

/* Large hero shortcode. */
body.msf-theme .msf-shortcode-video {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  overflow: hidden !important;
  background-position: center center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  margin: 0 !important;
}

body.msf-theme .msf-shortcode-video-hero {
  min-height: clamp(420px, 56vw, 740px) !important;
}

body.msf-theme .msf-shortcode-video-card {
  min-height: 315px !important;
  aspect-ratio: 16 / 9 !important;
  width: min(100%, 560px) !important;
  max-width: 560px !important;
  border-radius: 0 !important;
  margin-inline: auto !important;
}

/* Play button. */
body.msf-theme .msf-shortcode-video-button,
body.msf-theme a.msf-shortcode-video-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  background: #1f1d1f !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 15px 28px !important;
  min-height: 52px !important;
  min-width: 178px !important;
  font-weight: 900 !important;
  font-size: 1rem !important;
  line-height: 1 !important;
  letter-spacing: .035em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  box-shadow: 0 12px 28px rgba(0,0,0,.18) !important;
}

body.msf-theme .msf-shortcode-video-button:hover,
body.msf-theme .msf-shortcode-video-button:focus-visible {
  background: #007a80 !important;
  color: #fff !important;
  outline: 3px solid #f5d33d !important;
  outline-offset: 3px !important;
}

/* Inline embed shortcode. */
body.msf-theme .msf-shortcode-video-inline {
  position: relative !important;
  width: 100% !important;
  max-width: 960px !important;
  aspect-ratio: 16 / 9 !important;
  margin: 0 auto !important;
  overflow: hidden !important;
  background: #111 !important;
}

body.msf-theme .msf-shortcode-video-inline iframe {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
}

/* Existing classes still supported. */
body.msf-theme .msf-hide-scroll-button :is(.msf-scroll-more,.msf-scroll-cue,.scroll-to-learn-more),
body.msf-theme .msf-no-scroll-cue :is(.msf-scroll-more,.msf-scroll-cue,.scroll-to-learn-more),
body.msf-theme .msf-hide-scroll-button .wp-block-button:not(.msf-play-video-button):not(:has(a[href*="youtube.com"])):not(:has(a[href*="youtu.be"])),
body.msf-theme .msf-no-scroll-cue .wp-block-button:not(.msf-play-video-button):not(:has(a[href*="youtube.com"])):not(:has(a[href*="youtu.be"])) {
  display: none !important;
}

/* Modal close visibility retained. */
body.msf-theme .msf-video-modal {
  padding: clamp(24px, 5vw, 64px) !important;
}

body.msf-theme .msf-video-modal-inner {
  overflow: visible !important;
  border-radius: 18px !important;
}

body.msf-theme .msf-video-modal-close {
  position: absolute !important;
  top: -58px !important;
  right: 0 !important;
  z-index: 100002 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  width: auto !important;
  height: 44px !important;
  min-width: 112px !important;
  padding: 0 18px !important;
  border: 2px solid #fff !important;
  border-radius: 999px !important;
  background: #1f1d1f !important;
  color: #fff !important;
  font-size: 0 !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.28) !important;
}

body.msf-theme .msf-video-modal-close::before {
  content: "×" !important;
  display: inline-block !important;
  font-size: 1.7rem !important;
  line-height: 1 !important;
}

body.msf-theme .msf-video-modal-close::after {
  content: "Close" !important;
  display: inline-block !important;
  font-size: .9rem !important;
  letter-spacing: .04em !important;
}

/* Dropdown arrow alignment. */
@media (max-width: 1023px) {
  body.msf-theme .msf-mobile-menu-overlay-list li.menu-item-has-children,
  body.msf-theme .msf-mobile-menu-overlay-list li:has(> .sub-menu) {
    position: relative !important;
  }

  body.msf-theme .msf-mobile-menu-overlay-list li.menu-item-has-children > a,
  body.msf-theme .msf-mobile-menu-overlay-list li:has(> .sub-menu) > a {
    padding-right: 76px !important;
  }

  body.msf-theme .msf-mobile-submenu-toggle {
    position: absolute !important;
    top: 50% !important;
    right: 0 !important;
    z-index: 3 !important;
    width: 48px !important;
    height: 48px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transform: translateY(-50%) !important;
    border: 2px solid rgba(255,255,255,.55) !important;
    border-radius: 999px !important;
    background: #087E86 !important;
    color: #fff !important;
    cursor: pointer !important;
    padding: 0 !important;
  }

  body.msf-theme .msf-mobile-submenu-toggle::before {
    content: "▾" !important;
    display: block !important;
    font-size: 1.35rem !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    transform: translateY(-1px) !important;
  }

  body.msf-theme .msf-mobile-submenu-toggle[aria-expanded="true"]::before {
    content: "▴" !important;
    transform: translateY(0) !important;
  }

  body.msf-theme .msf-mobile-menu-overlay-list .sub-menu {
    display: none !important;
    margin: 0 0 16px 0 !important;
    padding: 10px 0 10px 22px !important;
    list-style: none !important;
    border-left: 4px solid #2aa7ad !important;
  }

  body.msf-theme .msf-mobile-menu-overlay-list .sub-menu.is-open {
    display: block !important;
  }

  body.msf-theme .msf-shortcode-video-hero {
    min-height: 260px !important;
    aspect-ratio: 16 / 9 !important;
  }

  body.msf-theme .msf-shortcode-video-card {
    width: 100% !important;
    max-width: 100% !important;
    min-height: auto !important;
    aspect-ratio: 16 / 9 !important;
  }

  body.msf-theme .msf-shortcode-video-button,
  body.msf-theme a.msf-shortcode-video-button {
    min-height: 48px !important;
    min-width: 160px !important;
    padding: 14px 24px !important;
    font-size: .94rem !important;
  }
}

/* Trusted Partners: larger desktop and mobile. */
body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos)::after,
body.msf-theme .msf-scroll-hint {
  content: none !important;
  display: none !important;
}

body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-dots,.swiper-pagination,.splide__pagination,.gutenbee-slider-dots,.gutenbee-slider-pagination,.tns-nav,.glide__bullets,.flickity-page-dots) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

@media (min-width: 768px) {
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.wp-block-gallery,.wp-block-columns) {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 32px !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.wp-block-image,.wp-block-column,figure) {
    flex: 0 0 210px !important;
    width: 210px !important;
    min-width: 210px !important;
    height: 148px !important;
    min-height: 148px !important;
    padding: 14px !important;
    background: #fff !important;
    border-radius: 6px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) img {
    display: block !important;
    width: 100% !important;
    max-width: 190px !important;
    height: 118px !important;
    max-height: 118px !important;
    object-fit: contain !important;
    margin: 0 auto !important;
  }
}

@media (max-width: 767px) {
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-list,.swiper,.swiper-container,.splide__track,.gutenbee-slider-wrapper,.wp-block-gallery,.wp-block-columns) {
    display: flex !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    gap: 14px !important;
    padding: 0 18px 14px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-slide,.swiper-slide,.splide__slide,.wp-block-image,.wp-block-column,figure) {
    flex: 0 0 188px !important;
    width: 188px !important;
    min-width: 188px !important;
    max-width: 188px !important;
    height: 112px !important;
    min-height: 112px !important;
    scroll-snap-align: start !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 6px !important;
    box-sizing: border-box !important;
    background: transparent !important;
    border-radius: 10px !important;
  }

  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) img {
    display: block !important;
    width: 100% !important;
    max-width: 176px !important;
    height: 100px !important;
    max-height: 100px !important;
    object-fit: contain !important;
    margin: 0 auto !important;
    background: #fff !important;
    border-radius: 8px !important;
    padding: 6px !important;
    box-sizing: border-box !important;
  }
}

/* =========================================================
   v5.6 Revert video presentation closer to original embeds
   + restore desktop Trusted Partners sizing
========================================================= */

/* Header/hero seam cleanup */
body.msf-theme .site-header,
body.msf-theme .navbar,
body.msf-theme header.site-header,
body.msf-theme .site-branding,
body.msf-theme .msf-site-header {
  border-bottom: 0 !important;
  box-shadow: none !important;
}
body.msf-theme main,
body.msf-theme .site-main,
body.msf-theme .entry-content,
body.msf-theme .content-area {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Original-style YouTube embeds */
body.msf-theme .wp-block-embed-youtube .wp-block-embed__wrapper,
body.msf-theme .wp-block-embed.is-type-video .wp-block-embed__wrapper {
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  overflow: hidden !important;
  background: #111 !important;
}
body.msf-theme .wp-block-embed-youtube iframe,
body.msf-theme .wp-block-embed.is-type-video iframe {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
}

/* Add this class to a YouTube Embed block for the old full-width hero style */
body.msf-theme .msf-video-hero-embed,
body.msf-theme figure.wp-block-embed-youtube.msf-video-hero-embed,
body.msf-theme .wp-block-embed.msf-video-hero-embed {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
body.msf-theme .msf-video-hero-embed .wp-block-embed__wrapper {
  aspect-ratio: 16 / 7.5 !important;
  min-height: 420px !important;
}

/* If v5.5 shortcode remains, make it look like a full-width original hero, not a small boxed poster */
body.msf-theme .msf-shortcode-video-hero {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  min-height: clamp(420px, 52vw, 720px) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  background-size: cover !important;
  background-position: center center !important;
}
body.msf-theme .msf-shortcode-video-card {
  width: min(100%, 560px) !important;
  max-width: 560px !important;
  min-height: 315px !important;
  aspect-ratio: 16 / 9 !important;
  margin-inline: auto !important;
  background-size: cover !important;
  background-position: center !important;
}

/* Play button: black pill like the original direction */
body.msf-theme .msf-shortcode-video-button,
body.msf-theme a.msf-shortcode-video-button,
body.msf-theme .msf-play-video-button .wp-block-button__link,
body.msf-theme .wp-block-button.msf-play-video-button .wp-block-button__link,
body.msf-theme .wp-block-buttons.msf-play-video-button .wp-block-button__link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  background: #1f1d1f !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 14px 26px !important;
  min-height: 50px !important;
  min-width: 168px !important;
  font-weight: 900 !important;
  font-size: .98rem !important;
  line-height: 1 !important;
  letter-spacing: .035em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

/* Modal close remains obvious */
body.msf-theme .msf-video-modal-close {
  position: absolute !important;
  top: -58px !important;
  right: 0 !important;
  z-index: 100002 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  height: 44px !important;
  min-width: 112px !important;
  padding: 0 18px !important;
  border: 2px solid #fff !important;
  border-radius: 999px !important;
  background: #1f1d1f !important;
  color: #fff !important;
  font-size: 0 !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
}
body.msf-theme .msf-video-modal-close::before {
  content: "×" !important;
  display: inline-block !important;
  font-size: 1.7rem !important;
  line-height: 1 !important;
}
body.msf-theme .msf-video-modal-close::after {
  content: "Close" !important;
  display: inline-block !important;
  font-size: .9rem !important;
  letter-spacing: .04em !important;
}

/* Trusted Partners desktop: revert closer to Books.png size */
body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos)::after,
body.msf-theme .msf-scroll-hint {
  content: none !important;
  display: none !important;
}
@media (min-width: 768px) {
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) {
    overflow: hidden !important;
  }
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.wp-block-gallery,.wp-block-columns,.slick-track,.swiper-wrapper,.splide__list) {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 26px !important;
  }
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-list,.swiper,.swiper-container,.splide__track,.gutenbee-slider-wrapper) {
    max-width: 960px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow: hidden !important;
  }
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.wp-block-image,.wp-block-column,figure,.slick-slide,.swiper-slide,.splide__slide) {
    flex: 0 0 150px !important;
    width: 150px !important;
    min-width: 150px !important;
    max-width: 150px !important;
    height: 150px !important;
    min-height: 150px !important;
    max-height: 150px !important;
    padding: 16px !important;
    background: #fff !important;
    border-radius: 4px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
  }
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) img {
    display: block !important;
    width: 100% !important;
    max-width: 124px !important;
    height: 112px !important;
    max-height: 112px !important;
    object-fit: contain !important;
    margin: 0 auto !important;
  }
}

/* Trusted Partners mobile: readable and scrollable */
@media (max-width: 767px) {
  body.msf-theme .msf-video-hero-embed .wp-block-embed__wrapper {
    aspect-ratio: 16 / 9 !important;
    min-height: auto !important;
  }
  body.msf-theme .msf-shortcode-video-hero {
    min-height: 260px !important;
    aspect-ratio: 16 / 9 !important;
  }
  body.msf-theme .msf-shortcode-video-card {
    width: 100% !important;
    max-width: 100% !important;
    min-height: auto !important;
    aspect-ratio: 16 / 9 !important;
  }
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-list,.swiper,.swiper-container,.splide__track,.gutenbee-slider-wrapper,.wp-block-gallery,.wp-block-columns) {
    display: flex !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    gap: 14px !important;
    padding: 0 18px 14px !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-slide,.swiper-slide,.splide__slide,.wp-block-image,.wp-block-column,figure) {
    flex: 0 0 188px !important;
    width: 188px !important;
    min-width: 188px !important;
    max-width: 188px !important;
    height: 112px !important;
    min-height: 112px !important;
    scroll-snap-align: start !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 6px !important;
    box-sizing: border-box !important;
    background: transparent !important;
    border-radius: 10px !important;
  }
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) img {
    display: block !important;
    width: 100% !important;
    max-width: 176px !important;
    height: 100px !important;
    max-height: 100px !important;
    object-fit: contain !important;
    margin: 0 auto !important;
    background: #fff !important;
    border-radius: 8px !important;
    padding: 6px !important;
    box-sizing: border-box !important;
  }
}

/* =========================================================
   v5.7 Final video embed reset
   Use ONLY this on inside hero videos:
   YouTube Embed block + class: msf-video-hero-embed
========================================================= */

/* Stop shortcode/pseudo poster styling from affecting normal YouTube embeds */
body.msf-theme figure.wp-block-embed-youtube.msf-video-hero-embed,
body.msf-theme .wp-block-embed-youtube.msf-video-hero-embed,
body.msf-theme .wp-block-embed.msf-video-hero-embed {
  display: block !important;
  position: relative !important;
  clear: both !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

body.msf-theme figure.wp-block-embed-youtube.msf-video-hero-embed .wp-block-embed__wrapper,
body.msf-theme .wp-block-embed-youtube.msf-video-hero-embed .wp-block-embed__wrapper,
body.msf-theme .wp-block-embed.msf-video-hero-embed .wp-block-embed__wrapper {
  display: block !important;
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 420px !important;
  aspect-ratio: 16 / 7.5 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #111 !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
}

body.msf-theme figure.wp-block-embed-youtube.msf-video-hero-embed iframe,
body.msf-theme .wp-block-embed-youtube.msf-video-hero-embed iframe,
body.msf-theme .wp-block-embed.msf-video-hero-embed iframe {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  border: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  z-index: 1 !important;
}

/* Do not show shortcode poster block if it somehow remains above the new YouTube block on the same page */
body.msf-theme .entry-content > .msf-shortcode-video-hero:first-child + figure.wp-block-embed-youtube.msf-video-hero-embed {
  margin-top: 0 !important;
}

/* Header seam cleanup */
body.msf-theme .site-header,
body.msf-theme .navbar,
body.msf-theme header.site-header,
body.msf-theme .site-branding,
body.msf-theme .msf-site-header {
  border-bottom: 0 !important;
  box-shadow: none !important;
}
body.msf-theme main,
body.msf-theme .site-main,
body.msf-theme .entry-content,
body.msf-theme .content-area {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
body.msf-theme .entry-content > :first-child {
  margin-top: 0 !important;
}

/* Desktop Trusted Partners: restore Books.png-style logo cards */
@media (min-width: 768px) {
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.wp-block-gallery,.wp-block-columns,.slick-track,.swiper-wrapper,.splide__list) {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 26px !important;
  }
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-list,.swiper,.swiper-container,.splide__track,.gutenbee-slider-wrapper) {
    max-width: 1000px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow: hidden !important;
  }
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.wp-block-image,.wp-block-column,figure,.slick-slide,.swiper-slide,.splide__slide) {
    flex: 0 0 156px !important;
    width: 156px !important;
    min-width: 156px !important;
    max-width: 156px !important;
    height: 156px !important;
    min-height: 156px !important;
    max-height: 156px !important;
    padding: 16px !important;
    background: #fff !important;
    border-radius: 4px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
  }
  body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) img {
    display: block !important;
    width: 100% !important;
    max-width: 128px !important;
    height: 120px !important;
    max-height: 120px !important;
    object-fit: contain !important;
    margin: 0 auto !important;
  }
}

/* Mobile video embeds should show normal YouTube player, not a cropped poster/card */
@media (max-width: 767px) {
  body.msf-theme figure.wp-block-embed-youtube.msf-video-hero-embed,
  body.msf-theme .wp-block-embed-youtube.msf-video-hero-embed,
  body.msf-theme .wp-block-embed.msf-video-hero-embed {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  body.msf-theme figure.wp-block-embed-youtube.msf-video-hero-embed .wp-block-embed__wrapper,
  body.msf-theme .wp-block-embed-youtube.msf-video-hero-embed .wp-block-embed__wrapper,
  body.msf-theme .wp-block-embed.msf-video-hero-embed .wp-block-embed__wrapper {
    min-height: 0 !important;
    aspect-ratio: 16 / 9 !important;
  }
}

/* =========================================================
   v5.8 Emergency video hero clean reset
   Goal: inside-page hero = normal YouTube Embed block, full-width,
   no teal poster/shortcode takeover.
========================================================= */

/* If old shortcode/video-poster blocks are still output by a reusable pattern/template,
   hide ONLY the blank teal shortcode/card treatment. */
body.msf-theme .msf-shortcode-video-hero,
body.msf-theme .msf-shortcode-video-card {
  background-color: transparent !important;
}

/* Treat the YouTube block class as the source of truth. */
html body.msf-theme figure.wp-block-embed-youtube.msf-video-hero-embed,
html body.msf-theme .wp-block-embed-youtube.msf-video-hero-embed,
html body.msf-theme .wp-block-embed.msf-video-hero-embed,
html body.msf-theme .entry-content figure.wp-block-embed-youtube.msf-video-hero-embed {
  display: block !important;
  position: relative !important;
  clear: both !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
  background: #111 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: hidden !important;
  transform: none !important;
}

html body.msf-theme figure.wp-block-embed-youtube.msf-video-hero-embed .wp-block-embed__wrapper,
html body.msf-theme .wp-block-embed-youtube.msf-video-hero-embed .wp-block-embed__wrapper,
html body.msf-theme .wp-block-embed.msf-video-hero-embed .wp-block-embed__wrapper,
html body.msf-theme .entry-content figure.wp-block-embed-youtube.msf-video-hero-embed .wp-block-embed__wrapper {
  display: block !important;
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 420px !important;
  aspect-ratio: 16 / 7.5 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #111 !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
}

html body.msf-theme figure.wp-block-embed-youtube.msf-video-hero-embed iframe,
html body.msf-theme .wp-block-embed-youtube.msf-video-hero-embed iframe,
html body.msf-theme .wp-block-embed.msf-video-hero-embed iframe,
html body.msf-theme .entry-content figure.wp-block-embed-youtube.msf-video-hero-embed iframe {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  border: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  z-index: 5 !important;
}

/* Eliminate top spacer/seam from template/content wrappers. */
html body.msf-theme .site-header,
html body.msf-theme .navbar,
html body.msf-theme header.site-header,
html body.msf-theme .msf-site-header {
  border-bottom: 0 !important;
  box-shadow: none !important;
}

html body.msf-theme .site-main,
html body.msf-theme main,
html body.msf-theme .entry-content,
html body.msf-theme .content-area,
html body.msf-theme .hentry,
html body.msf-theme article {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

html body.msf-theme .entry-content > figure.wp-block-embed-youtube.msf-video-hero-embed:first-child {
  margin-top: 0 !important;
}

/* Desktop Trusted Partners: larger original-style cards. */
@media (min-width: 768px) {
  html body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.slick-list,.swiper,.swiper-container,.splide__track,.gutenbee-slider-wrapper) {
    max-width: 1040px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow: hidden !important;
  }

  html body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.wp-block-gallery,.wp-block-columns,.slick-track,.swiper-wrapper,.splide__list) {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 28px !important;
  }

  html body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) :is(.wp-block-image,.wp-block-column,figure,.slick-slide,.swiper-slide,.splide__slide) {
    flex: 0 0 168px !important;
    width: 168px !important;
    min-width: 168px !important;
    max-width: 168px !important;
    height: 150px !important;
    min-height: 150px !important;
    max-height: 150px !important;
    padding: 14px !important;
    background: #fff !important;
    border-radius: 4px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
  }

  html body.msf-theme :is(.msf-partners-section,.trusted-partners,.partner-logos) img {
    display: block !important;
    width: 100% !important;
    max-width: 140px !important;
    height: 118px !important;
    max-height: 118px !important;
    object-fit: contain !important;
    margin: 0 auto !important;
  }
}

/* Mobile should remain normal, readable, and not cropped. */
@media (max-width: 767px) {
  html body.msf-theme figure.wp-block-embed-youtube.msf-video-hero-embed,
  html body.msf-theme .wp-block-embed-youtube.msf-video-hero-embed,
  html body.msf-theme .wp-block-embed.msf-video-hero-embed {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
  }

  html body.msf-theme figure.wp-block-embed-youtube.msf-video-hero-embed .wp-block-embed__wrapper,
  html body.msf-theme .wp-block-embed-youtube.msf-video-hero-embed .wp-block-embed__wrapper,
  html body.msf-theme .wp-block-embed.msf-video-hero-embed .wp-block-embed__wrapper {
    min-height: 0 !important;
    aspect-ratio: 16 / 9 !important;
  }
}

/* =========================================================
   v7.1 stable video layout
   Goal: match Program.png and Home copy 7.png.
   Videos are embedded in-page. No teal poster blocks. No popup takeover.
========================================================= */

/* Disable old generated play/poster buttons from earlier patterns. */
body.msf-theme .msf-embed-poster-trigger,
body.msf-theme .msf-shortcode-video-button,
body.msf-theme .msf-video-modal,
body.msf-theme .msf-video-modal * {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Core responsive iframe wrapper used by shortcodes and Custom HTML. */
body.msf-theme .msf-responsive-video,
body.msf-theme .msf-youtube-embed,
body.msf-theme .msf-shortcode-video,
body.msf-theme .msf-shortcode-video-hero,
body.msf-theme .msf-shortcode-video-card {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 auto !important;
  background: #111 !important;
  background-image: none !important;
  overflow: hidden !important;
}

body.msf-theme .msf-responsive-video iframe,
body.msf-theme .msf-youtube-embed iframe,
body.msf-theme .msf-shortcode-video iframe,
body.msf-theme .msf-shortcode-video-hero iframe,
body.msf-theme .msf-shortcode-video-card iframe {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  border: 0 !important;
  pointer-events: auto !important;
}

/* Gutenberg YouTube embeds also stay embedded. */
body.msf-theme figure.wp-block-embed-youtube,
body.msf-theme .wp-block-embed-youtube,
body.msf-theme .wp-block-embed.is-type-video {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  background: #111 !important;
  overflow: hidden !important;
}

body.msf-theme figure.wp-block-embed-youtube .wp-block-embed__wrapper,
body.msf-theme .wp-block-embed-youtube .wp-block-embed__wrapper,
body.msf-theme .wp-block-embed.is-type-video .wp-block-embed__wrapper {
  display: block !important;
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  padding: 0 !important;
  margin: 0 !important;
  background: #111 !important;
  overflow: hidden !important;
}

body.msf-theme figure.wp-block-embed-youtube iframe,
body.msf-theme .wp-block-embed-youtube iframe,
body.msf-theme .wp-block-embed.is-type-video iframe {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
}

/* Homepage section videos: like Home copy 7.png */
body.msf-theme .msf-section-video,
body.msf-theme .msf-shortcode-video-card,
body.msf-theme figure.wp-block-embed-youtube.msf-section-video,
body.msf-theme .wp-block-embed-youtube.msf-section-video {
  max-width: 560px !important;
  border-radius: 14px !important;
  margin: 0 auto !important;
}

/* Inside page hero videos: like Program.png, tight to nav, no gap. */
body.msf-theme .msf-video-hero-embed,
body.msf-theme .msf-shortcode-video-hero,
body.msf-theme figure.wp-block-embed-youtube.msf-video-hero-embed,
body.msf-theme .wp-block-embed-youtube.msf-video-hero-embed {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  border-radius: 0 !important;
}

/* The hero should sit directly below the header/nav */
body.msf-theme .site-content,
body.msf-theme #content,
body.msf-theme .content-area,
body.msf-theme .site-main,
body.msf-theme main,
body.msf-theme article,
body.msf-theme .hentry,
body.msf-theme .entry-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.msf-theme .entry-content > :first-child {
  margin-top: 0 !important;
}

/* Desktop hero height: wide YouTube hero without cropping controls. */
@media (min-width: 1024px) {
  body.msf-theme .msf-video-hero-embed,
  body.msf-theme .msf-shortcode-video-hero,
  body.msf-theme figure.wp-block-embed-youtube.msf-video-hero-embed .wp-block-embed__wrapper,
  body.msf-theme .wp-block-embed-youtube.msf-video-hero-embed .wp-block-embed__wrapper {
    aspect-ratio: 16 / 7.5 !important;
    min-height: 420px !important;
  }
}

/* Homepage two-column layout for Program/Story sections */
body.msf-theme .msf-wrap.msf-two-col {
  width: min(1120px, calc(100% - 48px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: clamp(36px, 5vw, 72px) !important;
  align-items: center !important;
}

body.msf-theme .msf-wrap.msf-two-col.msf-two-col-reverse > :first-child { order: 2 !important; }
body.msf-theme .msf-wrap.msf-two-col.msf-two-col-reverse > :last-child { order: 1 !important; }

/* Trusted Partners desktop back toward original size */
@media (min-width: 768px) {
  body.msf-theme .trusted-partners img,
  body.msf-theme .msf-partners-section img,
  body.msf-theme .partner-logos img {
    max-width: 150px !important;
    max-height: 118px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
  }

  body.msf-theme .trusted-partners figure,
  body.msf-theme .msf-partners-section figure,
  body.msf-theme .partner-logos figure,
  body.msf-theme .trusted-partners .wp-block-image,
  body.msf-theme .msf-partners-section .wp-block-image,
  body.msf-theme .partner-logos .wp-block-image {
    min-width: 150px !important;
    width: 150px !important;
    height: 126px !important;
    background: #fff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
}

/* Mobile */
@media (max-width: 767px) {
  body.msf-theme .msf-wrap.msf-two-col,
  body.msf-theme .msf-wrap.msf-two-col.msf-two-col-reverse {
    width: min(100% - 40px, 520px) !important;
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  body.msf-theme .msf-wrap.msf-two-col.msf-two-col-reverse > :first-child,
  body.msf-theme .msf-wrap.msf-two-col.msf-two-col-reverse > :last-child {
    order: initial !important;
  }

  body.msf-theme .msf-section-video,
  body.msf-theme .msf-shortcode-video-card,
  body.msf-theme figure.wp-block-embed-youtube.msf-section-video,
  body.msf-theme .wp-block-embed-youtube.msf-section-video {
    max-width: 100% !important;
    border-radius: 12px !important;
  }

  body.msf-theme .msf-video-hero-embed,
  body.msf-theme .msf-shortcode-video-hero,
  body.msf-theme figure.wp-block-embed-youtube.msf-video-hero-embed,
  body.msf-theme .wp-block-embed-youtube.msf-video-hero-embed {
    aspect-ratio: 16 / 9 !important;
    min-height: 0 !important;
  }
}

/* =========================================================
   v7.3 Inspiro hero-safe video reset
   IMPORTANT:
   - Do NOT touch Inspiro's native homepage auto-video hero.
   - Only target content videos inside the page content area.
   - Homepage Program/Story videos remain embedded.
   - Inside-page hero embeds sit tight under nav.
========================================================= */

/* Remove old custom popup/lightbox remnants without affecting Inspiro's native hero. */
body.msf-theme .entry-content .msf-video-modal,
body.msf-theme .entry-content .msf-video-modal *,
body.msf-theme .entry-content .msf-video-lightbox-overlay,
body.msf-theme .entry-content .msf-embed-poster-trigger,
body.msf-theme .entry-content .msf-shortcode-video-button,
body.msf-theme .entry-content a.msf-shortcode-video-button {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Remove old pseudo labels only inside content, never the homepage hero. */
body.msf-theme .entry-content .msf-video-frame::after,
body.msf-theme .entry-content .wp-block-embed::after,
body.msf-theme .entry-content .wp-block-html::after,
body.msf-theme .entry-content .msf-responsive-video::after,
body.msf-theme .entry-content .msf-youtube-embed::after {
  content: none !important;
  display: none !important;
}

/* Remove fake poster states inside page content only. */
body.msf-theme .entry-content .msf-lightbox-ready,
body.msf-theme .entry-content .is-msf-popup-poster,
body.msf-theme .entry-content .msf-video-trigger {
  background-image: none !important;
}

/* Homepage content-section videos only. 
   This intentionally excludes the very top Inspiro video hero. */
body.home.msf-theme .entry-content .msf-video-frame,
body.home.msf-theme .entry-content figure.wp-block-embed-youtube,
body.home.msf-theme .entry-content .wp-block-embed-youtube,
body.home.msf-theme .entry-content .wp-block-embed.is-type-video,
body.home.msf-theme .entry-content .wp-block-html:has(iframe),
body.home.msf-theme .entry-content .msf-responsive-video,
body.home.msf-theme .entry-content .msf-youtube-embed,
body.home.msf-theme .entry-content .msf-shortcode-video,
body.home.msf-theme .entry-content .msf-shortcode-video-card {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  width: 100% !important;
  max-width: 560px !important;
  aspect-ratio: 16 / 9 !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin-inline: auto !important;
  background: #111 !important;
  background-image: none !important;
  overflow: hidden !important;
  border-radius: 12px !important;
}

/* Wrapper reset for homepage content videos only. */
body.home.msf-theme .entry-content .msf-video-frame .wp-block-embed,
body.home.msf-theme .entry-content .msf-video-frame .wp-block-embed__wrapper,
body.home.msf-theme .entry-content figure.wp-block-embed-youtube .wp-block-embed__wrapper,
body.home.msf-theme .entry-content .wp-block-embed-youtube .wp-block-embed__wrapper,
body.home.msf-theme .entry-content .wp-block-embed.is-type-video .wp-block-embed__wrapper {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 16 / 9 !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  background: #111 !important;
  overflow: hidden !important;
}

/* Disable pseudo-ratio overlays for content videos only. */
body.home.msf-theme .entry-content .msf-video-frame .wp-block-embed__wrapper::before,
body.home.msf-theme .entry-content figure.wp-block-embed-youtube .wp-block-embed__wrapper::before,
body.home.msf-theme .entry-content .wp-block-embed-youtube .wp-block-embed__wrapper::before,
body.home.msf-theme .entry-content .wp-block-embed.is-type-video .wp-block-embed__wrapper::before {
  content: none !important;
  display: none !important;
}

/* Iframes inside homepage content videos. */
body.home.msf-theme .entry-content iframe[src*="youtube.com"],
body.home.msf-theme .entry-content iframe[src*="youtu.be"],
body.home.msf-theme .entry-content .msf-video-frame iframe,
body.home.msf-theme .entry-content figure.wp-block-embed-youtube iframe,
body.home.msf-theme .entry-content .wp-block-embed-youtube iframe,
body.home.msf-theme .entry-content .wp-block-embed.is-type-video iframe,
body.home.msf-theme .entry-content .wp-block-html iframe,
body.home.msf-theme .entry-content .msf-responsive-video iframe,
body.home.msf-theme .entry-content .msf-youtube-embed iframe,
body.home.msf-theme .entry-content .msf-shortcode-video iframe {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  border: 0 !important;
  pointer-events: auto !important;
  z-index: 5 !important;
}

/* Inside page hero video: full-width directly under nav, matching Program.png.
   This is NOT applied to the homepage, so Inspiro keeps control of the home hero. */
body.msf-theme:not(.home) .entry-content > .msf-video-hero-embed:first-child,
body.msf-theme:not(.home) .entry-content > .msf-shortcode-video-hero:first-child,
body.msf-theme:not(.home) .entry-content > .msf-interior-fullscreen-video:first-child,
body.msf-theme:not(.home) .entry-content > .msf-video-hero-fullscreen:first-child,
body.msf-theme:not(.home) .entry-content > .msf-interior-video-hero:first-child,
body.msf-theme:not(.home) .entry-content > figure.wp-block-embed-youtube:first-child,
body.msf-theme:not(.home) .entry-content > .wp-block-embed:first-child,
body.msf-theme:not(.home) .entry-content > .wp-block-html:first-child:has(iframe) {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  width: 100vw !important;
  max-width: 100vw !important;
  aspect-ratio: 16 / 9 !important;
  height: auto !important;
  min-height: 0 !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
  background: #111 !important;
  overflow: hidden !important;
  border-radius: 0 !important;
}

body.msf-theme:not(.home) .entry-content > figure.wp-block-embed-youtube:first-child .wp-block-embed__wrapper,
body.msf-theme:not(.home) .entry-content > .wp-block-embed:first-child .wp-block-embed__wrapper {
  display: block !important;
  position: relative !important;
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: inherit !important;
  min-height: inherit !important;
  padding: 0 !important;
  margin: 0 !important;
  background: #111 !important;
  overflow: hidden !important;
}

body.msf-theme:not(.home) .entry-content > figure.wp-block-embed-youtube:first-child iframe,
body.msf-theme:not(.home) .entry-content > .wp-block-embed:first-child iframe,
body.msf-theme:not(.home) .entry-content > .wp-block-html:first-child iframe,
body.msf-theme:not(.home) .entry-content > .msf-video-hero-embed:first-child iframe,
body.msf-theme:not(.home) .entry-content > .msf-shortcode-video-hero:first-child iframe {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
}

/* Force no content gap under nav on inside pages only. */
body.msf-theme:not(.home) #content,
body.msf-theme:not(.home) .site-content,
body.msf-theme:not(.home) .content-area,
body.msf-theme:not(.home) .site-main,
body.msf-theme:not(.home) main,
body.msf-theme:not(.home) article,
body.msf-theme:not(.home) .hentry,
body.msf-theme:not(.home) .entry-content {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

body.msf-theme:not(.home) .entry-content > :first-child,
body.msf-theme:not(.home) .site-main > :first-child,
body.msf-theme:not(.home) main > :first-child {
  margin-top: 0 !important;
}

/* Desktop inside-page hero ratio. */
@media (min-width: 1024px) {
  body.msf-theme:not(.home) .entry-content > .msf-video-hero-embed:first-child,
  body.msf-theme:not(.home) .entry-content > .msf-shortcode-video-hero:first-child,
  body.msf-theme:not(.home) .entry-content > .msf-interior-fullscreen-video:first-child,
  body.msf-theme:not(.home) .entry-content > .msf-video-hero-fullscreen:first-child,
  body.msf-theme:not(.home) .entry-content > .msf-interior-video-hero:first-child,
  body.msf-theme:not(.home) .entry-content > figure.wp-block-embed-youtube:first-child,
  body.msf-theme:not(.home) .entry-content > .wp-block-embed:first-child,
  body.msf-theme:not(.home) .entry-content > .wp-block-html:first-child:has(iframe) {
    aspect-ratio: 16 / 7.5 !important;
    min-height: 420px !important;
  }
}

/* Homepage two-column sections remain stable. */
body.msf-theme .msf-wrap.msf-two-col {
  width: min(1120px, calc(100% - 48px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: clamp(36px, 5vw, 72px) !important;
  align-items: center !important;
}

body.msf-theme .msf-wrap.msf-two-col.msf-two-col-reverse > :first-child { order: 2 !important; }
body.msf-theme .msf-wrap.msf-two-col.msf-two-col-reverse > :last-child { order: 1 !important; }

@media (max-width: 767px) {
  body.msf-theme .msf-wrap.msf-two-col,
  body.msf-theme .msf-wrap.msf-two-col.msf-two-col-reverse {
    width: min(100% - 40px, 520px) !important;
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  body.msf-theme .msf-wrap.msf-two-col.msf-two-col-reverse > :first-child,
  body.msf-theme .msf-wrap.msf-two-col.msf-two-col-reverse > :last-child {
    order: initial !important;
  }

  body.home.msf-theme .entry-content .msf-section-video,
  body.home.msf-theme .entry-content .msf-shortcode-video-card,
  body.home.msf-theme .entry-content .msf-video-frame,
  body.home.msf-theme .entry-content figure.wp-block-embed-youtube,
  body.home.msf-theme .entry-content .wp-block-embed-youtube,
  body.home.msf-theme .entry-content .wp-block-html:has(iframe) {
    max-width: 100% !important;
    border-radius: 12px !important;
  }

  body.msf-theme:not(.home) .entry-content > .msf-video-hero-embed:first-child,
  body.msf-theme:not(.home) .entry-content > .msf-shortcode-video-hero:first-child,
  body.msf-theme:not(.home) .entry-content > .msf-interior-fullscreen-video:first-child,
  body.msf-theme:not(.home) .entry-content > .msf-video-hero-fullscreen:first-child,
  body.msf-theme:not(.home) .entry-content > .msf-interior-video-hero:first-child,
  body.msf-theme:not(.home) .entry-content > figure.wp-block-embed-youtube:first-child,
  body.msf-theme:not(.home) .entry-content > .wp-block-embed:first-child,
  body.msf-theme:not(.home) .entry-content > .wp-block-html:first-child:has(iframe) {
    aspect-ratio: 16 / 9 !important;
    min-height: 0 !important;
  }
}

/* =========================================================
   v7.4 section video safe patch
   Adds support for inside-page content videos like the Bring page.
   Does NOT target the native Inspiro homepage auto-video hero.
========================================================= */

/* Regular content videos across all pages, excluding Inspiro hero area. */
body.msf-theme .entry-content .msf-section-video,
body.msf-theme .entry-content .msf-video-frame,
body.msf-theme .entry-content figure.wp-block-embed-youtube.msf-section-video,
body.msf-theme .entry-content .wp-block-embed-youtube.msf-section-video,
body.msf-theme .entry-content .wp-block-embed.is-type-video.msf-section-video,
body.msf-theme .entry-content .wp-block-html.msf-section-video:has(iframe) {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  width: 100% !important;
  max-width: 560px !important;
  aspect-ratio: 16 / 9 !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin-inline: auto !important;
  background: #111 !important;
  background-image: none !important;
  overflow: hidden !important;
  border-radius: 12px !important;
}

/* Wrapper support for regular content videos. */
body.msf-theme .entry-content .msf-section-video .wp-block-embed__wrapper,
body.msf-theme .entry-content .msf-video-frame .wp-block-embed__wrapper,
body.msf-theme .entry-content figure.wp-block-embed-youtube.msf-section-video .wp-block-embed__wrapper,
body.msf-theme .entry-content .wp-block-embed-youtube.msf-section-video .wp-block-embed__wrapper,
body.msf-theme .entry-content .wp-block-embed.is-type-video.msf-section-video .wp-block-embed__wrapper {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 16 / 9 !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  background: #111 !important;
  overflow: hidden !important;
}

/* Remove old pseudo label on content videos. */
body.msf-theme .entry-content .msf-section-video::after,
body.msf-theme .entry-content .msf-video-frame::after,
body.msf-theme .entry-content figure.wp-block-embed-youtube.msf-section-video::after,
body.msf-theme .entry-content .wp-block-embed-youtube.msf-section-video::after {
  content: none !important;
  display: none !important;
}

/* Iframes inside regular content videos. */
body.msf-theme .entry-content .msf-section-video iframe,
body.msf-theme .entry-content .msf-video-frame iframe,
body.msf-theme .entry-content figure.wp-block-embed-youtube.msf-section-video iframe,
body.msf-theme .entry-content .wp-block-embed-youtube.msf-section-video iframe,
body.msf-theme .entry-content .wp-block-embed.is-type-video.msf-section-video iframe,
body.msf-theme .entry-content .wp-block-html.msf-section-video iframe {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  border: 0 !important;
  pointer-events: auto !important;
  z-index: 5 !important;
}

@media (max-width: 767px) {
  body.msf-theme .entry-content .msf-section-video,
  body.msf-theme .entry-content .msf-video-frame,
  body.msf-theme .entry-content figure.wp-block-embed-youtube.msf-section-video,
  body.msf-theme .entry-content .wp-block-embed-youtube.msf-section-video,
  body.msf-theme .entry-content .wp-block-embed.is-type-video.msf-section-video,
  body.msf-theme .entry-content .wp-block-html.msf-section-video:has(iframe) {
    max-width: 100% !important;
    border-radius: 12px !important;
  }
}

/* =========================================================
   v7.5 mobile accessibility polish
   - Restores optional desktop hamburger visibility.
   - Adds safe mobile top spacing to blog/archive/single posts.
   - Prevents inside-page video heroes from cropping on mobile.
   - Makes Trusted Partners scroll 3-at-a-time on mobile.
   - Keeps WCAG-friendly touch targets and focus states.
========================================================= */

/* ---------- Optional desktop hamburger / More menu ---------- */
@media (min-width: 1024px) {
  body.msf-theme .msf-more-menu {
    display: block !important;
    position: fixed !important;
    top: 22px !important;
    right: max(24px, calc((100vw - 1180px) / 2)) !important;
    z-index: 100010 !important;
  }

  body.admin-bar.msf-theme .msf-more-menu {
    top: 54px !important;
  }

  body.msf-theme .msf-more-menu-toggle {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    min-height: 48px !important;
    border-radius: 999px !important;
    border: 2px solid rgba(255,255,255,.75) !important;
    background: rgba(0, 121, 128, .82) !important;
    color: #fff !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.18) !important;
    display: grid !important;
    place-items: center !important;
  }

  body.msf-theme .msf-more-menu-toggle span:not(.screen-reader-text),
  body.msf-theme .msf-more-menu-toggle span:not(.screen-reader-text)::before,
  body.msf-theme .msf-more-menu-toggle span:not(.screen-reader-text)::after {
    width: 20px !important;
    height: 2px !important;
    background: currentColor !important;
  }

  body.msf-theme .msf-more-menu-panel {
    position: absolute !important;
    top: calc(100% + 12px) !important;
    right: 0 !important;
    min-width: 260px !important;
    max-width: min(340px, calc(100vw - 48px)) !important;
    padding: 18px !important;
    border-radius: 18px !important;
    background: #141214 !important;
    color: #fff !important;
    box-shadow: 0 18px 44px rgba(0,0,0,.28) !important;
  }

  body.msf-theme .msf-more-menu-panel a {
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    color: #fff !important;
    font-weight: 800 !important;
    text-decoration: none !important;
  }

  body.msf-theme .msf-more-menu-panel a:hover,
  body.msf-theme .msf-more-menu-panel a:focus-visible {
    color: var(--msf-yellow, #f7d818) !important;
  }
}

/* Do not show the optional desktop More menu over the mobile layout. */
@media (max-width: 1023px) {
  body.msf-theme .msf-more-menu {
    display: none !important;
  }
}

/* ---------- Blog/archive/single-post mobile header clearance ---------- */
@media (max-width: 767px) {
  body.msf-theme.blog .site-content,
  body.msf-theme.archive .site-content,
  body.msf-theme.search .site-content,
  body.msf-theme.single-post .site-content,
  body.msf-theme.blog .content-area,
  body.msf-theme.archive .content-area,
  body.msf-theme.search .content-area,
  body.msf-theme.single-post .content-area,
  body.msf-theme.blog .site-main,
  body.msf-theme.archive .site-main,
  body.msf-theme.search .site-main,
  body.msf-theme.single-post .site-main,
  body.msf-theme.blog #primary,
  body.msf-theme.archive #primary,
  body.msf-theme.search #primary,
  body.msf-theme.single-post #primary {
    padding-top: 112px !important;
  }

  body.msf-theme.blog .entry-header,
  body.msf-theme.archive .entry-header,
  body.msf-theme.search .entry-header,
  body.msf-theme.single-post .entry-header,
  body.msf-theme.blog .page-header,
  body.msf-theme.archive .page-header,
  body.msf-theme.search .page-header {
    margin-top: 0 !important;
  }

  body.msf-theme.blog h1,
  body.msf-theme.archive h1,
  body.msf-theme.search h1,
  body.msf-theme.single-post h1,
  body.msf-theme.blog h2,
  body.msf-theme.archive h2,
  body.msf-theme.search h2 {
    overflow-wrap: anywhere;
    text-wrap: balance;
  }
}

/* ---------- Inside-page video hero mobile crop fix ---------- */
@media (max-width: 767px) {
  body.msf-theme:not(.home) .entry-content > .msf-video-hero-embed:first-child,
  body.msf-theme:not(.home) .entry-content > .msf-shortcode-video-hero:first-child,
  body.msf-theme:not(.home) .entry-content > .msf-interior-fullscreen-video:first-child,
  body.msf-theme:not(.home) .entry-content > .msf-video-hero-fullscreen:first-child,
  body.msf-theme:not(.home) .entry-content > .msf-interior-video-hero:first-child,
  body.msf-theme:not(.home) .entry-content > figure.wp-block-embed-youtube:first-child,
  body.msf-theme:not(.home) .entry-content > .wp-block-embed:first-child,
  body.msf-theme:not(.home) .entry-content > .wp-block-html:first-child:has(iframe) {
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    background: #111 !important;
  }

  body.msf-theme:not(.home) .entry-content > figure.wp-block-embed-youtube:first-child .wp-block-embed__wrapper,
  body.msf-theme:not(.home) .entry-content > .wp-block-embed:first-child .wp-block-embed__wrapper,
  body.msf-theme:not(.home) .entry-content > .wp-block-html:first-child:has(iframe),
  body.msf-theme:not(.home) .entry-content > .msf-video-hero-embed:first-child,
  body.msf-theme:not(.home) .entry-content > .msf-shortcode-video-hero:first-child {
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
  }

  body.msf-theme:not(.home) .entry-content > figure.wp-block-embed-youtube:first-child iframe,
  body.msf-theme:not(.home) .entry-content > .wp-block-embed:first-child iframe,
  body.msf-theme:not(.home) .entry-content > .wp-block-html:first-child iframe,
  body.msf-theme:not(.home) .entry-content > .msf-video-hero-embed:first-child iframe,
  body.msf-theme:not(.home) .entry-content > .msf-shortcode-video-hero:first-child iframe {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
  }
}

/* ---------- Trusted Partners mobile: readable 3-at-a-time scroller ---------- */
@media (max-width: 767px) {
  body.msf-theme :is(.msf-partners-section, .trusted-partners, .partner-logos, .msf-trusted) {
    overflow: hidden !important;
  }

  body.msf-theme :is(.msf-partners-section, .trusted-partners, .partner-logos, .msf-trusted) 
  :is(.wp-block-gallery, .is-layout-flex, .wp-block-group, ul, .gallery, .swiper-wrapper) {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: thin !important;
    padding: 6px 20px 12px !important;
    margin-left: -20px !important;
    margin-right: -20px !important;
  }

  body.msf-theme :is(.msf-partners-section, .trusted-partners, .partner-logos, .msf-trusted) 
  :is(.wp-block-image, figure, li, .swiper-slide) {
    flex: 0 0 calc((100vw - 70px) / 3) !important;
    width: calc((100vw - 70px) / 3) !important;
    min-width: calc((100vw - 70px) / 3) !important;
    max-width: calc((100vw - 70px) / 3) !important;
    height: 82px !important;
    min-height: 82px !important;
    margin: 0 !important;
    padding: 8px !important;
    background: #fff !important;
    border-radius: 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    scroll-snap-align: start !important;
  }

  body.msf-theme :is(.msf-partners-section, .trusted-partners, .partner-logos, .msf-trusted) img {
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 64px !important;
    object-fit: contain !important;
    display: block !important;
    margin: 0 auto !important;
  }

  /* Keep the heading readable and not crowded. */
  body.msf-theme :is(.msf-partners-section, .trusted-partners, .partner-logos, .msf-trusted) h2 {
    font-size: clamp(1.65rem, 8vw, 2.2rem) !important;
    line-height: 1.05 !important;
    margin-bottom: 22px !important;
    text-align: center !important;
    text-wrap: balance;
  }
}

/* ---------- Consistent accessible touch targets ---------- */
@media (max-width: 767px) {
  body.msf-theme a,
  body.msf-theme button,
  body.msf-theme .wp-block-button__link {
    min-height: 44px;
  }
}

/* =========================================================
   v7.7 desktop hamburger visible
   Header markup does not place the optional More menu in the nav flow,
   so we position it safely at the far right and reserve room for it.
========================================================= */

@media (min-width: 1024px) {
  /* Reserve space so the last nav item does not sit under the optional hamburger. */
  body.msf-theme .site-header .inner-wrap,
  body.msf-theme .site-header .header-inner,
  body.msf-theme .site-header .site-branding + nav,
  body.msf-theme .site-header .main-navigation,
  body.msf-theme .site-header .navbar,
  body.msf-theme .site-header nav {
    padding-right: 92px !important;
  }

  body.msf-theme .msf-more-menu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: fixed !important;
    top: 23px !important;
    right: 42px !important;
    left: auto !important;
    bottom: auto !important;
    margin: 0 !important;
    transform: none !important;
    z-index: 100020 !important;
    width: 48px !important;
    height: 48px !important;
    pointer-events: auto !important;
  }

  body.admin-bar.msf-theme .msf-more-menu {
    top: 55px !important;
  }

  body.msf-theme .msf-more-menu-toggle {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    min-height: 48px !important;
    border-radius: 999px !important;
    border: 2px solid rgba(255,255,255,.78) !important;
    background: rgba(0, 121, 128, .9) !important;
    color: #fff !important;
    box-shadow: 0 6px 18px rgba(0,0,0,.2) !important;
    display: grid !important;
    place-items: center !important;
    padding: 0 !important;
    cursor: pointer !important;
  }

  body.msf-theme .msf-more-menu-toggle:hover,
  body.msf-theme .msf-more-menu-toggle:focus-visible {
    border-color: var(--msf-yellow, #f7d818) !important;
    outline: 3px solid rgba(247, 216, 24, .45) !important;
    outline-offset: 3px !important;
  }

  body.msf-theme .msf-more-menu-toggle span:not(.screen-reader-text),
  body.msf-theme .msf-more-menu-toggle span:not(.screen-reader-text)::before,
  body.msf-theme .msf-more-menu-toggle span:not(.screen-reader-text)::after {
    width: 21px !important;
    height: 2px !important;
    background: currentColor !important;
  }

  body.msf-theme .msf-more-menu-panel {
    position: absolute !important;
    top: calc(100% + 12px) !important;
    right: 0 !important;
    left: auto !important;
    min-width: 260px !important;
    max-width: min(340px, calc(100vw - 48px)) !important;
    padding: 18px !important;
    border-radius: 18px !important;
    background: #141214 !important;
    color: #fff !important;
    box-shadow: 0 18px 44px rgba(0,0,0,.28) !important;
  }

  body.msf-theme .msf-more-menu-panel a {
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    color: #fff !important;
    font-weight: 800 !important;
    text-decoration: none !important;
  }

  body.msf-theme .msf-more-menu-panel a:hover,
  body.msf-theme .msf-more-menu-panel a:focus-visible {
    color: var(--msf-yellow, #f7d818) !important;
  }
}

/* Prevent desktop optional menu from appearing on tablet/mobile. */
@media (max-width: 1023px) {
  body.msf-theme .msf-more-menu {
    display: none !important;
  }
}

/* Slightly tighten nav spacing on narrower laptop widths. */
@media (min-width: 1024px) and (max-width: 1180px) {
  body.msf-theme .site-header .inner-wrap,
  body.msf-theme .site-header .header-inner,
  body.msf-theme .site-header .site-branding + nav,
  body.msf-theme .site-header .main-navigation,
  body.msf-theme .site-header .navbar,
  body.msf-theme .site-header nav {
    padding-right: 84px !important;
  }

  body.msf-theme .msf-more-menu {
    right: 28px !important;
  }
}

/* =========================================================
   v8.3 clean updates + single posts
   Clean, scoped blog system. No breadcrumbs.
========================================================= */

/* ---------- Updates / archive container ---------- */
body.msf-theme .msf-blog-main {
  width: min(1180px, calc(100% - 48px));
  margin-inline: auto;
  padding-top: clamp(104px, 9vw, 136px);
  padding-bottom: clamp(64px, 8vw, 110px);
}

/* Editable intro: spacing only. Typography stays controlled in the editor. */
body.msf-theme .msf-blog-main > .msf-updates-intro {
  width: min(920px, 100%);
  margin: 0 auto clamp(34px, 4vw, 56px);
  padding: clamp(20px, 3vw, 34px);
  border-radius: 20px;
  background: rgba(244, 237, 218, .74);
}

body.msf-theme .msf-blog-main > .msf-updates-intro .msf-updates-intro__inner {
  max-width: 780px;
  margin-inline: auto;
  text-align: center;
}

/* Do NOT force custom intro headline sizes. */
body.msf-theme .msf-blog-main > .msf-updates-intro :where(h1, h2, h3, h4, p) {
  max-width: 100%;
}

/* Archive/category header */
body.msf-theme .msf-archive-header {
  width: min(920px, 100%);
  margin: 0 auto clamp(34px, 4vw, 56px);
  text-align: center;
}

body.msf-theme .msf-archive-header h1 {
  font-size: clamp(2.1rem, 5vw, 3.6rem);
  line-height: 1;
  margin: 0 0 12px;
  text-wrap: balance;
}

/* ---------- Updates cards ---------- */
body.msf-theme .msf-post-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(42px, 5vw, 72px) clamp(28px, 3vw, 44px);
  align-items: start;
}

body.msf-theme .msf-post-card {
  display: block;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

body.msf-theme .msf-post-card__media {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-radius: 12px;
  background: #efe7d5;
  margin: 0 0 14px;
  text-decoration: none;
}

body.msf-theme .msf-post-card__media img,
body.msf-theme .msf-post-card__placeholder {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

body.msf-theme .msf-post-card__placeholder {
  background:
    linear-gradient(135deg, rgba(0, 121, 128, .18), rgba(247, 216, 24, .16)),
    #efe7d5;
}

body.msf-theme .msf-card-meta {
  display: block;
  margin: 0 0 8px;
  font-size: .78rem;
  line-height: 1.35;
  font-weight: 800;
  color: #006f75;
  text-transform: uppercase;
  letter-spacing: .035em;
}

body.msf-theme .msf-card-meta a {
  color: #006f75;
  text-decoration: none;
}

body.msf-theme .msf-card-meta a:hover,
body.msf-theme .msf-card-meta a:focus-visible {
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

body.msf-theme .msf-post-card__title {
  font-size: clamp(1.15rem, 1.35vw, 1.65rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.015em;
  margin: 0 0 14px;
  text-align: left;
  max-width: 100%;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  text-wrap: balance;
}

body.msf-theme .msf-post-card__title a {
  color: #222;
  text-decoration: none;
}

body.msf-theme .msf-post-card__title a:hover,
body.msf-theme .msf-post-card__title a:focus-visible {
  color: #007981;
  text-decoration: underline;
  text-decoration-thickness: 3px;
  text-underline-offset: 5px;
}

body.msf-theme .msf-post-card__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: .55rem .9rem;
  border: 2px solid #cfc6b2;
  border-radius: 999px;
  background: transparent;
  color: #1f1b1b;
  font-size: .86rem;
  font-weight: 900;
  text-decoration: none;
}

body.msf-theme .msf-post-card__button:hover,
body.msf-theme .msf-post-card__button:focus-visible {
  background: #007981;
  border-color: #007981;
  color: #fff;
}

/* Hide old theme excerpts/rules only inside our card template. */
body.msf-theme .msf-post-card :where(.entry-summary, .entry-content, .post-content, .post-excerpt, .excerpt, .summary, hr, .wp-block-separator) {
  display: none !important;
}

/* Pagination */
body.msf-theme .navigation.pagination {
  margin: clamp(48px, 6vw, 76px) auto 0;
  text-align: center;
}

body.msf-theme .navigation.pagination .nav-links {
  display: flex;
  gap: 10px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}

body.msf-theme .navigation.pagination a,
body.msf-theme .navigation.pagination span {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ---------- Single posts ---------- */
body.msf-theme .msf-single-main {
  width: min(920px, calc(100% - 48px));
  margin-inline: auto;
  padding-top: clamp(104px, 9vw, 136px);
  padding-bottom: clamp(64px, 8vw, 110px);
}

body.msf-theme .msf-single-article {
  width: 100%;
  max-width: none;
  margin: 0 auto;
  padding: 0;
}

body.msf-theme .msf-single-header {
  margin-bottom: clamp(26px, 4vw, 44px);
}

body.msf-theme .msf-single-title {
  font-size: clamp(2.25rem, 4.5vw, 3.25rem) !important;
  line-height: 1.03 !important;
  letter-spacing: -0.03em;
  margin: 0;
  text-wrap: balance;
}

body.msf-theme .msf-single-content {
  max-width: 760px;
  margin: 0 auto;
  font-size: clamp(1.05rem, 1.25vw, 1.16rem);
  line-height: 1.72;
}

body.msf-theme .msf-single-content p {
  margin-bottom: 1.45em;
}

body.msf-theme .msf-single-content img {
  max-width: 100%;
  height: auto;
  border-radius: 14px;
}

/* Gallery remains normal-sized and readable. */
body.msf-theme .msf-single-content .wp-block-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: clamp(28px, 5vw, 48px) auto;
}

body.msf-theme .msf-single-content .wp-block-gallery figure {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 14px;
  margin: 0;
}

body.msf-theme .msf-single-content .wp-block-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Intentional desktop image wrap. */
@media (min-width: 768px) {
  body.msf-theme .msf-single-content .alignleft,
  body.msf-theme .msf-single-content figure.alignleft {
    float: left;
    max-width: min(42%, 340px);
    margin: .35em 1.5em 1em 0;
  }

  body.msf-theme .msf-single-content .alignright,
  body.msf-theme .msf-single-content figure.alignright {
    float: right;
    max-width: min(42%, 340px);
    margin: .35em 0 1em 1.5em;
  }

  body.msf-theme .msf-single-content .alignleft img,
  body.msf-theme .msf-single-content .alignright img {
    width: 100%;
  }
}

/* Single post prev/next */
body.msf-theme .msf-single-post-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin: clamp(48px, 7vw, 84px) auto 0;
  max-width: 760px;
}

body.msf-theme .msf-single-post-nav a {
  color: #007981;
  font-weight: 900;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

body.msf-theme .msf-single-post-nav div:last-child {
  text-align: right;
}

/* ---------- Responsive ---------- */
@media (max-width: 999px) {
  body.msf-theme .msf-post-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 699px) {
  body.msf-theme .msf-blog-main,
  body.msf-theme .msf-single-main {
    width: min(100% - 40px, 560px);
    padding-top: 94px;
  }

  body.msf-theme .msf-post-grid {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  body.msf-theme .msf-post-card__title {
    font-size: clamp(1.45rem, 6vw, 2rem) !important;
    text-align: center;
  }

  body.msf-theme .msf-card-meta {
    text-align: center;
  }

  body.msf-theme .msf-post-card__button {
    margin-inline: auto;
  }

  body.msf-theme .msf-single-title {
    font-size: clamp(2rem, 9vw, 3.05rem) !important;
  }

  body.msf-theme .msf-single-content .alignleft,
  body.msf-theme .msf-single-content .alignright,
  body.msf-theme .msf-single-content figure.alignleft,
  body.msf-theme .msf-single-content figure.alignright {
    float: none;
    max-width: 100%;
    margin: 28px auto;
  }

  body.msf-theme .msf-single-content .wp-block-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  body.msf-theme .msf-single-post-nav {
    grid-template-columns: 1fr;
  }

  body.msf-theme .msf-single-post-nav div,
  body.msf-theme .msf-single-post-nav div:last-child {
    text-align: left;
  }
}

/* =========================================================
   v8.4 updates/single refinement
   - 12 posts per page handled in PHP.
   - Removes card buttons from template.
   - Tighter Updates rows.
   - Centered card headlines.
   - Safer single-post galleries.
   - More room between next/previous links and footer.
========================================================= */

/* Updates grid: tighter rows, still breathable */
body.msf-theme .msf-post-grid {
  gap: clamp(30px, 3.5vw, 48px) clamp(28px, 3vw, 44px) !important;
}

/* Updates cards: center text for easier scanning */
body.msf-theme .msf-post-card__body,
body.msf-theme .msf-post-card__title,
body.msf-theme .msf-card-meta {
  text-align: center !important;
}

body.msf-theme .msf-post-card__title,
body.msf-theme .msf-post-card h2.msf-post-card__title {
  font-size: clamp(1.15rem, 1.25vw, 1.55rem) !important;
  line-height: 1.08 !important;
  margin-bottom: 0 !important;
  max-width: 92% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Entire media and title remain the visual click targets. No button needed. */
body.msf-theme .msf-post-card__button {
  display: none !important;
}

/* Slightly reduce giant page-top feel without crowding the fixed nav */
body.msf-theme .msf-blog-main {
  padding-top: clamp(96px, 8vw, 124px) !important;
}

/* Intro remains editable; only tighten the bottom spacing */
body.msf-theme .msf-blog-main > .msf-updates-intro {
  margin-bottom: clamp(28px, 3.5vw, 44px) !important;
}

/* Pagination gets enough space but not a canyon */
body.msf-theme .navigation.pagination {
  margin-top: clamp(38px, 5vw, 60px) !important;
}

/* Single post: more room between article nav and footer */
body.msf-theme .msf-single-main {
  padding-bottom: clamp(110px, 12vw, 170px) !important;
}

body.msf-theme .msf-single-post-nav {
  margin-top: clamp(64px, 8vw, 104px) !important;
  margin-bottom: clamp(36px, 5vw, 70px) !important;
  padding: clamp(24px, 3vw, 34px) 0 0 !important;
  border-top: 2px solid rgba(0, 121, 128, .18) !important;
}

/* Make next/previous links feel intentional, not lost */
body.msf-theme .msf-single-post-nav a {
  display: inline-flex !important;
  min-height: 44px !important;
  align-items: center !important;
  color: #007981 !important;
  font-weight: 900 !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 3px !important;
}

/* Single post gallery repair: support both old gallery and Gutenberg gallery markup */
body.msf-theme .msf-single-content :where(.wp-block-gallery, .gallery) {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 14px !important;
  margin: clamp(28px, 5vw, 48px) auto !important;
  max-width: 900px !important;
  width: 100% !important;
}

body.msf-theme .msf-single-content :where(.wp-block-gallery, .gallery) :where(figure, .gallery-item) {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  aspect-ratio: 4 / 3 !important;
  overflow: hidden !important;
  border-radius: 14px !important;
  background: #efe7d5 !important;
}

body.msf-theme .msf-single-content :where(.wp-block-gallery, .gallery) img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 14px !important;
}

/* Captions stay readable */
body.msf-theme .msf-single-content :where(.wp-block-gallery, .gallery) figcaption,
body.msf-theme .msf-single-content :where(.wp-block-gallery, .gallery) .wp-caption-text {
  font-size: .85rem !important;
  line-height: 1.35 !important;
}

/* Non-gallery inserted images should not be forced into gallery behavior */
body.msf-theme .msf-single-content > figure:not(.wp-block-gallery),
body.msf-theme .msf-single-content > .wp-block-image {
  max-width: 100% !important;
  margin-top: clamp(24px, 4vw, 38px) !important;
  margin-bottom: clamp(24px, 4vw, 38px) !important;
}

/* Accessibility: visible keyboard focus on cards */
body.msf-theme .msf-post-card a:focus-visible,
body.msf-theme .msf-single-post-nav a:focus-visible {
  outline: 3px solid #f7d818 !important;
  outline-offset: 4px !important;
  border-radius: 8px !important;
}

/* Tablet */
@media (max-width: 999px) {
  body.msf-theme .msf-post-grid {
    gap: 34px 28px !important;
  }
}

/* Mobile */
@media (max-width: 699px) {
  body.msf-theme .msf-blog-main {
    padding-top: 92px !important;
  }

  body.msf-theme .msf-post-grid {
    gap: 36px !important;
  }

  body.msf-theme .msf-post-card__title,
  body.msf-theme .msf-post-card h2.msf-post-card__title {
    font-size: clamp(1.35rem, 6vw, 1.85rem) !important;
    max-width: 100% !important;
  }

  body.msf-theme .msf-post-card__media {
    margin-bottom: 12px !important;
  }

  body.msf-theme .msf-single-content :where(.wp-block-gallery, .gallery) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  body.msf-theme .msf-single-main {
    padding-bottom: 96px !important;
  }

  body.msf-theme .msf-single-post-nav {
    margin-top: 54px !important;
    margin-bottom: 44px !important;
  }
}

/* =========================================================
   v8.5 updates/single polish
   Smaller, safer refinements only:
   - lighter Updates headlines
   - more leading
   - tighter row gaps
   - centered single post headline
   - actual desktop text wrap for left/right images
========================================================= */

/* Updates grid: tighter vertical rhythm */
body.msf-theme .msf-post-grid {
  gap: clamp(24px, 2.8vw, 38px) clamp(28px, 3vw, 44px) !important;
}

/* Updates cards: lighter, less brick-like headlines */
body.msf-theme .msf-post-card__title,
body.msf-theme .msf-post-card h2.msf-post-card__title,
body.msf-theme .msf-post-card__title a {
  font-weight: 750 !important;
  font-size: clamp(1.08rem, 1.18vw, 1.45rem) !important;
  line-height: 1.18 !important;
  letter-spacing: -0.01em !important;
}

/* Keep card headings centered and readable */
body.msf-theme .msf-post-card__title,
body.msf-theme .msf-post-card h2.msf-post-card__title {
  text-align: center !important;
  max-width: 94% !important;
  margin-inline: auto !important;
}

/* Slightly reduce gap between image and metadata/title */
body.msf-theme .msf-post-card__media {
  margin-bottom: 10px !important;
}

body.msf-theme .msf-card-meta {
  margin-bottom: 6px !important;
}

/* Single posts: center the main headline and meta */
body.msf-theme .msf-single-header {
  text-align: center !important;
  max-width: 860px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.msf-theme .msf-single-header .msf-card-meta {
  text-align: center !important;
}

body.msf-theme .msf-single-title {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Single content stays readable and centered as a column */
body.msf-theme .msf-single-content {
  max-width: 760px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Desktop image wrap repair.
   This targets Gutenberg Image blocks, classic aligned images, and figures. */
@media (min-width: 768px) {
  body.msf-theme .msf-single-content .wp-block-image.alignleft,
  body.msf-theme .msf-single-content figure.alignleft,
  body.msf-theme .msf-single-content img.alignleft {
    float: left !important;
    clear: none !important;
    width: min(42%, 340px) !important;
    max-width: min(42%, 340px) !important;
    margin: .35em 1.6em 1em 0 !important;
  }

  body.msf-theme .msf-single-content .wp-block-image.alignright,
  body.msf-theme .msf-single-content figure.alignright,
  body.msf-theme .msf-single-content img.alignright {
    float: right !important;
    clear: none !important;
    width: min(42%, 340px) !important;
    max-width: min(42%, 340px) !important;
    margin: .35em 0 1em 1.6em !important;
  }

  body.msf-theme .msf-single-content .wp-block-image.alignleft img,
  body.msf-theme .msf-single-content figure.alignleft img,
  body.msf-theme .msf-single-content .wp-block-image.alignright img,
  body.msf-theme .msf-single-content figure.alignright img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
  }

  /* Prevent galleries from floating/wrapping accidentally */
  body.msf-theme .msf-single-content .wp-block-gallery.alignleft,
  body.msf-theme .msf-single-content .wp-block-gallery.alignright,
  body.msf-theme .msf-single-content .gallery.alignleft,
  body.msf-theme .msf-single-content .gallery.alignright {
    float: none !important;
    width: 100% !important;
    max-width: 900px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* Clear after content so floated images don't collapse parent spacing */
  body.msf-theme .msf-single-content::after {
    content: "";
    display: table;
    clear: both;
  }
}

/* Mobile: no wrapping. Stacked images are more readable and accessible. */
@media (max-width: 767px) {
  body.msf-theme .msf-single-content .wp-block-image.alignleft,
  body.msf-theme .msf-single-content figure.alignleft,
  body.msf-theme .msf-single-content img.alignleft,
  body.msf-theme .msf-single-content .wp-block-image.alignright,
  body.msf-theme .msf-single-content figure.alignright,
  body.msf-theme .msf-single-content img.alignright {
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 28px auto !important;
  }

  body.msf-theme .msf-post-grid {
    gap: 32px !important;
  }

  body.msf-theme .msf-post-card__title,
  body.msf-theme .msf-post-card h2.msf-post-card__title,
  body.msf-theme .msf-post-card__title a {
    font-size: clamp(1.25rem, 5.5vw, 1.7rem) !important;
    line-height: 1.16 !important;
  }
}

/* =========================================================
   v8.6 mobile blog/single polish
   - Fixes mobile headline cut-off under sticky header.
   - Centers previous/next post teases.
   - Adds breathing room before footer.
   - Improves mobile tap targets and readability.
========================================================= */

body.msf-theme .msf-blog-main,
body.msf-theme .msf-single-main {
  padding-top: clamp(118px, 10vw, 150px) !important;
}

body.msf-theme .msf-single-header {
  text-align: center !important;
  max-width: 900px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.msf-theme .msf-single-title {
  text-align: center !important;
  max-width: 880px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.msf-theme .msf-single-post-nav {
  max-width: 860px !important;
  margin-top: clamp(70px, 9vw, 120px) !important;
  margin-bottom: clamp(70px, 9vw, 120px) !important;
  padding-top: clamp(28px, 4vw, 42px) !important;
  border-top: 2px solid rgba(0, 121, 128, .18) !important;
  text-align: center !important;
  align-items: center !important;
}

body.msf-theme .msf-single-post-nav div,
body.msf-theme .msf-single-post-nav div:last-child {
  text-align: center !important;
}

body.msf-theme .msf-single-post-nav a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 48px !important;
  padding: .55rem .75rem !important;
  color: #007981 !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  text-align: center !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 4px !important;
  border-radius: 999px !important;
}

body.msf-theme .msf-single-main {
  padding-bottom: clamp(120px, 14vw, 190px) !important;
}

body.msf-theme .msf-post-card__media,
body.msf-theme .msf-post-card__title a {
  transition: transform .18s ease, opacity .18s ease, color .18s ease;
}

@media (hover: hover) {
  body.msf-theme .msf-post-card:hover .msf-post-card__media {
    transform: translateY(-2px);
  }
}

body.msf-theme .msf-post-card__media:focus-visible,
body.msf-theme .msf-post-card__title a:focus-visible,
body.msf-theme .msf-single-post-nav a:focus-visible {
  outline: 3px solid #f7d818 !important;
  outline-offset: 4px !important;
}

@media (max-width: 999px) {
  body.msf-theme .msf-blog-main,
  body.msf-theme .msf-single-main {
    padding-top: 124px !important;
  }

  body.msf-theme .msf-single-post-nav {
    gap: 18px !important;
  }
}

@media (max-width: 699px) {
  body.msf-theme .msf-blog-main,
  body.msf-theme .msf-single-main {
    width: min(100% - 40px, 560px) !important;
    padding-top: 126px !important;
    padding-bottom: 96px !important;
  }

  body.msf-theme .msf-blog-main > .msf-updates-intro {
    margin-top: 0 !important;
    margin-bottom: 30px !important;
  }

  body.msf-theme .msf-blog-main > .msf-updates-intro :where(h1, h2, h3) {
    line-height: 1.08 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
  }

  body.msf-theme .msf-post-card__title,
  body.msf-theme .msf-post-card h2.msf-post-card__title,
  body.msf-theme .msf-post-card__title a {
    line-height: 1.18 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
  }

  body.msf-theme .msf-single-header {
    margin-bottom: 28px !important;
  }

  body.msf-theme .msf-single-title {
    font-size: clamp(2rem, 8.4vw, 3rem) !important;
    line-height: 1.08 !important;
    text-align: center !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
    text-wrap: balance;
  }

  body.msf-theme .msf-single-content {
    font-size: 1.03rem !important;
    line-height: 1.68 !important;
  }

  body.msf-theme .msf-single-post-nav {
    display: grid !important;
    grid-template-columns: 1fr !important;
    max-width: 100% !important;
    gap: 12px !important;
    margin-top: 58px !important;
    margin-bottom: 72px !important;
    padding-top: 28px !important;
    text-align: center !important;
  }

  body.msf-theme .msf-single-post-nav div,
  body.msf-theme .msf-single-post-nav div:last-child {
    text-align: center !important;
  }

  body.msf-theme .msf-single-post-nav a {
    width: 100% !important;
    max-width: 360px !important;
    margin-inline: auto !important;
    min-height: 48px !important;
    padding: .75rem 1rem !important;
  }

  body.msf-theme .msf-single-content :where(.wp-block-gallery, .gallery) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
}

@media (max-width: 420px) {
  body.msf-theme .msf-blog-main,
  body.msf-theme .msf-single-main {
    width: min(100% - 32px, 560px) !important;
    padding-top: 118px !important;
  }

  body.msf-theme .msf-single-title {
    font-size: clamp(1.85rem, 8.8vw, 2.65rem) !important;
  }

  body.msf-theme .msf-post-card__title,
  body.msf-theme .msf-post-card h2.msf-post-card__title,
  body.msf-theme .msf-post-card__title a {
    font-size: clamp(1.16rem, 5.3vw, 1.55rem) !important;
  }
}

/* =========================================================
   v8.9 restore Inspiro video + keep responsive fixes
   Built from v8.6 to preserve the good blog/mobile fixes while removing
   the v8.7/v8.8 homepage video overrides.
========================================================= */

/* DO NOT override Inspiro's homepage video header.
   The homepage hero is intentionally left to Inspiro's native scripts/styles.
   This prevents custom JS/CSS from breaking the autoplay behavior that worked before. */

/* Mobile headline safety for normal pages and posts.
   Adds breathing room under the fixed/sticky header without touching the homepage hero. */
@media (max-width: 767px) {
  body.msf-theme:not(.home):not(.msf-has-interior-video-hero) .entry-content {
    padding-top: 112px !important;
  }

  body.msf-theme:not(.home):not(.msf-has-interior-video-hero) .entry-content > :first-child {
    margin-top: 0 !important;
  }

  body.msf-theme:not(.home) .entry-content > h1:first-child,
  body.msf-theme:not(.home) .entry-content > h2:first-child,
  body.msf-theme.single-post .msf-single-title,
  body.msf-theme.blog .msf-updates-intro :where(h1, h2) {
    overflow: visible !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
    text-wrap: balance;
  }

  body.msf-theme:not(.home) .entry-content > h1:first-child,
  body.msf-theme:not(.home) .entry-content > h2:first-child {
    font-size: clamp(2rem, 8.8vw, 3rem) !important;
    line-height: 1.08 !important;
  }

  body.msf-theme.single-post .msf-single-main {
    padding-top: 124px !important;
  }

  body.msf-theme.single-post .msf-single-title {
    font-size: clamp(2rem, 8.2vw, 3rem) !important;
    line-height: 1.08 !important;
  }
}

/* Small phones need a hair more top spacing. */
@media (max-width: 420px) {
  body.msf-theme:not(.home):not(.msf-has-interior-video-hero) .entry-content {
    padding-top: 118px !important;
  }

  body.msf-theme.single-post .msf-single-main {
    padding-top: 118px !important;
  }

  body.msf-theme.single-post .msf-single-title {
    font-size: clamp(1.85rem, 8.5vw, 2.65rem) !important;
  }
}

/* Interior/page YouTube embeds:
   Keep normal page embeds responsive and contained, but do not style the homepage hero iframe.
   YouTube branding cannot be removed, but this prevents awkward crop/oversize behavior. */
body.msf-theme:not(.home) :where(.wp-block-embed-youtube, .wp-block-embed.is-type-video) {
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.msf-theme:not(.home) :where(.wp-block-embed-youtube, .wp-block-embed.is-type-video) .wp-block-embed__wrapper {
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  background: #000 !important;
}

body.msf-theme:not(.home) :where(.wp-block-embed-youtube, .wp-block-embed.is-type-video) iframe {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}

/* Mobile video embeds: readable 16:9 player. */
@media (max-width: 767px) {
  body.msf-theme:not(.home) :where(.wp-block-embed-youtube, .wp-block-embed.is-type-video) {
    width: 100% !important;
  }

  body.msf-theme:not(.home) :where(.wp-block-embed-youtube, .wp-block-embed.is-type-video) .wp-block-embed__wrapper {
    aspect-ratio: 16 / 9 !important;
    max-height: none !important;
  }
}

/* Contact page / form text safety:
   long emails and labels wrap instead of blowing out the mobile layout. */
body.msf-theme .entry-content :where(a[href^="mailto:"], a[href^="tel:"], .msf-contact-info, .msf-contact-info *, .wpforms-container, .wpforms-container *) {
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

body.msf-theme .entry-content a[href^="mailto:"] {
  display: inline !important;
  color: var(--msf-teal-dark, #075E66);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

@media (max-width: 767px) {
  body.msf-theme .entry-content :where(.wpforms-container, .wpforms-form, .wpforms-field, input, textarea, select) {
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  body.msf-theme .entry-content :where(.wpforms-field-label, label) {
    line-height: 1.3 !important;
  }

  body.msf-theme .entry-content :where(input, textarea, select) {
    font-size: 16px !important;
  }
}

/* Footer stays full-width on mobile, even when content has constrained width. */
@media (max-width: 767px) {
  body.msf-theme .msf-footer,
  body.msf-theme .msf-footer-cta,
  body.msf-theme footer.site-footer {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
  }
}

/* Accessibility: stronger visible focus for links/buttons/cards. */
body.msf-theme a:focus-visible,
body.msf-theme button:focus-visible,
body.msf-theme .wp-block-button__link:focus-visible,
body.msf-theme input:focus-visible,
body.msf-theme textarea:focus-visible,
body.msf-theme select:focus-visible {
  outline: 3px solid #f7d818 !important;
  outline-offset: 4px !important;
}

/* Previous/next teases remain centered and separated from footer. */
body.msf-theme .msf-single-post-nav {
  text-align: center !important;
  margin-bottom: clamp(72px, 10vw, 130px) !important;
}

body.msf-theme .msf-single-post-nav div,
body.msf-theme .msf-single-post-nav div:last-child {
  text-align: center !important;
}

body.msf-theme .msf-single-post-nav a {
  display: inline-flex !important;
  justify-content: center !important;
  align-items: center !important;
  min-height: 48px !important;
  text-align: center !important;
}

/* Updates grid remains clean: no excerpts/buttons, 12 posts per page handled in PHP from v8.4+. */
body.msf-theme .msf-post-card__button,
body.msf-theme .msf-post-card__excerpt {
  display: none !important;
}

/* =========================================================
   v9.0 mobile title clearance
   Fixes mobile archive/page/single titles being hidden under the fixed header.
   Does not touch Inspiro homepage video behavior.
========================================================= */

/* Safer global mobile header clearance.
   Applies only to interior pages/posts/archive views, not the homepage hero. */
@media (max-width: 767px) {
  body.msf-theme:not(.home) {
    --msf-mobile-safe-top: 150px;
  }

  /* Blog/Updates archive */
  body.msf-theme.blog .msf-blog-main,
  body.msf-theme.archive .msf-blog-main,
  body.msf-theme.search .msf-blog-main {
    padding-top: var(--msf-mobile-safe-top) !important;
  }

  body.msf-theme.blog .msf-updates-intro,
  body.msf-theme.archive .msf-updates-intro,
  body.msf-theme.search .msf-updates-intro {
    margin-top: 0 !important;
  }

  /* Normal interior pages */
  body.msf-theme.page:not(.home):not(.msf-has-interior-video-hero) main,
  body.msf-theme.page:not(.home):not(.msf-has-interior-video-hero) .site-content,
  body.msf-theme.page:not(.home):not(.msf-has-interior-video-hero) .entry-content {
    padding-top: var(--msf-mobile-safe-top) !important;
  }

  /* Single posts */
  body.msf-theme.single-post .msf-single-main,
  body.msf-theme.single-post main,
  body.msf-theme.single-post .site-content {
    padding-top: var(--msf-mobile-safe-top) !important;
  }

  /* First visible headings need to breathe, not tuck under the header. */
  body.msf-theme:not(.home) :where(.msf-updates-intro, .msf-single-header, .entry-content) :where(h1, h2):first-child,
  body.msf-theme:not(.home) .msf-single-title {
    margin-top: 0 !important;
    padding-top: 0 !important;
    line-height: 1.1 !important;
    overflow: visible !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
    text-wrap: balance;
  }

  /* Reduce oversized intro copy on mobile so it doesn't feel like a billboard. */
  body.msf-theme.blog .msf-updates-intro :where(p, .wp-block-paragraph),
  body.msf-theme.archive .msf-updates-intro :where(p, .wp-block-paragraph) {
    font-size: clamp(1rem, 4.3vw, 1.2rem) !important;
    line-height: 1.55 !important;
    letter-spacing: 0 !important;
  }
}

/* iPhone/Safari with browser chrome can need more room. */
@media (max-width: 430px) {
  body.msf-theme:not(.home) {
    --msf-mobile-safe-top: 170px;
  }

  body.msf-theme.blog .msf-updates-intro :where(h1, h2),
  body.msf-theme.archive .msf-updates-intro :where(h1, h2),
  body.msf-theme.single-post .msf-single-title,
  body.msf-theme.page:not(.home) .entry-content > :where(h1, h2):first-child {
    font-size: clamp(2rem, 8vw, 2.85rem) !important;
    line-height: 1.12 !important;
  }
}

/* Very small phones */
@media (max-width: 380px) {
  body.msf-theme:not(.home) {
    --msf-mobile-safe-top: 180px;
  }
}


/* =========================================================
   v9.1 homepage updates slider + YouTube polish
========================================================= */
body.msf-theme .msf-home-updates{background:var(--msf-cream,#f6f0df);padding:clamp(64px,8vw,110px) 0;}
body.msf-theme .msf-home-updates__inner{width:min(1180px,calc(100% - 40px));margin-inline:auto;}
body.msf-theme .msf-home-updates .msf-section-intro{text-align:center;max-width:760px;margin:0 auto clamp(28px,4vw,48px);}
body.msf-theme .msf-home-updates .msf-section-intro h2{margin:0 0 .45em;font-size:clamp(2rem,4.2vw,3.4rem);line-height:1;text-wrap:balance;}
body.msf-theme .msf-home-updates .msf-section-intro p{margin:0 auto;max-width:660px;font-size:clamp(1rem,1.25vw,1.15rem);line-height:1.55;}
body.msf-theme .msf-home-updates__scroller{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);gap:clamp(18px,2.4vw,32px);overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scroll-padding-inline:4px;padding:4px 4px 20px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;}
body.msf-theme .msf-home-update-card{scroll-snap-align:start;min-width:0;}
body.msf-theme .msf-home-update-card__link{display:block;text-decoration:none;color:inherit;}
body.msf-theme .msf-home-update-card__image{aspect-ratio:16/10;border-radius:14px;overflow:hidden;background:rgba(0,0,0,.05);box-shadow:0 10px 24px rgba(0,0,0,.08);}
body.msf-theme .msf-home-update-card__image img{width:100%;height:100%;display:block;object-fit:cover;}
body.msf-theme .msf-home-update-card__placeholder{display:block;width:100%;height:100%;background:linear-gradient(135deg,rgba(7,128,136,.2),rgba(247,216,24,.22));}
body.msf-theme .msf-home-update-card h3{margin:16px auto 0;max-width:92%;text-align:center;font-size:clamp(1.15rem,1.75vw,1.55rem);line-height:1.05;text-wrap:balance;}
body.msf-theme .msf-home-update-card__link:hover h3,body.msf-theme .msf-home-update-card__link:focus-visible h3{color:var(--msf-teal-dark,#007c83);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;}
body.msf-theme .msf-home-updates__cta{text-align:center;margin-top:clamp(12px,2vw,24px);}
body.msf-theme .msf-home-updates__cta .msf-text-link{color:var(--msf-teal-dark,#007c83);font-weight:800;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px;}
@media (min-width:900px){body.msf-theme .msf-home-updates__scroller{grid-auto-columns:calc((100% - (2 * clamp(18px,2.4vw,32px))) / 3);}}
@media (min-width:600px) and (max-width:899px){body.msf-theme .msf-home-updates__scroller{grid-auto-columns:minmax(280px,46%);}}
@media (max-width:599px){body.msf-theme .msf-home-updates{padding:56px 0 62px;}body.msf-theme .msf-home-updates__inner{width:min(100% - 34px,440px);}body.msf-theme .msf-home-updates__scroller{grid-auto-columns:86%;gap:18px;padding-bottom:18px;}body.msf-theme .msf-home-update-card h3{font-size:clamp(1.2rem,6vw,1.65rem);}}
body.msf-theme:not(.home) :where(.wp-block-embed-youtube,.wp-block-embed.is-type-video) .wp-block-embed__wrapper,body.msf-theme :where(.msf-video-frame,.msf-section-video,.msf-responsive-video){background:#000!important;border-radius:14px!important;overflow:hidden!important;}
body.msf-theme:not(.home) :where(.wp-block-embed-youtube,.wp-block-embed.is-type-video) iframe,body.msf-theme :where(.msf-video-frame,.msf-section-video,.msf-responsive-video) iframe{border:0!important;}

/* =========================================================
   v9.2 homepage spacing + Moments polish
   Creates consistent vertical rhythm across homepage sections.
========================================================= */

body.msf-theme.home {
  --msf-home-section-pad: clamp(72px, 8vw, 104px);
  --msf-home-section-pad-mobile: 58px;
  --msf-home-wrap-width: 1180px;
}

/* Consistent spacing between all major homepage sections after the video hero. */
body.msf-theme.home .entry-content > .wp-block-group.alignfull,
body.msf-theme.home .entry-content > .msf-section,
body.msf-theme.home .msf-section,
body.msf-theme.home .msf-home-updates {
  padding-top: var(--msf-home-section-pad) !important;
  padding-bottom: var(--msf-home-section-pad) !important;
}

/* Keep footer visually distinct and roomy without inheriting oversized section spacing. */
body.msf-theme.home .msf-footer,
body.msf-theme.home .msf-footer-cta,
body.msf-theme.home footer.site-footer {
  padding-top: clamp(72px, 8vw, 110px) !important;
  padding-bottom: clamp(42px, 5vw, 72px) !important;
}

/* Standardize inner widths. */
body.msf-theme.home .msf-wrap,
body.msf-theme.home .msf-home-updates__inner {
  width: min(var(--msf-home-wrap-width), calc(100% - 40px)) !important;
  margin-inline: auto !important;
}

/* Standardize section intros so Moments, Watch, and Resources feel related. */
body.msf-theme.home :where(.msf-section-intro, .msf-section-heading-row) {
  text-align: center;
  max-width: 760px;
  margin-inline: auto;
  margin-bottom: clamp(28px, 4vw, 44px) !important;
}

body.msf-theme.home .msf-section-heading-row {
  display: block !important;
}

body.msf-theme.home :where(.msf-section-intro, .msf-section-heading-row) h2 {
  margin: 0 0 0.35em !important;
  line-height: 1.02 !important;
  text-wrap: balance;
}

body.msf-theme.home :where(.msf-section-intro, .msf-section-heading-row) p {
  margin: 0 auto !important;
  max-width: 640px;
  line-height: 1.55 !important;
}

/* Moments button/link now sits under the intro text, matching Watch. Breathe. Play. */
body.msf-theme .msf-home-updates__cta--intro {
  text-align: center;
  margin-top: 14px !important;
  margin-bottom: clamp(26px, 4vw, 42px) !important;
}

body.msf-theme .msf-home-updates__cta--intro .msf-text-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  color: var(--msf-teal-dark, #007c83);
  font-weight: 800;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
}

/* Remove extra bottom CTA spacing if old markup/cache briefly shows it. */
body.msf-theme .msf-home-updates__scroller + .msf-home-updates__cta:not(.msf-home-updates__cta--intro) {
  display: none !important;
}

/* Cards across slider sections should feel consistent. */
body.msf-theme.home :where(.msf-home-update-card__image, .msf-video-card, .msf-resource-card, .msf-product-loop img, .wc-block-grid__product-image, .woocommerce-loop-product__link img) {
  border-radius: 14px;
}

/* Slightly tighten card title rhythm for homepage carousel/card sections. */
body.msf-theme.home :where(.msf-home-update-card h3, .msf-video-card h3, .msf-resource-card h3, .woocommerce-loop-product__title) {
  line-height: 1.08 !important;
  text-wrap: balance;
}

/* Mobile rhythm: consistent but not too tall. */
@media (max-width: 767px) {
  body.msf-theme.home .entry-content > .wp-block-group.alignfull,
  body.msf-theme.home .entry-content > .msf-section,
  body.msf-theme.home .msf-section,
  body.msf-theme.home .msf-home-updates {
    padding-top: var(--msf-home-section-pad-mobile) !important;
    padding-bottom: var(--msf-home-section-pad-mobile) !important;
  }

  body.msf-theme.home .msf-wrap,
  body.msf-theme.home .msf-home-updates__inner {
    width: min(100% - 34px, 460px) !important;
  }

  body.msf-theme.home :where(.msf-section-intro, .msf-section-heading-row) {
    margin-bottom: 26px !important;
  }

  body.msf-theme.home :where(.msf-section-intro, .msf-section-heading-row) h2 {
    font-size: clamp(2rem, 8vw, 2.7rem) !important;
  }

  body.msf-theme.home :where(.msf-section-intro, .msf-section-heading-row) p {
    font-size: 1rem !important;
    line-height: 1.5 !important;
  }

  body.msf-theme .msf-home-updates__cta--intro {
    margin-top: 12px !important;
    margin-bottom: 24px !important;
  }
}

/* Tablet rhythm. */
@media (min-width: 768px) and (max-width: 1024px) {
  body.msf-theme.home {
    --msf-home-section-pad: clamp(66px, 7vw, 90px);
  }

  body.msf-theme.home .msf-wrap,
  body.msf-theme.home .msf-home-updates__inner {
    width: min(100% - 56px, 980px) !important;
  }
}

/* =========================================================
   v9.6 homepage CSS consolidation
   One clean override layer for rhythm, buttons, carousel cards, videos, and footer.
========================================================= */

body.msf-theme.home {
  --msf-home-wrap-wide: 1320px;
  --msf-home-wrap-standard: 1180px;
  --msf-home-section-pad: clamp(76px, 7vw, 104px);
  --msf-home-section-pad-mobile: 56px;
  --msf-home-card-radius: 16px;
  --msf-home-copy-size: clamp(0.98rem, 1vw, 1.08rem);
  --msf-home-intro-copy-size: clamp(0.98rem, 1vw, 1.06rem);
  --msf-home-button-bg: var(--msf-teal, #087e86);
  --msf-home-button-hover: var(--msf-coral-dark, #a84835);
}

/* Core homepage section rhythm. */
body.msf-theme.home :where(
  .msf-cloud-top,
  .msf-band-purple,
  .msf-band-teal,
  .msf-home-updates,
  .msf-video-section,
  .msf-downloads-section,
  .msf-partners-section
).msf-section,
body.msf-theme.home :where(
  .msf-cloud-top,
  .msf-band-purple,
  .msf-band-teal,
  .msf-home-updates,
  .msf-video-section,
  .msf-downloads-section,
  .msf-partners-section
) {
  padding-top: var(--msf-home-section-pad) !important;
  padding-bottom: var(--msf-home-section-pad) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Main section width. */
body.msf-theme.home :where(.msf-wrap, .msf-home-updates__inner) {
  width: min(calc(100% - 48px), var(--msf-home-wrap-standard)) !important;
  max-width: var(--msf-home-wrap-standard) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

/* Feature sections get a wider canvas so videos can actually grow. */
body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-wrap {
  width: min(calc(100% - 48px), var(--msf-home-wrap-wide)) !important;
  max-width: var(--msf-home-wrap-wide) !important;
}

/* Unified intro styling for Moments, Watch, Resources, and Partners. */
body.msf-theme.home :where(.msf-section-intro, .msf-section-heading-row) {
  display: block !important;
  text-align: center !important;
  max-width: 760px !important;
  margin: 0 auto clamp(28px, 3.5vw, 42px) !important;
}

body.msf-theme.home :where(.msf-section-intro, .msf-section-heading-row) h2 {
  margin: 0 0 0.35em !important;
  line-height: 1.03 !important;
  letter-spacing: -0.035em !important;
  text-wrap: balance;
}

body.msf-theme.home :where(.msf-section-intro, .msf-section-heading-row) p {
  margin: 0 auto !important;
  max-width: 650px !important;
  font-size: var(--msf-home-intro-copy-size) !important;
  line-height: 1.5 !important;
  font-weight: 700 !important;
  color: rgba(36, 31, 33, 0.74) !important;
}

/* Dark/color feature-band copy stays white and readable. */
body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) :where(h2, h3, p) {
  color: #fff !important;
}

body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) p {
  font-size: var(--msf-home-copy-size) !important;
  line-height: 1.55 !important;
  font-weight: 700 !important;
}

/* Unified homepage CTA buttons. */
body.msf-theme.home :where(
  .msf-button,
  .msf-button--homepage,
  .msf-view-all,
  .msf-home-section-cta a,
  .msf-section-heading-row a.msf-view-all,
  .msf-section-intro a.msf-view-all,
  .wp-block-button__link
) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: 0.78rem 1.35rem !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--msf-home-button-bg) !important;
  color: #fff !important;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12) !important;
  font-family: inherit !important;
  font-weight: 900 !important;
  font-size: 0.94rem !important;
  line-height: 1.1 !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
  border-bottom: 0 !important;
}

body.msf-theme.home :where(
  .msf-button,
  .msf-button--homepage,
  .msf-view-all,
  .msf-home-section-cta a,
  .wp-block-button__link
):hover,
body.msf-theme.home :where(
  .msf-button,
  .msf-button--homepage,
  .msf-view-all,
  .msf-home-section-cta a,
  .wp-block-button__link
):focus-visible {
  background: var(--msf-home-button-hover) !important;
  color: #fff !important;
  outline: 3px solid rgba(247, 216, 24, 0.92) !important;
  outline-offset: 3px !important;
}

/* Button placement under intro copy. */
body.msf-theme.home .msf-home-section-cta,
body.msf-theme.home .msf-section-heading-row p:has(.msf-view-all) {
  margin-top: 16px !important;
  margin-bottom: 0 !important;
}

/* Remove duplicate Watch. Breathe. Play. button if both manual and theme button exist. */
body.msf-theme.home .msf-video-section .msf-section-heading-row .wp-block-buttons,
body.msf-theme.home .msf-video-section .msf-section-heading-row .wp-block-button {
  display: none !important;
}

/* Feature sections: bigger videos by reducing the text column and column gap. */
body.msf-theme.home .msf-band-purple .msf-two-col.reverse {
  display: grid !important;
  grid-template-columns: minmax(220px, 0.50fr) minmax(560px, 1.50fr) !important;
  gap: clamp(24px, 3.2vw, 46px) !important;
  align-items: center !important;
}

body.msf-theme.home .msf-band-teal .msf-two-col {
  display: grid !important;
  grid-template-columns: minmax(560px, 1.50fr) minmax(220px, 0.50fr) !important;
  gap: clamp(24px, 3.2vw, 46px) !important;
  align-items: center !important;
}

body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-two-col > :not(.msf-video-frame) {
  max-width: 430px !important;
}

/* The video FRAME grows; the iframe simply fills it. */
body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-video-frame {
  width: 100% !important;
  max-width: 820px !important;
  aspect-ratio: 16 / 9 !important;
  height: auto !important;
  min-height: 0 !important;
  justify-self: stretch !important;
  align-self: center !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: #000 !important;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.16) !important;
}

/* Reset WordPress embed markup inside feature video frames. */
body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-video-frame :where(figure, .wp-block-embed, .wp-block-embed__wrapper) {
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  aspect-ratio: 16 / 9 !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: #000 !important;
}

body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-video-frame iframe {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 16 / 9 !important;
  min-height: 0 !important;
  max-height: none !important;
  border: 0 !important;
  border-radius: 16px !important;
}

/* Shared carousel/card system for Moments, Watch, and Resources. */
body.msf-theme.home :where(.msf-home-updates__scroller, .msf-youtube-carousel, .msf-product-loop ul.products, .woocommerce ul.products) {
  margin-top: 0 !important;
  scrollbar-width: thin;
  scroll-padding-inline: 4px;
}

body.msf-theme.home :where(.msf-home-update-card__image, .msf-youtube-thumb, .msf-downloads-section li.product img) {
  border-radius: var(--msf-home-card-radius) var(--msf-home-card-radius) 0 0 !important;
  overflow: hidden !important;
}

body.msf-theme.home :where(.msf-home-update-card__image img, .msf-youtube-thumb img, .msf-downloads-section li.product img) {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* Card headline consistency. */
body.msf-theme.home :where(.msf-home-update-card h3, .msf-youtube-card-body h3, .msf-downloads-section .woocommerce-loop-product__title) {
  font-size: clamp(1.02rem, 1.15vw, 1.16rem) !important;
  line-height: 1.12 !important;
  font-weight: 900 !important;
  letter-spacing: -0.018em !important;
  text-wrap: balance;
}

body.msf-theme.home .msf-home-update-card h3 {
  color: var(--msf-ink, #241f21) !important;
  text-align: center !important;
  margin: 14px auto 0 !important;
  max-width: 95% !important;
}

body.msf-theme.home :where(.msf-youtube-card-body h3, .msf-downloads-section .woocommerce-loop-product__title) {
  color: #fff !important;
  text-align: left !important;
  margin: 0 !important;
  padding: 14px 16px 16px !important;
}

/* Woo product cards in Resources should visually match video/resource cards. */
body.msf-theme.home .msf-downloads-section ul.products li.product,
body.msf-theme.home .msf-downloads-section .woocommerce ul.products li.product {
  border-radius: var(--msf-home-card-radius) !important;
  overflow: hidden !important;
  background: var(--msf-teal, #087e86) !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.10) !important;
}

/* Partners: same rhythm, cleaner logo cards. */
body.msf-theme.home .msf-partners-section {
  background: var(--msf-white, #f7f1df) !important;
  text-align: center !important;
}

body.msf-theme.home .msf-partners-section h2 {
  text-align: center !important;
  margin: 0 auto clamp(30px, 4vw, 44px) !important;
  font-size: clamp(2rem, 3.2vw, 3rem) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.035em !important;
}

body.msf-theme.home .msf-partners-section :where(.wp-block-image, .swiper-slide, .gutenbee-slider-item, .wp-block-gallery figure) {
  background: #fff !important;
  border-radius: 10px !important;
  padding: clamp(12px, 1.5vw, 18px) !important;
  min-height: 118px !important;
  display: grid !important;
  place-items: center !important;
}

body.msf-theme.home .msf-partners-section img {
  width: auto !important;
  max-width: 150px !important;
  max-height: 82px !important;
  object-fit: contain !important;
}

/* Footer recommendation: brand + two link columns = three columns on desktop. */
body.msf-theme .msf-global-footer-inner {
  display: grid !important;
  grid-template-columns: minmax(280px, 1.45fr) minmax(130px, 0.7fr) minmax(130px, 0.7fr) !important;
  gap: clamp(48px, 7vw, 104px) !important;
  align-items: start !important;
}

body.msf-theme .msf-global-footer-menu {
  columns: unset !important;
  column-gap: unset !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.msf-theme .msf-global-footer-menu li {
  margin: 0 0 0.72rem !important;
}

body.msf-theme .msf-global-footer-menu a {
  display: inline-block !important;
  line-height: 1.25 !important;
}

/* Tablet. */
@media (max-width: 1100px) {
  body.msf-theme.home .msf-band-purple .msf-two-col.reverse {
    grid-template-columns: minmax(205px, 0.44fr) minmax(520px, 1.56fr) !important;
    gap: 28px !important;
  }

  body.msf-theme.home .msf-band-teal .msf-two-col {
    grid-template-columns: minmax(520px, 1.56fr) minmax(205px, 0.44fr) !important;
    gap: 28px !important;
  }

  body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-video-frame {
    max-width: 760px !important;
  }
}

/* Stack feature bands before they get cramped. */
@media (max-width: 860px) {
  body.msf-theme.home .msf-band-purple .msf-two-col.reverse,
  body.msf-theme.home .msf-band-teal .msf-two-col {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-two-col > :not(.msf-video-frame) {
    max-width: 640px !important;
    justify-self: center !important;
  }

  body.msf-theme.home :where(.msf-band-purple, .msf-band-teal) .msf-video-frame {
    width: 100% !important;
    max-width: 700px !important;
    justify-self: center !important;
  }

  body.msf-theme .msf-global-footer-inner {
    grid-template-columns: 1fr 1fr !important;
    gap: 34px 48px !important;
  }

  body.msf-theme .msf-global-footer-brand {
    grid-column: 1 / -1 !important;
  }
}

/* Mobile. */
@media (max-width: 640px) {
  body.msf-theme.home :where(
    .msf-cloud-top,
    .msf-band-purple,
    .msf-band-teal,
    .msf-home-updates,
    .msf-video-section,
    .msf-downloads-section,
    .msf-partners-section
  ).msf-section,
  body.msf-theme.home :where(
    .msf-cloud-top,
    .msf-band-purple,
    .msf-band-teal,
    .msf-home-updates,
    .msf-video-section,
    .msf-downloads-section,
    .msf-partners-section
  ) {
    padding-top: var(--msf-home-section-pad-mobile) !important;
    padding-bottom: var(--msf-home-section-pad-mobile) !important;
  }

  body.msf-theme.home :where(.msf-wrap, .msf-home-updates__inner) {
    width: min(calc(100% - 32px), 460px) !important;
  }

  body.msf-theme.home :where(.msf-section-intro, .msf-section-heading-row) {
    margin-bottom: 26px !important;
  }

  body.msf-theme.home :where(.msf-section-intro, .msf-section-heading-row) p {
    font-size: 0.98rem !important;
  }

  body.msf-theme.home :where(
    .msf-button,
    .msf-button--homepage,
    .msf-view-all,
    .msf-home-section-cta a,
    .wp-block-button__link
  ) {
    width: auto !important;
    max-width: 100% !important;
    white-space: normal !important;
    text-align: center !important;
    font-size: 0.92rem !important;
    padding: 0.78rem 1.08rem !important;
  }

  body.msf-theme .msf-global-footer-inner {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  body.msf-theme .msf-global-footer-brand {
    grid-column: auto !important;
  }
}

/* =========================================================
   v9.7 live homepage overrides
   Final high-specificity pass for the current homepage block structure.
========================================================= */

/* 1) Consistent section rhythm across the visible homepage bands. */
body.msf-theme :where(.msf-cloud-top, .msf-band-purple, .msf-band-teal, .msf-home-updates, .msf-video-section, .msf-downloads-section, .msf-partners-section) {
  padding-top: clamp(76px, 7vw, 104px) !important;
  padding-bottom: clamp(76px, 7vw, 104px) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* 2) Give Program and Story more horizontal room. */
body.msf-theme :where(.msf-band-purple, .msf-band-teal) > .msf-wrap,
body.msf-theme :where(.msf-band-purple, .msf-band-teal) .msf-wrap {
  width: min(100% - 48px, 1360px) !important;
  max-width: 1360px !important;
  margin-inline: auto !important;
}

/* Program/Story grids: text column smaller, video column larger, gap tighter. */
body.msf-theme .msf-band-purple .msf-two-col,
body.msf-theme .msf-band-purple .msf-two-col.reverse {
  display: grid !important;
  grid-template-columns: minmax(240px, 0.44fr) minmax(620px, 1.56fr) !important;
  gap: clamp(20px, 2.8vw, 40px) !important;
  align-items: center !important;
}

body.msf-theme .msf-band-teal .msf-two-col,
body.msf-theme .msf-band-teal .msf-two-col.reverse {
  display: grid !important;
  grid-template-columns: minmax(620px, 1.56fr) minmax(240px, 0.44fr) !important;
  gap: clamp(20px, 2.8vw, 40px) !important;
  align-items: center !important;
}

/* Keep Program/Story text readable but narrow enough that the video can become the hero. */
body.msf-theme :where(.msf-band-purple, .msf-band-teal) .msf-two-col > :not(.msf-video-frame) {
  max-width: 410px !important;
}

/* Make the actual video frame large. */
body.msf-theme :where(.msf-band-purple, .msf-band-teal) .msf-video-frame {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  aspect-ratio: 16 / 9 !important;
  height: auto !important;
  min-height: 0 !important;
  justify-self: stretch !important;
  align-self: center !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: #000 !important;
  box-shadow: 0 14px 34px rgba(0,0,0,.16) !important;
}

/* Reset all embed wrappers inside the video frame. */
body.msf-theme :where(.msf-band-purple, .msf-band-teal) .msf-video-frame :where(figure, .wp-block-embed, .wp-block-embed__wrapper, iframe) {
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  aspect-ratio: 16 / 9 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  display: block !important;
  background: #000 !important;
}

/* If the video frame is nested in a WordPress column/group, let the parent stretch. */
body.msf-theme :where(.msf-band-purple, .msf-band-teal) :where(.wp-block-column, .wp-block-group):has(.msf-video-frame) {
  width: 100% !important;
  max-width: none !important;
  justify-self: stretch !important;
}

/* 3) Intro text consistency for Moments, Watch, Resources, and Partners. */
body.msf-theme :where(.msf-home-updates, .msf-video-section, .msf-downloads-section, .msf-partners-section) :where(.msf-section-intro, .msf-section-heading-row) {
  text-align: center !important;
  max-width: 760px !important;
  margin: 0 auto clamp(28px, 3.6vw, 42px) !important;
  display: block !important;
}

body.msf-theme :where(.msf-home-updates, .msf-video-section, .msf-downloads-section) :where(.msf-section-intro, .msf-section-heading-row) h2 {
  margin: 0 0 .35em !important;
  line-height: 1.03 !important;
  letter-spacing: -.035em !important;
}

body.msf-theme :where(.msf-home-updates, .msf-video-section, .msf-downloads-section) :where(.msf-section-intro, .msf-section-heading-row) p {
  margin: 0 auto !important;
  max-width: 650px !important;
  font-size: clamp(.98rem, 1vw, 1.06rem) !important;
  line-height: 1.5 !important;
  font-weight: 700 !important;
  color: rgba(36,31,33,.74) !important;
}

/* 4) Button consistency. */
body.msf-theme :where(.msf-home-updates, .msf-video-section, .msf-downloads-section) :where(.msf-button, .msf-button--homepage, .msf-view-all, .wp-block-button__link, .msf-home-section-cta a) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: .78rem 1.35rem !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--msf-teal, #087e86) !important;
  color: #fff !important;
  box-shadow: 0 8px 18px rgba(0,0,0,.12) !important;
  font-family: inherit !important;
  font-weight: 900 !important;
  font-size: .94rem !important;
  line-height: 1.1 !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
  border-bottom: 0 !important;
}

body.msf-theme :where(.msf-home-updates, .msf-video-section, .msf-downloads-section) :where(.msf-button, .msf-button--homepage, .msf-view-all, .wp-block-button__link, .msf-home-section-cta a):hover,
body.msf-theme :where(.msf-home-updates, .msf-video-section, .msf-downloads-section) :where(.msf-button, .msf-button--homepage, .msf-view-all, .wp-block-button__link, .msf-home-section-cta a):focus-visible {
  background: var(--msf-coral-dark, #a84835) !important;
  color: #fff !important;
  outline: 3px solid rgba(247,216,24,.92) !important;
  outline-offset: 3px !important;
}

/* Button placement under intros. */
body.msf-theme :where(.msf-home-updates, .msf-video-section, .msf-downloads-section) :where(.msf-home-section-cta, p:has(.msf-view-all), .wp-block-buttons) {
  margin-top: 16px !important;
  margin-bottom: 0 !important;
  justify-content: center !important;
}

/* Hide duplicate/manual Watch CTA. Keep the original section view-all link. */
body.msf-theme .msf-video-section .msf-section-heading-row .wp-block-buttons,
body.msf-theme .msf-video-section .msf-section-heading-row .wp-block-button,
body.msf-theme .msf-video-section .msf-section-heading-row p:has(.wp-block-button__link) {
  display: none !important;
}

/* 5) Card headline consistency across Moments, Watch, and Resources. */
body.msf-theme :where(.msf-home-update-card h3, .msf-youtube-card-body h3, .msf-downloads-section .woocommerce-loop-product__title, .msf-downloads-section h2.woocommerce-loop-product__title) {
  font-size: clamp(1.02rem, 1.15vw, 1.16rem) !important;
  line-height: 1.12 !important;
  font-weight: 900 !important;
  letter-spacing: -.018em !important;
  text-wrap: balance !important;
}

body.msf-theme .msf-home-update-card h3 {
  color: var(--msf-ink, #241f21) !important;
  text-align: center !important;
  margin: 14px auto 0 !important;
  max-width: 95% !important;
}

body.msf-theme :where(.msf-youtube-card-body h3, .msf-downloads-section .woocommerce-loop-product__title, .msf-downloads-section h2.woocommerce-loop-product__title) {
  color: #fff !important;
  text-align: left !important;
  margin: 0 !important;
  padding: 14px 16px 16px !important;
}

body.msf-theme .msf-downloads-section :where(li.product, .product) {
  border-radius: 16px !important;
  overflow: hidden !important;
  background: var(--msf-teal, #087e86) !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.10) !important;
}

/* 6) Footer: professional three-column desktop layout. */
body.msf-theme .msf-global-footer-inner {
  display: grid !important;
  grid-template-columns: minmax(280px, 1.45fr) minmax(130px, .7fr) minmax(130px, .7fr) !important;
  gap: clamp(48px, 7vw, 104px) !important;
  align-items: start !important;
}

body.msf-theme .msf-global-footer-menu {
  columns: unset !important;
  column-gap: unset !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.msf-theme .msf-global-footer-menu li {
  margin: 0 0 .72rem !important;
}

body.msf-theme .msf-global-footer-menu a {
  display: inline-block !important;
  line-height: 1.25 !important;
}

/* Tablet. */
@media (max-width: 1100px) {
  body.msf-theme .msf-band-purple .msf-two-col,
  body.msf-theme .msf-band-purple .msf-two-col.reverse {
    grid-template-columns: minmax(210px, .42fr) minmax(500px, 1.58fr) !important;
    gap: 26px !important;
  }

  body.msf-theme .msf-band-teal .msf-two-col,
  body.msf-theme .msf-band-teal .msf-two-col.reverse {
    grid-template-columns: minmax(500px, 1.58fr) minmax(210px, .42fr) !important;
    gap: 26px !important;
  }
}

/* Stack when cramped. */
@media (max-width: 860px) {
  body.msf-theme .msf-band-purple .msf-two-col,
  body.msf-theme .msf-band-purple .msf-two-col.reverse,
  body.msf-theme .msf-band-teal .msf-two-col,
  body.msf-theme .msf-band-teal .msf-two-col.reverse {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  body.msf-theme :where(.msf-band-purple, .msf-band-teal) .msf-two-col > :not(.msf-video-frame) {
    max-width: 640px !important;
    justify-self: center !important;
  }

  body.msf-theme :where(.msf-band-purple, .msf-band-teal) .msf-video-frame {
    width: 100% !important;
    max-width: 720px !important;
    justify-self: center !important;
  }

  body.msf-theme .msf-global-footer-inner {
    grid-template-columns: 1fr 1fr !important;
    gap: 34px 48px !important;
  }

  body.msf-theme .msf-global-footer-brand {
    grid-column: 1 / -1 !important;
  }
}

/* Mobile. */
@media (max-width: 640px) {
  body.msf-theme :where(.msf-cloud-top, .msf-band-purple, .msf-band-teal, .msf-home-updates, .msf-video-section, .msf-downloads-section, .msf-partners-section) {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }

  body.msf-theme :where(.msf-wrap, .msf-home-updates__inner) {
    width: min(calc(100% - 32px), 460px) !important;
  }

  body.msf-theme :where(.msf-home-updates, .msf-video-section, .msf-downloads-section, .msf-partners-section) :where(.msf-section-intro, .msf-section-heading-row) {
    margin-bottom: 26px !important;
  }

  body.msf-theme .msf-global-footer-inner {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  body.msf-theme .msf-global-footer-brand {
    grid-column: auto !important;
  }
}

/* =========================================================
   v12.5 Press shortcode
========================================================= */

/*
  Use [msf_press_items] inside the normal/default Press page.
  This avoids custom page-template header/footer conflicts.
*/

.msf-press-shortcode {
  width: 100%;
  max-width: 620px;
  margin: 0;
  color: var(--msf-ink, #241f21);
}

.msf-press-shortcode__scroll {
  max-height: min(680px, calc(100vh - 190px));
  overflow-y: auto;
  overflow-x: hidden;
  padding: 0 20px 0 0;
  scrollbar-width: thin;
}

.admin-bar .msf-press-shortcode__scroll {
  max-height: min(680px, calc(100vh - 222px));
}

.msf-press-shortcode__scroll:focus-visible {
  outline: 3px solid rgba(8,126,134,.8);
  outline-offset: 6px;
}

.msf-press-shortcode__group {
  margin: 0 0 clamp(34px, 4vw, 52px);
}

.msf-press-shortcode__group:last-child {
  margin-bottom: 0;
}

.msf-press-shortcode__group h2 {
  margin: 0 0 0.72rem;
  font-size: clamp(1rem, 1vw, 1.15rem);
  line-height: 1.2;
  letter-spacing: 0.045em;
  text-transform: uppercase;
  color: var(--msf-ink, #241f21);
}

.msf-press-shortcode__list {
  list-style: none;
  margin: 0;
  padding-left: 0;
}

.msf-press-shortcode__list li {
  list-style: none;
  margin: 0 0 0.82rem;
  padding-left: 0;
}

.msf-press-shortcode__list a {
  display: inline-block;
  color: var(--msf-teal, #087e86);
  font-size: clamp(1.03rem, 1.1vw, 1.18rem);
  line-height: 1.36;
  font-weight: 650;
  text-decoration: none;
}

.msf-press-shortcode__list a:hover,
.msf-press-shortcode__list a:focus-visible {
  color: var(--msf-coral-dark, #a84835);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

.msf-press-shortcode__title {
  display: inline;
  font-style: normal;
  font-weight: 650;
}

.msf-press-shortcode__meta {
  display: block;
  margin-top: 0.16rem;
  color: rgba(36,31,33,.72);
  font-size: clamp(0.84rem, 0.9vw, 0.94rem);
  line-height: 1.35;
  font-weight: 500;
  font-style: italic;
}

.msf-press-shortcode__source,
.msf-press-shortcode__date {
  font-style: italic;
}

.msf-press-shortcode__source + .msf-press-shortcode__date::before {
  content: " · ";
  font-style: italic;
}

.msf-press-shortcode-empty {
  margin: 0;
  color: rgba(36,31,33,.72);
  font-style: italic;
}

@media (max-width: 900px) {
  .msf-press-shortcode {
    max-width: none;
  }

  .msf-press-shortcode__scroll,
  .admin-bar .msf-press-shortcode__scroll {
    max-height: none;
    overflow: visible;
    padding-right: 0;
  }
}

@media (max-width: 640px) {
  .msf-press-shortcode__list a {
    font-size: 1rem;
  }

  .msf-press-shortcode__meta {
    font-size: 0.9rem;
  }

  .msf-press-shortcode__group h2 {
    font-size: 1rem;
  }
}

/* =========================================================
   v12.8 Mobile UI + Trusted Partners Polish
========================================================= */

/* Press page footer gap cleanup */
body.msf-press-default-page,
body.msf-press-default-page #page,
body.msf-press-default-page .site,
body.msf-press-default-page #content,
body.msf-press-default-page .site-content {
  min-height: 0 !important;
}

body.msf-press-default-page .entry-content {
  padding-bottom: 56px !important;
  margin-bottom: 0 !important;
}

/* Inside page mobile top spacing model */
@media (max-width: 782px) {
  body:not(.home) .site-content,
  body:not(.home) #content,
  body:not(.home) .content-area,
  body:not(.home) #primary {
    padding-top: 0 !important;
    margin-top: 0 !important;
  }

  body:not(.home) .entry-content {
    padding-top: 64px !important;
  }

  body:not(.home).admin-bar .entry-content {
    padding-top: 72px !important;
  }

  body:not(.home) .entry-content > :first-child {
    margin-top: 0 !important;
  }
}

/* Press page margin/font consistency */
body.msf-press-default-page .entry-content > .wp-block-columns {
  width: min(1180px, calc(100% - 56px)) !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.msf-press-default-page .entry-content,
body.msf-press-default-page .entry-content p,
body.msf-press-default-page .entry-content li {
  font-size: clamp(1rem, 1.15vw, 1.125rem);
  line-height: 1.55;
}

@media (max-width: 782px) {
  body.msf-press-default-page .entry-content > .wp-block-columns {
    width: min(100% - 48px, 560px) !important;
  }
}

/* Homepage mobile: Program video above text */
@media (max-width: 782px) {
  .home .msf-program-section .wp-block-column:has(.wp-block-embed),
  .home .msf-program-section .wp-block-column:has(iframe),
  .home .msf-home-program .wp-block-column:has(.wp-block-embed),
  .home .msf-home-program .wp-block-column:has(iframe),
  .home .wp-block-group.has-background .wp-block-columns .wp-block-column:has(.wp-block-embed),
  .home .wp-block-group.has-background .wp-block-columns .wp-block-column:has(iframe) {
    order: -1 !important;
  }
}

/* Section rhythm consistency: Moments / Watch / Resources */
.msf-section-intro,
.msf-moments-intro,
.msf-video-hub-intro,
.msf-resources-intro,
.home .wp-block-group.alignfull > .wp-block-heading + p {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
  font-size: clamp(1rem, 1.08vw, 1.12rem);
  line-height: 1.55;
  letter-spacing: 0.01em;
  color: rgba(36,31,33,.86);
}

.home .wp-block-group.alignfull > .wp-block-heading + p + .wp-block-buttons,
.msf-section-intro + .wp-block-buttons,
.msf-moments-intro + .wp-block-buttons,
.msf-video-hub-intro + .wp-block-buttons,
.msf-resources-intro + .wp-block-buttons {
  margin-top: 0.85rem !important;
  margin-bottom: clamp(1.45rem, 2.5vw, 2rem) !important;
}

@media (max-width: 782px) {
  .home .wp-block-group.alignfull > .wp-block-heading + p,
  .msf-section-intro,
  .msf-moments-intro,
  .msf-video-hub-intro,
  .msf-resources-intro {
    font-size: 1rem !important;
    line-height: 1.5 !important;
    max-width: 32rem;
  }
}

/* Watch. Breathe. Play. duplicate button / headline fit */
.msf-video-card,
.msf-youtube-card,
.msf-video-hub-card {
  overflow: hidden;
}

.msf-video-card .wp-block-button,
.msf-youtube-card .wp-block-button,
.msf-video-hub-card .wp-block-button,
.msf-video-card .wp-block-buttons,
.msf-youtube-card .wp-block-buttons,
.msf-video-hub-card .wp-block-buttons {
  display: none !important;
}

.msf-video-card h3,
.msf-youtube-card h3,
.msf-video-hub-card h3,
.msf-video-card .msf-card-title,
.msf-youtube-card .msf-card-title,
.msf-video-hub-card .msf-card-title {
  font-size: clamp(0.98rem, 1.05vw, 1.08rem) !important;
  line-height: 1.18 !important;
  overflow-wrap: anywhere;
}

/* Free page products: one per row on mobile only */
@media (max-width: 640px) {
  body.page .woocommerce ul.products,
  body.page .wp-block-woocommerce-product-collection,
  body.page .wc-block-product-template,
  body.post-type-archive-product .products,
  body.tax-product_cat .products {
    grid-template-columns: 1fr !important;
  }

  body.page .woocommerce ul.products li.product,
  body.page .wc-block-product,
  body.page .wc-block-grid__product {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Trusted Partners shortcode */
.msf-trusted-partners {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
}

.msf-trusted-partners__track {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  gap: clamp(0.75rem, 1.25vw, 1.1rem);
  align-items: stretch;
}

.msf-trusted-partners__item {
  min-width: 0;
}

.msf-trusted-partners__link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 118px;
  padding: clamp(0.75rem, 1.4vw, 1rem);
  background: #fff;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease;
}

.msf-trusted-partners__link:hover,
.msf-trusted-partners__link:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(36,31,33,.12);
  outline: 3px solid rgba(8,126,134,.35);
  outline-offset: 3px;
}

.msf-trusted-partners__logo {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 84px;
  object-fit: contain;
}

.msf-trusted-partners--grid .msf-trusted-partners__track {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}

.msf-trusted-partners--scroller {
  overflow: hidden;
}

.msf-trusted-partners--scroller .msf-trusted-partners__track {
  display: flex;
  gap: clamp(0.75rem, 1.25vw, 1rem);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 0.65rem;
  scrollbar-width: thin;
}

.msf-trusted-partners--scroller .msf-trusted-partners__item {
  flex: 0 0 calc((100% - 4rem) / 5);
  scroll-snap-align: start;
}

.msf-trusted-partners--scroller.msf-trusted-partners--autoplay .msf-trusted-partners__track {
  animation: msfTrustedPartnersAutoScroll 36s linear infinite;
  overflow-x: hidden;
}

.msf-trusted-partners--scroller.msf-trusted-partners--autoplay:hover .msf-trusted-partners__track,
.msf-trusted-partners--scroller.msf-trusted-partners--autoplay:focus-within .msf-trusted-partners__track {
  animation-play-state: paused;
}

@keyframes msfTrustedPartnersAutoScroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
  .msf-trusted-partners--scroller.msf-trusted-partners--autoplay .msf-trusted-partners__track {
    animation: none !important;
    overflow-x: auto;
  }
}

@media (max-width: 782px) {
  .msf-trusted-partners--grid .msf-trusted-partners__track {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .msf-trusted-partners--scroller .msf-trusted-partners__item {
    flex-basis: calc((100% - 0.85rem) / 2);
  }

  .msf-trusted-partners__link {
    min-height: 86px;
    padding: 0.7rem;
  }

  .msf-trusted-partners__logo {
    max-height: 58px;
  }
}

@media (max-width: 420px) {
  .msf-trusted-partners--grid .msf-trusted-partners__track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Mobile footer redesign */
@media (max-width: 782px) {
  .msf-global-footer,
  .site-footer,
  footer {
    text-align: center !important;
  }

  .msf-global-footer .msf-footer-inner,
  .msf-global-footer .msf-footer-grid,
  .site-footer .msf-footer-inner,
  .site-footer .msf-footer-grid,
  footer .msf-footer-inner,
  footer .msf-footer-grid {
    width: min(100% - 48px, 420px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 1.55rem !important;
  }

  .msf-global-footer .msf-footer-brand,
  .site-footer .msf-footer-brand,
  footer .msf-footer-brand {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
  }

  .msf-global-footer img,
  .site-footer img,
  footer img {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .msf-global-footer .msf-footer-tagline,
  .site-footer .msf-footer-tagline,
  footer .msf-footer-tagline {
    max-width: 310px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
    font-size: 1rem !important;
    line-height: 1.45 !important;
  }

  .msf-global-footer .social-navigation,
  .site-footer .social-navigation,
  footer .social-navigation,
  .msf-global-footer .msf-social,
  .site-footer .msf-social,
  footer .msf-social {
    display: flex !important;
    justify-content: center !important;
    gap: 0.7rem !important;
    flex-wrap: wrap !important;
  }

  .msf-global-footer ul,
  .site-footer ul,
  footer ul {
    padding-left: 0 !important;
    margin-left: 0 !important;
    list-style: none !important;
  }

  .msf-global-footer li,
  .site-footer li,
  footer li {
    text-align: center !important;
    margin-left: 0 !important;
  }

  .msf-global-footer .msf-footer-menus,
  .site-footer .msf-footer-menus,
  footer .msf-footer-menus {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.35rem !important;
    width: 100% !important;
    justify-items: center !important;
  }

  .msf-global-footer .msf-footer-bottom,
  .site-footer .msf-footer-bottom,
  footer .msf-footer-bottom {
    width: 100% !important;
    padding-top: 1.35rem !important;
    border-top: 1px solid rgba(255,255,255,.22) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 0.9rem !important;
    text-align: center !important;
  }

  .msf-global-footer .msf-footer-bottom p,
  .site-footer .msf-footer-bottom p,
  footer .msf-footer-bottom p {
    max-width: 320px !important;
    margin: 0 auto !important;
    text-align: center !important;
  }

  .grecaptcha-badge {
    transform: scale(.82);
    transform-origin: bottom right;
  }
}


/* =========================================================
   v12.9 Markup-matched fallback note
   Primary fixes load late inline via functions.php to beat Customizer CSS.
========================================================= */
