/* ============================================================
   SWISS-SASEM — Responsive Stylesheet
   ============================================================ */

/* ── HAMBURGER BUTTON ── */
.nav-hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  cursor: pointer;
  gap: 5px;
  background: none;
  border: none;
  padding: 0;
  margin-left: 0.5rem;
}
.nav-hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--navy);
  transition: all 0.3s;
}
.nav-hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-hamburger.open span:nth-child(2) { opacity: 0; }
.nav-hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ── MOBILE MENU OVERLAY ── */
.mobile-menu {
  display: none;
  position: fixed;
  top: 64px;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--white);
  z-index: 999;
  flex-direction: column;
  padding: 1.5rem;
  overflow-y: auto;
  border-top: 0.5px solid var(--border, #e0ddd7);
}
.mobile-menu.open { display: flex !important; }
.mobile-menu a {
  font-size: 16px;
  color: var(--navy);
  text-decoration: none;
  padding: 1rem 0;
  border-bottom: 0.5px solid var(--border, #e0ddd7);
  letter-spacing: 0.05em;
  font-weight: 500;
}
.mobile-menu a:last-child { border-bottom: none; }
.mobile-menu a.active { color: var(--gold); }
.mobile-menu .mobile-apply {
  margin-top: 1.5rem;
  padding: 14px 28px;
  background: var(--navy);
  color: var(--white);
  text-align: center;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border: none;
  cursor: pointer;
}

/* ── TABLET (≤ 900px) ── */
@media (max-width: 900px) {

  /* Nav */
  nav { padding: 0 1.5rem; }
  .nav-links { display: none; }
  .nav-apply { display: none; }
  .nav-hamburger { display: flex; }

  /* Logo mark — explicit sizing prevents any base-CSS shrinkage */
  .nav-mark {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
    padding: 0 !important;
    border: none !important;
  }
  .nav-mark img {
    width: 44px !important;
    height: 44px !important;
    max-width: 44px !important;
    max-height: 44px !important;
    object-fit: contain !important;
    display: block !important;
  }

  /* Wordmark */
  .nav-name {
    font-size: 11px !important;
    letter-spacing: 0.1em !important;
    white-space: nowrap !important;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 180px;
  }
  .nav-name span { display: none !important; }
  .nav-left { gap: 8px; }

  /* Index hero */
  .hero { grid-template-columns: 1fr !important; min-height: auto !important; }
  .hero-right { display: none !important; }
  .hero-left { padding: 3rem 1.5rem !important; border-right: none !important; }
  .hero-h1 { font-size: 40px !important; }
  .hero-lead { max-width: 100% !important; }
  .hero-stat-row { grid-template-columns: 1fr 1fr !important; }

  /* Page hero (inner pages) */
  .page-hero {
    grid-template-columns: 1fr !important;
    min-height: auto !important;
  }
  .page-hero-left {
    border-right: none !important;
    padding: 3rem 1.5rem !important;
  }
  .page-hero-right {
    padding: 2rem 1.5rem !important;
    border-top: 0.5px solid var(--border, #e0ddd7);
  }

  /* Hero variants (seminars, expert-programs) */
  .hero-facts { grid-template-columns: 1fr 1fr !important; }
  .hero-stats { grid-template-columns: 1fr 1fr !important; }
  .hero-right-bottom { grid-template-columns: 1fr 1fr !important; }

  /* Sticky tabs */
  .page-tabs { top: 64px; }

  /* Section padding */
  section, .section { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }
  .section-pad { padding: 2.5rem 1.5rem !important; }

  /* Index page elements */
  .programs-intro { flex-direction: column !important; gap: 0.5rem !important; padding: 2rem 1.5rem !important; }
  .programs-intro-title { font-size: 24px !important; }
  .programs-strip-inner { padding: 0 1.5rem !important; }
  .programs-strip-header { flex-direction: column !important; gap: 0.5rem !important; }
  .accred-band { padding: 2rem 1.5rem !important; }
  .accred-band-top { flex-direction: column !important; }

  /* Single-column grids */
  .two-col, .story-grid, .who-grid, .how-grid, .swiss-grid,
  .entry-grid, .apply-inner, .bespoke-inner, .lisbon-inner,
  .cert-inner, .compare-block, .degrees-grid, .faq-grid,
  .module-grid, .partners-grid, .pillars-grid, .profiles-grid,
  .sem-grid, .vm-grid { grid-template-columns: 1fr !important; gap: 1.5rem !important; }

  /* Two-column grids */
  .programs-grid, .tracks-grid, .fees-grid, .sup-grid,
  .values-grid, .approach-grid, .accred-cards, .campuses-grid,
  .format-grid, .programs-strip-grid { grid-template-columns: 1fr 1fr !important; }

  .journey-grid, .associates-grid { grid-template-columns: 1fr 1fr !important; }

  /* Featured faculty card */
  .featured-grid { grid-template-columns: 1fr !important; }
  .featured-card { grid-template-columns: 1fr !important; min-height: auto !important; }
  .featured-photo { width: 100% !important; height: 220px !important; }
  .featured-content { padding: 1.5rem !important; }

  /* Faculty grid */
  .faculty-grid { grid-template-columns: 1fr 1fr !important; }
  .faculty-card { flex-direction: row !important; }
  .faculty-photo { width: 110px !important; min-width: 110px !important; height: 140px !important; }
  .faculty-info { padding: 1rem !important; }

  /* CTA band */
  .cta-band { flex-direction: column !important; align-items: flex-start !important; padding: 2rem 1.5rem !important; }
  .cta-btns { flex-direction: column !important; width: 100% !important; }
  .cta-btns a, .cta-btns button { text-align: center !important; width: 100% !important; box-sizing: border-box; }

  /* Footer */
  footer { flex-direction: column !important; align-items: flex-start !important; padding: 1.5rem !important; gap: 1rem !important; }
  .footer-links { flex-wrap: wrap !important; gap: 1rem !important; }

  /* Typography */
  .sec-title { font-size: 26px !important; }
  .hero h1, .page-hero h1, .page-h1 { font-size: 32px !important; }

  /* Intake */
  .intake-grid { grid-template-columns: 1fr !important; }
}

/* ── MOBILE (≤ 600px) ── */
@media (max-width: 600px) {

  /* Nav */
  nav { padding: 0 1rem; height: 56px; }
  .mobile-menu { top: 56px; }

  /* Sticky tabs shift with shorter nav */
  .page-tabs { top: 56px !important; }

  /* Index hero */
  .hero-left { padding: 2rem 1rem !important; }
  .hero-h1 { font-size: 30px !important; }
  .hero-btns { flex-direction: column !important; align-items: flex-start !important; }

  /* Page hero (inner pages) */
  .page-hero-left { padding: 2rem 1rem !important; }
  .page-hero-right { padding: 1.5rem 1rem !important; }
  .hero h1, .page-hero h1, .page-h1 { font-size: 26px !important; line-height: 1.25 !important; }

  /* Hero stat rows */
  .hero-stat-row { grid-template-columns: 1fr 1fr !important; }
  .hero-facts { grid-template-columns: 1fr 1fr !important; }
  .hero-stats { grid-template-columns: 1fr 1fr !important; }
  .hero-right-bottom { grid-template-columns: 1fr 1fr !important; }

  /* Page hero generic */
  .page-hero { padding: 0 !important; }

  /* Section padding */
  section, .section { padding-left: 1rem !important; padding-right: 1rem !important; }
  .section-pad { padding: 2rem 1rem !important; }

  /* All grids collapse to 1 column */
  .programs-grid, .tracks-grid, .fees-grid, .sup-grid,
  .approach-grid, .accred-cards, .campuses-grid, .format-grid,
  .programs-strip-grid, .values-grid, .faq-grid { grid-template-columns: 1fr !important; }

  .degrees-grid { grid-template-columns: 1fr !important; }
  .programs-strip-grid { grid-template-columns: 1fr !important; }
  .journey-grid, .associates-grid { grid-template-columns: 1fr !important; }

  /* Faculty */
  .faculty-grid { grid-template-columns: 1fr !important; }
  .faculty-card { flex-direction: column !important; }
  .faculty-photo { width: 100% !important; height: 200px !important; min-width: unset !important; }

  /* Photos */
  .featured-photo { height: 180px !important; }
  .assoc-photo { height: 160px !important; }

  /* Typography */
  .sec-title { font-size: 22px !important; margin-bottom: 1.25rem !important; }
  .pullquote { font-size: 18px !important; padding: 1.5rem !important; }

  /* Buttons: full-width on mobile */
  .btn-dark, .btn-gold, .btn-white, .btn-outline-navy, .btn-outline, .btn-ghost {
    width: 100% !important;
    text-align: center !important;
    box-sizing: border-box;
    display: block !important;
  }
  .apply-btns { flex-direction: column !important; gap: 8px !important; }
  .apply-btns a, .apply-btns button { width: 100% !important; text-align: center !important; box-sizing: border-box; }

  /* Misc */
  .thesis-block { grid-template-columns: 1fr !important; }
  .accred-cards { grid-template-columns: 1fr !important; }
}
