/*
 * HolDent — Block: Hero Internal
 */

.holdent-hero-internal {
  position: relative;
  overflow: hidden;
}

/* Fit-viewport variant — Audit UX 2026-05 Sprint 7. Forza l'hero a coprire
   esattamente l'altezza viewport sotto la navbar (132px desktop / 96px mobile).
   Mobile: solo min-height (lascia scrollare se content troppo alto). */
.holdent-hero-internal--fit-viewport {
  min-height: calc(100svh - 132px);
}

@media (max-width: 767.98px) {
  .holdent-hero-internal--fit-viewport {
    min-height: calc(100svh - 96px);
  }
}

.holdent-hero-internal--fit-viewport.holdent-hero-internal--content {
  display: flex;
  align-items: center;
}

.holdent-hero-internal--fit-viewport .holdent-hero-internal__inner {
  width: 100%;
}

@media (min-width: 900px) {
  .holdent-hero-internal--fit-viewport.holdent-hero-internal--content {
    max-height: calc(100svh - 132px);
    overflow: hidden;
  }
  .holdent-hero-internal--fit-viewport .holdent-hero-internal__visual-frame {
    aspect-ratio: 5 / 4;
    max-height: calc(100svh - 240px);
  }
}

.holdent-hero-internal--bg-canvas    { background: var(--color-canvas); }
.holdent-hero-internal--bg-alternate { background: var(--color-alternate); }

/* -----------------------------------------------------------------
   Variant: content (default, 2-col)
   ----------------------------------------------------------------- */
.holdent-hero-internal--content .holdent-hero-internal__inner {
  padding-block: var(--space-3xl);
}

.holdent-hero-internal__breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: var(--space-xl);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}
.holdent-hero-internal__breadcrumb a:hover { color: var(--color-primary); }
.holdent-hero-internal__breadcrumb-sep { color: var(--color-primary); }
.holdent-hero-internal__breadcrumb-current { color: var(--color-text); }

.holdent-hero-internal__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2xl);
  align-items: center;
}

@media (min-width: 900px) {
  .holdent-hero-internal__grid {
    grid-template-columns: 1.3fr 1fr;
    gap: var(--space-3xl);
  }
}

.holdent-hero-internal__overline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 12px;
  border-radius: var(--radius-full);
  background: color-mix(in srgb, var(--color-primary) 8%, transparent);
  color: var(--color-primary);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: var(--space-lg);
}

.holdent-hero-internal__title {
  font-family: var(--font-headline);
  font-weight: 800;
  font-size: clamp(40px, 6vw, 72px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin-bottom: var(--space-lg);
  color: var(--color-ink);
}

.holdent-hero-internal__subtitle {
  font-size: var(--fs-body-l);
  line-height: var(--lh-body);
  color: var(--color-text-muted);
  margin-bottom: var(--space-xl);
  max-width: 560px;
}

.holdent-hero-internal__l145 {
  margin-top: var(--space-xl);
  max-width: 560px;
}

.holdent-hero-internal__visual-frame {
  width: 100%;
  aspect-ratio: 4 / 5;
  border-radius: 40px;
  overflow: hidden;
  background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-xl);
}

.holdent-hero-internal__visual-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.holdent-hero-internal__visual-icon { color: rgba(255, 255, 255, 0.4); }

/* -----------------------------------------------------------------
   Variant: banner (single-sede) — aspect 21:9 full-width gradient
   ----------------------------------------------------------------- */
.holdent-hero-internal--banner .holdent-hero-internal__banner {
  min-height: 50vh;
  max-height: 520px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--color-primary), var(--color-secondary));
  overflow: hidden;
}

/* Banner fit-viewport — Sprint 7: hero sede "a schermo".
   Override min/max-height per coprire l'intera viewport sotto la navbar. */
.holdent-hero-internal--fit-viewport.holdent-hero-internal--banner .holdent-hero-internal__banner {
  min-height: calc(100svh - 132px);
  max-height: none;
}

@media (max-width: 767.98px) {
  .holdent-hero-internal--fit-viewport.holdent-hero-internal--banner .holdent-hero-internal__banner {
    min-height: calc(100svh - 96px);
  }
}

.holdent-hero-internal__banner-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
}

.holdent-hero-internal__banner-icon {
  color: rgba(255, 255, 255, 0.3);
}
