/* ==========================================================================
   Responsive layout — breakpoints:
   ≥1440 large · 1024–1439 desktop · 768–1023 tablet · 375–767 mobile · 320 small
   ========================================================================== */

@media (min-width: 1440px) {
  :root { --container: 1320px; }
  body { font-size: 1.05rem; }
}

/* ---------- Below desktop: collapse navigation ---------- */
@media (max-width: 1100px) {
  .nav-toggle { display: inline-flex; }
  .header-actions .btn--header { display: none; }

  .primary-nav {
    position: fixed; z-index: 99; left: 0; right: 0; top: var(--header-h); bottom: 0;
    background: var(--ivory); border-top: 1px solid var(--line);
    padding: var(--space-5) var(--gutter) var(--space-7);
    overflow-y: auto; overscroll-behavior: contain;
    visibility: hidden; opacity: 0; transform: translateY(-8px);
    transition: opacity .25s var(--ease), transform .25s var(--ease), visibility 0s linear .25s;
  }
  .primary-nav.is-open { visibility: visible; opacity: 1; transform: none; transition: opacity .25s var(--ease), transform .25s var(--ease), visibility 0s; }
  .primary-nav ul { flex-direction: column; align-items: stretch; gap: 0; }
  .primary-nav li { border-bottom: 1px solid var(--line); }
  .primary-nav li > a { display: block; padding: 1rem 0; font-family: var(--font-serif); font-size: 1.6rem; font-weight: 500; }
  .primary-nav li > a::after { display: none; }
  .primary-nav li > a[aria-current="page"] { padding-left: 1rem; border-left: 2px solid var(--maroon); }
  .nav-cta-mobile { display: grid; gap: var(--space-3); margin-top: var(--space-6); }
}

@media (max-width: 1023px) {
  .section { padding-block: var(--space-8); }
  .course-grid { grid-template-columns: repeat(2, 1fr); }
  .course-grid--catalogue { grid-template-columns: repeat(2, 1fr); }
  .feature-grid { grid-template-columns: repeat(2, 1fr); }
  .feature:nth-child(2) { border-right: 0; }
  .feature:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .discipline-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .founders { grid-template-columns: 1fr; }
  .leader { grid-template-columns: 260px 1fr; }
  .contact-layout { grid-template-columns: 1fr; }
  .split, .split--wide-text { grid-template-columns: 1fr; }
  .split .figure-frame { max-width: 560px; }
  .figure-badge { right: 12px; }
}

@media (max-width: 767px) {
  :root { --header-h: 72px; }
  .brand img { height: 46px; }
  .section { padding-block: var(--space-7); }
  .section-head { margin-bottom: var(--space-6); }

  .hero__viewport { height: clamp(540px, 88svh, 700px); }
  .hero__media::after { background: linear-gradient(0deg, rgba(30, 7, 10, .92) 0%, rgba(30, 7, 10, .65) 55%, rgba(30, 7, 10, .35) 100%); }
  .hero__content { align-items: flex-end; padding-bottom: 6.5rem; }
  .hero__text { padding-block: 0; }
  .hero__text .btn-row .btn { flex: 1 1 100%; }
  .hero__counter { display: none; }

  .course-grid { grid-template-columns: 1fr 1fr; gap: var(--space-3); }
  .course-tile__body { padding: var(--space-4); }
  .course-tile__name { font-size: 1.3rem; }
  .course-grid--catalogue { grid-template-columns: 1fr; }

  .catalogue-toolbar { flex-direction: column; flex-wrap: nowrap; align-items: stretch; }
  .catalogue-toolbar > * { min-width: 0; }
  .search-field { flex-basis: auto; }
  .filter-chips { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--gutter) * -1); padding: .25rem var(--gutter); scrollbar-width: none; }
  .filter-chips::-webkit-scrollbar { display: none; }
  .chip { flex: none; }

  .facts { grid-template-columns: 1fr 1fr; gap: var(--space-4); }
  .feature-grid { grid-template-columns: 1fr; }
  .feature { border-right: 0; border-bottom: 1px solid var(--line); }
  .feature:last-child { border-bottom: 0; }
  .discipline-grid { grid-template-columns: 1fr; }
  .recognition__card { grid-template-columns: 1fr; text-align: left; }
  .seal { width: 136px; height: 136px; }
  .seal strong { font-size: 1.8rem; }
  .leader { grid-template-columns: 1fr; }
  .leader__photo { max-width: 320px; }

  .gallery-preview { grid-template-columns: 1fr 1fr; grid-template-rows: none; }
  .gallery-preview .gallery-item:first-child { grid-column: span 2; grid-row: auto; }
  .gallery-preview .gallery-item img { aspect-ratio: 4 / 3; }

  .form-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; gap: var(--space-6); }

  /* Modal becomes a near-full-screen sheet */
  .modal { padding: 0; align-items: flex-end; }
  .modal__dialog { max-width: none; max-height: 94vh; max-height: 94dvh; border-radius: 12px 12px 0 0; }
  .modal__header, .modal__body, .modal__footer { padding-inline: var(--space-4); }
  .modal__footer .btn { flex: 1 1 100%; }

  /* Weekly grid becomes a vertical list */
  .week { grid-template-columns: 1fr; }
  .week__day { display: flex; justify-content: space-between; align-items: center; text-align: left; border-right: 0; border-bottom: 1px solid var(--line); padding: .65rem 1rem; }
  .week__day:last-child { border-bottom: 0; }
  .week__label { margin: 0; }

  .lightbox__prev, .lightbox__next { top: auto; bottom: 1.25rem; transform: none; }
  .lightbox__prev { left: calc(50% - 64px); }
  .lightbox__next { right: calc(50% - 64px); }
  .lightbox__figure img { max-height: 68vh; }

  .float-whatsapp { right: 14px; bottom: 14px; width: 52px; height: 52px; }
  .float-whatsapp__tip { display: none; }
  .audio-toggle { left: 14px; bottom: 14px; }
  .audio-toggle__label { display: none; }
  .audio-toggle { padding-right: .6rem; }
}

@media (max-width: 374px) {
  .btn { padding-inline: 1.1rem; letter-spacing: .04em; }
  .course-grid { grid-template-columns: 1fr; }
  .course-card__actions { grid-template-columns: 1fr; }
  .facts { grid-template-columns: 1fr; }
  .hero__dot { width: 26px; }
  .hero__dot::before { left: 4px; right: 4px; }
  .hero__arrow, .hero__pause { width: 42px; height: 42px; }
  .hero__arrows { gap: .35rem; }
  .brand img { height: 40px; }
}
