.veranstaltungen-page {
  overflow: hidden;
}

.veranstaltungen-page .events-grid,
.veranstaltungen-page .events-occasions,
.veranstaltungen-page .events-process,
.veranstaltungen-page .events-atmosphere,
.veranstaltungen-page .events-links {
  position: relative;
}

.veranstaltungen-page .events-grid::before,
.veranstaltungen-page .events-occasions::before,
.veranstaltungen-page .events-process::before,
.veranstaltungen-page .events-atmosphere::before,
.veranstaltungen-page .events-links::before {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: linear-gradient(to right, rgb(32 35 34 / 7%) 1px, transparent 1px);
  background-size: calc((100% - 6rem) / 12) 100%;
  content: "";
}

.veranstaltungen-page section > .container {
  position: relative;
  z-index: 1;
}

.events-hero {
  padding-block: clamp(4rem, 8vw, 6.5rem) var(--space-7);
  overflow: hidden;
}

.events-hero__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--space-5);
  align-items: center;
}

.events-hero__content {
  grid-column: 1 / span 5;
  min-width: 0;
}

.events-hero__mark {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  min-width: 0;
  margin-block-end: var(--space-5);
}

.events-hero__mark .eyebrow {
  margin: var(--space-3) 0 0;
}

.events-hero__number {
  color: var(--color-concrete-grey);
  font-family: var(--font-heading);
  font-size: clamp(4rem, 9vw, 8rem);
  font-weight: 700;
  letter-spacing: -0.08em;
  line-height: 0.75;
}

.events-hero__title {
  max-width: 10ch;
  margin-block-end: var(--space-7);
  font-size: clamp(2.75rem, 5.5vw, 5.75rem);
}

.events-hero__title span {
  color: var(--color-oxidized-copper);
}

.events-hero__intro {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  width: min(100%, 35rem);
  min-width: 0;
}

.events-hero__intro .intro {
  margin: 0;
}

.events-hero__media {
  grid-column: 7 / span 6;
  min-width: 0;
  margin: 0;
}

.events-hero__frame {
  height: clamp(30rem, 46vw, 42rem);
  overflow: hidden;
  background: var(--color-concrete-grey);
}

.events-hero__frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 64% center;
}

.events-hero__media figcaption,
.events-kitchen__media figcaption,
.events-formats__media figcaption,
.events-atmosphere figure figcaption {
  margin-block-start: var(--space-3);
  padding-block-start: var(--space-3);
  border-block-start: var(--border);
  color: var(--color-text-muted);
  font-size: var(--text-technical);
  font-weight: 600;
  letter-spacing: .12em;
  line-height: 1.35;
  text-transform: uppercase;
}

.events-occasions__heading {
  width: min(100%, 43rem);
  min-width: 0;
  margin-block-end: var(--space-8);
}

.events-occasions__heading .intro {
  width: min(100%, 38rem);
}

.events-occasions__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  border-block-start: var(--border-strong);
}

.occasion-module {
  display: grid;
  grid-template-columns: 2.25rem minmax(0, 1fr);
  gap: var(--space-3);
  min-width: 0;
  padding: var(--space-5);
  border-inline-end: var(--border);
  border-block-end: var(--border);
  transition: background-color var(--transition-fast), border-color var(--transition-fast);
}

.occasion-module:first-child {
  border-inline-start: var(--border);
}

.occasion-module:hover {
  border-block-start-color: var(--color-oxidized-copper);
  background: rgb(166 95 67 / 8%);
}

.occasion-module__number,
.process-step > span,
.events-kitchen__detail > span {
  color: var(--color-oxidized-copper);
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1;
}

.occasion-module h3,
.occasion-module p {
  margin-block-end: var(--space-3);
}

.occasion-module a,
.format-module a,
.process-step a,
.events-location__status a {
  font-weight: 500;
  text-decoration-thickness: 1px;
}

.occasion-module--forest {
  border-color: var(--color-deep-forest-green);
  background: var(--color-deep-forest-green);
  color: var(--color-chalk-white);
}

.occasion-module--forest .occasion-module__number {
  color: var(--color-paper-muted);
}

.events-kitchen__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-7);
  align-items: start;
}

.events-kitchen__media {
  grid-column: 1 / span 6;
  width: calc(100% + max(0px, (100vw - var(--container-max)) / 2));
  min-width: 0;
  height: clamp(28rem, 48vw, 44rem);
  margin: 0;
}

.events-kitchen__media img {
  width: 100%;
  height: 100%;
  object-position: center center;
}

.events-kitchen__content {
  grid-column: 8 / -1;
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  min-width: 0;
}

.events-kitchen__content > * {
  min-width: 0;
  margin: 0;
}

.events-kitchen__content > p:not(.eyebrow) {
  max-width: 37rem;
}

.events-kitchen__detail {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: var(--space-3);
  min-width: 0;
  padding-block-start: var(--space-5);
  border-block-start: var(--border-strong);
}

.events-kitchen__detail h3,
.events-kitchen__detail p {
  margin-block-end: var(--space-3);
}

.events-kitchen__cta {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  min-width: 0;
  padding: var(--space-5);
  background: var(--color-paper-muted);
}

.events-kitchen__cta > * {
  margin: 0;
}

.events-kitchen__cta p {
  max-width: 32rem;
}

.events-kitchen__cta .button-secondary {
  align-self: flex-start;
}

.events-process__heading {
  width: min(100%, 37rem);
  min-width: 0;
  margin-block-end: var(--space-8);
}

.events-process__heading .intro {
  margin-block-end: 0;
}

.events-process__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  border-block-start: var(--border-strong);
}

.process-step {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-4);
  min-width: 0;
  padding: var(--space-5);
  border-inline-end: var(--border);
  border-block-end: var(--border);
}

.process-step:first-child {
  border-inline-start: var(--border);
}

.process-step h3,
.process-step p {
  margin-block-end: var(--space-3);
}

.process-step--forest {
  border-color: var(--color-deep-forest-green);
  background: var(--color-deep-forest-green);
  color: var(--color-chalk-white);
}

.process-step--forest > span {
  color: var(--color-paper-muted);
}

.events-formats__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  align-items: start;
}

.events-formats__head {
  grid-column: 1 / span 8;
  min-width: 0;
}

.events-formats__head .display {
  max-width: 10ch;
  margin-block-end: 0;
  font-size: clamp(3.5rem, 8vw, 8rem);
}

.events-formats__media {
  grid-column: 10 / -1;
  width: 100%;
  min-width: 0;
  height: clamp(22rem, 36vw, 34rem);
  margin: 0;
}

.events-formats__media img {
  width: 100%;
  height: 100%;
  object-position: center bottom;
}

.events-formats .caption,
.events-formats figcaption {
  color: var(--color-paper-muted);
}

.events-formats__list {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  min-width: 0;
  border-block-start: 1px solid rgb(241 239 232 / 45%);
}

.format-module {
  min-width: 0;
  padding: var(--space-5);
  border-inline-end: 1px solid rgb(241 239 232 / 38%);
  border-block-end: 1px solid rgb(241 239 232 / 38%);
  transition: border-color var(--transition-fast), background-color var(--transition-fast);
}

.format-module:first-child {
  border-inline-start: 1px solid rgb(241 239 232 / 38%);
}

.format-module:hover {
  border-inline-start-color: var(--color-oxidized-copper);
  background: rgb(241 239 232 / 6%);
}

.format-module .meta {
  margin-block-end: var(--space-4);
  color: var(--color-paper-muted);
}

.format-module h3,
.format-module p {
  margin-block-end: var(--space-3);
}

.events-atmosphere__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  align-items: start;
}

.events-atmosphere__intro {
  grid-column: 1 / span 4;
  min-width: 0;
}

.events-atmosphere__intro p:not(.eyebrow) {
  max-width: 31rem;
}

.events-atmosphere__detail {
  grid-column: 5 / span 5;
  width: 100%;
  min-width: 0;
  height: clamp(25rem, 38vw, 36rem);
  margin: 0;
}

.events-atmosphere__detail img,
.events-atmosphere__table img {
  width: 100%;
  height: 100%;
}

.events-atmosphere__detail img {
  object-position: center center;
}

.events-atmosphere__table-copy {
  grid-column: 10 / -1;
  min-width: 0;
  padding-block-start: var(--space-8);
}

.events-atmosphere__table-copy p {
  max-width: 26rem;
}

.events-atmosphere__table {
  grid-column: 2 / span 6;
  width: 100%;
  min-width: 0;
  height: clamp(19rem, 29vw, 29rem);
  margin: 0;
}

.events-atmosphere__table img {
  object-position: center center;
}

.events-atmosphere__light {
  grid-column: 8 / -1;
  min-width: 0;
  padding: var(--space-5);
  background: var(--color-paper-muted);
}

.events-atmosphere__light p {
  max-width: 31rem;
  margin-block-end: 0;
}

.events-preparation__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  align-items: start;
}

.events-preparation__intro {
  grid-column: 1 / span 5;
  min-width: 0;
}

.events-preparation__intro p:not(.eyebrow) {
  max-width: 38rem;
}

.events-preparation__list {
  grid-column: 1 / span 8;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  min-width: 0;
  border-block-start: var(--border-strong);
}

.events-preparation__list > div {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
  min-height: 8.5rem;
  padding: var(--space-4);
  border-inline-end: var(--border);
  border-block-end: var(--border);
}

.events-preparation__list > div:first-child {
  border-inline-start: var(--border);
}

.events-preparation__list span {
  color: var(--color-oxidized-copper);
  font-family: var(--font-heading);
  font-weight: 700;
}

.events-preparation__list p {
  margin: 0;
  font-size: var(--text-small);
  line-height: var(--leading-small);
}

.events-preparation__quote {
  grid-column: 8 / -1;
  min-width: 0;
  margin: calc(var(--space-8) * -1) 0 0;
  padding: var(--space-6);
  background: var(--color-paper-muted);
}

.events-preparation__actions {
  grid-column: 1 / span 6;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  min-width: 0;
}

.events-preparation__actions > * {
  margin: 0;
}

.events-links__heading {
  width: min(100%, 36rem);
  min-width: 0;
  margin-block-end: var(--space-8);
}

.events-links__heading .intro {
  margin-block-end: 0;
}

.events-links__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border-block-start: var(--border-strong);
}

.events-link-module {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  min-width: 0;
  min-height: 19rem;
  padding: var(--space-5);
  border-inline-end: var(--border);
  border-block-end: var(--border);
  color: inherit;
  text-decoration: none;
  transition: background-color var(--transition-fast), box-shadow var(--transition-fast);
}

.events-link-module:first-child {
  border-inline-start: var(--border);
}

.events-link-module:hover {
  background: var(--color-paper-muted);
}

.events-link-module > * {
  margin: 0;
}

.events-link-module > span {
  margin-block-start: auto;
  font-weight: 500;
  text-decoration: underline;
  text-decoration-color: var(--color-oxidized-copper);
  text-underline-offset: 0.25em;
}

.events-location__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  align-items: start;
}

.events-location__address {
  grid-column: 1 / span 4;
  min-width: 0;
}

.events-location__address address {
  margin-block-end: var(--space-4);
  font-size: var(--text-body);
  font-weight: 500;
}

.events-location__address > p:last-child {
  max-width: 29rem;
}

.events-location__map {
  position: relative;
  grid-column: 7 / -1;
  width: 100%;
  min-width: 0;
  min-height: 20rem;
  overflow: hidden;
  border: var(--border-strong);
  background: var(--color-concrete-grey);
}

.events-location__map::before,
.events-location__map::after,
.map-line {
  position: absolute;
  display: block;
  height: 1px;
  background: var(--color-graphite);
  content: "";
}

.events-location__map::before { width: 125%; top: 26%; left: -12%; transform: rotate(-18deg); }
.events-location__map::after { width: 110%; top: 70%; left: -5%; transform: rotate(24deg); }
.map-line--one { width: 130%; top: 48%; left: -16%; transform: rotate(8deg); }
.map-line--two { width: 115%; top: 14%; left: -7%; transform: rotate(47deg); }
.map-line--three { width: 130%; top: 83%; left: -16%; transform: rotate(-36deg); }
.map-line--four { width: 110%; top: 52%; left: -4%; transform: rotate(75deg); }
.map-point { position: absolute; top: 49%; left: 52%; width: 0.85rem; height: 0.85rem; border: 2px solid var(--color-chalk-white); background: var(--color-oxidized-copper); }
.map-label { position: absolute; right: var(--space-4); bottom: var(--space-3); font-size: var(--text-technical); font-weight: 600; letter-spacing: 0.12em; }

.events-location__status {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3) var(--space-5);
  min-width: 0;
  padding-block: var(--space-4);
  border-block: var(--border-strong);
}

.events-location__status > * {
  min-width: 0;
  margin: 0;
}

.events-location__status > p:nth-child(2) {
  font-size: var(--text-small);
  font-weight: 500;
}

.events-location__status a {
  margin-inline-start: auto;
}

.events-form__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  align-items: start;
}

.events-form__head {
  grid-column: 1 / span 7;
  min-width: 0;
}

.events-form__head h2 {
  max-width: 9ch;
  font-size: clamp(3rem, 5.5vw, 5.8rem);
}

.events-form__head .intro {
  width: min(100%, 35rem);
  margin-block-end: 0;
}

.events-form__space {
  grid-column: 10 / -1;
  align-self: stretch;
  min-width: 0;
  min-height: 12rem;
  border-inline-start: var(--border-accent);
}

.events-request-form {
  grid-column: 1 / span 9;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5) var(--space-4);
  min-width: 0;
  padding-block-start: var(--space-5);
  border-block-start: 1px solid rgb(241 239 232 / 40%);
}

.form-field {
  min-width: 0;
}

.form-field--full,
.events-request-form__actions {
  grid-column: 1 / -1;
}

.events-request-form label {
  color: var(--color-chalk-white);
}

.events-request-form input,
.events-request-form textarea {
  min-height: 3rem;
  border-color: var(--color-concrete-grey);
  background: var(--color-chalk-white);
  color: var(--color-graphite);
}

.events-request-form textarea {
  min-height: 8.75rem;
}

.form-error {
  min-height: 1.25rem;
  margin: var(--space-2) 0 0;
  color: var(--color-paper-muted);
  font-size: var(--text-small);
  line-height: var(--leading-small);
}

.form-field.is-invalid input,
.form-field.is-invalid textarea {
  border-color: var(--color-oxidized-copper);
  background: var(--color-paper-muted);
}

.events-request-form__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  min-width: 0;
}

.events-request-form__actions > * {
  margin: 0;
}

.events-request-form__privacy,
.events-request-form__status {
  max-width: 45rem;
  font-size: var(--text-small);
  line-height: var(--leading-small);
}

.events-request-form__status {
  min-height: 1.4rem;
  color: var(--color-paper-muted);
  font-weight: 500;
}

.events-reveal {
  opacity: 0;
  clip-path: inset(0 0 100% 0);
  transition: opacity 500ms ease-out, clip-path 500ms ease-out;
}

.events-reveal.is-visible {
  opacity: 1;
  clip-path: inset(0);
}

@media (max-width: 1100px) {
  .veranstaltungen-page .events-grid::before,
  .veranstaltungen-page .events-occasions::before,
  .veranstaltungen-page .events-process::before,
  .veranstaltungen-page .events-atmosphere::before,
  .veranstaltungen-page .events-links::before { background-size: calc((100% - 3rem) / 8) 100%; }

  .events-hero__grid,
  .events-kitchen__grid,
  .events-formats__grid,
  .events-atmosphere__grid,
  .events-preparation__grid,
  .events-location__grid,
  .events-form__grid { grid-template-columns: repeat(8, minmax(0, 1fr)); }

  .events-hero__content { grid-column: 1 / span 6; }
  .events-hero__media { grid-column: 1 / -1; margin: var(--space-6) 0 0; }
  .events-hero__frame { height: clamp(24rem, 52vw, 38rem); }
  .events-kitchen__media { grid-column: 1 / -1; width: 100%; height: clamp(23rem, 58vw, 38rem); }
  .events-kitchen__content { grid-column: 2 / span 6; }
  .events-formats__head { grid-column: 1 / -1; }
  .events-formats__media { grid-column: 1 / -1; height: clamp(20rem, 45vw, 30rem); }
  .events-formats__list { grid-column: 1 / -1; grid-template-columns: 1fr; }
  .format-module,
  .format-module:first-child { border-inline-start: 1px solid rgb(241 239 232 / 38%); }
  .events-atmosphere__intro { grid-column: 1 / -1; }
  .events-atmosphere__detail { grid-column: 1 / span 4; }
  .events-atmosphere__table-copy { grid-column: 5 / -1; padding-block-start: 0; }
  .events-atmosphere__table { grid-column: 1 / span 4; }
  .events-atmosphere__light { grid-column: 5 / -1; }
  .events-preparation__intro { grid-column: 1 / span 5; }
  .events-preparation__list { grid-column: 1 / -1; }
  .events-preparation__quote { grid-column: 3 / -1; margin: 0; }
  .events-preparation__actions { grid-column: 1 / span 5; }
  .events-location__address { grid-column: 1 / span 4; }
  .events-location__map { grid-column: 5 / -1; }
  .events-form__head { grid-column: 1 / -1; }
  .events-form__space { display: none; }
  .events-request-form { grid-column: 1 / -1; }
}

@media (max-width: 1019px) {
  .events-occasions__grid,
  .events-process__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .occasion-module:nth-child(odd),
  .process-step:nth-child(odd) { border-inline-start: var(--border); }

  .events-preparation__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 899px) {
  .events-hero__title { font-size: clamp(2.5rem, 7vw, 4.5rem); }
  .events-hero__intro { margin-inline-start: 0; }
  .events-links__grid { grid-template-columns: 1fr; }
  .events-link-module,
  .events-link-module:first-child { min-height: 0; border-inline-start: var(--border); }
}

@media (max-width: 719px) {
  .veranstaltungen-page .events-grid::before,
  .veranstaltungen-page .events-occasions::before,
  .veranstaltungen-page .events-process::before,
  .veranstaltungen-page .events-atmosphere::before,
  .veranstaltungen-page .events-links::before { display: none; }

  .events-hero { padding-block-start: var(--space-8); }
  .events-hero__grid,
  .events-kitchen__grid,
  .events-formats__grid,
  .events-atmosphere__grid,
  .events-preparation__grid,
  .events-location__grid,
  .events-form__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); }

  .events-hero__content,
  .events-hero__media,
  .events-kitchen__media,
  .events-kitchen__content,
  .events-formats__head,
  .events-formats__media,
  .events-formats__list,
  .events-atmosphere__intro,
  .events-atmosphere__detail,
  .events-atmosphere__table-copy,
  .events-atmosphere__table,
  .events-atmosphere__light,
  .events-preparation__intro,
  .events-preparation__list,
  .events-preparation__quote,
  .events-preparation__actions,
  .events-location__address,
  .events-location__map,
  .events-location__status,
  .events-form__head,
  .events-request-form { grid-column: 1 / -1; }

  .events-hero__number { font-size: 4.6rem; }
  .events-hero__title { max-width: 9ch; font-size: clamp(2.25rem, 11vw, 3.5rem); margin-block-end: var(--space-6); }
  .events-hero__media { margin-block-start: var(--space-6); }
  .events-hero__frame { height: clamp(20rem, 80vw, 30rem); }
  .events-hero__frame img { object-position: 62% center; }

  .events-occasions__heading,
  .events-process__heading,
  .events-links__heading { margin-block-end: var(--space-6); }

  .events-occasions__grid,
  .events-process__grid { grid-template-columns: 1fr; }

  .occasion-module,
  .occasion-module:first-child,
  .process-step,
  .process-step:first-child { border-inline-start: var(--border); }

  .occasion-module { padding: var(--space-5) var(--space-4); }
  .process-step { grid-template-columns: 20% minmax(0, 1fr); }

  .events-kitchen__media { width: 100%; height: auto; aspect-ratio: 4 / 5; }
  .events-kitchen__content { gap: var(--space-5); }
  .events-kitchen__cta .button-secondary { width: 100%; }

  .events-formats__head .display { font-size: clamp(2.5rem, 12vw, 3.4rem); }
  .events-formats__media { height: auto; aspect-ratio: 3 / 4; }
  .events-formats__list { grid-template-columns: 1fr; }

  .events-atmosphere__detail { height: auto; aspect-ratio: 4 / 5; }
  .events-atmosphere__table-copy { padding-block-start: 0; }
  .events-atmosphere__table { height: auto; aspect-ratio: 5 / 4; }

  .events-preparation__list { grid-template-columns: 1fr; }
  .events-preparation__list > div,
  .events-preparation__list > div:first-child { min-height: 3.5rem; border-inline-start: var(--border); }
  .events-preparation__quote { margin: 0; padding: var(--space-5); }

  .events-location__map { min-height: 11.25rem; aspect-ratio: 4 / 3; }
  .events-location__status { align-items: flex-start; }
  .events-location__status a { margin-inline-start: 0; }

  .events-form__head h2 { font-size: clamp(2.4rem, 12vw, 3.25rem); }
  .events-request-form { grid-template-columns: 1fr; gap: var(--space-4); }
  .events-request-form__actions { grid-column: 1; align-items: stretch; }
  .events-request-form .button { width: 100%; min-height: 3rem; }
}

@media (prefers-reduced-motion: reduce) {
  .events-reveal { opacity: 1; clip-path: none; }
}
