.event-formats-page {
  overflow-wrap: anywhere;
}

.event-formats-page .media-frame img {
  transition: transform var(--transition-base);
}

.ef-hero__layout,
.ef-celebrations__layout,
.ef-dinner__layout,
.ef-card-table__feature {
  display: grid;
  min-width: 0;
}

.ef-hero__layout {
  grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 6fr);
  align-items: center;
  gap: var(--space-6);
  padding-top: var(--space-5);
}

.ef-hero__copy {
  grid-column: 1 / 2;
  min-width: 0;
}

.ef-hero__copy h1 {
  max-width: 33.75rem;
  font-size: clamp(3.25rem, 4.9vw, 4rem);
  line-height: 1.03;
}

.ef-hero__copy > .lead {
  max-width: 33.75rem;
}

.ef-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4);
  min-width: 0;
  margin-bottom: var(--space-6);
}

.ef-hero__actions > * {
  min-width: 0;
}

.ef-hero__note {
  max-width: 24.375rem;
  padding-top: var(--space-4);
  border-top: 2px solid var(--color-terracotta);
}

.ef-hero__note p {
  margin-bottom: 0;
  color: var(--color-wood-900);
  font-family: var(--font-display);
  font-size: var(--text-h4);
  font-style: italic;
  line-height: var(--line-h4);
}

.ef-hero__media {
  grid-column: 3 / 4;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 4 / 5;
  margin: 0;
  border-radius: var(--radius-xl) var(--radius-lg) var(--radius-xl) var(--radius-lg);
}

.ef-hero__media img { object-position: right center; }

.ef-overview__intro {
  width: min(100%, 37.5rem);
  min-width: 0;
  margin-bottom: var(--space-7);
}

.ef-format-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-5);
  min-width: 0;
}

.ef-format-card,
.ef-cue-card,
.ef-route-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: var(--space-5);
  border: var(--border-soft);
  border-radius: var(--radius-md);
  background: var(--color-card-neutral);
}

.ef-format-card > :last-child,
.ef-cue-card > :last-child,
.ef-route-card > :last-child { margin-bottom: 0; }

.ef-format-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-width: 0;
  margin-bottom: var(--space-5);
  color: var(--color-terracotta-dark);
}

.ef-format-card__number,
.ef-story-item > span,
.ef-dinner__sections > article > span,
.ef-enquiry__prompts span {
  color: var(--color-terracotta-dark);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: var(--line-xs);
}

.ef-format-card h3 { font-size: var(--text-h4); }
.ef-format-card .text-link { margin-top: auto; }

.ef-celebrations { padding-block: var(--space-9); }
.ef-celebrations__layout {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: center;
  gap: var(--space-5);
}

.ef-celebrations__media {
  grid-column: 7 / 13;
  grid-row: 1;
  width: 100%;
  aspect-ratio: 3 / 2;
  margin: var(--space-7) 0 0;
}

.ef-celebrations__panel {
  grid-column: 1 / 6;
  grid-row: 1;
  min-width: 0;
  padding: clamp(var(--space-5), 3vw, var(--space-7));
  border: var(--border-soft);
  border-radius: var(--radius-lg);
  background: var(--color-card-neutral);
}

.ef-celebrations__lead {
  max-width: 32.5rem;
  padding-top: var(--space-4);
  border-top: 2px solid var(--color-terracotta);
}

.ef-principles {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
  min-width: 0;
  margin-top: var(--space-6);
}

.ef-principle {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: var(--space-3);
  min-width: 0;
}

.ef-principle .icon-line { color: var(--color-terracotta-dark); }
.ef-principle h3 { margin-bottom: var(--space-2); font-size: var(--text-lg); }
.ef-principle p { max-width: 26.25rem; margin-bottom: 0; }

.ef-brand { background: var(--color-milk-deep); }
.ef-brand__intro {
  width: min(100%, 37.5rem);
  min-width: 0;
  margin-bottom: var(--space-7);
}

.ef-brand__intro h2 { font-size: var(--text-h3); }
.ef-brand__story {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: start;
  gap: var(--space-5);
  min-width: 0;
}

.ef-brand__media {
  grid-column: 1 / 5;
  width: 100%;
  aspect-ratio: 4 / 3;
  margin: 0;
}

.ef-story-item {
  grid-column: span 2;
  min-width: 0;
  padding: var(--space-5);
  border-top: 1px solid var(--color-line-soft);
}

.ef-story-item--raised {
  margin-top: calc(var(--space-6) * -1);
  border: var(--border-soft);
  border-radius: var(--radius-md);
  background: var(--color-card-neutral);
}

.ef-story-item h3 { margin-top: var(--space-3); font-size: var(--text-h4); }
.ef-story-item p { margin-bottom: 0; }

.ef-dinner__layout {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: start;
  gap: var(--space-5);
}

.ef-dinner__content { grid-column: 1 / 9; min-width: 0; }
.ef-dinner__opening {
  width: min(100%, 31.25rem);
  min-width: 0;
  padding: var(--space-6);
  border: var(--border-soft);
  border-radius: var(--radius-lg);
  background: var(--color-card-neutral);
}
.ef-dinner__opening > :last-child { margin-bottom: 0; }
.ef-dinner__media {
  grid-column: 9 / 13;
  width: 100%;
  aspect-ratio: 4 / 5;
  margin: var(--space-6) 0 0;
}

.ef-dinner__sections {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
  width: min(100%, 29.375rem);
  min-width: 0;
  margin-top: var(--space-7);
}

.ef-dinner__sections > article {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: var(--space-3);
  min-width: 0;
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-line-soft);
}

.ef-dinner__sections h3 { margin-bottom: var(--space-2); font-size: var(--text-h4); }
.ef-dinner__sections p { margin-bottom: 0; }
.ef-dinner__quote { width: min(100%, 27.5rem); margin-top: var(--space-7); }

.ef-card-table { background: var(--color-milk-deep); }
.ef-card-table__feature {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: end;
  gap: var(--space-5);
}
.ef-card-table__media {
  grid-column: 6 / 13;
  grid-row: 1;
  width: 100%;
  aspect-ratio: 3 / 2;
  margin: 0;
}
.ef-card-table__panel {
  z-index: 1;
  grid-column: 1 / 6;
  grid-row: 1;
  min-width: 0;
  margin-right: calc(var(--space-8) * -1);
  padding: clamp(var(--space-5), 3vw, var(--space-7));
  border: var(--border-soft);
  border-radius: var(--radius-lg);
  background: var(--color-card-neutral);
}
.ef-card-table__panel p { max-width: 30.625rem; margin-bottom: 0; }
.ef-cue-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  min-width: 0;
  margin-top: var(--space-7);
}
.ef-cue-card .icon-line,
.ef-route-card .icon-line { margin-bottom: var(--space-5); color: var(--color-terracotta-dark); }
.ef-cue-card h3,
.ef-route-card h3 { font-size: var(--text-h4); }

.ef-choice__container { width: min(100% - (var(--gutter) * 2), 57.5rem); }
.ef-choice__intro { width: min(100%, 38.75rem); min-width: 0; margin-bottom: var(--space-7); }
.ef-choice__rows {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  min-width: 0;
  border-top: 1px solid var(--color-line-soft);
}
.ef-choice__rows > article {
  display: grid;
  grid-template-columns: 13.75rem minmax(0, 1fr);
  gap: var(--space-6);
  min-width: 0;
  padding: var(--space-5) 0;
  border-bottom: 1px solid var(--color-line-soft);
}
.ef-choice__rows h3 { margin-bottom: 0; font-size: var(--text-h4); }
.ef-choice__rows p { max-width: 38.75rem; }
.ef-choice__rows p:last-of-type { margin-bottom: var(--space-3); }

.ef-routes__intro { width: min(100%, 37.5rem); min-width: 0; margin-bottom: var(--space-7); }
.ef-route-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  min-width: 0;
}
.ef-route-card .text-link { margin-top: auto; }

.ef-faq { background: var(--color-milk-deep); }
.ef-faq__intro { width: 100%; min-width: 0; margin-bottom: var(--space-6); text-align: center; }
.ef-faq__intro p { margin-inline: auto; }
.ef-faq__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); min-width: 0; }
.ef-faq__item { min-width: 0; border: var(--border-soft); border-radius: var(--radius-md); background: var(--color-card-neutral); overflow: hidden; }
.ef-faq__item h3 { margin: 0; font-family: var(--font-body); font-size: inherit; letter-spacing: normal; }
.ef-faq__item button {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 2rem;
  align-items: center;
  width: 100%;
  min-height: 3.5rem;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-5);
  border: 0;
  background: transparent;
  color: var(--color-wood-900);
  font-size: var(--text-base);
  font-weight: 600;
  line-height: var(--line-base);
  text-align: left;
}
.ef-faq__item button span { font-size: 1.5rem; font-weight: 400; text-align: center; transition: transform var(--transition-fast); }
.ef-faq__item button[aria-expanded="true"] span { transform: rotate(45deg); }
.ef-faq__answer { padding: 0 var(--space-5) var(--space-5); }
.ef-faq__answer > :last-child { margin-bottom: 0; }
.ef-faq__answer ul { max-width: 36.875rem; }
.js .ef-faq__answer[hidden] { display: none; }

.ef-enquiry__panel {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  min-width: 0;
  padding: clamp(var(--space-5), 4vw, var(--space-8));
  border-radius: var(--radius-lg);
  background: var(--color-milk-deep);
}
.ef-enquiry__copy { grid-column: 1 / 7; min-width: 0; }
.ef-enquiry__copy p { max-width: 33.75rem; }
.ef-enquiry__copy p:last-of-type { margin-bottom: var(--space-5); }
.ef-enquiry__accent { grid-column: 9 / 11; align-self: center; justify-self: center; width: 7.5rem; color: var(--color-sage-muted); stroke-width: 1.6; }
.ef-enquiry__prompts {
  grid-column: 1 / 13;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  min-width: 0;
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-line-soft);
}
.ef-enquiry__prompts article { min-width: 0; }
.ef-enquiry__prompts h3 { margin-top: var(--space-2); margin-bottom: var(--space-2); font-size: var(--text-h4); }
.ef-enquiry__prompts p { margin-bottom: 0; }

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .event-formats-page .media-frame:hover img { transform: scale(1.02); }
  .ef-format-card:hover,
  .ef-cue-card:hover,
  .ef-route-card:hover,
  .ef-story-item:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); }
}

@media (max-width: 63.75rem) {
  .ef-format-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ef-brand__story { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .ef-brand__media { grid-column: 1 / 4; }
  .ef-story-item { grid-column: span 2; }
  .ef-story-item:last-child { grid-column: 4 / 9; }
}

@media (max-width: 61.25rem) {
  .ef-brand__story { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .ef-story-item { grid-column: span 2; }
  .ef-card-table__panel { margin-right: calc(var(--space-6) * -1); }
}

@media (max-width: 56.25rem) {
  .ef-hero__layout { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
  .ef-hero__copy { grid-column: 1; }
  .ef-hero__media { grid-column: 2; }
  .ef-hero__copy h1 { font-size: 2.75rem; }
  .ef-celebrations__layout { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .ef-celebrations__panel { grid-column: 1 / 5; }
  .ef-celebrations__media { grid-column: 5 / 9; margin-top: var(--space-5); }
  .ef-dinner__layout { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .ef-dinner__content { grid-column: 1 / 6; }
  .ef-dinner__media { grid-column: 6 / 9; }
  .ef-card-table__feature { grid-template-columns: repeat(8, minmax(0, 1fr)); align-items: start; }
  .ef-card-table__panel { grid-column: 1 / 5; grid-row: auto; margin-right: 0; }
  .ef-card-table__media { grid-column: 5 / 9; grid-row: auto; }
  .ef-cue-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ef-cue-card:last-child { grid-column: 1 / 3; }
  .ef-route-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ef-route-card:last-child { grid-column: 1 / 3; }
  .ef-enquiry__panel { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .ef-enquiry__copy { grid-column: 1 / 9; }
  .ef-enquiry__accent { display: none; }
  .ef-enquiry__prompts { grid-column: 1 / 9; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ef-enquiry__prompts article:last-child { grid-column: 1 / 3; }
}

@media (max-width: 45rem) {
  .ef-hero__layout,
  .ef-celebrations__layout,
  .ef-dinner__layout,
  .ef-card-table__feature { grid-template-columns: minmax(0, 1fr); }
  .ef-hero__copy,
  .ef-hero__media,
  .ef-celebrations__panel,
  .ef-celebrations__media,
  .ef-dinner__content,
  .ef-dinner__media,
  .ef-card-table__panel,
  .ef-card-table__media { grid-column: 1; grid-row: auto; }
  .ef-hero__media { aspect-ratio: 3 / 2; }
  .ef-hero__copy h1 { font-size: 2.25rem; }
  .ef-hero__actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  .ef-hero__actions > * { width: 100%; min-height: var(--control-height); }
  .ef-hero__actions .text-link { display: inline-flex; align-items: center; }
  .ef-celebrations__layout,
  .ef-dinner__layout,
  .ef-card-table__feature { gap: var(--space-5); }
  .ef-celebrations__media { order: -1; margin: 0; aspect-ratio: 3 / 2; }
  .ef-dinner__media { order: -1; margin: 0; aspect-ratio: 3 / 2; }
  .ef-card-table__media { order: -1; aspect-ratio: 3 / 2; }
  .ef-celebrations__panel,
  .ef-card-table__panel { padding: var(--space-5); }
  .ef-dinner__opening { width: 100%; padding: var(--space-5); }
  .ef-dinner__sections,
  .ef-dinner__quote { width: 100%; }
  .ef-format-grid,
  .ef-cue-grid,
  .ef-route-grid { grid-template-columns: minmax(0, 1fr); }
  .ef-cue-card:last-child,
  .ef-route-card:last-child { grid-column: 1; }
  .ef-brand__intro,
  .ef-overview__intro,
  .ef-routes__intro { margin-bottom: var(--space-6); }
  .ef-brand__story { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
  .ef-brand__media,
  .ef-story-item,
  .ef-story-item:last-child { grid-column: 1; }
  .ef-brand__media { order: 1; aspect-ratio: 3 / 2; }
  .ef-story-item { order: 2; padding: var(--space-5); border: var(--border-soft); border-radius: var(--radius-md); background: var(--color-card-neutral); }
  .ef-story-item--raised { margin-top: 0; }
  .ef-choice__container { width: min(100% - (var(--gutter) * 2), 57.5rem); }
  .ef-choice__rows > article { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); padding: var(--space-5) 0; }
  .ef-choice__rows .text-link { display: inline-flex; align-items: center; min-height: var(--control-height); }
  .ef-faq__item button { min-height: 3.5rem; padding: var(--space-4); }
  .ef-faq__answer { padding: 0 var(--space-4) var(--space-4); }
  .ef-enquiry__panel { grid-template-columns: minmax(0, 1fr); padding: var(--space-5); }
  .ef-enquiry__copy,
  .ef-enquiry__prompts { grid-column: 1; }
  .ef-enquiry__copy .button { width: 100%; }
  .ef-enquiry__prompts { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .ef-enquiry__prompts article,
  .ef-enquiry__prompts article:last-child { grid-column: 1; padding: var(--space-4) 0; border-bottom: 1px solid var(--color-line-soft); }
  .ef-enquiry__prompts article:last-child { border-bottom: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .event-formats-page .media-frame img,
  .ef-faq__item button span { transition: none; }
}
