/* Phone layout and touch controls shared by all pages. */
.site-header .wordmark {
  display: block;
  font-size: 14px;
  line-height: 1.3;
  letter-spacing: 1.2px;
}
.mobile-socials { display: none; }
@media (max-width: 1050px) {
  .header-inner > .nav {
    max-height: calc(100svh - 78px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}
@media (max-width: 800px) {
  .wrap > *, .split > *, .contact-grid > *, .footer-grid > *,
  .event-copy, .next-row > *, .facts > *, .social-card > * {
    min-width: 0;
  }
  h1, h2, h3, .footer-links a { overflow-wrap: anywhere; }
  .btn, .menu, .copy-button, dialog button { min-height: 44px; }
  .btn { max-width: 100%; }
  .btn > span { flex-shrink: 0; }
  .textlink { white-space: normal; min-height: 44px; padding: 10px 0; }
  .footer-links > a, .footer-bottom > a, #to-top {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
  input, select, textarea { font-size: 16px; min-height: 48px; }
  summary { min-height: 44px; display: flex; align-items: center; }
  summary::after { top: 3px; }
  .hero {
    height: auto;
    max-height: none;
    min-height: 650px;
    padding-bottom: 130px;
  }
  .hero p { font-size: 16px; }
  .sticky-book.active {
    padding-bottom: max(12px, env(safe-area-inset-bottom));
  }
  .sticky-book span { min-width: 0; }
  .sticky-book .btn { flex-shrink: 0; }
  .has-sticky .site-footer {
    padding-bottom: calc(110px + env(safe-area-inset-bottom));
  }
  dialog { max-height: 90svh; }
  dialog img { height: min(68svh, 760px); }
}
@media (max-width: 560px) {
  .header-inner {
    height: auto;
    min-height: 78px;
    padding: 12px 0;
    flex-wrap: wrap;
    gap: 12px;
  }
  .site-header .brand { gap: 11px; }
  .site-header .brand img { width: 49px; height: 49px; }
  .site-header .wordmark { display: block; font-size: 14px; }
  .site-header .wordmark small { display: none; }
  .header-socials { display: none; }
  .header-inner > .nav { top: 100%; }
  .nav .mobile-socials {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
  }
  .mobile-socials .social-link { min-height: 44px; }
  .footer-grid, .message-builder { grid-template-columns: minmax(0, 1fr); }
  .footer-grid > div:first-child { grid-column: auto; }
  .message-builder .full { grid-column: auto; }
  .event-art { height: auto; }
  .event-art img { height: auto; max-height: 440px; }
  .hero-caption { align-items: flex-end; }
  .hero-caption span { max-width: 58%; }
  .hero-caption a { max-width: 36%; }
}
@media (max-width: 360px) {
  .hero h1 { font-size: 52px; }
  .hero .eyebrow { letter-spacing: 1px; }
  .event-copy { padding: 28px 20px; }
  .event-line { gap: 14px; }
  .sticky-book span { font-size: 12px; }
  .sticky-book .btn { padding: 10px 12px; }
}
