/* Approved "Let's design your next space" campaign: city hero only.
   Preserve city/header branding and all shared styles outside this scoped component. */
.hero.campaign-hero {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 14px;
  background: #fff;
  color: #001838;
  overflow: hidden;
}
.campaign-hero .campaign-heading { padding: 18px 28px 20px; }
.campaign-hero .campaign-title {
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 0 .22em;
  margin: 0;
  color: #001838;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(2rem, 4.1vw, 3.45rem);
  font-weight: 400;
  line-height: 1.13;
  letter-spacing: -.045em;
}
.campaign-hero .campaign-title strong { font-weight: 750; }
.campaign-hero .campaign-title em {
  color: #C04810;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 1.18em;
  font-weight: 400;
  line-height: 1;
}
.campaign-hero .campaign-visual { display: block; width: 100%; margin: 0; }
.campaign-hero .campaign-image {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 1672 / 941;
  object-fit: contain;
  filter: none;
}
.campaign-hero .campaign-visual figcaption {
  position: static;
  max-width: none;
  margin: 0;
  padding: 8px 20px;
  background: #fff;
  color: #52616e;
  font-size: .75rem;
  line-height: 1.4;
  pointer-events: auto;
}
.campaign-hero .hero-copy { align-self: stretch; padding: 18px 28px 28px; }
.campaign-hero .hero-copy .eyebrow { color: #C04810; margin-bottom: 8px; font-size: .72rem; }
.campaign-hero .hero-copy h1 {
  color: #001838;
  font-size: clamp(1.75rem, 3vw, 2.35rem);
  margin-bottom: 10px;
}
.campaign-hero .hero-copy .subtitle { color: #52616e; margin-bottom: 12px; }
.campaign-hero .hero-copy .intro { color: #263441; }
.campaign-hero .hero-copy .intro p:last-child { margin-bottom: 0; }
.campaign-hero .actions { margin-top: 18px; align-items: center; gap: 14px 24px; }
.campaign-hero .actions .text-link,
.campaign-hero .actions .campaign-flyer { color: #001838; font-size: .94rem; }
.campaign-hero .actions .campaign-flyer {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-weight: 700;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
@media (max-width: 760px) {
  .hero.campaign-hero { margin-top: 12px; }
  .campaign-hero .campaign-heading { padding: 16px 20px 18px; }
  .campaign-hero .campaign-title { font-size: clamp(1.9rem, 6.3vw, 2.8rem); gap: .08em .22em; }
  .campaign-hero .hero-copy { padding: 16px 20px 24px; }
  .campaign-hero .campaign-visual figcaption { padding: 7px 12px; font-size: .7rem; }
  .campaign-hero .actions { align-items: flex-start; }
}
@media (max-width: 420px) {
  .campaign-hero .campaign-heading { padding: 14px 16px 16px; }
  .campaign-hero .campaign-title { font-size: 1.85rem; }
  .campaign-hero .campaign-title > span { flex-basis: 100%; }
  .campaign-hero .hero-copy { padding: 15px 16px 22px; }
}
@media print {
  .hero.campaign-hero { break-inside: auto; }
  .campaign-hero .campaign-visual { break-inside: avoid; }
}
