/* Speise Qora — Impressum page styles */

.impressum-page {
  min-width: 0;
}

/* Hero */
.impressum-hero {
  padding-block: var(--space-7);
}

.impressum-hero__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-4);
  max-width: 800px;
  margin-inline: auto;
}

.impressum-hero__eyebrow {
  margin-block-end: 0;
}

.impressum-hero__title {
  color: var(--color-cream-foreground);
  font-size: clamp(2.25rem, 5vw, 3rem);
  line-height: var(--text-display-line-height);
  margin-block-end: 0;
}

.impressum-hero__accent {
  width: 64px;
  height: 3px;
  background-color: var(--color-burgundy);
  border-radius: var(--radius-pill);
}

.impressum-hero__lead {
  color: var(--color-cream-foreground);
  max-width: 60ch;
  margin-block-end: 0;
  font-size: 1.0625rem;
}

/* Section titles */
.impressum-section-title {
  margin-block-end: var(--space-5);
}

/* Provider */
.impressum-provider__inner {
  max-width: 1000px;
}

.impressum-provider__grid {
  display: grid;
  grid-template-columns: 30% 70%;
  gap: var(--space-4);
  align-items: start;
  margin-block-end: var(--space-4);
}

.impressum-provider__labels {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-width: 0;
}

.impressum-provider__label {
  font-weight: 600;
  color: var(--color-dark-walnut);
  margin-block-end: 0;
  overflow-wrap: break-word;
}

.impressum-provider__values {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-width: 0;
}

.impressum-provider__value {
  margin-block-end: 0;
  overflow-wrap: break-word;
}

.impressum-provider__address {
  line-height: var(--text-body-line-height);
  overflow-wrap: break-word;
}

.impressum-provider__note {
  max-width: 80ch;
  margin-block-end: 0;
  color: var(--color-dark-walnut);
}

/* Contact */
.impressum-contact__inner {
  max-width: 900px;
}

.impressum-contact__intro {
  max-width: 70ch;
  margin-block-end: var(--space-4);
}

.impressum-contact__items {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  min-width: 0;
}

.impressum-contact__item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
  flex: 1 1 280px;
  min-height: var(--touch-target-min);
  padding: var(--space-3);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-medium);
  background-color: var(--color-cream);
  box-shadow: var(--shadow-card);
  transition: box-shadow var(--transition-fast), border-color var(--transition-fast);
  color: var(--color-midnight-foreground);
}

.impressum-contact__item:hover {
  box-shadow: var(--shadow-card-hover);
  border-color: var(--color-burgundy);
  color: var(--color-midnight-foreground);
}

.impressum-contact__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  border-radius: 50%;
  background-color: rgba(107, 31, 42, 0.08);
  color: var(--color-burgundy);
}

.impressum-contact__label {
  font-weight: 600;
  color: var(--color-dark-walnut);
  flex-shrink: 0;
}

.impressum-contact__value {
  min-width: 0;
  overflow-wrap: break-word;
}

/* Responsible */
.impressum-responsible__inner {
  max-width: 800px;
}

.impressum-responsible__statement {
  border-inline-start: 3px solid var(--color-burgundy);
  padding-inline-start: var(--space-4);
  padding-block: var(--space-2);
}

.impressum-responsible__text {
  margin-block-end: 0;
  max-width: 70ch;
}

.impressum-responsible__text strong {
  color: var(--color-burgundy);
}

/* Disclaimer */
.impressum-disclaimer__inner {
  max-width: 900px;
}

.impressum-disclaimer__content {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  min-width: 0;
}

.impressum-disclaimer__block {
  min-width: 0;
}

.impressum-disclaimer__subtitle {
  margin-block-end: var(--space-2);
}

.impressum-disclaimer__text {
  max-width: 80ch;
  margin-block-end: 0;
}

.impressum-disclaimer__block + .impressum-disclaimer__block {
  padding-block-start: var(--space-5);
  border-block-start: 1px solid var(--color-border-subtle);
}

/* Dispute */
.impressum-dispute__inner {
  max-width: 800px;
}

.impressum-dispute__content {
  min-width: 0;
}

.impressum-dispute__text {
  max-width: 70ch;
  margin-block-end: 0;
}

.impressum-dispute__text a {
  overflow-wrap: break-word;
}

/* CTA */
.impressum-cta {
  padding-block: var(--space-7);
}

.impressum-cta__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-4);
  max-width: 600px;
  margin-inline: auto;
}

.impressum-cta__title {
  color: var(--color-walnut-foreground);
  margin-block-end: 0;
}

.impressum-cta__text {
  color: var(--color-walnut-foreground);
  max-width: 60ch;
  margin-block-end: 0;
}

.impressum-cta__button {
  margin-block-start: var(--space-2);
}

/* Tablet */
@media (min-width: 768px) and (max-width: 1023px) {
  .impressum-provider__grid {
    grid-template-columns: 35% 65%;
  }

  .impressum-contact__item {
    flex: 1 1 100%;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .impressum-hero,
  .impressum-cta {
    padding-block: var(--space-5);
  }

  .impressum-hero__inner {
    gap: var(--space-3);
  }

  .impressum-hero__lead {
    font-size: 1rem;
  }

  .impressum-provider__grid {
    grid-template-columns: 1fr;
    gap: var(--space-3);
  }

  .impressum-provider__labels,
  .impressum-provider__values {
    gap: var(--space-2);
  }

  .impressum-contact__items {
    flex-direction: column;
    gap: var(--space-3);
  }

  .impressum-contact__item {
    flex: 1 1 auto;
    width: 100%;
    flex-wrap: wrap;
  }

  .impressum-contact__label {
    flex-basis: 100%;
  }

  .impressum-contact__value {
    flex-basis: 100%;
  }

  .impressum-disclaimer__content {
    gap: var(--space-4);
  }

  .impressum-disclaimer__block + .impressum-disclaimer__block {
    padding-block-start: var(--space-4);
  }

  .impressum-cta__inner {
    gap: var(--space-3);
  }

  .impressum-cta__button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .impressum-page *,
  .impressum-page *::before,
  .impressum-page *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
  }
}
