/* Prevent desktop navigation labels from wrapping into broken words. */
img {
  height: auto;
}

/* Sitewide text and layout safeguards found during the post-change audit. */
h1,
h2,
h3,
.eyebrow,
.event-date,
.fleet-type,
.tag,
.transport-launch {
  max-width: 100%;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

h1,
h2,
h3 {
  text-wrap: balance;
}

.wrap,
.grid > *,
.tactical-layout > *,
.leader > *,
.event > *,
.story-grid > *,
.service-grid > *,
.consulting-hero-layout > *,
.membership-layout > *,
.mailing-list-layout > *,
.contact-layout > *,
.transport-intro-grid > *,
.ride-request-layout > *,
.transport-account-grid > *,
.transport-standards > *,
.skydiving-layout > *,
.event-feature > * {
  min-width: 0;
}

input,
select,
textarea,
.btn {
  max-width: 100%;
}

.btn {
  line-height: 1.3;
  text-align: center;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
}

.contact-value,
a[href^="mailto:"],
a[href^="tel:"] {
  overflow-wrap: anywhere;
}

/* Normalize oversized landing-page headlines without flattening the hierarchy. */
.subhero h1,
.consulting-hero-copy h1,
.media-intro h1,
.muster-hero h1,
.contact-page h1,
.event-hub-hero h1,
.sponsor-hero h1,
.skydiving-hero h1,
.transport-hero-overlay h1,
.shop-hero h1,
.insights-hero h1,
.article-hero h1,
.waiver-heading h1 {
  max-width: 100%;
  font-size: clamp(2.75rem, 6vw, 5.5rem);
  line-height: 1.02;
  letter-spacing: 0.025em;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  text-wrap: balance;
}

.links a {
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
}

/* Keep the homepage masthead readable at every desktop width. */
.brand,
.brand small,
.hero-copy,
.hero h1,
.hero p {
  min-width: 0;
}

.brand small {
  max-width: 34rem;
  line-height: 1.35;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
}

.hero-copy {
  box-sizing: border-box;
  width: min(100%, 880px);
  max-width: 880px;
  padding-right: clamp(0px, 3vw, 32px);
}

.hero h1 {
  max-width: 100%;
  font-size: clamp(3.1rem, 5.7vw, 5.75rem);
  line-height: 0.98;
  letter-spacing: 0.02em;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  text-wrap: balance;
}

.hero p {
  overflow-wrap: normal;
  word-break: normal;
}

/* Move to the accessible menu before the full navigation becomes crowded. */
@media (min-width: 801px) and (max-width: 1360px) {
  .links {
    display: none;
  }

  .menu {
    display: block;
  }

  .links.open {
    display: flex;
    position: absolute;
    top: 76px;
    left: 0;
    right: 0;
    padding: 22px;
    flex-direction: column;
    background: #07090c;
    box-shadow: 0 24px 45px rgba(0, 0, 0, 0.5);
  }

  .links.open a {
    display: flex;
    width: 100%;
    min-height: 44px;
    align-items: center;
  }

  .subhero h1,
  .consulting-hero-copy h1,
  .media-intro h1,
  .muster-hero h1,
  .contact-page h1,
  .event-hub-hero h1,
  .sponsor-hero h1,
  .skydiving-hero h1,
  .transport-hero-overlay h1,
  .shop-hero h1,
  .insights-hero h1,
  .article-hero h1,
  .waiver-heading h1 {
    font-size: clamp(2.65rem, 5.5vw, 4.8rem);
  }
}

@media (max-width: 800px) {
  h1,
  .hero h1,
  .subhero h1,
  .consulting-hero-copy h1,
  .media-intro h1,
  .muster-hero h1,
  .contact-page h1,
  .event-hub-hero h1,
  .sponsor-hero h1,
  .skydiving-hero h1,
  .transport-hero-overlay h1,
  .shop-hero h1,
  .insights-hero h1,
  .article-hero h1,
  .waiver-heading h1 {
    font-size: clamp(2.1rem, 9.5vw, 3.15rem);
    line-height: 1.06;
    letter-spacing: 0.015em;
  }

  h2,
  .section h2,
  .mailing-list-copy h2,
  .youth-vision-copy h2,
  .membership-offer h2 {
    font-size: clamp(1.75rem, 7.8vw, 2.7rem);
    line-height: 1.1;
    letter-spacing: 0.02em;
  }

  .eyebrow,
  .event-date,
  .fleet-type,
  .tag,
  .transport-launch {
    line-height: 1.5;
    letter-spacing: 0.1em;
  }

  .nav {
    gap: 12px;
  }

  .brand {
    min-width: 0;
    font-size: 0.95rem;
    line-height: 1.2;
  }

  .brand small {
    font-size: 0.57rem;
    letter-spacing: 0.14em;
  }

  .menu {
    flex: 0 0 auto;
    min-width: 72px;
    padding: 8px 14px;
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: normal;
  }

  .hero-copy {
    padding: 56px 0 72px;
  }

  .hero h1 {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }

  .hero p {
    font-size: 1.05rem;
    line-height: 1.55;
  }

  .hero .actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .hero .btn {
    width: 100%;
  }

  .mobile-join {
    display: none;
  }
}

@media (max-width: 380px) {
  .brand {
    font-size: 0.88rem;
  }

  .brand small {
    font-size: 0.53rem;
    letter-spacing: 0.1em;
  }

  .menu {
    min-width: 68px;
    padding-inline: 12px;
  }

  h1,
  .hero h1,
  .subhero h1,
  .consulting-hero-copy h1,
  .media-intro h1,
  .muster-hero h1,
  .contact-page h1,
  .event-hub-hero h1,
  .sponsor-hero h1,
  .skydiving-hero h1,
  .transport-hero-overlay h1,
  .shop-hero h1,
  .insights-hero h1,
  .article-hero h1,
  .waiver-heading h1 {
    font-size: clamp(1.9rem, 9vw, 2.45rem);
  }
}

/* Search-led supporting copy must remain readable and tappable at narrow widths. */
.seo-pathways a,
.consulting-seo-intro a,
.foundation-seo-intro a,
.media-seo-intro a,
.events-seo-intro a,
.shop-seo-intro a,
.tactical-related a,
.article-body p a,
.muster-faq a,
.contact-page p a {
  color: var(--gold2);
  text-decoration: underline;
  text-underline-offset: .18em;
}

.seo-pathways,
.consulting-seo-intro,
.foundation-seo-intro,
.media-seo-intro,
.events-seo-intro,
.shop-seo-intro,
.tactical-related {
  padding-block: 36px;
}

.seo-pathways h2 { margin-top: 0; }
.article-hero h1,
.tactical-page-intro h1,
.youth-ready-hero h1,
.muster-hero h1 {
  overflow-wrap: break-word;
  text-wrap: balance;
}

@media (max-width: 800px) {
  .article-hero h1,
  .tactical-page-intro h1,
  .youth-ready-hero h1,
  .muster-hero h1 { line-height: 1.16; }
  .article-body { padding-block: 42px; }
  .seo-pathways,
  .consulting-seo-intro,
  .foundation-seo-intro,
  .media-seo-intro,
  .events-seo-intro,
  .shop-seo-intro,
  .tactical-related { padding-block: 26px; }
}
