/* ===== CONTACT PAGE ===== */
/* Contact page layout with info section, map, and image */

.contact-page {
  height: calc(100vh - 2 * var(--header-size));
}

.contact-container {
  display: flex;
  height: 100%;
}

/* ===== CONTACT INFO SECTION ===== */
.contact-info {
  height: 100%;
  flex: 0 0 30%;
  display: flex;
  flex-direction: column-reverse;
}

.contact-content {
  padding: 0;
  padding-right: var(--masonry-gap);
  height: 100%;
  display: grid;
}

.contact-text {
  font-size: var(--paragraph-size);
  line-height: 1.6;
  margin-bottom: auto;
}

.contact-text p {
  margin-bottom: 1.5em;
}

/* ===== MAP SECTION ===== */
.contact-map {
  align-self: flex-end;
}

.contact-map img {
  width: 100%;
  height: auto;
  display: block;
}

.impressum-link {
  margin-bottom: 1vw;
  margin-top: auto;
  align-self: flex-end;
  /* break between words */
  word-break: break-all;
}

/* ===== CONTACT IMAGE SECTION ===== */
.contact-image {
  flex: 0 0 70%;
  height: 100%;
  overflow: hidden;
}

.contact-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ===== MOBILE ADJUSTMENTS ===== */
@media (max-width: 768px) {
  .mobile .contact-page {
    height: auto;
    margin-bottom: var(--bottom-gap);
  }

  .mobile .contact-container {
    flex-direction: column;
    height: auto;
  }

  .mobile .contact-info,
  .mobile .contact-image {
    flex: none;
  }

  .mobile .contact-info {
    padding: 0;
    margin-bottom: var(--side_gap);
    margin-top: var(--side_gap);
  }

  .mobile .contact-image {
    height: 50vh;
    min-height: 300px;
  }
}

/* ===== IMPRESSUM PAGE ===== */
.impressum-page {
  margin-bottom: var(--bottom-gap);
}

.impressum-text h3 {
  margin-top: var(--header-gap);
}
