/*
 * Local overrides on top of the harvested theme CSS.
 *
 * 1) aos.css hides [data-aos] elements until AOS.js adds .aos-animate.
 *    We don't ship AOS (spec: light motion via IntersectionObserver only),
 *    so force visibility — the Reveal component adds motion where wanted.
 */
[data-aos] {
  opacity: 1 !important;
  transform: none !important;
  pointer-events: auto !important;
}

/* 2) owl-carousel replacement nav buttons, styled like the theme's arrows */
.owl-carousel-replacement .owl-prev,
.owl-carousel-replacement .owl-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.7);
  background: transparent;
  color: #fff;
  cursor: pointer;
}
.owl-carousel-replacement .owl-prev {
  left: 18px;
}
.owl-carousel-replacement .owl-next {
  right: 18px;
}
.owl-carousel-replacement .owl-prev:hover,
.owl-carousel-replacement .owl-next:hover {
  background: rgba(255, 255, 255, 0.15);
}

/* 3) hide scrollbars on the replacement carousel track (webkit) */
.owl-carousel-replacement > div::-webkit-scrollbar {
  display: none;
}

/* 4) news/archive grids (replacing the Elementor posts widget) */
.archive-list .archive-item {
  margin-bottom: 30px;
}
.archive-list .archive-item img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
}
.archive-list .archive-item h3 {
  font-size: 17px;
  line-height: 1.4;
  margin: 12px 0 6px;
}
.archive-list .archive-item h3 a {
  color: #27255c;
}
.archive-list .archive-date {
  color: #888;
  font-size: 13px;
}

/* 5) dropdown carets on parent menu items (theme relied on JS-injected markup) */
.header_menu > .menu-item-has-children > a::after,
.header_top_menu > .menu-item-has-children > a::after {
  content: '\f107';
  font-family: FontAwesome;
  margin: 0 6px;
  font-size: 12px;
}

/* 6) isolate embedded LTR text inside RTL pages (punctuation misplacement) */
[dir='rtl'] .page-content p,
[dir='rtl'] .unconverted-block,
[dir='rtl'] .post-body p {
  unicode-bidi: plaintext;
}

/* 7) sidebar lead form styling approximation */
.sidebar-lead-form {
  background: #f2f2f2;
  padding: 20px;
  margin-top: 24px;
}
.sidebar-lead-form h2 {
  font-size: 17px;
  margin-bottom: 12px;
}
.sidebar-lead-form input,
.sidebar-lead-form textarea {
  width: 100%;
  margin-bottom: 10px;
  padding: 8px 10px;
  border: 1px solid #ddd;
  background: #fff;
}
.sidebar-lead-form button {
  width: 100%;
  background: #27255c;
  color: #fff;
  border: 0;
  padding: 10px;
}
.map-embed iframe {
  width: 100%;
  border: 0;
}

/* 8) content buttons: theme navy, not bootstrap blue */
.btn.mbsc-btn,
.btn.mbsc-btn.btn-primary {
  background: #27255c;
  border-color: #27255c;
  color: #fff;
  border-radius: 0;
  text-transform: uppercase;
  font-size: 14px;
  padding: 10px 22px;
}
.btn.mbsc-btn:hover {
  background: #e20918;
  border-color: #e20918;
}

/* 9) logo strips: natural logo sizes, not full-bleed */
.working .mbsc-carousel .item img {
  /* explicit height: dimensionless SVGs collapse with auto sizing */
  height: 70px;
  width: auto;
  max-width: 240px;
  object-fit: contain;
}
.working .mbsc-carousel > div {
  align-items: center;
  gap: 3rem;
}
.grads .mbsc-carousel .item {
  width: 390px;
}
.grads .mbsc-carousel .item img {
  width: 100%;
  height: 220px;
  object-fit: cover;
}
.events .mbsc-carousel .item {
  min-width: 300px;
}

/* 10) partner logo grid (raw widget markup; styles lived in per-page
   Elementor CSS that isn't harvested) */
.partnar-logo_block {
  text-align: center;
}
.partnar-logo_box {
  display: inline-block;
  width: 22%;
  margin: 1.2%;
  vertical-align: middle;
}
.partnar-logo_wrapper {
  border: 1px solid #e8e8e8;
  background: #fff;
  padding: 20px 14px;
  text-align: center;
}
.partnar-logo_img {
  max-width: 100%;
  height: 90px;
  object-fit: contain;
}


/* 11) testimonial quote cards (elementor testimonial widgets) */
.testimonial-card {
  background: #f7f7f7;
  padding: 26px 28px;
  margin: 0 0 26px;
  font-style: italic;
  line-height: 1.7;
}
.testimonial-card footer {
  margin-top: 12px;
  font-style: normal;
  color: #27255c;
}

/* 12) body copy: live justifies content text */
.cont-right p,
.post-body p,
.page-main-content p {
  text-align: justify;
}
[dir='rtl'] .cont-right p,
[dir='rtl'] .post-body p {
  text-align: justify;
}

/* 13) content lists: the theme's own li::after chevron is the only marker */
.cont-right ul li,
.post-body ul li {
  list-style: none;
}

/* 14) footer accreditation seal at full size */
.footer_logos.ncaaa-logo,
img[src*='NCAAA'] {
  height: 84px;
  width: auto;
}

/* 15) real 16:9 video embeds (theme bootstrap has no .ratio) */
.video-embed {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  height: 0;
  margin: 24px 0;
}
.video-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* 16) sidebar/menu active state */
.leftbar_menu .menu-item a[aria-current='page'],
.leftbar_menu .menu-item.current-menu-item > a {
  color: #e20918;
  font-weight: 700;
}

/* 17) APPLY NOW in the breadcrumb bar */
.breadcrumb-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.apply-now-btn {
  white-space: nowrap;
}

/* 18) sidebar promo + content cards (program/generic sidebars) */
.left-promo-card {
  background: #f2f2f2;
  padding: 18px;
  margin-top: 24px;
  text-align: center;
}
.left-promo-card h2 {
  font-size: 16px;
  margin-bottom: 10px;
}
.left-promo-card img {
  width: 100%;
  margin-bottom: 10px;
}
.content-card {
  background: #f7f7f7;
  padding: 24px;
  margin-bottom: 24px;
}
.content-columns {
  margin-top: 8px;
}

/* 19) landing page structure */
.landing-logo-bar {
  padding: 14px 40px;
  background: #fff;
}
.landing-logo-bar img {
  height: 58px;
}
.landing-body {
  padding: 40px 20px;
}
.feature-box {
  background: #f5f5f5;
  text-align: center;
  padding: 26px 12px;
  margin-bottom: 24px;
  min-height: 150px;
}
.feature-box img {
  height: 54px;
  margin-bottom: 12px;
}
.faculty-card {
  margin-bottom: 30px;
}
.faculty-card img {
  max-width: 180px;
  margin-bottom: 12px;
}

/* 20) news/blog cards: navy overlay title on image, dateline below (live style) */
.news-grid .archive-item {
  position: relative;
  margin-bottom: 30px;
}
.news-grid .archive-item > a {
  display: block;
  overflow: hidden;
}
.news-grid .archive-item img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
}
.news-grid .archive-item h3 {
  font-size: 15px;
  line-height: 1.4;
  margin: 0;
  padding: 12px 14px;
  background: rgba(12, 35, 64, 0.92);
}
.news-grid .archive-item h3 a {
  color: #fff;
  text-decoration: none;
}
.news-grid .archive-date {
  font-size: 13px;
  color: #777;
  padding: 8px 2px 0;
  margin: 0;
}
.news-grid .archive-position {
  font-size: 13px;
  color: #555;
  padding: 6px 2px 0;
  margin: 0;
}

/* 21) stat circles (exec-ed impact numbers, case-center MBSC in Numbers) */
.columns-row-col .elementor-heading-title,
.stat-circle {
  text-align: center;
}
[data-page='case-center'] .columns-row .col-lg-6:nth-child(-n + 4) h2,
.impact-stat h2 {
  margin: 0 auto;
}

/* 22) tab bars: governance boards, calendar, video categories */
.board-tabs,
.calendar-tabs,
.video-cat-tabs {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0 0 26px;
  border-bottom: 2px solid #e3e3e3;
}
.board-tabs .nav-link,
.calendar-tabs .nav-link,
.video-cat-tabs .nav-link {
  display: block;
  padding: 10px 22px;
  color: #0c2340;
  font-family: 'GothamBold', sans-serif;
  font-size: 14px;
  text-transform: uppercase;
  text-decoration: none;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  cursor: pointer;
}
.board-tabs .nav-link.active,
.calendar-tabs .nav-link.active,
.board-tabs .nav-link:hover,
.video-cat-tabs .nav-link:hover {
  color: #ed1c24;
  border-bottom-color: #ed1c24;
}
.calendar-subtitle {
  font-size: 18px;
  margin: 6px 0 18px;
}

/* 23) sidebar submenu chevrons on program menus */
.leftbar_menu .sub-menu li a::before {
  content: '\00bb\00a0';
  color: #ed1c24;
}

/* 24) FAQ / accordion open-state icons */
.accordion-item .accordion-header::after {
  content: '\2212';
  float: right;
  font-size: 20px;
  color: #ed1c24;
  line-height: 1;
}
.accordion-item .accordion-header.collapsed::after {
  content: '+';
}
[dir='rtl'] .accordion-item .accordion-header::after {
  float: left;
}

/* 25) horizontal menu bars (alumni / governance tab rows from nav-menu widgets) */
.menu-bar {
  margin: 0 0 26px;
  border-bottom: 2px solid #e3e3e3;
}
.menu-bar-tabs {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0;
}
.menu-bar-tabs > .menu-item {
  position: relative;
}
.menu-bar-tabs > .menu-item > a {
  display: block;
  padding: 10px 22px;
  color: #0c2340;
  font-family: 'GothamBold', sans-serif;
  font-size: 15px;
  text-decoration: none;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
}
.menu-bar-tabs > .menu-item > a:hover {
  color: #ed1c24;
  border-bottom-color: #ed1c24;
}
.menu-bar-tabs .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  inset-inline-start: 0;
  z-index: 30;
  min-width: 220px;
  background: #fff;
  border: 1px solid #e3e3e3;
  list-style: none;
  padding: 6px 0;
  margin: 0;
}
.menu-bar-tabs .menu-item-has-children:hover .sub-menu {
  display: block;
}
.menu-bar-tabs .sub-menu a {
  display: block;
  padding: 8px 18px;
  color: #0c2340;
  text-decoration: none;
  font-size: 14px;
}
.menu-bar-tabs .sub-menu a:hover {
  color: #ed1c24;
}

/* 26) inner hero slides (alumni banner carousel) */
.inner-hero-slides .hero-banner.for-inner {
  width: 100%;
}
.inner-hero-slides .banner-content {
  color: #fff;
  font-size: 18px;
  margin-top: 10px;
}

/* 27) tab lists must not inherit content bullets/chevrons */
.mbsc-tabs .nav-tabs,
.board-tabs,
.calendar-tabs,
.video-cat-tabs,
.menu-bar-tabs {
  list-style: none !important;
}
.mbsc-tabs .nav-tabs li::marker,
.mbsc-tabs .nav-tabs li::before,
.menu-bar-tabs li::marker,
.menu-bar-tabs li::before {
  content: none !important;
}
.mbsc-tabs .nav-tabs {
  display: flex;
  flex-wrap: wrap;
  padding: 0;
}

/* 28) gallery-carousel strips: constrain slide height (programs/partners) */
.gallery-carousel img {
  height: 340px;
  width: auto;
  display: block;
}
.gallery-carousel .mbsc-carousel-track {
  gap: 14px;
}

/* 29) sidebar current item: red block like live */
.leftbar_menu .menu-item.current-menu-item > a,
.leftbar_menu .menu-item a[aria-current='page'] {
  background: #e20918;
  color: #fff !important;
  font-weight: 700;
  display: block;
  padding: 10px 14px;
  margin: 0 -14px;
}

/* 30) program-page theme video poster (vid_contmba) floats beside intro */
.page-main-content .vid_contmba {
  float: right;
  width: 40%;
  margin: 0 0 18px 26px;
}
[dir='rtl'] .page-main-content .vid_contmba {
  float: left;
  margin: 0 26px 18px 0;
}
.page-main-content .vid_contmba img {
  width: 100%;
  height: auto;
  display: block;
}
.page-main-content::after {
  content: '';
  display: table;
  clear: both;
}

/* 31) SLE + DIFFERENCE sections on program pages */
.sle-row {
  margin: 34px 0;
}
.difference-row {
  margin: 34px 0 10px;
}
.difference-box {
  background: #f2f2f2;
  padding: 30px 34px;
  height: 100%;
}
.difference-box ul {
  padding-inline-start: 0;
  list-style: none;
}
.difference-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 32) student-experience video boxes */
.video-boxes {
  margin-top: 26px;
}
.video-box {
  margin-bottom: 28px;
}
.video-box h3 {
  font-size: 16px;
  margin-top: 12px;
}

/* 33) case-center MBSC-in-Numbers: 2x2 circle cluster (theme .mbsc-round layout) */
.unconverted-block:has(> .numbers-block-single) {
  display: grid;
  grid-template-columns: repeat(2, auto);
  justify-content: center;
  gap: 12px;
  background: rgba(236, 236, 236, 0.8);
  padding: 35px 40px;
  max-width: 640px;
}
.unconverted-block:has(> .numbers-block-single) .numbers-block-single {
  width: 220px;
  height: 220px;
  margin: 0;
}

/* 34) hero subtitle: nested span renders as its own line (case-center) */
.hero-banner-left .banner-content span {
  display: block;
}

/* 35) each hero slide is its own positioning context — otherwise every
   slide's banner-shape divs stack at one spot (opaque magenta triangle) */
.mbsc-carousel .item {
  position: relative;
}

/* 36) gallery/lightbox tiles: uniform crop + pointer */
.lightbox-grid a {
  cursor: pointer;
  display: block;
  margin-bottom: 24px;
}
.lightbox-grid img {
  height: 220px;
  object-fit: cover;
}

/* 37) video detail: content-width player */
.post-video-embed {
  max-width: 900px;
  margin: 0 0 24px;
}

/* 38) landing-page tabs: navy pills instead of default link-blue */
.landing-body .mbsc-tabs .nav-tabs {
  border-bottom: 2px solid #e3e3e3;
  margin-bottom: 26px;
}
.landing-body .mbsc-tabs .nav-link {
  color: #001e62;
  font-family: 'Conv_GothamBold', sans-serif;
  font-size: 15px;
  padding: 10px 22px;
  border: 0;
  border-bottom: 3px solid transparent;
  background: none;
}
.landing-body .mbsc-tabs .nav-link.active {
  color: #e20918;
  border-bottom-color: #e20918;
}
.landing-body .mbsc-tabs .nav-link:hover {
  color: #e20918;
}

/* 39) stat circles: center text, tighten headings inside */
.stat-circle-col {
  text-align: center;
}
.stat-circle-col h2,
.stat-circle-col h3,
.stat-circle-col h4 {
  margin: 0;
}
.stat-circle-col .payload-richtext p {
  margin: 4px 0 0;
}

/* 40) landing popup/accordion imagery must not overflow */
.custom-modal-body img,
.landing-program-section img,
.mbsc-accordion img {
  max-width: 100%;
  height: auto;
}

/* 41) landing header logo sizing */
.landing-logo-bar .mbsc-header_logo {
  height: 58px;
  width: auto;
}

/* 42) video-area responsiveness (theme assumes desktop flex) */
@media (max-width: 991px) {
  .video-area {
    flex-direction: column;
  }
  .video-area .left_text-sec,
  .video-area .video-txt,
  .video-area .video-sec {
    width: 100%;
    padding-left: 0;
  }
}

/* 43) carousel drag: no native image-drag ghosts, grab cursor */
.mbsc-carousel img {
  -webkit-user-drag: none;
  user-drag: none;
}
.mbsc-carousel > div {
  cursor: grab;
}
.mbsc-carousel > div:active {
  cursor: grabbing;
}

/* 44) home grads + founding partners: static fitted rows, not carousels */
.static-row {
  display: flex;
  gap: 1.5rem;
}
.grads .static-row {
  padding: 0 40px;
}
.grads .static-row .item {
  flex: 1 1 0;
  min-width: 0;
  width: auto;
}
.grads .static-row .item img {
  width: 100%;
  height: 220px;
  object-fit: cover;
}
/* partners: 4 equal logo boxes across the full content width (owl layout),
   each logo 195px wide and centered in its box, like live */
.working-row {
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
}
.working .static-row .item {
  flex: 1 1 0;
  min-width: 0;
  text-align: center;
  padding: 20px 0;
}
.working .static-row .item img {
  width: 195px;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

/* 45) kill horizontal page pan on iOS: the body must never overflow.
   overflow-x: clip (not hidden) preserves position:sticky descendants. */
html,
body {
  overflow-x: clip;
}
@supports not (overflow: clip) {
  html,
  body {
    overflow-x: hidden;
  }
}
/* the actual mobile offenders: bootstrap negative row margins inside hero
   slides (no .container wrapper) and the mobile banner shapes */
.hero-banner .item > .row {
  margin-left: 0;
  margin-right: 0;
}
.banner-shape-2.for-mob {
  right: 0;
  max-width: 100%;
}

/* 46) home "Life at KAEC": static rebuild of the theme's #sync1/#sync2 owl
   pair — navy pattern panel (theme CSS), 3-up photo strip, dots + play button */
#sync1 {
  position: relative;
}
#sync1 .owl-dots button {
  border: 0;
  padding: 0;
  cursor: pointer;
}
#sync2 {
  height: 100%;
  display: flex;
}
#sync2 .item {
  flex: 1 1 0;
  min-width: 0;
  height: 100%;
  min-height: 585px;
  margin-right: 8px;
  position: relative;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}
#sync2 .item:last-child {
  margin-right: 0;
}
/* live marks the synced slide "current" with a magenta wash (first by default) */
#sync2 .item.current::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(159, 25, 91, 0.5);
}
/* RTL mirrors of the theme's LTR-only rules (mbsc-arabic custom.css) */
[dir='rtl'] #sync1 .item {
  padding-right: 40px;
  padding-left: 46%;
  text-align: right;
}
[dir='rtl'] #sync1 .owl-dots {
  left: auto;
  right: 105px;
  text-align: right;
}
[dir='rtl'] .vidPlay {
  left: auto;
  right: 40px;
}
[dir='rtl'] #sync2 .item {
  margin-right: 0;
  margin-left: 8px;
}
[dir='rtl'] #sync2 .item:last-child {
  margin-left: 0;
}
@media (max-width: 991px) {
  #sync2 {
    display: block;
    height: auto;
  }
  #sync2 .item {
    height: 388px;
    min-height: 0;
    margin: 0 0 8px;
  }
  #sync1 .item {
    height: auto;
    padding: 40px;
    padding-bottom: 180px;
  }
}

/* 47) BSBA full-width hero: live hides the title panel + shapes and stretches
   the artwork (theme CSS keyed to the page-id-17539 body class) */
.fullwidth-hero #imagerow .col-lg-8 {
  width: 100%;
  max-width: 100%;
  flex: auto;
}
.fullwidth-hero .hero-banner-right img {
  width: 100%;
  display: block;
}

/* 48) sidebar PDF tiles (exec-ed widget area): grey box, red pdf icon, navy label */
.left-pdf-tile {
  display: flex;
  align-items: center;
  gap: 16px;
  background: #f1f1f1;
  padding: 22px 18px;
  margin-top: 18px;
  text-decoration: none;
}
.left-pdf-tile img {
  width: 44px;
  height: auto;
  flex: 0 0 auto;
}
.left-pdf-tile span {
  font-family: 'Conv_GothamBold', sans-serif;
  color: #27255c;
  font-size: 15px;
  line-height: 1.35;
  text-transform: uppercase;
}
.left-pdf-tile:hover span {
  color: #e20918;
}

/* 49) sticky header (live custom.js toggles .header.fixed; theme CSS styles
   it) — the program-page breadcrumb + APPLY NOW bar pins below it */
@media (min-width: 992px) {
  .page-breadcrumb.has-apply {
    position: sticky;
    top: 100px;
    z-index: 20;
    background: #ededed;
  }
}
.header.fixed {
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
}

/* 50) header current states: utility nav red, main-nav section light blue */
.topNav .header_top_menu > .current-menu-item > a {
  color: #ed1c24;
}
.site-nav .header_menu > .current-menu-ancestor > a {
  color: #7ca4ff;
}

/* 51) person-card grids (governance / boards / class-profiles / faculty):
   4-col, name below the photo over a short red rule, gray role beneath */
.news-grid--person .person-card {
  margin-bottom: 36px;
}
.news-grid--person .person-card-photo {
  display: block;
}
.news-grid--person .person-card-photo img {
  width: 100%;
  height: 230px;
  object-fit: contain;
  object-position: center bottom;
}
.news-grid--person .person-card h3 {
  background: none;
  padding: 14px 0 12px;
  margin: 0 0 4px;
  position: relative;
  font-size: 18px;
  line-height: 1.35;
}
.news-grid--person .person-card h3 a {
  color: #1c1c4b;
  font-family: 'Conv_GothamBold', sans-serif;
}
.news-grid--person .person-card h3::after {
  content: '';
  position: absolute;
  inset-inline-start: 0;
  bottom: 0;
  width: 44px;
  height: 3px;
  background: #e20918;
}
.news-grid--person p.archive-position,
.news-grid--person p.person-cohort {
  color: #6d6d6d;
  font-size: 14px;
  padding: 6px 0 0;
  margin: 0;
  text-align: start;
}

/* 52) we-are-also-in-riyadh cards: image, bold `12 February 2022`, gray title */
.news-grid--riyadh .riyadh-card {
  margin-bottom: 34px;
}
.news-grid--riyadh .riyadh-card img {
  width: 100%;
  height: 190px;
  object-fit: cover;
  display: block;
}
.news-grid--riyadh .riyadh-date {
  font-family: 'Conv_GothamBold', sans-serif;
  color: #2a2a2a;
  font-size: 15px;
  margin: 12px 0 4px;
  padding: 0;
}
.news-grid--riyadh .riyadh-card h3 {
  background: none;
  padding: 0;
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
}
.news-grid--riyadh .riyadh-card h3 a {
  color: #8a8a8a;
}

/* 53) media-room news cards: uppercase title in a translucent navy box on
   the image, then the dateline and a clamped excerpt */
.news-grid--news .news-card-media {
  position: relative;
  display: block;
}
.news-grid--news .news-card-media img {
  height: 250px;
}
.news-grid--news .news-card-media h3 {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  margin: 0;
  padding: 12px 14px;
  background: rgba(12, 35, 64, 0.85);
  color: #fff;
  text-transform: uppercase;
  font-size: 13px;
  line-height: 1.55;
}
.news-grid--news .archive-dateline {
  font-family: 'Conv_GothamBold', sans-serif;
  color: #2a2a2a;
  font-size: 14px;
  margin: 14px 0 6px;
  padding: 0;
}
.news-grid--news .news-card-excerpt {
  color: #777;
  font-size: 13px;
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0;
  text-align: start;
}

/* 54) overlay-card composition (about-mbsc / case-center Vision & Mission):
   colored card overlapping the adjacent photo; ghost outline buttons */
.overlay-card-row {
  align-items: center;
}
.overlay-card-row .overlay-card {
  position: relative;
  z-index: 2;
  padding: 30px 34px !important;
  height: auto !important;
}
.overlay-card-row .overlay-card h2,
.columns-row-col.has-bg h2,
.img-cta-card h2,
.stat-circle-col h2 {
  text-transform: none;
  padding: 0 0 12px;
}
.overlay-card-row .overlay-card h2::after,
.columns-row-col.has-bg h2::after,
.img-cta-card h2::after,
.stat-circle-col h2::after,
.stat-circle-col h4::after {
  content: none;
}
.overlay-card-row .overlay-photo {
  padding: 0 !important;
}
.overlay-card-row .overlay-photo figure {
  margin: 0;
}
.overlay-card-row .overlay-photo img {
  width: 100%;
  display: block;
}
@media (min-width: 992px) {
  .overlay-card-row > [class*='col-']:has(> .overlay-card):first-child,
  .overlay-card-row > [class*='col-']:has(> .overlay-photo):first-child {
    transform: translateX(60px);
  }
  .overlay-card-row > [class*='col-']:has(> .overlay-card):last-child,
  .overlay-card-row > [class*='col-']:has(> .overlay-photo):last-child {
    transform: translateX(-60px);
  }
  [dir='rtl'] .overlay-card-row > [class*='col-']:has(> .overlay-card):first-child,
  [dir='rtl'] .overlay-card-row > [class*='col-']:has(> .overlay-photo):first-child {
    transform: translateX(-60px);
  }
  [dir='rtl'] .overlay-card-row > [class*='col-']:has(> .overlay-card):last-child,
  [dir='rtl'] .overlay-card-row > [class*='col-']:has(> .overlay-photo):last-child {
    transform: translateX(60px);
  }
}
.overlay-card .btn.mbsc-btn,
.img-cta-card .btn.mbsc-btn {
  background: transparent;
  border: 1px solid #fff;
  text-transform: none;
  padding: 10px 26px;
}
.overlay-card .btn.mbsc-btn:hover,
.img-cta-card .btn.mbsc-btn:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: #fff;
}

/* 55) photo + white-caption CTA cards (about-mbsc Campus/Global, case-center
   bottom banners): colored panel over the photo — navy odd, magenta even */
.img-cta-card {
  position: relative;
  overflow: hidden;
  padding: 0 !important;
  min-height: 330px;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}
.img-cta-card > figure:first-child {
  position: absolute;
  inset: 0;
  margin: 0;
  z-index: 0;
}
.img-cta-card > figure:first-child img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.img-cta-card::before {
  content: '';
  position: absolute;
  inset-block: 26px;
  inset-inline-start: 26px;
  width: min(430px, 74%);
  background: rgba(39, 37, 92, 0.9);
  z-index: 1;
}
[class*='col-']:nth-child(even) > .img-cta-card::before {
  background: rgba(148, 25, 92, 0.9);
}
.img-cta-card > :not(figure) {
  position: relative;
  z-index: 2;
  margin: 4px 0;
  margin-inline-start: 56px;
  max-width: min(360px, 60%);
}
.img-cta-card h4 {
  padding: 0;
  margin-block: 4px;
}
.img-cta-card .btn.mbsc-btn {
  margin-top: 14px;
  margin-inline-start: 56px;
}

/* 56) case-center pack */
[data-page='case-center'] .numbers-block-single {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
[data-page='case-center'] .numbers-block-main {
  position: static;
  transform: none;
  color: #fff;
}
[data-page='case-center'] .numbers-block-main h3 {
  color: #fff;
  font-size: 42px;
  margin: 0;
}
[data-page='case-center'] .numbers-block-main p {
  color: #fff;
  font-size: 14px;
  padding: 0 16px;
  margin: 0;
}
/* numbers-banner: navy backdrop behind the white text + red browse button */
[data-page='case-center']
  .row.columns-row:not(.overlay-card-row):has(> [class*='col-'] > .columns-row-col:empty):has(.btn.mbsc-btn) {
  background: #001e62;
  margin-bottom: 30px;
}
[data-page='case-center']
  .row.columns-row:not(.overlay-card-row):has(> [class*='col-'] > .columns-row-col:empty)
  .btn.mbsc-btn.btn-primary {
  background: #e20918;
  border-color: #e20918;
}
/* What We Offer tiles: uppercase underlined white headings on navy/magenta */
[data-page='case-center'] .columns-row-col.has-bg:has(> figure:first-child + h4) h4 {
  color: #fff;
  text-transform: uppercase;
  position: relative;
  padding-bottom: 14px;
}
[data-page='case-center'] .columns-row-col.has-bg:has(> figure:first-child + h4) h4::after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  width: 44px;
  height: 2px;
  background: #fff;
}
[data-page='case-center'] .columns-row-col.has-bg:has(> figure:first-child + h4) figure img {
  margin: 0 auto 14px;
  display: block;
  max-height: 80px;
  width: auto;
}
/* And More tile: white inner box, red uppercase label */
[data-page='case-center'] .columns-row-col.has-bg:has(> h4:only-child) {
  display: flex;
  align-items: center;
  justify-content: center;
}
[data-page='case-center'] .columns-row-col.has-bg > h4:only-child {
  background: #fff;
  color: #d1091e;
  text-transform: uppercase;
  padding: 26px 30px;
  width: 100%;
  text-align: center;
  margin: 0;
}
/* Why Use MBSC Cases tiles: text left / icon right + white separator */
[data-page='case-center'] .columns-row-col.has-bg:has(> h4:first-child + figure:last-child) {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 18px;
}
[data-page='case-center'] .columns-row-col.has-bg:has(> h4:first-child + figure:last-child) > h4 {
  flex: 1 1 auto;
  text-align: start;
  margin: 0;
  padding: 4px 0;
  padding-inline-end: 18px;
  border-inline-end: 1px solid rgba(255, 255, 255, 0.6);
  color: #fff;
}
[data-page='case-center']
  .columns-row-col.has-bg:has(> h4:first-child + figure:last-child)
  > figure {
  margin: 0;
  flex: 0 0 auto;
}
[data-page='case-center']
  .columns-row-col.has-bg:has(> h4:first-child + figure:last-child)
  figure
  img {
  max-height: 60px;
  width: auto;
}
/* grid gaps between colored tiles */
[data-page='case-center'] .row.columns-row:has(> [class*='col-'] > .has-bg) > [class*='col-'] {
  margin-bottom: 16px;
}
/* Why Use Cases cards: bordered white cards, circular icons, uppercase */
[data-page='case-center'] .row.columns-row > .col-lg-3 > .columns-row-col:has(> figure + h4) {
  border: 1px solid #e3e3e3;
  text-align: center;
  height: 100%;
}
[data-page='case-center']
  .row.columns-row
  > .col-lg-3
  > .columns-row-col:has(> figure + h4)
  figure
  img {
  width: 96px;
  height: 96px;
  object-fit: contain;
  border-radius: 50%;
  margin: 0 auto;
  display: block;
}
[data-page='case-center'] .row.columns-row > .col-lg-3 > .columns-row-col:has(> figure + h4) h4 {
  text-transform: uppercase;
}

/* 57) builder column-width fixes: hide the duplicate desktop menu column on
   exec-ed program pages (live hides it), widen the remaining content */
[data-page='executive-education']
  .cont-right
  .row.columns-row
  > [class*='col-']:has(> .columns-row-col > nav.menu-bar) {
  display: none;
}
[data-page='executive-education'] .cont-right .row.columns-row:has(nav.menu-bar) > [class*='col-'] {
  flex: 0 0 100%;
  max-width: 100%;
}
/* contact-us: [empty][content][empty] rows collapse to a centered column */
[data-page='contact-us'] .row.columns-row > [class*='col-lg']:has(> .columns-row-col:empty) {
  display: none;
}
[data-page='contact-us'] .row.columns-row {
  justify-content: center;
}
[data-page='contact-us'] .row.columns-row > .col-lg-4:has(> .columns-row-col:not(:empty)) {
  flex: 0 0 100%;
  max-width: 840px;
}
[data-page='contact-us'] .infobip-form {
  width: 100%;
}
[data-page='contact-us'] .row.columns-row > .col-lg-4 .btn.mbsc-btn {
  display: table;
  margin-inline: auto;
}

/* 58) testimonial slider: one quote at a time, avatar, red class line */
.testimonial-slider {
  position: relative;
  background: #f7f7f7;
  padding: 40px 90px;
  margin: 26px 0;
}
.testimonial-slide {
  display: flex;
  gap: 26px;
  align-items: flex-start;
}
.testimonial-avatar {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 auto;
}
.testimonial-slide blockquote {
  margin: 0;
  font-style: italic;
  line-height: 1.7;
  white-space: pre-line;
}
.testimonial-slide footer {
  margin-top: 14px;
  font-style: normal;
}
.testimonial-slide footer strong {
  color: #1c1c4b;
  font-family: 'Conv_GothamBold', sans-serif;
  display: block;
}
.testimonial-role {
  color: #e20918;
  font-size: 14px;
}
.testimonial-slider .owl-prev,
.testimonial-slider .owl-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid #b5b5b5;
  background: #fff;
  color: #4a4a4a;
  cursor: pointer;
}
.testimonial-slider .owl-prev {
  left: 22px;
}
.testimonial-slider .owl-next {
  right: 22px;
}

/* 59) exec-ed carousels: compact logo strip + 3-up contained program cards */
.logo-carousel > div {
  align-items: center;
}
.logo-carousel img {
  height: 80px !important;
  width: auto !important;
  max-width: 220px;
  object-fit: contain;
}
.card-carousel .carousel-card {
  border: 1px solid #e6e6e6;
  height: 100%;
  background: #fff;
}
.card-carousel .carousel-card img {
  width: 100%;
  height: auto;
  display: block;
}
.card-carousel .carousel-card-body {
  background: #27255c;
  color: #fff;
  padding: 16px 18px;
  font-size: 14px;
}
.card-carousel .carousel-card-body a {
  background: #e20918;
  color: #fff;
  display: inline-block;
  padding: 8px 16px;
  margin-top: 10px;
  text-transform: uppercase;
  font-size: 13px;
  text-decoration: none;
}
.gallery-carousel .owl-prev,
.gallery-carousel .owl-next {
  border-color: #b5b5b5;
  color: #4a4a4a;
  background: rgba(255, 255, 255, 0.85);
}
.card-carousel img {
  height: auto;
}

/* 60) map embed (contact pages) */
.map-embed iframe {
  width: 100%;
  height: 400px;
  border: 0;
  display: block;
}

/* 61) venture-lab: crimson offer band, gray vision/mission card + divider,
   crimson-bordered 2x2 offer grid with crimson heading underlines */
[data-page='venture-lab'] .columns-row-col.has-bg.white-heading-band {
  background: #94195c !important;
  padding: 24px 20px !important;
}
[data-page='venture-lab'] .columns-row-col.has-bg.white-heading-band h2 {
  color: #fff;
  padding: 0;
  margin: 0;
}
[data-page='venture-lab'] .row.columns-row:has(> .col-lg-4:nth-child(2) > .columns-row-col:empty) {
  background: #f5f5f5;
  margin: 0 0 30px;
  padding: 30px 0;
  justify-content: center;
}
[data-page='venture-lab']
  .row.columns-row:has(> .col-lg-4:nth-child(2) > .columns-row-col:empty)
  > .col-lg-4:nth-child(2) {
  display: none;
}
[data-page='venture-lab']
  .row.columns-row:has(> .col-lg-4:nth-child(2) > .columns-row-col:empty)
  > .col-lg-4 {
  flex: 0 0 50%;
  max-width: 50%;
  padding: 0 44px;
}
[data-page='venture-lab']
  .row.columns-row:has(> .col-lg-4:nth-child(2) > .columns-row-col:empty)
  > .col-lg-4:first-child {
  border-inline-end: 1px solid #d9d9d9;
}
[data-page='venture-lab'] .row.columns-row:has(.list-bullet) > .col-lg-6 {
  margin-bottom: 24px;
}
[data-page='venture-lab'] .row.columns-row:has(.list-bullet) > .col-lg-6 > .columns-row-col {
  border: 1px solid #94195c;
  height: 100%;
}
[data-page='venture-lab'] .row.columns-row:has(.list-bullet) .columns-row-col h2::after {
  background: #94195c;
  width: 60px;
}

/* 62) impact: exec-ed statistics as navy tiles with white type; cap the
   inline chart images */
[data-page='impact'] .columns-row-col.stat-tile {
  background: #27255c;
  height: 100%;
  padding: 26px 18px !important;
}
[data-page='impact'] .columns-row > [class*='col-']:has(> .stat-tile) {
  margin-bottom: 30px;
}
.stat-tile h2 {
  padding: 0 0 8px;
}
.stat-tile h2::after {
  content: none;
}
[data-page='impact'] img[src*='gen_st_img'] {
  max-height: 320px;
  width: auto;
  margin: 12px auto;
  display: block;
}

/* 63) pill tab bars: centered pills in an elevated white card */
.menu-bar {
  border-bottom: 0;
  margin: 0 0 30px;
}
.menu-bar-tabs {
  justify-content: center;
  gap: 10px;
  background: #fff;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.12);
  border-radius: 6px;
  padding: 12px;
  width: max-content;
  max-width: 100%;
  margin: 0 auto;
}
.menu-bar-tabs > .menu-item > a {
  border: 0;
  border-radius: 4px;
  padding: 10px 26px;
  background: #f1f1f1;
  color: #27255c;
  margin: 0;
}
.menu-bar-tabs > .menu-item > a:hover,
.menu-bar-tabs > .menu-item.current-menu-item > a {
  background: #27255c;
  color: #fff;
}
[data-page='class-profiles'] .mbsc-tabs .nav-tabs {
  justify-content: center;
  gap: 10px;
  background: #fff;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.12);
  border-radius: 6px;
  padding: 12px;
  width: max-content;
  max-width: 100%;
  margin: 0 auto 30px;
  border-bottom: 0;
}
[data-page='class-profiles'] .mbsc-tabs .nav-link {
  border: 0;
  border-radius: 4px;
  padding: 10px 26px;
  background: #f1f1f1;
  color: #27255c;
  font-family: 'Conv_GothamBold', sans-serif;
  font-size: 14px;
}
[data-page='class-profiles'] .mbsc-tabs .nav-link.active {
  background: #e20918;
  color: #fff;
}
/* the theme's content-list chevrons must not leak into any tab list */
.mbsc-tabs .nav-tabs li::after,
.menu-bar-tabs li::after,
.board-tabs li::after,
.calendar-tabs li::after,
.video-cat-tabs li::after {
  content: none !important;
}

/* 64) sidebar nav: flush current highlight, » on items with children */
.leftbar_menu .menu-item.current-menu-item > a,
.leftbar_menu .menu-item a[aria-current='page'] {
  margin: 0;
  padding: 10px 14px;
}
.leftbar_menu > .menu-item-has-children > a::after {
  content: '\00bb';
  color: #ed1c24;
  margin-inline-start: 8px;
}

/* 65) video gallery cards: darkened thumb, uppercase overlay title, play icon */
.video-card-grid .video-card {
  position: relative;
  display: block;
  overflow: hidden;
  cursor: pointer;
  margin-bottom: 30px;
  background: #000;
}
.video-card-grid .video-card img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
  opacity: 0.7;
}
.video-card-grid .video-card-title {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 14px;
  color: #fff;
  text-transform: uppercase;
  font-family: 'Conv_GothamBold', sans-serif;
  font-size: 13px;
  line-height: 1.5;
  z-index: 2;
}
.video-card-grid .video-card-play {
  position: absolute;
  top: 40%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 54px;
  height: 54px;
  border: 2px solid #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  z-index: 2;
}

/* 66) rich text: dean letter left-aligned in a 8/4 grid; faculty intro
   justified/tighter; slightly tighter default paragraph rhythm */
[data-page='message-from-the-dean'] .payload-richtext p {
  text-align: left;
}
[data-page='message-from-the-dean'] .row.columns-row > .col-lg-6:first-child {
  flex: 0 0 66.666%;
  max-width: 66.666%;
}
[data-page='message-from-the-dean'] .row.columns-row > .col-lg-6:last-child {
  flex: 0 0 33.333%;
  max-width: 33.333%;
}
[data-page='faculty'] .payload-richtext p {
  text-align: justify;
  line-height: 1.55;
}
.page-content .payload-richtext p {
  margin-bottom: 12px;
}
.page-content .payload-richtext > :last-child {
  margin-bottom: 0;
}

/* 67) section-heading underline: centered headings get a centered rule
   (contact-us, partners, venture-lab), RTL-safe */
.cont-right h2[style*='text-align:center']::after,
.cont-right h2[style*='text-align: center']::after {
  left: 50%;
  right: auto;
  transform: translateX(-50%);
}

/* 68) newsletter cards: uniform bordered thumbs, centered READ MORE */
[data-page='newsletter'] .columns-row-col {
  text-align: center;
}
[data-page='newsletter'] .columns-row-col > figure {
  height: 245px;
  border: 1px solid #27255c;
  overflow: hidden;
  margin: 0 0 16px;
}
[data-page='newsletter'] .columns-row-col > figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
}
[data-page='newsletter'] .columns-row-col .btn.mbsc-btn {
  margin: 0 auto 30px;
}

/* 69) partners logo grid: tall tiles with large legible logos */
.partnar-logo_wrapper {
  min-height: 270px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 30px 20px;
}
.partnar-logo_img {
  height: auto;
  max-height: 200px;
  width: auto;
  max-width: 100%;
}

/* 70) footer accreditation badges: full-size seal, breathing room */
.footer_logos_desktop {
  height: auto;
  max-width: none;
  align-items: center;
  gap: 18px;
}
.footer_logos.ncaaa-logo,
img[src*='NCAAA'] {
  height: 96px;
  max-height: 96px;
  width: auto;
}

/* 71) sidebar/lead form chrome: uppercase navy headings, full-width navy
   submit (facts-and-figures button drifted purple) */
.sidebar-lead-form h2 {
  text-transform: uppercase;
  color: #27255c;
  text-align: start;
  font-family: 'Conv_GothamBold', sans-serif;
}
.mbsc-form button[type='submit'] {
  width: 100%;
  background: #27255c;
  border-color: #27255c;
}
.mbsc-form button[type='submit']:hover {
  background: #e20918;
  border-color: #e20918;
}

/* 72) misc geometry pack */
/* investing-in-culture: live (page-id-17311) hides the hero shapes */
main:has([data-page='investing-in-culture']) .hero-banner .banner-shape,
main:has([data-page='investing-in-culture']) .hero-banner .banner-shape-2 {
  display: none;
}
/* 5-pillars: small corner wedge instead of a photo-covering overlay;
   no local-only pillar-heading underlines */
main:has([data-page='5-pillars']) .banner-shape-2 {
  width: 300px;
  height: 212px;
  background-size: contain;
  background-position: bottom right;
  bottom: 0;
}
[data-page='5-pillars'] .cont-right h2::after {
  content: none;
}
/* exec-ed: no stuck rotate transforms on content images (CBS certificate) */
[data-page='executive-education'] .wp-block-image img {
  transform: none !important;
}
/* students-experience profile buttons: plain navy grid, no offset ribbons */
.columns-row-col.has-bg:has(> a.btn.mbsc-btn:only-child) {
  background: none !important;
  padding: 0 !important;
}
.columns-row-col:has(> a.btn.mbsc-btn:only-child) > a.btn.mbsc-btn {
  display: block;
  text-align: center;
  text-transform: none;
  width: 100%;
  margin-bottom: 20px;
}
/* exec-ed WE ARE HERE FOR YOU: centered card + circular social buttons */
[data-page='executive-education'] .columns-row-col:has(> figure:first-child + h2) {
  text-align: center;
}
[data-page='executive-education'] .columns-row-col:has(> figure:first-child + h2) figure img {
  margin: 0 auto;
  display: block;
  max-width: 120px;
}
/* only the dedicated icons row (icons lead the column) centers — an icon
   mid-column (in-person page) must not center all its siblings */
[data-page='executive-education']
  .columns-row-col:has(> .unconverted-block[data-widget='icon']:first-child) {
  text-align: center;
}
.unconverted-block[data-widget='icon'] {
  display: inline-block;
  margin: 0 8px;
}
.unconverted-block[data-widget='icon'] a {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #27255c;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}
/* alumni hero slider subtitle: live's large caption size */
.inner-hero-slides .banner-content {
  font-size: 28px;
  line-height: 1.4;
}

/* 73) exec-ed impact circles: live's light-gray boxed container */
[data-page='executive-education'] .row.columns-row:has(> [class*='col-'] > .stat-circle-col) {
  background: rgba(236, 236, 236, 0.8);
  margin: 0;
  padding: 22px 30px;
}

/* 74) students-experience video boxes: live's 3-column layout */
.video-boxes > .col-md-6 {
  flex: 0 0 33.333%;
  max-width: 33.333%;
}
.video-boxes .video-box h3 {
  font-size: 14px;
  text-transform: uppercase;
}

/* 75) colored containers: paragraphs must inherit the wrapper's white color
   and alignment (the theme colors `p` directly, which kept tile/band body
   text dark and justified) */
.columns-row-col.has-bg .payload-richtext p,
.stat-tile .payload-richtext p,
.overlay-card .payload-richtext p,
.img-cta-card .payload-richtext p {
  color: inherit;
  text-align: inherit;
}
