.firmenfeiern-page {
  overflow: clip;
}

.firmenfeiern-page .section {
  padding-block: clamp(var(--space-8), 8vw, var(--space-10));
}

.firmenfeiern-page figure {
  margin: 0;
}

.firmenfeiern-page img {
  width: 100%;
  max-width: 100%;
  object-fit: cover;
}

.ff-hero {
  padding-block: clamp(var(--space-7), 7vw, var(--space-10));
  background: var(--color-sky);
}

.ff-hero__grid,
.ff-occasions__grid,
.ff-elements__grid,
.ff-casino__grid,
.ff-location__grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-5);
}

.ff-hero__copy {
  grid-column: 1 / span 6;
  min-width: 0;
  align-self: center;
}

.ff-hero__copy h1 {
  max-width: 8.8ch;
  font-size: clamp(3rem, 5.2vw, 4rem);
  line-height: .98;
}

.ff-hero__copy .intro {
  max-width: 35rem;
}

.ff-hero__actions,
.ff-closing__actions {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4);
}

.ff-hero__actions > *,
.ff-closing__actions > * {
  min-width: 0;
}

.ff-hero__image {
  grid-column: 7 / span 6;
  min-width: 0;
  align-self: start;
}

.ff-hero__image img {
  aspect-ratio: 3 / 2;
  border: var(--border-warm);
  border-radius: var(--radius-image);
}

.ff-hero__detail {
  grid-column: 7 / span 3;
  min-width: 0;
  align-self: end;
  margin: -7rem 0 0 -1.5rem;
  z-index: 1;
}

.ff-hero__detail img {
  aspect-ratio: 1;
  border: 1px solid var(--color-ivory-warm);
  border-radius: var(--radius-image);
  box-shadow: var(--shadow-float);
}

.ff-hero figcaption,
.ff-occasions figcaption,
.ff-elements figcaption,
.ff-casino figcaption,
.ff-location figcaption {
  max-width: 18rem;
}

.ff-value__head {
  width: 58.333%;
  min-width: 0;
}

.ff-value__head .intro {
  max-width: 38rem;
}

.ff-value__items {
  display: grid;
  min-width: 0;
  grid-template-columns: 3fr 5fr 3fr;
  gap: clamp(var(--space-5), 4vw, var(--space-7));
  margin-top: var(--space-7);
}

.ff-value__item {
  min-width: 0;
}

.ff-value__item--two {
  min-width: 0;
  margin-top: var(--space-6);
  padding: var(--space-6);
  border: var(--border-warm);
  border-radius: var(--radius-card);
  background: var(--color-ivory-warm);
}

.ff-value__item--three {
  padding-top: var(--space-4);
}

.ff-number,
.ff-card-label {
  display: block;
  margin-bottom: var(--space-3);
  color: var(--color-tangerine);
  font-family: var(--font-heading);
  font-size: var(--font-size-caption);
  font-weight: 700;
  letter-spacing: .08em;
}

.ff-occasions__head {
  grid-column: 1 / span 7;
  min-width: 0;
}

.ff-occasions__head .intro {
  max-width: 38.75rem;
}

.ff-occasions__image {
  grid-column: 1 / span 8;
  min-width: 0;
  grid-row: 2 / span 2;
}

.ff-occasions__image img {
  aspect-ratio: 3 / 2;
  border: var(--border-warm);
  border-radius: var(--radius-image);
}

.ff-occasion {
  min-width: 0;
  background: var(--color-ivory);
}

.ff-occasion--one {
  grid-column: 1 / span 4;
  grid-row: 3;
  align-self: end;
  padding: var(--space-5);
  border: var(--border-warm);
  border-radius: var(--radius-card);
  background: var(--color-ivory-warm);
  box-shadow: var(--shadow-float);
}

.ff-occasion--two { grid-column: 9 / span 4; }
.ff-occasion--three {
  grid-column: 9 / span 4;
  padding-top: var(--space-5);
  border-top: 1px dashed var(--color-border-cool);
}
.ff-occasion--four {
  grid-column: 4 / span 5;
  padding-top: var(--space-5);
  border-top: 3px solid var(--color-emerald);
}

.ff-process {
  background: var(--color-stone);
  scroll-margin-top: 8rem;
}

.ff-process__head {
  width: 50%;
  min-width: 0;
}

.ff-process__head .intro { max-width: 37.5rem; }

.ff-process__steps {
  position: relative;
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-4);
  margin-top: var(--space-7);
}

.ff-process__steps::before {
  position: absolute;
  top: 2.25rem;
  right: 0;
  left: 0;
  height: 1px;
  background: var(--color-border-cool);
  content: "";
}

.ff-step {
  position: relative;
  display: flex;
  min-width: 0;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-5);
  background: var(--color-ivory);
}

.ff-step--two { margin-top: var(--space-4); background: var(--color-sky); }
.ff-step--three { margin-top: var(--space-2); }
.ff-step--four { margin-top: var(--space-5); background: var(--color-emerald); color: var(--color-ivory-warm); }
.ff-step--four h3 { color: var(--color-ivory-warm); }
.ff-step--four a { color: var(--color-ivory-warm); text-decoration-color: var(--color-tangerine); }

.ff-step__number {
  display: block;
  min-width: 2.25rem;
  color: var(--color-tangerine);
  font-family: var(--font-heading);
  font-weight: 700;
}

.ff-elements__content {
  grid-column: 1 / span 7;
  min-width: 0;
}

.ff-elements__content .intro { max-width: 32.5rem; }

.ff-elements__list {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-4);
  margin-top: var(--space-6);
}

.ff-element {
  display: grid;
  min-width: 0;
  grid-template-columns: 2.25rem minmax(0, 1fr);
  gap: var(--space-3);
  padding-bottom: var(--space-4);
  border-bottom: var(--border-warm);
}

.ff-element > span {
  color: var(--color-tangerine);
  font-family: var(--font-heading);
  font-weight: 700;
}

.ff-element--paper {
  padding: var(--space-5);
  border: var(--border-warm);
  border-radius: var(--radius-card);
  background: var(--color-ivory-warm);
}

.ff-elements__image {
  grid-column: 9 / span 4;
  min-width: 0;
  align-self: start;
  margin-top: var(--space-8);
}

.ff-elements__image img {
  aspect-ratio: 4 / 5;
  border: var(--border-warm);
  border-radius: var(--radius-image);
}

.ff-casino {
  background: var(--color-emerald);
  color: var(--color-ivory-warm);
}

.ff-casino .eyebrow,
.ff-casino .meta { color: var(--color-ivory-warm); }
.ff-casino .eyebrow::before { background: var(--color-tangerine); }

.ff-casino__copy {
  grid-column: 1 / span 5;
  min-width: 0;
  align-self: center;
}

.ff-casino__copy h2 { color: var(--color-ivory-warm); max-width: 13ch; }
.ff-casino__copy .intro { max-width: 35rem; }

.ff-casino__image {
  grid-column: 7 / span 6;
  min-width: 0;
}

.ff-casino__image img {
  aspect-ratio: 1;
  border: 1px solid var(--color-ivory-warm);
  border-radius: var(--radius-image);
}

.ff-casino__tables {
  display: grid;
  grid-column: 1 / -1;
  min-width: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-5);
}

.ff-casino-table {
  display: grid;
  min-width: 0;
  grid-template-columns: 2.25rem minmax(0, 1fr);
  gap: var(--space-3);
  padding-top: var(--space-4);
  border-top: 1px solid rgb(255 253 248 / 75%);
}

.ff-casino-table > span { color: var(--color-tangerine); font-family: var(--font-heading); font-weight: 700; }
.ff-casino-table h3,
.ff-casino-table a { color: var(--color-ivory-warm); }
.ff-casino-table a { text-decoration-color: var(--color-tangerine); }
.ff-casino__link {
  grid-column: 1 / span 4;
  min-width: 0;
  min-height: 2.75rem;
  padding-top: var(--space-3);
  color: var(--color-ivory-warm);
  font-family: var(--font-heading);
  font-weight: 650;
  text-decoration-color: var(--color-tangerine);
}

.ff-location__head { grid-column: 1 / span 6; min-width: 0; }
.ff-location__head .intro { max-width: 38rem; }
.ff-location__image { grid-column: 6 / span 7; min-width: 0; margin-top: var(--space-6); }
.ff-location__image img { aspect-ratio: 3 / 2; border: var(--border-warm); border-radius: var(--radius-image); }
.ff-location__scenario { min-width: 0; padding-top: var(--space-5); }
.ff-location__scenario--one { grid-column: 1 / span 4; border-top: 1px solid var(--color-border-cool); }
.ff-location__scenario--two { grid-column: 6 / span 3; padding: var(--space-5); border: var(--border-warm); border-radius: var(--radius-card); background: var(--color-ivory-warm); }
.ff-location__scenario--three { grid-column: 9 / span 4; border-top: 3px solid var(--color-sky); }

.ff-briefing { background: var(--color-sky); }
.ff-briefing__head { width: 50%; min-width: 0; }
.ff-briefing__head .intro { max-width: 35rem; }
.ff-briefing__cards {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-7);
}
.ff-briefing__card { min-width: 0; padding: var(--space-6); border: var(--border-warm); border-radius: var(--radius-card); background: var(--color-ivory-warm); }
.ff-briefing__card--stone { margin-top: var(--space-4); background: var(--color-stone); }
.ff-card-label { color: var(--color-emerald); }

.ff-related__head { width: 41.666%; min-width: 0; }
.ff-related__links { display: flex; min-width: 0; flex-direction: column; gap: var(--space-3); margin-top: var(--space-6); }
.ff-related__row {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(2.5rem, 1fr) minmax(0, 7fr) minmax(9rem, 4fr);
  align-items: center;
  gap: var(--space-5);
  min-height: 6.5rem;
  padding: var(--space-5);
  border-top: var(--border-warm);
  color: var(--color-graphite);
  text-decoration: none;
}
.ff-related__row:hover { color: var(--color-emerald); transform: translateX(2px); }
.ff-related__row > span { color: var(--color-tangerine); font-family: var(--font-heading); font-weight: 700; }
.ff-related__row h3 { margin-bottom: var(--space-2); }
.ff-related__row p { margin-bottom: 0; max-width: 26.25rem; }
.ff-related__row strong { justify-self: end; font-family: var(--font-heading); text-decoration: underline 2px var(--color-emerald); text-underline-offset: .2em; }
.ff-related__row--paper { border: var(--border-warm); border-radius: var(--radius-card); background: var(--color-ivory-warm); }

.ff-closing { background: var(--color-sky); }
.ff-closing__wrap { position: relative; display: grid; min-width: 0; grid-template-columns: repeat(12, minmax(0, 1fr)); }
.ff-closing__wrap::after { position: absolute; right: 13%; bottom: -1.5rem; width: 7rem; height: 5rem; background: var(--color-tangerine); content: ""; }
.ff-closing__card { grid-column: 4 / span 7; min-width: 0; padding: clamp(var(--space-5), 4vw, var(--space-7)); border: var(--border-warm); border-radius: var(--radius-card); background: var(--color-ivory-warm); box-shadow: var(--shadow-float); z-index: 1; }
.ff-closing__card h2 { max-width: 15ch; }
.ff-closing__card > p:not(.eyebrow) { max-width: 35.625rem; }

@media (max-width: 73.99rem) {
  .ff-hero__copy { grid-column: 1 / span 7; }
  .ff-hero__image { grid-column: 8 / span 5; }
  .ff-hero__detail { grid-column: 8 / span 3; margin-left: 0; }
  .ff-value__items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ff-value__item--two { margin-top: 0; }
  .ff-value__item--three { grid-column: 1 / -1; width: 50%; }
  .ff-occasions__image { grid-column: 1 / -1; grid-row: 2; }
  .ff-occasion--one, .ff-occasion--two, .ff-occasion--three, .ff-occasion--four { grid-row: auto; grid-column: span 6; margin: 0; }
  .ff-occasion--one { grid-column: 1 / span 6; }
  .ff-occasion--two { grid-column: 7 / span 6; }
  .ff-occasion--three { grid-column: 1 / span 6; }
  .ff-occasion--four { grid-column: 7 / span 6; }
  .ff-process__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ff-step--three, .ff-step--four { margin-top: 0; }
  .ff-casino__copy { grid-column: 1 / span 6; }
  .ff-casino__image { grid-column: 7 / span 6; }
}

@media (max-width: 63.99rem) {
  .ff-hero__grid, .ff-occasions__grid, .ff-elements__grid, .ff-casino__grid, .ff-location__grid { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: var(--space-5); }
  .ff-hero__copy { grid-column: 1 / span 5; }
  .ff-hero__image { grid-column: 6 / span 3; }
  .ff-hero__detail { grid-column: 6 / span 3; margin: 0; }
  .ff-value__head, .ff-process__head, .ff-briefing__head { width: 75%; }
  .ff-occasions__head { grid-column: 1 / span 6; }
  .ff-occasion--one, .ff-occasion--three { grid-column: 1 / span 4; }
  .ff-occasion--two, .ff-occasion--four { grid-column: 5 / span 4; }
  .ff-elements__content { grid-column: 1 / span 5; }
  .ff-elements__image { grid-column: 6 / span 3; margin-top: var(--space-7); }
  .ff-casino__copy, .ff-casino__image { grid-column: span 4; }
  .ff-casino__tables { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ff-casino-table:nth-child(3) { grid-column: 1 / -1; width: 50%; }
  .ff-location__head { grid-column: 1 / span 6; }
  .ff-location__image { grid-column: 1 / -1; }
  .ff-location__scenario--one, .ff-location__scenario--two { grid-column: span 4; }
  .ff-location__scenario--three { grid-column: 1 / -1; }
  .ff-briefing__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ff-briefing__card:nth-child(3) { grid-column: 1 / -1; }
  .ff-related__head { width: 62.5%; }
  .ff-closing__card { grid-column: 1 / -1; }
}

@media (max-width: 47.99rem) {
  .firmenfeiern-page .section { padding-block: clamp(var(--space-7), 13vw, var(--space-8)); }
  .ff-hero { padding-top: var(--space-5); }
  .ff-hero__grid, .ff-occasions__grid, .ff-elements__grid, .ff-casino__grid, .ff-location__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); }
  .ff-hero__image { grid-column: 1 / -1; grid-row: 1; }
  .ff-hero__image img { aspect-ratio: 4 / 5; }
  .ff-hero__copy { grid-column: 1 / -1; grid-row: 2; }
  .ff-hero__copy h1 { max-width: 10ch; font-size: clamp(2.625rem, 10vw, 3.5rem); }
  .ff-hero__copy .intro { max-width: none; font-size: 1.125rem; }
  .ff-hero__actions { align-items: stretch; }
  .ff-hero__actions .button { width: 100%; min-height: 3.25rem; }
  .ff-hero__actions .text-link { display: flex; min-height: 2.75rem; align-items: center; }
  .ff-hero__detail { grid-column: 3 / span 2; grid-row: 3; width: 100%; margin: 0; }
  .ff-value__head, .ff-process__head, .ff-briefing__head, .ff-related__head { width: 100%; }
  .ff-value__items, .ff-process__steps, .ff-briefing__cards { grid-template-columns: 1fr; }
  .ff-value__item--three { width: calc(100% - var(--space-5)); margin-left: var(--space-5); }
  .ff-value__item--two { padding: var(--space-5); }
  .ff-occasions__head, .ff-occasions__image, .ff-occasion--one, .ff-occasion--two, .ff-occasion--three, .ff-occasion--four { grid-column: 1 / -1; }
  .ff-occasions__image img { aspect-ratio: 4 / 5; }
  .ff-occasion--one { padding: var(--space-5); }
  .ff-occasion--two, .ff-occasion--four { width: calc(100% - var(--space-4)); margin-left: var(--space-4); }
  .ff-process__steps { gap: 0; margin-top: var(--space-6); }
  .ff-process__steps::before { top: 0; bottom: 0; left: 1.35rem; width: 1px; height: auto; }
  .ff-step, .ff-step--two, .ff-step--three, .ff-step--four { margin: 0; padding: var(--space-5) 0; background: transparent; }
  .ff-step--four { color: var(--color-graphite); }
  .ff-step--four h3, .ff-step--four a { color: var(--color-graphite); }
  .ff-step__number { position: relative; z-index: 1; min-width: 2.75rem; height: 2.75rem; padding-top: .55rem; border-radius: 50%; background: var(--color-ivory); text-align: center; }
  .ff-elements__image { grid-column: 1 / -1; grid-row: 2; margin-top: 0; }
  .ff-elements__content { grid-column: 1 / -1; grid-row: 1 / span 2; display: contents; }
  .ff-elements__content > :is(.eyebrow, h2, .intro) { grid-column: 1 / -1; }
  .ff-elements__list { grid-column: 1 / -1; grid-row: 3; }
  .ff-elements__image img { aspect-ratio: 4 / 5; }
  .ff-element--paper { padding: var(--space-4); }
  .ff-casino__copy, .ff-casino__image, .ff-casino__tables, .ff-casino__link { grid-column: 1 / -1; }
  .ff-casino__image { grid-row: 2; }
  .ff-casino__image img { aspect-ratio: 4 / 5; }
  .ff-casino__tables { grid-template-columns: 1fr; gap: 0; margin-top: 0; }
  .ff-casino-table:nth-child(3) { grid-column: 1; width: auto; }
  .ff-casino__link { min-height: 2.75rem; }
  .ff-location__head, .ff-location__image, .ff-location__scenario--one, .ff-location__scenario--two, .ff-location__scenario--three { grid-column: 1 / -1; }
  .ff-location__image { margin-top: 0; }
  .ff-location__scenario--two { padding: var(--space-5); }
  .ff-location__scenario--three { width: calc(100% - var(--space-4)); margin-left: var(--space-4); }
  .ff-briefing__card--stone { margin-top: 0; }
  .ff-related__row { grid-template-columns: 2.25rem minmax(0, 1fr); gap: var(--space-3); align-items: start; min-height: 0; }
  .ff-related__row strong { grid-column: 2; justify-self: start; min-height: 2.75rem; display: flex; align-items: center; }
  .ff-closing__wrap { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ff-closing__card { grid-column: 1 / -1; }
  .ff-closing__actions { align-items: stretch; }
  .ff-closing__actions .button { width: 100%; min-height: 3.25rem; }
  .ff-closing__actions .text-link { display: flex; min-height: 2.75rem; align-items: center; }
}

@media (max-width: 24.99rem) {
  .ff-closing__wrap::after { display: none; }
}

@media (prefers-reduced-motion: no-preference) {
  .ff-hero__image img, .ff-hero__detail img { transition: transform var(--transition-base), border-color var(--transition-base); }
  .ff-hero__image:hover img, .ff-hero__detail:hover img { transform: translate(2px, -2px); border-color: var(--color-graphite); }
  .ff-related__row { transition: color var(--transition-fast), transform var(--transition-fast); }
}