/* Batch 04 hero compositions · T31–T50 */

.hx--entrance .hx__stage--entrance { position: relative; min-height: min(82vh, 880px); }
.hx--entrance .hx__frame--entrance { position: absolute; inset: auto 0 10% 0; max-width: 36rem; padding-inline: clamp(1rem, 4vw, 2.5rem); }
.hx--entrance .hx__brand { font-size: clamp(2.4rem, 7vw, 5rem); letter-spacing: -0.03em; }

.hx--boutique .hx__stage--boutique { min-height: min(78vh, 820px); }
.hx--boutique .hx__frame--boutique { position: absolute; inset: auto auto 12% 8%; max-width: 28rem; }
.hx--boutique .hx__brand { font-family: var(--display); font-size: clamp(2.2rem, 5vw, 3.8rem); font-weight: 600; letter-spacing: 0.04em; }

.hx--market .hx__stage--market { min-height: auto; padding: 2rem 0 1.25rem; border-bottom: 2px solid var(--ink); }
.hx--market .hx__brand { font-size: clamp(1.8rem, 3.5vw, 2.6rem); margin: 0.25rem 0 0.85rem; font-weight: 900; }
.hx--market .hx__market-row { display: grid; grid-template-columns: 1.2fr 1fr auto; gap: 1.25rem; align-items: end; }

.hx--maglong .hx__stage--maglong { min-height: min(88vh, 920px); }
.hx--maglong .hx__frame--maglong { position: absolute; inset: auto 0 10% 0; color: #fff; max-width: 40rem; padding-inline: clamp(1rem, 4vw, 2.5rem); }
.hx--maglong .hx__brand { font-family: var(--display); font-size: clamp(2.6rem, 7vw, 5.2rem); font-weight: 600; }

.hx--needmap .hx__stage--needmap { min-height: auto; padding: 2.5rem 0 1.5rem; }
.hx--needmap .hx__brand { font-size: clamp(2rem, 4.5vw, 3.2rem); font-weight: 800; margin: 0 0 1rem; }
.hx--needmap .hx__need-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; list-style: none; padding: 0; margin: 1rem 0 0; }
.hx--needmap .hx__need-grid li { border: 2px solid var(--ink); min-height: 6.5rem; padding: 1rem; display: grid; align-content: end; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.78rem; }

.hx--mono .hx__stage--mono { min-height: min(80vh, 860px); }
.hx--mono .hx__frame--mono { position: absolute; inset: auto 0 12% 0; max-width: 32rem; padding-inline: clamp(1rem, 4vw, 2.5rem); }
.hx--mono .hx__brand { font-family: var(--display); font-size: clamp(2.8rem, 8vw, 5.5rem); font-weight: 500; letter-spacing: -0.04em; }

.hx--launch .hx__stage--launch { min-height: min(78vh, 820px); }
.hx--launch .hx__frame--launch { position: absolute; inset: auto 0 10% 0; padding-inline: clamp(1rem, 4vw, 2.5rem); }
.hx--launch .hx__stamp {
  display: inline-block; padding: 0.35rem 0.7rem; background: var(--sale); color: #fff;
  font-size: 0.7rem; font-weight: 900; letter-spacing: 0.12em; text-transform: uppercase;
}
.hx--launch .hx__brand { font-size: clamp(2.2rem, 6vw, 4.2rem); font-weight: 900; }

.hx--museum .hx__stage--museum { min-height: auto; padding: 2.5rem 0 1.5rem; border-bottom: 2px solid var(--ink); }
.hx--museum .hx__brand { font-family: var(--display); font-size: clamp(2rem, 4.5vw, 3.2rem); letter-spacing: 0.08em; text-transform: uppercase; }
.hx--museum .hx__museum-meta { display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; margin: 1rem 0 0; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--moss); }

.hx--scenario .hx__stage--scenario { display: grid; grid-template-columns: 1fr 1fr; min-height: min(78vh, 820px); }
.hx--scenario .hx__scenario-copy { display: grid; align-content: center; gap: 0.85rem; padding: clamp(1.5rem, 4vw, 3rem); background: color-mix(in srgb, var(--moss) 10%, var(--bg)); }
.hx--scenario .hx__scenario-media .hx__media { height: 100%; min-height: min(78vh, 820px); }
.hx--scenario .hx__scenario-media .hx__bg { height: 100%; object-fit: cover; }
.hx--scenario .hx__brand { font-size: clamp(2rem, 4.5vw, 3.2rem); font-weight: 800; }

.hx--spatial .hx__stage--spatial { min-height: min(84vh, 900px); }
.hx--spatial .hx__spatial-float {
  position: absolute; left: 50%; bottom: 12%; transform: translateX(-50%);
  width: min(30rem, 90vw); padding: 1.25rem 1.4rem; border-radius: 4px;
  background: var(--bg); backdrop-filter: none;
  border: 2px solid var(--ink);
}
.hx--spatial .hx__brand { font-size: clamp(1.8rem, 4vw, 2.8rem); font-weight: 800; }

.hx--funnel .hx__stage--funnel { min-height: min(72vh, 760px); }
.hx--funnel .hx__frame--funnel { position: absolute; inset: auto 0 12% 0; max-width: 34rem; padding-inline: clamp(1rem, 4vw, 2.5rem); }
.hx--funnel .hx__brand { font-size: clamp(2rem, 5vw, 3.4rem); font-weight: 900; letter-spacing: -0.02em; }
.hx--funnel .hx__actions .an-btn--solid { min-height: 3rem; font-weight: 900; text-transform: uppercase; letter-spacing: 0.06em; }

.hx--ugcpath .hx__stage--ugcpath { min-height: min(76vh, 800px); }
.hx--ugcpath .hx__frame--ugcpath { position: absolute; inset: auto 0 10% 0; padding-inline: clamp(1rem, 4vw, 2.5rem); }
.hx--ugcpath .hx__proof-chip {
  display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.35rem 0.7rem;
  border-radius: 999px; background: color-mix(in srgb, var(--bg) 80%, transparent);
  font-size: 0.72rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase;
}
.hx--ugcpath .hx__brand { font-size: clamp(2rem, 5vw, 3.4rem); font-weight: 800; }

.hx--educate .hx__stage--educate { min-height: auto; padding: 2.75rem 0 1.75rem; border-bottom: 2px solid var(--ink); }
.hx--educate .hx__brand { font-size: clamp(2rem, 4.5vw, 3.2rem); font-weight: 800; max-width: 18ch; }
.hx--educate .hx__edu-steps { display: flex; flex-wrap: wrap; gap: 0.45rem; list-style: none; padding: 0; margin: 1rem 0; }
.hx--educate .hx__edu-steps li { padding: 0.35rem 0.7rem; border: 2px solid var(--ink); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }

.hx--photodom .hx__stage--photodom { min-height: min(88vh, 940px); }
.hx--photodom .hx__frame--photodom { position: absolute; inset: auto 0 8% 0; color: #fff; padding-inline: clamp(1rem, 4vw, 2.5rem); max-width: 32rem; }
.hx--photodom .hx__brand { font-family: var(--display); font-size: clamp(2.4rem, 6vw, 4.4rem); font-weight: 600; }

.hx--catalogos .hx__stage--catalogos { min-height: auto; padding: 2rem 0 1.25rem; border-bottom: 2px solid var(--ink); }
.hx--catalogos .hx__brand { font-size: clamp(1.7rem, 3.2vw, 2.4rem); font-weight: 900; letter-spacing: 0.04em; text-transform: uppercase; }
.hx--catalogos .hx__catalog-tools { display: flex; flex-wrap: wrap; gap: 0.55rem; margin: 1rem 0 0; }
.hx--catalogos .hx__catalog-tools input { min-width: min(20rem, 100%); }

.hx--luxstage .hx__stage--luxstage { min-height: min(82vh, 880px); }
.hx--luxstage .hx__frame--luxstage { position: absolute; inset: auto 0 11% 0; padding-inline: clamp(1rem, 4vw, 2.5rem); max-width: 34rem; }
.hx--luxstage .hx__brand { font-family: var(--display); font-size: clamp(2.3rem, 5.5vw, 4rem); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }

.hx--explore .hx__stage--explore { min-height: min(74vh, 780px); }
.hx--explore .hx__frame--explore { position: absolute; inset: auto 0 12% 0; padding-inline: clamp(1rem, 4vw, 2.5rem); }
.hx--explore .hx__brand { font-size: clamp(2rem, 5vw, 3.4rem); font-weight: 800; }
.hx--explore .hx__explore-rails { display: flex; gap: 0.45rem; flex-wrap: wrap; margin: 0.85rem 0 0; list-style: none; padding: 0; }
.hx--explore .hx__explore-rails li { padding: 0.4rem 0.75rem; border: 1.5px solid currentColor; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }

.hx--bundlesets .hx__stage--bundlesets { min-height: min(76vh, 800px); }
.hx--bundlesets .hx__frame--bundlesets { position: absolute; inset: auto 0 11% 0; padding-inline: clamp(1rem, 4vw, 2.5rem); max-width: 36rem; }
.hx--bundlesets .hx__brand { font-size: clamp(2.1rem, 5vw, 3.6rem); font-weight: 900; }
.hx--bundlesets .hx__set-tag { display: inline-block; margin-bottom: 0.5rem; font-size: 0.72rem; font-weight: 900; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sale); }

.hx--retain .hx__stage--retain { min-height: auto; padding: 2.5rem 0 1.5rem; border-bottom: 2px solid var(--moss); }
.hx--retain .hx__brand { font-size: clamp(2rem, 4.5vw, 3.2rem); font-weight: 800; }
.hx--retain .hx__retain-row { display: flex; flex-wrap: wrap; gap: 0.55rem; margin: 1rem 0 0; list-style: none; padding: 0; }
.hx--retain .hx__retain-row li { padding: 0.45rem 0.8rem; border: 2px solid var(--moss); font-size: 0.74rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }

.hx--adaptive .hx__stage--adaptive { min-height: min(80vh, 860px); }
.hx--adaptive .hx__frame--adaptive { position: absolute; inset: auto 0 11% 0; padding-inline: clamp(1rem, 4vw, 2.5rem); max-width: 36rem; }
.hx--adaptive .hx__brand { font-size: clamp(2.1rem, 5.2vw, 3.8rem); font-weight: 900; letter-spacing: -0.03em; }
.hx--adaptive .hx__mode {
  display: inline-block; margin-bottom: 0.55rem; padding: 0.3rem 0.65rem;
  border: 1.5px solid currentColor; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase;
}

/* Primary CTA contrast inside heroes */
.hx--entrance .an-btn--solid,
.hx--boutique .an-btn--solid,
.hx--market .an-btn--solid,
.hx--maglong .an-btn--solid,
.hx--needmap .an-btn--solid,
.hx--mono .an-btn--solid,
.hx--launch .an-btn--solid,
.hx--museum .an-btn--solid,
.hx--scenario .an-btn--solid,
.hx--spatial .an-btn--solid,
.hx--funnel .an-btn--solid,
.hx--ugcpath .an-btn--solid,
.hx--educate .an-btn--solid,
.hx--photodom .an-btn--solid,
.hx--catalogos .an-btn--solid,
.hx--luxstage .an-btn--solid,
.hx--explore .an-btn--solid,
.hx--bundlesets .an-btn--solid,
.hx--retain .an-btn--solid,
.hx--adaptive .an-btn--solid {
  background: var(--cta-bg, var(--ink)) !important;
  color: var(--cta-fg, #fff) !important;
  border-color: var(--cta-border, var(--cta-bg, var(--ink))) !important;
  -webkit-text-fill-color: var(--cta-fg, #fff) !important;
}

@media (max-width: 899px) {
  .hx--boutique .hx__frame--boutique { inset: auto 1rem 8% 1rem; max-width: none; }
  .hx--market .hx__market-row,
  .hx--scenario .hx__stage--scenario,
  .hx--needmap .hx__need-grid { grid-template-columns: 1fr; }
  .hx--scenario .hx__scenario-media .hx__media { min-height: 48vh; }
  .hx--spatial .hx__spatial-float { bottom: 8%; }
}
