#kontakt-page { overflow: hidden; }
#kontakt-page .kontakt-hero__grid { display: grid; grid-template-columns: minmax(0, 5fr) 1px minmax(0, 5fr); column-gap: clamp(2rem, 5vw, 5rem); align-items: center; min-height: 38.75rem; }
#kontakt-page .kontakt-hero__copy { min-width: 0; max-width: 36.25rem; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
#kontakt-page .kontakt-hero__copy h1, #kontakt-page .kontakt-hero__copy p { margin: 0; }
#kontakt-page .kontakt-hero__copy .lead { max-width: 34rem; }
#kontakt-page .kontakt-hero__rule { width: 1px; min-width: 1px; height: 15rem; background: var(--color-champagne-gold); }
#kontakt-page .kontakt-hero__media { width: calc(100% + 2.5rem); max-width: none; height: 35rem; margin: 0 -2.5rem 0 0; }
#kontakt-page .kontakt-hero__media figcaption { padding-right: 2.5rem; }
#kontakt-page .kontakt-intents__intro { width: min(100%, 30rem); margin-bottom: var(--space-7); }
#kontakt-page .kontakt-intents__intro h2, #kontakt-page .kontakt-intents__intro p { margin-bottom: 0; }
#kontakt-page .kontakt-intents__intro { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
#kontakt-page .kontakt-intents__grid { display: grid; grid-template-columns: minmax(17.5rem, 4fr) minmax(17.5rem, 3fr) minmax(17.5rem, 4fr); gap: var(--space-5); align-items: start; }
#kontakt-page .kontakt-intent { min-width: 0; min-height: 22rem; padding: var(--space-5); border: 1px solid var(--color-line-light); display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); position: relative; }
#kontakt-page .kontakt-intent > * { margin: 0; }
#kontakt-page .kontakt-intent--private { margin-top: var(--space-7); border-left: 3px solid var(--color-burgundy); }
#kontakt-page .kontakt-intent--theme { margin-top: var(--space-4); background: color-mix(in srgb, var(--color-muted-teal) 10%, var(--color-warm-ivory)); }
#kontakt-page .kontakt-intent__number { color: var(--color-champagne-gold); font-family: var(--font-heading); font-size: 2.5rem; line-height: 1; }
#kontakt-page .kontakt-intent a { margin-top: auto; }
#kontakt-page .kontakt-intents__transition { width: min(100%, 40.625rem); margin: var(--space-6) 0 0; border-left: 2px solid var(--color-champagne-gold); padding-left: var(--space-4); }
#kontakt-page .kontakt-evening__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(26.25rem, 5fr); gap: clamp(2rem, 6vw, 7.5rem); align-items: end; }
#kontakt-page .kontakt-evening__media { width: 100%; height: 35rem; margin: 0; }
#kontakt-page .kontakt-evening__copy { min-width: 0; max-width: 36.875rem; padding: var(--space-6) 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
#kontakt-page .kontakt-evening__copy > * { margin: 0; }
#kontakt-page .kontakt-evening__copy > h2::after { display: block; width: 5rem; height: 1px; margin-top: var(--space-4); background: var(--color-champagne-gold); content: ''; }
#kontakt-page .kontakt-evening__copy > p { color: var(--color-ivory-muted); }
#kontakt-page .kontakt-evening__themes { width: 100%; padding: 0; list-style: none; display: flex; flex-direction: column; gap: var(--space-3); }
#kontakt-page .kontakt-evening__themes li { padding-left: var(--space-4); position: relative; }
#kontakt-page .kontakt-evening__themes li::before { position: absolute; left: 0; top: .55em; width: .5rem; height: .5rem; border: 1px solid var(--color-champagne-gold); content: ''; transform: rotate(45deg); }
#kontakt-page .kontakt-evening__quote { width: 100%; border: 1px solid var(--color-champagne-gold); padding: var(--space-5); display: flex; flex-direction: column; gap: var(--space-3); }
#kontakt-page .kontakt-evening__quote p { margin: 0; font-family: var(--font-heading); font-size: var(--text-body-large); line-height: 1.35; }
#kontakt-page .kontakt-evening__quote span { color: var(--color-ivory-muted); font-size: var(--text-caption); }
#kontakt-page .kontakt-form-section__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(32.5rem, 7fr); gap: clamp(2rem, 7vw, 7.5rem); align-items: start; }
#kontakt-page .kontakt-form-section__intro { min-width: 0; max-width: 28.125rem; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
#kontakt-page .kontakt-form-section__intro > * { margin: 0; }
#kontakt-page .kontakt-form-section__intro .lead { max-width: 28rem; }
#kontakt-page .kontakt-form { min-width: 0; margin-top: 3.5rem; padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid var(--color-champagne-gold); box-shadow: inset 0 0 0 5px var(--color-warm-ivory), inset 0 0 0 6px var(--color-champagne-gold); display: flex; flex-direction: column; gap: var(--space-6); }
#kontakt-page .kontakt-form__fieldset { min-width: 0; display: flex; flex-direction: column; gap: var(--space-4); }
#kontakt-page .kontakt-form legend { padding: 0; font-family: var(--font-heading); font-size: var(--text-h3); font-weight: 600; line-height: 1.15; }
#kontakt-page .kontakt-form__help { margin: 0; color: var(--color-ink-muted); font-size: var(--text-caption); max-width: none; }
#kontakt-page .kontakt-form__contact-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
#kontakt-page .kontakt-form__contact-fields > :last-child { grid-column: 1 / -1; width: 100%; min-width: 0; }
#kontakt-page .kontakt-form__practical-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
#kontakt-page .kontakt-form__contact-fields > *, #kontakt-page .kontakt-form__practical-fields > *, #kontakt-page .kontakt-field { min-width: 0; width: 100%; }
#kontakt-page .kontakt-field { display: flex; flex-direction: column; gap: var(--space-2); }
#kontakt-page .kontakt-field label { margin: 0; }
#kontakt-page .kontakt-required, #kontakt-page .kontakt-optional { margin-left: var(--space-2); color: var(--color-ink-muted); font-size: var(--text-caption); font-weight: 500; letter-spacing: 0; text-transform: none; }
#kontakt-page .kontakt-field__hint { color: var(--color-ink-muted); font-size: var(--text-caption); line-height: var(--leading-caption); }
#kontakt-page .kontakt-error { min-height: 1.35em; color: var(--color-burgundy); font-size: var(--text-caption); line-height: var(--leading-caption); }
#kontakt-page .kontakt-form__submit { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
#kontakt-page .kontakt-form__submit > * { margin: 0; }
#kontakt-page .kontakt-form__status { min-height: 1.65em; color: var(--color-ink-muted); }
#kontakt-page .kontakt-preparation__intro { width: min(100%, 42.5rem); margin-bottom: var(--space-7); display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
#kontakt-page .kontakt-preparation__intro > * { margin: 0; }
#kontakt-page .kontakt-steps { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-6) var(--space-5); }
#kontakt-page .kontakt-step { min-width: 0; display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--color-line-light); }
#kontakt-page .kontakt-step--one { grid-column: 1 / span 5; }
#kontakt-page .kontakt-step--two { grid-column: 7 / span 5; }
#kontakt-page .kontakt-step--three { grid-column: 1 / span 4; background: color-mix(in srgb, var(--color-ivory-muted) 45%, transparent); padding: var(--space-4); }
#kontakt-page .kontakt-step--four { grid-column: 6 / span 6; }
#kontakt-page .kontakt-step__number { width: 3rem; min-width: 3rem; height: 3rem; border: 1px solid var(--color-champagne-gold); background: transparent; color: var(--color-soft-black); font-family: var(--font-heading); font-size: 1.5rem; line-height: 1; }
#kontakt-page .kontakt-step--three .kontakt-step__number { border-color: var(--color-muted-teal); color: var(--color-muted-teal); }
#kontakt-page .kontakt-step__copy { min-width: 0; }
#kontakt-page .kontakt-step__copy h3 { margin-bottom: var(--space-3); }
#kontakt-page .kontakt-step__copy p { margin: 0; }
#kontakt-page .kontakt-preparation__summary { width: 100%; margin-top: var(--space-7); padding: var(--space-5); border-left: 4px solid var(--color-burgundy); background: color-mix(in srgb, var(--color-burgundy) 7%, var(--color-warm-ivory)); display: flex; align-items: center; justify-content: space-between; gap: var(--space-5); }
#kontakt-page .kontakt-preparation__summary p { width: min(100%, 40.625rem); margin: 0; }
#kontakt-page .kontakt-preparation__summary button { min-height: 2.75rem; border: 0; border-bottom: 1px solid var(--color-champagne-gold); background: transparent; color: var(--color-soft-black); font-weight: 600; text-align: left; }
#kontakt-page .kontakt-cta { position: relative; overflow: hidden; }
#kontakt-page .kontakt-cta::before { position: absolute; top: -8rem; left: -4rem; width: 18rem; height: 18rem; border: 1px solid color-mix(in srgb, var(--color-champagne-gold) 60%, transparent); border-radius: 50%; content: ''; }
#kontakt-page .kontakt-cta__inner { max-width: 42.5rem; text-align: center; display: flex; flex-direction: column; align-items: center; gap: var(--space-4); position: relative; }
#kontakt-page .kontakt-cta__inner > * { margin: 0; }
#kontakt-page .kontakt-cta__inner p { max-width: 35rem; color: var(--color-ivory-muted); }
#kontakt-page .kontakt-cta__actions { justify-content: center; margin-top: var(--space-2); }
#kontakt-page .kontakt-cta .button { min-width: 11.25rem; }
#kontakt-page .kontakt-faq__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 8fr); gap: clamp(2rem, 7vw, 7.5rem); align-items: start; }
#kontakt-page .kontakt-faq__intro { min-width: 0; max-width: 31.875rem; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
#kontakt-page .kontakt-faq__intro > * { margin: 0; }
#kontakt-page .kontakt-faq__list { min-width: 0; max-width: 51.25rem; display: flex; flex-direction: column; }
#kontakt-page .kontakt-faq details { border-top: 1px solid var(--color-line-light); }
#kontakt-page .kontakt-faq details:last-child { border-bottom: 1px solid var(--color-line-light); }
#kontakt-page .kontakt-faq summary { min-height: 3.5rem; padding: var(--space-4) 2.5rem var(--space-4) 0; color: var(--color-soft-black); cursor: pointer; font-size: 1rem; font-weight: 600; line-height: 1.35; list-style: none; position: relative; }
#kontakt-page .kontakt-faq summary::-webkit-details-marker { display: none; }
#kontakt-page .kontakt-faq summary::after { position: absolute; right: .25rem; top: 50%; width: .65rem; height: .65rem; border-right: 1px solid var(--color-champagne-gold); border-bottom: 1px solid var(--color-champagne-gold); content: ''; transform: translateY(-70%) rotate(45deg); transition: transform var(--transition-base); }
#kontakt-page .kontakt-faq details[open] summary::after { transform: translateY(-30%) rotate(225deg); }
#kontakt-page .kontakt-faq details > div { max-width: 42.5rem; padding-bottom: var(--space-5); }
#kontakt-page .kontakt-faq details > div p { margin: 0; }
#kontakt-page a[data-contact-intent], #kontakt-page .kontakt-intent a { text-decoration-thickness: 1px; }
#kontakt-page .kontakt-intent:hover { border-color: var(--color-champagne-gold); }
#kontakt-page .kontakt-intent:hover .kontakt-intent__number { transform: translateY(-2px); }
#kontakt-page .kontakt-intent__number { transition: transform var(--transition-base); }
#kontakt-page .kontakt-details__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 8fr); gap: clamp(2rem, 7vw, 7.5rem); align-items: start; }
#kontakt-page .kontakt-details__intro { min-width: 0; max-width: 31.875rem; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
#kontakt-page .kontakt-details__intro > * { margin: 0; }
#kontakt-page .kontakt-details__list { min-width: 0; max-width: 51.25rem; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); }
#kontakt-page .kontakt-detail { min-width: 0; padding: var(--space-5); border: 1px solid var(--color-line-light); display: flex; flex-direction: column; gap: var(--space-2); }
#kontakt-page .kontakt-detail dt { margin: 0; color: var(--color-ink-muted); font-family: var(--font-heading); font-size: var(--text-caption); letter-spacing: var(--tracking-caption); text-transform: uppercase; }
#kontakt-page .kontakt-detail dd { margin: 0; }
#kontakt-page .kontakt-detail a { text-decoration-thickness: 1px; }

@media (max-width: 63.9375rem) {
  #kontakt-page .kontakt-hero__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); min-height: 0; }
  #kontakt-page .kontakt-hero__media { width: 100%; height: auto; aspect-ratio: 4 / 5; margin: 0; order: -1; }
  #kontakt-page .kontakt-hero__rule { display: none; }
  #kontakt-page .kontakt-hero__copy { max-width: 38rem; }
  #kontakt-page .kontakt-intents__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #kontakt-page .kontakt-intent--private { margin-top: 0; }
  #kontakt-page .kontakt-intent--theme { grid-column: 1 / -1; width: min(100%, 34rem); margin-top: 0; }
  #kontakt-page .kontakt-evening__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
  #kontakt-page .kontakt-evening__media { height: auto; aspect-ratio: 4 / 5; }
  #kontakt-page .kontakt-evening__copy { max-width: 37rem; padding: 0; }
  #kontakt-page .kontakt-form-section__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
  #kontakt-page .kontakt-form { min-width: 0; margin-top: 0; }
  #kontakt-page .kontakt-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #kontakt-page .kontakt-step--one, #kontakt-page .kontakt-step--two, #kontakt-page .kontakt-step--three, #kontakt-page .kontakt-step--four { grid-column: auto; }
  #kontakt-page .kontakt-faq__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
  #kontakt-page .kontakt-details__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
}

@media (max-width: 51.1875rem) {
  #kontakt-page .kontakt-form-section__grid { grid-template-columns: minmax(0, 1fr); }
  #kontakt-page .kontakt-form-section__intro { max-width: 35rem; }
  #kontakt-page .kontakt-form { width: 100%; max-width: 42rem; }
}

@media (max-width: 44.9375rem) {
  #kontakt-page .kontakt-hero { padding-top: var(--space-6); }
  #kontakt-page .kontakt-hero__copy { gap: var(--space-4); }
  #kontakt-page .kontakt-hero__copy .display-xl { font-size: clamp(3rem, 13vw, 3.5rem); }
  #kontakt-page .kontakt-hero__actions, #kontakt-page .kontakt-cta__actions { width: 100%; flex-direction: column; }
  #kontakt-page .kontakt-hero__actions > *, #kontakt-page .kontakt-cta__actions > * { width: 100%; min-width: 0; }
  #kontakt-page .kontakt-details__list { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
  #kontakt-page .kontakt-intents__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
  #kontakt-page .kontakt-intent, #kontakt-page .kontakt-intent--theme { width: 100%; min-height: 0; grid-column: auto; padding: var(--space-5); }
  #kontakt-page .kontakt-evening__media { aspect-ratio: 4 / 5; height: auto; }
  #kontakt-page .kontakt-evening__quote { border-width: 0 0 0 2px; padding: var(--space-4) 0 var(--space-4) var(--space-4); }
  #kontakt-page .kontakt-form { padding: var(--space-5); box-shadow: none; border-color: var(--color-champagne-gold); }
  #kontakt-page .kontakt-form::before { width: 2rem; height: 2rem; border-top: 2px solid var(--color-champagne-gold); border-left: 2px solid var(--color-champagne-gold); content: ''; }
  #kontakt-page .kontakt-form__contact-fields, #kontakt-page .kontakt-form__practical-fields { grid-template-columns: minmax(0, 1fr); }
  #kontakt-page .kontakt-form__contact-fields > :last-child { grid-column: auto; }
  #kontakt-page .kontakt-form__submit, #kontakt-page .kontakt-form__submit .button { width: 100%; }
  #kontakt-page .kontakt-steps { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
  #kontakt-page .kontakt-step { grid-template-columns: 2.25rem minmax(0, 1fr); gap: var(--space-3); }
  #kontakt-page .kontakt-step__number { width: 2.25rem; min-width: 2.25rem; height: 2.25rem; font-size: 1.25rem; }
  #kontakt-page .kontakt-step--three { padding: var(--space-4); }
  #kontakt-page .kontakt-preparation__summary { flex-direction: column; align-items: flex-start; gap: var(--space-3); }
  #kontakt-page .kontakt-preparation__summary button { width: 100%; min-height: 2.75rem; }
  #kontakt-page .kontakt-cta__inner { max-width: 100%; }
  #kontakt-page .kontakt-cta .button { min-height: 3rem; }
  #kontakt-page .kontakt-faq summary { padding-left: var(--space-4); padding-right: 3rem; }
  #kontakt-page .kontakt-faq details > div { padding: 0 var(--space-4) var(--space-5); }
}

@media (prefers-reduced-motion: reduce) {
  #kontakt-page .kontakt-intent__number { transition: none; }
  #kontakt-page .kontakt-intent:hover .kontakt-intent__number { transform: none; }
}
