/* Breakpoints follow content capacity, with a full mobile navigation panel. */
.breadcrumb {
  flex-wrap: wrap;
}

.editorial-intro>*,
.visit-planner-layout>*,
.footer-section,
.u-display-flex> :not(.u-flex-shrink-0) {
  min-width: 0;
}

main p,
main li,
.text-link,
.btn {
  overflow-wrap: anywhere;
}

.form-group :is(input, select, textarea) {
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 1199px) {
  body.page-inner {
    padding-top: 76px;
  }

  .navbar-container {
    min-height: 76px;
    flex-wrap: wrap;
    padding-block: .75rem;
    gap: 0 1rem;
  }

  .logo-img {
    width: 44px;
    height: 44px;
  }

  .js .hamburger {
    display: block;
  }

  .nav-menu {
    flex-basis: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .25rem 1rem;
    padding-block: 1rem;
  }

  .js .nav-menu {
    display: none;
  }

  .js .nav-menu.active {
    display: grid;
    max-height: calc(100vh - 76px);
    max-height: calc(100dvh - 76px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-bottom: max(1rem, env(safe-area-inset-bottom));
  }

  html:not(.js) .navbar {
    position: static;
  }

  html:not(.js) body.page-inner {
    padding-top: 0;
  }

  .nav-link {
    padding: .5rem .75rem;
    border-radius: var(--radius-sm);
  }

  .nav-link.active {
    background: var(--color-background-subtle);
  }

  .nav-link.active::after {
    display: none;
  }

  .nav-cta {
    grid-column: 1/-1;
    margin-top: .75rem;
  }

  .featured-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {

  .grid-3,
  .grid-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .footer-container {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .editorial-intro {
    gap: var(--space-8);
  }

  .journey-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stat-band .grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stat-band .grid>div:nth-child(3) {
    border-left: 0;
  }

  .stat-band .grid>div:nth-child(n+3) {
    border-top: 1px solid var(--color-border);
    padding-top: 1.5rem;
    margin-top: 1rem;
  }

  .about-mission-section,
  .about-mission,
  .about-vision,
  .welcome-section,
  .why-us-section,
  .testimonials-section {
    background-attachment: scroll !important;
  }

  .about-mission-section,
  .about-mission {
    min-height: auto;
  }

  .about-mission-copy {
    width: 100%;
  }

  .js .about-mission.is-parallax-active {
    background-image: linear-gradient(rgba(0, 0, 0, .45), rgba(0, 0, 0, .45)), url('../images/our-mission.png');
  }

  .js .about-mission.is-parallax-active::before {
    display: none;
  }
}

@media (max-width: 768px) {

  .grid-2,
  .editorial-intro {
    grid-template-columns: minmax(0, 1fr);
  }

  .hero.hero-home {
    padding: 116px 1.5rem 88px;
  }

  .hero-home .hero-content h1 {
    font-size: clamp(2rem, 6vw, 3rem);
    line-height: 1.18;
  }

  .hero-home .hero-content p {
    font-size: 1rem;
    margin-bottom: 1.5rem;
  }

  .hero-home .btn {
    min-height: 48px;
    font-size: .9rem;
    padding: .75rem 1.25rem;
  }

  .hero-about h1 {
    white-space: normal;
  }
}

@media (max-width: 600px) {

  .container,
  .navbar-container,
  .footer-container,
  .footer-bottom {
    width: calc(100% - 2rem);
  }

  .grid-2,
  .grid-3,
  .grid-4,
  .featured-grid,
  .timeline,
  .editorial-intro {
    grid-template-columns: minmax(0, 1fr);
  }

  .section-heading {
    flex-direction: column;
    align-items: start;
    gap: 1rem;
  }

  .journey-nav {
    gap: .75rem;
  }

  .journey-nav a {
    align-items: flex-start;
    gap: .6rem;
    padding: .85rem .65rem;
  }

  .journey-nav i {
    margin-top: .25rem;
  }

  .journey-nav strong {
    font-size: .85rem;
  }

  .journey-nav small {
    font-size: .75rem;
  }

  .featured-card {
    min-height: 340px;
  }

  .stat-band {
    padding: 1.5rem .5rem;
  }

  .stat-band .grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stat-value {
    font-size: 2.2rem;
  }

  .footer-container {
    column-gap: 1.5rem;
  }

  .footer-section:first-child,
  .footer-section:last-child {
    grid-column: 1/-1;
  }

  .timeline-item {
    padding-left: 1rem;
  }

  .timeline-content {
    padding: 1.25rem;
  }

  .testimonial {
    padding: 1.5rem;
  }

  .hero:not(.hero-home),
  .hero.hero-about {
    padding-inline: 1rem;
  }

  .hero.hero-home {
    padding-inline: 1rem;
  }

  .cta-panel,
  .u-padding-2rem,
  .p-2,
  .p-3 {
    padding: 1.25rem;
  }

  .u-display-flex.u-gap-2rem {
    gap: 1rem;
  }

  .scroll-to-top {
    right: max(1rem, env(safe-area-inset-right));
    bottom: max(1rem, env(safe-area-inset-bottom));
  }

  .faq-trigger {
    gap: 1rem;
  }

  .faq-trigger> :last-child {
    flex-shrink: 0;
  }
}

@media (max-width: 360px) {
  .journey-nav {
    grid-template-columns: minmax(0, 1fr);
  }

  .brand-name {
    font-size: 1.15rem;
  }

  .stat-value {
    font-size: 1.9rem;
  }

  .stat-band .grid>div {
    padding-inline: .5rem;
  }
}

@media (max-height: 600px) and (orientation: landscape) {
  .hero.hero-home {
    padding-top: 108px;
    padding-bottom: 80px;
  }

  .hero.hero-about {
    min-height: 420px;
  }
}

@media print {

  .navbar,
  .footer,
  .hero-controls,
  .scroll-to-top {
    display: none;
  }

  body {
    background: white;
    color: black;
    padding-top: 0;
  }

  .section {
    padding-block: 1rem;
  }
}