/* Keep the approved Foto & Film message readable in the existing design. */
#hero .hero-service-title { margin-bottom: 1rem; }
#hero .hero-intro { max-width: 620px; margin: 0 auto 1.6rem; font: 400 .85rem/1.8 var(--font-body); color: var(--cream); }
#hero .hero-booking-note { margin: 1rem auto 0; font: 400 .65rem/1.7 var(--font-body); letter-spacing: .03em; color: var(--gold-light); }
/* Resolve the deferred gallery height before calculating the booking fragment. */
html:has(#contactForm:target) .portfolio-masonry { content-visibility: visible; contain-intrinsic-block-size: none; }
@media (min-width: 769px) {
  #hero { min-height: 760px; }
  #hero .hero-content { padding-top: 5.5rem; padding-bottom: 6rem; }
  #hero .hero-badge { margin-bottom: 1.6rem; }
  #hero .hero-title { font-size: clamp(3.2rem, 7.5vw, 6rem); margin-bottom: 1.4rem; }
}
@media (max-width: 768px) {
  #hero .hero-content { padding-top: 1.6rem; padding-bottom: 2rem; }
  #hero .hero-badge { margin-bottom: 1.3rem; }
  #hero .hero-title { font-size: clamp(2.5rem, 11vw, 4rem); margin-bottom: 1.2rem; }
  #hero .hero-service-line { font-size: clamp(1.2rem, 5.2vw, 1.55rem); text-wrap: balance; }
  #hero .hero-region-line { margin-top: .45rem; }
  #hero .hero-intro { margin-bottom: 1.3rem; font-size: .75rem; line-height: 1.75; }
  #hero .hero-cta { gap: .8rem; }
  #hero .hero-cta .btn { max-width: 100%; padding: 1.1rem 1.3rem; }
  #hero .hero-booking-note { margin-top: .8rem; font-size: .6rem; }
}

/* Explicit team size applies to combined photo and film coverage. */
#hero .hero-team-note { margin: -.3rem auto 1.3rem; font: 400 .78rem/1.7 var(--font-body); color: var(--cream); }
#hero .hero-team-note strong { display: block; color: var(--gold-light); font-weight: 600; letter-spacing: .05em; }
#hero .hero-team-note span { display: block; }
