/* ==========================================================================
   Hero — reusable across Home / Service / Article / About / LP
   Variants controlled by a modifier class on .hero, per Component Inventory.
   ========================================================================== */

.hero {
  padding-block: var(--space-8) var(--space-7);
  background: var(--color-white);
}
.hero__grid {
  display: grid;
  gap: var(--space-6);
  align-items: center;
}
@media (min-width: 1024px) {
  .hero--home .hero__grid,
  .hero--lp .hero__grid { grid-template-columns: 1.1fr 0.9fr; }
}

.hero__eyebrow { margin-bottom: var(--space-3); }

.hero h1 { max-width: 16ch; }
.hero__lead {
  font-size: 1.1rem;
  color: var(--color-text-secondary);
  max-width: 48ch;
  margin-bottom: var(--space-5);
}

.hero__actions {
  display: flex;
  gap: var(--space-3);
  flex-wrap: wrap;
}
.hero__actions--center { justify-content: center; margin-top: var(--space-5); }
@media (max-width: 479px) {
  .hero__actions { flex-direction: column; }
  .hero__actions .btn { width: 100%; justify-content: center; }
}

/* --- Visual frame: this is where the signature "blueprint corner marks" live (v6 §1) --- */
.hero__visual {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--color-surface-2);
  aspect-ratio: 4 / 5;
}
.hero__visual img { width: 100%; height: 100%; object-fit: cover; }

/* --- Empty state when no Featured Image is set yet — deliberately NOT a
   generic stock photo (brand principle: real photography only). Shows a
   clean, on-brand placeholder instead of a broken image icon. --- */
.hero__visual-empty {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--color-navy-900) 0%, var(--color-navy-800) 100%);
}
.hero__visual-empty span {
  font-family: var(--font-mono);
  font-size: var(--fs-caption);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--color-gold-300);
}
.hero__visual .corner-mark {
  position: absolute;
  width: 26px; height: 26px;
  border: 1.5px solid var(--color-gold-500);
  opacity: .85;
}
.hero__visual .corner-mark.tl { top: var(--space-3); right: var(--space-3); border-left: none; border-bottom: none; }
.hero__visual .corner-mark.br { bottom: var(--space-3); left: var(--space-3); border-right: none; border-top: none; }

/* --- Compact variant: Service / Article / About pages (per Wireframe v4 §2, §4) --- */
.hero--compact { padding-block: var(--space-6) var(--space-5); }
.hero--compact h1 { max-width: 22ch; }
