/* ==========================================================================
   Lumin Service Widgets
   Shared styles for the "Service …" Elementor widgets (Luminous Labs category).

   Every value below mirrors a component that already exists on the site, so
   these sections read as part of the same theme (techtro):
     • cards         → .details-icon-item / FAQ items  (#F4F6FF, 16px radius, flat)
     • feature rows  → home "feature" rows             (cream / pink gradients, oval number)
     • tabs          → Pricing page plan toggle        (white pill bar, coral active pill)
     • accordion     → FAQ widget                      (#F4F6FF, 36px round arrow icon)
     • buttons       → .theme-btn                      (18px / 62px tall, theme ↗ arrow)
     • type          → Public Sans 700 headings, Poppins 16px / 28px body
   All selectors are scoped to `.lsv` so nothing else on the page is affected.
   ========================================================================== */

/* ---- Tokens ---- */
.lsv {
	--lsv-accent: var(--theme, #ff6243);
	--lsv-heading: var(--header, #161616);
	--lsv-text: var(--text, #49515B);
	--lsv-muted: #7C828D;
	--lsv-card: #F4F6FF;           /* theme card / FAQ item */
	--lsv-card-strong: #E4E6FF;    /* theme services card */
	--lsv-line: #DDE1FD;           /* theme outline (toggle, border-btn) */
	--lsv-line-soft: #ECEEF8;
	--lsv-star: #BAC1FF;           /* theme FAQ icon / sub-title stars */
	--lsv-navy: #082950;           /* theme pricing buttons / banner text */
	--lsv-success: #1BB121;        /* theme hero check icons */
	--lsv-radius: 16px;
	--lsv-radius-sm: 12px;
	--lsv-font-h: var(--techtro-public, "Public Sans", sans-serif);
	--lsv-font-b: var(--techtro-poppins, "Poppins", sans-serif);

	/* Accent tints (fallbacks first; colour-mix recomputes them from --lsv-accent) */
	--lsv-accent-soft: #FFF0EB;
	--lsv-accent-tint: #FFD8CC;

	font-family: var(--lsv-font-b);
	font-size: 16px;
	line-height: 28px;
	color: var(--lsv-text);
}

@supports (color: color-mix(in srgb, red 50%, white)) {
	.lsv {
		--lsv-accent-soft: color-mix(in srgb, var(--lsv-accent) 9%, #fff);
		--lsv-accent-tint: color-mix(in srgb, var(--lsv-accent) 26%, #fff);
	}
}

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

.lsv .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;
}

/* ==========================================================================
   Shared atoms
   ========================================================================== */

/* Eyebrow — the theme's "✦ SUB TITLE" label */
.lsv-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 15px;
	font-family: var(--lsv-font-h);
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--lsv-accent);
}
.lsv-eyebrow__star {
	display: inline-flex;
	width: 16px;
	height: 16px;
	color: #BCC4FF;
}
.lsv-eyebrow__star svg {
	width: 100%;
	height: 100%;
}

/* Round number badge — theme .details-icon-item .number */
.lsv-num-circle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 67px;
	height: 67px;
	border-radius: 50%;
	background: var(--lsv-num-bg, var(--lsv-card));
	color: var(--lsv-heading);
	font-family: var(--lsv-font-h);
	font-size: 18px;
	font-weight: 700;
	line-height: 1;
}

/* Round number badge — colours from the theme's home feature rows */
.lsv-feat-num {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	margin-bottom: 20px;
	border-radius: 50%;
	background: #FFF8E9;
	color: #D1A959;
	font-family: var(--lsv-font-h);
	font-size: 24px;
	font-weight: 700;
	line-height: 1;
}

/* Badge (Most Popular / Quoted on request) */
.lsv-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 14px;
	border-radius: 100px;
	background: var(--lsv-accent);
	color: #fff;
	font-family: var(--lsv-font-h);
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	vertical-align: middle;
}
.lsv-badge svg {
	width: 12px;
	height: 12px;
}
.lsv-badge--soft {
	background: var(--lsv-accent-soft);
	color: var(--lsv-accent);
}

/* Plain coral list markers — like the theme's pricing list (fa-check) */
.lsv-tick,
.lsv-plus {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 28px;
	color: var(--lsv-accent);
}
.lsv-tick svg,
.lsv-plus svg {
	width: 15px;
	height: 15px;
}

/* Checklist */
.lsv-checklist {
	display: grid;
	gap: 8px 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.lsv-checklist--cols {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.lsv-checklist__item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	font-size: 16px;
	line-height: 28px;
	color: var(--lsv-text);
}

/* Tags */
.lsv-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.lsv-tag {
	display: inline-flex;
	align-items: center;
	margin: 0;
	padding: 6px 16px;
	border-radius: 100px;
	background: #fff;
	color: var(--lsv-heading);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
}
.lsv-tag--accent {
	background: var(--lsv-accent-soft);
	color: var(--lsv-accent);
}
.lsv-tag--light {
	border: 1px solid rgba(255, 255, 255, 0.2);
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
}

/* Chip bar — the home hero's "✔ Custom Software ✔ ERP & CRM" bar */
.lsv-chipbar {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 12px 22px;
	margin: 0;
	padding: 18px 30px;
	border-radius: 65px;
	background: var(--lsv-card);
	list-style: none;
}
.lsv-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	font-size: 16px;
	line-height: 1.2;
}
.lsv-chip__icon {
	display: inline-flex;
	width: 16px;
	height: 16px;
	color: var(--lsv-success);
}
.lsv-chip__icon svg {
	width: 100%;
	height: 100%;
}
.lsv-chip__text {
	color: var(--lsv-muted);
}

/* Note / tip callout */
.lsv-note {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin-top: 24px;
	padding: 16px 20px;
	border-radius: var(--lsv-radius-sm);
	background: #fff;
}
.lsv-note__icon {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--lsv-accent-soft);
	color: var(--lsv-accent);
}
.lsv-note__icon svg {
	width: 18px;
	height: 18px;
}
.lsv-note__text {
	margin: 0;
	font-size: 16px;
	line-height: 28px;
	color: var(--lsv-text);
}
.lsv-note__text strong {
	margin-right: 4px;
	font-family: var(--lsv-font-h);
	font-weight: 600;
	color: var(--lsv-heading);
}
.lsv-note--wide {
	align-items: center;
	padding: 18px 24px;
	border-radius: var(--lsv-radius);
	background: #FFF8E9;
}
.lsv-note--wide .lsv-note__icon {
	background: #fff;
	color: #D1A959;
}

/* Generic card (policy, add-ons) — flat like .details-icon-item */
.elementor-widget-lumin_service_policy,
.elementor-widget-lumin_service_addons {
	flex-grow: 1;
}
.elementor-widget-lumin_service_policy > .elementor-widget-container,
.elementor-widget-lumin_service_addons > .elementor-widget-container {
	height: 100%;
}
.lsv-card {
	height: 100%;
	padding: 40px;
	border: 1px solid transparent;
	border-radius: var(--lsv-radius);
	background: var(--lsv-card);
}
.lsv-card__title {
	margin: 0;
	font-family: var(--lsv-font-h);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--lsv-heading);
}
.lsv-card__label {
	margin: 0 0 12px;
	font-family: var(--lsv-font-h);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--lsv-heading);
}

/* Media frame + image placeholder */
.lsv-media {
	position: relative;
	overflow: hidden;
	background: var(--lsv-card);
}
/* Two classes: Elementor's `.elementor img { height: auto }` would otherwise
   win and leave the image at its natural shape inside the frame */
.lsv-media .lsv-media__img {
	position: absolute;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: cover;
}
.lsv-placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	padding: 24px;
	text-align: center;
	background: linear-gradient(135deg, #F4F6FF 0%, #E9ECFF 100%);
	outline: 2px dashed var(--lsv-star);
	outline-offset: -14px;
	border-radius: inherit;
}
.lsv-placeholder__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	margin-bottom: 8px;
	border-radius: 50%;
	background: #fff;
	color: var(--lsv-accent);
}
.lsv-placeholder__icon svg {
	width: 26px;
	height: 26px;
}
.lsv-placeholder__text {
	font-family: var(--lsv-font-h);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--lsv-heading);
}
.lsv-placeholder__hint {
	font-size: 14px;
	line-height: 1.4;
	color: var(--lsv-muted);
}

/* ---- Buttons: the theme's .theme-btn, only colour variants added ---- */
.lsv-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
}
/* The icon is the theme's <i class="fa-sharp fa-regular fa-arrow-right">; the
   theme rule `.theme-btn i { margin-left: 5px; transform: rotate(-40deg) }`
   turns it into the same ↗ used by every other button on the site. */
.lsv .lsv-btn i {
	transition: transform 0.3s ease;
}
.lsv .lsv-btn:hover i {
	transform: translate(2px, -2px) rotate(-40deg);
}
.lsv .lsv-btn:focus-visible {
	outline: 3px solid var(--lsv-accent-tint);
	outline-offset: 3px;
}
.lsv .lsv-btn--primary {
	background-color: var(--lsv-accent);
}
.lsv .lsv-btn--outline {
	background-color: #fff;
	color: var(--lsv-heading);
	box-shadow: inset 0 0 0 1px var(--lsv-line);
}
.lsv .lsv-btn--outline::before {
	background-color: var(--lsv-accent);
}
.lsv .lsv-btn--outline:hover {
	color: #fff;
}
.lsv .lsv-btn--dark {
	background-color: var(--lsv-navy);
	color: #fff;
}
.lsv .lsv-btn--dark::before {
	background-color: var(--lsv-accent);
}
.lsv .lsv-btn--light {
	background-color: #fff;
	color: var(--lsv-heading);
}
.lsv .lsv-btn--light:hover {
	color: #fff;
}
.lsv .lsv-btn--ghost {
	background-color: transparent;
	color: #fff;
	box-shadow: inset 0 0 0 1px #fff;
}
.lsv .lsv-btn--ghost::before {
	background-color: #fff;
}
.lsv .lsv-btn--ghost:hover {
	color: var(--lsv-heading);
}
.lsv .lsv-btn--block {
	display: block;
	width: 100%;
	text-align: center;
}

/* ==========================================================================
   Service Intro
   ========================================================================== */
.lsv-intro {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: center;
	column-gap: 60px;
	row-gap: 50px;
}
.lsv-intro--media-left .lsv-intro__media {
	order: -1;
}
.lsv-intro__title {
	margin: 0 0 20px;
	font-family: var(--lsv-font-h);
	font-size: 48px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--lsv-heading);
}
.lsv-intro__title span {
	color: var(--lsv-accent);
}
.lsv-intro__text {
	font-size: 16px;
	line-height: 28px;
}
.lsv-intro__text p {
	margin: 0 0 12px;
}
.lsv-intro__text p:last-child {
	margin-bottom: 0;
}
.lsv-intro .lsv-chipbar {
	margin-top: 30px;
}
.lsv-intro__footer {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 24px;
	margin-top: 30px;
}
.lsv-intro__price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 12px;
	margin: 0;
}
.lsv-intro__price-label {
	font-size: 16px;
	line-height: 1;
	color: var(--lsv-muted);
}
.lsv-intro__price-value {
	font-family: var(--lsv-font-h);
	font-size: 32px;
	font-weight: 700;
	line-height: 1;
	color: var(--lsv-heading);
}

.lsv-intro__media {
	position: relative;
}
.lsv-intro__frame {
	aspect-ratio: 5 / 4;
	border-radius: var(--lsv-radius);
}
/* Frame with a video: the Portfolio card's soft bottom gradient, and the
   branded dark poster if the video thumbnail can't load */
.lsv-intro__frame--video::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, rgba(9, 11, 28, 0) 50%, rgba(9, 11, 28, 0.45) 100%);
	pointer-events: none;
}
.lsv .lsv-intro__frame--video.is-thumb-missing {
	background: radial-gradient(circle at 30% 20%, rgba(255, 98, 67, 0.35), transparent 60%), linear-gradient(160deg, #1B1F3B, #0E1124);
}
.lsv-intro__frame--video.is-thumb-missing .lsv-intro__poster {
	visibility: hidden;
}
/* With a video, a narrow frame (phones, and the 992–1199px two-column
   layout) has no room for the floating badges beside the play button:
   they line up below the frame instead */
.lsv-intro__media--video {
	container-type: inline-size;
}
@container (max-width: 540px) {
	.lsv-intro__media--video .lsv-intro__badges {
		display: flex;
		flex-wrap: wrap;
		gap: 10px;
		margin-top: 14px;
	}
	.lsv-intro__media--video .lsv-intro__badge {
		position: static;
		flex: 1 1 150px;
		min-width: 0;
		border: 1px solid var(--lsv-line-soft);
		box-shadow: none;
		animation: none;
	}
}
.lsv-intro__badge {
	position: absolute;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 20px 12px 12px;
	border-radius: var(--lsv-radius);
	background: #fff;
	box-shadow: 0 10px 30px rgba(22, 27, 61, 0.1);
	animation: lsv-float 6s ease-in-out infinite;
}
.lsv-intro__badge--1 {
	top: 36px;
	left: -24px;
}
.lsv-intro__badge--2 {
	right: -20px;
	bottom: 36px;
	animation-delay: -3s;
}
.lsv-intro--media-left .lsv-intro__badge--1 {
	left: auto;
	right: -24px;
}
.lsv-intro--media-left .lsv-intro__badge--2 {
	right: auto;
	left: -20px;
}
.lsv-intro__badge-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--lsv-accent);
	color: #fff;
}
.lsv-intro__badge-icon svg {
	width: 18px;
	height: 18px;
}
.lsv-intro__badge--2 .lsv-intro__badge-icon {
	background: var(--lsv-navy);
}
.lsv-intro__badge-text {
	display: flex;
	flex-direction: column;
	gap: 4px;
	line-height: 1.2;
}
.lsv-intro__badge-text strong {
	font-family: var(--lsv-font-h);
	font-size: 18px;
	font-weight: 700;
	color: var(--lsv-heading);
}
.lsv-intro__badge-text span {
	font-size: 14px;
	color: var(--lsv-muted);
}

@keyframes lsv-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-8px); }
}

/* ==========================================================================
   Service Pricing Table
   ========================================================================== */
.lsv-ptable__card {
	overflow: hidden;
	border: 1px solid var(--lsv-line);
	border-radius: var(--lsv-radius);
	background: #fff;
}
.lsv-ptable__table {
	width: 100%;
	margin: 0;
	border-collapse: separate;
	border-spacing: 0;
	font-variant-numeric: tabular-nums;
}
.lsv-ptable__table tbody {
	border: 0;
}
.lsv-ptable__table th,
.lsv-ptable__table td {
	padding: 22px 24px;
	border: 0;
	text-align: center;
	vertical-align: middle;
}
.lsv-ptable__table th:first-child,
.lsv-ptable__table td:first-child,
.lsv-ptable__table th:nth-child(2),
.lsv-ptable__table td:nth-child(2) {
	text-align: left;
}
.lsv-ptable__table thead th {
	padding-top: 20px;
	padding-bottom: 20px;
	background: var(--lsv-card);
	font-family: var(--lsv-font-h);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--lsv-heading);
}
.lsv-ptable__table thead th.lsv-ptable__action-head {
	text-align: right;
}
.lsv-ptable__table tbody tr + tr > * {
	border-top: 1px solid var(--lsv-line-soft);
}
.lsv-ptable__row > * {
	transition: background-color 0.25s ease;
}
.lsv-ptable__row:hover > * {
	background: #FAFBFF;
}
.lsv-ptable__row.is-popular > * {
	background: var(--lsv-accent-soft);
}
.lsv-ptable__row.is-popular > :first-child {
	box-shadow: inset 3px 0 0 var(--lsv-accent);
}
.lsv-ptable__name {
	font-family: var(--lsv-font-h);
	font-size: 18px;
	font-weight: 700;
	color: var(--lsv-heading);
	vertical-align: middle;
}
.lsv-ptable__cell--name .lsv-badge {
	margin-left: 10px;
}
.lsv-ptable__price {
	font-family: var(--lsv-font-h);
	font-size: 20px;
	font-weight: 700;
	color: var(--lsv-heading);
}
.lsv-ptable__row.is-popular .lsv-ptable__price {
	color: var(--lsv-accent);
}
.lsv-ptable__suffix {
	margin-left: 2px;
	font-size: 14px;
	color: var(--lsv-muted);
}
.lsv-ptable__value {
	font-family: var(--lsv-font-h);
	font-size: 18px;
	font-weight: 600;
	color: var(--lsv-heading);
}
.lsv-ptable__table td.lsv-ptable__cell--action {
	text-align: right;
	white-space: nowrap;
}
/* Text link with ↗ — the theme's .link-btn (fa arrow rotated -40deg) */
.lsv-link-btn {
	display: inline-block;
	color: var(--lsv-heading);
	font-family: var(--lsv-font-h);
	font-size: 16px;
	font-weight: 500;
	line-height: 1;
}
.lsv-link-btn i {
	margin-left: 4px;
	transform: rotate(-40deg);
	transition: transform 0.25s ease;
}
.lsv-link-btn:hover,
.lsv-ptable__row.is-popular .lsv-link-btn {
	color: var(--lsv-accent);
}
.lsv-link-btn:hover i {
	transform: translate(2px, -2px) rotate(-40deg);
}
.lsv-link-btn:focus-visible {
	outline: 3px solid var(--lsv-accent-tint);
	outline-offset: 4px;
	border-radius: 4px;
}

/* "Every package includes" strip */
.lsv-includes {
	display: flex;
	align-items: flex-start;
	gap: 10px 30px;
	margin-top: 24px;
	padding: 24px 30px;
	border: 1px solid var(--lsv-line);
	border-radius: var(--lsv-radius);
	background: #fff;
}
.lsv-includes__label {
	flex: 0 0 auto;
	margin: 0;
	font-family: var(--lsv-font-h);
	font-size: 18px;
	font-weight: 600;
	line-height: 28px;
	color: var(--lsv-heading);
}
.lsv-includes__list {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.lsv-includes__item {
	display: inline-flex;
	align-items: flex-start;
	gap: 8px;
	margin: 0;
	font-size: 16px;
	line-height: 28px;
	color: var(--lsv-text);
}

/* ==========================================================================
   Service Packages
   ========================================================================== */
.lsv-pkgs,
.lsv-pkg {
	scroll-margin-top: 120px;
}

/* Tabs — the Pricing page plan toggle */
.lsv-pkgs__nav {
	position: relative; /* offset parent for tab-centering in JS */
	display: flex;
	gap: 4px;
	width: max-content;
	max-width: 100%;
	margin: 0 auto 30px;
	padding: 11px;
	overflow-x: auto;
	border: 1px solid var(--lsv-line);
	border-radius: 100px;
	background: #fff;
	scrollbar-width: none;
	scroll-snap-type: x proximity;
}
.lsv-pkgs__nav::-webkit-scrollbar {
	display: none;
}
.lsv .lsv-pkgs__tab {
	display: inline-flex;
	flex: 0 0 auto;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	padding: 15px 22px;
	border: 0;
	border-radius: 100px;
	background: transparent;
	color: var(--lsv-accent);
	font-family: var(--lsv-font-h);
	font-size: 16px;
	font-weight: 600;
	line-height: 16px;
	white-space: nowrap;
	cursor: pointer;
	scroll-snap-align: center;
	transition: background-color 0.3s ease, color 0.3s ease;
}
.lsv .lsv-pkgs__tab:hover {
	background: var(--lsv-accent-soft);
}
.lsv .lsv-pkgs__tab:focus-visible {
	outline: 3px solid var(--lsv-accent-tint);
	outline-offset: 1px;
}
.lsv .lsv-pkgs__tab[aria-selected="true"] {
	background: var(--lsv-accent);
	color: #fff;
}
.lsv-pkgs__tab-name {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.lsv-pkgs__tab-star {
	display: inline-flex;
	width: 13px;
	height: 13px;
	color: #F5B300;
}
.lsv .lsv-pkgs__tab[aria-selected="true"] .lsv-pkgs__tab-star {
	color: #fff;
}
.lsv-pkgs__tab-star svg {
	width: 100%;
	height: 100%;
}
.lsv-pkgs__tab-price {
	font-size: 13px;
	font-weight: 500;
	line-height: 1;
	opacity: 0.85;
}

/* Package panel */
.lsv-pkg {
	display: grid;
	grid-template-columns: minmax(0, 380px) minmax(0, 1fr);
	gap: 20px;
	padding: 20px;
	border: 1px solid transparent;
	border-radius: var(--lsv-radius);
	background: var(--lsv-card);
}
.lsv-pkg[hidden] {
	display: none;
}
.lsv-pkgs--tabs .lsv-pkg.is-active {
	animation: lsv-panel-in 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.lsv-pkg:focus-visible {
	outline: 3px solid var(--lsv-accent-tint);
	outline-offset: 3px;
}
.lsv-pkg__summary {
	display: flex;
	flex-direction: column;
	padding: 36px;
	border: 1px solid transparent;
	border-radius: var(--lsv-radius);
	background: #fff;
}
.lsv-pkg__top {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 20px;
}
.lsv-pkg__name {
	margin: 0 0 10px;
	font-family: var(--lsv-font-h);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--lsv-heading);
}
.lsv-pkg__desc {
	margin: 0 0 20px;
	font-size: 16px;
	line-height: 28px;
}
.lsv-pkg__price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px;
	margin: 0 0 20px;
}
.lsv-pkg__price-value {
	font-family: var(--lsv-font-h);
	font-size: 48px;
	font-weight: 700;
	line-height: 1;
	color: var(--lsv-heading);
}
.lsv-pkg__price-suffix {
	font-size: 16px;
	color: var(--lsv-muted);
}
/* Stats as a spec list: label left, value right, one row each */
.lsv-pkg__stats {
	margin: 0 0 28px;
	padding: 4px 18px;
	border-radius: var(--lsv-radius-sm);
	background: var(--lsv-card);
}
.lsv-pkg__stat {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 0;
}
.lsv-pkg__stat + .lsv-pkg__stat {
	border-top: 1px solid var(--lsv-line);
}
.lsv-pkg__stat dt {
	margin: 0;
	font-family: var(--lsv-font-b);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.4;
	color: var(--lsv-text);
}
.lsv-pkg__stat dd {
	flex: 0 0 auto;
	margin: 0;
	font-family: var(--lsv-font-h);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--lsv-heading);
	white-space: nowrap;
}
.lsv-pkg__summary .lsv-btn {
	margin-top: auto;
}
.lsv-pkg__body {
	padding: 20px 20px 20px 16px;
}
.lsv-pkg__label {
	margin: 0 0 14px;
	font-family: var(--lsv-font-h);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--lsv-heading);
}
.lsv-pkg__bestfor {
	margin-top: 30px;
}
.lsv-pkg__bestfor-text {
	margin: 0;
	font-size: 16px;
	line-height: 28px;
}

/* Grid layout: every package visible as a stacked card */
.lsv-pkgs--grid .lsv-pkgs__panels {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}
.lsv-pkgs--grid .lsv-pkg {
	grid-template-columns: minmax(0, 1fr);
}
.lsv-pkgs--grid .lsv-pkg.is-popular {
	border-color: var(--lsv-accent);
}

@keyframes lsv-panel-in {
	from { opacity: 0; transform: translateY(10px); }
	to { opacity: 1; transform: none; }
}

/* ==========================================================================
   Service Included Features — the home page "feature" rows
   ========================================================================== */
.lsv-frows {
	display: flex;
	flex-direction: column;
	row-gap: 40px;
}
.lsv-frow {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	align-items: center;
	column-gap: 40px;
	padding: 60px 0 0 48px;
	overflow: hidden;
	border: 1px solid transparent;
	border-radius: var(--lsv-radius);
	background: linear-gradient(270deg, #FFFAEF 7.29%, #FFF 105.16%);
}
.lsv-frow--media-left {
	padding: 60px 48px 0 0;
}
.lsv-frow--alt {
	background: linear-gradient(270deg, #FFFFFF -0.81%, #FFF6FA 105.16%);
}
.lsv-frow--alt .lsv-feat-num {
	background: #FFF6FA;
	color: #EBA2C2;
}
.lsv-frow--media-left .lsv-frow__media {
	order: -1;
}
.lsv-frow__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding-bottom: 60px;
}
.lsv-frow__content > * {
	max-width: 100%;
}
.lsv-frow__title {
	margin: 0 0 16px;
	font-family: var(--lsv-font-h);
	font-size: 32px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--lsv-heading);
}
.lsv-frow__desc {
	margin: 0 0 20px;
	font-size: 16px;
	line-height: 28px;
}
.lsv-frow .lsv-checklist {
	width: 100%;
}
.lsv-frow__footer {
	margin: 20px 0 0;
	font-size: 16px;
	line-height: 28px;
}
/* Image sits flush to the row's outer edge (like the home feature images) */
.lsv-frow__media {
	align-self: end;
	justify-self: stretch;
	min-height: 400px;
	border-radius: var(--lsv-radius) 0 0 0;
}
.lsv-frow--media-left .lsv-frow__media {
	border-radius: 0 var(--lsv-radius) 0 0;
}

/* Process flow chips: Concept → Script → … */
.lsv-flow {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.lsv-flow__step {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 8px 16px 8px 8px;
	border-radius: 100px;
	background: #fff;
	color: var(--lsv-heading);
	font-family: var(--lsv-font-h);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.2;
}
.lsv-flow__step:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 50%;
	right: -18px;
	width: 8px;
	height: 8px;
	border-top: 2px solid var(--lsv-accent);
	border-right: 2px solid var(--lsv-accent);
	transform: translateY(-50%) rotate(45deg);
}
.lsv-flow__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--lsv-card);
	color: var(--lsv-heading);
	font-size: 12px;
	font-weight: 700;
}
.lsv-flow__step:last-child {
	background: var(--lsv-accent);
	color: #fff;
}
.lsv-flow__step:last-child .lsv-flow__num {
	background: #fff;
	color: var(--lsv-accent);
}

/* ==========================================================================
   Service Process Steps — numbered cards like the service pages' features
   ========================================================================== */
.lsv-steps {
	--lsv-gap: 30px;
	display: grid;
	grid-template-columns: repeat(var(--lsv-cols, 3), minmax(0, 1fr));
	gap: var(--lsv-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}
.lsv-step {
	position: relative;
	margin: 0;
	padding: 30px;
	border: 1px solid transparent;
	border-radius: var(--lsv-radius);
	background: var(--lsv-card);
}
.lsv-step__head {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 20px;
}
.lsv-step__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 67px;
	height: 67px;
	padding: 0 14px;
	border-radius: 100px;
	background: var(--lsv-num-bg, #fff);
	color: var(--lsv-heading);
	font-family: var(--lsv-font-h);
	font-size: 18px;
	font-weight: 700;
	line-height: 1;
}
.lsv-step__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--lsv-accent-soft);
	color: var(--lsv-accent);
	font-size: 22px;
}
.lsv-step__icon svg {
	width: 22px;
	height: 22px;
	fill: currentColor;
}
.lsv-step__title {
	margin: 0 0 10px;
	font-family: var(--lsv-font-h);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--lsv-heading);
}
.lsv-step__desc {
	margin: 0;
	font-size: 16px;
	line-height: 28px;
}

/* Optional dashed connector between cards in the same row (desktop only) */
.lsv-steps--connected .lsv-step::after {
	content: "";
	position: absolute;
	top: 63px;
	right: calc(-1 * var(--lsv-gap) - 1px);
	display: none;
	width: var(--lsv-gap);
	border-top: 2px dashed var(--lsv-star);
}
@media (min-width: 1025px) {
	.lsv-steps-cols-2 .lsv-steps--connected .lsv-step:not(:nth-child(2n)):not(:last-child)::after,
	.lsv-steps-cols-3 .lsv-steps--connected .lsv-step:not(:nth-child(3n)):not(:last-child)::after,
	.lsv-steps-cols-4 .lsv-steps--connected .lsv-step:not(:nth-child(4n)):not(:last-child)::after,
	.lsv-steps-cols-6 .lsv-steps--connected .lsv-step:not(:nth-child(6n)):not(:last-child)::after {
		display: block;
	}
}

/* Timeline (Layout: timeline) — the service-page step cards on a numbered
   line. One column with the line on the left below 992px; from 992px the
   cards alternate left / right of a centre line, each spanning two grid
   rows so every card starts halfway down its neighbour. */
.lsv-tl {
	--lsv-tl-node: 56px;
	--lsv-tl-head: 52px;  /* card icon size: the node lines up with it */
	--lsv-tl-pad: 26px;   /* card padding */
	--lsv-tl-gap: 28px;
	position: relative;
	display: grid;
	max-width: 760px;
	margin: 0 auto;
	padding: 0;
	list-style: none;
}
.lsv-tl__step {
	position: relative;
	display: grid;
	grid-template-columns: var(--lsv-tl-node) minmax(0, 1fr);
	column-gap: 20px;
	margin: 0;
	padding: 0 0 var(--lsv-tl-gap);
}
.lsv-tl__step:last-child {
	padding-bottom: 0;
}
/* Dashed line down to the next node */
.lsv-tl__step:not(:last-child)::before {
	content: "";
	position: absolute;
	top: calc(var(--lsv-tl-pad) + var(--lsv-tl-head) / 2 + var(--lsv-tl-node) / 2 + 6px);
	bottom: calc(6px - var(--lsv-tl-pad) - var(--lsv-tl-head) / 2 + var(--lsv-tl-node) / 2);
	left: calc(var(--lsv-tl-node) / 2 - 1px);
	border-left: 2px dashed var(--lsv-star);
}
.lsv-tl__node {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--lsv-tl-node);
	height: var(--lsv-tl-node);
	margin-top: calc(var(--lsv-tl-pad) + var(--lsv-tl-head) / 2 - var(--lsv-tl-node) / 2);
	border: 1px solid var(--lsv-line);
	border-radius: 50%;
	background: #fff;
	color: var(--lsv-heading);
	font-family: var(--lsv-font-h);
	font-size: 17px;
	font-weight: 700;
	line-height: 1;
	transition: border-color 0.3s ease, color 0.3s ease;
}
.lsv-tl__node svg {
	width: 24px;
	height: 24px;
	color: var(--lsv-accent);
}
.lsv-tl__node .e-font-icon-svg {
	fill: currentColor;
}
.lsv-tl--final .lsv-tl__step:last-child .lsv-tl__node {
	border-color: var(--lsv-accent);
	background: var(--lsv-accent);
	color: #fff;
}
.lsv-tl--final .lsv-tl__step:last-child .lsv-tl__node svg {
	color: #fff;
}
/* Card — same as the service-page step cards */
.lsv-tl__card {
	position: relative;
	min-width: 0;
	padding: var(--lsv-tl-pad) 30px 28px;
	border: 1px solid var(--lsv-line-soft);
	border-radius: var(--lsv-radius);
	background: #fff;
	transition: border-color 0.3s ease;
}
.lsv-tl__step:hover .lsv-tl__card,
.lsv-tl__step:hover .lsv-tl__node {
	border-color: var(--lsv-accent-tint);
}
.lsv-tl__head {
	display: flex;
	align-items: center;
	gap: 16px;
	min-height: var(--lsv-tl-head);
	margin-bottom: 14px;
}
.lsv-tl__icon {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: var(--lsv-tl-head);
	height: var(--lsv-tl-head);
	border-radius: 50%;
	background: var(--lsv-accent-soft);
	color: var(--lsv-accent);
}
.lsv-tl__icon svg {
	width: 24px;
	height: 24px;
}
.lsv-tl__icon .e-font-icon-svg {
	fill: currentColor;
}
.lsv-tl .lsv-tl__title {
	margin: 0;
	font-size: 22px;
	line-height: 1.25;
}
.lsv-tl .lsv-tl__desc {
	font-size: 16px;
	line-height: 28px;
}
.lsv-tl__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
}
.lsv-tl__tags li {
	margin: 0;
	padding: 6px 16px;
	border-radius: 100px;
	background: var(--lsv-card);
	font-family: var(--lsv-font-h);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--lsv-heading);
}
@media (min-width: 992px) {
	.lsv-tl {
		--lsv-tl-node: 64px;
		--lsv-tl-gutter: 136px;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		column-gap: var(--lsv-tl-gutter);
		max-width: 1120px;
	}
	/* Centre line, from the first node to the last (the script trims the
	   end to the last node; without it the line fades out instead) */
	.lsv-tl::before {
		content: "";
		position: absolute;
		top: calc(var(--lsv-tl-pad) + var(--lsv-tl-head) / 2);
		bottom: var(--lsv-tl-end, 0);
		left: 50%;
		margin-left: -1px;
		border-left: 2px dashed var(--lsv-star);
	}
	.lsv-tl:not([style*="--lsv-tl-end"])::before {
		-webkit-mask-image: linear-gradient(180deg, #000 calc(100% - 180px), transparent);
		mask-image: linear-gradient(180deg, #000 calc(100% - 180px), transparent);
	}
	.lsv-tl__step {
		display: block;
		grid-column: 1;
		grid-row: var(--i) / span 2;
		padding-bottom: 56px;
	}
	.lsv-tl__step:nth-child(even) {
		grid-column: 2;
	}
	.lsv-tl__step:not(:last-child)::before {
		display: none;
	}
	.lsv-tl__node {
		position: absolute;
		top: calc(var(--lsv-tl-pad) + var(--lsv-tl-head) / 2 - var(--lsv-tl-node) / 2);
		right: calc(-1 * (var(--lsv-tl-gutter) / 2 + var(--lsv-tl-node) / 2));
		margin: 0;
		font-size: 18px;
	}
	.lsv-tl__step:nth-child(even) .lsv-tl__node {
		right: auto;
		left: calc(-1 * (var(--lsv-tl-gutter) / 2 + var(--lsv-tl-node) / 2));
	}
	/* Short dashed tick from the card to its node */
	.lsv-tl__card::after {
		content: "";
		position: absolute;
		top: calc(var(--lsv-tl-pad) + var(--lsv-tl-head) / 2 - 1px);
		right: calc(-1 * (var(--lsv-tl-gutter) / 2 - var(--lsv-tl-node) / 2) - 1px);
		width: calc(var(--lsv-tl-gutter) / 2 - var(--lsv-tl-node) / 2);
		border-top: 2px dashed var(--lsv-star);
	}
	.lsv-tl__step:nth-child(even) .lsv-tl__card::after {
		right: auto;
		left: calc(-1 * (var(--lsv-tl-gutter) / 2 - var(--lsv-tl-node) / 2) - 1px);
	}
	.lsv-tl .lsv-tl__title {
		font-size: 24px;
	}
}
@media (max-width: 575px) {
	.lsv-tl {
		--lsv-tl-node: 44px;
		--lsv-tl-head: 44px;
		--lsv-tl-pad: 20px;
	}
	.lsv-tl__step {
		column-gap: 14px;
	}
	.lsv-tl__node {
		font-size: 15px;
	}
	.lsv-tl__card {
		padding: var(--lsv-tl-pad) 20px 22px;
	}
	.lsv-tl__head {
		gap: 12px;
		margin-bottom: 10px;
	}
	.lsv-tl__icon svg {
		width: 20px;
		height: 20px;
	}
	.lsv-tl .lsv-tl__title {
		font-size: 19px;
	}
	.lsv-tl .lsv-tl__desc {
		font-size: 15px;
		line-height: 26px;
	}
	.lsv-tl__tags li {
		padding: 5px 12px;
		font-size: 13px;
	}
}

/* ==========================================================================
   Service Checklist
   ========================================================================== */
.lsv-checks--with-media {
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
	align-items: center;
	gap: 40px;
}
.lsv-checks__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.lsv-check {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	margin: 0;
	padding: 30px 25px;
	border: 1px solid transparent;
	border-radius: var(--lsv-radius);
	background: var(--lsv-card);
}
.lsv-check__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: #fff;
	color: var(--lsv-accent);
	font-size: 22px;
}
.lsv-check__icon svg {
	width: 22px;
	height: 22px;
	fill: currentColor;
}
.lsv-check__text {
	font-family: var(--lsv-font-h);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--lsv-heading);
}
.lsv-checks__media {
	justify-self: stretch;
	width: 100%;
	aspect-ratio: 8 / 9;
	border-radius: var(--lsv-radius);
}

/* ==========================================================================
   Service Policy Highlight
   ========================================================================== */
.lsv-policy__stat {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 28px;
	padding: 20px 24px;
	border-radius: var(--lsv-radius-sm);
	background: var(--lsv-accent);
	color: #fff;
}
.lsv-policy__stat-value {
	flex: 0 0 auto;
	font-family: var(--lsv-font-h);
	font-size: 56px;
	font-weight: 700;
	line-height: 1;
	color: #fff;
}
.lsv-policy__stat-label {
	flex: 1 1 auto;
	min-width: 0;
	font-family: var(--lsv-font-h);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.35;
	color: #fff;
}
/* Icon sits fully inside the block, in a soft circle (never clipped) */
.lsv-policy__stat-icon {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.18);
	color: #fff;
}
.lsv-policy__stat-icon svg {
	width: 24px;
	height: 24px;
}
/* Keep "Please note" at the bottom when the card is stretched beside Add-Ons */
.lsv-policy {
	display: flex;
	flex-direction: column;
}
.lsv-policy__notes {
	margin-top: auto;
}
.lsv-policy__title {
	margin-bottom: 12px;
}
.lsv-policy__desc {
	margin: 0 0 20px;
	font-size: 16px;
	line-height: 28px;
}
.lsv-policy__covered {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-bottom: 20px;
}
.lsv-policy__covered-label {
	font-family: var(--lsv-font-h);
	font-size: 16px;
	font-weight: 600;
	color: var(--lsv-heading);
}
.lsv-policy__example {
	margin: 0 0 24px;
	padding: 14px 18px;
	border-radius: var(--lsv-radius-sm);
	background: #fff;
	font-size: 16px;
	line-height: 28px;
}
.lsv-policy__notes {
	padding-top: 22px;
	border-top: 1px solid var(--lsv-line);
}
.lsv-policy__list {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.lsv-policy__note {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	font-size: 16px;
	line-height: 28px;
	color: var(--lsv-text);
}
.lsv-policy__note-icon {
	display: inline-flex;
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin-top: 5px;
	color: var(--lsv-accent);
}
.lsv-policy__note-icon svg {
	width: 100%;
	height: 100%;
}

/* ==========================================================================
   Service Add-Ons
   ========================================================================== */
.lsv-addons__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 24px;
}
.lsv-addons__subtitle {
	margin: -12px 0 24px;
	font-size: 16px;
	line-height: 28px;
}
.lsv-addons__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.lsv-addons__item {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 12px 16px;
	border-radius: var(--lsv-radius-sm);
	background: #fff;
	color: var(--lsv-heading);
	font-size: 16px;
	line-height: 1.4;
}
.lsv-addons__item .lsv-plus {
	height: auto;
}
.lsv-addons__extra {
	position: relative;
	margin-top: 24px;
	padding: 26px;
	overflow: hidden;
	border: 1px solid transparent;
	border-radius: var(--lsv-radius-sm);
	background: var(--lsv-navy);
	color: rgba(255, 255, 255, 0.8);
}
.lsv-addons__extra-head {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 10px;
}
.lsv-addons__extra-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--lsv-accent);
	color: #fff;
}
.lsv-addons__extra-icon svg {
	width: 20px;
	height: 20px;
}
.lsv-addons__extra-title {
	margin: 0;
	font-family: var(--lsv-font-h);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
	color: #fff;
}
.lsv-addons__extra-text {
	margin: 0 0 16px;
	font-size: 16px;
	line-height: 28px;
}
.lsv-addons__extra-note {
	margin: 14px 0 0;
	font-size: 14px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.65);
}

/* ==========================================================================
   Service Notice
   ========================================================================== */
.lsv-notice {
	padding: 40px 48px;
	border: 1px solid transparent;
	border-radius: var(--lsv-radius);
	background: linear-gradient(270deg, #FFFAEF 7.29%, #FFF 105.16%);
}
.lsv-notice__head {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 24px;
}
.lsv-notice__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 67px;
	height: 67px;
	border-radius: 50%;
	background: var(--lsv-accent);
	color: #fff;
	font-size: 26px;
}
.lsv-notice__icon svg {
	width: 26px;
	height: 26px;
	fill: currentColor;
}
.lsv-notice .lsv-eyebrow {
	margin-bottom: 10px;
}
.lsv-notice__title {
	margin: 0 0 6px;
	font-family: var(--lsv-font-h);
	font-size: 32px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--lsv-heading);
}
.lsv-notice__desc {
	margin: 0;
	font-size: 16px;
	line-height: 28px;
}
.lsv-notice__body {
	margin-top: 30px;
}
.lsv-notice__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.lsv-notice__item {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 14px 18px;
	border-radius: var(--lsv-radius-sm);
	background: #fff;
	color: var(--lsv-heading);
	font-size: 16px;
	line-height: 1.45;
}
.lsv-notice__marker {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--lsv-accent-soft);
	color: var(--lsv-accent);
}
.lsv-notice__marker svg {
	width: 12px;
	height: 12px;
}
.lsv-notice__item--check .lsv-notice__marker {
	background: #E8F7E9;
	color: var(--lsv-success);
}
.lsv-notice__item--info .lsv-notice__marker {
	background: var(--lsv-card);
	color: #5C67D8;
}

/* ==========================================================================
   Service Terms — accordion identical to the theme FAQ
   ========================================================================== */
.lsv-terms {
	margin: 0;
	padding: 0;
	list-style: none;
}
.lsv-terms--accordion {
	display: grid;
	gap: 15px;
	max-width: 800px;
	margin: 0 auto;
}
.lsv-terms--accordion .lsv-term {
	border: 1px solid transparent;
	border-radius: var(--lsv-radius);
	background: var(--lsv-card);
}
.lsv-term__summary {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 26px 30px;
	list-style: none;
	cursor: pointer;
}
.lsv-term__summary::-webkit-details-marker {
	display: none;
}
.lsv-term__summary:focus-visible {
	outline: 3px solid var(--lsv-accent-tint);
	outline-offset: -3px;
	border-radius: var(--lsv-radius);
}
.lsv-term__summary .lsv-term__title {
	flex: 1;
	margin: 0;
	font-size: 20px;
	font-weight: 500;
	line-height: 1.3;
}
.lsv-term__summary .lsv-term__num {
	display: inline;
	min-width: 0;
	height: auto;
	padding: 0;
	margin-right: 4px;
	background: none;
	color: inherit;
	font-size: inherit;
	font-weight: inherit;
}
.lsv-term__chevron {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 1px solid var(--lsv-star);
	border-radius: 50%;
	background: transparent;
	color: var(--lsv-star);
	transition: transform 0.4s ease, background-color 0.4s ease, color 0.4s ease, border-color 0.4s ease;
}
.lsv-term__chevron svg {
	width: 16px;
	height: 16px;
}
.lsv-term[open] .lsv-term__chevron {
	border-color: var(--lsv-accent);
	background: var(--lsv-accent);
	color: #fff;
	transform: rotate(180deg);
}
.lsv-terms--accordion .lsv-term__content {
	padding: 0 30px 22px;
	font-size: 16px;
	line-height: 32px;
	color: var(--lsv-text);
}

/* Grid layout (all visible) */
.lsv-terms--grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}
.lsv-terms--grid .lsv-term {
	display: flex;
	align-items: flex-start;
	gap: 18px;
	margin: 0;
	padding: 25px;
	border: 1px solid transparent;
	border-radius: var(--lsv-radius);
	background: var(--lsv-card);
}
.lsv-term__num {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	min-width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #fff;
	color: var(--lsv-heading);
	font-family: var(--lsv-font-h);
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
}
.lsv-term__main {
	min-width: 0;
}
.lsv-term__title {
	display: block;
	margin: 0 0 6px;
	font-family: var(--lsv-font-h);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--lsv-heading);
}
.lsv-term__content {
	font-size: 16px;
	line-height: 28px;
}
.lsv-term__content p {
	margin: 0 0 10px;
}
.lsv-term__content strong {
	font-weight: 600;
	color: var(--lsv-heading);
}
.lsv-term__content p:last-child {
	margin-bottom: 0;
}

/* ==========================================================================
   Service CTA
   ========================================================================== */
.lsv-cta {
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
	align-items: center;
	gap: 32px 56px;
	padding: 60px;
	overflow: hidden;
	border: 1px solid transparent;
	border-radius: var(--lsv-radius);
}
.lsv-cta--brand {
	background: var(--lsv-accent);
	color: #fff;
}
.lsv-cta--dark {
	background: linear-gradient(135deg, #1B1838 0%, #0F0D24 100%);
	color: #fff;
}
.lsv-cta--light {
	background: var(--lsv-card);
}
.lsv-cta__deco {
	position: absolute;
	z-index: -1;
	border-radius: 50%;
	pointer-events: none;
}
.lsv-cta__deco--1 {
	top: -220px;
	right: -140px;
	width: 460px;
	height: 460px;
	background: radial-gradient(circle, rgba(255, 255, 255, 0.18) 0%, transparent 65%);
}
.lsv-cta__deco--2 {
	bottom: -240px;
	left: -120px;
	width: 380px;
	height: 380px;
	border: 1px solid rgba(255, 255, 255, 0.18);
}
.lsv-cta--light .lsv-cta__deco--1 {
	background: radial-gradient(circle, var(--lsv-accent-soft) 0%, transparent 65%);
}
.lsv-cta--light .lsv-cta__deco--2 {
	border-color: var(--lsv-line);
}
.lsv-cta--brand .lsv-eyebrow,
.lsv-cta--dark .lsv-eyebrow,
.lsv-cta--brand .lsv-eyebrow__star,
.lsv-cta--dark .lsv-eyebrow__star {
	color: #fff;
}
.lsv-cta__title {
	margin: 0 0 24px;
	font-family: var(--lsv-font-h);
	font-size: 44px;
	font-weight: 700;
	line-height: 1.2;
	color: #fff;
}
.lsv-cta--light .lsv-cta__title {
	color: var(--lsv-heading);
}
.lsv-cta__title span {
	color: #FFE3D9;
}
.lsv-cta--light .lsv-cta__title span {
	color: var(--lsv-accent);
}
.lsv-cta__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.lsv-cta__tag {
	margin: 0;
	padding: 6px 16px;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 100px;
	color: #fff;
	font-size: 14px;
	line-height: 1.5;
}
.lsv-cta--light .lsv-cta__tag {
	border-color: var(--lsv-line);
	background: #fff;
	color: var(--lsv-heading);
}
.lsv-cta__side {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 22px;
	padding-left: 48px;
	border-left: 1px solid rgba(255, 255, 255, 0.3);
}
.lsv-cta--light .lsv-cta__side {
	border-left-color: var(--lsv-line);
}
.lsv-cta__price {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
}
.lsv-cta__price-label {
	font-size: 16px;
	line-height: 1;
	color: rgba(255, 255, 255, 0.85);
}
.lsv-cta--light .lsv-cta__price-label {
	color: var(--lsv-muted);
}
.lsv-cta__price-value {
	font-family: var(--lsv-font-h);
	font-size: 48px;
	font-weight: 700;
	line-height: 1;
	color: #fff;
}
.lsv-cta--light .lsv-cta__price-value {
	color: var(--lsv-heading);
}

/* ==========================================================================
   Optional extras on existing widgets (all empty by default)
   ========================================================================== */

/* In-page anchors to sections with these widgets (e.g. "View Packages" →
   #packages) land below the theme's sticky header. The header also leaves
   the page flow once it turns sticky (content shifts up 80px), hence 180px. */
.elementor-element[id]:has(.lsv) {
	scroll-margin-top: 180px;
}

/* Intro: "/month" after the price, custom badge icons */
.lsv-intro__price-suffix {
	margin-left: -8px;
	font-size: 16px;
	line-height: 1;
	color: var(--lsv-muted);
}
.lsv-intro__badge-icon i {
	font-size: 17px;
	line-height: 1;
}
.lsv-intro__badge-icon .e-font-icon-svg {
	fill: currentColor;
}

/* Platform badges — pricing-table "icons" column, package summary */
.lsv-platforms {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
	vertical-align: middle;
}
.lsv-platforms__item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	border-radius: 100px;
	background: var(--lsv-card);
	color: var(--lsv-heading);
	font-family: var(--lsv-font-h);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	white-space: nowrap;
}
.lsv-platforms__icon {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	font-size: 15px;
	line-height: 1;
}
.lsv-platforms--icons .lsv-platforms__item {
	justify-content: center;
	width: 38px;
	height: 38px;
	transition: background-color 0.25s ease, color 0.25s ease;
}
.lsv-platforms--icons .lsv-platforms__item:hover {
	background: var(--lsv-accent);
	color: #fff;
}
.lsv-platforms--icons .lsv-platforms__item--text {
	width: auto;
	padding: 0 14px;
}
.lsv-platforms--icon-text .lsv-platforms__item {
	padding: 5px 14px 5px 5px;
}
.lsv-platforms--icon-text .lsv-platforms__icon {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: #fff;
	color: var(--lsv-accent);
	font-size: 13px;
}
.lsv-platforms--tags .lsv-platforms__item {
	padding: 6px 14px;
}
.lsv-ptable__cell .lsv-platforms {
	flex-wrap: nowrap;
	justify-content: center;
}
/* Keep "৳40,000/month" on one line while the table is a real table */
@media (min-width: 992px) {
	.lsv-ptable__table td.lsv-ptable__cell--price {
		white-space: nowrap;
	}
}
.lsv-ptable__row.is-popular .lsv-platforms__item {
	background: #fff;
}
.lsv-ptable__row.is-popular .lsv-platforms--icons .lsv-platforms__item:hover {
	background: var(--lsv-accent);
}

/* Pricing table footnote ("Ad spend is billed separately …") */
.lsv-ptable__footnote {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	gap: 10px;
	margin: 22px 0 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--lsv-text);
}
.lsv-ptable__footnote-icon {
	display: inline-flex;
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin-top: 3px;
	color: var(--lsv-accent);
}
.lsv-ptable__footnote-icon svg {
	width: 100%;
	height: 100%;
}
.lsv .lsv-ptable__footnote-link {
	margin-left: 2px;
	color: var(--lsv-accent);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.lsv .lsv-ptable__footnote-link:hover {
	color: var(--lsv-heading);
}

/* Packages: platforms row at the top of the details column. The column sits
   on the tinted card, so the chips flip to white like the "Best for" tags. */
.lsv-pkg__platforms {
	margin: 0 0 30px;
}
.lsv-pkg__platforms .lsv-platforms {
	display: flex;
	gap: 8px;
}
.lsv-pkg__platforms .lsv-platforms__item {
	background: #fff;
}
.lsv-pkg__platforms .lsv-platforms--icon-text .lsv-platforms__icon {
	background: var(--lsv-card);
}
.lsv-pkg__platforms .lsv-platforms--icons .lsv-platforms__item:hover {
	background: var(--lsv-accent);
}

/* Packages: "Every package includes" box inside each package (or the
   .lsv-includes strip below all packages, styled by the pricing-table rules) */
.lsv-pkg__essentials {
	margin: 0 0 30px;
	padding: 20px 24px;
	border: 1px solid transparent;
	border-radius: var(--lsv-radius-sm);
	background: #fff;
}
.lsv-pkg__essentials--bottom {
	margin: 30px 0 0;
}
.lsv-pkg__essentials .lsv-pkg__label {
	margin-bottom: 8px;
}
.lsv-pkg__essentials .lsv-includes__list {
	gap: 2px 22px;
}
@media (max-width: 575px) {
	.lsv-pkg__essentials {
		padding: 16px 18px;
	}
	/* One item per line instead of a ragged inline wrap */
	.lsv-pkg__essentials .lsv-includes__list {
		flex-direction: column;
	}
}

/* ==========================================================================
   Service Icon Cards
   ========================================================================== */
.lsv-icards {
	--lsv-cols: 4;
	display: grid;
	grid-template-columns: repeat(var(--lsv-cols, 4), minmax(0, 1fr));
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.lsv-icard {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	margin: 0;
	padding: 30px;
	border: 1px solid transparent;
	border-radius: var(--lsv-radius);
	background: var(--lsv-card);
}
.lsv-icard__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	margin-bottom: 24px;
}
.lsv-icard__icon {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--lsv-icard-icon-bg, #fff);
	color: var(--lsv-icard-icon, var(--lsv-accent));
	font-size: 26px;
	line-height: 1;
	transition: background-color 0.3s ease, color 0.3s ease;
}
.lsv-icard__icon svg {
	width: 26px;
	height: 26px;
	fill: currentColor;
}
.lsv-icards--hover .lsv-icard:hover .lsv-icard__icon {
	background: var(--lsv-icard-icon, var(--lsv-accent));
	color: #fff;
}
.lsv-icard__badge {
	display: inline-flex;
	align-items: center;
	padding: 7px 14px;
	border-radius: 100px;
	background: #fff;
	color: var(--lsv-accent);
	font-family: var(--lsv-font-h);
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
}
.lsv-icard__title {
	margin: 0 0 10px;
	font-family: var(--lsv-font-h);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--lsv-heading);
}
.lsv-icard__desc {
	margin: 0;
	font-size: 16px;
	line-height: 28px;
}
.lsv-icard__link {
	margin-top: auto;
	padding-top: 20px;
}
.lsv-icards--center .lsv-icard {
	align-items: center;
	text-align: center;
}
.lsv-icards--center .lsv-icard__head {
	flex-direction: column;
	align-items: center;
}

/* ==========================================================================
   Service Cost Breakdown
   ========================================================================== */
.lsv-costs {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	align-items: stretch;
	gap: 30px;
}
.lsv-costs--stacked {
	grid-template-columns: minmax(0, 1fr);
}
.lsv-costs__card {
	display: flex;
	flex-direction: column;
	padding: 40px;
	border: 1px solid var(--lsv-line);
	border-radius: var(--lsv-radius);
	background: #fff;
}
.lsv-costs__title {
	margin: 0 0 24px;
	font-family: var(--lsv-font-h);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--lsv-heading);
}

/* Fee rows joined by a "+" connector */
.lsv-costs__rows {
	display: flex;
	flex-direction: column;
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}
.lsv-costs__rows:last-child {
	margin-bottom: 0;
}
.lsv-costs__row {
	display: flex;
	align-items: flex-start;
	gap: 18px;
	margin: 0;
	padding: 24px;
	border: 1px solid transparent;
	border-radius: var(--lsv-radius-sm);
	background: var(--lsv-card);
}
.lsv-costs__row-icon {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: #fff;
	color: var(--lsv-accent);
	font-size: 20px;
	line-height: 1;
}
.lsv-costs__row-icon svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}
.lsv-costs__row-main {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}
.lsv-costs__row-label {
	font-family: var(--lsv-font-h);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--lsv-muted);
}
.lsv-costs__row-value {
	font-family: var(--lsv-font-h);
	font-size: 28px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--lsv-heading);
}
.lsv-costs__row-desc {
	font-size: 14px;
	line-height: 1.5;
	color: var(--lsv-muted);
}
.lsv-costs__row.is-highlight {
	background: var(--lsv-accent-soft);
}
.lsv-costs__row.is-highlight .lsv-costs__row-icon {
	background: var(--lsv-accent);
	color: #fff;
}
.lsv-costs__row.is-highlight .lsv-costs__row-value {
	font-size: 22px;
	color: var(--lsv-accent);
}
.lsv-costs__connector {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-self: center;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: -12px 0;
	border: 4px solid #fff;
	border-radius: 50%;
	background: var(--lsv-navy);
	color: #fff;
	font-family: var(--lsv-font-h);
	font-size: 20px;
	font-weight: 700;
	line-height: 1;
}
/* The note follows the fee rows. It used to be pushed to the card's bottom,
   which left a large empty gap whenever the options card beside it was
   taller (e.g. with the converter stacked at 992–1199px) */
.lsv .lsv-costs__note {
	margin-top: 0;
}

/* Payment option tiles */
.lsv-costs__option-list {
	display: grid;
	gap: 16px;
}
.lsv-costs__option {
	display: flex;
	align-items: flex-start;
	gap: 18px;
	padding: 24px;
	border: 1px solid transparent;
	border-radius: var(--lsv-radius-sm);
	background: var(--lsv-card);
}
.lsv-costs__option-badge {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #fff;
	color: var(--lsv-accent);
	font-family: var(--lsv-font-h);
	font-size: 18px;
	font-weight: 700;
	line-height: 1;
}
.lsv-costs__option-main {
	flex: 1 1 auto;
	min-width: 0;
}
.lsv-costs__option-title {
	margin: 0 0 6px;
	font-family: var(--lsv-font-h);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--lsv-heading);
}
.lsv-costs__option-desc {
	margin: 0;
	font-size: 16px;
	line-height: 28px;
}

/* Currency converter */
.lsv-calc {
	container-type: inline-size;
	margin-top: 18px;
	padding: 20px;
	border: 1px solid transparent;
	border-radius: var(--lsv-radius-sm);
	background: #fff;
}
.lsv-calc__rate {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	margin: 0 0 16px;
	font-size: 14px;
	line-height: 1.4;
	color: var(--lsv-muted);
}
.lsv-calc__rate strong {
	padding: 6px 14px;
	border-radius: 100px;
	background: var(--lsv-accent);
	color: #fff;
	font-family: var(--lsv-font-h);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
}
.lsv-calc__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: end;
	gap: 12px;
}
.lsv-calc__label {
	display: block;
	margin-bottom: 6px;
	font-size: 14px;
	line-height: 1.4;
	color: var(--lsv-muted);
}
.lsv-calc__input {
	display: flex;
	align-items: center;
	height: 54px;
	padding: 0 14px;
	border: 1px solid var(--lsv-line);
	border-radius: var(--lsv-radius-sm);
	background: #fff;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.lsv-calc__input:focus-within {
	border-color: var(--lsv-accent);
	box-shadow: 0 0 0 3px var(--lsv-accent-tint);
}
.lsv-calc__prefix {
	margin-right: 4px;
	font-family: var(--lsv-font-h);
	font-size: 20px;
	font-weight: 600;
	line-height: 1;
	color: var(--lsv-muted);
}
/* Reset theme input styles inside the converter */
.lsv .lsv-calc__input input {
	flex: 1 1 auto;
	width: 100%;
	min-width: 0;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	outline: 0;
	color: var(--lsv-heading);
	font-family: var(--lsv-font-h);
	font-size: 22px;
	font-weight: 700;
	line-height: 1;
	-moz-appearance: textfield;
	appearance: textfield;
}
.lsv .lsv-calc__input input::-webkit-outer-spin-button,
.lsv .lsv-calc__input input::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}
.lsv-calc__op {
	display: flex;
	align-items: center;
	height: 54px;
	font-size: 15px;
	line-height: 1;
	color: var(--lsv-muted);
	white-space: nowrap;
}
.lsv-calc__result {
	display: flex;
	align-items: center;
	height: 54px;
	padding: 0 16px;
	overflow: hidden;
	border-radius: var(--lsv-radius-sm);
	background: var(--lsv-accent-soft);
	color: var(--lsv-heading);
	font-family: var(--lsv-font-h);
	font-size: 22px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
	text-overflow: ellipsis;
	font-variant-numeric: tabular-nums;
}
.lsv-calc__footnote {
	margin: 14px 0 0;
	font-size: 14px;
	line-height: 1.5;
	color: var(--lsv-muted);
}
/* In a narrow column (e.g. beside the fee example at 992–1199px) the three
   fields can't fit side by side: stack them so the result isn't clipped */
@container (max-width: 340px) {
	.lsv-calc__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 8px;
	}
	.lsv-calc__op {
		height: auto;
	}
}

/* ==========================================================================
   Service Logo Marquee — the theme's brand strip (fade edges, gradient rule)
   ========================================================================== */
.lsv-marquee {
	--lsv-logo-h: 40px;
	--lsv-logo-gap: 80px;
	--lsv-marquee-duration: 35s;
}
.lsv-marquee--divider {
	padding-bottom: 45px;
	border-bottom: 2px solid transparent;
	border-image: linear-gradient(90deg, rgba(139, 144, 150, 0.05) 14.72%, #D8DFE9 44%, rgba(121, 125, 131, 0.05) 85%);
	border-image-slice: 2;
}
/* Subheading — same as the theme's brand-strip title (.brand-title) */
.lsv .lsv-marquee__caption {
	margin: 0 0 50px;
	padding: 0;
	font-family: var(--lsv-font-h);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: normal;
	text-transform: none;
	text-align: center;
	color: var(--lsv-text);
}
.lsv .lsv-marquee__caption span,
.lsv .lsv-marquee__caption strong {
	color: var(--lsv-accent);
	font-weight: 600;
}
.lsv-marquee__viewport {
	overflow: hidden;
}
.lsv-marquee--fade .lsv-marquee__viewport {
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 15%, #000 85%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 15%, #000 85%, transparent 100%);
}
/* Two identical groups; moving the track by -50% loops without a seam */
.lsv-marquee__track {
	display: flex;
	width: max-content;
	animation: lsv-marquee var(--lsv-marquee-duration) linear infinite;
	will-change: transform;
}
.lsv-marquee--reverse .lsv-marquee__track {
	animation-direction: reverse;
}
.lsv-marquee--pause:hover .lsv-marquee__track {
	animation-play-state: paused;
}
.lsv-marquee__group {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
}
.lsv-marquee__item {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	margin: 0 var(--lsv-logo-gap) 0 0;
	padding: 0;
}
.lsv-marquee__logo {
	display: inline-flex;
	align-items: center;
	height: var(--lsv-logo-h);
	color: var(--lsv-heading);
	font-size: var(--lsv-logo-h);
	line-height: 1;
	transition: filter 0.3s ease, opacity 0.3s ease;
}
.lsv-marquee__logo svg {
	display: block;
	width: auto;
	height: 100%;
}
.lsv-marquee__logo .e-font-icon-svg {
	fill: currentColor;
}
.lsv .lsv-marquee__logo img {
	display: block;
	width: auto;
	max-width: none;
	height: 100%;
}
.lsv-marquee--mono .lsv-marquee__logo {
	filter: grayscale(1);
	opacity: 0.55;
}
.lsv-marquee--mono .lsv-marquee__item:hover .lsv-marquee__logo {
	filter: none;
	opacity: 1;
}
/* "Show Names": icon in a soft circle + name (e.g. industries) */
.lsv-marquee--named .lsv-marquee__item {
	gap: 14px;
}
.lsv-marquee--named .lsv-marquee__logo {
	justify-content: center;
	width: calc(var(--lsv-logo-h) + 8px);
	height: calc(var(--lsv-logo-h) + 8px);
	border-radius: 50%;
	background: var(--lsv-card);
	color: var(--lsv-accent);
	font-size: calc(var(--lsv-logo-h) * 0.5);
}
.lsv-marquee--named .lsv-marquee__logo svg {
	width: 1em;
	height: 1em;
}
/* Built-in line icons read a touch larger than solid glyphs */
.lsv-marquee--named .lsv-marquee__logo .lsv-line-icon {
	width: 1.1em;
	height: 1.1em;
}
.lsv .lsv-marquee--named .lsv-marquee__logo img {
	height: 50%;
}
.lsv-marquee__name {
	font-family: var(--lsv-font-h);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
	color: var(--lsv-heading);
}
@keyframes lsv-marquee {
	from { transform: translate3d(0, 0, 0); }
	to { transform: translate3d(-50%, 0, 0); }
}

/* ==========================================================================
   Service Portfolio Tabs — tabs reuse the Packages pill toggle
   ========================================================================== */
.lsv-pf {
	--lsv-pf-per-view: 3;
	--lsv-pf-gap: 24px;
	--lsv-pf-ratio: 4 / 5;
}
.lsv-pf__tab-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	font-size: 15px;
	line-height: 1;
}
.lsv-pf__tab-icon svg {
	width: 16px;
	height: 16px;
	fill: currentColor;
}
.lsv-pf__tab-icon--line,
.lsv-pf__tab-icon .lsv-line-icon {
	width: 18px;
	height: 18px;
}
.lsv-pf__tab-icon .lsv-line-icon {
	fill: none;
}
.lsv-pf__panel[hidden] {
	display: none;
}
.lsv-pf__panel:focus-visible {
	outline: 3px solid var(--lsv-accent-tint);
	outline-offset: 6px;
	border-radius: var(--lsv-radius);
}
.lsv-pf[data-lsv-tabs] .lsv-pf__panel.is-active {
	animation: lsv-panel-in 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Carousel: native scroll-snap (touch swipe for free), arrows scroll a page */
.lsv-pf__track {
	display: flex;
	gap: var(--lsv-pf-gap);
	margin: -6px 0;
	padding: 6px 0; /* room for focus outlines inside the scroller */
	list-style: none;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.lsv-pf__track::-webkit-scrollbar {
	display: none;
}
.lsv-pf__slide {
	flex: 0 0 calc((100% - (var(--lsv-pf-per-view) - 1) * var(--lsv-pf-gap)) / var(--lsv-pf-per-view));
	min-width: 0;
	margin: 0;
	scroll-snap-align: start;
}
.lsv .lsv-pf__item {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: var(--lsv-pf-ratio);
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 0;
	border-radius: var(--lsv-radius);
	background: var(--lsv-card);
	cursor: zoom-in;
	font: inherit;
	color: inherit;
}
div.lsv-pf__item {
	cursor: default;
}
.lsv-pf__item .lsv-pf__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
a.lsv-pf__item:hover .lsv-pf__img {
	transform: scale(1.04);
}
.lsv .lsv-pf__item:focus-visible {
	outline: 3px solid var(--lsv-accent-tint);
	outline-offset: 3px;
}
.lsv-pf__zoom {
	position: absolute;
	right: 16px;
	bottom: 16px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--lsv-accent);
	color: #fff;
	opacity: 0;
	transform: translateY(6px);
	transition: opacity 0.3s ease, transform 0.3s ease;
}
.lsv-pf__zoom svg {
	width: 20px;
	height: 20px;
}
.lsv-pf__item:hover .lsv-pf__zoom,
.lsv-pf__item:focus-visible .lsv-pf__zoom {
	opacity: 1;
	transform: none;
}
@media (hover: none) {
	.lsv-pf__zoom {
		opacity: 1;
		transform: none;
	}
}

/* Video slides: thumbnail + glass play button, title over a soft gradient */
.lsv .lsv-pf__item--video {
	cursor: pointer;
	background: #0E1124;
}
.lsv-pf__item--video::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, rgba(9, 11, 28, 0) 50%, rgba(9, 11, 28, 0.7) 100%);
	pointer-events: none;
}
.lsv-pf__item--video:hover .lsv-pf__img {
	transform: scale(1.04);
}
/* YouTube's 4:3 thumbnail letterboxes widescreen video: push the bars out of view */
.lsv-pf__item .lsv-pf__img--letterbox {
	top: -16.667%;
	bottom: auto;
	height: 133.334%;
}
.lsv-pf__poster,
.lsv .lsv-pf__item.is-thumb-missing {
	display: block;
	background: radial-gradient(circle at 30% 20%, rgba(255, 98, 67, 0.35), transparent 60%), linear-gradient(160deg, #1B1F3B, #0E1124);
}
.lsv-pf__item.is-thumb-missing .lsv-pf__img {
	visibility: hidden;
}
/* Editor only: say why there's no thumbnail */
.elementor-editor-active .lsv-pf__item.is-thumb-missing::before {
	content: "No thumbnail \2014  check the link is shared with \201CAnyone with the link\201D";
	position: absolute;
	top: 14px;
	right: 14px;
	left: 14px;
	z-index: 3;
	padding: 8px 10px;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.92);
	font-size: 12px;
	line-height: 1.4;
	color: #0E1124;
	text-align: left;
}
/* Glass play button: portfolio video cards and the hero (Intro) video */
.lsv-pf__play,
.lsv .lsv-play {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.18);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	color: #fff;
	transform: translate(-50%, -50%);
	transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.35s ease, border-color 0.35s ease;
}
.lsv-pf__play svg,
.lsv-play svg {
	width: 26px;
	height: 26px;
	margin-left: 3px;
}
.lsv .lsv-play:focus-visible {
	outline: 3px solid var(--lsv-accent-tint);
	outline-offset: 3px;
}
.lsv-pf__item--video:hover .lsv-pf__play,
.lsv-pf__item--video:focus-visible .lsv-pf__play,
.lsv .lsv-play:hover,
.lsv .lsv-play:focus-visible {
	border-color: var(--lsv-accent);
	background: var(--lsv-accent);
	transform: translate(-50%, -50%) scale(1.08);
}
.lsv-pf__vtitle {
	position: absolute;
	right: 20px;
	bottom: 18px;
	left: 20px;
	z-index: 2;
	font-family: var(--lsv-font-h);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.3;
	text-align: left;
	color: #fff;
}

/* Progress bar + arrows */
.lsv-pf__controls {
	display: flex;
	align-items: center;
	gap: 24px;
	margin-top: 30px;
}
.lsv-pf__carousel.is-static .lsv-pf__controls {
	display: none;
}
.lsv-pf__progress {
	position: relative;
	flex: 1 1 auto;
	height: 4px;
	overflow: hidden;
	border-radius: 4px;
	background: var(--lsv-line);
}
.lsv-pf__progress-bar {
	position: absolute;
	top: 0;
	left: 0;
	width: 33%;
	height: 100%;
	border-radius: 4px;
	background: var(--lsv-accent);
	transition: left 0.15s linear;
}
.lsv-pf__arrows {
	display: flex;
	flex: 0 0 auto;
	gap: 12px;
	margin-left: auto;
}
.lsv .lsv-pf__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	margin: 0;
	padding: 0;
	border: 1px solid var(--lsv-line);
	border-radius: 50%;
	background: #fff;
	color: var(--lsv-heading);
	cursor: pointer;
	transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease, opacity 0.3s ease;
}
.lsv .lsv-pf__arrow:hover:not(:disabled) {
	border-color: var(--lsv-accent);
	background: var(--lsv-accent);
	color: #fff;
}
.lsv .lsv-pf__arrow:focus-visible {
	outline: 3px solid var(--lsv-accent-tint);
	outline-offset: 2px;
}
.lsv .lsv-pf__arrow:disabled {
	opacity: 0.4;
	cursor: default;
}
.lsv-pf__arrow svg {
	width: 20px;
	height: 20px;
}
.lsv-pf__arrow--prev svg {
	transform: rotate(180deg);
}

/* ==========================================================================
   Lightbox (full-screen <dialog>, appended to <body> by the script)
   ========================================================================== */
html.lsv-lightbox-open {
	overflow: hidden;
}
.lsv-lightbox {
	position: fixed;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 0;
	background: rgba(9, 11, 28, 0.94);
	color: #fff;
}
.lsv-lightbox::backdrop {
	background: transparent;
}
.lsv-lightbox[open] {
	animation: lsv-lightbox-in 0.25s ease;
}
.lsv-lightbox__stage {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: 72px 110px 84px;
	touch-action: pan-y;
}
.lsv-lightbox__figure {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	max-width: 100%;
	max-height: 100%;
	margin: 0;
}
.lsv-lightbox__img {
	display: block;
	width: auto;
	max-width: min(1200px, 100%);
	height: auto;
	max-height: calc(100vh - 200px);
	border-radius: 12px;
	box-shadow: 0 24px 70px rgba(0, 0, 0, 0.45);
	object-fit: contain;
	user-select: none;
	-webkit-user-drag: none;
}
.lsv-lightbox__ph {
	position: relative;
	width: min(480px, 76vw);
	max-height: calc(100vh - 200px);
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: 16px;
	background: #F4F6FF;
}
.lsv-lightbox__ph .lsv-placeholder {
	font-family: var(--techtro-poppins, "Poppins", sans-serif);
}
/* Video player, sized to fit the screen at the tab's shape */
.lsv-lightbox__video {
	--lsv-lb-ratio: 1.7778;
	width: min(1200px, calc(100vw - 220px), calc((100vh - 200px) * var(--lsv-lb-ratio)));
	aspect-ratio: var(--lsv-lb-ratio);
	overflow: hidden;
	border-radius: 12px;
	background: #000;
	box-shadow: 0 24px 70px rgba(0, 0, 0, 0.45);
}
.lsv-lightbox__video iframe,
.lsv-lightbox__video video {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	background: #000;
	object-fit: contain;
}
.lsv-lightbox__img[hidden],
.lsv-lightbox__ph[hidden],
.lsv-lightbox__video[hidden],
.lsv-lightbox__caption[hidden] {
	display: none;
}
.lsv-lightbox__caption {
	max-width: 760px;
	margin: 0;
	font-size: 15px;
	line-height: 1.5;
	text-align: center;
	color: rgba(255, 255, 255, 0.8);
}
.lsv-lightbox__btn {
	position: absolute;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}
.lsv-lightbox__btn:hover {
	border-color: var(--theme, #ff6243);
	background: var(--theme, #ff6243);
}
.lsv-lightbox__btn:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 2px;
}
.lsv-lightbox__btn[hidden] {
	display: none;
}
.lsv-lightbox__btn svg {
	width: 22px;
	height: 22px;
}
.lsv-lightbox__close {
	top: 20px;
	right: 20px;
}
.lsv-lightbox__prev,
.lsv-lightbox__next {
	top: 50%;
	transform: translateY(-50%);
}
.lsv-lightbox__prev {
	left: 28px;
}
.lsv-lightbox__next {
	right: 28px;
}
.lsv-lightbox__counter {
	position: absolute;
	bottom: 28px;
	left: 50%;
	margin: 0;
	transform: translateX(-50%);
	font-family: var(--techtro-public, "Public Sans", sans-serif);
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 1px;
	color: rgba(255, 255, 255, 0.75);
}
@keyframes lsv-lightbox-in {
	from { opacity: 0; }
	to { opacity: 1; }
}
@media (max-width: 767px) {
	.lsv-lightbox__stage {
		padding: 72px 16px 100px;
	}
	.lsv-lightbox__img,
	.lsv-lightbox__ph {
		max-height: calc(100vh - 200px);
	}
	.lsv-lightbox__video {
		width: min(calc(100vw - 32px), calc((100vh - 200px) * var(--lsv-lb-ratio)));
	}
	.lsv-lightbox__prev,
	.lsv-lightbox__next {
		top: auto;
		bottom: 18px;
		transform: none;
	}
	.lsv-lightbox__prev {
		left: 16px;
	}
	.lsv-lightbox__next {
		right: 16px;
	}
	.lsv-lightbox__counter {
		bottom: 38px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.lsv-pf__track {
		scroll-behavior: auto;
	}
	.lsv-lightbox[open] {
		animation: none;
	}
}

/* Responsive — new components */
@media (max-width: 1199px) {
	.lsv-icards {
		--lsv-cols: 2;
	}
	.lsv-costs__card {
		padding: 32px;
	}
}

@media (max-width: 991px) {
	.lsv-costs {
		grid-template-columns: minmax(0, 1fr);
	}
	/* Tablet table: smaller platform icons, 2 × 2, so the table fits its card */
	.lsv-ptable__cell .lsv-platforms--icons {
		flex-wrap: wrap;
		gap: 4px;
		max-width: 68px;
	}
	.lsv-ptable__cell .lsv-platforms--icons .lsv-platforms__item {
		width: 32px;
		height: 32px;
		font-size: 14px;
	}
}
/* Tablet only, and only tables with a platforms column (an extra column):
   tighter inner cell padding so it still fits without scrolling */
@media (min-width: 768px) and (max-width: 991px) {
	.lsv-ptable__table:has(.lsv-platforms) th,
	.lsv-ptable__table:has(.lsv-platforms) td {
		padding-right: 9px;
		padding-left: 9px;
	}
	.lsv-ptable__table:has(.lsv-platforms) th:first-child,
	.lsv-ptable__table:has(.lsv-platforms) td:first-child {
		padding-left: 20px;
	}
	.lsv-ptable__table:has(.lsv-platforms) th:last-child,
	.lsv-ptable__table:has(.lsv-platforms) td:last-child {
		padding-right: 20px;
	}
}

@media (max-width: 767px) {
	.lsv-ptable__cell .lsv-platforms,
	.lsv-ptable__cell .lsv-platforms--icons {
		flex-wrap: wrap;
		justify-content: flex-start;
		max-width: none;
	}
	.lsv-ptable__footnote {
		justify-content: flex-start;
		font-size: 14px;
	}
}

@media (max-width: 991px) {
	.lsv-marquee {
		--lsv-logo-h: 36px;
		--lsv-logo-gap: 64px;
	}
	.lsv-pf {
		--lsv-pf-per-view: 2;
		--lsv-pf-gap: 20px;
	}
}

@media (max-width: 575px) {
	.lsv-pf {
		--lsv-pf-per-view: 1.2;
		--lsv-pf-gap: 16px;
	}
	.lsv .lsv-pf__arrow {
		width: 48px;
		height: 48px;
	}
	.lsv-pf__controls {
		gap: 16px;
		margin-top: 24px;
	}
	/* Keep all platform tabs visible on phones instead of a scrolling bar */
	.lsv-pf__nav.lsv-pkgs__nav {
		padding: 6px;
	}
	.lsv .lsv-pf__nav .lsv-pkgs__tab {
		padding: 12px 14px;
		font-size: 15px;
	}
}

@media (max-width: 430px) {
	.lsv-pf__tab-icon {
		display: none;
	}
}

@media (max-width: 575px) {
	.lsv-marquee {
		--lsv-logo-h: 32px;
		--lsv-logo-gap: 48px;
	}
	.lsv-marquee--divider {
		padding-bottom: 35px;
	}
	.lsv-marquee--named .lsv-marquee__item {
		gap: 10px;
	}
	.lsv-marquee__name {
		font-size: 16px;
	}
	.lsv-pf__play,
	.lsv .lsv-play {
		width: 58px;
		height: 58px;
	}
	.lsv-pf__play svg,
	.lsv-play svg {
		width: 22px;
		height: 22px;
	}
	.lsv-pf__vtitle {
		font-size: 15px;
	}
	.lsv-icards {
		--lsv-cols: 1;
	}
	.lsv-icard {
		padding: 25px;
	}

	.lsv-costs__card {
		padding: 25px 20px;
	}
	.lsv-costs__title {
		font-size: 22px;
	}
	.lsv-costs__row {
		gap: 14px;
		padding: 18px;
	}
	.lsv-costs__row-icon {
		width: 44px;
		height: 44px;
	}
	.lsv-costs__row-value {
		font-size: 24px;
	}
	.lsv-costs__row.is-highlight .lsv-costs__row-value {
		font-size: 19px;
	}
	.lsv-costs__option {
		flex-direction: column;
		gap: 14px;
		padding: 18px;
	}
	.lsv-costs__option-badge {
		width: 40px;
		height: 40px;
		font-size: 16px;
	}
	.lsv-calc {
		padding: 16px;
	}
	.lsv-calc__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 8px;
	}
	.lsv-calc__op {
		height: auto;
	}
}

/* ==========================================================================
   Responsive (theme breakpoints: 1199 / 991 / 767 / 575)
   ========================================================================== */
@media (max-width: 1199px) {
	/* Give the text column room so both buttons stay on one line (992–1199px) */
	.lsv-intro {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
		column-gap: 40px;
	}
	.lsv-intro__title {
		font-size: 44px;
	}

	.lsv-ptable__table th,
	.lsv-ptable__table td {
		padding-right: 16px;
		padding-left: 16px;
	}

	.lsv-pkg {
		grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
	}
	.lsv-pkg__summary {
		padding: 28px;
	}
	/* Keep "Campaigns / month  Up to 15" on one row in the narrower summary */
	.lsv-pkg__stats {
		padding: 2px 14px;
	}
	.lsv-pkg__stat dt {
		font-size: 14px;
	}
	.lsv-pkg__stat dd {
		font-size: 18px;
	}

	.lsv-frow,
	.lsv-frow--media-left {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		column-gap: 30px;
	}
	.lsv-frow {
		padding-left: 32px;
	}
	.lsv-frow--media-left {
		padding-right: 32px;
		padding-left: 0;
	}

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

	.lsv-cta {
		padding: 48px;
	}
	.lsv-cta__title {
		font-size: 36px;
	}
}

@media (max-width: 991px) {
	.lsv-intro {
		grid-template-columns: minmax(0, 1fr);
	}
	.lsv-intro--media-left .lsv-intro__media {
		order: 0;
	}
	.lsv-intro__media {
		justify-self: center;
		width: 100%;
		max-width: 640px;
		padding: 0 20px;
	}
	.lsv-intro__badge--1,
	.lsv-intro--media-left .lsv-intro__badge--1 {
		left: 0;
		right: auto;
	}
	.lsv-intro__badge--2,
	.lsv-intro--media-left .lsv-intro__badge--2 {
		right: 0;
		left: auto;
	}

	/* Tablet: compact cells; scroll rather than clip if a column set is very wide */
	.lsv-ptable__card {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.lsv-ptable__table th,
	.lsv-ptable__table td {
		padding: 16px 12px;
	}
	.lsv-ptable__table th:first-child,
	.lsv-ptable__table td:first-child {
		padding-left: 20px;
	}
	.lsv-ptable__table th:last-child,
	.lsv-ptable__table td:last-child {
		padding-right: 20px;
	}
	.lsv-ptable__cell--name .lsv-badge {
		display: flex;
		width: max-content;
		margin: 6px 0 0;
	}
	.lsv-includes {
		flex-direction: column;
	}

	.lsv-pkgs__nav {
		margin-bottom: 24px;
		-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 14px, #000 calc(100% - 14px), transparent 100%);
		mask-image: linear-gradient(90deg, transparent 0, #000 14px, #000 calc(100% - 14px), transparent 100%);
	}
	.lsv-pkg {
		grid-template-columns: minmax(0, 1fr);
	}
	.lsv-pkg__body {
		padding: 10px 16px 16px;
	}
	.lsv-pkgs--grid .lsv-pkgs__panels {
		grid-template-columns: minmax(0, 1fr);
	}

	.lsv-frow,
	.lsv-frow--media-left {
		grid-template-columns: minmax(0, 1fr);
		padding: 40px 32px 0;
	}
	.lsv-frow--media-left .lsv-frow__media {
		order: 0;
	}
	.lsv-frow__content {
		padding-bottom: 32px;
	}
	.lsv-frow__media,
	.lsv-frow--media-left .lsv-frow__media {
		align-self: start;
		min-height: 0;
		aspect-ratio: 16 / 9;
		border-radius: var(--lsv-radius) var(--lsv-radius) 0 0;
	}

	.lsv-checks--with-media {
		grid-template-columns: minmax(0, 1fr);
	}
	.lsv-checks__media {
		max-width: 520px;
		aspect-ratio: 4 / 3;
	}

	.lsv-card {
		padding: 32px;
	}

	.lsv-notice {
		padding: 32px;
	}
	.lsv-notice__head {
		grid-template-columns: auto minmax(0, 1fr);
	}
	.lsv-notice__action {
		grid-column: 2;
	}
	.lsv-notice__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lsv-cta {
		grid-template-columns: minmax(0, 1fr);
	}
	.lsv-cta__side {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		padding: 24px 0 0;
		border-top: 1px solid rgba(255, 255, 255, 0.3);
		border-left: 0;
	}
	.lsv-cta--light .lsv-cta__side {
		border-top-color: var(--lsv-line);
	}
}

@media (max-width: 767px) {
	.lsv-intro__title {
		font-size: 40px;
	}
	.lsv-chipbar {
		border-radius: var(--lsv-radius);
	}

	/* Pricing table → stacked cards */
	.lsv-ptable__card {
		overflow: visible;
		border: 0;
		border-radius: 0;
		background: transparent;
	}
	.lsv-ptable__table,
	.lsv-ptable__table tbody,
	.lsv-ptable__table tr,
	.lsv-ptable__table th,
	.lsv-ptable__table td {
		display: block;
		width: 100%;
	}
	.lsv-ptable__table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
	}
	.lsv-ptable__table tbody tr {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px 16px;
		margin-bottom: 15px;
		padding: 20px;
		border: 1px solid var(--lsv-line);
		border-radius: var(--lsv-radius);
		background: #fff;
	}
	.lsv-ptable__table tbody tr.is-popular {
		border-color: var(--lsv-accent);
		background: var(--lsv-accent-soft);
	}
	.lsv-ptable__table tbody tr > *,
	.lsv-ptable__table tbody tr + tr > *,
	.lsv-ptable__table th:first-child,
	.lsv-ptable__table td:first-child,
	.lsv-ptable__table th:last-child,
	.lsv-ptable__table td:last-child,
	.lsv-ptable__row.is-popular > *,
	.lsv-ptable__row.is-popular > :first-child,
	.lsv-ptable__row:hover > * {
		padding: 0;
		border: 0;
		background: transparent;
		box-shadow: none;
		text-align: left;
	}
	.lsv-ptable__table tbody .lsv-ptable__cell--name {
		display: flex;
		grid-column: 1 / -1;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		gap: 8px;
		padding-bottom: 12px;
		border-bottom: 1px solid var(--lsv-line-soft);
	}
	.lsv-ptable__cell--name .lsv-badge {
		margin: 0;
	}
	.lsv-ptable__table tbody .lsv-ptable__cell--price {
		grid-column: 1 / -1;
	}
	.lsv-ptable__table td[data-label]::before {
		content: attr(data-label);
		display: block;
		margin-bottom: 2px;
		font-size: 14px;
		line-height: 1.4;
		color: var(--lsv-muted);
	}
	.lsv-ptable__price {
		font-size: 24px;
	}
	.lsv-ptable__table td.lsv-ptable__cell--action {
		grid-column: 1 / -1;
		padding-top: 12px;
		border-top: 1px solid var(--lsv-line-soft);
		text-align: left;
	}
	.lsv-includes {
		padding: 20px;
	}

	.lsv .lsv-pkgs__tab {
		padding: 13px 18px;
	}

	.lsv-frow__title {
		font-size: 28px;
	}

	.lsv-steps {
		--lsv-gap: 20px;
	}

	.lsv-addons__list {
		grid-template-columns: minmax(0, 1fr);
	}

	.lsv-notice__title {
		font-size: 28px;
	}

	.lsv-cta__title {
		font-size: 30px;
	}
	.lsv-cta__price-value {
		font-size: 40px;
	}
}

@media (max-width: 575px) {
	.lsv-intro__title {
		font-size: 32px;
	}
	.lsv-chipbar {
		padding: 16px 20px;
	}
	.lsv-intro__media {
		padding: 0 12px;
	}
	.lsv-intro__badge {
		padding: 9px 14px 9px 9px;
	}
	.lsv-intro__badge-icon {
		width: 34px;
		height: 34px;
	}
	.lsv-intro__badge-text strong {
		font-size: 15px;
	}
	.lsv-intro__badge-text span {
		font-size: 12px;
	}
	.lsv-intro__badge--1 {
		top: 20px;
	}
	.lsv-intro__badge--2 {
		bottom: 20px;
	}

	.lsv-actions {
		width: 100%;
	}
	.lsv-actions .lsv-btn {
		flex: 1 1 auto;
		text-align: center;
	}

	.lsv-checklist--cols {
		grid-template-columns: minmax(0, 1fr);
	}

	.lsv-pkg {
		padding: 12px;
	}
	.lsv-pkg__summary {
		padding: 24px;
	}
	.lsv-pkg__price-value {
		font-size: 40px;
	}

	.lsv-frow,
	.lsv-frow--media-left {
		padding: 32px 22px 0;
	}
	.lsv-frow__title {
		font-size: 26px;
	}
	/* No arrows on phones (they mostly land at line ends); the numbers show the order */
	.lsv-flow {
		gap: 8px;
	}
	.lsv-flow__step:not(:last-child)::after {
		display: none;
	}

	.lsv-step {
		padding: 25px;
	}

	.lsv-checks__grid {
		grid-template-columns: minmax(0, 1fr);
	}
	.lsv-check {
		flex-direction: row;
		align-items: center;
		padding: 18px 20px;
	}
	.lsv-check__icon {
		width: 52px;
		height: 52px;
	}

	.lsv-card {
		padding: 25px;
	}
	.lsv-policy__stat {
		gap: 12px;
		padding: 18px 20px;
	}
	.lsv-policy__stat-value {
		font-size: 48px;
	}
	.lsv-policy__stat-label {
		font-size: 16px;
	}
	.lsv-policy__stat-icon {
		width: 42px;
		height: 42px;
	}
	.lsv-policy__stat-icon svg {
		width: 20px;
		height: 20px;
	}

	.lsv-notice {
		padding: 25px;
	}
	.lsv-notice__head {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
	}
	.lsv-notice__action {
		grid-column: 1;
	}
	.lsv-notice__icon {
		width: 56px;
		height: 56px;
	}
	.lsv-notice__title {
		font-size: 24px;
	}
	.lsv-notice__list {
		grid-template-columns: minmax(0, 1fr);
	}

	/* Same mobile sizes as the theme FAQ */
	.lsv-term__summary {
		padding: 20px;
	}
	.lsv-term__summary .lsv-term__title {
		font-size: 17px;
	}
	.lsv-term__chevron {
		width: 30px;
		height: 30px;
	}
	.lsv-terms--accordion .lsv-term__content {
		padding: 0 20px 18px;
		font-size: 14px;
		line-height: 28px;
	}
	.lsv-terms--grid {
		grid-template-columns: minmax(0, 1fr);
	}
	.lsv-terms--grid .lsv-term {
		padding: 20px;
	}

	.lsv-cta {
		padding: 36px 24px;
	}
	.lsv-cta__title {
		font-size: 28px;
	}
}

/* Very small phones: drop the decorative stat icon so the label has room */
@media (max-width: 400px) {
	.lsv-policy__stat-icon {
		display: none;
	}
}

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
	.lsv *,
	.lsv *::before,
	.lsv *::after {
		animation: none !important;
		transition: none !important;
	}
	.lsv .lsv-play:hover {
		transform: translate(-50%, -50%);
	}
}
