/* ===== Hero — Admissions ===== */

.pnd_full_width.hero .pnd_full_width_overlay h1 {
  font-size: 5.5rem;
  line-height: 1.1;
  font-weight: 700;
  letter-spacing: 0;
}

.pnd_full_width.hero .pnd_full_width_bg_image::after {
  box-shadow: inset 0 0 0 100vmax rgba(0, 0, 0, .25);
}


/* ===== Welcome to Steamboat Mountain School ===== */

.welcome-to-school-blk h2 {
  font-size: 4rem;
  line-height: 1.1;
  font-weight: 700;
  color: #333;
}

.welcome-to-school-blk .subtitle p,
.welcome-to-school-blk .content_align_center > div:last-child p {
  font-size: 1.6rem !important;
  line-height: 1.5;
  color: #333;
  max-width: 90rem;
  margin-left: auto;
  margin-right: auto;
}

.welcome-to-school-blk .subtitle p { margin-top: 2.4rem; }
.welcome-to-school-blk .content_align_center > div:last-child p { margin-top: 3rem; }


/* ===== Section headings — Admissions / Why Family Choose / The Connection ===== */

.admissions-block .pnd_full_width_blank_content h2,
.why-family-choose .pnd_full_width_blank_content h2,
.connection-block .pnd_full_width_blank_content h2 {
  font-size: 4rem;
  line-height: 1.1;
  font-weight: 700;
  color: #333;
  margin-bottom: 24px !important;
}

.admissions-block .pnd_full_width_blank_content p,
.why-family-choose .pnd_full_width_blank_content p,
.connection-block .pnd_full_width_blank_content p {
  font-size: 1.6rem;
  line-height: 1.5;
  color: #333;
  max-width: 81rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 3rem !important;
}


/* ===== Buttons ===== */

.pnd_full_width_blank_content a.plain_text_button {
  font-size: 1.5rem;
  letter-spacing: .04em;
  border-radius: 45px;
  text-transform: uppercase;
}

.pnd_full_width_blank_content a.plain_text_button.pnd_button_custom_1 {
  background-color: #1f3b61 !important;
}

.admissions-btns a.plain_text_button.pnd_button_custom_2 {
  background-color: #ffffff !important;
  border: 2px solid #1f3b61 !important;
  color: #1f3b61 !important;
}


/* ===== Value of an SMS Education (50/50) ===== */

.independent-school {
  padding: 0 15px;
}

.independent-school .pnd_50_50_row_content_text {
  margin-top: 0px !important;
}

.independent-school .pnd_50_50_row_content_text h2 {
  font-size: 4rem !important;
  line-height: 1.1;
  font-weight: 700;
  color: #333;
  width: 100%;
  max-width: 475px;
  margin-bottom: 2.4rem;
  word-wrap: break-word;
}

.independent-school .pnd_50_50_row_content_text .subtitle p {
  font-size: 2rem !important;
  line-height: 1.2;
  color: #333;
  margin-bottom: 2.4rem;
}

.independent-school .pnd_50_50_row_content_text ul {
  padding-left: 1.4rem;
  margin-bottom: 2.4rem;
  list-style: disc;
}

.independent-school .pnd_50_50_row_content_text ul ul {
  padding-left: 0;
  margin-bottom: 0;
}

.independent-school .pnd_50_50_row_content_text ul li {
  font-size: 1.6rem !important;
  line-height: 1.5;
  color: #333;
  margin-right: 2rem !important;
}

.independent-school .pnd_50_50_row_content_text .sources{
  font-size: 1.2rem;
  font-weight: 400;
  margin-top: 2rem;
  max-width: 84%;
}

.admissions-block .pnd_slide_overlay .subtitle {
  position: relative;
  top: 8%;
  opacity: 1;
}

.admissions-block .pnd_slide_overlay h2 {
  position: relative;
  top: 8%;
}

/* ===== Admissions cards ===== */

.admissions-block .pnd_slide::before { padding-top: 69.5%; }

.admissions-block .pnd_slide_overlay {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .8rem;
  padding: 6.4rem;
  background-image: none;
  background-color: rgba(0, 0, 0, .5);
}

.admissions-block .pnd_slide_overlay h2 {
  float: none;
  margin: 0;
  font-size: 2.6rem !important;
  font-weight: 700;
  text-transform: uppercase;
  color: #fff;
}

.admissions-block .pnd_slide_overlay .subtitle {
  float: none;
  margin: 0;
}

.admissions-block .pnd_slide_overlay .subtitle p {
  font-size: 2rem;
  color: #fff;
}

.admissions-block .pnd_slide_overlay a.slide_button {
  float: none;
  margin: 1.6rem 0 0;
  margin-top: auto;
  padding: 1.2rem 2.4rem;
  background: #fff;
  color: #1f3b61;
  border-radius: 45px;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: .04em;
  opacity: 1;
  margin: 6.4rem;
}

.admissions-block .first-column .pnd_slide:first-child,
.admissions-block .second-column .pnd_slide:first-child {
  margin-bottom: 24px;
}

.admissions-block .subtitle p{
  font-size: 2rem !important;
}

/* ===== Why Family Choose cards ===== */

.why-family-choose .pnd_slide_overlay {
  display: flex;
  flex-direction: column;
  justify-content: start;
  align-items: flex-start;
  padding: 3rem;
  background-image: none;
  background-color: rgba(0, 0, 0, .2);
  pointer-events: none !important;
}

.why-family-choose .pnd_slide_overlay h2 {
  float: none;
  margin: 0;
  font-size: 2.2rem !important;
  font-weight: 600;
  color: #fff;
  position: relative;
  top: 70%;
  font-weight: 600 !important;
}

.why-family-choose .pnd_slide_overlay .subtitle {
  position: relative;
  top: 0%;
  opacity: 1;
}

.why-family-choose .pnd_slide_overlay .subtitle,
.why-family-choose .pnd_slide_overlay a.slide_button {
  display: none;
}

.admissions-block .pnd_slide_link_row,
.why-family-choose .pnd_slide_link_row,
.independent-school{
  width: 100%;
  max-width: 1440px;
  margin: 0 auto !important;
}

/* tile rows: keep side breathing room when viewport < 1440 */
@media (min-width: 992px) {
  .admissions-block .pnd_slide_link_row,
  .why-family-choose .pnd_slide_link_row {
    box-sizing: border-box;
    padding-left: 2rem !important;
    padding-right: 2rem !important;
  }
}

/* Side padding for all wide sections in the 992-1440 band
   (mobile stacks < 992, large screens get outer margin above 1440) */
@media (min-width: 992px) {
  .welcome-to-school-blk,
  .admissions-block,
  .why-family-choose,
  .independent-school,
  .connection-block,
  .faq-block,
  .admissions-process {
    box-sizing: border-box;
    /* padding-left: 3rem;
    padding-right: 3rem; */
  }
}

.independent-school .subtitle {
  max-width: 80%;
}

.independent-school ul, .independent-school .sources {
  max-width: 94%;
}

.connection-block .pnd_category_slide_overlay{
  display: flex;
  align-items: center;
}

.connection-block .pnd_category_slide_overlay h2 {
  margin-top: 0 !important;
  transition: transform 1s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
}

.connection-block .pnd_category_slide_overlay:hover h2 {
  transform: translateY(-5px) !important;
}

.independent-school-btn{
  margin-top: 120px;
  margin-bottom: 120px;
}

.how-to-apply-bg-txt {
  width: 100%;
  max-width: 546px;
  margin: 0 auto;
  background: #1F3B61;
  border-radius: 12px;
}

.how-to-apply-bg-txt p{
  color: #fff !important;
  font-size: 20px !important;
  font-weight: 400 !important;
}

/* ===== Responsive ===== */

@media (max-width: 768px) {
  .pnd_full_width.hero .pnd_full_width_overlay h1 { font-size: 3.4rem; }

  .pnd_full_width.hero .pnd_full_width_overlay h1 br,
  .welcome-to-school-blk h2 br,
  .welcome-to-school-blk p br { display: none; }

  .welcome-to-school-blk h2,
  .admissions-block .pnd_full_width_blank_content h2,
  .why-family-choose .pnd_full_width_blank_content h2,
  .connection-block .pnd_full_width_blank_content h2,
  .independent-school .pnd_50_50_row_content_text h2 { font-size: 3rem; }

  /* 50/50 heading uses !important on desktop, so override needs it too */
  .independent-school .pnd_50_50_row_content_text h2 { font-size: 2.6rem !important; }

  /* long lead subtitle: ease it down a touch on phones */
  .independent-school .pnd_50_50_row_content_text .subtitle p { font-size: 1.8rem !important; }

  .admissions-block .pnd_slide_overlay { padding: 3rem; }

  /* The Connection cards: smaller titles on mobile */
  .connection-block .pnd_category_slide_overlay h2 { font-size: 1.6rem !important; }

  .independent-school ul, .independent-school .sources{ max-width: 100% !important; }

  .independent-school .subtitle { max-width: 100%; }

  .independent-school-btn { 
    margin-top: 40px !important;
    margin-bottom: 40px !important;
  }

  .vc_custom_1784757042701 {
      margin-top: 40px !important;
      margin-bottom: 40px !important;
  }

  .independent-school {  
    margin-top: 70px !important;
  }

  .vc_custom_1784757766104 {
      margin-top: 40px !important;
  }

  .vc_custom_1784757042701 {
      margin-top: 40px !important;
      margin-bottom: 40px !important;
  }

  .independent-school-btn .pnd_full_width_blank_content {
    margin: 0px !important;
  }

  .vc_custom_1784757042701 {
    margin-top: 40px !important;
    margin-bottom: 40px !important;
  }

  .pnd_slide_overlay h2, .pnd_slide_overlay .subtitle{
    max-width: 100% !important;
  }
}


/* ===== Responsive — column stacking & spacing ===== */

@media (max-width: 991px) {
  /* Why Family Choose: 4-up -> 2-up */
  .why-family-choose .vc_col-sm-3 {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 50% !important;
    float: left !important;
  }

  /* Why Family Choose: bottom-align title so it doesn't clip on smaller tiles */
  .why-family-choose .pnd_slide_overlay {
    justify-content: flex-end;
    padding: 2rem;
  }
  .why-family-choose .pnd_slide_overlay h2 {
    top: 0 !important;
    font-size: 2.6rem !important;
  }

  /* Admissions cards: let height fit content, shrink type, reposition button */
  .admissions-block .pnd_slide { margin: 12px; }
  .admissions-block .pnd_slide::before { display: none; }
  .admissions-block .pnd_slide_bg_image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  .admissions-block .pnd_slide_overlay {
    position: relative;
    padding: 3rem;
  }
  .admissions-block .pnd_slide_overlay h2 {
    font-size: 2.2rem !important;
    top: 0 !important;
  }
  .admissions-block .pnd_slide_overlay .subtitle { top: 0 !important; }
  .admissions-block .pnd_slide_overlay .subtitle p { font-size: 1.5rem; }
  .admissions-block .pnd_slide_overlay a.slide_button {
    position: static !important;
    float: none !important;
    right: auto !important;
    align-self: flex-start;
    margin: 1.6rem 0 0 !important;
    font-size: 1.4rem;
  }

  /* Value of SMS (50/50): stack full width */
  .independent-school .vc_col-md-6 {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    float: none !important;
  }
  .independent-school .hidden-md.hidden-lg { display: block !important; }
  .independent-school .pnd_50_50_row_content_text {
    margin-top: 2rem !important;
    margin-bottom: 2rem !important;
  }
  .independent-school .pnd_50_50_row_content_text h2 { max-width: 100% !important; }
}

@media (max-width: 767px) {
  /* Admissions: 2-up -> 1-up */
  .admissions-block .vc_col-sm-6 {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    float: none !important;
  }

  /* Welcome buttons: equal width, stacked & centered */
  .admissions-btns .decorated { text-align: center; }
  .admissions-btns .decorated span { display: block; }

  .admissions-btns a.plain_text_button.center {
    display: block;
    float: none !important;
    width: 100%;
    max-width: 30rem;
    margin-top: 1.6rem;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* hide the decorative flanking lines on mobile */
  .admissions-btns .decorated::before,
  .admissions-btns .decorated::after,
  .admissions-btns .decorated span::before,
  .admissions-btns .decorated span::after { display: none !important; }
}


/* ===== Admissions Process Overview (custom HTML) ===== */

.admissions-process {
  display: flex;
  gap: 6.3rem;
  align-items: flex-start;
  max-width: 120rem;
  margin: 0 auto;
}

.admissions-process .ap-steps,
.admissions-process .ap-deadlines {
  flex: 1 1 0;
  min-width: 0;
}

.admissions-process h2 {
  font-size: 4rem;
  line-height: 1.1;
  font-weight: 700;
  color: #333;
  margin: 0;
}

.admissions-process h3 {
  font-size: 2.25rem;
  line-height: 1.4;
  font-weight: 700;
  color: #333;
  margin: 0 0 2rem;
}

.admissions-process p {
  font-size: 1.6rem;
  line-height: 1.5;
  color: #333;
  margin: 0 0 1.6rem;
}

.admissions-process .ap-sub { font-size: 1.5rem; margin: 2rem 0 0; }
.admissions-process .ap-strong { font-weight: 700; margin-bottom: .8rem; }

.admissions-process ul {
  margin: 0 0 1.6rem;
  padding-left: 2.4rem;
  list-style: disc;
}

.admissions-process li {
  font-size: 1.6rem;
  line-height: 1.5;
  color: #333;
  margin-bottom: .8rem;
}

.admissions-process .ap-head > :last-child,
.admissions-process .ap-step > :last-child,
.admissions-process .ap-date > :last-child { margin-bottom: 0; }

.admissions-process .ap-divider {
  border: 0;
  border-top: 1px solid #d9d9d9;
  margin: 4rem 0;
}

/* Buttons */
.admissions-process .ap-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 4.95rem;
  padding: 0 3rem;
  margin-top: 2.4rem;
  border-radius: 45px;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  text-decoration: none;
}

.admissions-process .ap-btn--solid { background: #1f3b61; color: #fff; }
.admissions-process .ap-btn--outline {
  background: #fff;
  color: #1f3b61;
  border: 1.5px solid #1f3b61;
}

/* Right column */
.admissions-process .ap-image {
  aspect-ratio: 568 / 707;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 5.8rem;
}

.admissions-process .ap-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.admissions-process .ap-deadlines h2 { margin-bottom: 4.4rem; }

.admissions-process .ap-dates {
  display: flex;
  flex-direction: column;
  gap: 4rem;
}

.admissions-process .ap-date {
  border-left: 2px solid #1f3b61;
  padding-left: 4rem;
}

.admissions-process .ap-date h3 { margin-bottom: 1.3rem; }

.admissions-process .ap-link {
  color: #004aaf;
  font-weight: 700;
  text-decoration: underline;
}

@media (max-width: 991px) {
  .admissions-process {
    flex-direction: column;
    gap: 4rem;
    padding-left: 2rem;
    padding-right: 2rem;
  }
  .admissions-process h2 { font-size: 3rem; }
  .admissions-process h3 { font-size: 2rem; }
  .admissions-process .ap-date { padding-left: 2.4rem; }

  /* order: image on top -> steps -> deadlines */
  .admissions-process .ap-deadlines { display: contents; }
  .admissions-process .ap-image {
    order: -1;
    aspect-ratio: 3 / 2;
    margin-bottom: 0;
  }
  .admissions-process .ap-deadlines h2 { margin-bottom: 0; }
}


/* ===== Admission FAQs (faq-block) ===== */

.faq-block {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto !important;
  padding: 0px 30px;
}

.faq-block .faq-heading { margin-bottom: 4rem !important; }

.faq-block .vc_toggle { margin: 0 0 3.1rem; }

/* Title bar */
.faq-block .vc_toggle_title {
  display: flex;
  align-items: center;
  gap: 2.3rem;
  min-height: 5.25rem;
  padding: 1rem 2rem !important;
  background: #023b64;
  border-radius: 12px;
  cursor: default;
}

.faq-block .vc_toggle_title h4 {
  order: 2;
  flex: 1 1 auto;
  margin: 0;
  padding: 0;
  font-size: 2.1rem;
  line-height: 1.2;
  font-weight: 700;
  text-align: left;
  color: #fff;
}

/* Icon -> single white dash on the left (hard reset of WPBakery's box +/- ) */
.faq-block .vc_toggle_default .vc_toggle_icon {
  order: 1;
  position: relative !important;
  top: auto !important;
  right: auto !important;
  left: auto !important;
  bottom: auto !important;
  margin: 0 !important;
  width: 18px !important;
  height: 0px !important;
  border: none !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  flex: 0 0 auto;
}

.faq-block .vc_toggle_default .vc_toggle_icon::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  top: 50% !important;
  left: 0 !important;
  width: 18px !important;
  height: 2.25px !important;
  margin: -1.125px 0 0 !important;
  background: #fff !important;
  border: none !important;
  transform: none !important;
}

.faq-block .vc_toggle_default .vc_toggle_icon::after { display: none !important; }

/* Content — always open */
.faq-block .vc_toggle_content {
  display: block !important;
  margin-top: 2px;
  padding: 2rem;
}

.faq-block .vc_toggle_content p,
.faq-block .vc_toggle_content li {
  font-size: 1.6rem !important;
  line-height: 1.5;
  color: #333;
}

.faq-block .vc_toggle_content ul {
  margin: 0;
  padding-left: 2.4rem;
  list-style: disc;
}

.faq-block .vc_toggle_content li { margin-bottom: .8rem; }

.faq-block .vc_toggle_content a {
  color: #004aaf;
  font-weight: 700;
  text-decoration: underline;
}

/* Submit button -> orange (override the global navy on pnd_button_custom_1) */
.faq-block .pnd_full_width_blank_content a.plain_text_button.pnd_button_custom_1 {
  background-color: #e07b44 !important;
  border-color: #e07b44 !important;
  margin-top: 0 !important;
}

@media (max-width: 768px) {
  .faq-block .faq-heading { font-size: 3rem !important; }
  .faq-block .vc_toggle_title h4 { font-size: 1.8rem; }
  .full-w-image-text{ padding: 30px; }
  .how-to-apply-bg-txt{ padding: 30px !important; }
  .faq-block { padding: 30px; }
  .faq-block .vc_toggle_content { padding: 1rem; }
  .vc_custom_1784799714823 {
    margin-bottom: 30px !important;
  }
}

.full-w-image-text{
  min-height: 590px !important;
}

.submit-an-inquiry-orange, .submit-an-inquiry-orange .plain {
  padding-left: 0px !important;
  margin-left: 0px !important;
}


/* ===== Why Visit Steamboat — 50/50 text + image (alternating) ===== */

.visit-steamboat-two-columns .vc_row.vc_inner {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 0 8.7rem;
  max-width: 1440px;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 0;
}

/* clearfix pseudos would become grid items and shift columns */
.visit-steamboat-two-columns .vc_row.vc_inner::before,
.visit-steamboat-two-columns .vc_row.vc_inner::after { content: none !important; }

.visit-steamboat-two-columns .vc_row.vc_inner > .wpb_column {
  width: auto !important;
  max-width: none !important;
  min-width: 0;
  float: none !important;
}

/* pin both columns to one row (keeps the alternating DOM order) */
.visit-steamboat-two-columns .vc_row.vc_inner > .wpb_column:first-child { grid-column: 1; grid-row: 1; }
.visit-steamboat-two-columns .vc_row.vc_inner > .wpb_column:last-child { grid-column: 2; grid-row: 1; }

.visit-steamboat-two-columns .vc_row.vc_inner > .wpb_column > .vc_column-inner {
  padding-left: 0;
  padding-right: 0;
}

.visit-steamboat-two-columns h2 { margin: 0 0 2.4rem; }

.visit-steamboat-two-columns .wpb_text_column { margin: 0; }

.visit-steamboat-two-columns .wpb_text_column p {
  font-size: 1.6rem;
  line-height: 1.5;
  color: #333;
  margin: 0;
}

/* Image -> fill column, rounded, no border */
.visit-steamboat-two-columns .wpb_single_image,
.visit-steamboat-two-columns .vc_figure,
.visit-steamboat-two-columns .vc_single_image-wrapper {
  width: 100%;
  max-width: none;
  margin: 0;
}

.visit-steamboat-two-columns .vc_single_image-wrapper.vc_box_border_grey { border: 0; }

.visit-steamboat-two-columns .vc_single_image-img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
}

.single-cta-txt {
  margin: 0 auto !important;
  padding-bottom: 20px;
}

.single-cta-txt::after {
  border-bottom: 1px solid #1F3B61;
  max-width: 1440px;
}

.single-cta-txt .wpb_text_column{
  padding-top: 40px;
  padding-bottom: 60px;
  max-width: 1440px;
  margin: 0 auto;
  border-bottom: 1px solid #1F3B61; 
}

.single-cta-txt .wpb_text_column p {
  max-width: 1028px;
  margin: 0 auto;
}

@media (max-width: 991px) {
  .visit-steamboat-two-columns .vc_row.vc_inner { gap: 0 4rem; }
}

@media (max-width: 767px) {

  .vc_custom_1784801784720{
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .visit-steamboat-two-columns,
  .single-cta-txt .wpb_text_column p{
    padding: 0 30px;
  }

  .visit-steamboat-two-columns .vc_row.vc_inner {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .visit-steamboat-two-columns .vc_row.vc_inner > .wpb_column:first-child,
  .visit-steamboat-two-columns .vc_row.vc_inner > .wpb_column:last-child {
    grid-column: 1;
    grid-row: auto;
  }

  /* image column always on top on mobile, regardless of DOM order */
  .visit-steamboat-two-columns .vc_row.vc_inner > .wpb_column:has(.wpb_single_image) {
    grid-row: 1;
  }
  .visit-steamboat-two-columns .vc_col-sm-6 {
    width: 100% !important;
    float: none !important;
    clear: both !important;
  }
  .visit-steamboat-two-columns h2 { font-size: 3rem !important; }
}


/* ===== Separator line (Welcome block) ===== */

.welcome-to-school-blk .vc_separator .vc_sep_line {
  border-color: #1f3b61 !important;
  border-top-width: 1.5px;
}


/* ===== Two Campuses, One School Community ===== */

/* Cards row: 2-up, top-aligned */
.two-campuses .vc_row.vc_inner {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  align-items: start;
  gap: 0 4rem;
  max-width: 1440px;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 0 3rem;
}

/* clearfix pseudos would become grid items and shift columns */
.two-campuses .vc_row.vc_inner::before,
.two-campuses .vc_row.vc_inner::after { content: none !important; }

.two-campuses .vc_row.vc_inner > .wpb_column {
  width: auto !important;
  max-width: none !important;
  min-width: 0;
  float: none !important;
}

.two-campuses .vc_row.vc_inner > .wpb_column:first-child { grid-column: 1; grid-row: 1; }
.two-campuses .vc_row.vc_inner > .wpb_column:last-child { grid-column: 2; grid-row: 1; }

.two-campuses .vc_row.vc_inner > .wpb_column > .vc_column-inner {
  padding-left: 0;
  padding-right: 0;
}

/* Card image */
.two-campuses .wpb_single_image,
.two-campuses .vc_figure,
.two-campuses .vc_single_image-wrapper {
  width: 100%;
  max-width: none;
  margin: 0;
}

.two-campuses .wpb_single_image { margin-bottom: 2.4rem; }

.two-campuses .vc_single_image-wrapper.vc_box_border_grey { border: 0; }

.two-campuses .vc_single_image-img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
}

/* Card text (32px heading, bold subtitle, body, list) */
.two-campuses .content_align_left h2 {
  font-size: 3.2rem;
  line-height: 1.1;
  font-weight: 700;
  color: #333;
  margin: 0 0 1.2rem;
}

.two-campuses .content_align_left .subtitle p {
  font-size: 1.6rem !important;
  line-height: 1.5; 
  font-weight: 700 !important;
  color: #333;
  max-width: none;
  margin: 0 0 1.6rem;
}

.two-campuses .content_align_left p {
  font-size: 1.6rem;
  line-height: 1.5;
  color: #333;
  margin: 0 0 1.6rem;
}

.two-campuses .content_align_left ul {
  margin: 0;
  padding-left: 2.4rem;
  list-style: disc;
}

.two-campuses .content_align_left li {
  font-size: 1.6rem;
  line-height: 1.5;
  color: #333;
  margin-bottom: 0;
}

/* Force the plugin's full-width blocks into normal in-flow blocks so the two
   cards don't overlap (by default they use absolute content + JS-set heights) */
.two-campuses .pnd_full_width,
.two-campuses .pnd_full_width_blank,
.two-campuses .pnd_full_width_blank_content,
.two-campuses .indent_row_content {
  position: static !important;
  height: auto !important;
  min-height: 0 !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  transform: none !important;
  float: none !important;
}

.two-campuses .pnd_full_width_blank.indent_row_content {
  margin: 0 0 63px !important;
  padding: 0 !important;
}

.two-campuses .welcome-to-school-blk .content_align_center > div:last-child p{
  max-width: 884px !important;
}

.two-campuses h2{
  max-width: 640px;
  margin: 0 auto;
}

@media (max-width: 991px) {
  .two-campuses .vc_row.vc_inner { gap: 0 3rem; }
}

@media (max-width: 767px) {
  .two-campuses .vc_row.vc_inner {
    grid-template-columns: 1fr;
    gap: 4rem;
  }
  .two-campuses .vc_row.vc_inner > .wpb_column:first-child,
  .two-campuses .vc_row.vc_inner > .wpb_column:last-child {
    grid-column: 1;
    grid-row: auto;
  }
  .two-campuses .vc_col-sm-6 {
    width: 100% !important;
    float: none !important;
    clear: both !important;
  }
  .two-campuses .content_align_left h2 { font-size: 2.6rem; }
}


/* ===== Visit testimonial — full-width image + navy card ===== */

.visit-full-w-image-text { position: relative; min-height: 593px; }

/* 20% dark overlay over the background image */
.visit-full-w-image-text::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.2);
  z-index: 1;
  pointer-events: none;
}

/* keep the card above the overlay */
.visit-full-w-image-text > .wpb_column {
  position: relative;
  z-index: 2;
}

.visit-full-w-image-text .how-to-apply-bg-txt {
  padding: 6rem;
  text-align: left;
  margin-top: 90px !important;
  margin-bottom: 90px !important;
}

.visit-full-w-image-text .how-to-apply-bg-txt p { margin: 0 0 2rem; }
.visit-full-w-image-text .how-to-apply-bg-txt p:last-child { margin-bottom: 0; }

/* heading -> Montserrat Bold 22.5px */
.visit-full-w-image-text .how-to-apply-bg-txt p:first-child {
  font-family: 'Montserrat', sans-serif;
  font-size: 22.5px !important;
  font-weight: 700 !important;
  line-height: 1.2;
}

.visit-full-w-image-text .vc_column-inner{
  padding-top: 0px !important;
}


/* ===== Schedule Your Visit (form) ===== */

.schedule-visit-form {
  background-color: #1f3b61;
  min-height: 882px;
  display: flex !important;
  align-items: center !important;
}

.schedule-visit-form > .wpb_column { width: 100% !important; }

.schedule-visit-form .vc_row.vc_inner {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  align-items: start;
  gap: 0 152px;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 0 3rem;
}

/* WPBakery clearfix pseudos become grid items and mirror/offset the columns —
   safe to drop them here because display:grid is forced with !important */
.schedule-visit-form .vc_row.vc_inner::before,
.schedule-visit-form .vc_row.vc_inner::after { content: none !important; }

.schedule-visit-form .vc_row.vc_inner > .wpb_column {
  width: auto !important;
  max-width: none !important;
  min-width: 0;
  float: none !important;
}

/* pin placement: text left, form right, same row */
.schedule-visit-form .vc_row.vc_inner > .wpb_column:first-child { grid-column: 1; grid-row: 1; }
.schedule-visit-form .vc_row.vc_inner > .wpb_column:last-child { grid-column: 2; grid-row: 1; }

.schedule-visit-form .vc_row.vc_inner > .wpb_column > .vc_column-inner {
  padding-left: 0;
  padding-right: 0;
}

/* Left column text (white on navy) */
.schedule-visit-form h2 { margin: 0 0 2rem; }

.schedule-visit-form .wpb_text_column p {
  font-size: 1.6rem;
  line-height: 1.5;
  color: #fff;
  margin: 0;
}

/* Right column form image */
.schedule-visit-form .wpb_single_image,
.schedule-visit-form .vc_figure,
.schedule-visit-form .vc_single_image-wrapper {
  width: 100%;
  max-width: none;
  margin: 0;
}

.schedule-visit-form .vc_single_image-wrapper.vc_box_border_grey { border: 0; }

.schedule-visit-form .vc_single_image-img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
}

@media (max-width: 991px) {
  .schedule-visit-form {
    min-height: 0;
    padding-top: 6rem;
    padding-bottom: 6rem;
  }
  .schedule-visit-form .vc_row.vc_inner { gap: 4rem; }
}

@media (max-width: 767px) {
  .schedule-visit-form .vc_row.vc_inner {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .schedule-visit-form .vc_row.vc_inner > .wpb_column:first-child,
  .schedule-visit-form .vc_row.vc_inner > .wpb_column:last-child {
    grid-column: 1;
    grid-row: auto;
  }
  .schedule-visit-form .vc_col-sm-6 {
    width: 100% !important;
    float: none !important;
    clear: both !important;
  }
  .schedule-visit-form h2 { font-size: 3rem !important; }
}


/* ===== Mobile: compact section spacing (overrides builder vc_custom_*) ===== */

@media (max-width: 767px) {
  .vc_row.wpb_row.welcome-to-school-blk,
  .vc_row.wpb_row.visit-steamboat-two-columns,
  .vc_row.wpb_row.single-cta-txt,
  .vc_row.wpb_row.two-campuses,
  .vc_row.wpb_row.visit-full-w-image-text,
  .vc_row.wpb_row.schedule-visit-form,
  .vc_row.wpb_row.faq-block,
  .vc_row.wpb_row.independent-school,
  .vc_row.wpb_row.independent-school-btn,
  .vc_row.wpb_row.admissions-block,
  .vc_row.wpb_row.why-family-choose,
  .vc_row.wpb_row.connection-block {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 2.4rem !important;
    padding-bottom: 2.4rem !important;
    padding-left: 15px !important;
    padding-right: 15px !important;
  }

  /* button-only spacer row: the button brings its own top margin */
  .vc_row.wpb_row.independent-school-btn {
    padding-top: 0 !important;
    padding-bottom: 2.4rem !important;
  }

  /* 50/50 stack: JS injects inline margins on the stacked text/image */
  .independent-school .pnd_50_50_row_content_text,
  .independent-school .pnd_50_50_row_content_image_holder {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
  }

  .vc_row.wpb_row.full-w-image-text {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  /* builder content blocks carry 5rem/10rem margins of their own */
  .wpb-content-wrapper .pnd_full_width_blank_content {
    margin-top: 2rem !important;
    margin-bottom: 2rem !important;
  }
}


/* ===== Tuition table ===== */

.tuition-table-wrap {
  max-width: 1440px;
  margin: 0 auto;
  overflow-x: auto;
}

.tuition-table {
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
}

.tuition-table th,
.tuition-table td {
  font-size: 1.6rem;
  line-height: 1.5;
  text-align: left;
  padding: 1.9rem 1.5rem 1.9rem 3rem;
}

.tuition-table th {
  background: #1f3b61;
  color: #fff;
  font-weight: 700;
  padding-top: 1.6rem;
  padding-bottom: 1.6rem;
}

.tuition-table th:first-child { border-top-left-radius: 4.5px; }
.tuition-table th:last-child { border-top-right-radius: 4.5px; }

.tuition-table td {
  color: #3e3e3e;
  border-bottom: 1px dashed #c6c6c6;
}

.tuition-table td:first-child { font-weight: 700; }

.tuition-table th:first-child,
.tuition-table td:first-child { width: 42%; }
.tuition-table th:nth-child(2),
.tuition-table td:nth-child(2) { width: 26%; }

@media (max-width: 767px) {
  .tuition-table th,
  .tuition-table td {
    font-size: 1.4rem;
    padding: 1.4rem 1.2rem 1.4rem 1.6rem;
  }
}


/* ===== Boarding tuition tables ===== */

.boarding-table-wrap {
  max-width: 1440px;
  margin: 0 auto;
  overflow-x: auto;
}

.boarding-table-title {
  font-size: 2.26rem;
  line-height: 1.4;
  font-weight: 700;
  color: #333;
  margin: 0 0 2.4rem;
}

.boarding-table {
  width: 100%;
  min-width: 560px;
  border-collapse: collapse;
}

.boarding-table th,
.boarding-table td {
  line-height: 1.5;
  text-align: left;
  padding: 1.9rem 1.5rem 1.9rem 3rem;
}

.boarding-table th {
  background: #1f3b61;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 600;
  padding-top: 1.6rem;
  padding-bottom: 1.6rem;
}

.boarding-table th:first-child { border-top-left-radius: 4.5px; }
.boarding-table th:last-child { border-top-right-radius: 4.5px; }

.boarding-table td {
  color: #3e3e3e;
  font-size: 1.2rem;
  border-bottom: 1px dashed #c6c6c6;
}

.boarding-table td:first-child {
  font-size: 1.36rem;
  font-weight: 700;
}

.boarding-table th:first-child,
.boarding-table td:first-child { width: 42%; }
.boarding-table th:nth-child(2),
.boarding-table td:nth-child(2) { width: 26%; }

.boarding-table--2col th:first-child,
.boarding-table--2col td:first-child { width: 70.6%; }

@media (max-width: 767px) {
  .boarding-table-title { font-size: 2rem; }
}


/* ===== Tuition sections (Day School / Boarding) ===== */

.tuition-section {
  max-width: 1440px;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 0 3rem;
}

.tuition-section-title {
  font-size: 4rem;
  line-height: 1.1;
  font-weight: 700;
  color: #333;
  margin: 0 0 2.4rem;
}

.tuition-section-intro p {
  font-size: 1.6rem;
  line-height: 1.5;
  color: #333;
  margin: 0 0 1.6rem;
}

.tuition-section-intro p:last-child { margin-bottom: 0; }

.tuition-link {
  color: #004aaf;
  font-weight: 700;
  text-decoration: underline;
}

/* block gaps: 49px in Day section, 35px in Boarding */
.day-tuition-section .tuition-table-wrap { margin: 4.9rem 0; }
.day-tuition-section .tuition-note { margin-top: 4.9rem; }

.boarding-tuition-section .boarding-table-wrap { margin-top: 3.5rem; }
.boarding-tuition-section .tuition-note { margin-top: 3.5rem; }

/* notes */
.tuition-note p {
  font-size: 1.6rem;
  line-height: 1.5;
  color: #333;
  margin: 0 0 .8rem;
}

.tuition-note ul {
  margin: 0;
  padding-left: 2.4rem;
  list-style: disc;
}

.tuition-note li {
  font-size: 1.6rem;
  line-height: 1.5;
  color: #333;
  margin-bottom: .8rem;
}

.table-content-tuition{
  max-width: 1440px !important;
  margin: 0 auto !important;
}

.boarding-tuition-section .tuition-note p,
.boarding-tuition-section .tuition-note li { font-size: 1.5rem; }

@media (max-width: 767px) {
  .tuition-section { padding: 0 2rem; }
  .tuition-section-title { font-size: 3rem; }
  .day-tuition-section .tuition-table-wrap { margin: 3rem 0; }
  .day-tuition-section .tuition-note { margin-top: 3rem; }
  .boarding-tuition-section .boarding-table-wrap,
  .boarding-tuition-section .tuition-note { margin-top: 2.4rem; }
  .table-content-tuition { padding: 0 15px; }
}

/* Hardened against theme heading/table styles (.wpb_wrapper h2/h3/table win otherwise) */

.tuition-section h2.tuition-section-title {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 4rem !important;
  line-height: 1.1 !important;
  font-weight: 700 !important;
  color: #333 !important;
  margin: 0 0 2.4rem !important;
  padding: 0 !important;
}

.tuition-section h3.boarding-table-title,
.tuition-section h3.tuition-table-title {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 2.26rem !important;
  line-height: 1.4 !important;
  font-weight: 700 !important;
  color: #333 !important;
  margin: 0 0 2.4rem !important;
  padding: 0 !important;
}

.tuition-section table.tuition-table,
.tuition-section table.boarding-table {
  border: none !important;
  margin: 0 !important;
}

.tuition-section .tuition-table th,
.tuition-section .boarding-table th {
  border: none !important;
  background: #1f3b61 !important;
  color: #fff !important;
}

.tuition-section .tuition-table td,
.tuition-section .boarding-table td {
  border: none !important;
  border-bottom: 1px dashed #c6c6c6 !important;
  background: transparent !important;
}

.tuition-section .tuition-table th,
.tuition-section .tuition-table td { font-size: 1.6rem !important; }

.tuition-section .tuition-table td:first-child { font-weight: 700 !important; }

.tuition-section .boarding-table th { font-size: 1.5rem !important; font-weight: 600 !important; }
.tuition-section .boarding-table td { font-size: 1.2rem !important; }
.tuition-section .boarding-table td:first-child { font-size: 1.36rem !important; font-weight: 700 !important; }

@media (max-width: 767px) {
  .tuition-section h2.tuition-section-title { font-size: 3rem !important; }
  .tuition-section h3.boarding-table-title,
  .tuition-section h3.tuition-table-title { font-size: 2rem !important; }
  .tuition-section .tuition-table th,
  .tuition-section .tuition-table td { font-size: 1.4rem !important; }
}

@media (max-width: 1024px) {
  /* your ≤1024 css here */
  .admissions-block .pnd_slide_overlay a.slide_button{
    margin: 2.4rem;
  }
}