/* hero: MawX treatments. Home: `hero--home` (+ `topo`). Interior page headers: `hero--interior`. */
.block--hero .hero__title { font-size: var(--maw-text-3xl); line-height: 1.08; letter-spacing: -0.02em; font-weight: 400; }
.block--hero .hero__content > * + * { margin-top: 24px; }
.block--hero .hero__content > .eyebrow + .hero__title { margin-top: 28px; }
.block--hero .hero__text { font-family: var(--maw-font-heading); font-weight: 300; font-size: var(--maw-text-lg); line-height: 1.55; color: var(--ink-soft); max-width: 36rem; }
.block--hero .button-row { margin-top: 48px; }
/* Every split hero gives the text column up to 60rem; the media takes the rest */
.block--hero .hero--split { grid-template-columns: minmax(0, 60rem) minmax(18rem, 1fr); }

/* Home: big headline beside the brand mark */
.hero--home { padding-top: clamp(3.5rem, 2rem + 4vw, 6.25rem); }
.hero--home .hero__title { font-size: clamp(2.75rem, 1.5rem + 3.6vw, 4.75rem); max-width: 24ch; }
.hero--home .hero--split { grid-template-columns: minmax(0, 60rem) minmax(18rem, 1fr); gap: clamp(2.5rem, 1rem + 4vw, 5rem); }
.hero--home .hero__media { display: flex; justify-content: center; }
.hero--home .hero__media img { width: 78%; max-width: 320px; border-radius: 0; box-shadow: none; filter: drop-shadow(0 16px 40px rgb(31 30 27 / 0.10)); }
@media (max-width: 1024px) {
  .hero--home .hero--split { grid-template-columns: 1fr; gap: 56px; }
  .hero--home .hero__media { justify-content: flex-start; }
  .hero--home .hero__media img { width: 200px; }
}

/* Contact / service page: text-only, left aligned, big title (the "Built for" row follows in the same topo band) */
.hero--contact { padding-top: clamp(3.5rem, 2rem + 4vw, 6.25rem); padding-bottom: 0; }
.hero--contact .hero--split { grid-template-columns: minmax(0, 60rem); }
.hero--contact .hero__title { font-size: var(--maw-text-4xl); }

/* Apex and Granite product pages: the lockup (mark + wordmark) sits bare on the page; a cream plate only in dark mode so the ink stays visible */
:is(.hero--apex, .hero--granite) .hero--split { grid-template-columns: minmax(0, 1fr) minmax(18rem, 26rem); }
:is(.hero--apex, .hero--granite) .hero__media { display: grid; place-items: center; max-width: 440px; padding: 24px 0; }
:root[data-theme="dark"] :is(.hero--apex, .hero--granite) .hero__media { background: var(--cream, #f4efe6); border-radius: 4px; padding: 32px; }
:is(.hero--apex, .hero--granite) .hero__media img { width: 100%; box-shadow: none; border-radius: 0; }
@media (max-width: 1024px) { :is(.hero--apex, .hero--granite) .hero--split { grid-template-columns: 1fr; } :is(.hero--apex, .hero--granite) .hero__media { max-width: 300px; } }

/* Platform service pages (WordPress, Grav): a large bare mark in the media column */
.hero--platform .hero--split { grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem); }
.hero--platform .hero__media { display: grid; place-items: center; aspect-ratio: 1; width: 100%; max-width: 300px; margin-left: auto; }
.hero--platform .hero__media img { width: 72%; box-shadow: none; border-radius: 0; opacity: 0.92; }
:root[data-theme="dark"] .hero--platform .hero__media img { filter: invert(1); }
@media (max-width: 1024px) { .hero--platform .hero--split { grid-template-columns: 1fr; } .hero--platform .hero__media { max-width: 200px; margin-left: 0; } }
