/**
 * Havenlytics V3 — Shared Components
 * Source: havenlytics-homepage-v3.html
 *
 * Component partials (button/card/form) are enqueued from PHP with ?ver=.
 * Do NOT @import them here — that bypasses cache busting on production CDNs.
 *
 * @package Havenlytics_Theme
 */

/* ── Eyebrow ─────────────────────────────────────────────────── */
.hvnly-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: var(--hvnly--space-3);
	font-size: var(--hvnly--text-sm);
	font-weight: var(--hvnly--weight-bold);
	letter-spacing: var(--hvnly--tracking-wider);
	text-transform: uppercase;
	color: var(--hvnly--core-primary);
	background: var(--hvnly--core-gradient-soft);
	padding: var(--hvnly--space-3) var(--hvnly--space-7);
	border-radius: var(--hvnly--radius-pill);
	margin-bottom: var(--hvnly--space-9);
}

.hvnly-eyebrow--on-dark {
	background: rgba(255, 255, 255, 0.08);
	color: var(--hvnly--core-secondary);
}

.hvnly-eyebrow--on-gradient {
	background: rgba(255, 255, 255, 0.18);
	color: var(--hvnly--on-primary);
}

/* ── Badges ──────────────────────────────────────────────────── */
.hvnly-badge {
	display: inline-flex;
	align-items: center;
	gap: var(--hvnly--space-2);
	font-size: var(--hvnly--text-2xs);
	font-weight: var(--hvnly--weight-bold);
	padding: 3px 9px;
	border-radius: var(--hvnly--radius-pill);
}

.hvnly-badge--success {
	color: var(--hvnly--success);
	background: rgba(43, 191, 140, 0.12);
}

.hvnly-save-badge {
	font-size: var(--hvnly--text-2xs);
	font-weight: var(--hvnly--weight-bold);
	color: var(--hvnly--success);
	background: rgba(43, 191, 140, 0.12);
	padding: 3px 9px;
	border-radius: var(--hvnly--radius-pill);
}

/* ── Check list ──────────────────────────────────────────────── */
.hvnly-check-list {
	display: flex;
	flex-direction: column;
	gap: var(--hvnly--space-6);
	margin-bottom: var(--hvnly--space-12);
}

.hvnly-check-list li {
	display: flex;
	gap: var(--hvnly--space-5);
	font-size: var(--hvnly--text-md);
	color: var(--hvnly--ink-600);
	font-weight: var(--hvnly--weight-medium);
}

.hvnly-check-list i {
	width: var(--hvnly--space-10);
	height: var(--hvnly--space-10);
	border-radius: var(--hvnly--radius-full);
	background: var(--hvnly--core-gradient-soft);
	color: var(--hvnly--core-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	flex-shrink: 0;
	margin-top: 2px;
}

/* ── Tabs ────────────────────────────────────────────────────── */
.hvnly-tabs {
	display: flex;
	gap: var(--hvnly--space-3);
	margin-bottom: var(--hvnly--space-14);
	flex-wrap: wrap;
	position: relative;
}

.hvnly-tab {
	padding: 11px var(--hvnly--space-9);
	border-radius: var(--hvnly--radius-pill);
	font-size: var(--hvnly--text-base);
	font-weight: var(--hvnly--weight-semibold);
	background: rgba(255, 255, 255, 0.06);
	color: rgba(255, 255, 255, 0.65);
	border: 1px solid rgba(255, 255, 255, 0.08);
	transition: all var(--hvnly--duration-base) var(--hvnly--ease);
}

.hvnly-tab[aria-selected="true"] {
	background: var(--hvnly--core-gradient);
	color: var(--hvnly--on-primary);
	border-color: transparent;
}

.hvnly-tab-panels {
	position: relative;
}

.hvnly-tab-panel {
	display: none;
	grid-template-columns: 1fr 1.3fr;
	gap: var(--hvnly--space-15);
	align-items: center;
}

.hvnly-tab-panel.is-active {
	display: grid;
	animation: hvnlyFadeUp 0.5s var(--hvnly--ease);
}

.hvnly-tab-panel h3 {
	color: var(--hvnly--on-primary);
	font-size: var(--hvnly--text-3xl);
	margin-bottom: var(--hvnly--space-6);
}

.hvnly-tab-panel p {
	color: rgba(255, 255, 255, 0.6);
	font-size: var(--hvnly--text-md);
	margin-bottom: var(--hvnly--space-9);
}

.hvnly-tab-list-columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--hvnly--space-5) var(--hvnly--space-9);
	align-items: start;
}

.hvnly-tab-list-columns .hvnly-tab-list {
	display: flex;
	flex-direction: column;
	gap: var(--hvnly--space-5);
	margin: 0;
	padding: 0;
	list-style: none;
}

.hvnly-tab-list {
	display: flex;
	flex-direction: column;
	gap: var(--hvnly--space-5);
	margin: 0;
	padding: 0;
	list-style: none;
}

.hvnly-tab-list li {
	display: flex;
	gap: var(--hvnly--space-4);
	color: rgba(255, 255, 255, 0.8);
	font-size: 14.5px;
	min-width: 0;
}

@media (max-width: 576px) {
	.hvnly-tab-list-columns {
		grid-template-columns: 1fr;
	}
}

.hvnly-tab-list i {
	color: var(--hvnly--core-secondary);
	margin-top: 3px;
}

.hvnly-tab-shot {
	border-radius: var(--hvnly--radius-md);
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.1);
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4);
}

@media (max-width: 900px) {
	.hvnly-tab-panel.is-active {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	.hvnly-tabs {
		gap: var(--hvnly--space-2);
	}

	.hvnly-tab {
		min-height: 44px;
		padding: 10px var(--hvnly--space-8);
	}
}

/* ── Video modal ─────────────────────────────────────────────── */
#hvnly-video-modal,
.hvnly-video-modal {
	position: fixed;
	inset: 0;
	z-index: var(--hvnly--z-modal);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--hvnly--gutter);
	background: var(--hvnly--overlay-heavy);
	backdrop-filter: blur(6px);
	opacity: 0;
	visibility: hidden;
	transition: var(--hvnly--transition-opacity), var(--hvnly--transition-visibility);
}

#hvnly-video-modal.is-active,
.hvnly-video-modal.is-active {
	opacity: 1;
	visibility: visible;
}

.hvnly-video-modal-inner {
	position: relative;
	width: 100%;
	max-width: 920px;
	aspect-ratio: 16 / 9;
	background: #000;
	border-radius: var(--hvnly--radius-md);
	overflow: hidden;
	box-shadow: var(--hvnly--shadow-lg);
	transform: scale(0.96);
	transition: transform var(--hvnly--duration-base) var(--hvnly--ease);
}

#hvnly-video-modal.is-active .hvnly-video-modal-inner,
.hvnly-video-modal.is-active .hvnly-video-modal-inner {
	transform: scale(1);
}

.hvnly-video-modal-inner iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.hvnly-video-modal-close {
	position: absolute;
	top: -48px;
	right: 0;
	width: var(--hvnly--space-15);
	height: var(--hvnly--space-15);
	border-radius: var(--hvnly--radius-full);
	background: rgba(255, 255, 255, 0.1);
	color: var(--hvnly--on-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background var(--hvnly--duration-fast) var(--hvnly--ease);
}

.hvnly-video-modal-close:hover {
	background: rgba(255, 255, 255, 0.2);
}

/* ── Roadmap timeline ────────────────────────────────────────── */
.hvnly-roadmap {
	position: relative;
	max-width: 760px;
	margin: 0 auto;
}

.hvnly-roadmap::before {
	content: '';
	position: absolute;
	left: 19px;
	top: var(--hvnly--space-3);
	bottom: var(--hvnly--space-3);
	width: 2px;
	background: var(--hvnly--border);
}

.hvnly-road-item {
	position: relative;
	padding-left: var(--hvnly--space-17);
	padding-bottom: var(--hvnly--space-15);
}

.hvnly-road-item:last-child {
	padding-bottom: 0;
}

.hvnly-road-dot {
	position: absolute;
	left: 0;
	top: 0;
	width: var(--hvnly--space-15);
	height: var(--hvnly--space-15);
	border-radius: var(--hvnly--radius-full);
	background: var(--hvnly--surface-0);
	border: 2px solid var(--hvnly--core-primary);
	color: var(--hvnly--core-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: var(--hvnly--text-base);
	z-index: 1;
}

.hvnly-road-item.is-done .hvnly-road-dot {
	background: var(--hvnly--core-gradient);
	color: var(--hvnly--on-primary);
	border-color: transparent;
}

.hvnly-road-tag {
	font-size: var(--hvnly--text-xs);
	font-weight: var(--hvnly--weight-bold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--hvnly--ink-400);
	margin-bottom: var(--hvnly--space-2);
}

.hvnly-road-item.is-done .hvnly-road-tag {
	color: var(--hvnly--success);
}

.hvnly-road-item h3 {
	font-size: 17px;
	margin-bottom: var(--hvnly--space-2);
}

.hvnly-road-item p {
	font-size: var(--hvnly--text-base);
}

/* ── Pricing toggle row ────────────────────────────────────────── */
.hvnly-pricing-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--hvnly--space-6);
	margin-bottom: var(--hvnly--space-16);
}

.hvnly-pricing-toggle span {
	font-size: var(--hvnly--text-base);
	font-weight: var(--hvnly--weight-semibold);
	color: var(--hvnly--ink-400);
}

.hvnly-pricing-toggle span.is-active {
	color: var(--hvnly--ink-900);
}

#hvnly-billing-switch {
	width: 52px;
	height: 30px;
	border-radius: var(--hvnly--radius-pill);
	background: var(--hvnly--ink-200);
	position: relative;
	transition: background var(--hvnly--duration-base);
}

#hvnly-billing-switch[aria-checked="true"] {
	background: var(--hvnly--core-gradient);
}

#hvnly-billing-switch::after {
	content: '';
	position: absolute;
	top: 3px;
	left: 3px;
	width: var(--hvnly--gutter);
	height: var(--hvnly--gutter);
	border-radius: var(--hvnly--radius-full);
	background: var(--hvnly--on-primary);
	transition: transform var(--hvnly--duration-base) var(--hvnly--ease);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}

#hvnly-billing-switch[aria-checked="true"]::after {
	transform: translateX(22px);
}
