.real-map {
  position: relative;
  background: #111;
}

.real-map iframe {
  width: 100%;
  height: 100%;
  border: 0;
  filter: grayscale(1) contrast(1.15);
}

.map-badge {
  position: absolute;
  left: 18px;
  bottom: 18px;
  padding: 11px 14px;
  background: var(--red);
  color: #fff;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  box-shadow: 0 8px 28px rgba(0, 0, 0, .35);
}

.location-intro {
  max-width: 430px;
  color: #fff;
  line-height: 1.65;
}

.location address {
  padding: 20px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.location address span {
  display: block;
  margin-bottom: 8px;
  color: var(--red);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .16em;
}

.location-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.location-budget { background: transparent; }

@media (max-width: 600px) {
  body { font-size: 15px; }
  .nav { height: 72px; padding: 0 5vw; }
  .nav .brand { font-size: 1.05rem; }
  .nav .brand span { width: 36px; height: 36px; }
  .nav.open nav { top: 72px; }
  .nav.open nav a { display: flex; align-items: center; min-height: 44px; }

  .hero-copy { padding: 122px 6vw 54px; }
  .hero h1 { font-size: clamp(4.3rem, 22vw, 6rem); }
  .lead { margin: 28px 0 26px; line-height: 1.6; }
  .hero-actions { display: grid; grid-template-columns: 1fr; }
  .hero-actions .button { width: 100%; }
  .hero-meta { margin-top: 38px; justify-content: space-between; }
  .hero-meta b { font-size: 1.9rem; }
  .hero-art { height: 420px; }

  .portfolio { padding-left: 0; padding-right: 0; }
  .portfolio .section-head { padding: 0 6vw; }
  .portfolio .section-head h2 { font-size: 4.2rem; }
  .filters {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding: 0 6vw 8px;
    scrollbar-width: none;
  }
  .filters::-webkit-scrollbar { display: none; }
  .filters button { flex: 0 0 auto; min-height: 42px; }

  .gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: auto;
    gap: 3px;
  }
  .gallery .work,
  .gallery .work.tall,
  .gallery .work.wide {
    grid-column: span 1;
    grid-row: span 1;
    aspect-ratio: 3 / 4;
  }
  .gallery .work:first-child { grid-column: 1 / -1; aspect-ratio: 4 / 5; }
  .work span { left: 12px; bottom: 12px; }
  .work b { font-size: 1.2rem; }
  .work small { font-size: .62rem; }

  .about { padding-left: 6vw; padding-right: 6vw; gap: 52px; }
  .artist-portrait { min-height: 0; height: auto; aspect-ratio: 4 / 5; }
  .artist-portrait img { position: absolute; inset: 0; }
  .about-copy .intro { font-size: 1.3rem; }

  .location { gap: 54px; padding-top: 0; padding-bottom: 76px; }
  .real-map { height: 390px; }
  .location h2 { font-size: 5.2rem; }
  .location-actions { display: grid; grid-template-columns: 1fr; }
  .location-actions .button { width: 100%; }

  .contact .button { width: 100%; }
  .budget-dialog form { padding-top: 48px; }
}
