:root {
  --blue: #155cab;
  --cream: #f4f3ea;
  --rule: rgb(21 92 171 / 30%);
  --gutter: clamp(22px, 5vw, 80px);
  --display: Arial, Helvetica, sans-serif;
  --body: Arial, Helvetica, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--blue); font-family: var(--body); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 5px; }
button { font: inherit; }
img { max-width: 100%; height: auto; }
p, h1, h2, h3 { margin: 0; }
address { font-style: normal; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 6px; }
::selection { color: var(--cream); background: var(--blue); }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: absolute; inset-block-start: 12px; inset-inline-start: 12px; z-index: 10; padding: 14px 20px; color: var(--blue); background: var(--cream); transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }

.hero { position: relative; min-height: 600px; height: 100vh; height: 100svh; isolation: isolate; color: var(--cream); background: #232824; }
.hero-photo, .hero-shade { position: absolute; inset: 0; z-index: -1; }
.hero-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 8%; }
.hero-shade { background: linear-gradient(180deg, rgb(0 0 0 / 55%), transparent 32%, transparent 52%, rgb(0 0 0 / 72%)); }
.hero-header { position: absolute; inset-block-start: 32px; inset-inline-start: var(--gutter); }
.brand { width: clamp(140px, 16vw, 220px); line-height: 0; }
.brand a, .footer-brand { display: block; }
.brand img { display: block; }
.corner-link { position: absolute; display: flex; align-items: center; gap: .28em; padding-block: 6px; font-family: var(--display); font-size: clamp(32px, 3.5vw, 54px); font-style: italic; font-weight: 900; letter-spacing: -.055em; line-height: 1.1; text-decoration: none; }
.corner-link::after { position: absolute; inset-inline: 0; inset-block-end: 0; height: 2px; background: currentColor; content: ""; transform: scaleX(0); transform-origin: left; transition: transform 180ms ease; }
.corner-link:hover::after, .corner-link:focus-visible::after { transform: scaleX(1); }
.corner-tour { inset-block-start: 34px; inset-inline-end: var(--gutter); }
.corner-merch { inset-block-end: 32px; inset-inline-start: var(--gutter); }
.corner-contact { inset-block-end: 32px; inset-inline-end: var(--gutter); }

.section-wrap { max-width: 1280px; margin-inline: auto; padding-inline: var(--gutter); }
.tour-section { padding-block: clamp(60px, 8vw, 110px) 90px; scroll-margin-top: 28px; }
.section-heading { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 16px; margin-block-end: 44px; }
.section-heading h2 { font-family: var(--display); font-size: clamp(72px, 10vw, 144px); font-style: italic; font-weight: 900; line-height: .85; letter-spacing: -.075em; }
.tour-status { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 24px; padding-block: 40px; border-bottom: 1px solid var(--rule); line-height: 1.5; }
.tour-status a, .tour-status button { display: inline-flex; align-items: center; gap: 20px; min-height: 44px; font-weight: 700; }
.tour-status button { padding: 8px 16px; border: 1px solid currentColor; color: var(--blue); background: transparent; cursor: pointer; }
.tour-status button:hover { color: var(--cream); background: var(--blue); }
.no-script { margin-block: 24px; line-height: 1.6; }
html:not(.js) .tour-status { display: none; }

/* Keep Seated's live data and ticket behavior; override its default presentation. */
#tour #seated-55fdf2c0 { font-family: var(--body); font-size: 16px; line-height: 1.35; }
#tour #seated-55fdf2c0 .seated-events-table { width: 100%; border: 0; margin: 0; }
#tour #seated-55fdf2c0 .seated-event-row { display: grid; grid-template-columns: minmax(0, 1fr) 88px; gap: 32px; align-items: center; padding: 21px 0; margin: 0; border: 0; border-top: 1px solid var(--rule); background: transparent; }
#tour #seated-55fdf2c0 .seated-event-row:last-of-type { border-bottom: 1px solid var(--rule); }
#tour #seated-55fdf2c0 .seated-event-description-cells { display: grid; grid-template-columns: 144px minmax(0, 1fr); gap: 1px 32px; width: auto; padding: 0; margin: 0; text-align: left; }
#tour #seated-55fdf2c0 .seated-event-date-cell { grid-column: 1; grid-row: 1 / span 2; align-self: start; width: auto; padding: 7px 0 0; margin: 0; color: inherit; font-size: 18px; line-height: 1.35; font-weight: 700; text-transform: none; }
.tour-date { display: grid; grid-template-columns: max-content max-content; align-items: baseline; justify-content: start; gap: 4px 5px; white-space: nowrap; }
.tour-date-day, .tour-date-month { font-family: var(--display); font-size: 22px; font-style: normal; font-weight: 700; line-height: 1.15; letter-spacing: -.025em; font-variant-numeric: lining-nums tabular-nums; text-transform: uppercase; }
.tour-date-year { grid-column: 1 / -1; font-size: 11px; font-weight: 400; line-height: 1.4; letter-spacing: .02em; }
#tour #seated-55fdf2c0 .seated-event-venue-cell { grid-column: 2; grid-row: 1; display: flex; flex-direction: column-reverse; align-items: stretch; gap: 7px; width: auto; padding: 0; margin: 0; }
#tour #seated-55fdf2c0 .seated-event-venue-location { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; width: auto; align-self: auto; color: inherit; font-family: var(--display); font-size: clamp(30px, 3vw, 40px); font-style: italic; font-weight: 900; letter-spacing: -.045em; line-height: 1.05; text-transform: uppercase; }
.tour-city { min-width: 0; overflow-wrap: anywhere; }
.tour-region { font-family: var(--body); font-size: 12px; font-style: normal; font-weight: 400; letter-spacing: .04em; white-space: nowrap; }
#tour #seated-55fdf2c0 .seated-event-venue-name { width: auto; align-self: auto; color: inherit; font-size: 14px; font-weight: 600; line-height: 1.25; }
#tour #seated-55fdf2c0 .seated-event-details-cell { grid-column: 2; grid-row: 2; width: auto; padding: 0; margin: 0; color: inherit; font-size: 11px; font-weight: 400; line-height: 1.35; opacity: 1; }
#tour #seated-55fdf2c0 .seated-event-details-cell:empty { display: none; }
#tour #seated-55fdf2c0 .seated-event-link-cells { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; width: auto; padding: 0; margin: 0; }
#tour #seated-55fdf2c0 .seated-event-link-cell { display: block; min-width: 0; max-width: 100%; width: auto; padding: 0; margin: 0; }
#tour #seated-55fdf2c0 .seated-event-link { display: inline-flex; align-items: center; justify-content: flex-end; min-height: 44px; min-width: 64px; max-width: 100%; padding: 8px 0; margin: 0; border: 0; border-radius: 0; color: var(--blue); background: transparent; font-family: var(--body); font-size: 14px; font-style: normal; font-weight: 700; line-height: 1.25; text-transform: lowercase !important; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; white-space: normal; transition: text-underline-offset 160ms ease; }
#tour #seated-55fdf2c0 .seated-event-link:hover { color: var(--blue); background: transparent; text-underline-offset: 8px; }
#tour #seated-55fdf2c0 .seated-event-link:active { text-decoration-thickness: 2px; }
#tour #seated-55fdf2c0 .seated-event-link:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }
#tour #seated-55fdf2c0 .seated-no-events { padding-block: 40px; color: inherit; background: transparent; }

.contact-section { padding-block: clamp(60px, 8vw, 110px) 26px; color: var(--cream); background: var(--blue); scroll-margin-top: 0; }
.contact-section .section-heading { margin-block-end: 60px; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; }
.contact-group { border-top: 1px solid rgb(244 243 234 / 60%); padding-block-start: 20px; }
.contact-group h3 { margin-block-end: 30px; font-size: 12px; font-weight: 400; text-transform: uppercase; letter-spacing: .12em; }
.contact-person + .contact-person { margin-block-start: 32px; }
.contact-person p { margin-block-end: 8px; font-size: clamp(22px, 2.4vw, 30px); font-weight: 700; letter-spacing: -.025em; }
.contact-person a { display: inline-block; padding-block: 5px; font-size: 15px; line-height: 1.5; overflow-wrap: anywhere; text-decoration: none; }
.contact-person a:hover { text-decoration: underline; }
.site-footer { display: grid; grid-template-columns: 100px 1fr; align-items: center; gap: 32px; margin-block-start: 100px; border-top: 1px solid rgb(244 243 234 / 60%); padding-block-start: 28px; font-size: 12px; }
.footer-brand { width: 100px; line-height: 0; }
.socials { display: flex; flex-wrap: wrap; gap: 12px 22px; }
.socials a { display: inline-flex; min-height: 32px; align-items: center; text-decoration: none; }
.socials a:hover { text-decoration: underline; }
.copyright { grid-column: 1 / -1; padding-block-start: 12px; font-size: 10px; letter-spacing: .03em; }

@media (min-width: 1600px) {
  .hero-photo img { object-position: 50% 6%; }
}
@media (max-width: 800px) {
  .hero { min-height: 560px; }
  .hero-photo img { object-position: 50% 16%; }
  #tour #seated-55fdf2c0 .seated-event-row { grid-template-columns: minmax(0, 1fr) 76px; gap: 20px; }
  #tour #seated-55fdf2c0 .seated-event-description-cells { grid-template-columns: 120px minmax(0, 1fr); column-gap: 24px; }
  .tour-date-day, .tour-date-month { font-size: 20px; }
  #tour #seated-55fdf2c0 .seated-event-venue-location { font-size: 32px; }
  .contact-grid { gap: 40px; }
  .site-footer { grid-template-columns: 90px 1fr; gap: 20px 30px; }
}
@media (max-width: 540px) {
  .hero { min-height: 520px; }
  .hero-photo img { object-position: 54% 32%; }
  .hero-header { inset-block-start: 24px; }
  .brand { width: 132px; }
  .corner-link { font-size: 34px; }
  .corner-tour { inset-block-start: 28px; }
  .corner-merch, .corner-contact { inset-block-end: 24px; }
  .section-heading { align-items: flex-end; margin-block-end: 32px; }
  .tour-section { padding-block-end: 60px; }
  #tour #seated-55fdf2c0 .seated-event-row { grid-template-columns: minmax(0, 1fr) 64px; gap: 16px; padding-block: 21px; }
  #tour #seated-55fdf2c0 .seated-event-description-cells { display: flex; flex-direction: column; gap: 0; }
  #tour #seated-55fdf2c0 .seated-event-date-cell { padding: 0; margin-block-end: 8px; }
  .tour-date { grid-template-columns: max-content max-content max-content; }
  .tour-date-year { grid-column: auto; margin-inline-start: 4px; }
  .tour-date-day, .tour-date-month { font-size: 15px; }
  #tour #seated-55fdf2c0 .seated-event-venue-cell { gap: 8px; }
  #tour #seated-55fdf2c0 .seated-event-venue-location { gap: 5px 8px; font-size: 26px; }
  .tour-region { font-size: 10px; }
  #tour #seated-55fdf2c0 .seated-event-venue-name { font-size: 12px; }
  #tour #seated-55fdf2c0 .seated-event-details-cell { margin-block-start: 1px; font-size: 11px; }
  #tour #seated-55fdf2c0 .seated-event-link-cells { justify-content: flex-end; }
  .contact-section .section-heading { margin-block-end: 44px; }
  .contact-section .section-heading h2 { font-size: clamp(62px, 16vw, 86px); }
  .contact-grid { grid-template-columns: 1fr; gap: 44px; }
  .contact-group h3 { margin-block-end: 24px; }
  .contact-person a { font-size: 14px; }
  .site-footer { margin-block-start: 64px; grid-template-columns: 1fr; gap: 24px 18px; }
  .socials { grid-column: 1 / -1; grid-row: 2; gap: 10px 22px; }
  .copyright { padding-block-start: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}
