/* Contained hero only. All other sections retain their existing styles. */
.hero {
  min-height: 0;
  display: block;
  overflow: visible;
  background: #f5f4ed;
  padding-block: 60px;
}
.hero-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
  align-items: center;
  gap: 48px;
}
.hero-content { padding: 0; min-width: 0; }
.hero h1 { max-width: 700px; }
.hero-eyebrow { max-width: none; }
.hero-description { max-width: 650px; }
.hero-actions { flex-wrap: wrap; gap: 16px 28px; }
/* Grow into the existing gap so headline width and line breaks stay intact. */
.hero-visual { margin: 0 0 0 -20px; min-width: 0; }
.hero .hero-image {
  position: static;
  inset: auto;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: center;
  border-radius: 8px;
}
@media (max-width: 1150px) {
  .hero { padding-block: 52px; }
  .hero-layout { gap: 32px; }
  .hero-visual { margin-left: -12px; }
}
@media (max-width: 900px) {
  .hero-layout { grid-template-columns: 1fr; gap: 32px; }
  .hero-content { max-width: 700px; }
  .hero-visual { width: 100%; max-width: 510px; margin: 0; }
  .hero .hero-image { aspect-ratio: 3 / 2; }
}
@media (max-width: 850px) {
  .hero { padding-block: 44px; }
  .hero h1 { max-width: 660px; }
  .hero-description { max-width: 650px; }
}
@media (max-width: 650px) {
  .hero { padding-block: 35px 38px; }
  .hero-layout { gap: 30px; }
  .hero-content { padding: 0; }
  .hero-actions { gap: 15px; }
  .hero-visual { max-width: 490px; }
}
@media print {
  .hero { padding-block: 30px; }
  .hero-layout { grid-template-columns: 1fr; }
  .hero-visual { display: none; }
}
