main[class] .block:has(.cx5-hero) { padding-top: 0; }

.cx5-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.92fr);
  gap: clamp(1.5rem, 4vw, 3.5rem);
  align-items: center;
  padding: clamp(2.4rem, 5vw, 4rem) 0;
  color: var(--background);
}
.cx5-hero::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -100vmax;
  right: -100vmax;
  z-index: -1;
  background: color-mix(in srgb, var(--primary) 78%, var(--text));
}
.cx5-hero.has-photo::before {
  background:
    linear-gradient(
      100deg,
      color-mix(in srgb, var(--primary) 70%, var(--text)) 0%,
      color-mix(in srgb, color-mix(in srgb, var(--primary) 70%, var(--text)) 82%, transparent) 55%,
      color-mix(in srgb, color-mix(in srgb, var(--primary) 70%, var(--text)) 60%, transparent) 100%
    ),
    var(--cx5-photo) center / cover no-repeat;
}

.cx5-copy { min-width: 0; }
.cx5-copy .eyebrow { color: var(--background); }
.cx5-copy .eyebrow::before { background: var(--background); }
.cx5-copy h1, .cx5-copy h2 { color: var(--background); max-width: 18ch; }
.cx5-copy .hero-mark {
  color: inherit;
  box-shadow: inset 0 -0.2em 0 color-mix(in srgb, var(--accent) 65%, transparent);
}
.cx5-copy .prose { color: var(--background); max-width: 34rem; }
.cx5-copy .prose p { color: inherit; }

.cx5-copy .contact-card {
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
  padding: 0;
  margin-top: 1.6rem;
  max-width: 30rem;
}
.cx5-copy .contact-info h2 { display: none; }
.cx5-copy .info-row {
  padding: 0.8rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--background) 22%, transparent);
}
.cx5-copy .info-row:first-of-type { border-top: 1px solid color-mix(in srgb, var(--background) 22%, transparent); }
.cx5-copy .info-row .icon { color: var(--background); }
.cx5-copy .info-row span { color: color-mix(in srgb, var(--background) 78%, transparent); }
.cx5-copy .info-row div, .cx5-copy .info-row a { color: var(--background); }
.cx5-copy .info-row a { font-weight: 600; text-decoration: none; }
.cx5-copy .info-row a:hover { text-decoration: underline; }
.cx5-copy .info-more { display: block; margin-top: 0.3rem; font-weight: 500; }

.cx5-form .contact-form {
  background: var(--surface);
  color: var(--text);
  border-radius: var(--radius);
  box-shadow: 0 1.4rem 3rem color-mix(in srgb, var(--text) 28%, transparent);
  padding: clamp(1.4rem, 2.8vw, 2.2rem);
  gap: 1rem;
}
.cx5-form .form-actions .button { flex-shrink: 0; white-space: nowrap; }
main[class] .block:has(.cx5-hero) { padding-bottom: 0; }
.cx5-hero { margin-bottom: 0; }
.cx5-hero + .map-consent {
  position: relative;
  height: clamp(340px, 40vw, 460px);
  margin: 0;
}
.cx5-hero + .map-consent .map-frame,
.cx5-hero + .map-consent .map-gate {
  position: absolute;
  top: 0;
  left: -100vmax;
  width: calc(100% + 200vmax);
  height: 100%;
  border: 0;
  border-radius: 0;
}
.cx5-hero + .map-consent .map-gate {
  background: color-mix(in srgb, var(--primary) 6%, var(--background));
  color: var(--text);
}

@media (max-width: 800px) {
  .cx5-hero { grid-template-columns: 1fr; padding: 2rem 0 2.2rem; }
}
