/*
 * Nova Builder theme adapter runtime.
 *
 * This file is loaded only when Nova Builder Core is active. It contains the
 * theme base and legacy homepage modules, but intentionally does not contain
 * Nova block/component rules. Component markup, controls and component CSS
 * come from the plugin so an older theme stylesheet cannot override them.
 */
:root { --nova-max: 1240px; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--nova-paper, #f5f6fb);
	color: var(--nova-ink, #17151f);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
button, input, textarea, select { font: inherit; }
.nova-wrap { width: min(calc(100% - 64px), var(--nova-max, 1240px)); margin-right: auto; margin-left: auto; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Legacy homepage module source. Nova Blocks do not depend on these rules. */
.nova-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 720px;
	overflow: hidden;
	background: radial-gradient(circle at 76% 18%, #9086ff 0, rgba(144,134,255,.25) 22%, transparent 42%), linear-gradient(135deg, #17151f 0%, #272339 50%, #6259b7 100%);
	color: #fff;
}
.nova-hero::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(23,21,31,.92), rgba(23,21,31,.35) 70%, rgba(23,21,31,.1)); content: ""; }
.nova-hero__shape { position: absolute; right: 7%; bottom: -18%; width: 44vw; height: 44vw; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; box-shadow: 0 0 0 42px rgba(255,255,255,.04), 0 0 0 84px rgba(255,255,255,.03); transform: rotate(-18deg); }
.nova-hero__inner { position: relative; z-index: 1; width: 100%; padding: 160px 0 82px; }
.nova-hero__content { max-width: 720px; }
.nova-hero h1 { margin: 0; max-width: 720px; font-size: clamp(68px, 10vw, 148px); line-height: .83; letter-spacing: -.095em; }
.nova-hero .nova-eyebrow { color: #aaa1ff; }
.nova-hero .nova-lead { max-width: 560px; margin: 24px 0 0; color: rgba(255,255,255,.72); font-size: 18px; }
.nova-hero__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-top: 36px; }
.nova-hero__actions .nova-link { color: #fff; }
.nova-hero__meta { display: flex; justify-content: space-between; margin-top: 128px; color: rgba(255,255,255,.55); font-size: 10px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.nova-logo-strip { padding: 28px 0; border-top: 1px solid #dfe1ea; border-bottom: 1px solid #dfe1ea; background: #eef0f7; }
.nova-logo-strip p { margin: 0 0 16px; color: #9599a9; font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.nova-logo-strip__row { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 18px 34px; color: #767a8b; font-size: 13px; font-weight: 900; letter-spacing: .12em; }
.nova-section { padding: 116px 0; }
.nova-section--surface { background: var(--nova-surface, #fff); }
.nova-section--dark { background: var(--nova-dark, #17151f); color: #fff; }
.nova-section--accent { background: var(--nova-accent, #6d5dfc); color: #fff; }
.nova-section--accent .nova-eyebrow { color: rgba(255,255,255,.65); }
.nova-section-head { display: flex; align-items: end; justify-content: space-between; gap: 32px; }
.nova-section-head__copy { max-width: 370px; }
.nova-heading { margin: 0; font-size: clamp(42px, 7vw, 92px); line-height: .92; letter-spacing: -.075em; }
.nova-section .nova-lead { max-width: 560px; margin: 24px 0 0; color: #6e7180; font-size: 18px; }
.nova-section--dark .nova-lead, .nova-section--accent .nova-lead { color: rgba(255,255,255,.7); }
.nova-feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 62px; }
.nova-feature { min-height: 290px; padding: 28px; border-radius: var(--nova-radius, 18px); background: var(--nova-paper, #f5f6fb); transition: transform .25s ease, box-shadow .25s ease; }
.nova-feature:hover { transform: translateY(-6px); box-shadow: 0 18px 36px rgba(23,21,31,.1); }
.nova-feature__number { color: var(--nova-accent, #6d5dfc); font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.nova-feature h3 { max-width: 280px; margin: 108px 0 12px; font-size: 24px; line-height: 1.08; letter-spacing: -.045em; }
.nova-feature p { max-width: 300px; margin: 0; color: #737686; font-size: 14px; }
.nova-split { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: center; }
.nova-split__visual { position: relative; min-height: 540px; overflow: hidden; border-radius: var(--nova-radius, 18px); background: radial-gradient(circle at 35% 28%, #aaa1ff, transparent 23%), linear-gradient(150deg, #2c2940, #17151f 68%); color: #fff; }
.nova-split__visual::before { position: absolute; inset: 16%; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; content: ""; transform: rotate(32deg); }
.nova-split__visual::after { position: absolute; right: 13%; bottom: 12%; width: 46%; height: 46%; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; content: ""; }
.nova-split__visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nova-split__visual-label { position: absolute; right: 26px; bottom: 24px; left: 26px; display: flex; justify-content: space-between; color: rgba(255,255,255,.68); font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.nova-split__copy h2 { max-width: 540px; margin: 0; font-size: clamp(44px, 6vw, 76px); line-height: .92; letter-spacing: -.075em; }
.nova-split__copy > p:not(.nova-eyebrow) { max-width: 470px; margin: 24px 0 0; color: #6e7180; font-size: 17px; }
.nova-split__copy .nova-link { margin-top: 30px; }
.nova-testimonials { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 60px; }
.nova-quote { padding: 36px; border-radius: var(--nova-radius, 18px); background: #242230; color: #fff; }
.nova-quote blockquote { margin: 0; font-size: clamp(22px, 3vw, 34px); line-height: 1.08; letter-spacing: -.04em; }
.nova-quote__by { margin: 56px 0 0; color: rgba(255,255,255,.56); font-size: 12px; }
.nova-quote__by strong { display: block; margin-bottom: 3px; color: #fff; }
.nova-cta { display: flex; align-items: end; justify-content: space-between; gap: 40px; }
.nova-cta h2 { max-width: 760px; margin: 0; font-size: clamp(48px, 7vw, 96px); line-height: .87; letter-spacing: -.085em; }
.nova-cta p { max-width: 300px; margin: 0 0 4px; color: rgba(255,255,255,.72); }
.nova-cta .nova-button { flex: 0 0 auto; background: #fff; border-color: #fff; color: var(--nova-accent, #6d5dfc); }

@media (max-width: 900px) {
	.nova-wrap { width: min(calc(100% - 40px), var(--nova-max, 1240px)); }
	.nova-hero { min-height: 680px; }
	.nova-hero__inner { padding-bottom: 48px; }
	.nova-hero__meta { margin-top: 80px; }
	.nova-feature-grid, .nova-split, .nova-testimonials { grid-template-columns: 1fr; }
	.nova-split { gap: 42px; }
	.nova-split__visual { min-height: 420px; order: 2; }
	.nova-section-head { align-items: start; flex-direction: column; }
	.nova-cta { align-items: start; flex-direction: column; }
}
@media (max-width: 560px) {
	.nova-section { padding: 78px 0; }
	.nova-hero h1 { font-size: 68px; }
	.nova-hero__meta { font-size: 9px; }
	.nova-logo-strip__row { display: grid; grid-template-columns: repeat(2, 1fr); font-size: 11px; }
	.nova-split__visual { min-height: 320px; }
	.nova-quote { padding: 24px; }
	.nova-cta h2 { font-size: 56px; }
}
