/* ==========================================================================
   Contact
   ========================================================================== */

.contact-hero {
  padding-bottom: 96px;
}

.contact-hero__inner {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: start;
  gap: 48px;
}

/* No flex `gap` here — .page-hero__title already carries its own
   margin-bottom (styles.css), the same one every other page's hero
   relies on to space the title from .page-hero__text beneath it. A gap
   here would stack on top of that margin instead of replacing it, so
   the title/text pair would sit further apart on this page than
   everywhere else. .page-hero__text's own margin-bottom below does the
   same job for the next pair down instead. */
.contact-hero__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  /* Grid items default to min-width:auto, so without this, this
     column refuses to shrink below its own min-content width — wider
     than its fair 1fr share once .contact-hero__media claims its own
     auto column — and pushes the whole grid past the container's
     right edge instead of leaving .contact-hero__media flush against
     it, at viewport widths where there isn't quite enough room. */
  min-width: 0;
}

.contact-hero__content > .page-hero__text {
  margin-bottom: 40px;
}

.contact-details {
  display: flex;
  align-items: flex-start;
  gap: 64px;
}

.contact-detail {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.contact-detail__label,
.contact-detail__value {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.3125;
  letter-spacing: -0.01em;
  color: var(--color-lavender);
}

.contact-detail__value {
  text-decoration: underline;
  text-underline-offset: 4px;
  width: fit-content;
}

.contact-detail__value--lime {
  color: var(--color-lime);
}

.contact-maps-link {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: -0.01em;
  color: rgba(255, 255, 255, 0.6);
  text-decoration: underline;
  text-underline-offset: 4px;
  width: fit-content;
  margin-top: 24px;
  transition: color 0.2s var(--ease);
}

.contact-maps-link:hover {
  color: var(--color-white);
}

/* Same "X" brand-mark cutout as .case-hero__media (case.css), just sized
   up for this page's larger, more portrait-like treatment. Box is square
   (1:1) to match the source photo's own square format, so the img below
   can fill it edge-to-edge — the mask's "X" reaches all four corners of
   this box, so any gap between the img and the box's own edges (as a
   partial-width/offset img left) shows through as empty background in
   those corners instead of photo. */
.contact-hero__media {
  position: relative;
  overflow: hidden;
  width: clamp(240px, 32vw, 560px);
  aspect-ratio: 1 / 1;
  flex-shrink: 0;
  mask-image: url(/assets/icons/beeldmerk-digitaal.svg);
  mask-size: 100% 100%;
  mask-repeat: no-repeat;
  -webkit-mask-image: url(/assets/icons/beeldmerk-digitaal.svg);
  -webkit-mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  right: -4%;
}

/* Photo's own visual center sits 10% (of the box width) left of where it
   was — the box/mask stay untouched, so the img is scaled up 20% (to
   120%/120%, still square, no distortion) and right-anchored (right edge
   flush with the box's own right edge, left/top overhanging equally past
   it, hidden by overflow:hidden) rather than centered. A plain centered
   zoom wouldn't move the visual center at all; anchoring the zoom to the
   right edge instead is what actually shifts it left by the zoom amount,
   without opening a gap on either side. */
.contact-hero__media img {
  position: absolute;
  top: -0%;
  left: -14%;
  width: 110%;
  height: 110%;
  /* Overrides the sitewide img{max-width:100%} reset (styles.css) — that
     reset would otherwise cap this at 100% of the box, silently
     collapsing the 120% back down and undoing the shift below. */
  max-width: none;
  object-fit: cover;
}

@media (max-width: 900px) {
  .contact-hero__inner {
    grid-template-columns: 1fr;
  }

  .contact-hero__media {
    display: none;
  }

  .contact-details {
    flex-direction: column;
    gap: 24px;
  }
}

@media (max-width: 640px) {
  .contact-hero {
    padding-bottom: 56px;
  }

  .contact-detail__label,
  .contact-detail__value {
    font-size: 24px;
    line-height: 1.35;
  }

  .contact-maps-link {
    font-size: 20px;
  }
}
