/* Hero configurable de portada. Los presets comparten estructura y cambian el lenguaje visual. */
.novu-home-hero {
	--novu-hero-accent: #7ed475;
	--novu-hero-overlay: .88;
	--novu-hero-overlay-mid: .63;
	--novu-hero-text: #fff;
	--novu-hero-muted: rgba(255, 255, 255, .74);
	position: relative;
	left: 50%;
	display: flex;
	width: 100vw !important;
	max-width: 100vw !important;
	align-items: center;
	margin: 0 !important;
	overflow: hidden;
	background-color: #080b0a;
	background-position: center;
	background-size: cover;
	border: 0;
	box-shadow: 0 20px 55px rgba(0, 0, 0, .14);
	transform: translateX(-50%);
	isolation: isolate;
}

.novu-home-hero--height-compact { min-height: clamp(360px, 32vw, 510px); }
.novu-home-hero--height-balanced { min-height: clamp(405px, 37.5vw, 600px); }
.novu-home-hero--height-immersive { min-height: clamp(520px, 48vw, 760px); }
.novu-home-hero--width-contained { width: min(94vw, 1600px) !important; max-width: 1600px !important; border-radius: 20px; }
.novu-home-hero::before { position: absolute; inset: 0; z-index: -1; content: ''; }

.novu-home-hero--bold-dark::before,
.novu-home-hero--minimal-dark::before {
	background: linear-gradient(90deg, rgba(4, 7, 6, var(--novu-hero-overlay)) 0%, rgba(4, 7, 6, var(--novu-hero-overlay-mid)) 34%, rgba(4, 7, 6, .22) 58%, rgba(4, 7, 6, .02) 78%);
}

.novu-home-hero--bold-light,
.novu-home-hero--minimal-light { --novu-hero-text: #111514; --novu-hero-muted: rgba(17, 21, 20, .68); background-color: #eee; }

.novu-home-hero--bold-light::before,
.novu-home-hero--minimal-light::before {
	background: linear-gradient(90deg, rgba(255, 255, 255, var(--novu-hero-overlay)) 0%, rgba(255, 255, 255, var(--novu-hero-overlay-mid)) 36%, rgba(255, 255, 255, .22) 61%, rgba(255, 255, 255, 0) 80%);
}

.novu-home-hero__content {
	width: min(92vw, 1320px);
	max-width: 1320px;
	margin: 0 auto;
	padding: clamp(34px, 4.4vw, 72px) 0;
	color: var(--novu-hero-text);
}
.novu-home-hero__eyebrow { display: flex; align-items: center; gap: 14px; margin: 0 0 22px !important; color: var(--novu-hero-muted); font-family: Inter, sans-serif; font-size: clamp(.67rem, .7vw, .78rem); font-weight: 700; letter-spacing: .31em; text-transform: uppercase; }
.novu-home-hero__eyebrow::before { width: 42px; height: 3px; flex: 0 0 auto; background: var(--novu-hero-accent); border-radius: 99px; content: ''; }
.novu-home-hero h1 { max-width: 710px; margin: 0 0 22px !important; color: var(--novu-hero-text); font-family: Inter, sans-serif; font-size: clamp(2.4rem, 4.25vw, 4.6rem); font-weight: 700; letter-spacing: -.055em; line-height: .98; }
.novu-home-hero h1 span { color: var(--novu-hero-accent); }
.novu-home-hero__summary { max-width: 570px; margin: 0 0 30px !important; color: var(--novu-hero-muted); font-size: clamp(.95rem, 1.15vw, 1.18rem); line-height: 1.55; }
.novu-home-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.novu-home-hero__button { display: inline-flex; min-height: 54px; align-items: center; justify-content: space-between; gap: 26px; padding: 13px 22px; border: 1px solid var(--novu-hero-accent); border-radius: 11px; background: var(--novu-hero-accent); box-shadow: 0 10px 30px color-mix(in srgb, var(--novu-hero-accent) 25%, transparent); color: #06110b; font-family: Inter, sans-serif; font-size: .94rem; font-weight: 700; text-decoration: none; transition: filter .2s ease, transform .2s ease, box-shadow .2s ease; }
.novu-home-hero__button span { font-size: 1.35em; line-height: 1; }
.novu-home-hero__button:hover,
.novu-home-hero__button:focus-visible { color: #06110b; filter: brightness(.92); transform: translateY(-2px); }
.novu-home-hero__benefits { display: flex; align-items: center; gap: clamp(18px, 2.3vw, 38px); margin-top: clamp(30px, 4vw, 56px); color: var(--novu-hero-muted); font-family: Inter, sans-serif; font-size: clamp(.7rem, .78vw, .86rem); line-height: 1.35; }
.novu-home-hero__benefits > span { display: flex; align-items: center; gap: 10px; white-space: nowrap; }
.novu-home-hero__benefits svg { width: 31px; height: 31px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }

/* Editorial/minimal: trazos finos, más aire y botón sobrio. */
.novu-home-hero--minimal-light .novu-home-hero__content,
.novu-home-hero--minimal-dark .novu-home-hero__content { width: min(92vw, 1320px); max-width: 1320px; padding-top: clamp(42px, 5.2vw, 84px); padding-bottom: clamp(42px, 5.2vw, 84px); }
.novu-home-hero--minimal-light .novu-home-hero__eyebrow,
.novu-home-hero--minimal-dark .novu-home-hero__eyebrow { margin-bottom: 30px !important; font-weight: 400; letter-spacing: .42em; }
.novu-home-hero--minimal-light .novu-home-hero__eyebrow::before,
.novu-home-hero--minimal-dark .novu-home-hero__eyebrow::before { width: 22px; height: 1px; }
.novu-home-hero--minimal-light h1,
.novu-home-hero--minimal-dark h1 { max-width: 680px; margin-bottom: 24px !important; font-size: clamp(2.65rem, 4.5vw, 5rem); font-weight: 300; letter-spacing: -.045em; line-height: .96; }
.novu-home-hero--minimal-light h1 span,
.novu-home-hero--minimal-dark h1 span { font-weight: 400; }
.novu-home-hero--minimal-light .novu-home-hero__summary,
.novu-home-hero--minimal-dark .novu-home-hero__summary { max-width: 470px; margin-bottom: 34px !important; font-size: clamp(.88rem, 1vw, 1.03rem); font-weight: 300; line-height: 1.55; }
.novu-home-hero--minimal-light .novu-home-hero__button,
.novu-home-hero--minimal-dark .novu-home-hero__button { min-height: 48px; padding: 11px 19px; border-color: currentColor; border-radius: 3px; background: transparent; box-shadow: none; color: var(--novu-hero-text); font-size: .86rem; font-weight: 400; }
.novu-home-hero--minimal-light .novu-home-hero__button { border-color: rgba(17, 21, 20, .72); background: rgba(255, 255, 255, .12); color: #111514; }
.novu-home-hero--minimal-light .novu-home-hero__button:hover,
.novu-home-hero--minimal-light .novu-home-hero__button:focus-visible { background: #111514; color: #fff; }
.novu-home-hero--minimal-dark .novu-home-hero__button:hover,
.novu-home-hero--minimal-dark .novu-home-hero__button:focus-visible { background: #fff; color: #111514; }
.novu-home-hero--minimal-light .novu-home-hero__benefits,
.novu-home-hero--minimal-dark .novu-home-hero__benefits { gap: clamp(16px, 2vw, 30px); margin-top: clamp(30px, 3.5vw, 50px); font-size: clamp(.66rem, .72vw, .78rem); font-weight: 300; }
.novu-home-hero--minimal-light .novu-home-hero__benefits svg,
.novu-home-hero--minimal-dark .novu-home-hero__benefits svg { width: 26px; height: 26px; stroke-width: 1.35; }

@media (max-width: 900px) {
	.novu-home-hero { background-position: 62% center !important; }
	.novu-home-hero::before { background: linear-gradient(90deg, rgba(4, 7, 6, .96) 0%, rgba(4, 7, 6, .76) 51%, rgba(4, 7, 6, .18) 82%); }
	.novu-home-hero--bold-light::before,
	.novu-home-hero--minimal-light::before { background: linear-gradient(90deg, rgba(255, 255, 255, .96) 0%, rgba(255, 255, 255, .76) 51%, rgba(255, 255, 255, .18) 82%); }
	.novu-home-hero__content { width: calc(100vw - 48px); }
	.novu-home-hero--minimal-light .novu-home-hero__content,
	.novu-home-hero--minimal-dark .novu-home-hero__content { width: calc(100vw - 48px); }
	.novu-home-hero__content > * { max-width: 64%; }
}

@media (max-width: 620px) {
	.novu-home-hero,
	.novu-home-hero--width-contained { width: 100vw !important; min-height: 430px; align-items: flex-end; background-position: 64% center !important; border-radius: 0; }
	.novu-home-hero::before { background: linear-gradient(90deg, rgba(3, 6, 5, .96) 0%, rgba(3, 6, 5, .78) 65%, rgba(3, 6, 5, .28) 100%); }
	.novu-home-hero--bold-light::before,
	.novu-home-hero--minimal-light::before { background: linear-gradient(90deg, rgba(255, 255, 255, .96) 0%, rgba(255, 255, 255, .8) 65%, rgba(255, 255, 255, .3) 100%); }
	.novu-home-hero__content,
	.novu-home-hero--minimal-light .novu-home-hero__content,
	.novu-home-hero--minimal-dark .novu-home-hero__content { width: 100%; padding: 28px 24px 30px; }
	.novu-home-hero__content > * { max-width: 100%; }
	.novu-home-hero__eyebrow { margin-bottom: 16px !important; letter-spacing: .2em; }
	.novu-home-hero h1,
	.novu-home-hero--minimal-light h1,
	.novu-home-hero--minimal-dark h1 { font-size: clamp(2.15rem, 10vw, 3rem); line-height: .96; }
	.novu-home-hero__summary { max-width: 92%; font-size: .94rem; }
	.novu-home-hero__benefits { display: none; }
	.novu-home-hero__button { min-height: 48px; gap: 15px; padding: 11px 15px; font-size: .82rem; }
}

@media (prefers-reduced-motion: reduce) { .novu-home-hero__button { transition: none; } }
