/*
Theme Name: Broadway Star Project
Theme URI: https://thebroadwaystarproject.com/
Description: Reusable child theme and design system for The Broadway Star Project.
Author: The Broadway Star Project
Template: assembler
Version: 1.23.8
Text Domain: bsp-child
*/

:root {
  --bsp-bg: #faf9f5;
  --bsp-surface: #f0efe9;
  --bsp-blue: #201b51;
  --bsp-red: #ed1c24;
  --bsp-red-readable: #aa0e13;
  --bsp-yellow: #fcb040;
  --bsp-text: #5b5552;
  --bsp-ink: #272727;
  --bsp-white: #fff;
  --bsp-gutter: clamp(22px, 5vw, 80px);
  --bsp-section: clamp(64px, 8vw, 112px);
  --bsp-content: 1200px;
  --bsp-ease: cubic-bezier(.16, 1, .3, 1);
  --bsp-shadow: 0 24px 70px rgba(32, 27, 81, .18);
}

html { scroll-behavior: smooth; }
body {
  background: var(--bsp-bg);
  color: var(--bsp-text);
  font-family: "Inria Sans", "Trebuchet MS", sans-serif;
  font-size: clamp(16px, 1.12vw, 18px);
  line-height: 1.6;
  overflow-x: clip;
}
.wp-site-blocks > *,
.wp-block-post-content > .wp-block-group { margin-block: 0 !important; }
.wp-block-post-content { padding-block: 0 !important; }
.wp-block-post-content > p:empty { display: none !important; }

/* Fixed navigation occupies 64px (8px stripe + 56px bar). Every established
   interior hero begins directly beneath it; the homepage keeps its own layout. */
body:not(.home) .wp-block-post-content > :first-child:is(
  .is-style-bsp-navy,
  .is-style-bsp-red,
  .is-style-bsp-yellow,
  .is-style-bsp-light,
  .is-style-bsp-surface,
  .bsp-section--blue,
  .bsp-section--red,
  .bsp-section--yellow,
  .bsp-directory,
  .bsp-directory__hero,
  .bsp-faq-hero,
  .bsp-legal-hero,
  .bsp-programs-page__hero,
  .bsp-program-single__header
),
body:not(.home) .wp-block-post-content > :first-child:is(
  [style*="background-color:#201b51"],
  [style*="background-color:#ed1c24"],
  [style*="background-color:#fcb040"],
  [style*="background-color:#faf9f5"],
  [style*="background-color:#f0efe9"]
),
body:not(.home) .bsp-program-type-archive > .bsp-program-type-hero:first-child,
body:not(.home) .bsp-directory > .bsp-directory__hero:first-child {
  margin-top: 64px !important;
}
::selection { background: var(--bsp-yellow); color: var(--bsp-blue); }

h1, h2, h3, h4, h5, h6, .wp-block-heading {
  color: var(--bsp-blue);
  font-family: "Inria Serif", Georgia, serif;
  font-weight: 400;
  letter-spacing: -.025em;
  line-height: 1.02;
  text-wrap: balance;
}
h1 { font-size: clamp(48px, 6.2vw, 96px); }
h2 { font-size: clamp(36px, 4.2vw, 62px); }
h3 { font-size: clamp(25px, 2.4vw, 36px); }
h4 { font-size: clamp(21px, 1.7vw, 27px); }
p { text-wrap: pretty; }
a { color: inherit; text-underline-offset: .18em; }
a:not(.wp-block-button__link) { transition: color 180ms ease, opacity 180ms ease; }
a:not(.wp-block-button__link):hover { color: var(--bsp-red-readable); }
:focus-visible { outline: 3px solid var(--bsp-yellow) !important; outline-offset: 4px; }

.wp-block-button__link,
.bsp-button {
  align-items: center;
  background: var(--bsp-red);
  border: 1px solid var(--bsp-red);
  border-radius: 0;
  color: var(--bsp-white);
  display: inline-flex;
  font-family: "Inria Sans", "Trebuchet MS", sans-serif;
  font-size: 15px;
  font-weight: 700;
  justify-content: center;
  letter-spacing: .08em;
  min-height: 52px;
  padding: 17px 28px;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 260ms ease, color 260ms ease, border-color 260ms ease, transform 420ms var(--bsp-ease), box-shadow 420ms var(--bsp-ease);
}
.wp-block-button__link:hover,
.bsp-button:hover {
  background: var(--bsp-blue);
  border-color: var(--bsp-blue);
  color: var(--bsp-white);
  box-shadow: 7px 7px 0 var(--bsp-yellow);
  transform: translate(-3px, -3px);
}
.is-style-outline .wp-block-button__link { background: transparent; border-color: currentColor; color: var(--bsp-blue); }

body.bsp-menu-open,
body.bsp-menu-closing { overflow: hidden; }
.bsp-menu-backdrop {
  background: transparent;
  backdrop-filter: blur(0);
  inset: 0;
  opacity: 0;
  pointer-events: none;
  position: fixed;
  transition: opacity .42s ease, backdrop-filter .42s ease;
  z-index: 9950;
}
.bsp-menu-backdrop::before {
  background: rgba(32, 27, 81, .58);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}
body.bsp-menu-open .bsp-menu-backdrop {
  backdrop-filter: blur(9px);
  opacity: 1;
  pointer-events: auto;
}
body.bsp-menu-closing .bsp-menu-backdrop {
  backdrop-filter: blur(0);
  opacity: 0;
  pointer-events: auto;
}
.bsp-top-stripe {
  background: var(--bsp-red);
  height: 8px;
  inset: var(--wp-admin--admin-bar--height, 0px) 0 auto;
  margin: 0 !important;
  max-width: none !important;
  min-height: 8px;
  padding: 0 !important;
  position: fixed;
  width: 100%;
  z-index: 10000;
}
body .bsp-header {
  align-items: stretch;
  background: rgba(250, 249, 245, .72);
  backdrop-filter: blur(7px);
  border: 0;
  display: flex;
  height: 56px;
  inset: calc(var(--wp-admin--admin-bar--height, 0px) + 8px) 0 auto;
  margin: 0 !important;
  max-width: none !important;
  padding: 0 !important;
  position: fixed;
  transition: background-color .35s ease, backdrop-filter .35s ease;
  width: 100%;
  z-index: 9960;
}
body.bsp-menu-open .bsp-header,
body.bsp-menu-closing .bsp-header {
  background: transparent;
  backdrop-filter: blur(0);
}
.bsp-auto-navigation { flex: 0 0 56px; height: 56px; position: relative; }
.bsp-auto-navigation .wp-block-navigation__responsive-container-open {
  align-items: center;
  background: var(--bsp-yellow) !important;
  border: 0 !important;
  border-radius: 0;
  color: var(--bsp-white) !important;
  display: flex !important;
  height: 56px;
  justify-content: center;
  margin: 0;
  padding: 0;
  transition: background-color .3s ease, color .3s ease;
  width: 56px;
  z-index: 3;
}
.bsp-auto-navigation .wp-block-navigation__responsive-container-open:hover { background: #f7bc63 !important; }
.bsp-auto-navigation .wp-block-navigation__responsive-container-open svg { opacity: 0; }
.bsp-auto-navigation .wp-block-navigation__responsive-container-open::before,
.bsp-auto-navigation .wp-block-navigation__responsive-container-open::after {
  background: currentColor;
  content: "";
  height: 2px;
  left: 17px;
  position: absolute;
  transition: box-shadow .32s ease, transform .42s cubic-bezier(.22,1,.36,1);
  width: 22px;
}
.bsp-auto-navigation .wp-block-navigation__responsive-container-open::before { box-shadow: 0 7px 0 currentColor; transform: translateY(-7px); }
.bsp-auto-navigation .wp-block-navigation__responsive-container-open::after { transform: translateY(7px); }
body.bsp-menu-open .bsp-auto-navigation .wp-block-navigation__responsive-container-open::before { box-shadow: 0 0 0 transparent; transform: rotate(45deg); }
body.bsp-menu-open .bsp-auto-navigation .wp-block-navigation__responsive-container-open::after { transform: rotate(-45deg); }
.bsp-header-logo { flex: 0 1 min(311.5px, calc(35vw - 84px)); height: 56px; margin: 0 19px 0 9px !important; position: relative; z-index: 3; }
.bsp-header-logo a { display: block; height: 100%; }
.bsp-header-logo img {
  display: block;
  height: 100% !important;
  max-height: 56px;
  max-width: 100%;
  object-fit: contain;
  object-position: left center;
  transition: filter .38s ease, opacity .38s ease;
  width: 100% !important;
}
body.bsp-menu-open .bsp-header-logo img { filter: brightness(0) invert(1); }
.bsp-header-audition {
  align-self: center;
  display: flex;
  flex: 0 0 auto;
  margin: 0 8px 0 auto !important;
  position: relative;
  z-index: 3;
}
.bsp-header-audition .wp-block-button { height: 34px; }
.bsp-header-audition .wp-block-button__link {
  align-items: center;
  background: var(--bsp-red) !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--bsp-white) !important;
  display: flex;
  font-family: "Inria Sans", "Trebuchet MS", sans-serif;
  font-size: 11px;
  font-weight: 600;
  height: 34px;
  justify-content: center;
  letter-spacing: .035em;
  padding: 0 clamp(12px, 1.2vw, 17px) !important;
  text-decoration: none !important;
  transition: background-color .3s ease, color .3s ease;
  white-space: nowrap;
}
.bsp-header-audition .wp-block-button__link:hover,
.bsp-header-audition .wp-block-button__link:focus-visible {
  background: var(--bsp-red-readable) !important;
  border-color: transparent !important;
  box-shadow: none !important;
  filter: none !important;
  transform: none !important;
}
.bsp-auto-navigation .wp-block-navigation__responsive-container:not(.is-menu-open):not(.bsp-is-closing) { display: none !important; }
.bsp-auto-navigation .wp-block-navigation__responsive-container:is(.is-menu-open, .bsp-is-closing) {
  animation: bsp-drawer-in .42s cubic-bezier(.22, .76, .25, 1) both;
  background: var(--bsp-yellow) !important;
  box-shadow: 24px 0 70px rgba(32,27,81,.2);
  display: flex !important;
  height: 100dvh !important;
  inset: calc(-1 * (var(--wp-admin--admin-bar--height, 0px) + 8px)) auto auto 0 !important;
  min-height: 0 !important;
  overflow: hidden auto;
  padding: 0 !important;
  width: 35vw !important;
  z-index: 1;
}
.bsp-auto-navigation .wp-block-navigation__responsive-close { margin: 0 !important; max-width: none !important; width: 100%; }
.bsp-auto-navigation .wp-block-navigation__responsive-dialog { margin: 0; }
.bsp-auto-navigation .wp-block-navigation__responsive-container-close {
  align-items: center;
  background: transparent;
  color: var(--bsp-white);
  display: flex;
  height: 56px;
  justify-content: center;
  left: 0;
  margin: 0;
  padding: 0;
  right: auto;
  top: 0;
  opacity: 0;
  pointer-events: none;
  transition: background-color .3s ease;
  width: 56px;
}
.bsp-auto-navigation .wp-block-navigation__responsive-container-close > svg:not(.bsp-drawer-burger) {
  opacity: 0;
  position: absolute;
}
.bsp-drawer-burger {
  height: 24px;
  opacity: 1;
  position: absolute;
  width: 24px;
}
.bsp-auto-navigation .wp-block-navigation__responsive-container-close:hover { background: rgba(255,255,255,.14); }
.bsp-drawer-brand {
  display: block;
  height: 56px;
  margin: 0 19px 24px 65px;
  opacity: 0;
  position: relative;
  pointer-events: none;
  width: min(311.5px, calc(35vw - 84px));
}
.bsp-drawer-brand img { display: block; height: 100%; inset: 0; object-fit: contain; object-position: left center; position: absolute; width: 100%; }
.bsp-drawer-brand-color { opacity: 1; }
.bsp-drawer-brand-white { filter: brightness(0) invert(1); opacity: 0; }
.bsp-auto-navigation .wp-block-navigation__responsive-container.is-menu-open:not(.bsp-is-closing) .bsp-drawer-brand-color { animation: bsp-logo-color-out .38s ease both; }
.bsp-auto-navigation .wp-block-navigation__responsive-container.is-menu-open:not(.bsp-is-closing) .bsp-drawer-brand-white { animation: bsp-logo-white-in .38s .08s ease both; }
.bsp-auto-navigation .wp-block-navigation__responsive-container.is-menu-open:not(.bsp-is-closing) .bsp-drawer-burger { animation: bsp-icon-burger-out .32s ease both; }
.bsp-auto-navigation .wp-block-navigation__responsive-container.is-menu-open:not(.bsp-is-closing) .wp-block-navigation__responsive-container-close > svg:not(.bsp-drawer-burger) { animation: bsp-icon-x-in .32s .12s ease both; }
.bsp-auto-navigation .wp-block-navigation__responsive-container-content { align-items: stretch !important; display: block !important; padding: 0 !important; }
.bsp-auto-navigation .wp-block-page-list { display: block !important; margin: 0 !important; padding: 0 !important; width: 100%; }
.bsp-auto-navigation .wp-block-pages-list__item { border-bottom: 2px solid rgba(39,39,39,.08); display: block; margin: 0; position: relative; width: 100%; }
.bsp-auto-navigation .wp-block-pages-list__item.bsp-accordion-item {
  height: auto !important;
  overflow: hidden;
}
.bsp-auto-navigation .wp-block-pages-list__item__link {
  align-items: center;
  color: var(--bsp-ink) !important;
  display: flex;
  font-family: "Inria Sans", "Trebuchet MS", sans-serif;
  font-size: 30px;
  font-weight: 400;
  height: 80px;
  letter-spacing: normal;
  line-height: 1.1;
  padding: 0 58px 0 32px !important;
  text-decoration: none;
  transition: background-color .3s ease, color .3s ease;
  width: 100%;
}
.bsp-auto-navigation .current-menu-item > .wp-block-pages-list__item__link,
.bsp-auto-navigation .current-menu-ancestor > .wp-block-pages-list__item__link { color: var(--bsp-white) !important; }
.bsp-auto-navigation .wp-block-pages-list__item__link:hover { background: rgba(255,255,255,.12); }
.bsp-auto-navigation .submenu-container,
.bsp-auto-navigation .wp-block-navigation__submenu-container {
  background: rgba(255,255,255,.12) !important;
  border: 0 !important;
  display: block !important;
  height: auto !important;
  margin: 0 !important;
  max-height: 0;
  opacity: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: static !important;
  transition: max-height .58s cubic-bezier(.22,1,.36,1), opacity .32s ease !important;
  will-change: max-height, opacity;
  visibility: visible !important;
  width: 100% !important;
}
.bsp-auto-navigation .submenu-container.bsp-submenu-open,
.bsp-auto-navigation .wp-block-navigation__submenu-container.bsp-submenu-open { opacity: 1 !important; }
.bsp-auto-navigation .submenu-container .wp-block-pages-list__item__link,
.bsp-auto-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item__link { font-size: 18px; height: auto; min-height: 54px; padding: 14px 32px 14px 54px !important; }
.bsp-auto-navigation .bsp-accordion-item > :is(.submenu-container, .wp-block-navigation__submenu-container) > .wp-block-pages-list__item:last-child { border-bottom: 0; }
.bsp-submenu-toggle {
  background: transparent;
  border: 0;
  color: var(--bsp-ink);
  cursor: pointer;
  height: 80px;
  padding: 0;
  position: absolute;
  right: 0;
  top: 0;
  width: 56px;
  z-index: 2;
}
.bsp-submenu-toggle::before { border-bottom: 4px solid currentColor; border-right: 4px solid currentColor; content: ""; height: 15px; left: 18px; position: absolute; top: 27px; transform: rotate(45deg); transition: transform .48s cubic-bezier(.22,1,.36,1); width: 15px; }
.bsp-submenu-toggle[aria-expanded="true"]::before { transform: rotate(225deg); }
@keyframes bsp-drawer-in { from { transform: translateX(-101%); } to { transform: translateX(0); } }
@keyframes bsp-drawer-out { from { transform: translateX(0); } to { transform: translateX(-101%); } }
@keyframes bsp-logo-color-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes bsp-logo-white-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes bsp-icon-burger-out { from { opacity: 1; transform: rotate(0deg) scale(1); } to { opacity: 0; transform: rotate(45deg) scale(.75); } }
@keyframes bsp-icon-x-in { from { opacity: 0; transform: rotate(-45deg) scale(.75); } to { opacity: 1; transform: rotate(0deg) scale(1); } }
.bsp-auto-navigation .wp-block-navigation__responsive-container.bsp-is-closing {
  animation: bsp-drawer-out .38s cubic-bezier(.55, .06, .68, .19) both;
  pointer-events: none;
}
.bsp-auto-navigation .wp-block-navigation__responsive-container.bsp-is-closing .bsp-drawer-brand-color { animation: bsp-logo-white-in .3s .05s ease both; }
.bsp-auto-navigation .wp-block-navigation__responsive-container.bsp-is-closing .bsp-drawer-brand-white { animation: bsp-logo-color-out .3s ease both; }
.bsp-auto-navigation .wp-block-navigation__responsive-container.bsp-is-closing .bsp-drawer-burger { animation: bsp-icon-x-in .3s .05s ease both; }
.bsp-auto-navigation .wp-block-navigation__responsive-container.bsp-is-closing .wp-block-navigation__responsive-container-close > svg:not(.bsp-drawer-burger) { animation: bsp-icon-burger-out .3s ease both; }

.bsp-shell { margin-inline: auto; max-width: var(--bsp-content); padding-inline: var(--bsp-gutter); }
.bsp-section { padding: var(--bsp-section) var(--bsp-gutter); }
.entry-content :where(.bsp-section,.bsp-card,.bsp-program-milestone__body,.bsp-program-benefit,.bsp-program-apply-box) > * { margin-block-end: 0; }
.entry-content :where(.bsp-section,.bsp-card,.bsp-program-milestone__body,.bsp-program-benefit,.bsp-program-apply-box) > * + * { margin-block-start: clamp(16px, 1.6vw, 24px); }
.entry-content :where(.bsp-section,.bsp-card,.bsp-program-milestone__body,.bsp-program-benefit,.bsp-program-apply-box) > .bsp-eyebrow + :is(h1,h2,h3,h4) { margin-block-start: 10px; }
.entry-content :where(.bsp-section,.bsp-card,.bsp-program-milestone__body,.bsp-program-benefit,.bsp-program-apply-box) > :is(h1,h2,h3,h4) + p { margin-block-start: clamp(14px, 1.35vw, 20px); }
.entry-content .bsp-section > :is(.wp-block-columns,.wp-block-buttons,.wp-block-gallery,.wp-block-image) { margin-block-start: clamp(28px, 3.5vw, 48px); }
.entry-content > .wp-block-group > * + *,
.entry-content .wp-block-column > * + * { margin-block-start: clamp(15px, 1.45vw, 22px); }
.entry-content > .wp-block-group > :is(.wp-block-columns,.wp-block-buttons,.wp-block-gallery,.wp-block-image) { margin-block-start: clamp(26px, 3vw, 44px); }
.entry-content :is(.has-large-font-size,.bsp-program-lead.has-large-font-size) { font-size: clamp(21px, 2vw, 28px) !important; line-height: 1.45; }
.bsp-section--light,
.is-style-bsp-light { background: var(--bsp-bg); color: var(--bsp-text); }
.bsp-section--surface,
.is-style-bsp-surface { background: var(--bsp-surface); color: var(--bsp-text); }
.bsp-section--blue { background: var(--bsp-blue); color: var(--bsp-white); }
.is-style-bsp-navy { background: var(--bsp-blue); color: var(--bsp-white); }
.bsp-section--blue :is(h1,h2,h3,h4) { color: var(--bsp-yellow); }
.is-style-bsp-navy :is(h1,h2,h3,h4) { color: var(--bsp-yellow); }
.bsp-section--yellow { background: var(--bsp-yellow); color: var(--bsp-blue); }
.is-style-bsp-yellow { background: var(--bsp-yellow); color: var(--bsp-blue); }
.bsp-section--red { background: var(--bsp-red); color: var(--bsp-white); }
.is-style-bsp-red { background: var(--bsp-red); color: var(--bsp-white); }
.is-style-bsp-red :is(h1,h2,h3,h4) { color: var(--bsp-white); }
.home .entry-content > .bsp-section--blue:first-child {
  background: var(--bsp-surface);
  color: var(--bsp-text);
}
.home .entry-content > .bsp-section--blue:first-child :is(h1,h2,h3,h4) { color: var(--bsp-blue); }
.home .entry-content > .bsp-section--blue:first-child .bsp-eyebrow { color: var(--bsp-red-readable); }
.home .entry-content > .bsp-section--blue:first-child h1 {
  font-size: clamp(48px, 6.2vw, 94px);
  line-height: .98;
}
.home .entry-content > .bsp-section--blue:first-child h1 + p {
  font-size: clamp(17px, 1.15vw, 19px) !important;
  line-height: 1.5;
}
.bsp-grid { display: grid !important; gap: clamp(24px, 4vw, 60px); grid-template-columns: repeat(12, minmax(0, 1fr)); }
.bsp-grid > * { grid-column: span 4; }
.bsp-stack > * + * { margin-block-start: clamp(14px, 2vw, 28px); }
.bsp-eyebrow { color: var(--bsp-red-readable); font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.bsp-card {
  background: var(--bsp-surface);
  border-top: 8px solid var(--bsp-yellow);
  height: 100%;
  padding: clamp(28px, 4vw, 52px);
  transition: transform 520ms var(--bsp-ease), box-shadow 520ms var(--bsp-ease);
}
.bsp-card:hover { box-shadow: var(--bsp-shadow); transform: translateY(-9px); }
.bsp-card--blue { background: var(--bsp-blue); color: var(--bsp-white); }
.bsp-card--blue :is(h2,h3,h4) { color: var(--bsp-yellow); }
.wp-block-separator { border-top-color: var(--bsp-red); border-top-width: 8px; opacity: 1; }

footer.wp-block-template-part,
body footer.bsp-site-footer {
  background: #000;
  border: 0;
  color: var(--bsp-white);
  margin: 0;
  padding: 0;
}
.bsp-footer { background: #000; border-top: 8px solid var(--bsp-red); color: var(--bsp-white); }
.bsp-footer__inner { margin-inline: auto; max-width: 1152px; padding: 80px 0; }
.bsp-footer__grid { display: grid; gap: 64px; grid-template-columns: repeat(4, minmax(0, 240px)); justify-content: space-between; }
.bsp-footer__brand,
.bsp-footer__column { display: flex; flex-direction: column; }
.bsp-footer__brand { gap: 28px; }
.bsp-footer__column { gap: 20px; }
.bsp-footer__logo { display: block; height: auto; width: 240px; }
.bsp-footer__location { color: var(--bsp-white); font-size: 16px; line-height: 1.45; }
.bsp-footer__socials { display: flex; gap: 24px; }
.bsp-footer__social {
  align-items: center;
  color: var(--bsp-white);
  display: inline-flex;
  height: 40px;
  justify-content: center;
  transition: color .25s ease, opacity .25s ease, transform .25s ease;
  width: 40px;
}
.bsp-footer__social svg { display: block; height: 40px; width: 40px; }
.bsp-footer__social:hover { color: var(--bsp-yellow); opacity: .86; transform: translateY(-2px); }
.bsp-footer__heading {
  color: var(--bsp-white) !important;
  font-family: var(--bsp-font-body, "Inria Sans", sans-serif);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .13em;
  line-height: 1.2;
  margin: 0;
  text-transform: uppercase;
}
.bsp-footer__links { display: flex; flex-direction: column; gap: 17.6px; list-style: none; margin: 0; padding: 0; }
.bsp-footer__links li { margin: 0; padding: 0; }
.bsp-footer a { color: var(--bsp-white) !important; text-decoration: none; }
.bsp-footer__links a { font-size: 16px; line-height: 1.25; transition: color .25s ease, opacity .25s ease; }
.bsp-footer__links a:hover { color: var(--bsp-yellow) !important; opacity: .9; }
.bsp-program-single { padding: 0; }
.bsp-program-single__header { margin: 0; max-width: none; padding: 0; width: 100%; }
.bsp-program-single__content { margin-inline: 0; max-width: none; width: 100%; }
.bsp-program-single__content .bsp-section.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: 1200px; }
.bsp-program-single__content .wp-block-post-content > .bsp-section:first-child { padding-top: clamp(52px,6vw,80px); }
.bsp-program-archive { padding: clamp(64px,8vw,112px) var(--bsp-gutter); }
.bsp-program-archive__intro { margin-inline: auto; max-width: 1200px; }
.bsp-programs-page { padding-bottom: clamp(64px,8vw,112px); }
.bsp-programs-page__hero { padding: clamp(86px,7vw,104px) var(--bsp-gutter) clamp(30px,3.5vw,46px); }
.bsp-program-type-hero { padding: clamp(40px,5vw,68px) var(--bsp-gutter); }
.bsp-program-type-hero h1 { font-size: clamp(38px,5vw,68px); }
.bsp-programs-page__hero > *,
.bsp-program-type-hero > * { margin-inline: auto; max-width: 1200px; }
.bsp-programs-page__hero > .wp-block-post-title { display: none; }
.bsp-programs-page__hero > .bsp-eyebrow { margin-bottom: 10px; }
.bsp-programs-page__hero > .wp-block-post-content { margin: 0 auto !important; max-width: 1200px; }
.bsp-programs-page__hero > .wp-block-post-content > .wp-block-group:first-child {
  background: transparent !important;
  color: var(--bsp-text) !important;
  margin: 0 !important;
  max-width: 780px !important;
  padding: 0 !important;
}
.bsp-programs-page__hero > .wp-block-post-content > .wp-block-group:first-child h1 {
  color: var(--bsp-blue) !important;
  font-size: clamp(44px,5vw,72px) !important;
  line-height: .98;
  margin: 0 0 clamp(14px,1.6vw,22px);
}
.bsp-programs-page__hero > .wp-block-post-content > .wp-block-group:first-child p {
  color: var(--bsp-text) !important;
  font-size: clamp(17px,1.35vw,20px) !important;
  line-height: 1.55;
  margin: 0;
}
.bsp-programs-page__directory { margin-inline: auto; max-width: 1200px; padding: clamp(58px,7vw,92px) var(--bsp-gutter) 0; }
.bsp-programs-page__section { border-top: 5px solid transparent; padding: clamp(34px,4vw,52px) clamp(22px,3.5vw,46px) clamp(48px,6vw,76px); }
.bsp-programs-page__section + .bsp-programs-page__section { margin-top: clamp(30px,4vw,48px); }
.bsp-programs-page__section h2 { margin-bottom: 10px; }
.bsp-programs-page__section .bsp-program-grid { margin-top: clamp(36px,4.5vw,60px); }
.bsp-programs-page__section--summer { background: rgba(252,176,64,.10); border-top-color: var(--bsp-yellow); }
.bsp-programs-page__section--performance { background: rgba(32,27,81,.055); border-top-color: var(--bsp-blue); }
.bsp-programs-page__section--classes-workshops { background: rgba(237,28,36,.055); border-top-color: var(--bsp-red); }
.bsp-programs-page__section--summer h2 { text-decoration-color: var(--bsp-yellow); text-decoration-line: underline; text-decoration-thickness: 8px; text-underline-offset: 10px; }
.bsp-programs-page__section--performance h2 { text-decoration-color: var(--bsp-blue); text-decoration-line: underline; text-decoration-thickness: 8px; text-underline-offset: 10px; }
.bsp-programs-page__section--classes-workshops h2 { text-decoration-color: var(--bsp-red); text-decoration-line: underline; text-decoration-thickness: 8px; text-underline-offset: 10px; }
.bsp-programs-page__section > h2 { text-decoration:none !important; }
.bsp-program-type-archive { padding-bottom: clamp(64px,8vw,112px); }
.bsp-program-type-archive__grid { margin-inline: auto; max-width: 1200px; padding: clamp(56px,7vw,92px) var(--bsp-gutter) 0; }
.term-summer-intensives .bsp-program-type-hero { background: var(--bsp-yellow); color: var(--bsp-blue); }
.term-performance-opportunities .bsp-program-type-hero { background: var(--bsp-blue); color: var(--bsp-white); }
.term-performance-opportunities .bsp-program-type-hero :is(h1,h2,p) { color: inherit; }
.term-classes-workshops .bsp-program-type-hero { background: var(--bsp-red); color: var(--bsp-white); }
.term-classes-workshops .bsp-program-type-hero :is(h1,h2,p) { color: inherit; }

.bsp-program-back { align-items: center; color: var(--bsp-blue); display: inline-flex; font-family: "Inria Sans", "Trebuchet MS", sans-serif; font-size: 15px; gap: 8px; margin-bottom: 28px; text-decoration: none; transition: color .25s ease,transform .35s cubic-bezier(.16,1,.3,1); }
.bsp-program-back:hover { color: var(--bsp-red); transform: translateX(-5px); }
.term-performance-opportunities .bsp-program-back,
.term-classes-workshops .bsp-program-back { color: var(--bsp-white); }
.term-performance-opportunities .bsp-program-back:hover,
.term-classes-workshops .bsp-program-back:hover { color: var(--bsp-yellow); }
.bsp-program-type-nav { display: grid; gap: 10px; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 0 auto; max-width: 1200px; padding: 0 var(--bsp-gutter); }
.bsp-program-type-nav__link {
  align-items: center;
  background: rgba(255,255,255,.48);
  border: 1px solid rgba(32,27,81,.14);
  box-sizing: border-box;
  color: var(--bsp-blue);
  display: flex;
  font-family: "Inria Sans", "Trebuchet MS", sans-serif;
  font-size: clamp(16px,1.3vw,19px);
  font-weight: 600;
  justify-content: space-between;
  line-height: 1.2;
  min-height: 68px;
  isolation: isolate;
  overflow: hidden;
  padding: 15px 19px;
  position: relative;
  text-decoration: none;
  transition: border-color .42s var(--bsp-ease),color .42s var(--bsp-ease);
}
.bsp-program-type-nav__link::before { background: var(--bsp-blue); content: ""; inset: 0 auto 0 0; position: absolute; transition: width .48s var(--bsp-ease); width: 4px; z-index: -1; }
a.bsp-program-type-nav__link:hover { color: var(--bsp-white) !important; transform: none; }
.bsp-program-type-nav__link:hover::before { width: 100%; }
.bsp-program-type-nav__link--summer::before { background: var(--bsp-yellow); }
.bsp-program-type-nav__link--performance::before { background: var(--bsp-blue); }
.bsp-program-type-nav__link--classes-workshops::before { background: var(--bsp-red); }

/* Dynamic homepage program-category showcase. */
.bsp-home-programs { background:var(--bsp-bg); padding:clamp(64px,8vw,112px) var(--bsp-gutter); }
.bsp-home-programs__inner { margin-inline:auto; max-width:1200px; }
.wp-block-group.bsp-home-programs__inner.is-layout-constrained > .bsp-home-programs__header { margin-inline:0 !important; max-width:820px !important; width:100% !important; }
.wp-block-group.bsp-home-programs__inner.is-layout-constrained > .wp-block-bsp-program-card-grid,
.wp-block-group.bsp-home-programs__inner.is-layout-constrained > .bsp-program-card-grid { margin-inline:0 !important; max-width:1200px !important; width:100% !important; }
.bsp-home-programs__header { margin-bottom:clamp(34px,5vw,58px); max-width:820px; }
.bsp-home-programs__header .bsp-eyebrow { color:var(--bsp-red-readable); }
.bsp-home-programs__header h2 { font-size:clamp(38px,5vw,68px); line-height:1; margin-block:10px 18px; }
.bsp-home-programs__header p:last-child { font-size:clamp(17px,1.6vw,21px); line-height:1.65; }
.bsp-home-programs__grid { display:grid; gap:clamp(18px,2vw,24px); grid-template-columns:repeat(3,minmax(0,1fr)); }
.editor-styles-wrapper .bsp-program-card-grid__preview > div > .bsp-program-card-grid { display:grid!important; gap:clamp(18px,2vw,24px)!important; grid-template-columns:repeat(3,minmax(0,1fr))!important; margin-inline:auto!important; max-width:1144px!important; width:100%!important; }
.editor-styles-wrapper .bsp-program-card-grid__preview .bsp-home-programs__card { max-width:368px!important; width:100%!important; }
.bsp-home-programs__card { --bsp-category:32,27,81; --bsp-corner:237,28,36; aspect-ratio:3/4; background:var(--bsp-surface); color:var(--bsp-white) !important; display:block; min-width:0; overflow:hidden; position:relative; text-decoration:none !important; }
.bsp-home-programs__card--summer-intensives { --bsp-category:252,176,64; --bsp-corner:32,27,81; }
.bsp-home-programs__card--performance-opportunities { --bsp-category:32,27,81; --bsp-corner:237,28,36; }
.bsp-home-programs__card--classes-workshops { --bsp-category:237,28,36; --bsp-corner:252,176,64; }
.bsp-home-programs__media { inset:0; overflow:hidden; position:absolute; }
.bsp-home-programs__media img { display:block; height:100%; object-fit:cover; transition:transform .5s ease; width:100%; }
.bsp-home-programs__badge { background:rgba(170,14,19,.82); color:var(--bsp-white); font-size:14px; left:0; line-height:1; padding:16px 17px; position:absolute; top:0; z-index:3; }
.bsp-home-programs__panel { -webkit-backdrop-filter:blur(10px) saturate(1.08); backdrop-filter:blur(10px) saturate(1.08); background:rgba(var(--bsp-category),.78); clip-path:polygon(0 0,78% 0,100% 18%,100% 100%,0 100%); height:100%; inset:0; overflow:hidden; position:absolute; transform:translateY(80%); transition:transform .65s cubic-bezier(.22,.8,.2,1); z-index:2; }
.bsp-home-programs__rest { box-sizing:border-box; display:flex; flex-direction:column; gap:4px; left:0; padding:18px clamp(52px,5vw,72px) 18px clamp(12px,1.4vw,18px); position:absolute; right:0; top:10%; transform:translateY(-50%); transition:top .65s cubic-bezier(.22,.8,.2,1),transform .65s cubic-bezier(.22,.8,.2,1); z-index:2; }
.bsp-home-programs__rest strong { color:var(--bsp-white); font-family:"Inria Sans","Trebuchet MS",sans-serif; font-size:clamp(19px,1.55vw,24px); line-height:1.12; }
.bsp-home-programs__rest span { color:rgba(255,255,255,.82); font-size:13px; line-height:1.25; }
.bsp-home-programs__body { box-sizing:border-box; display:flex; flex-direction:column; height:100%; justify-content:flex-end; padding:clamp(28px,3vw,40px) clamp(18px,2.3vw,30px) clamp(48px,5vw,70px) clamp(12px,1.4vw,18px); }
.bsp-home-programs__body h3 { color:var(--bsp-white) !important; font-family:"Inria Sans","Trebuchet MS",sans-serif; font-size:clamp(25px,2vw,32px); font-weight:700; line-height:1.12; margin:0 0 10px; max-width:88%; }
.bsp-home-programs__body p { color:rgba(255,255,255,.9) !important; font-size:15px; line-height:1.55; margin:0 0 24px; }
.bsp-home-programs__body .bsp-home-programs__meta { font-size:15px; margin-bottom:24px; }
.bsp-home-programs__link { align-self:flex-start; border:1px solid rgba(255,255,255,.9); color:var(--bsp-white); font-weight:400; margin-top:4px; padding:11px 17px; transition:background-color .3s ease,color .3s ease; }
.bsp-home-programs__corner { align-items:flex-start; backface-visibility:hidden; background:rgb(var(--bsp-corner)); clip-path:polygon(100% 0,0 0,100% 100%); color:var(--bsp-white); display:flex; font-size:42px; height:18%; justify-content:flex-end; opacity:0; padding:7px 10px 0 0; position:absolute; right:0; top:0; transform:translate3d(10px,-10px,0) scale(.94); transform-origin:top right; transition:opacity .16s ease,transform .34s var(--bsp-ease); width:22%; will-change:transform,opacity; z-index:4; }
.bsp-home-programs__corner span { line-height:1; }
.bsp-home-programs__card:is(:hover,:focus-visible) .bsp-home-programs__panel { transform:translateY(0); }
.bsp-home-programs__card:is(:hover,:focus-visible) .bsp-home-programs__corner { opacity:1; transform:translate3d(0,0,0) scale(1); }
.bsp-home-programs__body > :is(h3,.bsp-home-programs__meta) { opacity:0; pointer-events:none; position:absolute; }
.bsp-home-programs__card:is(:hover,:focus-visible) .bsp-home-programs__rest { top:38%; transform:translateY(-50%); }
.bsp-home-programs__card:is(:hover,:focus-visible) .bsp-home-programs__media img { transform:scale(1.05); }
.bsp-home-programs__card:is(:hover,:focus-visible) .bsp-home-programs__link { background:var(--bsp-white); color:rgb(var(--bsp-category)); }
.bsp-home-programs__card:focus-visible { outline:3px solid var(--bsp-red); outline-offset:4px; }
.bsp-home-programs__all { align-items:center; color:var(--bsp-blue) !important; display:inline-flex; font-weight:700; gap:10px; margin-top:clamp(30px,4vw,48px); text-decoration:none; }
.bsp-home-programs__all::after { content:"→"; transition:transform .3s var(--bsp-ease); }
.bsp-home-programs__all:hover::after { transform:translateX(5px); }
@media (max-width:900px) { .bsp-home-programs__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .bsp-home-programs__card:last-child { grid-column:1/-1; justify-self:center; max-width:calc(50% - 12px); width:100%; } }
@media (max-width:620px) { .bsp-home-programs__grid { grid-template-columns:1fr; } .bsp-home-programs__card,.bsp-home-programs__card:last-child { aspect-ratio:3/4; grid-column:auto; justify-self:stretch; max-width:none; } .bsp-home-programs__panel { clip-path:polygon(0 0,82% 0,100% 14%,100% 100%,0 100%); transform:translateY(72%); } .bsp-home-programs__rest { top:14%; } .bsp-home-programs__card:is(:hover,:focus-visible) .bsp-home-programs__rest { top:36%; } .bsp-home-programs__corner { height:14%; width:18%; } }
@media (hover:none) { .bsp-home-programs__panel { transform:translateY(58%); } .bsp-home-programs__card:focus .bsp-home-programs__panel { transform:translateY(0); } }

/* Faculty directory + reusable automatic carousel. */
.bsp-faculty-section { background:var(--bsp-bg); box-sizing:border-box; color:var(--bsp-text); overflow:hidden; padding:clamp(64px,8vw,110px) var(--bsp-gutter); }
.bsp-faculty-section > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width:var(--bsp-content) !important; }
.bsp-faculty-section > .bsp-eyebrow { color:var(--bsp-red-readable) !important; margin:0 0 10px; }
.bsp-faculty-section > h2 { color:var(--bsp-blue) !important; font-size:clamp(38px,5vw,68px); margin:0 0 18px; max-width:850px !important; }
.bsp-faculty-section > h2 + p { color:var(--bsp-text) !important; font-size:clamp(17px,1.5vw,21px); margin:0 0 clamp(32px,5vw,54px); max-width:720px !important; }
.wp-block-bsp-faculty-carousel { left:50%; max-width:1600px !important; position:relative; transform:translateX(-50%); width:min(94vw,1600px) !important; }
.bsp-faculty-carousel { position:relative; }
.bsp-faculty-carousel__viewport { -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 3.5%,#000 96.5%,transparent 100%); mask-image:linear-gradient(90deg,transparent 0,#000 3.5%,#000 96.5%,transparent 100%); overflow-x:auto; overscroll-behavior-inline:contain; padding-inline:3.5%; scrollbar-width:none; scroll-padding-inline:3.5%; scroll-snap-type:x mandatory; }
.bsp-faculty-carousel__viewport::-webkit-scrollbar { display:none; }
.bsp-faculty-carousel__track { display:flex; gap:clamp(12px,1.25vw,20px); width:max-content; }
.bsp-faculty-card { background:var(--bsp-white); color:var(--bsp-text); flex:0 0 clamp(160px,14.4vw,220px); scroll-snap-align:start; }
.bsp-faculty-card__media { aspect-ratio:1/1; background:var(--bsp-surface); overflow:hidden; }
.bsp-faculty-card__image { display:block; height:100%; object-fit:cover; transition:transform .55s var(--bsp-ease); width:100%; }
.bsp-faculty-card:hover .bsp-faculty-card__image { transform:scale(1.035); }
.bsp-faculty-card__placeholder { align-items:center; background:var(--bsp-yellow); color:var(--bsp-blue); display:flex; font-family:"Inria Serif",Georgia,serif; font-size:92px; height:100%; justify-content:center; }
.bsp-faculty-card__copy { border-top:4px solid var(--bsp-red); min-height:142px; padding:17px 16px 20px; }
.bsp-faculty-card__copy h3 { color:var(--bsp-blue) !important; font-family:"Inria Sans","Trebuchet MS",sans-serif; font-size:18px; font-weight:700; letter-spacing:0; line-height:1.15; margin:0 0 8px; }
.bsp-faculty-card__copy p { margin:0; }
.bsp-faculty-card__profession { color:var(--bsp-red-readable); font-size:14px; font-weight:700; line-height:1.3; }
.bsp-faculty-card__credits { color:var(--bsp-text); font-size:14px; line-height:1.4; margin-top:8px !important; }
.bsp-faculty-carousel__controls { display:flex; gap:10px; justify-content:flex-end; margin-top:24px; }
.bsp-faculty-carousel__controls { padding-inline:3.5%; }
.bsp-faculty-carousel__controls button { align-items:center; background:transparent; border:1px solid rgba(32,27,81,.35); color:var(--bsp-blue); cursor:pointer; display:flex; font-size:24px; height:44px; justify-content:center; transition:background-color .25s ease,color .25s ease,border-color .25s ease; width:50px; }
.bsp-faculty-carousel__controls button:hover { background:var(--bsp-blue); border-color:var(--bsp-blue); color:var(--bsp-white); }
.bsp-faculty-empty { border:1px dashed rgba(32,27,81,.3); color:inherit; padding:28px; }
.editor-styles-wrapper .bsp-faculty-carousel-editor { max-width:1200px !important; width:100% !important; }
.editor-styles-wrapper .bsp-faculty-carousel-editor .bsp-faculty-carousel { width:100%; }
@media (min-width:1700px) { .bsp-faculty-card { flex-basis:190px; } }
@media (max-width:900px) { .bsp-faculty-card { flex-basis:clamp(175px,29vw,230px); } }
@media (max-width:600px) { .wp-block-bsp-faculty-carousel { width:100vw !important; } .bsp-faculty-carousel__viewport { -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%); mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%); padding-inline:7%; } .bsp-faculty-card { flex-basis:68vw; max-width:245px; } }

/* Homepage editorial rhythm. These rules normalize only introductory text
   stacks, leaving buttons, columns, galleries, and page-specific layouts alone. */
.home .entry-content > .wp-block-group { box-sizing:border-box; }
.home .entry-content > .wp-block-group > :is(.bsp-eyebrow,h1,h2,h3,p),
.home .entry-content > .wp-block-group > .wp-block-group > :is(.bsp-eyebrow,h1,h2,h3,p) { margin-block:0; }
.home .entry-content > .wp-block-group > .bsp-eyebrow + :is(h1,h2,h3),
.home .entry-content > .wp-block-group > .wp-block-group > .bsp-eyebrow + :is(h1,h2,h3),
.home .bsp-home-programs__header > .bsp-eyebrow + h2,
.home .bsp-faculty-section > .bsp-eyebrow + h2 { margin-top:10px !important; }
.home .entry-content > .wp-block-group > :is(h1,h2,h3) + p,
.home .entry-content > .wp-block-group > .wp-block-group > :is(h1,h2,h3) + p,
.home .bsp-home-programs__header > h2 + p,
.home .bsp-faculty-section > h2 + p { margin-top:clamp(14px,1.4vw,20px) !important; }
.home .entry-content > .wp-block-group > p + :is(.wp-block-buttons,.wp-block-columns,.wp-block-image,.wp-block-gallery),
.home .entry-content > .wp-block-group > .wp-block-group > p + :is(.wp-block-buttons,.wp-block-columns,.wp-block-image,.wp-block-gallery) { margin-top:clamp(26px,3vw,42px) !important; }
.home .entry-content > .wp-block-group > :is(.wp-block-buttons,.wp-block-columns,.wp-block-image,.wp-block-gallery) + p { margin-top:clamp(24px,2.8vw,40px) !important; }
.home .bsp-home-programs__header { margin-bottom:clamp(34px,4vw,52px) !important; }
.home .bsp-home-programs__header > p:last-child,
.home .bsp-faculty-section > h2 + p { margin-bottom:0 !important; }
.home .bsp-faculty-section > h2 + p { margin-bottom:clamp(34px,4vw,52px) !important; }
@media (max-width:600px) {
  .home .entry-content > .wp-block-group > :is(h1,h2,h3) + p,
  .home .entry-content > .wp-block-group > .wp-block-group > :is(h1,h2,h3) + p { margin-top:14px !important; }
}

.bsp-program-lead { max-width: 850px; }
.bsp-program-milestones { gap: clamp(20px,3vw,36px); margin-top: clamp(36px,5vw,64px); }
.bsp-program-milestone { background: var(--bsp-white); height: 100%; }
.bsp-program-milestone .wp-block-image { margin: 0; }
.bsp-program-milestone .wp-block-image img { aspect-ratio: 4/3; object-fit: cover; width: 100%; }
.bsp-program-milestone__body { padding: clamp(24px,3vw,36px); }
.bsp-program-milestone__day { color: var(--bsp-red-readable); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.bsp-program-benefit-grid { gap: clamp(24px,4vw,58px); }
.bsp-program-benefit { border-top: 6px solid var(--bsp-red); padding-top: 24px; }
.bsp-program-apply-grid { align-items: flex-start !important; gap: clamp(42px,7vw,90px); margin-top: clamp(40px,6vw,72px); }
.bsp-program-steps { counter-reset: bsp-step; display: block; position: relative; }
.bsp-program-steps::before { background: var(--bsp-yellow); bottom: 52px; content: ""; left: 25px; position: absolute; top: 52px; width: 2px; }
.bsp-program-step { background: transparent; counter-increment: bsp-step; min-height: 52px; padding: 8px 0 44px 80px; position: relative; }
.bsp-program-step:last-child { padding-bottom: 0; }
.bsp-program-step::before { align-items: center; background: var(--bsp-yellow); color: var(--bsp-blue); content: counter(bsp-step); display: flex; font-family: "Inria Serif",Georgia,serif; font-size: 21px; height: 52px; justify-content: center; left: 0; position: absolute; top: 0; width: 52px; z-index: 1; }
.bsp-program-step h3 { color: var(--bsp-white) !important; font-size: clamp(23px,2.2vw,31px); margin: 0 0 10px; }
.bsp-program-step p { color: rgba(255,255,255,.72) !important; font-size: 16px; margin: 0; }
.bsp-program-apply-box { background: var(--bsp-red); color: var(--bsp-white); padding: clamp(30px,4vw,52px); }
.bsp-program-apply-box :is(h2,h3,h4,p,a) { color: inherit !important; }
.bsp-program-apply-box .bsp-eyebrow { color: rgba(255,255,255,.7) !important; }
.bsp-program-apply-box .wp-block-button,
.bsp-program-apply-box .wp-block-button__link { width: 100%; }
.bsp-program-apply-box__price { align-items: center; border-top: 1px solid rgba(255,255,255,.25); display: flex; justify-content: space-between; margin-top: 28px; padding-top: 24px; }
.bsp-program-apply-box__price strong:last-child { font-family: "Inria Serif",Georgia,serif; font-size: 30px; font-weight: 400; }
@media (max-width: 781px) {
	.bsp-program-apply-grid { gap: 44px; }
	.bsp-program-step { padding-left: 70px; }
}
.bsp-program-faq details { border-top: 1px solid rgba(32,27,81,.18); padding: 20px 0; }
.bsp-program-faq details:last-child { border-bottom: 1px solid rgba(32,27,81,.18); }
.bsp-program-faq summary { color: var(--bsp-blue); cursor: pointer; font-family: "Inria Serif",Georgia,serif; font-size: clamp(21px,2vw,28px); }
.bsp-program-faq details > :not(summary) { max-width: 850px; }

/* Native, client-editable FAQ layout. */
.bsp-faq-hero { padding-bottom:clamp(36px,4vw,56px); padding-top:clamp(40px,4.5vw,64px); text-align:center; }
.bsp-faq-hero > * { margin-inline:auto; max-width:900px; }
.bsp-faq-hero .bsp-eyebrow { color:var(--bsp-yellow); }
.bsp-faq-hero h1 { font-size:clamp(38px,5vw,64px) !important; line-height:1; }
.bsp-faq-hero p { font-size:clamp(17px,1.7vw,21px); }
.bsp-faq-section { padding-block:clamp(58px,7vw,96px); }
.bsp-faq-section > .wp-block-group__inner-container,
.bsp-faq-section.is-layout-constrained { max-width:none; }
.bsp-faq-section > h2 { margin-bottom:clamp(28px,4vw,48px); }
.bsp-faq-list { border-bottom:1px solid rgba(32,27,81,.2); }
.bsp-faq-list .wp-block-details { border-top:1px solid rgba(32,27,81,.2); margin:0; padding:0; }
.bsp-faq-list .wp-block-details summary { align-items:center; color:var(--bsp-blue); cursor:pointer; display:flex; font-family:"Inria Serif",Georgia,serif; font-size:clamp(21px,2vw,28px); gap:18px; justify-content:space-between; line-height:1.2; list-style:none; padding:clamp(20px,2.5vw,30px) 0; }
.bsp-faq-list .wp-block-details summary::-webkit-details-marker { display:none; }
.bsp-faq-list .wp-block-details summary::after { color:var(--bsp-red); content:"+"; flex:0 0 auto; font-family:"Inria Sans",sans-serif; font-size:30px; font-weight:400; line-height:1; transition:transform .3s cubic-bezier(.16,1,.3,1); }
.bsp-faq-list .wp-block-details[open] summary::after { transform:rotate(45deg); }
.bsp-faq-list .wp-block-details > :not(summary) { max-width:900px; padding:0 64px clamp(24px,3vw,36px) 0; }
.bsp-faq-list .wp-block-details p { line-height:1.7; }
.bsp-faq-contact { text-align:center; }
.bsp-faq-contact > * { margin-inline:auto; max-width:780px; }
@media (max-width:600px) { .bsp-faq-list .wp-block-details > :not(summary) { padding-right:0; } }

/* Enrollment terms: FAQ-inspired, continuously visible policy layout. */
.page-id-24 .wp-block-post-content > .wp-block-group:first-child {
  padding-block:clamp(40px,4.5vw,64px) !important;
  text-align:center;
}
.page-id-24 .wp-block-post-content > .wp-block-group:first-child > * {
  margin-inline:auto;
  max-width:900px;
}
.page-id-24 .wp-block-post-content > .wp-block-group:first-child h1 {
  font-size:clamp(38px,5vw,64px) !important;
  line-height:1;
}
.page-id-24 .wp-block-post-content > .wp-block-group:nth-child(2) {
  padding-block:clamp(58px,7vw,96px) !important;
}
.page-id-24 .wp-block-post-content > .wp-block-group:nth-child(2) > * {
  margin-inline:auto;
  max-width:900px;
}
.page-id-24 .wp-block-post-content > .wp-block-group:nth-child(2) > p:first-child {
  color:var(--bsp-blue);
  font-size:clamp(18px,1.7vw,21px);
  line-height:1.65;
  margin-bottom:clamp(34px,4vw,50px);
}
.page-id-24 .wp-block-post-content > .wp-block-group:nth-child(2) h2 {
  border-top:1px solid rgba(32,27,81,.2);
  font-size:clamp(23px,2.2vw,30px);
  line-height:1.2;
  margin-bottom:16px;
  margin-top:clamp(34px,4.5vw,54px);
  padding-top:clamp(24px,3vw,34px);
}
.page-id-24 .wp-block-post-content > .wp-block-group:nth-child(2) p,
.page-id-24 .wp-block-post-content > .wp-block-group:nth-child(2) li {
  line-height:1.72;
}
.page-id-24 .wp-block-post-content > .wp-block-group:nth-child(2) ul {
  margin-bottom:0;
  padding-left:1.25em;
}
.page-id-24 .wp-block-post-content > .wp-block-group:nth-child(2) li + li {
  margin-top:8px;
}
.bsp-legal-updated {
  color:var(--bsp-white);
  font-size:clamp(15px,1.4vw,18px);
  margin-top:4px;
  opacity:.76;
}
.bsp-legal-hero .bsp-eyebrow { color:var(--bsp-yellow); }
.bsp-legal-sections { padding-block:clamp(58px,7vw,96px); }
.bsp-legal-sections > * { margin-inline:auto; max-width:900px; }
.bsp-legal-intro { color:var(--bsp-blue); font-size:clamp(18px,1.7vw,21px); line-height:1.65; margin-bottom:clamp(34px,4vw,50px); }
.bsp-legal-section { border-top:1px solid rgba(32,27,81,.2); padding-top:clamp(24px,3vw,34px); }
.bsp-legal-section > * { max-width:none !important; }
.bsp-legal-section + .bsp-legal-section { margin-top:clamp(34px,4.5vw,54px); }
.bsp-legal-section .bsp-eyebrow { color:var(--bsp-red-readable); font-size:12px; margin-bottom:9px; }
.bsp-legal-section h2 { font-size:clamp(23px,2.2vw,30px); line-height:1.2; margin-bottom:16px; }
.bsp-legal-section p,.bsp-legal-section li { line-height:1.72; }
.bsp-legal-contact { padding-block:clamp(48px,6vw,76px); text-align:center; }
.bsp-legal-contact > * { margin-inline:auto; max-width:780px; }
.bsp-legal-contact a { color:var(--bsp-yellow); }
@media (max-width: 767px) {
	.bsp-program-type-nav { grid-template-columns: 1fr; }
	.bsp-program-type-nav__link { min-height: 62px; }
}

/* Client-selectable Group styles. These intentionally outrank legacy section classes. */
.wp-block-group.is-style-bsp-light {
  background-color: var(--bsp-bg) !important;
  color: var(--bsp-text) !important;
}
.wp-block-group.is-style-bsp-surface {
  background-color: var(--bsp-surface) !important;
  color: var(--bsp-text) !important;
}
.wp-block-group.is-style-bsp-light :is(h1,h2,h3,h4,h5,h6),
.wp-block-group.is-style-bsp-surface :is(h1,h2,h3,h4,h5,h6) { color: var(--bsp-blue) !important; }
.wp-block-group.is-style-bsp-navy {
  background-color: var(--bsp-blue) !important;
  color: var(--bsp-white) !important;
}
.wp-block-group.is-style-bsp-navy :is(h1,h2,h3,h4,h5,h6) { color: var(--bsp-yellow) !important; }
.wp-block-group.is-style-bsp-yellow {
  background-color: var(--bsp-yellow) !important;
  color: var(--bsp-blue) !important;
}
.wp-block-group.is-style-bsp-yellow :is(h1,h2,h3,h4,h5,h6) { color: var(--bsp-blue) !important; }
.wp-block-group.is-style-bsp-red {
  background-color: var(--bsp-red) !important;
  color: var(--bsp-white) !important;
}
.wp-block-group.is-style-bsp-red :is(h1,h2,h3,h4,h5,h6) { color: var(--bsp-white) !important; }
.wp-block-group:is(.is-style-bsp-navy,.is-style-bsp-red) :is(p,li,a) { color: inherit !important; }
.wp-block-group:is(.is-style-bsp-light,.is-style-bsp-surface,.is-style-bsp-yellow) :is(p,li) { color: inherit !important; }

/* Definitive client section treatments. The repeated Group selector is
   deliberate: it lets a chosen style override old page-specific hero classes
   in both the Site Editor canvas and the published page. */
body .wp-block-group.wp-block-group.wp-block-group.bsp-section:not([class*="is-style-bsp-"]) {
  background: transparent !important;
  color: inherit !important;
  box-shadow: none !important;
}
body .wp-block-group.wp-block-group.wp-block-group.bsp-section:not([class*="is-style-bsp-"]) :is(h1,h2,h3,h4,h5,h6) {
  color: var(--bsp-blue) !important;
}
body .wp-block-group.wp-block-group.wp-block-group[class*="is-style-bsp-"] {
  transition: background-color .35s ease, color .35s ease, box-shadow .35s ease;
}
body .wp-block-group.wp-block-group.wp-block-group.is-style-bsp-light {
  background: var(--bsp-bg) !important;
  color: var(--bsp-text) !important;
  box-shadow: none !important;
}
body .wp-block-group.wp-block-group.wp-block-group.is-style-bsp-surface {
  background: var(--bsp-surface) !important;
  color: var(--bsp-text) !important;
  box-shadow: none !important;
}
body .wp-block-group.wp-block-group.wp-block-group.is-style-bsp-navy {
  background: var(--bsp-blue) !important;
  color: var(--bsp-white) !important;
  box-shadow: none !important;
}
body .wp-block-group.wp-block-group.wp-block-group.is-style-bsp-yellow {
  background: var(--bsp-yellow) !important;
  color: var(--bsp-blue) !important;
  box-shadow: none !important;
}
body .wp-block-group.wp-block-group.wp-block-group.is-style-bsp-red {
  background: var(--bsp-red) !important;
  color: var(--bsp-white) !important;
  box-shadow: none !important;
}
body .wp-block-group.wp-block-group.wp-block-group:is(.is-style-bsp-light,.is-style-bsp-surface) :is(h1,h2,h3,h4,h5,h6) { color: var(--bsp-blue) !important; }
body .wp-block-group.wp-block-group.wp-block-group.is-style-bsp-navy :is(h1,h2,h3,h4,h5,h6) { color: var(--bsp-yellow) !important; }
body .wp-block-group.wp-block-group.wp-block-group.is-style-bsp-yellow :is(h1,h2,h3,h4,h5,h6) { color: var(--bsp-blue) !important; }
body .wp-block-group.wp-block-group.wp-block-group.is-style-bsp-red :is(h1,h2,h3,h4,h5,h6) { color: var(--bsp-white) !important; }
body .wp-block-group.wp-block-group.wp-block-group:is(.is-style-bsp-navy,.is-style-bsp-red) :is(p,li,a) { color: inherit !important; }

/* Buttons automatically maintain strong contrast inside every section style. */
body .wp-block-group.wp-block-group.wp-block-group:is(.is-style-bsp-light,.is-style-bsp-surface) .wp-block-button:not(.is-style-outline) .wp-block-button__link {
  background: var(--bsp-red) !important;
  border-color: var(--bsp-red) !important;
  color: var(--bsp-white) !important;
}
body .wp-block-group.wp-block-group.wp-block-group.is-style-bsp-navy .wp-block-button:not(.is-style-outline) .wp-block-button__link {
  background: var(--bsp-yellow) !important;
  border-color: var(--bsp-yellow) !important;
  color: var(--bsp-blue) !important;
}
body .wp-block-group.wp-block-group.wp-block-group.is-style-bsp-yellow .wp-block-button:not(.is-style-outline) .wp-block-button__link {
  background: var(--bsp-blue) !important;
  border-color: var(--bsp-blue) !important;
  color: var(--bsp-white) !important;
}
body .wp-block-group.wp-block-group.wp-block-group.is-style-bsp-red .wp-block-button:not(.is-style-outline) .wp-block-button__link {
  background: var(--bsp-white) !important;
  border-color: var(--bsp-white) !important;
  color: var(--bsp-red) !important;
}
body .wp-block-group.wp-block-group.wp-block-group:is(.is-style-bsp-light,.is-style-bsp-surface,.is-style-bsp-yellow) .wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent !important;
  border-color: var(--bsp-blue) !important;
  color: var(--bsp-blue) !important;
}
body .wp-block-group.wp-block-group.wp-block-group:is(.is-style-bsp-navy,.is-style-bsp-red) .wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent !important;
  border-color: var(--bsp-white) !important;
  color: var(--bsp-white) !important;
}
body .wp-block-group.wp-block-group.wp-block-group[class*="is-style-bsp-"] .wp-block-button .wp-block-button__link:hover {
  filter: brightness(.9);
}

@media (max-width: 900px) {
  .bsp-grid > * { grid-column: span 6; }
  .bsp-footer__inner { padding: 64px var(--bsp-gutter); }
  .bsp-footer__grid { gap: 56px 40px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  :root { --bsp-section: 60px; }
  body { line-height: 1.55; }
  h1 { font-size: clamp(43px, 13vw, 62px); }
  h2 { font-size: clamp(33px, 9.5vw, 47px); }
  h3 { font-size: clamp(24px, 7vw, 32px); }
  .bsp-header-logo { flex: 1 1 auto; min-width: 0; }
  .bsp-header-audition { margin-right: 6px !important; }
  .bsp-header-audition .wp-block-button,
  .bsp-header-audition .wp-block-button__link { height: 32px; }
  .bsp-header-audition .wp-block-button__link { font-size: 10px; padding-inline: 11px !important; }
  .bsp-auto-navigation .wp-block-navigation__responsive-container:is(.is-menu-open, .bsp-is-closing) { width: 100vw !important; }
  .bsp-drawer-brand { width: min(311.5px, calc(100vw - 84px)); }
  .bsp-auto-navigation .wp-block-pages-list__item__link { font-size: 16px; padding-inline: 16px 58px !important; }
  .bsp-auto-navigation .submenu-container .wp-block-pages-list__item__link,
  .bsp-auto-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item__link { font-size: 13px; padding: 12px 12px 12px 22px !important; }
  .home .entry-content > .bsp-section--blue:first-child h1 { font-size: clamp(44px, 15vw, 64px); }
  .bsp-grid { display: block !important; }
  .bsp-grid > * + * { margin-top: 24px; }
  .bsp-footer__inner { padding-block: 56px; }
  .bsp-footer__grid { grid-template-columns: 1fr; }
  .bsp-footer__logo { max-width: 240px; width: min(70vw, 240px); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Automatic, client-managed Faculty and Success Stories landing pages. */
.bsp-directory { background:var(--bsp-bg); }
.bsp-directory__hero { background:var(--bsp-surface); padding:clamp(58px,7vw,92px) var(--bsp-gutter) clamp(46px,5vw,70px); }
.bsp-directory--stories .bsp-directory__hero { background:var(--bsp-blue); color:var(--bsp-white); }
.bsp-directory__hero > * { margin-inline:auto; max-width:var(--bsp-content); }
.bsp-directory__hero .bsp-eyebrow { color:var(--bsp-red-readable); margin-bottom:10px; }
.bsp-directory--stories .bsp-directory__hero .bsp-eyebrow { color:var(--bsp-yellow); }
.bsp-directory__hero h1 { font-size:clamp(48px,7vw,88px); margin:0 0 18px; }
.bsp-directory--stories .bsp-directory__hero h1 { color:var(--bsp-white); }
.bsp-directory__hero p:last-child { font-size:clamp(17px,1.5vw,21px); line-height:1.55; margin-bottom:0; max-width:760px; }
.bsp-directory__hero > p:last-child,
.bsp-faq-hero > p:last-child,
.bsp-legal-hero > p:last-child,
.bsp-program-type-hero > p:last-child,
.bsp-programs-page__hero > p:last-child,
.bsp-program-single__header :is(.bsp-program-hero__intro,.bsp-program-hero__description) {
  margin-left: 0 !important;
  margin-right: auto !important;
}
.bsp-directory__query { box-sizing:border-box; margin:0 auto !important; max-width:1400px !important; padding:clamp(54px,7vw,96px) var(--bsp-gutter); }
.bsp-directory__grid { gap:clamp(22px,2.2vw,34px) !important; }
.bsp-directory-card { align-content:start; background:var(--bsp-white); border-bottom:5px solid var(--bsp-red); height:100%; overflow:hidden; }
.bsp-directory--stories .bsp-directory-card { border-bottom-color:var(--bsp-yellow); }
.bsp-directory-card .wp-block-post-featured-image { aspect-ratio:1; background:var(--bsp-surface); margin:0; overflow:hidden; }
.bsp-directory-card .wp-block-post-featured-image img { height:100% !important; object-fit:cover; transition:transform .5s var(--bsp-ease); width:100% !important; }
.bsp-directory-card:hover .wp-block-post-featured-image img { transform:scale(1.035); }
.bsp-directory-card .wp-block-post-title { font-size:clamp(22px,2vw,30px); line-height:1.12; margin:0; padding:22px 22px 0; }
.bsp-directory-card .wp-block-post-title a { color:var(--bsp-blue); text-decoration:none; }
.bsp-directory-card .wp-block-post-excerpt { color:var(--bsp-text); font-size:15px; line-height:1.55; margin:0; padding:12px 22px 24px; }
.bsp-directory-card .wp-block-post-excerpt__more-link { color:var(--bsp-red-readable); display:inline-block; font-weight:700; margin-top:12px; text-decoration:none; }
@media (max-width:1000px) { .bsp-directory__grid { grid-template-columns:repeat(3,minmax(0,1fr)) !important; } }
@media (max-width:720px) { .bsp-directory__grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media (max-width:480px) { .bsp-directory__grid { grid-template-columns:1fr !important; } }


/* BSP RESPONSIVE RHYTHM AUDIT — 2026-08
 * Structural guardrails only. Color, spacing and typography choices made by
 * clients in Gutenberg remain authoritative unless a BSP component requires
 * a documented layout contract.
 */
:root {
  --bsp-page-gutter: clamp(20px, 4.5vw, 72px);
  --bsp-section-space: clamp(52px, 7vw, 96px);
  --bsp-section-space-compact: clamp(36px, 5vw, 68px);
  --bsp-copy-width: 760px;
  --bsp-wide-width: 1200px;
}

/* Remove inherited block-gap above the first page component. */
.entry-content.wp-block-post-content > :first-child,
main > .wp-block-post-content > :first-child {
  margin-block-start: 0;
}

/* Predictable sizing and media behavior everywhere. */
.wp-site-blocks *, .wp-site-blocks *::before, .wp-site-blocks *::after { box-sizing: border-box; }
.wp-site-blocks :where(img, video, iframe) { max-width: 100%; }
.wp-site-blocks img { height: auto; }

/* Do not impose theme margins on client-authored blocks. WordPress blockGap
   remains editable; these rules only remove accidental doubled margins. */
.entry-content :where(h1,h2,h3,h4,h5,h6,p,ul,ol,figure,.wp-block-buttons):first-child { margin-top: 0; }
.entry-content :where(h1,h2,h3,h4,h5,h6,p,ul,ol,figure,.wp-block-buttons):last-child { margin-bottom: 0; }
.entry-content :where(p,li) { overflow-wrap: anywhere; }
.entry-content :where(.wp-block-columns) { align-items: stretch; }

/* Shared BSP sections use one responsive rhythm and one wide alignment line. */
.entry-content :where(.bsp-section,.bsp-directory__hero,.bsp-faq-hero,.bsp-legal-hero,.bsp-program-type-hero,.bsp-programs-page__hero) {
  padding-inline: var(--bsp-page-gutter);
}
.entry-content :where(.bsp-section) {
  padding-block: var(--bsp-section-space);
}
.entry-content :where(.bsp-section--compact) {
  padding-block: var(--bsp-section-space-compact);
}
.entry-content :where(.bsp-section,.bsp-directory__hero,.bsp-faq-hero,.bsp-legal-hero,.bsp-program-type-hero,.bsp-programs-page__hero)
  > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  width: min(100%, var(--bsp-wide-width));
}

/* Hero copy shares a left edge but remains comfortably readable. */
:where(.bsp-directory__hero,.bsp-faq-hero,.bsp-legal-hero,.bsp-program-type-hero,.bsp-programs-page__hero)
  > :where(h1,h2,h3,p,.bsp-eyebrow) {
  margin-left: auto;
  margin-right: auto;
  width: min(100%, var(--bsp-wide-width));
}
:where(.bsp-directory__hero,.bsp-faq-hero,.bsp-legal-hero,.bsp-program-type-hero,.bsp-programs-page__hero)
  > p:not(.bsp-eyebrow) {
  padding-right: 0;
}
:where(.bsp-directory__hero,.bsp-faq-hero,.bsp-legal-hero,.bsp-program-type-hero,.bsp-programs-page__hero) h1 {
  font-size: clamp(42px, 6vw, 78px);
  line-height: 1;
  text-wrap: balance;
}

/* Component grids contract smoothly instead of overflowing between breakpoints. */
:where(.bsp-directory__grid,.bsp-program-grid,.bsp-grid) > * { min-width: 0; }
.bsp-directory__query {
  padding: var(--bsp-section-space-compact) var(--bsp-page-gutter);
}
.bsp-directory__grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.bsp-directory-card :where(.wp-block-post-title,.wp-block-post-excerpt) {
  overflow-wrap: anywhere;
}

/* Accessible tap targets without inflating the compact header CTA. */
.entry-content :where(.wp-block-button__link,.bsp-button) { min-height: 44px; }
.bsp-site-header :where(a,button) { touch-action: manipulation; }

@media (max-width: 1000px) {
  .bsp-directory__grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  :where(.bsp-directory__hero,.bsp-faq-hero,.bsp-legal-hero,.bsp-program-type-hero,.bsp-programs-page__hero)
    > p:not(.bsp-eyebrow) { padding-right: 0; }
}
@media (max-width: 760px) {
  :root {
    --bsp-page-gutter: clamp(18px, 5.5vw, 30px);
    --bsp-section-space: clamp(44px, 12vw, 68px);
    --bsp-section-space-compact: clamp(32px, 9vw, 50px);
  }
  .entry-content :where(.wp-block-columns) { gap: clamp(24px, 7vw, 40px); }
  .entry-content :where(.wp-block-column) { flex-basis: 100% !important; }
  :where(.bsp-directory__hero,.bsp-faq-hero,.bsp-legal-hero,.bsp-program-type-hero,.bsp-programs-page__hero)
    > p:not(.bsp-eyebrow) { padding-right: 0; }
  :where(.bsp-directory__hero,.bsp-faq-hero,.bsp-legal-hero,.bsp-program-type-hero,.bsp-programs-page__hero) h1 {
    font-size: clamp(38px, 12vw, 58px);
  }
  .bsp-directory__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 480px) {
  .bsp-directory__grid { grid-template-columns: minmax(0,1fr); }
  .entry-content :where(.wp-block-buttons) { align-items: stretch; }
  .entry-content :where(.wp-block-buttons .wp-block-button) { width: 100%; }
  .entry-content :where(.wp-block-buttons .wp-block-button__link) { justify-content: center; width: 100%; }
}


/* BSP MEDIA FIT POLICY — photographic components crop to their frame.
 * Logos and utility artwork intentionally retain object-fit: contain. */
:where(
  .bsp-program-card,
  .bsp-home-programs__card,
  .bsp-directory-card,
  .bsp-faculty-card,
  .bsp-success-story-card,
  .bsp-program-hero,
  .bsp-program-single__header,
  .bsp-featured-media,
  .bsp-program-milestone
) :where(.wp-block-image,.wp-block-post-featured-image) {
  overflow: hidden;
}
:where(
  .bsp-program-card,
  .bsp-home-programs__card,
  .bsp-directory-card,
  .bsp-faculty-card,
  .bsp-success-story-card,
  .bsp-program-hero,
  .bsp-program-single__header,
  .bsp-featured-media,
  .bsp-program-milestone
) :where(.wp-block-image,.wp-block-post-featured-image) img,
:where(
  .bsp-program-card,
  .bsp-home-programs__card,
  .bsp-directory-card,
  .bsp-faculty-card,
  .bsp-success-story-card,
  .bsp-program-hero,
  .bsp-program-single__header,
  .bsp-featured-media
) > img {
  height: 100%;
  object-fit: cover;
  object-position: var(--bsp-object-position, 50% 50%);
  width: 100%;
}
/* Explicit opt-outs available to clients for logos, posters and uncropped art. */
.bsp-media--contain img,
.is-style-bsp-contain img {
  height: auto;
  object-fit: contain;
}


/* Framed card media must fill its established frame. This intentionally wins
 * over the generic content-image height:auto safeguard. */
.bsp-home-programs__media,
.bsp-program-card__media,
.bsp-faculty-card__media,
.bsp-success-story-card__media,
.bsp-directory-card .wp-block-post-featured-image {
  height: 100%;
  inset: 0;
  width: 100%;
}
.bsp-home-programs__media img,
.bsp-program-card__media img,
.bsp-faculty-card__media img,
.bsp-success-story-card__media img,
.bsp-directory-card .wp-block-post-featured-image img {
  display: block;
  height: 100% !important;
  max-height: none;
  object-fit: cover;
  object-position: var(--bsp-object-position, 50% 50%);
  width: 100% !important;
}


/* BSP LARGE-SCREEN ALIGNMENT — one shared shell for client-authored sections.
 * Full-width backgrounds remain full width. Their ordinary children align to
 * the 1200px site shell; prose stays readable while sharing its left edge.
 * Explicit alignwide/alignfull choices remain untouched. */
.entry-content > .alignfull.has-global-padding,
.entry-content > .wp-block-group.alignfull.has-global-padding {
  padding-left: max(var(--bsp-page-gutter), calc((100% - var(--bsp-wide-width)) / 2));
  padding-right: max(var(--bsp-page-gutter), calc((100% - var(--bsp-wide-width)) / 2));
}
.entry-content > .alignfull.has-global-padding
 > :where(:not(.alignleft):not(.alignright):not(.alignwide):not(.alignfull)),
.entry-content > .wp-block-group.alignfull.has-global-padding
 > :where(:not(.alignleft):not(.alignright):not(.alignwide):not(.alignfull)) {
  margin-left: 0;
  margin-right: auto;
  max-width: var(--bsp-wide-width);
  width: 100%;
}
.entry-content > .alignfull.has-global-padding
 > :where(p,ul,ol):not(.alignwide):not(.alignfull),
.entry-content > .wp-block-group.alignfull.has-global-padding
 > :where(p,ul,ol):not(.alignwide):not(.alignfull) {
  max-width: var(--bsp-copy-width);
}
/* Legal and FAQ layouts intentionally use a slightly wider reading measure. */
.entry-content > .alignfull.has-global-padding
 > :where(.bsp-legal-updated,.bsp-faq-intro) {
  max-width: min(100%, 900px);
}
/* Stop viewport-based spacing from continuing to grow on ultrawide displays. */
@media (min-width: 1440px) {
  :root {
    --bsp-page-gutter: 64px;
    --bsp-section-space: 96px;
    --bsp-section-space-compact: 68px;
  }
  .entry-content :where(.bsp-section,.bsp-directory__hero,.bsp-faq-hero,.bsp-legal-hero,.bsp-program-type-hero,.bsp-programs-page__hero) {
    padding-left: max(64px, calc((100% - var(--bsp-wide-width)) / 2));
    padding-right: max(64px, calc((100% - var(--bsp-wide-width)) / 2));
  }
}


/* BSP ABOUT PAGE — client-editable Gutenberg editorial layout */
.page-id-12 .entry-content > :first-child { margin-top:0; }
.bsp-about-hero,
.bsp-about-story,
.bsp-about-founders,
.bsp-about-mission,
.bsp-about-community {
  padding:var(--bsp-section-space) var(--bsp-page-gutter);
}
.bsp-about-hero > *,
.bsp-about-story > *,
.bsp-about-founders > *,
.bsp-about-mission > *,
.bsp-about-community > * {
  margin-left:auto;
  margin-right:auto;
  max-width:var(--bsp-wide-width);
}
.bsp-about-hero h1 { font-size:clamp(50px,7vw,92px); line-height:.98; max-width:970px; text-wrap:balance; }
.bsp-about-hero .bsp-about-lead { font-size:clamp(18px,1.5vw,22px); line-height:1.55; max-width:720px; }
.bsp-about-story__columns { gap:clamp(42px,6vw,88px); }
.bsp-about-story h2,
.bsp-about-founders > h2,
.bsp-about-community h2 { font-size:clamp(38px,4.6vw,66px); line-height:1.02; text-wrap:balance; }
.bsp-about-family-image { aspect-ratio:4/3; margin:0; overflow:hidden; }
.bsp-about-family-image img { display:block; height:100% !important; object-fit:cover; object-position:center; width:100% !important; }
.bsp-about-founders > .bsp-about-intro { font-size:clamp(17px,1.35vw,20px); max-width:760px; }
.bsp-founder-grid { gap:clamp(30px,4vw,58px); margin-top:clamp(36px,5vw,64px); }
.bsp-founder-grid > .wp-block-column { min-width:0; }
.bsp-founder-portrait { aspect-ratio:4/3; margin:0 0 24px; overflow:hidden; }
.bsp-founder-portrait img { display:block; height:100% !important; object-fit:cover; object-position:50% 32%; width:100% !important; }
.bsp-founder-grid h3 { font-size:clamp(27px,2.4vw,38px); margin-bottom:7px; }
.bsp-founder-role { color:var(--bsp-red-readable); font-size:14px; font-weight:700; letter-spacing:.08em; margin-top:0; text-transform:uppercase; }
.bsp-about-mission { background:var(--bsp-blue); color:var(--bsp-white); }
.bsp-about-mission :where(h2,h3) { color:var(--bsp-white); }
.bsp-about-mission .bsp-eyebrow { color:var(--bsp-yellow); }
.bsp-about-mission__grid { gap:clamp(44px,7vw,100px); }
.bsp-about-mission__grid h2 { font-size:clamp(40px,5vw,70px); }
.bsp-about-mission__grid h3 + p { margin-top:12px; }
.bsp-about-community { text-align:center; }
.bsp-about-community > p { font-size:clamp(17px,1.35vw,20px); max-width:680px; }
.bsp-about-community .wp-block-buttons { justify-content:center; }
@media (max-width:781px) {
  .bsp-about-story__columns,
  .bsp-founder-grid,
  .bsp-about-mission__grid { gap:36px; }
  .bsp-about-story__columns > .wp-block-column,
  .bsp-founder-grid > .wp-block-column,
  .bsp-about-mission__grid > .wp-block-column { flex-basis:100% !important; }
  .bsp-about-family-image { aspect-ratio:16/10; }
  .bsp-founder-portrait { aspect-ratio:1; }
}


/* ABOUT PAGE RHYTHM CORRECTION */
.page-id-12 .entry-content > .bsp-about-hero {
  margin-top:0 !important;
  padding-bottom:clamp(52px,5.5vw,76px);
  padding-top:clamp(52px,5.5vw,76px);
}
.bsp-about-hero .bsp-eyebrow + h1 { margin-top:12px; }
.bsp-about-hero h1 + .bsp-about-lead { margin-top:16px; }
.bsp-about-founders {
  padding-bottom:clamp(54px,6vw,78px);
  padding-top:clamp(54px,6vw,78px);
}
.bsp-about-founders > .bsp-eyebrow + h2 { margin-top:12px; }
.bsp-about-founders > h2 + .bsp-about-intro { margin-top:16px; }
.bsp-about-founders > .bsp-about-intro + .bsp-founder-grid {
  margin-top:clamp(28px,3.5vw,46px);
}
.bsp-founder-grid { gap:clamp(28px,3.5vw,46px); }
.bsp-founder-portrait { margin-bottom:18px; }
@media (max-width:781px) {
  .page-id-12 .entry-content > .bsp-about-hero,
  .bsp-about-founders {
    padding-bottom:clamp(42px,11vw,58px);
    padding-top:clamp(42px,11vw,58px);
  }
}


/* ABOUT PAGE SHARED LEFT EDGE
 * Narrow copy retains a readable width but anchors to the same 1200px shell
 * as headings, columns and imagery instead of centering independently. */
.page-id-12 :where(.bsp-about-hero,.bsp-about-founders)
 > :where(.bsp-eyebrow,.bsp-about-lead,.bsp-about-intro) {
  margin-left:auto;
  margin-right:auto;
  max-width:var(--bsp-wide-width) !important;
  padding-right:calc(var(--bsp-wide-width) - var(--bsp-copy-width));
  width:100% !important;
}
.page-id-12 .bsp-about-community > p {
  margin-left:auto;
  margin-right:auto;
  max-width:var(--bsp-wide-width);
  padding-left:220px;
  padding-right:220px;
  width:100%;
}
@media (max-width:900px) {
  .page-id-12 :where(.bsp-about-hero,.bsp-about-founders)
   > :where(.bsp-eyebrow,.bsp-about-lead,.bsp-about-intro) {
    padding-right:0;
  }
  .page-id-12 .bsp-about-community > p {
    max-width:680px;
    padding-left:0;
    padding-right:0;
  }
}


/* BSP UNIVERSAL SECTION SHELL
 * Applies the same alignment model to current sections and reusable patterns.
 * Uses low-specificity structural rules so client-selected colors, type sizes,
 * padding and block-gap settings continue to win. */
:where(.bsp-section,.bsp-section-shell,.bsp-faq-hero,.bsp-legal-hero,.bsp-programs-page__hero,.bsp-program-type-hero,.bsp-directory__hero) {
  --bsp-local-copy:var(--bsp-copy-width);
}
:where(.bsp-section,.bsp-section-shell,.bsp-faq-hero,.bsp-legal-hero,.bsp-programs-page__hero,.bsp-program-type-hero,.bsp-directory__hero)
 > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  margin-left:auto;
  margin-right:auto;
  max-width:var(--bsp-wide-width);
  width:100%;
}
:where(.bsp-section,.bsp-section-shell,.bsp-faq-hero,.bsp-legal-hero,.bsp-programs-page__hero,.bsp-program-type-hero,.bsp-directory__hero)
 > :where(.bsp-eyebrow,.bsp-lead,.bsp-program-lead) {
  max-width:var(--bsp-wide-width) !important;
  padding-right:max(0px,calc(var(--bsp-wide-width) - var(--bsp-local-copy)));
  width:100% !important;
}
/* Semantic rhythm for common editorial sequences. Block-level custom spacing
   remains available in Gutenberg and will override these low-specificity defaults. */
:where(.bsp-section,.bsp-section-shell) > :where(.bsp-eyebrow) + :where(h1,h2,h3) { margin-top:12px; }
:where(.bsp-section,.bsp-section-shell) > :where(h1,h2,h3) + :where(p,.bsp-lead,.bsp-program-lead) { margin-top:16px; }
:where(.bsp-section,.bsp-section-shell) > :where(p,.bsp-lead,.bsp-program-lead) + .wp-block-buttons { margin-top:24px; }
:where(.bsp-section,.bsp-section-shell) > :where(p,.bsp-lead,.bsp-program-lead) + :where(.wp-block-columns,.bsp-grid,.wp-block-query) { margin-top:clamp(28px,3.5vw,46px); }
.bsp-stack { display:flex; flex-direction:column; gap:var(--bsp-stack-gap,18px); }
.bsp-stack > * { margin-block:0 !important; }
.bsp-stack--compact { --bsp-stack-gap:12px; }
.bsp-stack--loose { --bsp-stack-gap:clamp(24px,3vw,36px); }
@media (max-width:900px) {
  :where(.bsp-section,.bsp-section-shell,.bsp-faq-hero,.bsp-legal-hero,.bsp-programs-page__hero,.bsp-program-type-hero,.bsp-directory__hero)
   > :where(.bsp-eyebrow,.bsp-lead,.bsp-program-lead) { padding-right:0; }
}


/* PROGRAMS PAGE — INTRO EYEBROW RHYTHM */
.page-id-9 .bsp-programs-page__hero > .entry-content > .wp-block-group:first-child {
  margin-block-start:0 !important;
  padding-top:clamp(28px,3vw,42px) !important;
}
.page-id-9 .bsp-programs-page__hero > .entry-content > .wp-block-group:first-child > h1:first-child {
  margin-block-start:0 !important;
}


/* PROGRAM LISTING CARDS — TRUE COVER FILL */
.bsp-program-card > .bsp-program-card__image {
  align-self:stretch;
  height:100%;
  min-height:100%;
  overflow:hidden;
}
.bsp-program-card > .bsp-program-card__image > img {
  display:block;
  height:100% !important;
  max-height:none !important;
  object-fit:cover !important;
  object-position:var(--bsp-object-position,50% 50%);
  width:100% !important;
}


/* INDIVIDUAL PROGRAM HERO — IMAGE FILLS THE OVERLAP FRAME */
.bsp-program-hero__media > img {
  display:block;
  height:100% !important;
  max-height:none !important;
  object-fit:cover !important;
  object-position:var(--bsp-object-position,50% 50%);
  width:100% !important;
}


/* BSP CONTACT COMPONENT — homepage and Contact page */
.bsp-contact-hero,
.bsp-contact-section,
.bsp-contact-details {
  padding:clamp(56px,7vw,96px) var(--bsp-page-gutter,var(--bsp-gutter));
}
.bsp-contact-hero { background:var(--bsp-yellow); }
.bsp-contact-hero > * { margin-inline:auto; max-width:1200px; }
.bsp-contact-hero .bsp-eyebrow { color:var(--bsp-blue); margin-bottom:12px; }
.bsp-contact-hero h1 { color:var(--bsp-blue); font-size:clamp(46px,6.5vw,82px); line-height:.98; margin:0 0 20px; max-width:900px; }
.bsp-contact-hero .bsp-lead { color:var(--bsp-dark); line-height:1.55; margin:0; max-width:760px; }
.bsp-contact-section { background:var(--bsp-bg); }
.bsp-contact-section__header { margin-bottom:clamp(34px,5vw,54px) !important; text-align:center; }
.bsp-contact-section__header > * { margin-inline:auto; }
.bsp-contact-section__header .bsp-eyebrow { color:var(--bsp-red-readable); margin-bottom:10px; }
.bsp-contact-section__header h2 { color:var(--bsp-blue); font-size:clamp(44px,5.5vw,70px); line-height:1; margin:0; }
.bsp-contact-section__rule { background:var(--bsp-yellow); border:0; height:4px; margin:24px auto 26px !important; opacity:1; width:52px; }
.bsp-contact-section__intro { color:var(--bsp-dark); font-size:clamp(16px,1.3vw,19px); line-height:1.6; max-width:680px; }
.bsp-contact-section__intro a { color:var(--bsp-red-readable); text-underline-offset:3px; }
.bsp-contact-form { display:grid !important; gap:18px 24px !important; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0 auto !important; max-width:900px !important; width:100% !important; }
.bsp-contact-form > .wp-block-jetpack-field-textarea,
.bsp-contact-form > .wp-block-jetpack-button { grid-column:1 / -1; }
.bsp-contact-form .wp-block-jetpack-label { color:var(--bsp-blue); display:block; font-size:14px; letter-spacing:.02em; margin-bottom:7px; }
.bsp-contact-form :is(input,textarea) { background:var(--bsp-white); border:1px solid rgba(39,39,39,.55) !important; border-radius:0 !important; box-sizing:border-box; color:var(--bsp-dark); font:inherit; padding:13px 15px !important; transition:border-color .25s ease,box-shadow .25s ease; width:100%; }
.bsp-contact-form input { min-height:50px; }
.bsp-contact-form textarea { min-height:190px; resize:vertical; }
.bsp-contact-form :is(input,textarea):focus { border-color:var(--bsp-blue) !important; box-shadow:0 0 0 3px rgba(32,27,81,.12); outline:0; }
.bsp-contact-form button { background:var(--bsp-red) !important; border:0 !important; border-radius:0 !important; color:var(--bsp-white) !important; cursor:pointer; min-height:48px; padding:13px 24px !important; transition:background-color .25s ease; }
.bsp-contact-form button:hover { background:var(--bsp-red-readable) !important; }
.bsp-contact-details { background:var(--bsp-surface); }
.bsp-contact-details > * { margin-inline:auto; max-width:1200px; }
.bsp-contact-details > .bsp-eyebrow { color:var(--bsp-red-readable); margin-bottom:10px; }
.bsp-contact-details > h2 { color:var(--bsp-blue); font-size:clamp(38px,4.5vw,60px); margin:0 0 clamp(30px,4vw,46px); }
.bsp-contact-details__grid { align-items:stretch; gap:22px; }
.bsp-contact-card { background:var(--bsp-white); border-left:5px solid var(--bsp-yellow); display:flex; flex-direction:column; gap:14px; padding:clamp(24px,3vw,34px); }
.bsp-contact-card:nth-child(2) { border-left-color:var(--bsp-blue); }
.bsp-contact-card:nth-child(3) { border-left-color:var(--bsp-red); }
.bsp-contact-card > * { margin-block:0 !important; }
.bsp-contact-card h3 { color:var(--bsp-blue); font-size:clamp(24px,2.3vw,32px); }
.bsp-contact-card p { line-height:1.55; overflow-wrap:anywhere; }
.bsp-contact-card .wp-block-buttons { margin-top:auto !important; padding-top:6px; }
.bsp-contact-details__links { margin-top:30px !important; text-align:center; }
.bsp-contact-details__links a { color:var(--bsp-blue); text-underline-offset:3px; }
@media (max-width:760px) {
  .bsp-contact-form { grid-template-columns:1fr; }
  .bsp-contact-form > * { grid-column:1 !important; }
  .bsp-contact-details__grid { display:block; }
  .bsp-contact-card + .bsp-contact-card { margin-top:18px; }
  .bsp-contact-details__links span { display:none; }
  .bsp-contact-details__links a { display:block; padding:6px 0; }
}


/* REGRESSION REPAIR — directory cards and Jetpack phone field */
.bsp-directory-card .wp-block-post-featured-image {
  aspect-ratio:1 / 1 !important;
  height:auto !important;
  margin:0 !important;
  overflow:hidden;
  width:100%;
}
.bsp-directory-card .wp-block-post-featured-image > a {
  display:block;
  height:100%;
  width:100%;
}
.bsp-directory-card .wp-block-post-featured-image img {
  aspect-ratio:auto !important;
  display:block;
  height:100% !important;
  object-fit:cover !important;
  object-position:var(--bsp-object-position,50% 50%);
  width:100% !important;
}
.bsp-directory-card .wp-block-post-title,
.bsp-directory-card .wp-block-post-excerpt { display:block !important; visibility:visible !important; }
.bsp-directory-card .wp-block-post-excerpt__excerpt:empty { display:none !important; }
.bsp-contact-form button.jetpack-combobox-trigger {
  background:var(--bsp-white) !important;
  border:1px solid rgba(39,39,39,.55) !important;
  border-radius:0 !important;
  color:var(--bsp-dark) !important;
  min-height:50px;
  padding:0 12px !important;
}
.bsp-contact-form button.jetpack-combobox-trigger:hover,
.bsp-contact-form button.jetpack-combobox-trigger:focus { background:var(--bsp-mid-light) !important; }
.bsp-contact-form button.wp-block-button__link[type="submit"] {
  background:var(--bsp-red) !important;
  border:0 !important;
  color:var(--bsp-white) !important;
}
.bsp-contact-form button.wp-block-button__link[type="submit"]:hover { background:var(--bsp-red-readable) !important; }


/* ABOUT PAGE — USE THE SHARED RESPONSIVE SHELL WITHOUT FIXED-WIDTH SQUEEZE */
.page-id-12 :where(.bsp-about-hero,.bsp-about-founders)
 > :where(.bsp-eyebrow,.bsp-about-lead,.bsp-about-intro) {
  box-sizing:border-box;
  padding-right:max(0px,calc(100% - var(--bsp-copy-width))) !important;
}
.page-id-12 .bsp-about-community > p {
  box-sizing:border-box;
  margin-left:auto !important;
  margin-right:auto !important;
  max-width:680px !important;
  padding-left:0 !important;
  padding-right:0 !important;
  width:min(100%,680px) !important;
}
/* Jetpack phone control: compact country selector, full-width number field. */
.bsp-contact-form .jetpack-field__input-prefix {
  flex:0 0 70px !important;
  max-width:70px !important;
  width:70px !important;
}
.bsp-contact-form .jetpack-custom-combobox,
.bsp-contact-form button.jetpack-combobox-trigger {
  max-width:70px !important;
  width:70px !important;
}
.bsp-contact-form button.jetpack-combobox-trigger {
  font-size:13px !important;
  gap:4px !important;
  justify-content:center;
  min-height:48px !important;
  padding:0 6px !important;
}
.bsp-contact-form .jetpack-field__input-element { min-width:0; }


/* JETPACK PHONE FIELD — ONE CLEAN CONTROL, NO BOX-WITHIN-A-BOX */
.bsp-contact-form .jetpack-field__input-phone-wrapper {
  align-items:stretch !important;
  background:var(--bsp-white) !important;
  border:1px solid rgba(39,39,39,.55) !important;
  box-shadow:none !important;
  display:flex !important;
  min-height:52px;
  padding:0 !important;
  width:100%;
}
.bsp-contact-form .jetpack-field__input-phone-wrapper:focus-within {
  border-color:var(--bsp-blue) !important;
  box-shadow:0 0 0 3px rgba(32,27,81,.12) !important;
}
.bsp-contact-form .jetpack-field__input-phone-wrapper .jetpack-field__input-prefix {
  align-self:stretch;
  display:flex;
  height:auto !important;
}
.bsp-contact-form .jetpack-field__input-phone-wrapper button.jetpack-combobox-trigger {
  align-self:stretch;
  border:0 !important;
  border-right:1px solid rgba(39,39,39,.35) !important;
  height:100% !important;
  min-height:50px !important;
}
.bsp-contact-form .jetpack-field__input-phone-wrapper input[type="tel"] {
  align-self:stretch;
  border:0 !important;
  box-shadow:none !important;
  flex:1 1 auto;
  height:auto !important;
  min-height:50px;
  outline:0 !important;
}


/* BSP PHONE FIELD — MATCH STANDARD FORM CONTROLS */
.bsp-contact-form .jetpack-field__input-phone-wrapper {
  background: transparent !important;
  border-radius: 0 !important;
}
.bsp-contact-form .jetpack-field__input-phone-wrapper button.jetpack-combobox-trigger {
  background: transparent !important;
  border-radius: 0 !important;
}

/* BSP RESPONSIVE AUDIT — AUGUST 2026
 * Shared corrections verified across pages, archives and program entries. */
.bsp-program-single__content {
  margin-block-start:0 !important;
}
.bsp-program-single__content > .bsp-section:first-child,
.bsp-program-single__content > .wp-block-post-content > .bsp-section:first-child {
  margin-block-start:0 !important;
  padding-top:clamp(44px,5vw,72px);
}
.bsp-program-card__image,
.bsp-directory-card .wp-block-post-featured-image {
  line-height:0;
}
.bsp-program-card__image img,
.bsp-directory-card .wp-block-post-featured-image img {
  display:block;
}
@media (max-width:600px) {
  .bsp-program-hero {
    padding-bottom:clamp(38px,10vw,50px);
    padding-top:24px;
  }
  .bsp-program-hero__back {
    margin-bottom:30px !important;
  }
  .bsp-program-hero__media {
    aspect-ratio:16 / 10 !important;
    height:auto !important;
    min-height:0 !important;
  }
  .bsp-program-hero__media > img {
    aspect-ratio:auto !important;
    height:100% !important;
  }
  .bsp-program-hero h1 {
    font-size:clamp(42px,12vw,48px) !important;
    line-height:.98 !important;
  }
  .bsp-program-hero__content {
    padding:clamp(28px,8vw,38px) clamp(20px,6vw,28px) !important;
  }
}


/* Directory portraits: preserve the first three hand-tuned cards; show later images without aggressive cropping. */
.bsp-directory-grid > li:nth-child(n + 4) .wp-block-post-featured-image img,
.bsp-directory-grid .wp-block-post-template > li:nth-child(n + 4) .wp-block-post-featured-image img,
.bsp-directory-list > li:nth-child(n + 4) .wp-block-post-featured-image img,
.bsp-directory-list .wp-block-post-template > li:nth-child(n + 4) .wp-block-post-featured-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center;
  background: var(--_primitives---colors--mid-light, #f0efe9);
}

.bsp-directory__grid > li:nth-child(n + 4) .wp-block-post-featured-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: var(--_primitives---colors--mid-light, #f0efe9);
}

.bsp-directory__grid > li:nth-child(n + 4) .wp-block-post-featured-image {
  position: relative !important;
  aspect-ratio: 1 / 1 !important;
  height: auto !important;
  overflow: hidden !important;
}
.bsp-directory__grid > li:nth-child(n + 4) .wp-block-post-featured-image > a {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

/* Directory cards use an edge-to-edge crop; individual focal points remain client-editable. */
.bsp-directory__grid > li .wp-block-post-featured-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.bsp-directory__grid > li:nth-child(n + 4) .wp-block-post-featured-image img {
  object-fit: cover !important;
}


/* Faculty Type directory: centered section rhythm and protected square cards. */
.bsp-directory--faculty .bsp-faculty-type-heading {
	margin-block-start: clamp(3rem, 6vw, 5rem) !important;
	margin-block-end: clamp(1.5rem, 3vw, 2.25rem) !important;
	text-align: center;
}
.bsp-directory--faculty .bsp-faculty-type-heading h2 {
	margin: 0;
	text-align: center;
}
.bsp-directory--faculty .bsp-directory-card .wp-block-post-featured-image,
.bsp-directory--stories .bsp-directory-card .wp-block-post-featured-image {
	aspect-ratio: 1 / 1 !important;
	overflow: hidden;
}
.bsp-directory--faculty .bsp-directory-card .wp-block-post-featured-image > a,
.bsp-directory--stories .bsp-directory-card .wp-block-post-featured-image > a {
	display: block;
	width: 100%;
	height: 100% !important;
}
.bsp-directory--faculty .bsp-directory-card .wp-block-post-featured-image img,
.bsp-directory--stories .bsp-directory-card .wp-block-post-featured-image img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}


/* BSP coordinated mobile, accessibility and client-component repair — 1.23.4 */
body .wp-block-group.wp-block-group.wp-block-group.is-style-bsp-red,
.is-style-bsp-red {
  background-color:var(--bsp-red-readable) !important;
}
:is(a,button,.wp-block-button__link)[style*="background-color:#ed1c24"],
.has-vivid-red-background-color.has-text-color {
  background-color:var(--bsp-red-readable) !important;
}
.bsp-header-audition .wp-block-button__link,
.bsp-button--red,
.bsp-program-card__status,
input[type="submit"].has-background {
  --bsp-button-red:var(--bsp-red-readable);
}
.bsp-contact-form .ff-btn-submit,
.bsp-contact-form button[type="submit"] {
  background:transparent !important;
  border:1.5px solid var(--bsp-blue) !important;
  border-radius:0 !important;
  box-shadow:none !important;
  color:var(--bsp-blue) !important;
  font-family:"Inria Sans","Trebuchet MS",sans-serif !important;
  font-weight:600 !important;
  min-height:48px;
  transition:background-color .25s ease,color .25s ease !important;
}
.bsp-contact-form .ff-btn-submit:hover,
.bsp-contact-form button[type="submit"]:hover {
  background:var(--bsp-blue) !important;
  color:var(--bsp-white) !important;
}
.bsp-home-programs__corner > span {
  display:block;
  height:15px;
  position:relative;
  width:15px;
}
.bsp-home-programs__corner > span::before {
  border-right:2px solid currentColor;
  border-top:2px solid currentColor;
  content:"";
  height:9px;
  position:absolute;
  right:1px;
  top:1px;
  width:9px;
}
.bsp-home-programs__corner > span::after {
  background:currentColor;
  content:"";
  height:2px;
  position:absolute;
  right:1px;
  top:8px;
  transform:rotate(-45deg);
  transform-origin:right center;
  width:16px;
}
.bsp-home-programs__link {
  align-items:center;
  background:transparent !important;
  border:1.5px solid var(--bsp-white) !important;
  color:var(--bsp-white) !important;
  display:inline-flex;
  justify-content:center;
  line-height:1;
  padding:10px 15px;
  transition:background-color .25s ease,color .25s ease !important;
}
.bsp-home-programs__card:hover .bsp-home-programs__link,
.bsp-home-programs__card:focus-visible .bsp-home-programs__link {
  background:var(--bsp-white) !important;
  color:var(--bsp-blue) !important;
}
.bsp-faculty-type-section--dynamic {
  padding:clamp(44px,6vw,78px) var(--bsp-gutter);
}
.bsp-faculty-type-section--dynamic .bsp-faculty-type-heading {
  margin:0 auto clamp(30px,4vw,46px) !important;
  text-align:center;
}
.bsp-faculty-type-section--dynamic .bsp-directory-grid {
  display:grid;
  gap:clamp(22px,3vw,38px);
  grid-template-columns:repeat(4,minmax(0,1fr));
  list-style:none;
  margin:0 auto;
  max-width:1200px;
  padding:0;
}
@media (max-width:900px) {
  .bsp-faculty-type-section--dynamic .bsp-directory-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:767px) {
  .bsp-program-grid {
    display:grid !important;
    gap:22px !important;
    grid-template-columns:minmax(0,1fr) !important;
    width:100% !important;
  }
  .bsp-program-card {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow:hidden;
    width:100% !important;
  }
  .bsp-program-card__image {
    aspect-ratio:16 / 10 !important;
    display:block !important;
    grid-column:1 !important;
    height:auto !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow:hidden;
    width:100% !important;
  }
  .bsp-program-card__image img {
    display:block !important;
    height:100% !important;
    max-width:none !important;
    object-fit:cover !important;
    width:100% !important;
  }
  .bsp-program-card__body {
    box-sizing:border-box;
    grid-column:1 !important;
    min-width:0 !important;
    width:100% !important;
  }
  .bsp-program-card__body :is(h2,h3,p,a) { overflow-wrap:anywhere; }
  .bsp-auto-navigation .wp-block-pages-list__item__link {
    font-size:clamp(18px,5.3vw,22px) !important;
    line-height:1.2 !important;
    padding-block:16px !important;
  }
  .bsp-auto-navigation .submenu-container .wp-block-pages-list__item__link,
  .bsp-auto-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item__link {
    font-size:clamp(15px,4.2vw,18px) !important;
    line-height:1.25 !important;
    padding-block:14px !important;
  }
  .bsp-home-programs__rest > span:empty,
  .bsp-home-programs__meta:empty { display:none !important; }
  .bsp-faculty-type-section--dynamic .bsp-directory-grid { grid-template-columns:minmax(0,1fr); }
}


/* Readable red for the remaining white-on-red interactive surfaces. */
.bsp-header-audition .wp-block-button__link,
.home .bsp-stack > .wp-block-buttons .wp-block-button.is-style-fill .wp-block-button__link,
.bsp-home-programs__corner {
  background-color:var(--bsp-red-readable) !important;
}


/* PROGRAM CARDS — true vertical mobile stack */
@media (max-width:767px) {
  .bsp-program-card {
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    height:auto !important;
  }
  .bsp-program-card__image {
    aspect-ratio:16 / 10 !important;
    flex:0 0 auto !important;
    height:auto !important;
    min-height:0 !important;
    width:100% !important;
  }
  .bsp-program-card__image img {
    aspect-ratio:auto !important;
    height:100% !important;
    inset:auto !important;
    position:static !important;
    width:100% !important;
  }
  .bsp-program-card__body {
    flex:0 0 auto !important;
    height:auto !important;
    position:static !important;
    width:100% !important;
  }
}


/* PROGRAM CARDS — authoritative phone/tablet stack */
@media (max-width:900px) {
  .bsp-program-grid > .bsp-program-card {
    display:flex !important;
    flex-flow:column nowrap !important;
    align-items:stretch !important;
    grid-template-columns:none !important;
    grid-template-rows:none !important;
    height:auto !important;
    min-height:0 !important;
  }
  .bsp-program-grid > .bsp-program-card > .bsp-program-card__image {
    align-self:auto !important;
    aspect-ratio:16 / 9 !important;
    display:block !important;
    flex:none !important;
    height:auto !important;
    min-height:0 !important;
    order:1 !important;
    overflow:hidden !important;
    position:relative !important;
    width:100% !important;
  }
  .bsp-program-grid > .bsp-program-card > .bsp-program-card__image > img {
    display:block !important;
    height:100% !important;
    inset:0 !important;
    max-height:none !important;
    object-fit:cover !important;
    position:absolute !important;
    width:100% !important;
  }
  .bsp-program-grid > .bsp-program-card > .bsp-program-card__body {
    display:block !important;
    flex:none !important;
    height:auto !important;
    min-height:0 !important;
    order:2 !important;
    position:relative !important;
    width:100% !important;
  }
  .bsp-program-grid > .bsp-program-card > p:empty { display:none !important; }
}


/* CLASSES & WORKSHOPS — readable-red program theme */
.bsp-programs-page__section--classes-workshops {
  background:rgba(170,14,19,.055) !important;
  border-top-color:var(--bsp-red-readable) !important;
}
.bsp-programs-page__section--classes-workshops h2 {
  text-decoration-color:var(--bsp-red-readable) !important;
}
.term-classes-workshops .bsp-program-type-hero,
.term-classes-workshops .bsp-program-hero,
.bsp-program-card--classes-workshops .bsp-program-card__status {
  background-color:var(--bsp-red-readable) !important;
}
.bsp-program-type-nav__link--classes-workshops::before {
  background-color:var(--bsp-red-readable) !important;
}
.bsp-home-programs__card--classes-workshops {
  --bsp-category:170,14,19 !important;
}
.bsp-program-card--classes-workshops {
  border-left-color:var(--bsp-red-readable) !important;
}
.bsp-program-card--classes-workshops :is(.bsp-program-card__type,.bsp-program-card__link) {
  color:var(--bsp-red-readable) !important;
}
.term-classes-workshops :is(.wp-block-button__link,.bsp-button,.bsp-program-apply-box),
.single-bsp_program .bsp-program-single--classes-workshops :is(.wp-block-button__link,.bsp-button,.bsp-program-apply-box) {
  background-color:var(--bsp-red-readable) !important;
}
