/* =========================================================
   RESPONSIVE LAYOUT LAYER
   Loaded after every other theme stylesheet. Keeps spacing,
   type sizes and card heights consistent on desktop, tablet
   (768-991px) and mobile (<768px).
========================================================= */

/* ---------- No sideways scroll ---------- */
html, body{ overflow-x:hidden; }
img, iframe{ max-width:100%; }

/* ---------- Fluid headings (desktop sizes unchanged) ---------- */
.hero__title{ font-size:clamp(2.1rem, 1.2rem + 3.6vw, 3.4rem); }
section.page-banner .page-banner__title{ font-size:clamp(2rem, 1.3rem + 2.6vw, 3rem); line-height:1.1; }
.section-title{ font-size:clamp(1.75rem, 1.3rem + 1.6vw, 2.4rem); line-height:1.15; }
.cta-banner__title{ font-size:clamp(1.6rem, 1.2rem + 1.4vw, 2.1rem); }
.stats-band__num{ font-size:clamp(2rem, 1.5rem + 1.6vw, 2.6rem); }
h2, h3{ overflow-wrap:break-word; }

/* ---------- Equal-height cards in every row ---------- */
.row > [class*="col"] > .card--program,
.row > [class*="col"] > .card--learn,
.row > [class*="col"] > .card--why,
.row > [class*="col"] > .card--instructor,
.row > [class*="col"] > .card--value,
.row > [class*="col"] > .card--testimonial,
.row > [class*="col"] > .how-it-works__item{ height:100%; }
.card--program{ display:flex; flex-direction:column; }
.card--program__body{ flex:1 1 auto; display:flex; flex-direction:column; }
.card--program__link{ margin-top:auto; }

/* ---------- Tablet (768px - 991px) ---------- */
@media (min-width:768px) and (max-width:991.98px){
  .section-pad{ padding:72px 0; }
  .section-head{ margin-bottom:40px; }
  section.page-banner{ padding:130px 0 60px; }
  .overview__img{ height:380px !important; }
  .cta-banner{ padding-top:56px; padding-bottom:56px; }
}

/* ---------- Mobile (<768px) ---------- */
@media (max-width:767.98px){
  /* Bootstrap's g-5 gutter is wider than the container padding on phones */
  .row.g-5{ --bs-gutter-x:1.5rem; --bs-gutter-y:2rem; }

  .section-pad{ padding:56px 0; }
  .section-head{ margin-bottom:32px; }
  section.page-banner{ padding:115px 0 48px; }
  .page-banner__text{ font-size:.95rem; }

  .hero__text{ font-size:1rem; }
  .hero__actions{ margin-bottom:32px; }
  .hero__stats{ gap:20px 28px; }

  .overview__img{ height:300px !important; }
  .overview__facts{ gap:12px; }
  .overview__badge{ right:12px; bottom:-16px; }

  .cta-banner{ padding-top:48px; padding-bottom:48px; }
  .cta-banner .btn--outline,
  .cta-banner .btn--primary{ width:100%; justify-content:center; }

  .card--program__body{ padding:20px 20px 24px; }
}

/* ---------- Small phones (<400px) ---------- */
@media (max-width:399.98px){
  .container{ padding-left:16px; padding-right:16px; }
  .overview__img{ height:260px !important; }
}
