.nsk-menu-section-heading { position: relative; }

/* the rule spans a share of the section, so it is sized in container units and taken out of flow
   to keep it out of the heading's own shrink-to-fit width */
.nsk-menu-section-heading::after {
  position: absolute;
  top: 100%;
  inset-inline-start: 0;
  width: 50cqw;
  margin-block: 0.3125rem 0;
}

.nsk-menu-block__col .nsk-menu-section-heading::after { width: 70cqw; }
.nsk-menu-duo .nsk-menu-section-heading::after { width: 100cqw; }

@media (max-width: 767px) {
  .nsk-menu-section-heading::after { width: 90cqw; }
}

/* a banner block straight under a section heading closes up, the way the old build's did */
.nsk-menu-section-heading + .nsk-menu-block { margin-block-start: 0; }
.nsk-menu-section--airy .nsk-menu-section-heading:has(+ .nsk-menu-block) { margin-block-end: 2.625rem; }

@media (max-width: 768px) {
  .nsk-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.625rem;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .nsk-topbar { padding-inline: 0; }
  .nsk-header { padding-block: 0; }
  .nsk-header__inner { padding-inline: 0; }
  .nsk-header__social { display: none; }
  .nsk-nav-slot { margin-inline-start: 0; }

  .nsk-hero-home { background-position: 0 0, 0 0; }

  .nsk-social { display: flex; }
  .nsk-social-band__links { margin-block: 1.25rem 3.125rem; }

  .nsk-reserve-band__copy {
    flex: 0 0 49.9%;
    margin-inline-start: 1.875rem;
  }

  .nsk-reserve-band__action {
    flex: 0 0 42.3%;
    margin-inline-start: 1.875rem;
    padding-block-start: 2.5rem;
  }

  .nsk-footer {
    padding-block: 6.25rem;
    padding-inline: 0;
  }

  .nsk-footer__logo {
    align-self: stretch;
    text-align: center;
  }

  .nsk-footer__logo img { width: 30%; }
  .nsk-footer__social { display: flex; }

  .nsk-menu-page { padding-inline: max(1rem, calc((100% - 54.25rem) / 2)); }
}
