/* The public header has one control row and one audience row at every width. */
.marketing-page .header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  column-gap: clamp(.75rem, 1.5vw, 1.375rem);
  row-gap: .625rem;
  align-items: center;
}
.marketing-page .header > .brand { grid-column: 1; grid-row: 1; min-inline-size: 0; }
.marketing-page .header > .desktop-nav { grid-column: 2; grid-row: 1; justify-self: end; margin: 0; white-space: nowrap; }
.marketing-page .header > .nav-cta { grid-column: 3; grid-row: 1; margin: 0; min-block-size: 2.75rem; }
.marketing-page .header > .theme-toggle { grid-column: 4; grid-row: 1; margin: 0; }
.marketing-page .header > .menu-toggle { display: none; }
.marketing-page .header .nav-contact-icon { display: none; }
.marketing-page .header > .audience-nav { grid-column: 1 / -1; grid-row: 2; min-inline-size: 0; }
.marketing-page .audience-nav a { min-inline-size: 0; }
.marketing-page .header :is(.theme-toggle, .menu-toggle, .nav-cta):focus-visible { outline: 2px solid var(--violet-text); outline-offset: 4px; }
html.has-mobile-menu { overflow: hidden; }
.marketing-page .mobile-menu {
  inline-size: min(440px, calc(100% - 2rem));
  max-block-size: calc(100vh - 2rem);
  max-block-size: calc(100dvh - 2rem);
  padding: 0;
  overflow: hidden;
}
.marketing-page .mobile-menu[open] { display: grid; grid-template-rows: auto minmax(0, 1fr); }
.mobile-menu-bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .5rem .75rem .5rem 1.5rem; border-block-end: 1px solid var(--line); }
.mobile-menu-bar > span { color: var(--muted); font-size: .875rem; font-weight: 500; }
.marketing-page .mobile-menu .menu-close { position: static; flex-shrink: 0; margin: 0; border-radius: 50%; }
.marketing-page .mobile-menu .menu-close:hover { background: var(--surface-soft); }
.mobile-menu-content { min-block-size: 0; overflow-y: auto; overscroll-behavior: contain; padding: .75rem 1rem 1.5rem; }
.marketing-page .mobile-menu-content p { margin-inline: .75rem; }
@media (max-width: 1000px) {
  .marketing-page .header { grid-template-columns: minmax(0, 1fr) auto auto auto; column-gap: .75rem; }
  .marketing-page .header > .desktop-nav { display: none; }
  .marketing-page .header > .nav-cta { grid-column: 2; }
  .marketing-page .header > .theme-toggle { grid-column: 3; }
  .marketing-page .header > .menu-toggle { display: grid; grid-column: 4; grid-row: 1; place-content: center; gap: .375rem; padding: .75rem; border: 1px solid var(--line-strong); border-radius: 50%; background: var(--paper); }
  .marketing-page .menu-toggle span { inline-size: 1.125rem; margin: 0; }
  .marketing-page .header > .audience-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem; }
  .marketing-page .audience-nav a { min-block-size: 3.5rem; padding-inline: .5rem; text-align: center; }
}
@media (max-width: 600px) {
  .marketing-page .header { column-gap: .375rem; }
  .marketing-page .audience-nav a { font-size: .8125rem; gap: .375rem; }
  .marketing-page .audience-nav a > span { min-inline-size: 0; }
  .marketing-page .audience-detail { display: block; font-size: .6875rem; }
}
@media (max-width: 420px) {
  .marketing-page .header > .nav-cta { display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; padding: .625rem; border-radius: 50%; }
  .marketing-page .header > .nav-cta :is(.nav-label, .nav-short) { display: none; }
  .marketing-page .header > .nav-cta > svg { display: none; }
  .marketing-page .header > .nav-cta > .nav-contact-icon { display: block; }
  .booking-page .booking-header { display: grid; grid-template-columns: minmax(0, 1fr) 3rem; gap: .25rem 1rem; }
  .booking-header-actions { display: contents; }
  .booking-header-actions .theme-toggle { grid-column: 2; grid-row: 1; }
  .booking-header-actions .booking-back { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; inline-size: auto; }
  .booking-header-actions .booking-back span { position: static; inline-size: auto; block-size: auto; overflow: visible; clip-path: none; }
}
