/* ==========================================================================
   Responsive: breakpoints follow the reference (Bootstrap 1199/991/767/575)
   ========================================================================== */

@media (max-width: 1399px) {
  .notebook { left: -150px; width: 380px; }
}

@media (max-width: 1199px) {
  :root { --container: 930px; --text-6xl: 3.5rem; --text-5xl: 2.5rem; }
  .nav__link { padding-inline: 14px; }
  .hero__media { width: 42%; }
  .notebook { left: -150px; bottom: 44px; width: 320px; padding-left: 58px; }
  .notebook__line { font-size: 19px; }
  .hero__arrow { display: none; }
  .promo__media { inset: 0 0 0 52%; }
  .promo__high, .promo__title { font-size: 1.75rem; }
  .quote-block__grid { grid-template-columns: 1fr 460px; }
  .quote-block__content { padding-left: 0; }
  .stamps__item--1 { width: 180px; height: 230px; }
  .stamps__item--2 { left: 170px; width: 240px; height: 240px; }
  .promo__content { max-width: 250px; }
  .program-card__body { padding: 26px 22px 28px; }

}

/* ---------- Tablet: navigation collapses (reference toggler at 991) ---------- */
@media (max-width: 991px) {
  :root { --container: 690px; --section-y: 90px; --text-4xl: 2.125rem; --text-5xl: 2.25rem; --text-3xl: 1.875rem; }

  .topbar__contacts { gap: 28px; }

  .brand img { height: 60px; }
  .nav-toggle { display: inline-flex; }
  .header__cta { display: none; }
  .nav {
    position: absolute;
    top: 100%; left: 0; right: 0;
    display: block;
    max-height: calc(100dvh - var(--header-h));
    overflow-y: auto;
    background: var(--color-white);
    box-shadow: 0 16px 30px rgba(10, 31, 61, 0.1);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: opacity 0.3s var(--ease-out), transform 0.35s var(--ease-out), visibility 0.35s;
  }
  .nav.is-open { opacity: 1; visibility: visible; transform: none; }
  .nav__list { display: block; padding: 10px var(--gutter) 6px; }
  .nav__item { border-bottom: 1px solid var(--color-border); }
  .nav__link { padding: 15px 4px; justify-content: space-between; font-size: var(--text-base); }
  .nav__link::before { display: none; }
  .nav__sub-toggle { width: 100%; }
  .nav__link[aria-current="page"],
  .nav__item.is-current > .nav__link { color: var(--color-secondary-600); }
  .submenu {
    position: static;
    min-width: 0;
    padding: 0 0 10px;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
    display: none;
  }
  .nav__item:hover > .submenu,
  .nav__item:focus-within > .submenu { display: none; }
  .nav__item.is-open > .submenu { display: block; }
  .submenu a { padding: 9px 16px; font-size: var(--text-sm); }
  .nav__mobile-cta { display: block; padding: 18px var(--gutter) 24px; }
  .nav__mobile-cta .btn { width: 100%; }

  /* hero stacks: copy, then photo with notebook */
  .hero__slide, .hero__grid { min-height: 0; }
  .hero__grid { grid-template-columns: 1fr; }
  .hero__content { padding: 70px 0 40px; max-width: none; }
  .hero__media { position: relative; width: 100%; height: 420px; }
  .hero__media::after { background: linear-gradient(180deg, var(--color-surface-cool) 0%, rgba(237, 241, 247, 0) 22%); }
  .notebook { left: var(--gutter); bottom: 30px; width: 340px; }

  .cat-grid { grid-template-columns: 1fr 1fr; }
  .cat-col--center { grid-column: 1 / -1; order: -1; }
  .cat-tile--hero { height: 420px; }

  .card-grid { grid-template-columns: repeat(4, 1fr); gap: 40px 20px; }
  .doodle { display: none; }
  .skill-card__title, .batch-card__title { font-size: var(--text-base); }
  .batch-card__time { font-size: var(--text-base); }
  .batch-card__day { font-size: 22px; }

  .deal__grid { grid-template-columns: 1fr; padding-block: 70px; gap: 60px; }
  .stamps { margin-inline: auto; }

  .promo-grid { grid-template-columns: 1fr; }
  .promo__content { max-width: 320px; }

  .quote-block__grid { grid-template-columns: 1fr; gap: 50px; }
  .quote-block__media img { height: 380px; }

  .post-grid { grid-template-columns: 1fr 1fr; }
  .post-grid > :last-child { display: none; }

  .inline-form { grid-template-columns: 1fr 1fr; }
  .inline-form .btn { margin-top: 0; grid-column: 1 / -1; justify-self: center; }

  .footer__grid { grid-template-columns: 1fr 1fr; row-gap: 50px; }

  .split,
  .detail-intro,
  .navy-band__grid,
  .steps-layout,
  .contact-grid { grid-template-columns: 1fr; gap: 50px; }
  .split--media-left .split__media { order: 0; }
  .steps-layout__intro { position: static; }

  .people-grid,
  .program-grid { grid-template-columns: 1fr 1fr; gap: 30px; }
  .info-tiles { grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .info-tile { padding: 34px 14px; }
  .info-tile__icon { width: 64px; height: 64px; }
  .issue-list { grid-template-columns: 1fr 1fr; }
  .related-grid { grid-template-columns: 1fr; }
}

@media (min-width: 992px) {
  .nav__mobile-cta { display: none; }
}

@media (max-width: 767px) {
  :root { --container: 100%; --gutter: 20px; --text-6xl: 2.75rem; --section-y: 80px; }

  .topbar__inner { flex-direction: column; justify-content: center; gap: 4px; padding-block: 8px; }
  .topbar__contacts { gap: 18px; font-size: 13px; }
  .topbar__social span { display: none; }

  .hero__title { letter-spacing: -1.5px; }
  .hero__text { font-size: var(--text-md); }
  .hero-tabs__btn { padding: 10px 16px; }

  .card-grid { grid-template-columns: 1fr 1fr; gap: 40px 20px; }
  .program-grid,
  .people-grid,
  .points { grid-template-columns: 1fr; }
  .issue-list { grid-template-columns: 1fr; }
  .info-tiles { grid-template-columns: 1fr; }
  .contact-form { grid-template-columns: 1fr; }
  .related-card { grid-template-columns: 150px 1fr; }
  .batch-table th:nth-child(3), .batch-table td:nth-child(3) { display: none; }
  .table-wrap .batch-table { min-width: 0; }
  .batch-table thead { display: none; }
  .batch-table tr { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; padding: 14px 0; border-bottom: 1px solid var(--color-border); }
  .batch-table tr:last-child { border-bottom: 0; }
  .batch-table td { padding: 0; border: 0; }
  .batch-table td:nth-child(1) { font-weight: 800; color: var(--color-primary-900); }
  .batch-table td:nth-child(5) { grid-row: 1; grid-column: 2; font-size: 13px; color: var(--color-secondary-600); font-weight: 800; }
}

/* ---------- Mobile ---------- */
@media (max-width: 575px) {
  :root { --text-4xl: 1.75rem; --text-5xl: 1.875rem; --text-3xl: 1.625rem; --text-6xl: 2.375rem; --text-lg: 1.0625rem; --section-y: 70px; }

  .topbar__contacts { flex-direction: column; align-items: center; gap: 2px; }

  .brand img { height: 54px; }
  :root { --header-h: 72px; }

  .hero__content { padding-top: 44px; }
  .hero-tabs { margin-bottom: 26px; }
  .hero__cta { margin-top: 32px; }
  .hero__media { height: 360px; }
  .hero__media { margin-top: 30px; }
  .notebook { top: -34px; bottom: auto; width: calc(100% - 40px); max-width: 320px; padding: 16px 16px 18px 50px; }
  .notebook::before { left: 38px; }
  .notebook::after { left: 10px; }
  .notebook__line { font-size: 18px; }

  .btn { padding: 16px 32px; font-size: var(--text-sm); }

  .section-head { margin-bottom: 40px; }
  .section-head__sub { font-size: var(--text-base); }

  .cat-grid { grid-template-columns: 1fr; }
  .cat-tile--hero { height: 340px; }
  .cat-tile--tall { height: 280px; }
  .cat-tile__label { font-size: var(--text-xs); padding: 9px 22px; bottom: 16px; }

  .card-grid { grid-template-columns: 1fr 1fr; gap: 32px 14px; }
  .skill-card__tag { font-size: var(--text-xs); }
  .skill-card__media .icon { width: 56px; height: 56px; padding: 15px; }
  .skill-card__title { font-size: var(--text-base); }

  .stamps { width: 500px; max-width: none; height: 380px; transform: scale(0.66); transform-origin: left top; margin: 0 0 -110px calc(50% - 165px); }

  .promo { padding: 30px 22px 34px; min-height: 300px; }
  .promo__media { inset: 0 0 0 50%; }
  .promo__media::before { background: linear-gradient(90deg, var(--promo-bg) 0%, transparent 45%); }
  .promo__high, .promo__title { font-size: 1.5rem; }
  .promo__content { max-width: 190px; }
  .promo__text { font-size: var(--text-base); }

  .quote-slide blockquote { font-size: var(--text-base); line-height: 28px; }
  .quote-block__mark { margin-right: 0; width: 44px; height: 44px; }
  .quote-block__media img { height: 260px; }

  .post-grid { grid-template-columns: 1fr; }
  .post-grid > :last-child { display: block; }
  .post__title { font-size: var(--text-lg); }

  .cta-contact { padding: 70px 0 80px; }
  .inline-form { grid-template-columns: 1fr; }
  .inline-form .btn { justify-self: stretch; }

  .footer { padding-top: 80px; }
  .footer__grid { grid-template-columns: 1fr; }
  .footer__paper { height: 180px; margin-top: 60px; }

  .page-banner { height: 250px; }
  .page-banner__hand { font-size: 1.2rem; }
  .contact-card, .office-card { padding: 32px 22px; }
  .table-card { padding: 26px 20px 12px; }

  .related-card { grid-template-columns: 1fr; }
  .related-card img { min-height: 0; aspect-ratio: 16 / 9; }

  .wa-float { right: 16px; bottom: 16px; width: 58px; padding: 0; justify-content: center; }
  .wa-float span { display: none; }

  .program-card__meta { grid-template-columns: 1fr 1fr 1fr; }
  .paper-page { padding: 20px 16px 22px 54px; }
  .paper-page::before { left: 40px; }
  .paper-page p { font-size: 17px; }
}
