/**
 * Velyte marketing site — platform-look stylesheet.
 *
 * This is NOT a theme over the old purchased template (that's gone); it
 * recreates the product's visual system so the site looks like the app.
 * The site follows the platform style guide (velyte-client/STYLE_GUIDE.md,
 * §10 "Public surfaces", live version at /style-guide in the app). Token
 * values are a one-way copy from velyte-client/src/styles.scss —
 * that file is the source of truth:
 *   chrome navy #0B1626 · signal cyan #00B6FF (only accent on navy)
 *   action blue #2563eb · canvas #F5F7FB · hairline #E6EAF2
 *   ink #0F172A / #475569 / #64748B · radius 4/6/8/12/16/pill
 *   cards: white, 1px hairline, 0 1px 2px whisper shadow — no gradients,
 *   no icon tiles, no hover lift. Type: Inter.
 */

:root {
	--chrome: #0B1626;
	--chrome-deep: #081019;
	--signal: #00B6FF;
	--signal-soft: rgba(0, 182, 255, 0.12);

	--canvas: #F5F7FB;
	--card-bg: #ffffff;
	--card-border: #E6EAF2;
	--card-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);

	--ink: #0F172A;
	--ink-2: #475569;
	--ink-3: #64748B;
	--ink-on-dark: #f1f5f9;
	--ink-on-dark-2: #A9B6CA;

	--accent: #2563eb;
	--accent-strong: #1e3a8a;
	--accent-soft-bg: rgba(37, 99, 235, 0.07);
	--accent-soft-border: rgba(37, 99, 235, 0.20);
	--accent-chip-fg: #1d4ed8;
	--accent-chip-bg: rgba(37, 99, 235, 0.09);

	--btn-neutral-bg: #ffffff;
	--btn-neutral-border: #dbe3ee;
	--btn-neutral-color: #334155;
	--btn-neutral-hover-bg: #f1f5f9;
	--btn-neutral-hover-border: #94a3b8;
	--btn-dark-bg: #0B1626;
	--btn-dark-hover-bg: #1f2937;

	--input-border: #dbe3ee;
	--input-focus-ring: 0 0 0 3px rgba(37, 99, 235, 0.15);
	--label: #334155;

	--danger: #dc2626;

	--radius-xs: 4px;
	--radius-sm: 6px;
	--radius-md: 8px;
	--radius-lg: 12px;
	--radius-xl: 16px;
	--radius-pill: 9999px;

	--font: "Inter", -apple-system, "Segoe UI", Roboto, sans-serif;
	--container: 1080px;
	--container-text: 760px;
}

/* ── Reset-lite ──────────────────────────────────────────────────────────── */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--canvas);
	color: var(--ink);
	font-family: var(--font);
	font-size: 15px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; border: 0; }

h1, h2, h3, h4, h5, p, ul { margin: 0; }

a {
	color: var(--accent);
	text-decoration: none;
}

a:hover { text-decoration: underline; }

a:focus-visible, button:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
	border-radius: var(--radius-xs);
}

.container {
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 20px;
}

/* ── Topbar (mirrors the app's flat navy chrome) ─────────────────────────── */

.site-topbar {
	background: var(--chrome);
}

.site-topbar .container {
	display: flex;
	align-items: center;
	gap: 28px;
	min-height: 70px;
	flex-wrap: wrap;
	padding-top: 10px;
	padding-bottom: 10px;
}

.site-logo {
	display: flex;
	flex-direction: column;
	gap: 5px;
	margin-right: auto;
}

.site-logo:hover { text-decoration: none; }

.site-logo img {
	height: 38px;
	width: auto;
}

.site-logo-tagline {
	font-size: 10.5px;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(241, 245, 249, 0.75);
	line-height: 1.2;
}

.site-nav {
	display: flex;
	align-items: center;
	gap: 4px;
	flex-wrap: wrap;
}

.site-nav a:not(.btn) {
	display: inline-block;
	padding: 8px 12px;
	border-radius: var(--radius-md);
	font-size: 13.5px;
	font-weight: 500;
	color: rgba(241, 245, 249, 0.78);
}

.site-nav a:not(.btn):hover {
	color: #ffffff;
	background: rgba(255, 255, 255, 0.06);
	text-decoration: none;
}

/* Active nav = the cyan signal, exactly like the app's active nav item */
.site-nav a.active:not(.btn) {
	color: var(--signal);
	background: var(--signal-soft);
}

.site-nav .btn { margin-left: 8px; }

/* ── Announce bar (app-style info banner, replaces the old notification) ── */

.announce {
	background: var(--accent-soft-bg);
	border-bottom: 1px solid var(--accent-soft-border);
}

.announce .container {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-top: 9px;
	padding-bottom: 9px;
	font-size: 13.5px;
	color: var(--accent-strong);
}

.announce p { flex: 1; }

.announce a { font-weight: 600; }

.announce-dismiss {
	flex: none;
	width: 26px;
	height: 26px;
	border: 0;
	border-radius: var(--radius-sm);
	background: transparent;
	color: var(--accent-strong);
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
}

.announce-dismiss:hover { background: rgba(37, 99, 235, 0.12); }

/* ── Page scaffolding ────────────────────────────────────────────────────── */

.page {
	padding: 28px 0 56px;
}

.page > .container > * + * {
	margin-top: 20px;
}

/* Left-aligned page header, like the app's page titles */
.page-head {
	padding: 6px 2px 2px;
}

.page-head h1 {
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.25;
}

.page-head p {
	margin-top: 4px;
	font-size: 14.5px;
	color: var(--ink-2);
	max-width: var(--container-text);
}

/* Section label = the app's uppercase eyebrow recipe */
.eyebrow {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ink-3);
}

/* ── Cards (the exact surface recipe) ────────────────────────────────────── */

.card {
	background: var(--card-bg);
	border: 1px solid var(--card-border);
	border-radius: var(--radius-lg);
	box-shadow: var(--card-shadow);
	padding: 22px 24px;
}

.card h2, .card-title {
	font-size: 16px;
	font-weight: 600;
	letter-spacing: -0.005em;
}

.card h3 {
	font-size: 14.5px;
	font-weight: 600;
}

.card p {
	margin-top: 6px;
	font-size: 14px;
	color: var(--ink-2);
}

.card .eyebrow { margin-bottom: 8px; }

.card-cta {
	margin-top: 12px;
	font-size: 13.5px;
	font-weight: 600;
}

/* "The title is the door" chevron, like .panel-head-link */
.card-cta::after {
	content: "›";
	margin-left: 5px;
	font-weight: 700;
}

/* ── Grid rows (12px gaps, like .tly-kpi-row) ───────────────────────────── */

.grid {
	display: grid;
	gap: 12px;
}

.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 991.98px) {
	.grid-3, .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 599.98px) {
	.grid-2, .grid-3, .grid-4 { grid-template-columns: minmax(0, 1fr); }
}

/* ── Stat tiles (the KPI tile recipe, used for the momentum band) ───────── */

.stat-tile {
	background: var(--card-bg);
	border: 1px solid var(--card-border);
	border-radius: var(--radius-lg);
	box-shadow: var(--card-shadow);
	padding: 14px 16px;
	min-width: 0;
}

.stat-label {
	margin-bottom: 6px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ink-3);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.stat-value {
	font-size: 23px;
	font-weight: 650;
	line-height: 1.2;
	letter-spacing: -0.01em;
	font-variant-numeric: tabular-nums;
}

.stat-sub {
	margin-top: 3px;
	font-size: 12.5px;
	color: var(--ink-3);
}

/* ── Chips (pill status chips, like .tly-delta-chip) ─────────────────────── */

.chip {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 3px 9px;
	border-radius: var(--radius-pill);
	font-size: 11px;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
}

.chip-accent { color: var(--accent-chip-fg); background: var(--accent-chip-bg); }
.chip-muted { color: var(--ink-3); background: rgba(100, 116, 139, 0.1); }

/* ── Hero: the one deliberately dark panel (navy card on the canvas) ─────── */

.hero {
	background:
		radial-gradient(ellipse 720px 420px at 12% -12%, rgba(0, 182, 255, 0.14), transparent 60%),
		repeating-linear-gradient(0deg, rgba(0, 182, 255, 0.045) 0 1px, transparent 1px 28px),
		repeating-linear-gradient(90deg, rgba(0, 182, 255, 0.045) 0 1px, transparent 1px 28px),
		var(--chrome);
	border-radius: var(--radius-xl);
	padding: 44px 40px 40px;
	color: var(--ink-on-dark);
}

.hero-eyebrow {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--signal);
	margin-bottom: 14px;
}

.hero h1 {
	font-size: clamp(26px, 4vw, 38px);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.12;
	color: #ffffff;
	max-width: 620px;
}

.hero h1 mark {
	background: transparent;
	color: var(--signal);
}

.hero > p {
	margin-top: 14px;
	font-size: 15px;
	line-height: 1.65;
	color: var(--ink-on-dark-2);
	max-width: 520px;
}

.hero-ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 24px;
}

/* Slim navy CTA panel (end-of-page) */
.cta-panel {
	background: var(--chrome);
	border-radius: var(--radius-xl);
	padding: 28px 32px;
	color: var(--ink-on-dark);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
}

.cta-panel h2 {
	font-size: 17px;
	font-weight: 600;
	color: #ffffff;
}

.cta-panel p {
	margin-top: 4px;
	font-size: 13.5px;
	color: var(--ink-on-dark-2);
	max-width: 560px;
}

.cta-panel .hero-ctas { margin-top: 0; }

/* ── Buttons (the app's button system) ───────────────────────────────────── */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 38px;
	padding: 8px 18px;
	border-radius: var(--radius-md);
	border: 1px solid transparent;
	font-family: var(--font);
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	text-decoration: none;
}

.btn:hover { text-decoration: none; }

.btn-dark {
	background: var(--btn-dark-bg);
	color: #ffffff;
}

.btn-dark:hover { background: var(--btn-dark-hover-bg); }

.btn-neutral {
	background: var(--btn-neutral-bg);
	border-color: var(--btn-neutral-border);
	color: var(--btn-neutral-color);
}

.btn-neutral:hover {
	background: var(--btn-neutral-hover-bg);
	border-color: var(--btn-neutral-hover-border);
}

/* Cyan accent — high-intent CTAs on navy surfaces only */
.btn-accent {
	background: var(--signal);
	color: var(--chrome);
}

.btn-accent:hover { background: #33c5ff; }

/* Ghost on navy */
.btn-ghost {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.35);
	color: #ffffff;
}

.btn-ghost:hover {
	background: rgba(255, 255, 255, 0.08);
	border-color: rgba(255, 255, 255, 0.6);
}

.btn-block { width: 100%; }

/* ── Callout (accent-light soft panel, like app onboarding callouts) ─────── */

.callout {
	background: var(--accent-soft-bg);
	border: 1px solid var(--accent-soft-border);
	border-radius: var(--radius-lg);
	padding: 16px 20px;
	font-size: 14px;
	color: var(--ink-2);
}

.callout strong { color: var(--ink); }

/* ── Checklist card (the "Included Features" surface) ───────────────────── */

.checklist {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px 32px;
	margin-top: 14px;
	padding: 0;
	list-style: none;
}

@media (max-width: 599.98px) {
	.checklist { grid-template-columns: minmax(0, 1fr); }
}

.checklist li {
	position: relative;
	padding-left: 24px;
	font-size: 14px;
	color: var(--ink-2);
	line-height: 1.5;
}

.checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 4px;
	width: 14px;
	height: 14px;
	border-radius: var(--radius-xs);
	background: var(--accent-chip-bg);
}

.checklist li::after {
	content: "";
	position: absolute;
	left: 3.5px;
	top: 7px;
	width: 7px;
	height: 4px;
	border-left: 2px solid var(--accent-chip-fg);
	border-bottom: 2px solid var(--accent-chip-fg);
	transform: rotate(-45deg);
}

/* ── Teaser cards (feature tour surfaces) ────────────────────────────────── */

.teaser-bars { margin-top: 14px; }

.teaser-bars span {
	display: block;
	height: 8px;
	border-radius: var(--radius-xs);
	background: linear-gradient(90deg, rgba(37, 99, 235, 0.3), rgba(0, 182, 255, 0.22));
	margin-top: 8px;
	filter: blur(3px);
}

.teaser-bars span:nth-child(1) { width: 92%; }
.teaser-bars span:nth-child(2) { width: 74%; }
.teaser-bars span:nth-child(3) { width: 58%; }

/* ── Forms (the app's input recipe) ──────────────────────────────────────── */

.form-card {
	max-width: 560px;
}

.form-row {
	margin-top: 14px;
}

.form-row label {
	display: block;
	margin-bottom: 5px;
	font-size: 13px;
	font-weight: 500;
	color: var(--label);
}

input[type="text"],
input[type="email"],
input[type="search"],
select,
textarea {
	width: 100%;
	min-height: 38px;
	padding: 8px 12px;
	background: #ffffff;
	border: 1px solid var(--input-border);
	border-radius: var(--radius-md);
	font-family: var(--font);
	font-size: 14px;
	color: var(--ink);
}

textarea { resize: vertical; }

input:focus, select:focus, textarea:focus {
	outline: none;
	border-color: var(--accent);
	box-shadow: var(--input-focus-ring);
}

.form-hint {
	margin-top: 10px;
	font-size: 12.5px;
	color: var(--ink-3);
}

/* Honeypot — off-canvas, invisible to humans */
.lead-form-trap {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.lead-form-status {
	margin-top: 12px;
	font-size: 13.5px;
	line-height: 1.5;
}

.lead-form-status.error { color: var(--danger); }
.lead-form-status.pending { color: var(--ink-3); }

.lead-form-done {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	background: var(--signal-soft);
	border: 1px solid rgba(0, 182, 255, 0.35);
	border-radius: var(--radius-lg);
	padding: 16px 18px;
	font-size: 14px;
	color: var(--ink);
	line-height: 1.6;
}

.lead-form-done::before {
	content: "";
	flex: none;
	width: 16px;
	height: 16px;
	margin-top: 3px;
	border-radius: var(--radius-pill);
	background: var(--signal);
	-webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill="black" d="M6.6 11.6 3.4 8.4l1.2-1.2 2 2 4.8-4.8 1.2 1.2z"/></svg>') center / contain no-repeat;
	mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill="black" d="M6.6 11.6 3.4 8.4l1.2-1.2 2 2 4.8-4.8 1.2 1.2z"/></svg>') center / contain no-repeat;
}

/* ── Prose (terms page) ──────────────────────────────────────────────────── */

.prose h1 { font-size: 20px; font-weight: 700; }
.prose h2 { font-size: 15.5px; font-weight: 600; margin-top: 22px; }
.prose p, .prose ul { margin-top: 8px; font-size: 14px; color: var(--ink-2); }
.prose ul { padding-left: 22px; }
.prose li { margin-top: 4px; }

/* ── Footer (flat navy chrome) ───────────────────────────────────────────── */

.site-footer {
	background: var(--chrome);
	color: var(--ink-on-dark-2);
	margin-top: 40px;
}

.footer-main .container {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
	gap: 28px;
	padding-top: 36px;
	padding-bottom: 32px;
}

@media (max-width: 767.98px) {
	.footer-main .container { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 479.98px) {
	.footer-main .container { grid-template-columns: minmax(0, 1fr); }
}

.footer-main h5 {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(241, 245, 249, 0.55);
	margin-bottom: 10px;
}

.footer-main p { font-size: 13px; line-height: 1.6; max-width: 300px; }

.footer-main ul {
	list-style: none;
	padding: 0;
}

.footer-main li { margin-bottom: 7px; }

.footer-main a {
	color: rgba(241, 245, 249, 0.78);
	font-size: 13px;
}

.footer-main a:hover { color: #ffffff; }

.footer-legal {
	background: var(--chrome-deep);
}

.footer-legal .container {
	padding-top: 14px;
	padding-bottom: 14px;
	font-size: 12.5px;
	color: rgba(241, 245, 249, 0.5);
}

.footer-legal a { color: rgba(241, 245, 249, 0.7); }

/* ── Misc ────────────────────────────────────────────────────────────────── */

.text-columns-2 {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

@media (max-width: 767.98px) {
	.text-columns-2 { grid-template-columns: minmax(0, 1fr); }
}

.error-page-image { max-width: 180px; }

@media (prefers-reduced-motion: reduce) {
	* { animation: none !important; transition: none !important; }
}
