/* PATCH 166. Relative type sizes preserve browser text enlargement. */
html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

@media (max-width: 850px), (pointer: coarse) {
  body { font-size: 1rem; line-height: 1.5; }
  main, .admin-workspace, .admin-content { min-width: 0; }
  h1, h2, h3, h4, p, label, legend { overflow-wrap: anywhere; }
  body:is(.client-body, .admin-body, .login-body) h1 { font-size: 1.75rem !important; line-height: 1.2 !important; }
  body:is(.client-body, .admin-body, .login-body) h2 { font-size: 1.375rem !important; line-height: 1.3 !important; }
  body:is(.client-body, .admin-body, .login-body) h3 { font-size: 1.125rem !important; line-height: 1.35 !important; }
  body:is(.client-body, .admin-body, .login-body) h4 { font-size: 1rem !important; line-height: 1.4 !important; }
  body:is(.client-body, .admin-body, .login-body) p { font-size: 1rem !important; line-height: 1.5 !important; }
  body:is(.client-body, .admin-body, .login-body) small { font-size: .875rem !important; line-height: 1.5 !important; }
  body:is(.client-body, .admin-body, .login-body) label, body:is(.client-body, .admin-body, .login-body) legend { font-size: .875rem !important; line-height: 1.5 !important; }
  body.client-body :is(.page-hero, .event-hero, .content-card, .event-card, .checkout-payment-info, .gv-checkout) p,
  body.login-body .login-card p {
    font-size: 1rem !important;
    line-height: 1.5 !important;
  }
  body.client-body :is(.checkout-form, .stack-form, .account-login-card, .filter-panel) label,
  body.client-body .checkbox-label.checkout-consent {
    font-size: .875rem !important;
    line-height: 1.5 !important;
  }
  body:is(.client-body, .admin-body, .login-body) :is(li, dt, dd, summary) {
    font-size: 1rem !important;
    line-height: 1.5 !important;
    overflow-wrap: anywhere;
  }
  body.client-body :is(.gv-nominals span, .gv-kicker, .gv-ticket-meta,
    .gv-badge, .gv-faq summary, .gc-meta, .inquiry-card small) {
    font-size: .875rem !important;
    line-height: 1.5 !important;
  }

  body:is(.client-body, .admin-body, .login-body) input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
  body:is(.client-body, .admin-body, .login-body) select, body:is(.client-body, .admin-body, .login-body) textarea {
    min-width: 0;
    max-width: 100%;
    min-height: 2.75rem !important;
    height: auto !important;
    padding: .625rem .75rem !important;
    font-size: 1rem !important;
    line-height: 1.5 !important;
  }
  body:is(.client-body, .admin-body, .login-body) button, body:is(.client-body, .admin-body, .login-body) .button {
    min-height: 2.75rem !important;
    height: auto !important;
    font-size: .9375rem !important;
    line-height: 1.4 !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }
  body:is(.client-body, .admin-body, .login-body) .button-large { font-size: 1rem !important; }
  body:is(.client-body, .admin-body, .login-body) .button:not(.button-outline):not(.button-secondary):not(.button-danger):not(.button-light) {
    background: #ff6900;
    color: #151515;
  }
  body:is(.client-body, .admin-body, .login-body) .button-outline { color: #983800; }
  body .muted, body .field-hint, body .login-hint { color: #625c57; }
  body :is(.breadcrumbs, .eyebrow, .event-facts small, .event-card-meta,
    .event-card-league, .event-card-date, .event-card-city, .event-league,
    .event-date, .event-meta, .ticket-info small, .ticket-info p,
    .catalog-result > a, .account-auth-links a, .purchase-step span,
    .checkout-payment-option p, .gv-checkout p, .tgcp-description,
    .tgcp-note, .footer-bottom, .footer-contacts-column small) {
    font-size: .875rem !important;
    line-height: 1.5 !important;
  }
  .ticket-info h3 { font-size: 1rem !important; }
  .ticket-price, .event-card-price strong { font-size: 1.125rem !important; }
  .event-hero .event-format-media-caption > span { font-size: .875rem !important; }
  .event-hero .event-format-media-caption h2 { font-size: 1.125rem !important; }
  .event-hero .event-format-media-caption p {
    display: block;
    overflow: visible;
    -webkit-line-clamp: unset;
    font-size: .875rem !important;
  }
  .event-facts strong, .event-facts a { font-size: 1rem !important; line-height: 1.5; }
  .event-facts > div, .event-card, .ticket-info { min-width: 0; }
  .event-facts > div { overflow-wrap: anywhere; }
  .event-card h3 { white-space: normal !important; overflow: visible !important; }
  .ticket-row form { flex-wrap: wrap; gap: .5rem; }
  .ticket-row select { width: auto !important; }
  .event-pagination, .event-pagination__controls, .event-pagination__numbers { flex-wrap: wrap; }
  .event-pagination__number, .event-pagination__arrow, .event-pagination__ellipsis {
    font-size: .875rem !important;
    line-height: 1.4 !important;
    min-width: 2.75rem;
    min-height: 2.75rem;
    height: auto;
    white-space: normal;
  }
  .event-pagination__summary { font-size: .875rem !important; }
  .event-pagination__number.is-current { background: #ff6900; color: #151515; }
  .event-pagination__numbers { gap: .375rem; }
  .event-pagination__controls, .event-pagination__summary { max-width: 100%; min-width: 0; }

  .site-header .header-main {
    min-height: 4.5rem;
    height: auto !important;
    padding-top: .625rem;
    padding-bottom: .625rem;
    flex-wrap: wrap;
    gap: .625rem;
  }
  body .brand { min-width: 0; }
  .site-header .brand { max-width: calc(100% - 3.5rem); }
  body .brand strong { font-size: 1.125rem !important; overflow-wrap: anywhere; }
  body .brand small { font-size: .75rem !important; letter-spacing: .08em; }
  .main-nav a, .sports-nav-name, .sports-nav-dropdown-name { font-size: .9375rem !important; }
  .main-nav a { min-height: 2.75rem; display: flex; align-items: center; white-space: normal; }
  .sports-nav-more-copy strong { font-size: .875rem !important; }
  .sports-nav-link { min-height: 4.5rem; height: auto; }
  .sports-nav-name { white-space: normal; overflow-wrap: anywhere; }
  .site-footer a, .site-footer p { overflow-wrap: anywhere; }
  .mobile-bottom-nav { height: auto !important; min-height: 4.5rem; align-items: stretch; }
  .mobile-bottom-nav > a {
    min-width: 0;
    min-height: 3.75rem;
    padding: .375rem .125rem !important;
    gap: .25rem;
    font-size: .75rem !important;
    line-height: 1.25;
  }
  .mobile-bottom-nav > a span { white-space: normal; overflow-wrap: anywhere; }
  .mobile-bottom-nav > a.is-active { color: #983800; }
  .mobile-bottom-nav svg { width: 1.375rem; height: 1.375rem; flex-shrink: 0; }
  body:not(.admin-body):not(.login-body) { padding-bottom: calc(7rem + env(safe-area-inset-bottom)); }

  .admin-body { font-size: 1rem; }
  .admin-body .admin-content { font-size: .9375rem; padding: .875rem !important; }
  .admin-body .admin-content p { font-size: .9375rem !important; }
  .admin-body .admin-content small, .admin-body .admin-nav-label {
    font-size: .875rem !important;
    line-height: 1.5 !important;
  }
  .admin-body .admin-sidebar nav a { font-size: 1rem; min-height: 2.75rem; height: auto; }
  .admin-topbar { display: flex !important; height: auto !important; min-height: 4rem; flex-wrap: wrap; gap: .75rem; padding-block: .75rem !important; }
  .admin-topbar-title { white-space: normal; overflow-wrap: anywhere; }
  .admin-topbar-actions { width: 100%; max-width: 100%; flex-wrap: wrap; gap: .5rem; }
  .admin-global-search { flex: 1 1 100%; width: 100%; max-width: 100% !important; min-width: 0; margin: 0 !important; }
  .admin-body .admin-search-field,
  .admin-body .event-list-search label > div {
    height: auto !important;
    min-height: 2.75rem;
    align-items: stretch;
  }
  .admin-body .admin-search-results {
    position: absolute !important;
    top: calc(100% + .375rem) !important;
    left: 0 !important;
    right: 0 !important;
    max-height: min(60dvh, 28rem) !important;
    overflow-y: auto;
  }
  .admin-body .admin-search-item { grid-template-columns: minmax(0, 1fr); font-size: .9375rem; }
  .admin-body .admin-search-content b { font-size: 1rem; white-space: normal; overflow-wrap: anywhere; }
  .admin-body .admin-search-content small, .admin-body .admin-search-type { font-size: .875rem; white-space: normal; }
  .admin-body .admin-search-empty, .admin-body .admin-search-loading { font-size: .875rem; line-height: 1.5; }
  .admin-user { min-width: 0; max-width: 100%; flex-wrap: wrap; }
  .admin-user > span { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
  .admin-body .admin-font-controls { display: flex !important; flex-shrink: 0; max-width: 100%; height: auto !important; min-height: 2.75rem; overflow: visible; gap: .25rem; }
  .admin-body .admin-font-controls button { width: auto; min-width: 44px; padding-inline: .25rem; }
  .admin-body .admin-font-controls .admin-font-value { display: inline-flex !important; align-items: center; justify-content: center; min-width: 3.5rem; font-size: .875rem !important; }
  .admin-body .admin-font-value small { font-size: .75rem !important; }
  .admin-body .admin-content :is(th, td, .status, .admin-kicker) { font-size: .875rem !important; }
  .table-wrap { max-width: 100%; overflow-x: auto; }
  .admin-body .admin-page-heading, .admin-body .admin-page-heading .row-actions { flex-wrap: wrap; }
  .admin-body .admin-page-heading .row-actions { gap: .5rem; }
  .admin-body .admin-page-heading { display: flex; flex-direction: column; align-items: stretch; max-width: 100%; }
  .admin-body .admin-page-heading > div { width: 100%; min-width: 0; max-width: 100%; }
  .admin-body .admin-page-heading .row-actions { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; min-width: 0; }
  .admin-body .admin-page-heading .row-actions a { min-width: 0; max-width: 100%; width: 100%; }
  .admin-body .event-lifecycle-tabs { flex-wrap: wrap; overflow: visible; height: auto; }
  .admin-body .event-lifecycle-tabs a { flex: 1 1 10rem; max-width: 100%; white-space: normal; height: auto; }
  .admin-body .event-lifecycle-tabs a span { white-space: normal; overflow: visible; text-overflow: clip; }
  .admin-body .admin-content :is(.form-grid, .admin-form-grid, .form-grid.three) {
    grid-template-columns: minmax(0, 1fr);
  }
  .admin-body .admin-content :is(.workflow-item-subject > a strong,
    .workflow-item-owner > strong, .workflow-item-due > strong,
    .workflow-last-activity p, .news-identity strong, .page-identity strong) {
    white-space: normal;
    overflow: visible;
    overflow-wrap: anywhere;
  }
  .admin-body .admin-content :is(.workflow-item-due > span) {
    display: block;
    overflow: visible;
    -webkit-line-clamp: unset;
  }
  .login-card { min-width: 0; max-width: calc(100% - 2rem); }
  .login-card input, .login-card label { max-width: 100%; }
  .tgcp-panel { max-height: calc(100dvh - 2rem); font-size: .875rem; }
  .tgcp-panel .tgcp-heading h2 { font-size: 1.125rem !important; }
  .tgcp-panel .tgcp-button { min-height: 2.75rem; font-size: .875rem !important; }
  .tgcp-panel .tgcp-allow { background: #b83d0b; color: #fff; }
}

@media (max-width: 570px) {
  .admin-body .admin-search-field { grid-template-columns: 28px minmax(0, 1fr) 44px; }
  .admin-body .admin-search-field button { width: 44px !important; white-space: nowrap !important; }
  .header-main .cart-button { flex-shrink: 0; }
  .event-facts { grid-template-columns: minmax(0, 1fr); }
  .event-facts > div { width: 100%; }
  .ticket-row .ticket-price { white-space: normal; }
  .checkout-form .form-grid, .filter-panel { grid-template-columns: minmax(0, 1fr) !important; }
  .purchase-progress { flex-wrap: wrap; height: auto; }
  .purchase-step { min-width: 0; }
  .purchase-step span { white-space: normal; overflow-wrap: anywhere; }
  .admin-body .admin-page-heading .row-actions { grid-template-columns: minmax(0, 1fr); }
  .tgcp-actions { grid-template-columns: minmax(0, 1fr); }
}
