/* ============================================================================
   RESPONSIVE — tablet, and mobile
   Load this AFTER style.css.
   ============================================================================ */

/* ------------------------------------------------- LAPTOP AND SMALLER */
@media (max-width: 1080px) {
  .footer__grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .hero__grid { gap: 2.2rem; }
  /* Keep all ten menu items on one row for as long as possible */
  .nav__link { padding: 0 .62rem; font-size: .845rem; }
  .nav__search input { width: 112px; }
  :root { --header-h: 58px; }
}

/* ----------------------------------------------------------- TABLET */
@media (max-width: 900px) {
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .stats  { grid-template-columns: repeat(2, 1fr); }
  .creds__list { grid-template-columns: repeat(2, 1fr); }
  .creds__item:nth-child(3) { border-left: 0; }
  .creds__item:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.09); }
  .gal-strip { grid-template-columns: repeat(2, 1fr); }

  .hero__grid { grid-template-columns: 1fr; gap: 2.2rem; }
  .hero__figure { max-width: 520px; }

  .split, .split--narrow-left { grid-template-columns: 1fr; gap: 2.2rem; }

  /* ---- Mobile navigation ---- */
  .nav .wrap { flex-wrap: wrap; padding-block: .7rem; min-height: 0; }
  .nav__toggle { display: inline-flex; }

  .nav__list {
    display: none;
    flex-direction: column;
    width: 100%;
    order: 3;
    padding: .5rem 0 .7rem;
    border-top: 1px solid rgba(255,255,255,.14);
    margin-top: .7rem;
  }
  .nav--open .nav__list { display: flex; }

  .nav__link { height: auto; padding: .82rem .4rem; border-bottom: 1px solid rgba(255,255,255,.08); justify-content: space-between; }
  .nav__link[aria-current="page"] { border-bottom-color: var(--gold-500); }
  .nav__caret { transform: rotate(45deg); }

  /* Dropdowns become plain indented lists — no hover on touch screens */
  .nav__drop {
    position: static; opacity: 1; visibility: visible; transform: none;
    background: transparent; border: 0; box-shadow: none;
    padding: .1rem 0 .5rem 1.1rem;
    display: none;
  }
  .nav__item--open > .nav__drop { display: block; }
  .nav__item--open > .nav__link .nav__caret { transform: rotate(-135deg) translate(-2px,-2px); }
  .nav__drop a { color: #c3d0e2; padding: .55rem .4rem; }
  .nav__drop a:hover { background: rgba(255,255,255,.08); color: #fff; }

  .nav__search { order: 2; margin-left: auto; }
  .nav__search input { width: 120px; }

  .masthead .wrap { padding-block: .85rem; }
  .masthead__logo { width: 52px; height: 52px; }
  .masthead__aside { display: none; }
}

/* ----------------------------------------------------------- MOBILE */
@media (max-width: 640px) {
  body { font-size: 16px; }
  .wrap { padding-inline: 18px; }
  .section { padding-block: 2.6rem; }

  .grid-4, .grid-3, .grid-2 { grid-template-columns: 1fr; }
  .stats { grid-template-columns: 1fr 1fr; }
  .stat { padding: 1.25rem .8rem; }
  .stat__value { font-size: 2rem; }

  .creds__list { grid-template-columns: 1fr; }
  .creds__item { border-left: 0; border-top: 1px solid rgba(255,255,255,.09); }
  .creds__item:first-child { border-top: 0; }

  .gal-strip { grid-template-columns: 1fr 1fr; gap: 10px; }

  .topbar { font-size: .76rem; }
  .topbar .wrap { justify-content: center; gap: .8rem; padding-block: .5rem; }
  .topbar__list { justify-content: center; gap: .9rem; }
  .topbar__hide-sm { display: none; }

  .masthead__name { font-size: 1.06rem; }
  .masthead__sub { font-size: .74rem; }

  .hero__cta { flex-direction: column; align-items: stretch; }
  .hero__cta .btn { width: 100%; }
  .hero__lead { font-size: 1rem; }

  .ticker { flex-direction: column; align-items: stretch; }
  .ticker__tag { justify-content: center; padding: .5rem; }

  .notice-item { gap: .8rem; }
  .notice-date { width: 52px; }

  .footer__grid { grid-template-columns: 1fr; gap: 1.8rem; }
  .footer__bar { flex-direction: column; text-align: center; }

  .btn { width: auto; }
  .section-cta .btn { width: 100%; }

  .dl-row, .dl--wide .dl-row { grid-template-columns: 1fr; gap: .15rem; }
  .dl dt { font-size: .74rem; text-transform: uppercase; letter-spacing: .07em; }

  .dl-card { grid-template-columns: auto 1fr; gap: .8rem; }
  .dl-card__action { grid-column: 1 / -1; }
  .dl-card__action .btn { width: 100%; }

  .filters { gap: .4rem; }
  .filter-btn { font-size: .78rem; padding: .38rem .8rem; }

  .table { font-size: .84rem; min-width: 460px; }
  .table th, .table td { padding: .6rem .65rem; }

  .lightbox__close { top: 10px; right: 10px; }
}

/* Very small phones */
@media (max-width: 380px) {
  .stats { grid-template-columns: 1fr; }
  .gal-strip { grid-template-columns: 1fr; }
}

/* ------------------------------------------------------------- PRINT */
@media print {
  .topbar, .nav, .ticker, .hero__cta, .footer__main, .section-cta { display: none !important; }
  body { background: #fff; font-size: 11pt; }
  .section { padding-block: 1rem; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; color: #555; }
}
