/* Readability pass: supporting text is larger; H1 sizes remain unchanged. */
body { font-size: 18px; }

.brand { font-size: 22px; }
.primary-nav { font-size: 16px; }
.nav-submit {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #2f8f83;
  color: #fff;
  font: 600 16px/1.5 var(--sans);
  padding: 12px 18px 13px;
  border: 0;
  border-radius: 4px;
  box-shadow: 0 4px 0 #e343d2;
  text-decoration: none;
}
.nav-submit::after { content: "»"; font-size: 1.35rem; font-weight: 400; line-height: .6; }
.nav-submit,
.primary-nav > a.nav-submit:hover,
.primary-nav > a.nav-submit:visited { background: #2f8f83; color: #fff; box-shadow: 0 4px 0 #23685f; transform: none; }
.nav-submit:active { transform: translateY(2px); box-shadow: 0 2px 0 #23685f; }
.nav-submit:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.location-button,
.location-button:hover,
.nav-register,
.primary-nav > a.nav-register:hover,
.primary-nav > a.nav-register:visited { display: inline-flex; align-items: center; justify-content: center; background: #e66f54; color: #fff; border: 0; border-radius: 4px; padding: 12px 18px 13px; font: 600 16px/1.5 var(--sans); box-shadow: 0 4px 0 #b95038; transform: none; transition: none; }
.location-button:active,
.nav-register:active { transform: translateY(2px); box-shadow: 0 2px 0 #b95038; }
.nav-submit,
.nav-submit:hover,
.nav-submit:focus,
.nav-submit:focus-visible,
.nav-submit:active,
.nav-submit:visited,
.nav-register,
.nav-register:hover,
.nav-register:focus,
.nav-register:focus-visible,
.nav-register:active,
.nav-register:visited { color: #fff !important; }
.login-button:hover { background: var(--ink); color: var(--white); box-shadow: none; transform: none; }
.register-button:hover { background: var(--ink); color: var(--white); box-shadow: none; transform: none; }
.settings-card .button--dark:hover { background: var(--ink); color: var(--white); box-shadow: none; transform: none; }
.menu-toggle { font-size: 22px; }
.user-greeting { font-size: 15px; }
.logout-form button { font-size: 16px; }

.eyebrow,
.footer-label,
.info-label,
.event-meta,
.city-kicker { font-size: 13px; }
.landing-lede,
.page-lede,
.submit-intro > p:last-child,
.confirmation > p:not(.eyebrow) { font-size: 20px; }
.location-message { font-size: 15px; }
.landing { grid-template-columns: 1fr; }
.button { font-size: 16px; }
.button--small { font-size: 14px; }

.city-picker h2,
.feed-heading h2,
.day-heading h2,
.venue-events h2 { font-size: 34px; }
.city-list span { font-size: 22px; }
.city-list small { font-size: 16px; }
.city-list b { font-size: 20px; }
.metro-switch { font-size: 16px; }
.pin { font-size: 22px; }
.chevron { font-size: 17px; }
.filter-tabs a { font-size: 15px; }
.search-input input,
.select-input select { font-size: 15px; }
.result-count { font-size: 13px; }
.event-card-date span,
.event-card-date small { font-size: 12px; }
.event-card-date strong { font-size: 36px; }
.event-card h3 { font-size: 25px; }
.event-location { font-size: 15px; }
.venue-link { color: inherit; }
.event-bottom { font-size: 13px; }
.card-arrow { font-size: 24px; }
.empty-state > span { font-size: 30px; }
.empty-state h3 { font-size: 29px; }
.detail-label { font-size: 13px; }
.detail-description { font-size: 20px; }
.info-block strong { font-size: 18px; }
.info-block p,
.aside-link span { font-size: 16px; }
.verified { font-size: 15px; }
.venue-header p { font-size: 20px; }
.footer-grid p:not(.footer-label),
.footer-grid a:not(.brand) { font-size: 16px; }
.footer-bottom { font-size: 12px; }

.event-form .submit-fields > label,
.event-form .submit-fields .venue-picker label,
.event-form .form-fields > label,
.event-form .venue-picker label,
.auth-card label { font-size: 17px; }
.event-form .submit-fields input,
.event-form .submit-fields textarea,
.event-form .submit-fields select,
.event-form .form-fields input,
.event-form .form-fields textarea,
.event-form .form-fields select,
.auth-card input { font-size: 18px; }
.event-form .form-fields h2 { font-size: 31px; }
.form-note { font-size: 13px; }
.form-errors,
.errorlist { font-size: 14px; }
.submit-footer p { font-size: 14px; }
.auth-lede { font-size: 19px; }
.auth-switch { font-size: 16px; }
.venue-result { font-size: 15px; }
.venue-picked { font-size: 13px; }
.venue-result-heading { font-size: 12px; }
.category-label { color: var(--muted); }
.detail-top { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.detail-top .button--line,
.detail-top .button--line:hover,
.detail-top .button--line:visited { border-color: #aeb7b0; background: transparent; color: var(--ink); box-shadow: none; transform: none; transition: none; }
.venue-header .button--line,
.venue-header .button--line:hover,
.venue-header .button--line:visited { border-color: #aeb7b0; background: transparent; color: var(--ink); box-shadow: none; transform: none; transition: none; }
.venue-claim-status { display: flex; align-items: center; gap: 6px; }
.verified-check { color: #2f8f83; font-weight: 700; font-size: .9em; line-height: 1; }
.event-attribution { color: var(--muted); font-size: 13px; margin: 8px 0 0; }
.event-claim-form { margin-top: 22px; }
.event-claim-form .verify-event-button,
.event-claim-form .verify-event-button:hover,
.event-claim-form .verify-event-button:visited { background: #2f8f83; color: #fff; border-color: #2f8f83; box-shadow: none; transform: none; transition: none; }
.claim-request-button,
.claim-request-button:hover,
.claim-request-button:focus,
.claim-request-button:focus-visible,
.claim-request-button:active,
.claim-request-button:visited { background: var(--ink); color: var(--white); border-color: var(--ink); box-shadow: none; transform: none; transition: none; }
.publish-button,
.publish-button:hover,
.publish-button:visited,
.confirmation .button--dark,
.confirmation .button--dark:hover,
.confirmation .button--dark:visited { background: var(--ink); color: var(--white); box-shadow: none; transform: none; transition: none; }
.my-events-page { padding-top: 70px; padding-bottom: 120px; }
.my-events-card { width: min(100%, 820px); margin: 0 auto; }
.my-events-card h1 { font-size: clamp(48px, 6vw, 72px); margin: 0; }
.my-events-card h1 em { color: var(--coral); font-style: normal; }
.my-events-card .page-lede { margin: 18px 0 38px; }
.my-events-list { border-top: 1px solid var(--line); }
.my-event-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.my-event-row h2 { font-size: 24px; margin: 4px 0; }
.my-event-row h2 a:hover { color: var(--coral); }
.my-event-meta, .my-event-status { color: var(--muted); margin: 0; }
.my-event-meta { font: 12px var(--mono); letter-spacing: .04em; text-transform: uppercase; }
.my-event-status { font-size: 15px; }
.my-events-empty { padding: 45px 0; }
.my-events-empty h2 { margin: 0 0 4px; }
.my-events-empty p { color: var(--muted); margin: 0 0 20px; }
.event-form .submit-footer { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.event-form .submit-footer .button--danger { margin-left: auto; padding: 14px 20px; font-size: 16px; }
.button--danger { background: #a92f2f; color: #fff; }
.button--danger:hover { background: #a92f2f; color: #fff; box-shadow: none; transform: none; transition: none; }
.delete-card .auth-lede { max-width: 560px; }

h1.page-title {
  font-family: var(--sans);
  font-size: clamp(45px, 5vw, 70px);
  line-height: 1.02;
  letter-spacing: -.055em;
  font-weight: 600;
  margin: 0;
}

/* Keep the main page headings consistent across calendar, city, and account pages. */
.cities-page h1,
.auth-card h1,
.my-events-card h1,
.submit-intro h1 {
  font-family: var(--sans);
  font-size: clamp(45px, 5vw, 70px);
  line-height: 1.02;
  letter-spacing: -.055em;
  font-weight: 600;
  margin: 0;
}

/* Keep event cards visually stable on hover. */
.event-card,
.event-card:hover,
.event-card--featured,
.event-card--featured:hover { transition: none; transform: none; }
.event-card { grid-template-columns: 75px 1fr; }
.event-card:hover { background: #fff; border-color: var(--line); box-shadow: 0 3px 12px rgba(21,32,29,.035); }
.event-card--featured:hover { background: #fffaf7; border-color: #f1d4cb; }

/* Keep the empty-calendar call to action consistent with the nav CTA. */
.empty-state .button--dark,
.empty-state .button--dark:hover,
.empty-state .button--dark:visited { background: #2f8f83; color: #fff; box-shadow: none; transform: none; transition: none; }
.my-events-empty .button--dark,
.my-events-empty .button--dark:hover,
.my-events-empty .button--dark:visited { background: #2f8f83; color: #fff; box-shadow: none; transform: none; transition: none; }

@media (max-width: 800px) {
  h1.page-title { font-size: 47px; }

  .cities-page h1,
  .auth-card h1,
  .my-events-card h1,
  .submit-intro h1 { font-size: 47px; }

  .my-events-page { padding-top: 45px; }
  .my-event-row { align-items: flex-start; flex-direction: column; gap: 14px; }
  .detail-top { align-items: flex-start; flex-direction: column; gap: 14px; }
  .event-card { grid-template-columns: 54px 1fr; }
  .event-card-date strong { font-size: 29px; }
  .event-card h3 { font-size: 22px; }
}

@media (min-width: 801px) {
  .submit-intro { max-width: none; }
  .submit-intro h1,
  .submit-intro > p:last-child { white-space: nowrap; max-width: none; }
}

.detail-event-link { color: #2f8f83; text-decoration: underline; text-underline-offset: .15em; overflow-wrap: anywhere; }
.detail-event-link:hover { color: #23685f; }

.my-event-row > div { min-width: 0; flex: 1 1 auto; }
.my-event-edit { flex: 0 0 auto; white-space: nowrap; transition: none; }
.my-event-edit:hover { background: transparent; border-color: #aeb7b0; color: var(--ink); box-shadow: none; transform: none; }

.venue-events { max-width: none; }
