/* Scoped to the event ticket surface; shared header/footer keep existing styles. */
.aet-page {
  color: var(--color-page-text);
  background: var(--color-page-bg);
  max-inline-size: var(--page-max);
  margin-inline: auto;
  padding: var(--space-s) var(--page-pad) var(--space-2xl);
}
.aet-hero {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(12rem,.55fr);
  gap: var(--space-m);
  align-items: center;
  padding-block: var(--space-s);
}
.aet-hero__art {
  grid-column: 2;
  grid-row: 1;
  display: block;
  inline-size: 100%;
  max-inline-size: 22rem;
  justify-self: end;
  block-size: auto;
  object-fit: contain;
}
.aet-hero__art img { display: block; inline-size: 100%; block-size: auto; }
.aet-hero__copy { grid-column: 1; grid-row: 1; }
.aet-hero h1 { font-family: var(--font-heading); font-size: clamp(3rem, 5.7vw, 5rem); line-height: .95; font-weight: 900; letter-spacing: -.025em; text-transform: uppercase; max-inline-size: 18ch; margin: 0 0 var(--space-s); text-wrap: balance; }
.aet-hero__subtitle { font-size: clamp(1.125rem, 1.5vw, 1.25rem); margin-block: 0 var(--space-m); }
.aet-hero__facts { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: var(--space-2xs) var(--space-m); font-size: 1rem; }
.aet-hero__facts li:first-child { flex-basis: 100%; }
.aet-hero__facts span { display: inline; margin-inline-start: var(--space-2xs); font-size: .875rem; }
.aet-guidance { border-block: 1px solid var(--line); padding-block: var(--space-m); margin-block-start: var(--space-s); }
.aet-guidance h2, .aet-browse h2 { font: 900 1.75rem var(--font-heading); margin: 0 0 var(--space-xs); }
.aet-guidance > p { max-inline-size: 75ch; margin: 0 0 var(--space-s); }
.aet-guidance dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--space-m); margin: 0; }
.aet-guidance dt { font-weight: 800; }
.aet-guidance dd { margin: var(--space-3xs) 0 0; font-size: .9375rem; line-height: 1.4; max-inline-size: 38ch; }
.aet-browse { margin-block-end: var(--space-m); scroll-margin-block-start: var(--space-l); }
.aet-filters { display: flex; flex-wrap: wrap; gap: var(--space-2xs); }
.aet-filters button { min-block-size: 2.75rem; border: 1px solid var(--color-page-text); border-radius: 999px; padding: .5rem 1rem; background: var(--color-header-bg); color: var(--color-page-text); font: 700 .9375rem var(--font-body); cursor: pointer; }
.aet-filters button[aria-pressed="true"] { color: var(--color-order-text); background: var(--color-order-bg); }
.aet-filters button:hover { text-decoration: underline; text-underline-offset: .2em; }
.aet-browse__meta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-xs); margin-block-start: var(--space-xs); font-size: .875rem; }
.aet-browse__meta label { display: inline-flex; gap: var(--space-2xs); align-items: center; min-block-size: 2.75rem; cursor: pointer; }
.aet-available-only { appearance: auto; accent-color: var(--color-order-bg); inline-size: 1.125rem; block-size: 1.125rem; }
.aet-result-count { margin: 0; }
.aet-no-results { padding-block: var(--space-m); }
.aet-reset-filters, .aet-add-another, .aet-dialog-cancel { min-block-size: 2.75rem; padding: .5rem; background: transparent; border: 0; font: 700 1rem var(--font-body); color: var(--color-page-text); text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.aet-layout { display: grid; grid-template-columns: minmax(0,1fr) 20rem; gap: var(--space-l); padding-block-start: var(--space-l); align-items: start; }
/* Leave room below the panel for the site's existing floating quick links. */
.aet-sidebar { position: sticky; inset-block-start: var(--space-m); max-block-size: max(0px,calc(100svh - max(var(--space-m),var(--aet-sidebar-top,var(--space-m))) - 7rem)); overflow: auto; scrollbar-width: thin; scrollbar-color: var(--color-page-text) var(--color-page-bg); }
.aet-group { scroll-margin-block-start: var(--space-l); margin-block-end: var(--space-xl); }
.aet-group h2, .aet-summary h2 { font-family: var(--font-heading); font-size: clamp(1.5rem,2.5vw,2rem); font-weight: 900; margin-block: 0 var(--space-3xs); }
.aet-group h2 span { font-family: var(--font-body); font-size: 1rem; font-weight: 600; }
.aet-group__intro { margin-block: 0 var(--space-s); font-size: .9375rem; }
.aet-role-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,15rem),1fr)); gap: var(--space-s); align-items: stretch; }
#observer-elves .aet-role-grid { grid-template-columns: minmax(0,1fr); }
.aet-role { display: flex; flex-direction: column; padding: var(--space-s); border: 1px solid var(--line); border-radius: 12px; background: var(--color-header-bg); min-inline-size: 0; }
.aet-role--added { border-color: var(--color-page-text); }
.aet-role h3 { font: 800 1.125rem/1.2 var(--font-body); margin: 0 0 var(--space-2xs); overflow-wrap: anywhere; }
.aet-role__description { font-size: 1rem; line-height: 1.35; margin: 0 0 var(--space-xs); }
.aet-role__footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2xs); margin-block-start: auto; }
.aet-role__availability { font-size: .8125rem; }
.aet-choose { min-block-size: 2.75rem; border: 1px solid var(--color-page-text); border-radius: 999px; padding: .5rem .875rem; color: var(--color-page-text); background: var(--color-header-bg); font: 800 .875rem var(--font-body); cursor: pointer; }
.aet-choose:hover { color: var(--color-order-text); background: var(--color-order-bg); }
.aet-choose:disabled { cursor: default; border-color: var(--line); }
.aet-role--added .aet-choose { color: var(--color-order-text); background: var(--color-order-bg); }
.aet-ticket-form > label, .aet-summary__item label { display: block; font-size: .875rem; font-weight: 700; margin-block-end: var(--space-3xs); }
.aet-page input[type="text"] { border: 1px solid var(--color-page-text); border-radius: 6px; color: var(--color-page-text); background: var(--color-header-bg); padding: .6rem .75rem; inline-size: 100%; min-inline-size: 0; font: inherit; caret-color: var(--color-page-text); }
.aet-page [hidden] { display: none !important; }
.aet-summary { background: var(--color-header-bg); border-radius: 16px; padding: var(--space-m); }
.aet-summary__items { list-style: none; margin: 0; padding: 0; }
.aet-summary__item { padding-block: var(--space-xs); border-block-end: 1px solid var(--line); }
.aet-summary__item > p { margin-block: 0 var(--space-xs); display: flex; justify-content: space-between; gap: var(--space-xs); }
.aet-summary__item label { margin-block-start: var(--space-xs); }
.aet-summary__actions { display: flex; gap: var(--space-s); margin-block-start: var(--space-2xs); }
.aet-summary__attendee { font-size: .9375rem; }
.aet-summary__item > .aet-summary__attendee { display: block; overflow-wrap: anywhere; }
.aet-summary__item strong { min-inline-size: 0; overflow-wrap: anywhere; }
.aet-summary__edit { margin-block-start: var(--space-s); }
.aet-summary__edit > button { margin-block-start: var(--space-2xs); }
.aet-summary__actions button { background: transparent; border: 0; padding: .25rem 0; color: var(--color-page-text); font: inherit; font-size: .875rem; text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.aet-summary__empty, .aet-summary__help { font-size: .875rem; line-height: 1.5; }
.aet-summary__totals { padding-block: var(--space-m); }
.aet-summary__totals p:first-child { display: flex; justify-content: space-between; gap: var(--space-xs); }
.aet-summary__totals p { margin-block: 0 var(--space-2xs); }
.aet-summary__totals p:last-child, .aet-summary__help { font-size: .8125rem; }
.aet-button { display: inline-flex; justify-content: center; align-items: center; min-block-size: 2.75rem; padding: .75rem 1.25rem; border: 0; border-radius: 999px; color: var(--color-order-text); background: var(--color-order-bg-hover); font: inherit; font-size: 1.25rem; font-weight: 800; cursor: pointer; text-align: center; }
.aet-button:hover { background: var(--color-order-bg); }
.aet-button:disabled { background: var(--color-order-bg); opacity: .55; cursor: not-allowed; }
.aet-button--small { font-size: .875rem; white-space: nowrap; background: var(--color-order-bg); }
.aet-checkout { inline-size: 100%; }
.aet-add-another { display: block; margin-inline: auto; margin-block-start: var(--space-xs); text-align: center; }
.aet-checkout svg { flex: none; inline-size: 1.25rem; block-size: 1.25rem; margin-inline-start: var(--space-xs); }
.aet-page :focus-visible { outline: 3px solid var(--color-focus-ring); outline-offset: 4px; }
.aet-event-details, .aet-policies { padding-inline: var(--space-m); margin-block-start: var(--space-l); font-size: .9375rem; }
.aet-event-details h3, .aet-policies h3 { font: 800 1.25rem var(--font-heading); margin-block-end: var(--space-xs); }
.aet-event-details p, .aet-policies p { margin-block: 0 var(--space-xs); }
.aet-message:empty { display: none; }
.aet-message { margin-block: var(--space-s); font-size: .9375rem; }
.aet-notice { padding: var(--space-s); border: 1px solid var(--color-page-text); border-radius: 6px; margin-block: var(--space-s); }
.aet-page ::selection { color: var(--color-order-text); background: var(--color-page-text); }
.aet-ticket-dialog { inline-size: min(32rem,calc(100% - 2rem)); max-block-size: calc(100dvh - 2rem); margin: auto; padding: var(--space-l); border: 1px solid var(--color-page-text); border-radius: 16px; color: var(--color-page-text); background: var(--color-header-bg); overflow: auto; }
.aet-ticket-dialog::backdrop { background: color-mix(in srgb,var(--color-page-text) 65%,transparent); }
.aet-ticket-dialog h2 { font: 900 2rem/1.1 var(--font-heading); margin: 0 0 var(--space-xs); }
#aet-dialog-description { margin-block: 0 var(--space-s); }
.aet-dialog-price { font-weight: 800; }
#aet-dialog-help { margin-block: var(--space-xs) var(--space-s); font-size: .875rem; }
.aet-dialog-error:empty { display: none; }
.aet-dialog-error { font-weight: 700; }
.aet-dialog-actions { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-s); }
.aet-mobile-cart { display: none; }
.aet-mobile-cart .aet-button { text-decoration: none; }
html:has(.aet-ticket-dialog[open]) { overflow: hidden; }
@media (max-width: 1023px) {
  .aet-layout { grid-template-columns: minmax(0,1fr); }
  .aet-sidebar { position: static; max-block-size: none; overflow: visible; }
  .aet-mobile-cart { position: fixed; inset-inline: var(--page-pad); inset-block-end: calc(4.75rem + env(safe-area-inset-bottom)); z-index: 80; display: flex; justify-content: space-between; align-items: center; gap: var(--space-xs); padding: var(--space-xs) var(--space-s); border: 1px solid var(--color-page-text); border-radius: 16px; background: var(--color-header-bg); color: var(--color-page-text); }
  .aet-mobile-cart > span { display: grid; font-size: .875rem; font-variant-numeric: tabular-nums; }
  .aet-page { padding-block-end: 11rem; }
}
@media (max-width: 720px) {
  .aet-page { padding-block-start: calc(var(--mobile-nav-header-height, 3.75rem) + env(safe-area-inset-top) + var(--space-s)); }
  .aet-hero { grid-template-columns: minmax(0,1fr); padding-block: var(--space-m); }
  .aet-hero__copy { grid-column: 1; grid-row: 1; }
  .aet-hero__art { grid-column: 1; grid-row: 2; max-inline-size: 15rem; margin-inline: auto; justify-self: center; }
  .aet-hero h1 { font-size: clamp(2.75rem,10vw,4rem); max-inline-size: 13ch; }
  .aet-layout { grid-template-columns: minmax(0,1fr); }
  .aet-group, .aet-sidebar, .aet-browse { scroll-margin-block-start: calc(var(--mobile-nav-header-height, 3.75rem) + env(safe-area-inset-top) + var(--space-s)); }
  .aet-guidance dl { grid-template-columns: minmax(0,1fr); gap: var(--space-xs); }
  .aet-ticket-dialog { padding: var(--space-m); }
  .aet-mobile-cart .aet-button--small { inline-size: auto; }
}
@media (max-width: 520px) {
  .aet-role-grid { gap: var(--space-2xs); }
  .aet-role { padding: var(--space-xs); }
}
