#venue {
  position: relative;
  padding-top: 5rem;
  background: var(--color-cream);
  color: var(--color-navy);
  z-index: 2;
}

.venue__subtitle {
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  line-height: 1.5;
  color: var(--color-text);
  max-width: 20rem;
  margin: 0 auto 1.5rem;
}

.venue__name {
  font-family: var(--font-script);
  font-style: normal;
  font-weight: 400;
  font-size: clamp(2.6rem, 14.5cqw, 5.8rem);
  color: var(--color-navy);
  margin-bottom: 1rem;
  line-height: 1;
}

.venue__address-row {
  display: flex;
  width: fit-content;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-size: 0.95rem;
  color: var(--color-text);
  margin: 0 auto 1.5rem;
}
.venue__pin {
  width: 0.7rem;
  height: 1rem;
  display: inline-block;
  background: var(--color-navy);
  clip-path: path('M5.6 0 C2.5 0 0 2.5 0 5.6 c0 4.2 5.6 11.2 5.6 11.2 s5.6 -7 5.6 -11.2 C11.2 2.5 8.7 0 5.6 0 z M5.6 7.7 c -1.2 0 -2.1 -0.9 -2.1 -2.1 c 0 -1.2 0.9 -2.1 2.1 -2.1 c 1.2 0 2.1 0.9 2.1 2.1 c 0 1.2 -0.9 2.1 -2.1 2.1 z');
}

/* Venue illustration sits flush on the page — no card, no shadow, no
   border radius, and breaks out of the section's side padding so it spans
   the full width of the invitation card. */
.venue__illustration {
  width: 100%;
  aspect-ratio: 3 / 2;
  margin: 0 calc(-1 * var(--section-pad-inline)) 1.5rem;
  width: calc(100% + 2 * var(--section-pad-inline));
  max-width: none;
  background: url('/assets/venue-illustration.png') center/cover no-repeat;
}

.venue__map-btn {
  display: flex;
  width: fit-content;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 1rem 2.25rem;
  margin: 0 auto 2rem;
  background: var(--color-navy);
  color: var(--color-cream);
  border-radius: 999px;
  font-size: 1rem;
  letter-spacing: 0.04em;
  transition: transform 0.2s ease;
}
.venue__map-btn:hover {
  transform: translateY(-1px);
}
.venue__map-icon {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2C8 2 5 5 5 9c0 5 7 13 7 13s7-8 7-13c0-4-3-7-7-7zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'/></svg>") center/contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2C8 2 5 5 5 9c0 5 7 13 7 13s7-8 7-13c0-4-3-7-7-7zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'/></svg>") center/contain no-repeat;
}

.venue__description {
  position: relative;
  /* Pull the description up so it overlaps the bottom ~20% of the
     illustration; scales with card width to keep the proportion. */
  margin-top: calc(-1 * clamp(4rem, 17cqw, 8rem));
  padding: 0 3.5rem;
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--color-text);
  z-index: 1;
}
.venue__description p + p {
  margin-top: 1rem;
}
.venue__description strong {
  font-weight: 700;
}
.venue__description::before,
.venue__description::after {
  content: '';
  position: absolute;
  pointer-events: none;
  z-index: -1;
  background: center/contain no-repeat;
}
.venue__description::before {
  top: -1rem;
  left: calc(-1 * var(--section-pad-inline));
  width: 4.8rem;
  aspect-ratio: 231 / 506;
  background-image: url('/assets/venue-side-flowers.png');
}
.venue__description::after {
  top: 3rem;
  right: calc(-1 * var(--section-pad-inline));
  width: 5.4rem;
  aspect-ratio: 285 / 706;
  background-image: url('/assets/venue-side-flowers-right.png');
  z-index: 2;
}
