/* Final review refinements: preserve the established colours, cards and portraits. */
:root { --header-clearance: 7rem; --contact-clearance: calc(3.5rem + env(safe-area-inset-bottom)); }
html { scroll-padding-top: var(--header-clearance); scroll-padding-bottom: var(--contact-clearance); }
.programme-card, #form-home { scroll-margin-top: 0; }
.hero-grid { min-height: 0; grid-template-columns: minmax(0, 1fr); padding-block: 1rem 2rem; gap: 1.5rem; }
.hero-art { align-self: center; }
.hero-art img { width: min(100%, 32rem); max-height: none; border-radius: 2rem; }
.hero-copy { min-width: 0; }
.hero h1 { font-size: clamp(2.25rem, 8.5vw, 2.65rem); }
.character-line, .programme-strap, .programme-lead, .family-invitation p { color: var(--muted); font-weight: 400; }
.site-footer a { color: #fff; }
.mobile-contact-bar a { min-height: 2.75rem; }
body { padding-bottom: var(--contact-clearance); }
@media (max-width: 47.99rem) {
  .section { padding-block: 2.5rem; }
  .section-heading { margin-bottom: 1.5rem; }
  .programme-intro { gap: 1rem; margin-bottom: 1.5rem; }
  .family-invitation, .family-outro { margin-top: 1.75rem; }
  .service-card { min-height: 0; padding: 1.25rem; }
  .service-card p:last-child { margin-bottom: 0; }
  .service-icon { margin-bottom: .5rem; font-size: 1.8rem; }
  .centered-action { margin-top: 1.5rem; }
  .booking { padding-bottom: 0; }
  #enquiry-dialog { padding: 1.5rem; max-height: calc(100dvh - 2rem); }
}
@media (min-width: 48rem) {
  :root { --contact-clearance: 1rem; }
  body { padding-bottom: 0; }
  .hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); padding-block: 2rem; }
  .hero h1 { font-size: clamp(2.7rem, 4.4vw, 4.5rem); }
}
