/* biome-ignore-all lint/style/noDescendingSpecificity: rules are grouped by component, not by specificity; the flagged pairs never match the same element. */
/* Event blocks. Colours and type come from the theme's presets (TOKENS.md roles), with fallbacks so
   the blocks stay readable under any theme. Status colours never follow the brand and always come
   with a word (TOKENS.md). */
:root {
  --amx-c-text: var(--wp--preset--color--text, #14161b);
  --amx-c-muted: var(--wp--preset--color--text-muted, #575d6a);
  --amx-c-border: var(--wp--preset--color--border, #dadde3);
  --amx-c-strong: var(--wp--preset--color--border-strong, #7e8592);
  --amx-c-primary: var(--wp--preset--color--primary, #2b47c9);
  --amx-c-on-primary: var(--wp--preset--color--on-primary, #fff);
  --amx-c-link: var(--wp--preset--color--primary-text, #2b47c9);
  --amx-c-surface: var(--wp--preset--color--surface, #f4f5f7);
  --amx-c-bg: var(--wp--preset--color--background, #fff);
  --amx-c-accent: var(--wp--preset--color--accent, #f2b705);
  --amx-serif: var(--wp--preset--font-family--heading, Georgia, serif);
  --amx-sans: var(--wp--preset--font-family--body, system-ui, sans-serif);
}

.screen-reader-text:not(:focus) {
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  width: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
}

/* Tags */
.amx-tag {
  display: inline-block;
  font: 600 0.8125rem / 1 var(--amx-sans);
  padding: 0.35rem 0.7rem;
  border-radius: var(--wp--custom--radius--tag, 999px);
  border: 1px solid currentColor;
  color: var(--amx-c-muted);
}
.amx-tag.is-ok {
  color: var(--wp--preset--color--success, #17703f);
}
.amx-tag.is-warn {
  color: var(--wp--preset--color--warning, #8a5300);
}
.amx-tag.is-bad {
  color: var(--wp--preset--color--danger, #c0262d);
}

/* Facts */
.amx-event-facts,
.amx-facts {
  display: grid;
  margin: 0;
}
.amx-event-facts > div,
.amx-facts > div {
  display: grid;
  grid-template-columns: minmax(6rem, 2fr) 3fr;
  gap: 1rem;
  padding: 0.7rem 0;
  border-top: 1px solid var(--amx-c-border);
  font-size: var(--wp--preset--font-size--small, 0.875rem);
}
.amx-event-facts > div:last-child,
.amx-facts > div:last-child {
  border-bottom: 1px solid var(--amx-c-border);
}
.amx-event-facts dt,
.amx-facts dt {
  color: var(--amx-c-muted);
}
.amx-event-facts dd,
.amx-facts dd {
  margin: 0;
}
.amx-event-datetime {
  font-size: var(--wp--preset--font-size--small, 0.875rem);
}
.amx-zone {
  color: var(--amx-c-muted);
  font-size: var(--wp--preset--font-size--small, 0.875rem);
}

/* Ticket button and "Tickets from" */
.amx-ticket-button {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 1rem;
}
.amx-from {
  color: var(--amx-c-muted);
  font-size: var(--wp--preset--font-size--small, 0.875rem);
}

/* Ticket types */
.amx-tiers {
  list-style: none;
  margin: 0 0 2rem;
  padding: 0;
  display: grid;
  border-top: 1px solid var(--amx-c-border);
}
.amx-tier {
  display: grid;
  gap: 0.5rem;
  align-content: start;
  padding: 1.75rem 0;
  border-bottom: 1px solid var(--amx-c-border);
}
.amx-tier > * {
  margin: 0;
}
.amx-tier .amx-tag {
  justify-self: start;
}
.amx-tier-name {
  font-size: var(--wp--preset--font-size--x-large, 1.75rem);
}
.amx-price {
  font: 500 var(--wp--preset--font-size--x-large, 1.75rem) / 1 var(--amx-serif);
}
.amx-tier.is-sold-out .amx-price {
  text-decoration: line-through;
  color: var(--amx-c-muted);
}
@media (min-width: 64rem) {
  .is-layout-columns .amx-tiers {
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    border-top: 0;
  }
  .is-layout-columns .amx-tier {
    border-bottom: 0;
    border-left: 1px solid var(--amx-c-border);
    padding: 0 2rem;
  }
  .is-layout-columns .amx-tier:first-child {
    border-left: 0;
    padding-left: 0;
  }
}
/* List (five or more types): name, price and tag on one row. */
.is-layout-list .amx-tier {
  grid-template-columns: 1fr auto;
  align-items: center;
  padding: 1.1rem 0;
}
.is-layout-list .amx-tier-name,
.is-layout-list .amx-price {
  font-size: var(--wp--preset--font-size--large, 1.3125rem);
}
.is-layout-list .amx-tier .amx-tag {
  grid-column: 1 / -1;
}
.is-single-free .amx-tiers {
  border: 1px solid var(--amx-c-text);
  padding: 0 1.5rem;
}
.amx-status {
  font: 500 var(--wp--preset--font-size--large, 1.3125rem) / 1.3 var(--amx-serif);
}
.amx-note {
  border-left: 3px solid var(--wp--preset--color--warning, #8a5300);
  padding: 0.5rem 1rem;
  font-size: var(--wp--preset--font-size--small, 0.875rem);
}

/* Announcement bar: a word and a sentence, never colour alone. */
.amx-announcement {
  border-bottom: 1px solid var(--amx-c-border);
  background: var(--amx-c-bg);
  padding: 0.6rem var(--wp--custom--gutter, 1.25rem);
  font-size: var(--wp--preset--font-size--small, 0.875rem);
}
.amx-announcement p {
  margin: 0 auto;
  max-width: 75rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
}

/* Countdown */
.amx-countdown-label {
  margin: 0;
  font-size: var(--wp--preset--font-size--small, 0.875rem);
  color: var(--amx-c-muted);
}
.amx-countdown-value {
  margin: 0.25rem 0 0;
  color: var(--amx-c-muted);
}
.amx-countdown-value span {
  font: 500 2rem / 1 var(--amx-serif);
  color: var(--amx-c-text);
}

/* Cover art */
.amx-cover-art svg {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 21 / 8;
  background: var(--amx-c-surface);
}
.amx-cover-art .amx-fill-primary {
  fill: var(--amx-c-primary);
}
.amx-cover-art .amx-fill-accent {
  fill: var(--amx-c-accent);
}
.amx-cover-art .amx-line-primary {
  fill: none;
  stroke: var(--amx-c-primary);
  stroke-width: 1.5;
}
.amx-cover-art .amx-line-muted {
  stroke: var(--amx-c-border);
  stroke-width: 1;
}

/* Block heading row (session and speaker pages) */
.amx-block-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  border-bottom: 1px solid var(--amx-c-text);
  padding-bottom: 1rem;
  margin-bottom: 0.5rem;
}
.amx-block-head h2 {
  margin: 0;
}

/* Programme rows */
.amx-slots {
  list-style: none;
  margin: 0;
  padding: 0;
}
.amx-slot {
  display: grid;
  grid-template-columns: 4.5rem 1fr auto;
  gap: 0 1rem;
  align-items: start;
  padding: 1.1rem 0;
  border-bottom: 1px solid var(--amx-c-border);
}
.amx-slot-time {
  font: 400 var(--wp--preset--font-size--medium, 1rem) / 1.6 var(--amx-serif);
  color: var(--amx-c-muted);
  font-variant-numeric: oldstyle-nums;
}
.amx-slot-title {
  margin: 0;
  font: 400 var(--wp--preset--font-size--large, 1.3125rem) / 1.3 var(--amx-serif);
}
.amx-slot-title a {
  color: inherit;
  text-decoration: none;
}
.amx-slot-title a:hover {
  text-decoration: underline;
}
.amx-slot-meta,
.amx-slot-excerpt {
  margin: 0.3rem 0 0;
  font-size: var(--wp--preset--font-size--small, 0.875rem);
  color: var(--amx-c-muted);
}
.amx-slot-excerpt {
  color: var(--amx-c-text);
  max-width: 60ch;
}
.amx-room {
  color: var(--amx-c-link);
  font-weight: 600;
  font-size: 0.8125rem;
}
.amx-slot.is-break .amx-slot-title {
  font: 400 var(--wp--preset--font-size--small, 0.875rem) / 1.6 var(--amx-sans);
  color: var(--amx-c-muted);
}
.amx-save {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: var(--wp--custom--radius--control, 999px);
  border: 1px solid var(--amx-c-strong);
  background: var(--amx-c-bg);
  color: var(--amx-c-text);
  cursor: pointer;
}
.amx-save[aria-pressed="true"] {
  background: var(--amx-c-primary);
  border-color: var(--amx-c-primary);
  color: var(--amx-c-on-primary);
}
.amx-save[aria-pressed="true"] path {
  fill: currentColor;
}

/* Programme: days side by side, filter bar, room grid */
.amx-agenda.is-layout-days .amx-days {
  display: grid;
  gap: 2rem 3rem;
}
@media (min-width: 48rem) {
  .amx-agenda.is-layout-days .amx-days {
    grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  }
}
.amx-day-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid var(--amx-c-text);
}
.amx-day-head h3 {
  margin: 0;
  font: 600 var(--wp--preset--font-size--small, 0.875rem) / 1.4 var(--amx-sans);
}
.amx-filter {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--amx-c-border);
}
.amx-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.amx-pill {
  min-height: 44px;
  padding: 0.5rem 1rem;
  border-radius: var(--wp--custom--radius--control, 999px);
  border: 1px solid var(--amx-c-border);
  background: var(--amx-c-bg);
  color: var(--amx-c-text);
  font: 500 var(--wp--preset--font-size--small, 0.875rem) / 1 var(--amx-sans);
  cursor: pointer;
}
.amx-pill[aria-pressed="true"] {
  background: var(--amx-c-text);
  border-color: var(--amx-c-text);
  color: var(--amx-c-bg);
}
.amx-rooms {
  overflow-x: auto;
}
.amx-rooms table {
  border-collapse: collapse;
  min-width: 40rem;
  width: 100%;
  font-size: var(--wp--preset--font-size--small, 0.875rem);
}
.amx-rooms th,
.amx-rooms td {
  border-bottom: 1px solid var(--amx-c-border);
  padding: 0.75rem;
  text-align: left;
  vertical-align: top;
}
.amx-rooms thead th {
  border-bottom-color: var(--amx-c-text);
}
.amx-rooms td a {
  display: block;
  font: 400 1rem / 1.3 var(--amx-serif);
  color: inherit;
}
.amx-rooms td span,
.amx-rooms .is-break {
  color: var(--amx-c-muted);
}

/* Boxes: my agenda, session details, summaries */
.amx-my-agenda,
.amx-box {
  border: 1px solid var(--amx-c-text);
  padding: 1.25rem;
}
.amx-my-agenda h2 {
  font-size: var(--wp--preset--font-size--large, 1.3125rem);
  margin: 0 0 0.5rem;
}
.amx-saved {
  padding-left: 1.25rem;
}
.amx-saved li {
  padding: 0.3rem 0;
}
.amx-saved time {
  color: var(--amx-c-muted);
  font-size: var(--wp--preset--font-size--small, 0.875rem);
}
.amx-muted {
  color: var(--amx-c-muted);
  font-size: var(--wp--preset--font-size--small, 0.875rem);
}
.amx-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  min-height: 48px;
  padding: 0.6rem 1.25rem;
  border-radius: var(--wp--custom--radius--control, 999px);
  border: 1px solid var(--amx-c-primary);
  background: var(--amx-c-primary);
  color: var(--amx-c-on-primary);
  font: 600 0.9375rem / 1 var(--amx-sans);
  cursor: pointer;
}
.amx-button.is-outline {
  background: transparent;
  color: var(--amx-c-text);
  border-color: var(--amx-c-strong);
}
.amx-actions {
  display: grid;
  gap: 0.75rem;
  margin-top: 1rem;
}

/* Session and speaker pages */
.amx-crumb {
  font-size: var(--wp--preset--font-size--small, 0.875rem);
  color: var(--amx-c-muted);
}
.amx-crumb a {
  color: inherit;
}
.amx-page-title {
  font-size: var(--wp--preset--font-size--display, 4rem);
  overflow-wrap: anywhere;
}
.amx-session .amx-page-title {
  font-size: var(--wp--preset--font-size--xx-large, 3rem);
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--amx-c-text);
}
.amx-lead {
  font: 400 var(--wp--preset--font-size--x-large, 1.5rem) / 1.35 var(--amx-serif);
}
.amx-split {
  display: grid;
  gap: 2rem 4rem;
}
@media (min-width: 60rem) {
  .amx-split {
    grid-template-columns: minmax(0, 1fr) 22rem;
  }
  .amx-split.is-portrait {
    grid-template-columns: 20rem minmax(0, 1fr);
  }
}
/* Sidebars come before the main content on phones (WS-15 decision 5). */
@media (max-width: 59.99rem) {
  .amx-split > aside {
    order: -1;
  }
}
.amx-subhead {
  font-size: var(--wp--preset--font-size--large, 1.3125rem);
  margin-top: 2.5rem;
}
.amx-also {
  margin-top: var(--wp--preset--spacing--70, 4rem);
}

/* People */
.amx-people,
.amx-people-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0 2rem;
}
@media (min-width: 40rem) {
  .amx-speakers.is-layout-list .amx-people,
  .amx-speakers.is-layout-keynote .amx-people,
  .amx-people-list.is-row {
    grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
  }
}
.amx-person:not(.is-tile) {
  display: grid;
  grid-template-columns: 2.75rem 1fr;
  gap: 1rem;
  align-items: start;
  padding: 1rem 0;
  border-bottom: 1px solid var(--amx-c-border);
}
.amx-person > div > * {
  margin: 0;
}
.amx-person-name {
  font: 400 var(--wp--preset--font-size--large, 1.3125rem) / 1.25 var(--amx-serif);
}
.amx-person-name a {
  color: inherit;
  text-decoration: none;
}
.amx-person-name a:hover {
  text-decoration: underline;
}
.amx-monogram {
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  width: 2.75rem;
  border-radius: 999px;
  border: 1px solid var(--amx-c-border);
  background: var(--amx-c-surface);
  font: 600 0.75rem / 1 var(--amx-sans);
}
.amx-person img {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 999px;
  object-fit: cover;
}
.amx-tile {
  aspect-ratio: 4 / 5;
  background: var(--amx-c-primary);
  color: var(--amx-c-on-primary);
  overflow: hidden;
  position: relative;
}
.amx-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
}
.amx-tile .amx-monogram {
  position: absolute;
  inset: auto auto 1rem 1.25rem;
  width: auto;
  aspect-ratio: auto;
  background: none;
  border: 0;
  border-radius: 0;
  color: inherit;
  font: 400 clamp(2.5rem, 2rem + 2vw, 4rem) / 1 var(--amx-serif);
}
.amx-speakers.is-layout-grid .amx-people {
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  gap: 2rem;
}
.amx-speakers.is-layout-strip .amx-people {
  grid-auto-flow: column;
  grid-auto-columns: minmax(12rem, 14rem);
  overflow-x: auto;
  gap: 1.5rem;
  padding-bottom: 1rem;
}
.amx-person.is-tile .amx-person-name {
  margin-top: 0.75rem;
}
.amx-keynote {
  display: grid;
  gap: 2rem;
  margin: 0 0 2rem;
}
@media (min-width: 48rem) {
  .amx-keynote {
    grid-template-columns: 16rem 1fr;
    align-items: center;
  }
}
.amx-keynote blockquote {
  margin: 0;
}
.amx-keynote blockquote p {
  font: italic 400 var(--wp--preset--font-size--x-large, 1.75rem) / 1.3 var(--amx-serif);
  margin: 0 0 1rem;
}
.amx-keynote figcaption {
  font-size: var(--wp--preset--font-size--small, 0.875rem);
}
.amx-search input {
  width: min(100%, 18rem);
}
.amx-links {
  list-style: none;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
}

/* Now and next */
.amx-now-next {
  display: grid;
  gap: 1.5rem 3rem;
}
@media (min-width: 48rem) {
  .amx-now-next {
    grid-template-columns: 1fr 1fr;
  }
}
.amx-nn {
  border-top: 1px solid var(--amx-c-text);
  padding-top: 1rem;
}
.amx-nn > * {
  margin: 0 0 0.25rem;
}
.amx-nn-title {
  font: 400 var(--wp--preset--font-size--x-large, 1.75rem) / 1.2 var(--amx-serif);
}

/* Sponsors */
.amx-sponsor-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 2.5rem;
  align-items: center;
}
.amx-sponsor a {
  color: inherit;
  text-decoration: none;
}
.amx-sponsor-name {
  font: 700 1.0625rem / 1.2 var(--amx-sans);
}
.amx-sponsor img {
  max-height: 3rem;
  width: auto;
}
.amx-sponsors.is-layout-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 2.5rem;
  border-block: 1px solid var(--amx-c-border);
  padding-block: 1.5rem;
}
.amx-sponsors.is-layout-line .amx-kicker {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--amx-c-muted);
}
.amx-sponsors.is-layout-wall .amx-sponsor-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
  gap: 0;
  border-top: 1px solid var(--amx-c-border);
  border-left: 1px solid var(--amx-c-border);
}
.amx-sponsors.is-layout-wall .amx-sponsor {
  display: grid;
  place-items: center;
  min-height: 7rem;
  padding: 1rem;
  border-right: 1px solid var(--amx-c-border);
  border-bottom: 1px solid var(--amx-c-border);
  text-align: center;
}
.amx-tier-row {
  display: grid;
  gap: 1rem 2rem;
  padding: 1.75rem 0;
  border-bottom: 1px solid var(--amx-c-border);
}
@media (min-width: 48rem) {
  .amx-tier-row {
    grid-template-columns: 12rem 1fr;
  }
}
.amx-tier-label {
  margin: 0;
  font: 600 var(--wp--preset--font-size--small, 0.875rem) / 1.4 var(--amx-sans);
  color: var(--amx-c-muted);
}
.amx-tier-row .amx-sponsor-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
  gap: 0.75rem;
}
.amx-tier-row .amx-sponsor > *,
.amx-tier-row .amx-sponsor > a {
  display: grid;
  gap: 1rem;
  align-content: space-between;
  height: 100%;
  min-height: 8rem;
  padding: 1.25rem;
  border: 1px solid var(--amx-c-border);
  background: var(--amx-c-bg);
  box-sizing: border-box;
}
.amx-tier-row.is-lead .amx-sponsor-name {
  font-size: 1.625rem;
}

/* Empty states and editor notes */
.amx-empty {
  border: 1px dashed var(--amx-c-strong);
  padding: 2.5rem 1.5rem;
  text-align: center;
  color: var(--amx-c-muted);
}
.amx-placeholder {
  border: 1px dashed var(--amx-c-strong);
  padding: 0.75rem 1rem;
  font: 400 0.875rem / 1.4 var(--amx-sans);
  color: var(--amx-c-muted);
}
.amx-placeholder-button {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 1.375rem;
  border-radius: var(--wp--custom--radius--control, 999px);
  background: var(--amx-c-primary);
  color: var(--amx-c-on-primary);
  font: 600 0.9375rem / 1 var(--amx-sans);
}

/* `hidden` wins over the display rules above (the view module toggles it). */
[class*="wp-block-amx-"] [hidden],
[class*="wp-block-amx-"][hidden] {
  display: none;
}
.amx-person-page .amx-page-title {
  font-size: var(--wp--preset--font-size--xx-large, 3rem);
}

/* Postponed: the old date struck through before the new one; cancelled: no button, a refund link. */
.amx-was {
  color: var(--amx-c-muted);
}
.amx-now {
  font-weight: 600;
  color: var(--wp--preset--color--warning, #8a5300);
}
.amx-ticket-button.is-cancelled .amx-button {
  width: auto;
  min-height: 40px;
}
.amx-refund {
  color: var(--amx-c-muted);
}
