/* ThemeVisto main stylesheet. Custom page styles live here; vendor libraries remain separate. */

/* ==================== LEGACY AGENCY FOUNDATION ==================== */

/* 
  <link rel="preconnect" href="https://fonts.googleapis.com" />
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
  <link rel="preconnect" href="https://cdn.jsdelivr.net" />

  \3c !-- Fonts: Syne (display) + Inter (body) -->
  <link href="https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,400;14..32,500;14..32,600;14..32,700&display=swap" rel="stylesheet">
  
  \3c !-- Bootstrap 5.3 -->
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" />

  \3c !-- Bootstrap Icons -->
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" />

  \3c !-- AOS Animate On Scroll -->
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.css" />
*/

/* ============================================================
    DESIGN TOKENS
    Palette:
        --ink      #0D0F1A  (near-black navy)
        --deep     #111627  (section bg)
        --card     #181D2E  (card bg)
        --accent   #7C5CFC  (violet)
        --spark    #00E5C3  (teal spark – signature)
        --muted    #6B7280
        --border   rgba(255,255,255,.07)
        --white    #FFFFFF
============================================================ */
:where(body.tv-css-legacy) {
	--ink: #0d0f1a;
	--deep: #111627;
	--card: #181d2e;
	--accent: #7c5cfc;
	--spark: #00e5c3;
	--muted: #8892a4;
	--border: rgba(255, 255, 255, 0.07);
	--white: #ffffff;
	--font-display: "Inter", sans-serif;
	--font-body: "Inter", sans-serif;
	--radius: 14px;
	--transition: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

:where(body.tv-css-legacy) *,
:where(body.tv-css-legacy) *::before,
:where(body.tv-css-legacy) *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html:where(:has(body.tv-css-legacy)) {
	scroll-behavior: smooth;
}

body:where(.tv-css-legacy) {
	background: var(--ink) !important;
	color: var(--white) !important;
	font-family: var(--font-body) !important;
	font-size: 16px !important;
	line-height: 1.7 !important;
	-webkit-font-smoothing: antialiased !important;
}

:where(body.tv-css-legacy) h1,
:where(body.tv-css-legacy) h2,
:where(body.tv-css-legacy) h3,
:where(body.tv-css-legacy) h4,
:where(body.tv-css-legacy) h5,
:where(body.tv-css-legacy) h6 {
	font-family: var(--font-display) !important;
	line-height: 1.2 !important;
	color: var(--white) !important;
}

:where(body.tv-css-legacy) a {
	text-decoration: none !important;
	color: inherit !important;
}

:where(body.tv-css-legacy) img {
	max-width: 100%;
	height: auto;
	display: block;
}

/* ── Utility ── */
:where(body.tv-css-legacy) .text-accent {
	color: var(--accent) !important;
}
:where(body.tv-css-legacy) .text-spark {
	color: var(--spark) !important;
}
:where(body.tv-css-legacy) .text-muted-c {
	color: var(--muted) !important;
}
:where(body.tv-css-legacy) .bg-deep {
	background: var(--deep);
}
:where(body.tv-css-legacy) .bg-card {
	background: var(--card);
}

:where(body.tv-css-legacy) .section-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--spark);
	margin-bottom: 1rem;
}
:where(body.tv-css-legacy) .section-eyebrow::before {
	content: "";
	display: block;
	width: 28px;
	height: 2px;
	background: var(--spark);
	border-radius: 2px;
}

:where(body.tv-css-legacy) .section-title {
	font-size: clamp(1.9rem, 4vw, 2.8rem);
	font-weight: 800;
	margin-bottom: 1rem;
}
:where(body.tv-css-legacy) .section-sub {
	color: var(--muted);
	max-width: 580px;
	font-size: 1.05rem;
}

/* ── Buttons ── */
:where(body.tv-css-legacy) .btn-primary-glow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: linear-gradient(135deg, var(--accent), #5a3fd4);
	color: #fff;
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 0.92rem;
	padding: 13px 28px;
	border-radius: 50px;
	border: none;
	cursor: pointer;
	transition: var(--transition);
	box-shadow: 0 0 0 0 rgba(124, 92, 252, 0.4);
	white-space: nowrap;
}
:where(body.tv-css-legacy) .btn-primary-glow:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 30px rgba(124, 92, 252, 0.5);
	color: #fff;
}

:where(body.tv-css-legacy) .btn-outline-spark {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: transparent;
	color: var(--spark);
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 0.92rem;
	padding: 12px 28px;
	border-radius: 50px;
	border: 1.5px solid var(--spark);
	cursor: pointer;
	transition: var(--transition);
	white-space: nowrap;
}
:where(body.tv-css-legacy) .btn-outline-spark:hover {
	background: var(--spark);
	color: var(--ink);
	transform: translateY(-2px);
}

:where(body.tv-css-legacy) .btn-ghost-white {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: rgba(255, 255, 255, 0.07);
	color: #fff;
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 0.92rem;
	padding: 12px 28px;
	border-radius: 50px;
	border: 1.5px solid rgba(255, 255, 255, 0.15);
	cursor: pointer;
	transition: var(--transition);
	white-space: nowrap;
}
:where(body.tv-css-legacy) .btn-ghost-white:hover {
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
	transform: translateY(-2px);
}

/* ── TOP BAR ── */
:where(body.tv-css-legacy) #topbar {
	background: linear-gradient(90deg, #0a0c16, var(--accent));
	padding: 9px 0;
	font-size: 0.82rem;
}
:where(body.tv-css-legacy) #topbar a {
	color: rgba(255, 255, 255, 0.85);
	transition: color var(--transition);
}
:where(body.tv-css-legacy) #topbar a:hover {
	color: var(--spark);
}
:where(body.tv-css-legacy) .topbar-info {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	align-items: center;
}
:where(body.tv-css-legacy) .topbar-info span {
	display: flex;
	align-items: center;
	gap: 6px;
}
:where(body.tv-css-legacy) .topbar-socials a {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.2);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0.8rem;
	transition: var(--transition);
}
:where(body.tv-css-legacy) .topbar-socials a:hover {
	background: var(--spark);
	border-color: var(--spark);
	color: var(--ink);
}

/* ── HEADER / NAV ── */
:where(body.tv-css-legacy) #mainNav {
	background: rgba(13, 15, 26, 0.92);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border-bottom: 1px solid var(--border);
	padding: 14px 0;
	position: sticky;
	top: 0;
	z-index: 1000;
	transition:
		padding var(--transition),
		box-shadow var(--transition);
}
:where(body.tv-css-legacy) #mainNav.scrolled {
	padding: 10px 0;
	box-shadow: 0 4px 40px rgba(0, 0, 0, 0.4);
}

:where(body.tv-css-legacy) .navbar-brand {
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 800;
	color: var(--white) !important;
	display: flex;
	align-items: center;
	gap: 8px;
}
:where(body.tv-css-legacy) .brand-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--spark);
	display: inline-block;
	box-shadow: 0 0 10px var(--spark);
}

:where(body.tv-css-legacy) .navbar-nav .nav-link {
	color: rgba(255, 255, 255, 0.75) !important;
	font-weight: 500;
	font-size: 0.9rem;
	padding: 6px 14px !important;
	border-radius: 8px;
	transition: var(--transition);
}
:where(body.tv-css-legacy) .navbar-nav .nav-link:hover,
:where(body.tv-css-legacy) .navbar-nav .nav-link.active {
	color: #fff !important;
	background: rgba(255, 255, 255, 0.06);
}

:where(body.tv-css-legacy) .navbar-toggler {
	border: 1px solid rgba(255, 255, 255, 0.2);
	padding: 6px 10px;
}
:where(body.tv-css-legacy) .navbar-toggler-icon {
	filter: invert(1);
}

/* ── HERO ── */
:where(body.tv-css-legacy) #hero {
	position: relative;
	min-height: 100vh;
	display: flex;
	align-items: center;
	overflow: hidden;
	padding: 120px 0 80px;
}

/* Grid noise bg */
:where(body.tv-css-legacy) #hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 70% 60% at 70% 50%, rgba(124, 92, 252, 0.18) 0%, transparent 65%),
		radial-gradient(ellipse 50% 40% at 10% 80%, rgba(0, 229, 195, 0.1) 0%, transparent 60%),
		url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.03' stroke-width='1'%3E%3Cpath d='M0 0h60v60H0z'/%3E%3C/g%3E%3C/svg%3E");
	pointer-events: none;
}

:where(body.tv-css-legacy) .hero-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: rgba(0, 229, 195, 0.08);
	border: 1px solid rgba(0, 229, 195, 0.25);
	color: var(--spark);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 6px 16px;
	border-radius: 50px;
	margin-bottom: 1.5rem;
}
:where(body.tv-css-legacy) .hero-badge i {
	font-size: 0.8rem;
}

:where(body.tv-css-legacy) .hero-title {
	font-size: clamp(2.4rem, 5.5vw, 3.6rem);
	font-weight: 800;
	line-height: 1.12;
	margin-bottom: 1.5rem;
}
:where(body.tv-css-legacy) .hero-title .highlight {
	position: relative;
	display: inline-block;
	color: var(--accent);
}
:where(body.tv-css-legacy) .hero-title .highlight::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -4px;
	width: 100%;
	height: 3px;
	background: linear-gradient(90deg, var(--accent), var(--spark));
	border-radius: 2px;
}

:where(body.tv-css-legacy) .hero-desc {
	color: var(--muted);
	font-size: 1.1rem;
	max-width: 520px;
	margin-bottom: 2.2rem;
}

:where(body.tv-css-legacy) .hero-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 28px;
	margin-top: 2.8rem;
	padding-top: 2.8rem;
	border-top: 1px solid var(--border);
}
:where(body.tv-css-legacy) .hero-stat-num {
	font-family: var(--font-display);
	font-size: 2rem;
	font-weight: 800;
	color: var(--white);
	line-height: 1;
}
:where(body.tv-css-legacy) .hero-stat-num span {
	color: var(--spark);
}
:where(body.tv-css-legacy) .hero-stat-label {
	font-size: 0.8rem;
	color: var(--muted);
	margin-top: 3px;
}

/* Floating hero graphic */
:where(body.tv-css-legacy) .hero-visual {
	position: relative;
	z-index: 1;
}
:where(body.tv-css-legacy) .hero-visual-inner {
	background: var(--card);
	border: 1px solid var(--border);
	border-radius: 24px;
	padding: 24px;
	position: relative;
	box-shadow:
		0 40px 100px rgba(0, 0, 0, 0.5),
		0 0 0 1px var(--border);
}
:where(body.tv-css-legacy) .hero-visual-inner::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 32px;
	right: 32px;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--accent), var(--spark), transparent);
	border-radius: 2px;
}
:where(body.tv-css-legacy) .hero-browser-bar {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 16px;
}
:where(body.tv-css-legacy) .hero-browser-bar span {
	width: 11px;
	height: 11px;
	border-radius: 50%;
}
:where(body.tv-css-legacy) .dot-r {
	background: #ff5f57;
}
:where(body.tv-css-legacy) .dot-y {
	background: #ffbd2e;
}
:where(body.tv-css-legacy) .dot-g {
	background: #28ca42;
}
:where(body.tv-css-legacy) .mock-url {
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid var(--border);
	border-radius: 6px;
	padding: 5px 12px;
	font-size: 0.75rem;
	color: var(--muted);
	flex: 1;
}
:where(body.tv-css-legacy) .hero-mock-img {
	border-radius: 12px;
	overflow: hidden;
	background: linear-gradient(135deg, rgba(124, 92, 252, 0.2), rgba(0, 229, 195, 0.1));
	height: 240px;
	display: flex;
	align-items: center;
	justify-content: center;
}
:where(body.tv-css-legacy) .hero-mock-img .mock-icon {
	font-size: 3.5rem;
	color: rgba(255, 255, 255, 0.1);
}

:where(body.tv-css-legacy) .hero-float-badge {
	position: absolute;
	background: var(--card);
	border: 1px solid var(--border);
	border-radius: 12px;
	padding: 12px 16px;
	display: flex;
	align-items: center;
	gap: 10px;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4);
	white-space: nowrap;
	animation: floatY 3s ease-in-out infinite alternate;
}
@keyframes floatY {
	from {
		transform: translateY(0);
	}
	to {
		transform: translateY(-8px);
	}
}
:where(body.tv-css-legacy) .badge-top-right {
	top: -18px;
	right: -20px;
	animation-delay: 0.5s;
}
:where(body.tv-css-legacy) .badge-bottom-left {
	bottom: -18px;
	left: -20px;
	animation-delay: 0s;
}
:where(body.tv-css-legacy) .badge-icon {
	width: 36px;
	height: 36px;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1rem;
}
:where(body.tv-css-legacy) .bg-violet {
	background: rgba(124, 92, 252, 0.2);
	color: var(--accent);
}
:where(body.tv-css-legacy) .bg-teal {
	background: rgba(0, 229, 195, 0.15);
	color: var(--spark);
}

/* ── SERVICES ── */
:where(body.tv-css-legacy) .service-card {
	background: var(--card);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: 32px 28px;
	height: 100%;
	transition: var(--transition);
	position: relative;
	overflow: hidden;
}
:where(body.tv-css-legacy) .service-card::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: var(--radius);
	background: linear-gradient(135deg, rgba(124, 92, 252, 0.08), transparent);
	opacity: 0;
	transition: var(--transition);
}
:where(body.tv-css-legacy) .service-card:hover {
	border-color: rgba(124, 92, 252, 0.4);
	transform: translateY(-6px);
	box-shadow: 0 20px 60px rgba(124, 92, 252, 0.15);
}
:where(body.tv-css-legacy) .service-card:hover::after {
	opacity: 1;
}

:where(body.tv-css-legacy) .service-icon {
	width: 54px;
	height: 54px;
	border-radius: 14px;
	background: rgba(124, 92, 252, 0.12);
	border: 1px solid rgba(124, 92, 252, 0.2);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.4rem;
	color: var(--accent);
	margin-bottom: 18px;
	transition: var(--transition);
}
:where(body.tv-css-legacy) .service-card:hover .service-icon {
	background: var(--accent);
	color: #fff;
	box-shadow: 0 6px 20px rgba(124, 92, 252, 0.4);
}
:where(body.tv-css-legacy) .service-card h5 {
	font-size: 1.05rem;
	margin-bottom: 10px;
	font-family: var(--font-display);
}
:where(body.tv-css-legacy) .service-card p {
	font-size: 0.88rem;
	color: var(--muted);
	line-height: 1.65;
}

/* ── HOW IT WORKS ── */
:where(body.tv-css-legacy) .step-card {
	background: var(--card);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: 32px;
	text-align: center;
	position: relative;
}
:where(body.tv-css-legacy) .step-num {
	font-family: var(--font-display);
	font-size: 3.5rem;
	font-weight: 800;
	background: linear-gradient(135deg, var(--accent), var(--spark));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	line-height: 1;
	margin-bottom: 16px;
}
:where(body.tv-css-legacy) .step-arrow {
	position: absolute;
	top: 50%;
	right: -18px;
	transform: translateY(-50%);
	color: var(--accent);
	font-size: 1.4rem;
	z-index: 2;
}

/* ── PORTFOLIO ── */
:where(body.tv-css-legacy) #portfolio {
	background: var(--deep);
}
:where(body.tv-css-legacy) .portfolio-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
	margin-bottom: 3rem;
}
:where(body.tv-css-legacy) .filter-btn {
	padding: 8px 20px;
	border-radius: 50px;
	border: 1px solid var(--border);
	background: transparent;
	color: var(--muted);
	font-size: 0.85rem;
	font-weight: 500;
	cursor: pointer;
	transition: var(--transition);
}
:where(body.tv-css-legacy) .filter-btn.active,
:where(body.tv-css-legacy) .filter-btn:hover {
	background: var(--accent);
	border-color: var(--accent);
	color: #fff;
}

:where(body.tv-css-legacy) .portfolio-card {
	background: var(--card);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	overflow: hidden;
	position: relative;
	height: 100%;
	transition: var(--transition);
}
:where(body.tv-css-legacy) .portfolio-card:hover {
	border-color: rgba(124, 92, 252, 0.4);
	transform: translateY(-6px);
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4);
}
:where(body.tv-css-legacy) .portfolio-thumb {
	position: relative;
	height: 220px;
	overflow: hidden;
}
:where(body.tv-css-legacy) .portfolio-thumb-inner {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 3rem;
	transition: transform var(--transition);
}
:where(body.tv-css-legacy) .portfolio-card:hover .portfolio-thumb-inner {
	transform: scale(1.06);
}

:where(body.tv-css-legacy) .portfolio-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(13, 15, 26, 0) 0%, rgba(124, 92, 252, 0.7) 100%);
	opacity: 0;
	display: flex;
	align-items: flex-end;
	padding: 20px;
	transition: opacity var(--transition);
}
:where(body.tv-css-legacy) .portfolio-card:hover .portfolio-overlay {
	opacity: 1;
}

:where(body.tv-css-legacy) .portfolio-body {
	padding: 20px 22px;
}
:where(body.tv-css-legacy) .portfolio-cat {
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--spark);
	margin-bottom: 6px;
}
:where(body.tv-css-legacy) .portfolio-title {
	font-family: var(--font-display);
	font-size: 1rem;
	font-weight: 700;
	margin-bottom: 14px;
}
:where(body.tv-css-legacy) .portfolio-view-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--accent);
	transition: gap var(--transition);
	border: none;
	background: none;
	cursor: pointer;
	padding: 0;
}
:where(body.tv-css-legacy) .portfolio-view-btn:hover {
	gap: 10px;
}

/* ── ABOUT ── */
:where(body.tv-css-legacy) #about {
	background: var(--deep);
}
:where(body.tv-css-legacy) .about-img-wrap {
	position: relative;
}
:where(body.tv-css-legacy) .about-main-card {
	background: var(--card);
	border: 1px solid var(--border);
	border-radius: 20px;
	height: 380px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	position: relative;
}
:where(body.tv-css-legacy) .about-main-card::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(124, 92, 252, 0.15), rgba(0, 229, 195, 0.08));
}
:where(body.tv-css-legacy) .about-float-box {
	position: absolute;
	bottom: -20px;
	right: -20px;
	background: var(--accent);
	color: #fff;
	border-radius: 16px;
	padding: 18px 22px;
	text-align: center;
	box-shadow: 0 16px 40px rgba(124, 92, 252, 0.4);
}
:where(body.tv-css-legacy) .about-float-num {
	font-family: var(--font-display);
	font-size: 2rem;
	font-weight: 800;
	line-height: 1;
}
:where(body.tv-css-legacy) .about-float-label {
	font-size: 0.78rem;
	opacity: 0.85;
	margin-top: 2px;
}

:where(body.tv-css-legacy) .skill-bar-wrap {
	margin-bottom: 16px;
}
:where(body.tv-css-legacy) .skill-bar-top {
	display: flex;
	justify-content: space-between;
	font-size: 0.83rem;
	margin-bottom: 6px;
}
:where(body.tv-css-legacy) .skill-bar-track {
	height: 6px;
	border-radius: 4px;
	background: rgba(255, 255, 255, 0.06);
}
:where(body.tv-css-legacy) .skill-bar-fill {
	height: 100%;
	border-radius: 4px;
	background: linear-gradient(90deg, var(--accent), var(--spark));
	transition: width 1.2s cubic-bezier(0.4, 0, 0.2, 1);
	width: 0;
}

/* ── SPECIALITIES ── */
:where(body.tv-css-legacy) .spec-card {
	background: var(--card);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: 30px;
	text-align: center;
	height: 100%;
	transition: var(--transition);
}
:where(body.tv-css-legacy) .spec-card:hover {
	border-color: rgba(0, 229, 195, 0.35);
	box-shadow:
		0 0 0 1px rgba(0, 229, 195, 0.15),
		0 16px 50px rgba(0, 0, 0, 0.3);
	transform: translateY(-4px);
}
:where(body.tv-css-legacy) .spec-icon {
	font-size: 2.2rem;
	color: var(--spark);
	margin-bottom: 14px;
	display: block;
}
:where(body.tv-css-legacy) .spec-card h6 {
	font-family: var(--font-display);
	font-size: 0.95rem;
	font-weight: 700;
	margin-bottom: 8px;
}
:where(body.tv-css-legacy) .spec-card p {
	font-size: 0.82rem;
	color: var(--muted);
	line-height: 1.6;
}

/* ── TESTIMONIALS ── */
:where(body.tv-css-legacy) #testimonials {
	background: var(--ink);
}
:where(body.tv-css-legacy) .testi-card {
	background: var(--card);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: 32px 28px;
	height: 100%;
	transition: var(--transition);
}
:where(body.tv-css-legacy) .testi-card:hover {
	border-color: rgba(124, 92, 252, 0.3);
}
:where(body.tv-css-legacy) .testi-stars {
	color: #ffb800;
	font-size: 0.88rem;
	margin-bottom: 12px;
}
:where(body.tv-css-legacy) .testi-text {
	font-size: 0.9rem;
	color: rgba(255, 255, 255, 0.8);
	line-height: 1.75;
	font-style: italic;
	margin-bottom: 20px;
}
:where(body.tv-css-legacy) .testi-avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--accent), var(--spark));
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1rem;
	font-weight: 700;
	font-family: var(--font-display);
	flex-shrink: 0;
}
:where(body.tv-css-legacy) .testi-name {
	font-weight: 600;
	font-size: 0.9rem;
}
:where(body.tv-css-legacy) .testi-role {
	font-size: 0.78rem;
	color: var(--muted);
}

/* ── CTA SECTION ── */
:where(body.tv-css-legacy) #cta-section {
	background: linear-gradient(135deg, #0f0827 0%, #0a1f1b 100%);
	position: relative;
	overflow: hidden;
}
:where(body.tv-css-legacy) #cta-section::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 60% 80% at 80% 50%, rgba(124, 92, 252, 0.15) 0%, transparent 65%),
		radial-gradient(ellipse 40% 60% at 20% 50%, rgba(0, 229, 195, 0.08) 0%, transparent 60%);
	pointer-events: none;
}

/* ── CONTACT ── */
:where(body.tv-css-legacy:not(.woocommerce-checkout)) #contact {
	background: var(--deep);
}
:where(body.tv-css-legacy) .contact-form-wrap {
	background: var(--card);
	border: 1px solid var(--border);
	border-radius: 20px;
	padding: 40px 36px;
}
:where(body.tv-css-legacy) .form-label {
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.7);
	margin-bottom: 6px;
}
:where(body.tv-css-legacy) .form-control,
:where(body.tv-css-legacy) .form-select {
	background: rgba(255, 255, 255, 0.05) !important;
	border: 1px solid var(--border) !important;
	color: #fff !important;
	border-radius: 10px !important;
	padding: 13px 16px !important;
	font-size: 0.9rem !important;
	transition: border-color var(--transition) !important;
}
:where(body.tv-css-legacy) .form-control::placeholder {
	color: rgba(255, 255, 255, 0.3) !important;
}
:where(body.tv-css-legacy) .form-control:focus,
:where(body.tv-css-legacy) .form-select:focus {
	border-color: var(--accent) !important;
	box-shadow: 0 0 0 3px rgba(124, 92, 252, 0.15) !important;
}
:where(body.tv-css-legacy) .form-select option {
	background: #1a1f35;
}

:where(body.tv-css-legacy) .contact-info-item {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 20px 0;
	border-bottom: 1px solid var(--border);
}
:where(body.tv-css-legacy) .contact-info-item:last-child {
	border-bottom: none;
}
:where(body.tv-css-legacy) .contact-info-icon {
	width: 46px;
	height: 46px;
	border-radius: 12px;
	background: rgba(124, 92, 252, 0.12);
	border: 1px solid rgba(124, 92, 252, 0.2);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1rem;
	color: var(--accent);
	flex-shrink: 0;
}

/* ── FOOTER ── */
:where(body.tv-css-legacy) footer {
	background: #080a12;
	padding-top: 70px;
	border-top: 1px solid var(--border);
}
:where(body.tv-css-legacy) .footer-brand {
	font-family: var(--font-display);
	font-size: 1.4rem;
	font-weight: 800;
	color: var(--white);
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 14px;
}
:where(body.tv-css-legacy) .footer-desc {
	font-size: 0.88rem;
	color: var(--muted);
	line-height: 1.75;
}
:where(body.tv-css-legacy) .footer-heading {
	font-family: var(--font-display);
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.5);
	margin-bottom: 16px;
}
:where(body.tv-css-legacy) .footer-links {
	list-style: none;
	padding: 0;
}
:where(body.tv-css-legacy) .footer-links li {
	margin-bottom: 10px;
}
:where(body.tv-css-legacy) .footer-links a {
	font-size: 0.88rem;
	color: var(--muted);
	transition: color var(--transition);
}
:where(body.tv-css-legacy) .footer-links a:hover {
	color: var(--spark);
}
:where(body.tv-css-legacy) .footer-bottom {
	border-top: 1px solid var(--border);
	margin-top: 50px;
	padding: 22px 0;
	font-size: 0.82rem;
	color: var(--muted);
}
:where(body.tv-css-legacy) .footer-social a {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1px solid var(--border);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--muted);
	transition: var(--transition);
}
:where(body.tv-css-legacy) .footer-social a:hover {
	background: var(--accent);
	border-color: var(--accent);
	color: #fff;
}

/* ── MISC ── */
:where(body.tv-css-legacy) .divider-glow {
	width: 60px;
	height: 3px;
	background: linear-gradient(90deg, var(--accent), var(--spark));
	border-radius: 2px;
	margin-bottom: 1.5rem;
}

/* Back to top */
:where(body.tv-css-legacy) #backToTop {
	position: fixed;
	bottom: 28px;
	right: 28px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--accent);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1rem;
	cursor: pointer;
	opacity: 0;
	pointer-events: none;
	transition:
		opacity var(--transition),
		transform var(--transition);
	z-index: 9999;
	border: none;
	box-shadow: 0 4px 20px rgba(124, 92, 252, 0.5);
}
:where(body.tv-css-legacy) #backToTop.visible {
	opacity: 1;
	pointer-events: all;
}
:where(body.tv-css-legacy) #backToTop:hover {
	transform: scale(1.1);
}

/* Form alert */
:where(body.tv-css-legacy) .form-success {
	background: rgba(0, 229, 195, 0.1);
	border: 1px solid rgba(0, 229, 195, 0.3);
	color: var(--spark);
	border-radius: 10px;
	padding: 14px 18px;
	font-size: 0.88rem;
	display: none;
	margin-top: 14px;
}

/* Responsive */
@media (max-width: 991.98px) {
	:where(body.tv-css-legacy) .step-arrow {
		display: none;
	}
	:where(body.tv-css-legacy) #hero {
		padding: 80px 0 60px;
		min-height: auto;
	}
	:where(body.tv-css-legacy) .hero-visual {
		margin-top: 50px;
	}
	:where(body.tv-css-legacy) .badge-top-right,
	:where(body.tv-css-legacy) .badge-bottom-left {
		display: none;
	}
}
@media (max-width: 767.98px) {
	:where(body.tv-css-legacy) .topbar-info {
		justify-content: center;
	}
	:where(body.tv-css-legacy) .section-title {
		font-size: 1.75rem;
	}
	:where(body.tv-css-legacy) .contact-form-wrap {
		padding: 26px 20px;
	}
}

/* Section spacing */
:where(body.tv-css-legacy) section {
	padding: 90px 0;
}

/* ==================== SHOP, CART AND ACCOUNT ==================== */
/* ============================================================
   ThemeVisto marketplace — premium catalog design system.
   Used on the marketplace homepage template and every WooCommerce
   page (shop archive, single product, cart, checkout, account);
   the agency homepage's own dark navy/violet/teal system in
   style.css is untouched.

   Tokens are defined on :root, not scoped to .tv-mp, because the
   real shop archive and single-product pages render through
   WooCommerce's own default templates with no .tv-mp wrapper at
   all — a var() with no defining ancestor resolves to nothing.
   They're prefixed --tv- specifically so they never collide with
   the parent style.css, which already defines its own --ink and
   --accent globally on :root, at completely different values, for
   the agency homepage.
============================================================ */

:where(body.tv-css-marketplace) {
	--tv-paper: #fafaf9;
	--tv-surface: #ffffff;
	--tv-ink: #1c1917;
	--tv-ink-soft: #57534e;
	--tv-faint: #8b8681;
	--tv-line: rgba(28, 25, 23, 0.11);
	--tv-line-2: rgba(28, 25, 23, 0.22);
	--tv-accent: #a16207;
	--tv-accent-ink: #5c3a05;
	--tv-accent-bg: #fbf0dc;
	--tv-good: #1f6b4e;
	--tv-good-bg: #e5f0ea;

	--tv-display: "Bricolage Grotesque", "Helvetica Neue", Arial, sans-serif;
	--tv-body-font: "IBM Plex Sans", -apple-system, sans-serif;
	--tv-mono: "IBM Plex Mono", "SF Mono", Menlo, monospace;

	--tv-measure: 62ch;
	--tv-shell: 1200px;
	--tv-radius: 15px;
}

:where(body.tv-css-marketplace) .tv-mp {
	background: var(--tv-paper);
	color: var(--tv-ink);
	font-family: var(--tv-body-font);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

:where(body.tv-css-marketplace) .tv-mp * {
	box-sizing: border-box;
}
:where(body.tv-css-marketplace) .tv-mp h1,
:where(body.tv-css-marketplace) .tv-mp h2,
:where(body.tv-css-marketplace) .tv-mp h3,
:where(body.tv-css-marketplace) .tv-mp h4 {
	font-family: var(--tv-display);
	font-weight: 700;
	letter-spacing: -0.01em;
	text-wrap: balance;
	margin: 0;
	line-height: 1.15;
	/* the parent theme's style.css forces h1-h6 to white with !important */
	color: var(--tv-ink) !important;
}
:where(body.tv-css-marketplace) .tv-mp p {
	margin: 0;
}
:where(body.tv-css-marketplace) .tv-mp a {
	color: inherit;
	text-decoration: none;
}
:where(body.tv-css-marketplace) .tv-mp ::selection {
	background: var(--tv-accent);
	color: #fff;
}
:where(body.tv-css-marketplace) .tv-mp a:focus-visible,
:where(body.tv-css-marketplace) .tv-mp button:focus-visible,
:where(body.tv-css-marketplace) .tv-mp [tabindex]:focus-visible {
	outline: 2px solid var(--tv-accent);
	outline-offset: 2px;
}
:where(body.tv-css-marketplace) .tv-mp .mono {
	font-family: var(--tv-mono);
	font-variant-numeric: tabular-nums;
}
:where(body.tv-css-marketplace) .tv-mp .shell {
	max-width: var(--tv-shell);
	margin: 0 auto;
	padding: 0 32px;
}
:where(body.tv-css-marketplace) .tv-mp .eyebrow {
	font-family: var(--tv-mono);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--tv-faint);
}

/* ---------- buttons ---------- */

:where(body.tv-css-marketplace) .tv-mp .btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--tv-body-font);
	font-weight: 600;
	font-size: 14.5px;
	padding: 13px 24px;
	border-radius: var(--tv-radius);
	border: 1.5px solid var(--tv-ink);
	cursor: pointer;
	transition: 0.15s ease;
}
:where(body.tv-css-marketplace) .tv-mp .btn-solid {
	background: var(--tv-ink);
	color: var(--tv-paper) !important;
}
:where(body.tv-css-marketplace) .tv-mp .btn-solid:hover {
	background: var(--tv-accent);
	border-color: var(--tv-accent);
}
:where(body.tv-css-marketplace) .tv-mp .btn-line {
	background: transparent;
	color: var(--tv-ink) !important;
}
:where(body.tv-css-marketplace) .tv-mp .btn-line:hover {
	background: var(--tv-ink);
	color: var(--tv-paper) !important;
}

/* ---------- nav ---------- */

:where(body.tv-css-marketplace) .site-nav {
	position: sticky;
	top: 0;
	z-index: 40;
	background: var(--tv-paper);
	border-bottom: 1px solid var(--tv-line);
}
:where(body.tv-css-marketplace) .site-nav .shell {
	height: 68px;
	display: flex;
	align-items: center;
	gap: 32px;
}
:where(body.tv-css-marketplace) .wordmark {
	font-family: var(--tv-display);
	font-weight: 800;
	font-size: 19px;
	letter-spacing: -0.01em;
}
:where(body.tv-css-marketplace) .nav-links {
	display: flex;
	gap: 26px;
	margin-left: 8px;
}
:where(body.tv-css-marketplace) .nav-links a {
	font-size: 14px;
	font-weight: 500;
	color: var(--tv-ink-soft) !important;
}
:where(body.tv-css-marketplace) .nav-links a:hover,
:where(body.tv-css-marketplace) .nav-links a.active {
	color: var(--tv-ink) !important;
}
:where(body.tv-css-marketplace) .nav-right {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 20px;
}
:where(body.tv-css-marketplace) .nav-contact {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-family: var(--tv-mono);
	font-size: 12.5px;
	color: var(--tv-ink-soft) !important;
	border: 1px solid var(--tv-line);
	border-radius: var(--tv-radius);
	padding: 7px 13px;
	transition:
		border-color 0.15s ease,
		color 0.15s ease;
}
:where(body.tv-css-marketplace) .nav-contact svg {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
}
:where(body.tv-css-marketplace) .nav-contact:hover {
	border-color: var(--tv-ink);
	color: var(--tv-ink) !important;
}
:where(body.tv-css-marketplace) .nav-cart {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--tv-ink);
	color: var(--tv-paper) !important;
	padding: 9px 16px;
	border-radius: var(--tv-radius);
	font-size: 13px;
	font-weight: 600;
}

/* ---------- hero ---------- */

:where(body.tv-css-marketplace) .tv-mp .hero {
	border-bottom: 1px solid var(--tv-line);
	padding: 76px 0 60px;
	text-align: center;
}
:where(body.tv-css-marketplace) .tv-mp .hero-inner {
	max-width: 720px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
}
:where(body.tv-css-marketplace) .tv-mp .hero h1 {
	font-size: clamp(28px, 3.4vw, 40px);
}
:where(body.tv-css-marketplace) .tv-mp .hero h1 .accent-word {
	color: var(--tv-accent);
}
:where(body.tv-css-marketplace) .tv-mp .hero .desc {
	color: var(--tv-ink-soft);
	font-size: 16px;
	max-width: 48ch;
}

:where(body.tv-css-marketplace) .tv-mp .search-wrap {
	position: relative;
	width: 100%;
	max-width: 560px;
	margin-top: 8px;
}
:where(body.tv-css-marketplace) .tv-mp .search-box {
	display: flex;
	align-items: center;
	gap: 10px;
	background: var(--tv-surface);
	border: 1.5px solid var(--tv-ink);
	border-radius: var(--tv-radius);
	padding: 4px 4px 4px 18px;
	overflow: hidden;
}
:where(body.tv-css-marketplace) .tv-mp .search-box input {
	flex: 1;
	border: none;
	outline: none;
	background: transparent;
	font-family: var(--tv-body-font);
	font-size: 15px;
	color: var(--tv-ink);
	padding: 12px 0;
}
:where(body.tv-css-marketplace) .tv-mp .search-box input::placeholder {
	color: var(--tv-faint);
}
:where(body.tv-css-marketplace) .tv-mp .search-box button {
	font-family: var(--tv-body-font);
	font-weight: 600;
	font-size: 13.5px;
	background: var(--tv-ink);
	color: var(--tv-paper);
	border: none;
	padding: 12px 20px;
	cursor: pointer;
	border-radius: calc(var(--tv-radius) - 4px);
}
:where(body.tv-css-marketplace) .tv-mp .search-suggest {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(100% + 6px);
	background: var(--tv-surface);
	border: 1px solid var(--tv-line);
	border-radius: var(--tv-radius);
	overflow: hidden;
	text-align: left;
	box-shadow: 0 12px 30px rgba(20, 22, 26, 0.1);
	z-index: 10;
}
:where(body.tv-css-marketplace) .tv-mp .search-suggest__row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 16px;
	border-top: 1px solid var(--tv-line);
	font-size: 14px;
	cursor: pointer;
}
:where(body.tv-css-marketplace) .tv-mp .search-suggest__row:first-child {
	border-top: none;
}
:where(body.tv-css-marketplace) .tv-mp .search-suggest__row:hover {
	background: var(--tv-paper);
}
:where(body.tv-css-marketplace) .tv-mp .search-suggest__glyph {
	width: 30px;
	height: 30px;
	flex-shrink: 0;
	background: linear-gradient(135deg, #f3e4c4, #efede8);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--tv-display);
	font-weight: 800;
	font-size: 11px;
	color: rgba(28, 25, 23, 0.3);
}
:where(body.tv-css-marketplace) .tv-mp .search-suggest__meta {
	color: var(--tv-faint);
	font-size: 12px;
	margin-left: auto;
	font-family: var(--tv-mono);
}
:where(body.tv-css-marketplace) .tv-mp .search-suggest__empty {
	padding: 14px 16px;
	font-size: 13.5px;
	color: var(--tv-faint);
}

:where(body.tv-css-marketplace) .tv-mp .hero-trust {
	display: flex;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
	justify-content: center;
	margin-top: 2px;
	font-family: var(--tv-mono);
	font-size: 12.5px;
	color: var(--tv-ink-soft);
}
:where(body.tv-css-marketplace) .tv-mp .hero-trust b {
	color: var(--tv-ink);
	font-weight: 600;
}
:where(body.tv-css-marketplace) .tv-mp .hero-trust .stars {
	color: var(--tv-accent);
	letter-spacing: 1px;
}
:where(body.tv-css-marketplace) .tv-mp .hero-trust .sep {
	color: var(--tv-faint);
}

:where(body.tv-css-marketplace) .tv-mp .quick-tags {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	justify-content: center;
	margin-top: 4px;
}
:where(body.tv-css-marketplace) .tv-mp .quick-tags a {
	font-size: 13px;
	font-family: var(--tv-mono);
	color: var(--tv-ink-soft) !important;
	border: 1px solid var(--tv-line);
	padding: 6px 13px;
}
:where(body.tv-css-marketplace) .tv-mp .quick-tags a:hover {
	border-color: var(--tv-ink);
	color: var(--tv-ink) !important;
}

/* ---------- generic section ---------- */

:where(body.tv-css-marketplace) .tv-mp section.block {
	padding: 68px 0;
	border-bottom: 1px solid var(--tv-line);
}
:where(body.tv-css-marketplace) .tv-mp #categories,
:where(body.tv-css-marketplace) .tv-mp #hire {
	background: var(--tv-surface);
}
:where(body.tv-css-marketplace) .tv-mp .block-head {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 34px;
}
:where(body.tv-css-marketplace) .tv-mp .block-head h2 {
	font-size: clamp(24px, 2.4vw, 30px);
}
:where(body.tv-css-marketplace) .tv-mp .block-head p {
	color: var(--tv-ink-soft);
	max-width: var(--tv-measure);
	font-size: 15.5px;
}
:where(body.tv-css-marketplace) .tv-mp .block-head-row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
}

/* ---------- categories ---------- */

:where(body.tv-css-marketplace) .tv-mp .cat-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 16px;
}
:where(body.tv-css-marketplace) .tv-mp .cat-tile {
	background: var(--tv-surface);
	border: 1px solid var(--tv-line);
	border-radius: var(--tv-radius);
	padding: 26px 18px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-items: flex-start;
	transition:
		background 0.16s ease,
		transform 0.16s ease,
		border-color 0.16s ease;
}
:where(body.tv-css-marketplace) .tv-mp .cat-tile:hover {
	background: var(--tv-accent-bg);
	border-color: var(--tv-accent);
	transform: translateY(-2px);
}
:where(body.tv-css-marketplace) .tv-mp .cat-tile__glyph {
	width: 54px;
	height: 54px;
	color: var(--tv-accent-ink);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: color 0.16s ease;
}
:where(body.tv-css-marketplace) .tv-mp .cat-tile__glyph svg {
	width: 28px;
	height: 28px;
}
:where(body.tv-css-marketplace) .tv-mp .cat-tile:hover .cat-tile__glyph {
	color: var(--tv-ink);
}
:where(body.tv-css-marketplace) .tv-mp .cat-tile h4 {
	font-size: 14.5px;
	font-weight: 600;
	font-family: var(--tv-body-font);
}
:where(body.tv-css-marketplace) .tv-mp .cat-tile .count {
	font-family: var(--tv-mono);
	font-size: 12px;
	color: var(--tv-faint);
}

/* ---------- product grid + card (also used by the real WooCommerce loop) ---------- */

:where(body.tv-css-marketplace) .tv-mp .products-grid,
:where(body.tv-css-marketplace) ul.products {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
	list-style: none;
	margin: 0 0 40px !important;
	padding: 0 !important;
}
@media (max-width: 900px) {
	:where(body.tv-css-marketplace) .tv-mp .products-grid,
	:where(body.tv-css-marketplace) ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 560px) {
	:where(body.tv-css-marketplace) .tv-mp .products-grid,
	:where(body.tv-css-marketplace) ul.products {
		grid-template-columns: 1fr;
	}
}

:where(body.tv-css-marketplace) .p-card {
	/* WooCommerce's own core stylesheet sets an explicit width + float on
	   .products li.product for its default multi-column layout — without
	   overriding both here, a card can render narrower than its actual
	   grid cell, floating left inside it with visible empty space around it. */
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	background: var(--tv-surface);
	border: 1px solid var(--tv-line);
	border-radius: var(--tv-radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	position: relative;
	transition:
		box-shadow 0.18s ease,
		transform 0.18s ease,
		border-color 0.18s ease;
	list-style: none;
}
:where(body.tv-css-marketplace) .p-card:hover {
	border-color: var(--tv-line-2);
	z-index: 2;
	box-shadow: 0 14px 32px rgba(28, 25, 23, 0.13);
	transform: translateY(-3px);
}
:where(body.tv-css-marketplace) .p-card__link {
	display: flex;
	flex-direction: column;
	color: inherit;
}
:where(body.tv-css-marketplace) .p-card__thumb {
	height: 148px;
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, #f3e4c4, #efede8);
	display: flex;
	align-items: center;
	justify-content: center;
}
:where(body.tv-css-marketplace) .p-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
:where(body.tv-css-marketplace) .p-card__glyph {
	font-family: var(--tv-display);
	font-weight: 800;
	font-size: 24px;
	color: rgba(28, 25, 23, 0.16);
}
:where(body.tv-css-marketplace) .p-card__cat {
	position: absolute;
	top: 10px;
	left: 10px;
	font-family: var(--tv-mono);
	font-size: 10px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	background: var(--tv-surface);
	border: 1px solid var(--tv-line);
	color: var(--tv-ink-soft);
	padding: 4px 10px;
}
:where(body.tv-css-marketplace) .p-card__body {
	padding: 18px 18px 16px;
	display: flex;
	flex-direction: column;
	gap: 9px;
}
:where(body.tv-css-marketplace) .p-card__title {
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.35;
}
:where(body.tv-css-marketplace) .p-card__meta {
	display: flex;
	align-items: center;
	gap: 7px;
	font-size: 12px;
	color: var(--tv-faint);
}
:where(body.tv-css-marketplace) .p-card__count {
	color: var(--tv-faint);
}
:where(body.tv-css-marketplace) .p-card__price-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-top: 3px;
	padding-top: 9px;
	border-top: 1px solid var(--tv-line);
}
:where(body.tv-css-marketplace) .p-card__price {
	font-family: var(--tv-mono);
	font-weight: 600;
	font-size: 16.5px;
	color: var(--tv-ink);
}
:where(body.tv-css-marketplace) .p-card__price ins {
	text-decoration: none;
}
:where(body.tv-css-marketplace) .p-card__price del {
	opacity: 0.55;
	font-size: 0.85em;
}

:where(body.tv-css-marketplace) .p-card__actions {
	display: flex;
	gap: 8px;
	margin-top: auto;
	padding: 0 18px 18px;
}
:where(body.tv-css-marketplace) .p-card__preview {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--tv-ink) !important;
	background: transparent;
	border: 1px solid var(--tv-line);
	border-radius: var(--tv-radius);
	padding: 10px 12px;
	transition:
		border-color 0.15s ease,
		background 0.15s ease;
}
:where(body.tv-css-marketplace) .p-card__preview:hover {
	border-color: var(--tv-ink);
	background: var(--tv-paper);
}

/* WooCommerce's own add-to-cart button, restyled to match the card system */
:where(body.tv-css-marketplace) .p-card .add_to_cart_button,
:where(body.tv-css-marketplace) .p-card .ajax_add_to_cart {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--tv-ink) !important;
	color: var(--tv-paper) !important;
	border: 1px solid var(--tv-ink) !important;
	border-radius: var(--tv-radius) !important;
	font-family: var(--tv-body-font) !important;
	font-weight: 600 !important;
	font-size: 12.5px !important;
	padding: 10px 16px !important;
	text-align: center;
	transition: background 0.15s ease;
}
:where(body.tv-css-marketplace) .p-card .add_to_cart_button:hover {
	background: var(--tv-accent) !important;
	border-color: var(--tv-accent) !important;
}
:where(body.tv-css-marketplace) .p-card .added_to_cart {
	font-size: 11px;
	color: var(--tv-good);
	font-family: var(--tv-mono);
	display: block;
	text-align: center;
	margin-top: 6px;
	width: 100%;
}

/* WooCommerce's star-rating output */
:where(body.tv-css-marketplace) .p-card .star-rating,
:where(body.tv-css-marketplace) .tv-mp .star-rating {
	font-size: 13px;
	letter-spacing: 1px;
	color: var(--tv-line-2);
	overflow: hidden;
	position: relative;
	height: 1em;
	line-height: 1;
}
:where(body.tv-css-marketplace) .p-card .star-rating::before,
:where(body.tv-css-marketplace) .tv-mp .star-rating::before {
	content: "\2605\2605\2605\2605\2605";
	color: var(--tv-line-2);
	letter-spacing: 1px;
	position: absolute;
	top: 0;
	left: 0;
}
:where(body.tv-css-marketplace) .p-card .star-rating span,
:where(body.tv-css-marketplace) .tv-mp .star-rating span {
	overflow: hidden;
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
}
:where(body.tv-css-marketplace) .p-card .star-rating span::before,
:where(body.tv-css-marketplace) .tv-mp .star-rating span::before {
	content: "\2605\2605\2605\2605\2605";
	color: var(--tv-accent);
	letter-spacing: 1px;
	position: absolute;
	top: 0;
	left: 0;
}

/* ---------- services ---------- */

:where(body.tv-css-marketplace) .tv-mp .services-list {
	display: flex;
	flex-direction: column;
}
:where(body.tv-css-marketplace) .tv-mp .svc-row {
	display: grid;
	grid-template-columns: 40px 1fr auto;
	gap: 18px;
	align-items: baseline;
	padding: 18px 14px;
	margin: 0 -14px;
	border-top: 1px solid var(--tv-line);
	transition: background 0.15s ease;
}
:where(body.tv-css-marketplace) .tv-mp .services-list .svc-row:last-child {
	border-bottom: 1px solid var(--tv-line);
}
:where(body.tv-css-marketplace) .tv-mp .svc-row:hover {
	background: var(--tv-accent-bg);
}
:where(body.tv-css-marketplace) .tv-mp .svc-row .idx {
	font-family: var(--tv-mono);
	font-size: 12px;
	color: var(--tv-accent);
}
:where(body.tv-css-marketplace) .tv-mp .svc-row h4 {
	font-size: 16px;
	font-weight: 600;
	font-family: var(--tv-body-font);
}
:where(body.tv-css-marketplace) .tv-mp .svc-row p {
	color: var(--tv-ink-soft);
	font-size: 14px;
	margin-top: 4px;
	max-width: 52ch;
}
:where(body.tv-css-marketplace) .tv-mp .svc-row .tag {
	font-family: var(--tv-mono);
	font-size: 11px;
	color: var(--tv-faint);
	white-space: nowrap;
}

/* ---------- final CTA ---------- */

:where(body.tv-css-marketplace) .tv-mp .cta-block {
	position: relative;
	overflow: hidden;
	background: var(--tv-ink);
	color: var(--tv-paper);
	padding: 76px 0 68px;
	text-align: center;
}
:where(body.tv-css-marketplace) .tv-mp .cta-block::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(250, 250, 249, 0.06) 1px, transparent 1px),
		linear-gradient(90deg, rgba(250, 250, 249, 0.06) 1px, transparent 1px);
	background-size: 44px 44px;
	-webkit-mask-image: radial-gradient(ellipse 75% 90% at center, #000 40%, transparent 100%);
	mask-image: radial-gradient(ellipse 75% 90% at center, #000 40%, transparent 100%);
	pointer-events: none;
}
:where(body.tv-css-marketplace) .tv-mp .cta-block .shell {
	position: relative;
	z-index: 1;
}
:where(body.tv-css-marketplace) .tv-mp .cta-block .eyebrow {
	color: var(--tv-accent);
}
:where(body.tv-css-marketplace) .tv-mp .cta-trust {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--tv-mono);
	font-size: 12px;
	color: rgba(250, 250, 249, 0.6);
	border: 1px solid rgba(250, 250, 249, 0.18);
	padding: 6px 16px;
	margin-bottom: 18px;
}
:where(body.tv-css-marketplace) .tv-mp .cta-trust .stars {
	color: var(--tv-accent);
	letter-spacing: 1px;
}
:where(body.tv-css-marketplace) .tv-mp .cta-block h2 {
	color: var(--tv-paper) !important;
	font-size: clamp(28px, 3.4vw, 40px);
}
:where(body.tv-css-marketplace) .tv-mp .cta-block p {
	color: rgba(250, 250, 249, 0.68);
	max-width: 52ch;
	margin: 14px auto 0;
	font-size: 15.5px;
}
:where(body.tv-css-marketplace) .tv-mp .cta-actions {
	display: flex;
	gap: 14px;
	justify-content: center;
	margin-top: 30px;
	flex-wrap: wrap;
}
:where(body.tv-css-marketplace) .tv-mp .cta-block .btn {
	padding: 15px 30px;
	font-size: 15px;
}
:where(body.tv-css-marketplace) .tv-mp .cta-block .btn-solid {
	background: var(--tv-accent);
	border-color: var(--tv-accent);
	color: #1c1300 !important;
}
:where(body.tv-css-marketplace) .tv-mp .cta-block .btn-solid:hover {
	background: #b8730a;
	border-color: #b8730a;
}
:where(body.tv-css-marketplace) .tv-mp .cta-block .btn-line {
	border-color: rgba(250, 250, 249, 0.4);
	color: var(--tv-paper) !important;
}
:where(body.tv-css-marketplace) .tv-mp .cta-block .btn-line:hover {
	background: var(--tv-paper);
	color: var(--tv-ink) !important;
	border-color: var(--tv-paper);
}

/* ---------- newsletter ---------- */

:where(body.tv-css-marketplace) .tv-mp .newsletter {
	padding: 52px 0;
	text-align: center;
}
:where(body.tv-css-marketplace) .tv-mp .newsletter h3 {
	font-size: 20px;
}
:where(body.tv-css-marketplace) .tv-mp .newsletter p {
	color: var(--tv-ink-soft);
	font-size: 14.5px;
	margin-top: 8px;
}
:where(body.tv-css-marketplace) .tv-mp .newsletter-form {
	display: flex;
	gap: 0;
	max-width: 440px;
	margin: 22px auto 0;
	border: 1.5px solid var(--tv-ink);
	border-radius: var(--tv-radius);
	overflow: hidden;
}
:where(body.tv-css-marketplace) .tv-mp .newsletter-form input {
	flex: 1;
	border: none;
	outline: none;
	background: transparent;
	font-family: var(--tv-body-font);
	font-size: 14.5px;
	color: var(--tv-ink);
	padding: 13px 16px;
}
:where(body.tv-css-marketplace) .tv-mp .newsletter-form input::placeholder {
	color: var(--tv-faint);
}
:where(body.tv-css-marketplace) .tv-mp .newsletter-form button {
	font-family: var(--tv-body-font);
	font-weight: 600;
	font-size: 13.5px;
	background: var(--tv-ink);
	color: var(--tv-paper);
	border: none;
	padding: 0 22px;
	cursor: pointer;
	transition: background 0.15s ease;
}
:where(body.tv-css-marketplace) .tv-mp .newsletter-form button:hover {
	background: var(--tv-accent);
}
:where(body.tv-css-marketplace) .tv-mp .newsletter-error {
	display: none;
	color: #a32d2d;
	font-size: 13px;
	margin-top: 10px;
}
:where(body.tv-css-marketplace) .tv-mp .newsletter-error.visible {
	display: block;
}
:where(body.tv-css-marketplace) .tv-mp .newsletter-success {
	display: none;
	max-width: 440px;
	margin: 22px auto 0;
	background: var(--tv-good-bg);
	color: #123527;
	border: 1px solid var(--tv-good);
	border-radius: var(--tv-radius);
	padding: 13px 16px;
	font-size: 14px;
	text-align: left;
}
:where(body.tv-css-marketplace) .tv-mp .newsletter-success.visible {
	display: block;
}

/* ---------- footer ---------- */

:where(body.tv-css-marketplace) footer.tv-footer {
	padding: 44px 0;
}
:where(body.tv-css-marketplace) .foot-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
	font-size: 13.5px;
	color: var(--tv-ink-soft);
}
:where(body.tv-css-marketplace) .foot-links {
	display: flex;
	gap: 22px;
}

@media (max-width: 900px) {
	:where(body.tv-css-marketplace) .tv-mp .cat-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	:where(body.tv-css-marketplace) .nav-links {
		display: none;
	}
}
@media (max-width: 560px) {
	:where(body.tv-css-marketplace) .tv-mp .shell {
		padding: 0 20px;
	}
	:where(body.tv-css-marketplace) .tv-mp .cat-grid {
		grid-template-columns: 1fr;
	}
}

/* ============================================================
   Single product page. Not wrapped in .tv-mp — this renders
   through WooCommerce's own default header, same as the shop
   archive already does — so every color here uses the global
   --tv- tokens directly rather than relying on an ancestor scope.
============================================================ */

/* This stylesheet is only enqueued on pages that aren't the legacy agency
   homepage (see tv_enqueue_marketplace_assets in functions.php), so a plain
   body selector is already correctly scoped by virtue of when the file
   loads. Needed because the parent theme's own dark-navy body background
   (meant for the agency page) would otherwise show through around every
   element that isn't inside .tv-mp or .tv-product's own box — the shared
   header/footer and the single-product page's related-products section
   both render outside those wrappers. */
body:where(.tv-css-marketplace) {
	background: var(--tv-paper) !important;
	color: var(--tv-ink) !important;
}

:where(body.tv-css-marketplace) .tv-product {
	font-family: var(--tv-body-font);
	color: var(--tv-ink);
}
:where(body.tv-css-marketplace) .tv-product * {
	box-sizing: border-box;
}
:where(body.tv-css-marketplace) .tv-product h1,
:where(body.tv-css-marketplace) .tv-product h2,
:where(body.tv-css-marketplace) .tv-product h3 {
	font-family: var(--tv-display);
	font-weight: 700;
	letter-spacing: -0.01em;
	text-wrap: balance;
	margin: 0;
	color: var(--tv-ink) !important;
}
:where(body.tv-css-marketplace) .tv-product a {
	text-decoration: none;
}
:where(body.tv-css-marketplace) .tv-product .mono {
	font-family: var(--tv-mono);
	font-variant-numeric: tabular-nums;
}

/* Header box — breadcrumb, title, byline, tab nav, full width above the
   two-column layout. woocommerce_breadcrumb() is called directly inside
   it (see content-single-product.php); the default hook that would
   otherwise render it above the whole page is removed in functions.php,
   so it only ever appears here. */
:where(body.tv-css-marketplace) .tv-product__header-box {
	background: var(--tv-surface);
	border: 1px solid var(--tv-line);
	border-radius: var(--tv-radius);
	max-width: var(--tv-shell);
	margin: 24px auto 28px;
	padding: 24px 32px 0;
}
:where(body.tv-css-marketplace) .tv-product__breadcrumb {
	font-size: 12.5px;
	color: var(--tv-ink-soft);
	padding-bottom: 14px;
	border-bottom: 1px solid var(--tv-line);
}
:where(body.tv-css-marketplace) .tv-product__breadcrumb a {
	color: var(--tv-ink-soft) !important;
}
:where(body.tv-css-marketplace) .tv-product__breadcrumb a:hover {
	color: var(--tv-ink) !important;
}

:where(body.tv-css-marketplace) .tv-product__title {
	font-size: 26px !important;
	margin-top: 18px !important;
}

:where(body.tv-css-marketplace) .tv-product__byline-row {
	display: flex;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
	margin-top: 10px;
	padding-bottom: 14px;
	font-size: 13.5px;
	color: var(--tv-ink-soft);
}
:where(body.tv-css-marketplace) .tv-product__byline-row b {
	color: var(--tv-accent);
	font-weight: 600;
}
:where(body.tv-css-marketplace) .tv-product__sales {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
:where(body.tv-css-marketplace) .tv-product__sales svg {
	width: 15px;
	height: 15px;
}
:where(body.tv-css-marketplace) .tv-product__badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--tv-good);
	font-weight: 500;
}
:where(body.tv-css-marketplace) .tv-product__badge svg {
	width: 15px;
	height: 15px;
}

/* Tab nav lives in the header box; panels live down in the main column —
   see the file docblock in content-single-product.php for why they're
   split, and why a small custom script (not WooCommerce's own tab JS)
   switches between them. */
:where(body.tv-css-marketplace) .tv-product__tabs-nav {
	display: flex;
	gap: 4px;
	list-style: none;
	margin: 0;
	padding: 0;
	flex-wrap: wrap;
}
:where(body.tv-css-marketplace) .tv-product__tabs-nav li {
	margin: 0;
}
:where(body.tv-css-marketplace) .tv-product__tabs-nav a {
	display: inline-block;
	font-family: var(--tv-display);
	font-size: 14px;
	font-weight: 600;
	color: var(--tv-ink-soft) !important;
	padding: 13px 16px;
	border-bottom: 2px solid transparent;
	transition:
		color 0.15s ease,
		border-color 0.15s ease;
}
:where(body.tv-css-marketplace) .tv-product__tabs-nav li.is-active a,
:where(body.tv-css-marketplace) .tv-product__tabs-nav a:hover {
	color: var(--tv-ink) !important;
	border-bottom-color: var(--tv-accent);
}
:where(body.tv-css-marketplace) .tv-tab-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	background: var(--tv-accent-bg);
	color: var(--tv-accent-ink) !important;
	font-family: var(--tv-mono);
	font-size: 11px;
	font-weight: 600;
	padding: 2px 7px;
	border-radius: 10px;
	margin-left: 4px;
}
:where(body.tv-css-marketplace) .tv-tab-badge b {
	font-weight: 700;
}

:where(body.tv-css-marketplace) .tv-product__layout {
	max-width: var(--tv-shell);
	margin: 0 auto;
	padding: 0 32px 60px;
	display: grid;
	grid-template-columns: 1fr 340px;
	gap: 36px;
	align-items: start;
}

:where(body.tv-css-marketplace) .tv-product__main {
	min-width: 0;
}

:where(body.tv-css-marketplace) .tv-product__preview {
	position: relative;
	background: linear-gradient(135deg, #f3e4c4, #efede8);
	border: 1px solid var(--tv-line);
	border-radius: var(--tv-radius);
	overflow: hidden;
	aspect-ratio: 16 / 10;
	display: flex;
	align-items: center;
	justify-content: center;
}
:where(body.tv-css-marketplace) .tv-product__preview img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
:where(body.tv-css-marketplace) .tv-product__glyph {
	font-family: var(--tv-display);
	font-weight: 800;
	font-size: 48px;
	color: rgba(28, 25, 23, 0.18);
}
:where(body.tv-css-marketplace) .tv-product__preview-btn {
	position: absolute;
	bottom: 16px;
	left: 50%;
	transform: translateX(-50%);
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: rgba(28, 25, 23, 0.82);
	color: var(--tv-paper) !important;
	font-weight: 600;
	font-size: 13px;
	padding: 11px 22px;
	border-radius: var(--tv-radius);
	transition: background 0.15s ease;
}
:where(body.tv-css-marketplace) .tv-product__preview-btn:hover {
	background: var(--tv-ink);
}

/* Tab panels — the nav that switches between these lives in the header
   box above; see .tv-product__tabs-nav there. */
:where(body.tv-css-marketplace) .tv-product__panels {
	margin-top: 24px;
}
:where(body.tv-css-marketplace) .tv-product__panel {
	display: none;
	font-size: 15px;
	line-height: 1.75;
	color: var(--tv-ink-soft);
}
:where(body.tv-css-marketplace) .tv-product__panel.is-active {
	display: block;
}
:where(body.tv-css-marketplace) .tv-product__panel h2 {
	font-size: 18px;
	margin-bottom: 12px;
}

:where(body.tv-css-marketplace) .tv-product .woocommerce-Reviews .comment-form-rating label,
:where(body.tv-css-marketplace) .tv-product .woocommerce-Reviews label {
	color: var(--tv-ink);
}
:where(body.tv-css-marketplace) .tv-product .woocommerce-Reviews textarea,
:where(body.tv-css-marketplace) .tv-product .woocommerce-Reviews input[type="text"],
:where(body.tv-css-marketplace) .tv-product .woocommerce-Reviews input[type="email"] {
	border: 1px solid var(--tv-line);
	border-radius: var(--tv-radius);
	padding: 10px 14px;
	font-family: var(--tv-body-font);
}
:where(body.tv-css-marketplace) .tv-product .woocommerce-Reviews #submit,
:where(body.tv-css-marketplace) .tv-product .woocommerce-Reviews .button {
	background: var(--tv-ink) !important;
	color: var(--tv-paper) !important;
	border: none !important;
	border-radius: var(--tv-radius) !important;
	padding: 11px 22px !important;
	font-weight: 600 !important;
}

/* buy box */
:where(body.tv-css-marketplace) .tv-product__buybox {
	background: var(--tv-surface);
	border: 1px solid var(--tv-line);
	border-radius: var(--tv-radius);
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	position: sticky;
	top: 20px;
}
:where(body.tv-css-marketplace) .tv-product__cat {
	color: var(--tv-accent) !important;
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
:where(body.tv-css-marketplace) .tv-product__rating {
	display: flex;
	align-items: center;
	gap: 10px;
}
:where(body.tv-css-marketplace) .tv-product__review-count {
	font-size: 12.5px;
	color: var(--tv-ink-soft) !important;
}
:where(body.tv-css-marketplace) .tv-product__price {
	font-family: var(--tv-mono);
	font-weight: 700;
	font-size: 28px;
	color: var(--tv-ink);
}
:where(body.tv-css-marketplace) .tv-product__price del {
	opacity: 0.5;
	font-weight: 400;
	font-size: 0.7em;
}

:where(body.tv-css-marketplace) .tv-product__cart .single_add_to_cart_button,
:where(body.tv-css-marketplace) .tv-product__cart button[type="submit"] {
	width: 100%;
	display: block;
	text-align: center;
	background: var(--tv-ink) !important;
	color: var(--tv-paper) !important;
	border: none !important;
	border-radius: var(--tv-radius) !important;
	padding: 14px !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	font-family: var(--tv-body-font) !important;
	cursor: pointer;
	transition: background 0.15s ease;
}
:where(body.tv-css-marketplace) .tv-product__cart .single_add_to_cart_button:hover {
	background: var(--tv-accent) !important;
}
:where(body.tv-css-marketplace) .tv-product__cart .quantity {
	display: none;
}

:where(body.tv-css-marketplace) .tv-product__details {
	border-top: 1px solid var(--tv-line);
	padding-top: 6px;
}
:where(body.tv-css-marketplace) .tv-product__detail-row {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 0;
	border-top: 1px solid var(--tv-line);
	font-size: 13px;
	color: var(--tv-ink-soft);
}
:where(body.tv-css-marketplace) .tv-product__detail-row:first-child {
	border-top: none;
}
:where(body.tv-css-marketplace) .tv-product__detail-row b {
	color: var(--tv-ink);
	font-weight: 500;
}
:where(body.tv-css-marketplace) .tv-product__detail-row a {
	color: var(--tv-accent) !important;
	font-weight: 600;
}

/* Related products — reuses the existing ul.products / .p-card grid */
:where(body.tv-css-marketplace) .tv-product ~ .related.products {
	max-width: var(--tv-shell);
	margin: 0 auto;
	padding: 0 32px 60px;
}
:where(body.tv-css-marketplace) .related.products > h2 {
	font-family: var(--tv-display);
	font-size: 22px;
	font-weight: 700;
	color: var(--tv-ink) !important;
	margin-bottom: 22px;
}

@media (max-width: 860px) {
	:where(body.tv-css-marketplace) .tv-product__layout {
		grid-template-columns: 1fr;
	}
	:where(body.tv-css-marketplace) .tv-product__buybox {
		position: static;
	}
}
@media (max-width: 560px) {
	:where(body.tv-css-marketplace) .tv-product {
		padding: 28px 20px 44px;
	}
	:where(body.tv-css-marketplace) .related.products {
		padding: 0 20px 44px !important;
	}
}

/* ============================================================
   Shop archive — "Filter & Refine" sidebar + product grid.
   Same unscoped-token approach as the single-product page: this
   renders through WooCommerce's own archive-product.php override,
   not .tv-mp, so every rule below uses the global --tv- tokens
   directly.
============================================================ */

:where(body.tv-css-marketplace) .tv-shop {
	font-family: var(--tv-body-font);
	color: var(--tv-ink);
}
:where(body.tv-css-marketplace) .tv-shop * {
	box-sizing: border-box;
}
:where(body.tv-css-marketplace) .tv-shop h1,
:where(body.tv-css-marketplace) .tv-shop h2,
:where(body.tv-css-marketplace) .tv-shop h3 {
	font-family: var(--tv-display);
	font-weight: 700;
	letter-spacing: -0.01em;
	margin: 0;
	color: var(--tv-ink) !important;
}

:where(body.tv-css-marketplace) .tv-shop__layout {
	max-width: var(--tv-shell);
	margin: 0 auto;
	padding: 28px 32px 60px;
	display: grid;
	grid-template-columns: 268px 1fr;
	gap: 32px;
	align-items: start;
}

:where(body.tv-css-marketplace) .tv-shop__main {
	min-width: 0;
}

/* Slightly narrower main column than the homepage grid, so 3 cards no
   longer fit comfortably — 2 up matches the extra width the sidebar takes. */
:where(body.tv-css-marketplace) .tv-shop__main ul.products {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 560px) {
	:where(body.tv-css-marketplace) .tv-shop__main ul.products {
		grid-template-columns: 1fr;
	}
}

:where(body.tv-css-marketplace) .tv-shop__main .woocommerce-result-count {
	font-size: 13px;
	color: var(--tv-ink-soft);
	margin-bottom: 14px;
}

/* Sort pill/tab bar — replaces WooCommerce's default ordering <select>,
   see tv_render_sort_bar() in functions.php. */
:where(body.tv-css-marketplace) .tv-sort-bar {
	display: inline-flex;
	flex-wrap: wrap;
	border: 1px solid var(--tv-line);
	border-radius: var(--tv-radius);
	overflow: hidden;
	margin-bottom: 22px;
}
:where(body.tv-css-marketplace) .tv-sort-tab {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 11px 20px;
	font-family: var(--tv-body-font);
	font-weight: 600;
	font-size: 13.5px;
	color: var(--tv-ink-soft) !important;
	border-right: 1px solid var(--tv-line);
	transition:
		background 0.15s ease,
		color 0.15s ease;
	white-space: nowrap;
}
:where(body.tv-css-marketplace) .tv-sort-tab:last-child {
	border-right: none;
}
:where(body.tv-css-marketplace) .tv-sort-tab:hover {
	background: var(--tv-paper);
	color: var(--tv-ink) !important;
}
:where(body.tv-css-marketplace) .tv-sort-tab.is-active {
	background: var(--tv-ink);
	color: var(--tv-paper) !important;
}
:where(body.tv-css-marketplace) .tv-sort-tab__arrow {
	font-size: 11px;
	opacity: 0.8;
}

@media (max-width: 560px) {
	:where(body.tv-css-marketplace) .tv-sort-bar {
		width: 100%;
	}
	:where(body.tv-css-marketplace) .tv-sort-tab {
		flex: 1 1 auto;
		padding: 10px 12px;
	}
}

:where(body.tv-css-marketplace) .tv-shop__main .woocommerce-pagination {
	margin-top: 8px;
}
:where(body.tv-css-marketplace) .tv-shop__main .woocommerce-pagination ul {
	list-style: none;
	display: flex;
	gap: 6px;
	padding: 0;
	margin: 0;
}
:where(body.tv-css-marketplace) .tv-shop__main .woocommerce-pagination a,
:where(body.tv-css-marketplace) .tv-shop__main .woocommerce-pagination span.current {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 10px;
	border: 1px solid var(--tv-line);
	border-radius: var(--tv-radius);
	font-family: var(--tv-mono);
	font-size: 13px;
	color: var(--tv-ink) !important;
}
:where(body.tv-css-marketplace) .tv-shop__main .woocommerce-pagination span.current {
	background: var(--tv-ink);
	color: var(--tv-paper) !important;
	border-color: var(--tv-ink);
}
:where(body.tv-css-marketplace) .tv-shop__main .woocommerce-pagination a:hover {
	border-color: var(--tv-ink);
}

/* ---------- filter sidebar ---------- */

:where(body.tv-css-marketplace) .tv-filters-panel {
	background: var(--tv-surface);
	border: 1px solid var(--tv-line);
	border-radius: var(--tv-radius);
	overflow: hidden;
	position: sticky;
	top: 20px;
}

:where(body.tv-css-marketplace) .tv-filters__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 18px;
	font-family: var(--tv-display);
	font-weight: 700;
	font-size: 14.5px;
	border-bottom: 1px solid var(--tv-line);
}
:where(body.tv-css-marketplace) .tv-filters__clear {
	font-family: var(--tv-body-font);
	font-weight: 500;
	font-size: 12px;
	color: var(--tv-accent) !important;
}
:where(body.tv-css-marketplace) .tv-filters__clear:hover {
	color: var(--tv-accent-ink) !important;
}

:where(body.tv-css-marketplace) .tv-filter-group {
	border-bottom: 1px solid var(--tv-line);
}
:where(body.tv-css-marketplace) .tv-filter-group:last-child {
	border-bottom: none;
}
:where(body.tv-css-marketplace) .tv-filter-group summary {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 13px 18px;
	font-family: var(--tv-display);
	font-weight: 600;
	font-size: 13.5px;
	cursor: pointer;
	user-select: none;
}
:where(body.tv-css-marketplace) .tv-filter-group summary::-webkit-details-marker {
	display: none;
}
:where(body.tv-css-marketplace) .tv-chev {
	font-size: 10px;
	color: var(--tv-faint);
	transition: transform 0.15s ease;
}
:where(body.tv-css-marketplace) .tv-filter-group[open] .tv-chev {
	transform: rotate(180deg);
}

:where(body.tv-css-marketplace) .tv-filter-group__body {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 2px 18px 14px;
}
:where(body.tv-css-marketplace) .tv-filter-group__body--scroll {
	max-height: 240px;
	overflow-y: auto;
}

:where(body.tv-css-marketplace) .tv-filter-opt {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 6px 0;
	font-size: 13px;
	color: var(--tv-ink-soft);
	cursor: pointer;
}
:where(body.tv-css-marketplace) .tv-filter-opt input {
	accent-color: var(--tv-accent);
	flex-shrink: 0;
}
:where(body.tv-css-marketplace) .tv-filter-opt span {
	flex: 1;
}
:where(body.tv-css-marketplace) .tv-filter-opt b {
	font-size: 11.5px;
	font-weight: 500;
	color: var(--tv-faint);
}
:where(body.tv-css-marketplace) .tv-filter-opt--all span {
	color: var(--tv-ink);
	font-weight: 600;
}
:where(body.tv-css-marketplace) .tv-filter-opt:hover span {
	color: var(--tv-ink);
}

:where(body.tv-css-marketplace) .tv-filter-price {
	display: flex;
	align-items: center;
	gap: 8px;
	padding-bottom: 12px;
}
:where(body.tv-css-marketplace) .tv-filter-price input {
	width: 0;
	flex: 1;
	min-width: 0;
	font-family: var(--tv-mono);
	font-size: 13px;
	border: 1px solid var(--tv-line);
	border-radius: calc(var(--tv-radius) - 6px);
	padding: 8px 10px;
}
:where(body.tv-css-marketplace) .tv-filter-price span {
	color: var(--tv-faint);
}
:where(body.tv-css-marketplace) .tv-filter-price__go {
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--tv-ink);
	color: var(--tv-paper);
	border: none;
	border-radius: calc(var(--tv-radius) - 6px);
	cursor: pointer;
	transition: background 0.15s ease;
}
:where(body.tv-css-marketplace) .tv-filter-price__go:hover {
	background: var(--tv-accent);
}

@media (max-width: 860px) {
	:where(body.tv-css-marketplace) .tv-shop__layout {
		grid-template-columns: 1fr;
	}
	:where(body.tv-css-marketplace) .tv-filters-panel {
		position: static;
	}
}
@media (max-width: 560px) {
	:where(body.tv-css-marketplace) .tv-shop__layout {
		padding: 20px 20px 44px;
	}
}

/* ==================== SHARED STOREFRONT AND CATALOG ==================== */
@font-face {
	font-family: Inter Tight;
	src: url(../fonts/inter-tight-latin.woff2) format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}
:where(body.tv-css-storefront) {
	--tv-ink: #07133b;
	--tv-lime: #7c3aed;
	--tv-paper: #f2f4ea;
	--tv-line: #d3d6c8;
}
html:where(:has(body.tv-css-storefront)) {
	scroll-behavior: smooth;
	scroll-padding-top: 100px;
}
:where(body.tv-css-storefront).tv-storefront {
	margin: 0;
	background: var(--tv-paper);
	color: var(--tv-ink);
	font-family: "Inter Tight", Arial, sans-serif;
	font-size: 16px;
	line-height: 1.5;
}
:where(body.tv-css-storefront).tv-storefront * {
	box-sizing: border-box;
}
:where(body.tv-css-storefront).tv-storefront h1,
:where(body.tv-css-storefront).tv-storefront h2,
:where(body.tv-css-storefront).tv-storefront h3,
:where(body.tv-css-storefront).tv-storefront p {
	margin: 0;
}
:where(body.tv-css-storefront).tv-storefront h2 {
	font-size: clamp(38px, 4.25vw, 72px);
	font-weight: 500;
	line-height: 1.05;
	letter-spacing: -0.045em;
}
:where(body.tv-css-storefront).tv-storefront h3 {
	font-weight: 500;
}
:where(body.tv-css-storefront).tv-storefront a {
	color: inherit;
	text-decoration: none;
}
:where(body.tv-css-storefront).tv-storefront button,
:where(body.tv-css-storefront).tv-storefront input {
	font: inherit;
}
:where(body.tv-css-storefront).tv-storefront button {
	cursor: pointer;
}
:where(body.tv-css-storefront).tv-storefront button,
:where(body.tv-css-storefront).tv-storefront input {
	border-radius: 0;
}
:where(body.tv-css-storefront).tv-storefront button {
	color: inherit;
}
:where(body.tv-css-storefront).tv-storefront img {
	max-width: 100%;
	height: auto;
	display: block;
}
:where(body.tv-css-storefront).tv-storefront [hidden] {
	display: none !important;
}
:where(body.tv-css-storefront).tv-storefront a,
:where(body.tv-css-storefront).tv-storefront button {
	touch-action: manipulation;
}
:where(body.tv-css-storefront).tv-storefront :focus-visible {
	outline: 3px solid #1681f6;
	outline-offset: 5px;
}
:where(body.tv-css-storefront) .tv-sr-only,
:where(body.tv-css-storefront) .tv-skip {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}
:where(body.tv-css-storefront) .tv-skip:focus {
	clip: auto;
	width: auto;
	height: auto;
	z-index: 9999;
	padding: 14px;
	background: white;
	top: 8px;
	left: 8px;
}
:where(body.tv-css-storefront) .tv-shell {
	width: calc(100% - 140px);
	max-width: 1600px;
	margin-inline: auto;
}
:where(body.tv-css-storefront) .tv-section {
	padding-block: 125px;
}
:where(body.tv-css-storefront) .tv-header {
	position: absolute;
	z-index: 30;
	top: 0;
	left: 0;
	width: 100%;
	padding: 30px 70px;
	display: flex;
	gap: 35px;
	align-items: center;
	color: #fff;
	border-bottom: 1px solid #ffffff24;
}
:where(body.tv-css-storefront).admin-bar .tv-header {
	top: 32px;
}
:where(body.tv-css-storefront) .tv-logo {
	font-size: 29px;
	font-weight: 650;
	letter-spacing: -1.4px;
	display: flex;
	align-items: center;
	white-space: nowrap;
}
:where(body.tv-css-storefront) .tv-logo-icon {
	font-size: 42px;
	line-height: 1;
	color: var(--tv-lime);
	margin-right: 5px;
}
:where(body.tv-css-storefront) .tv-logo sup {
	align-self: flex-start;
	font-size: 10px;
	margin-top: 7px;
	letter-spacing: 0;
}
:where(body.tv-css-storefront) .tv-navigation {
	display: flex;
	align-items: center;
	gap: 26px;
	margin: auto;
	font-size: 15px;
	font-weight: 500;
}
:where(body.tv-css-storefront) .tv-navigation > a:hover,
:where(body.tv-css-storefront) .tv-dropdown summary:hover {
	color: var(--tv-lime);
}
:where(body.tv-css-storefront) .tv-sale-link {
	color: var(--tv-lime) !important;
}
:where(body.tv-css-storefront) .tv-dropdown {
	position: relative;
}
:where(body.tv-css-storefront) .tv-dropdown summary {
	cursor: pointer;
	list-style: none;
}
:where(body.tv-css-storefront) .tv-dropdown summary::-webkit-details-marker {
	display: none;
}
:where(body.tv-css-storefront) .tv-dropdown-panel {
	position: absolute;
	top: 35px;
	left: -25px;
	background: white;
	color: var(--tv-ink);
	padding: 18px;
	min-width: 245px;
	border-radius: 12px;
	box-shadow: 0 15px 40px #0002;
}
:where(body.tv-css-storefront) .tv-dropdown-panel a {
	display: block;
	padding: 10px;
	border-radius: 5px;
}
:where(body.tv-css-storefront) .tv-dropdown-panel a:hover {
	background: var(--tv-paper);
}
:where(body.tv-css-storefront) .tv-header-tools {
	display: flex;
	gap: 20px;
	align-items: center;
}
:where(body.tv-css-storefront) .tv-language {
	font-size: 13px;
}
:where(body.tv-css-storefront) .tv-icon-button {
	border: 0;
	background: transparent;
	padding: 0;
	width: 23px;
	height: 26px;
}
:where(body.tv-css-storefront) .tv-icon-button svg,
:where(body.tv-css-storefront) .tv-cart svg,
:where(body.tv-css-storefront) .tv-catalog-search svg {
	width: 24px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
}
:where(body.tv-css-storefront) .tv-cart {
	position: relative;
	display: block;
	width: 25px;
	height: 28px;
}
:where(body.tv-css-storefront) .tv-cart > span {
	position: absolute;
	right: -9px;
	top: -7px;
	background: var(--tv-lime);
	color: var(--tv-ink);
	font-size: 10px;
	border-radius: 50%;
	width: 16px;
	height: 16px;
	text-align: center;
}
:where(body.tv-css-storefront) .tv-menu-toggle {
	display: none;
	background: none;
	border: 0;
	color: white !important;
	padding: 6px;
}
:where(body.tv-css-storefront) .tv-hero {
	background: #005fea url(../images/hero.jpg) center/cover;
	color: #fff;
}
:where(body.tv-css-storefront) .tv-hero-main {
	padding: 235px 70px 130px;
}
:where(body.tv-css-storefront) .tv-trust {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 5px 12px 5px 5px;
	border-radius: 30px;
	background: #bddddb52;
	box-shadow: inset 1px 2px 2px #bddddb66;
	font-size: 12px;
	margin-bottom: 34px;
}
:where(body.tv-css-storefront) .tv-trust img {
	width: 52px;
	height: 21px;
}
:where(body.tv-css-storefront) .tv-hero-title-wrap {
	position: relative;
}
:where(body.tv-css-storefront) .tv-hero h1 {
	font-size: 17.1vw;
	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.065em;
	margin-left: -0.6vw;
	white-space: nowrap;
}
:where(body.tv-css-storefront) .tv-hero h1 > span {
	color: var(--tv-lime);
}
:where(body.tv-css-storefront) .tv-float {
	position: absolute;
	padding: 6px;
	background: #fffc;
	border: 1px solid #fff;
	border-radius: 18px;
	z-index: 2;
	box-shadow: 0 4px 11px #0001;
	animation: tv-float 7s ease-in-out infinite;
}
:where(body.tv-css-storefront) .tv-float-one {
	width: 10.4vw;
	top: -1vw;
	left: 16.2vw;
	transform: rotate(-9deg);
}
:where(body.tv-css-storefront) .tv-float-two {
	width: 8.7vw;
	top: -4.5vw;
	right: 8vw;
	transform: rotate(10deg);
	animation-delay: -3s;
}
:where(body.tv-css-storefront) .tv-star {
	position: absolute;
	width: 10.65vw;
	right: 23.8vw;
	bottom: -7vw;
	pointer-events: none;
	animation: tv-spin 35s linear infinite;
}
:where(body.tv-css-storefront) .tv-hero-bottom {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 100px;
	margin-top: 45px;
}
:where(body.tv-css-storefront) .tv-hero-bottom p {
	font-size: 27px;
	line-height: 1.22;
	letter-spacing: -0.03em;
	max-width: 595px;
}
:where(body.tv-css-storefront) .tv-hero-bottom p > span {
	color: #ffffffad;
}
:where(body.tv-css-storefront) .tv-social-pills {
	display: flex;
	gap: 5px;
	flex-wrap: wrap;
	margin-top: 25px;
}
:where(body.tv-css-storefront) .tv-social-pills a {
	border-radius: 25px;
	padding: 5px 15px;
	background: #bddddb52;
	font-size: 12px;
	box-shadow: inset 1px 2px 2px #bddddb66;
}
:where(body.tv-css-storefront) .tv-social-pills a:hover {
	background: #ffffff50;
}
:where(body.tv-css-storefront) .tv-group {
	font-size: clamp(34px, 5vw, 85px);
	line-height: 0.9;
	font-weight: 600;
	letter-spacing: -0.05em;
}
:where(body.tv-css-storefront) .tv-group > span {
	display: block;
	background: var(--tv-ink);
	border-radius: 60px 0 60px 60px;
	padding: 7px 35px 18px;
	margin: 8px 0 0 30px;
}
:where(body.tv-css-storefront) .tv-service-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	padding: 0 70px 60px;
	gap: 1px;
	background: #011d61;
}
:where(body.tv-css-storefront) .tv-service {
	padding: 50px 35px 35px;
	border-right: 1px solid #ffffff26;
}
:where(body.tv-css-storefront) .tv-service:last-child {
	border: 0;
}
:where(body.tv-css-storefront) .tv-service-symbol {
	display: block;
	font-size: 79px;
	line-height: 1.1;
	margin-bottom: 35px;
	color: #59f1ff;
}
:where(body.tv-css-storefront) .tv-service:nth-child(2) .tv-service-symbol {
	color: #fe898b;
}
:where(body.tv-css-storefront) .tv-service:nth-child(3) .tv-service-symbol {
	color: #acd320;
}
:where(body.tv-css-storefront) .tv-service h2 {
	font-size: 27px;
	letter-spacing: -0.035em;
	margin-bottom: 8px;
	line-height: 1.2;
}
:where(body.tv-css-storefront) .tv-service p {
	color: #98add7;
	font-size: 16px;
	margin-bottom: 25px;
}
:where(body.tv-css-storefront) .tv-button {
	background: var(--tv-lime);
	color: var(--tv-ink) !important;
	display: inline-flex;
	gap: 35px;
	align-items: center;
	justify-content: space-between;
	padding: 17px 26px;
	border-radius: 7px;
	font-weight: 550;
	font-size: 15px;
	border: 0;
	transition:
		background 0.2s,
		transform 0.2s;
}
:where(body.tv-css-storefront) .tv-button:hover {
	background: #40b515;
	transform: translateY(-2px);
}
:where(body.tv-css-storefront) .tv-button span {
	font-size: 21px;
	line-height: 1;
}
:where(body.tv-css-storefront) .tv-button-dark {
	background: #031656;
	color: #fff !important;
}
:where(body.tv-css-storefront) .tv-button-dark:hover {
	background: #102a83;
}
:where(body.tv-css-storefront) .tv-statistics {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	padding-block: 100px;
	gap: 45px;
}
:where(body.tv-css-storefront) .tv-statistics h2 {
	font-size: 19px;
	letter-spacing: -0.025em;
	margin-bottom: 25px;
}
:where(body.tv-css-storefront) .tv-statistics strong {
	font-weight: 500;
	font-size: clamp(28px, 4.7vw, 80px);
	line-height: 1;
	letter-spacing: -0.06em;
	white-space: nowrap;
}
:where(body.tv-css-storefront) .tv-statistics strong span {
	color: #8e9384;
}
:where(body.tv-css-storefront) .tv-marquee {
	overflow: hidden;
	padding: 15px 0 50px;
}
:where(body.tv-css-storefront) .tv-marquee > div {
	display: flex;
	width: max-content;
	gap: 20px;
	animation: tv-marquee 36s linear infinite;
}
:where(body.tv-css-storefront) .tv-marquee span {
	display: flex;
	align-items: center;
	gap: 35px;
	white-space: nowrap;
	font-size: 35px;
	background: white;
	border: 1px solid #e5e6dc;
	border-radius: 15px;
	padding: 15px 25px;
}
:where(body.tv-css-storefront) .tv-marquee b {
	font-size: 44px;
	font-weight: 500;
	color: #2a6ef1;
}
:where(body.tv-css-storefront) .tv-marquee span:nth-child(2n) b {
	color: #b3c239;
}
:where(body.tv-css-storefront) .tv-section-heading {
	display: flex;
	gap: 35px;
	align-items: start;
	margin-bottom: 50px;
}
:where(body.tv-css-storefront) .tv-section-number {
	display: block;
	flex-shrink: 0;
	font-size: 83px;
	line-height: 1;
	font-weight: 500;
	letter-spacing: -0.06em;
	color: #0870ef;
	margin-top: 4px;
}
:where(body.tv-css-storefront) .tv-eyebrow {
	display: inline-block;
	font-size: 13px;
	font-weight: 500;
	border: 1px solid var(--tv-line);
	border-radius: 30px;
	background: #fff;
	padding: 5px 11px;
	margin-bottom: 22px;
	letter-spacing: 0;
}
:where(body.tv-css-storefront) .tv-catalog-tools {
	margin-bottom: 35px;
}
:where(body.tv-css-storefront) .tv-catalog-search {
	display: flex;
	align-items: center;
	gap: 12px;
	border-bottom: 1px solid var(--tv-line);
	padding-bottom: 15px;
	max-width: 470px;
	margin-bottom: 25px;
}
:where(body.tv-css-storefront) .tv-catalog-search input {
	background: none;
	border: 0;
	outline: 0 !important;
	width: 100%;
	padding: 7px;
	color: var(--tv-ink);
	font-size: 17px;
}
:where(body.tv-css-storefront) .tv-catalog-search button {
	border: 0;
	background: none;
	padding: 8px;
	color: #6e707a;
}
:where(body.tv-css-storefront) .tv-category-tabs {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
:where(body.tv-css-storefront) .tv-category-tabs button {
	border: 1px solid var(--tv-line);
	background: none;
	border-radius: 30px;
	padding: 8px 17px;
	font-size: 13px;
}
:where(body.tv-css-storefront) .tv-category-tabs button.is-active,
:where(body.tv-css-storefront) .tv-category-tabs button:hover {
	background: var(--tv-ink);
	color: white;
	border-color: var(--tv-ink);
}
:where(body.tv-css-storefront) .tv-product-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 45px 30px;
}
:where(body.tv-css-storefront) .tv-product-image {
	position: relative;
	overflow: hidden;
	display: block;
	border: 1px solid #dedfd6;
	border-radius: 14px;
	padding: 10px;
	background: #ffffff99;
	aspect-ratio: 1.4;
}
:where(body.tv-css-storefront) .tv-product-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
	border-radius: 7px;
	transition: transform 0.5s;
}
:where(body.tv-css-storefront) .tv-product:hover .tv-product-image img {
	transform: scale(1.035);
}
:where(body.tv-css-storefront) .tv-product-view {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -40%);
	padding: 12px 22px;
	background: var(--tv-ink);
	color: #fff;
	border-radius: 6px;
	opacity: 0;
	transition: 0.25s;
	white-space: nowrap;
}
:where(body.tv-css-storefront) .tv-product-image:hover .tv-product-view,
:where(body.tv-css-storefront) .tv-product-image:focus-visible .tv-product-view {
	opacity: 1;
	transform: translate(-50%, -50%);
}
:where(body.tv-css-storefront) .tv-product-info {
	display: flex;
	justify-content: space-between;
	gap: 15px;
	padding: 18px 0 12px;
}
:where(body.tv-css-storefront) .tv-product-category {
	font-size: 12px;
	color: #6e707a;
	display: block;
	margin-bottom: 5px;
}
:where(body.tv-css-storefront) .tv-product h3 {
	font-size: 21px;
	line-height: 1.25;
	letter-spacing: -0.035em;
}
:where(body.tv-css-storefront) .tv-product-price {
	font-size: 20px;
	white-space: nowrap;
	padding-top: 20px;
}
:where(body.tv-css-storefront) .tv-product-price del {
	font-size: 13px;
	color: #6e707a;
}
:where(body.tv-css-storefront) .tv-product-price ins {
	text-decoration: none;
}
:where(body.tv-css-storefront) .tv-product-links {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	font-size: 12px;
	color: #6e707a;
}
:where(body.tv-css-storefront) .tv-product-links a {
	color: var(--tv-ink);
}
:where(body.tv-css-storefront) .tv-product-links a:hover {
	text-decoration: underline;
}
:where(body.tv-css-storefront) .tv-center {
	text-align: center;
	margin-top: 55px;
}
:where(body.tv-css-storefront) .tv-empty {
	padding: 45px;
	text-align: center;
	border: 1px solid var(--tv-line);
	border-radius: 10px;
}
:where(body.tv-css-storefront) .tv-features {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 25px;
	border-top: 1px solid var(--tv-line);
	padding-block: 60px 100px;
}
:where(body.tv-css-storefront) .tv-features > div > span {
	display: block;
	font-size: 42px;
	line-height: 1;
	margin-bottom: 24px;
}
:where(body.tv-css-storefront) .tv-features h3 {
	font-size: 19px;
	line-height: 1.2;
	margin-bottom: 6px;
	letter-spacing: -0.025em;
}
:where(body.tv-css-storefront) .tv-features p {
	font-size: 13px;
	color: #6e707a;
}
:where(body.tv-css-storefront) .tv-hosting {
	background: #fff;
}
:where(body.tv-css-storefront) .tv-hosting-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 7%;
}
:where(body.tv-css-storefront) .tv-hosting-copy .tv-section-heading {
	gap: 25px;
	margin-bottom: 35px;
}
:where(body.tv-css-storefront) .tv-hosting-copy > p {
	max-width: 465px;
	color: #6e707a;
	margin-bottom: 25px;
}
:where(body.tv-css-storefront) .tv-hosting-copy .tv-large-copy {
	font-size: 25px;
	line-height: 1.25;
	letter-spacing: -0.03em;
	color: var(--tv-ink);
}
:where(body.tv-css-storefront) .tv-check-list {
	list-style: none;
	padding: 0;
	margin: 30px 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 15px;
	font-size: 15px;
}
:where(body.tv-css-storefront) .tv-check-list li:before {
	content: "\2713";
	color: #268609;
	margin-right: 9px;
}
:where(body.tv-css-storefront) .tv-hosting-visual {
	position: relative;
	border-radius: 20px;
	overflow: hidden;
	min-height: 530px;
	background: #eef3ed;
}
:where(body.tv-css-storefront) .tv-hosting-visual > img {
	width: 100%;
	height: 600px;
	object-fit: cover;
}
:where(body.tv-css-storefront) .tv-hosting-note {
	position: absolute;
	bottom: 25px;
	left: 25px;
	border-radius: 12px;
	padding: 22px 30px;
	background: #fff;
	font-size: 23px;
	line-height: 1.15;
	box-shadow: 0 10px 40px #07133b12;
	letter-spacing: -0.03em;
}
:where(body.tv-css-storefront) .tv-hosting-note > span {
	float: left;
	font-size: 55px;
	margin-right: 18px;
	color: #0870ef;
}
:where(body.tv-css-storefront) .tv-steps {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	border-top: 1px solid var(--tv-line);
	margin-top: 80px;
	padding-top: 45px;
}
:where(body.tv-css-storefront) .tv-steps > div {
	display: flex;
	gap: 20px;
	align-items: center;
}
:where(body.tv-css-storefront) .tv-steps > div > span {
	font-size: 70px;
	line-height: 1;
	letter-spacing: -0.05em;
	background: url(../images/number-background.jpg) center/cover;
	color: transparent;
	background-clip: text;
}
:where(body.tv-css-storefront) .tv-steps p {
	font-size: 12px;
	color: #6e707a;
}
:where(body.tv-css-storefront) .tv-steps strong {
	display: block;
	font-size: 22px;
	font-weight: 500;
	letter-spacing: -0.03em;
	color: var(--tv-ink);
}
:where(body.tv-css-storefront) .tv-studio {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 9%;
	align-items: center;
}
:where(body.tv-css-storefront) .tv-studio-visual img {
	width: 100%;
	border-radius: 16px;
}
:where(body.tv-css-storefront) .tv-studio-copy .tv-section-heading {
	align-items: center;
	margin-bottom: 30px;
}
:where(body.tv-css-storefront) .tv-studio-copy .tv-eyebrow {
	margin: 0;
}
:where(body.tv-css-storefront) .tv-studio-copy h2 {
	font-size: clamp(40px, 4.2vw, 72px);
}
:where(body.tv-css-storefront) .tv-studio-copy h2 > span {
	color: #8e9384;
}
:where(body.tv-css-storefront) .tv-studio-copy > p {
	margin: 30px 0;
	max-width: 430px;
	color: #6e707a;
}
:where(body.tv-css-storefront) .tv-solutions {
	background: #07133b url(../images/hero.jpg) center/cover;
	color: #fff;
	padding: 70px 0 60px;
	overflow: hidden;
}
:where(body.tv-css-storefront) .tv-solutions > .tv-shell > span {
	font-size: 14px;
}
:where(body.tv-css-storefront) .tv-solutions h2 {
	font-size: 16.8vw;
	letter-spacing: -0.065em;
	margin: 10px 0 30px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
:where(body.tv-css-storefront) .tv-solutions h2 > span {
	color: var(--tv-lime);
	font-size: 13vw;
}
:where(body.tv-css-storefront) .tv-solutions > .tv-shell > div {
	display: flex;
	justify-content: space-between;
	border-top: 1px solid #ffffff30;
	padding-top: 25px;
	gap: 20px;
	font-size: 15px;
}
:where(body.tv-css-storefront) .tv-testimonial-heading {
	display: flex;
	justify-content: space-between;
	align-items: end;
	gap: 30px;
	margin-bottom: 45px;
}
:where(body.tv-css-storefront) .tv-testimonial-heading h2 {
	font-size: clamp(35px, 3.8vw, 62px);
}
:where(body.tv-css-storefront) .tv-slider-controls {
	display: flex;
	gap: 8px;
}
:where(body.tv-css-storefront) .tv-slider-controls button {
	border: 1px solid var(--tv-line);
	background: transparent;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	font-size: 23px;
}
:where(body.tv-css-storefront) .tv-slider-controls button:hover {
	background: var(--tv-lime);
	border-color: var(--tv-lime);
}
:where(body.tv-css-storefront) .tv-review-track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 50px) / 3);
	gap: 25px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
	padding-bottom: 15px;
}
:where(body.tv-css-storefront) .tv-review {
	padding: 35px;
	background: #fff;
	border-radius: 14px;
	scroll-snap-align: start;
	min-width: 0;
	display: flex;
	flex-direction: column;
}
:where(body.tv-css-storefront) .tv-quote {
	display: block;
	font-size: 50px;
	line-height: 1;
	color: #0b6ff2;
	margin-bottom: 35px;
}
:where(body.tv-css-storefront) .tv-review:nth-child(2n) .tv-quote {
	color: #b1bf28;
}
:where(body.tv-css-storefront) .tv-review h3 {
	font-size: 25px;
	line-height: 1.15;
	letter-spacing: -0.03em;
	margin-bottom: 20px;
}
:where(body.tv-css-storefront) .tv-review blockquote {
	margin: 0 0 30px;
	font-size: 20px;
	line-height: 1.4;
	letter-spacing: -0.02em;
	max-height: 280px;
	overflow-y: auto;
}
:where(body.tv-css-storefront) .tv-review strong {
	font-size: 15px;
	font-weight: 550;
	margin-top: auto;
}
:where(body.tv-css-storefront) .tv-review p {
	font-size: 12px;
	color: #6e707a;
	margin-top: 4px;
}
:where(body.tv-css-storefront) .tv-insights {
	padding-top: 0;
}
:where(body.tv-css-storefront) .tv-insights > h2 {
	margin-bottom: 45px;
}
:where(body.tv-css-storefront) .tv-news-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 30px;
}
:where(body.tv-css-storefront) .tv-news-image {
	display: block;
	aspect-ratio: 1.45;
	border-radius: 12px;
	overflow: hidden;
	background: #e0e5d7;
	margin-bottom: 23px;
}
:where(body.tv-css-storefront) .tv-news-image img {
	height: 100%;
	width: 100%;
	object-fit: cover;
	transition: transform 0.3s;
}
:where(body.tv-css-storefront) .tv-news-image:hover img {
	transform: scale(1.04);
}
:where(body.tv-css-storefront) .tv-news-image > span {
	display: flex;
	justify-content: space-between;
	font-size: 90px;
	padding: 20px;
	line-height: 1;
	font-weight: 650;
	color: #07133b;
}
:where(body.tv-css-storefront) .tv-news-image > span > span {
	font-size: 45px;
	color: #2f7df6;
}
:where(body.tv-css-storefront) .tv-news-category {
	font-size: 12px;
	margin-bottom: 10px;
}
:where(body.tv-css-storefront) .tv-news-grid h3 {
	font-size: 24px;
	line-height: 1.2;
	letter-spacing: -0.035em;
	margin-bottom: 18px;
}
:where(body.tv-css-storefront) .tv-news-grid h3 a:hover {
	color: #1466dc;
}
:where(body.tv-css-storefront) .tv-news-grid time {
	color: #6e707a;
	font-size: 12px;
}
:where(body.tv-css-storefront) .tv-footer {
	background: #07133b;
	color: #fff;
	padding-top: 85px;
	overflow: hidden;
}
:where(body.tv-css-storefront) .tv-footer-top {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10%;
	padding-bottom: 70px;
	border-bottom: 1px solid #ffffff26;
	align-items: center;
}
:where(body.tv-css-storefront) .tv-footer-top h2 {
	font-size: clamp(38px, 4vw, 66px);
}
:where(body.tv-css-storefront) .tv-footer-top form {
	display: flex;
	border-bottom: 1px solid #ffffff80;
	padding: 0 0 15px;
}
:where(body.tv-css-storefront) .tv-footer-top input {
	background: transparent;
	color: #fff;
	border: 0;
	outline: 0;
	width: 100%;
	padding: 10px 0;
	font-size: 19px;
}
:where(body.tv-css-storefront) .tv-footer-top input::placeholder {
	color: #fff9;
}
:where(body.tv-css-storefront) .tv-footer-top button {
	background: none;
	color: #fff;
	border: 0;
	font-size: 35px;
	line-height: 1;
	padding: 0 10px;
}
:where(body.tv-css-storefront) .tv-footer-top button:disabled {
	opacity: 0.4;
}
:where(body.tv-css-storefront) .tv-footer-top p {
	font-size: 12px;
	color: #98add7;
	margin-top: 15px;
}
:where(body.tv-css-storefront) .tv-footer-middle {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	padding-block: 65px;
	gap: 50px;
}
:where(body.tv-css-storefront) .tv-footer-middle h3 {
	font-size: 18px;
	margin-bottom: 22px;
}
:where(body.tv-css-storefront) .tv-footer-middle a {
	display: block;
	width: fit-content;
	font-size: 15px;
	color: #98add7;
	margin-bottom: 8px;
}
:where(body.tv-css-storefront) .tv-footer-middle a:hover {
	color: var(--tv-lime);
}
:where(body.tv-css-storefront) .tv-footer-middle .tv-footer-email {
	font-size: 28px;
	color: #fff;
	letter-spacing: -0.03em;
	margin-bottom: 20px;
}
:where(body.tv-css-storefront) .tv-footer-middle p {
	font-size: 14px;
	color: #98add7;
}
:where(body.tv-css-storefront) .tv-footer-legal {
	display: flex;
	justify-content: space-between;
	border-top: 1px solid #ffffff26;
	padding-top: 25px;
	color: #98add7;
	font-size: 12px;
}
:where(body.tv-css-storefront) .tv-footer-legal > div {
	display: flex;
	gap: 25px;
}
:where(body.tv-css-storefront) .tv-footer-wordmark {
	font-size: 16.9vw;
	line-height: 1.1;
	letter-spacing: -0.065em;
	font-weight: 600;
	display: block;
	margin: 40px 0 -1vw;
	white-space: nowrap;
}
:where(body.tv-css-storefront) .tv-footer-wordmark sup {
	font-size: 2.7vw;
	vertical-align: top;
	display: inline-block;
	padding-top: 2.5vw;
	margin-left: 1vw;
}
:where(body.tv-css-storefront) .tv-back-top {
	position: fixed;
	bottom: 25px;
	right: 25px;
	z-index: 20;
	background: var(--tv-lime);
	color: var(--tv-ink);
	border-radius: 50%;
	width: 45px;
	height: 45px;
	display: grid;
	place-items: center;
	font-size: 23px;
	opacity: 0;
	visibility: hidden;
	transition: 0.2s;
}
:where(body.tv-css-storefront) .tv-back-top.is-visible {
	opacity: 1;
	visibility: visible;
}
:where(body.tv-css-storefront) .tv-search-dialog {
	border: 0;
	border-radius: 18px;
	padding: 65px;
	width: min(800px, 90vw);
	max-height: 85vh;
	background: var(--tv-paper);
	color: var(--tv-ink);
}
:where(body.tv-css-storefront) .tv-search-dialog::backdrop {
	background: #07133bd9;
	backdrop-filter: blur(8px);
}
:where(body.tv-css-storefront) .tv-search-dialog h2 {
	font-size: 42px;
	margin-bottom: 35px;
}
:where(body.tv-css-storefront) .tv-search-close {
	position: absolute;
	right: 20px;
	top: 15px;
	background: none;
	border: 0;
	font-size: 23px;
}
:where(body.tv-css-storefront) .tv-search-dialog form {
	display: flex;
	border-bottom: 1px solid var(--tv-line);
	padding-bottom: 10px;
}
:where(body.tv-css-storefront) .tv-search-dialog input[type="search"] {
	background: none;
	border: 0;
	min-width: 0;
	width: 100%;
	padding: 12px 0;
	outline: 0;
}
:where(body.tv-css-storefront) .tv-search-dialog button[type="submit"] {
	border: 0;
	background: var(--tv-lime);
	padding: 10px 20px;
	border-radius: 5px;
	white-space: nowrap;
}
:where(body.tv-css-storefront) .tv-live-result {
	display: flex;
	justify-content: space-between;
	padding: 16px 0;
	border-bottom: 1px solid var(--tv-line);
	gap: 20px;
}
:where(body.tv-css-storefront) .tv-live-result span {
	font-size: 12px;
	align-self: center;
	color: #6e707a;
}
:where(body.tv-css-storefront) #tv-live-results > p {
	padding-top: 20px;
	color: #6e707a;
}
@keyframes tv-marquee {
	to {
		transform: translateX(-50%);
	}
}
@keyframes tv-float {
	50% {
		translate: 0 -12px;
	}
}
@keyframes tv-spin {
	to {
		rotate: 360deg;
	}
}
@media (min-width: 1800px) {
	:where(body.tv-css-storefront) .tv-hero-main {
		padding-top: 250px;
	}
	:where(body.tv-css-storefront) .tv-hero h1 {
		font-size: 17.4vw;
	}
}
@media (max-width: 1250px) {
	:where(body.tv-css-storefront) .tv-header {
		padding: 25px 35px;
		gap: 20px;
	}
	:where(body.tv-css-storefront) .tv-navigation {
		gap: 17px;
		font-size: 13px;
	}
	:where(body.tv-css-storefront) .tv-logo {
		font-size: 25px;
	}
	:where(body.tv-css-storefront) .tv-header-tools {
		gap: 14px;
	}
	:where(body.tv-css-storefront) .tv-shell {
		width: calc(100% - 70px);
	}
	:where(body.tv-css-storefront) .tv-hero-main {
		padding: 210px 35px 100px;
	}
	:where(body.tv-css-storefront) .tv-service-grid {
		padding-inline: 35px;
	}
	:where(body.tv-css-storefront) .tv-service {
		padding: 40px 20px 20px;
	}
	:where(body.tv-css-storefront) .tv-service h2 {
		font-size: 23px;
	}
	:where(body.tv-css-storefront) .tv-hero-bottom {
		gap: 50px;
	}
	:where(body.tv-css-storefront) .tv-hero-bottom p {
		font-size: 24px;
	}
	:where(body.tv-css-storefront) .tv-section {
		padding-block: 95px;
	}
	:where(body.tv-css-storefront) .tv-features {
		padding-bottom: 80px;
	}
	:where(body.tv-css-storefront) .tv-check-list {
		grid-template-columns: 1fr;
	}
	:where(body.tv-css-storefront) .tv-hosting-visual > img {
		height: 600px;
	}
	:where(body.tv-css-storefront) .tv-review {
		padding: 25px;
	}
	:where(body.tv-css-storefront) .tv-news-grid {
		gap: 20px;
	}
	:where(body.tv-css-storefront) .tv-news-grid h3 {
		font-size: 21px;
	}
	:where(body.tv-css-storefront) .tv-insights {
		padding-top: 0;
	}
}
@media (max-width: 1000px) {
	:where(body.tv-css-storefront) .tv-navigation {
		display: none;
		position: absolute;
		top: 100%;
		left: 20px;
		right: 20px;
		background: #fff;
		color: var(--tv-ink);
		padding: 25px;
		border-radius: 12px;
		box-shadow: 0 20px 50px #0003;
		font-size: 17px;
	}
	:where(body.tv-css-storefront) .tv-navigation.is-open {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 20px;
	}
	:where(body.tv-css-storefront) .tv-dropdown-panel {
		position: static;
		box-shadow: none;
		padding: 15px 0 0;
		min-width: 0;
	}
	:where(body.tv-css-storefront) .tv-header-tools {
		margin-left: auto;
	}
	:where(body.tv-css-storefront) .tv-menu-toggle {
		display: block;
	}
	:where(body.tv-css-storefront) .tv-language {
		display: none;
	}
	:where(body.tv-css-storefront) .tv-hero-main {
		padding-top: 185px;
	}
	:where(body.tv-css-storefront) .tv-statistics {
		gap: 20px;
		padding-block: 70px;
	}
	:where(body.tv-css-storefront) .tv-hosting-grid {
		gap: 5%;
	}
	:where(body.tv-css-storefront) .tv-hosting-copy .tv-section-number {
		font-size: 65px;
	}
	:where(body.tv-css-storefront) .tv-section-heading {
		gap: 25px;
	}
	:where(body.tv-css-storefront) .tv-review-track {
		grid-auto-columns: calc((100% - 25px) / 2);
	}
	:where(body.tv-css-storefront) .tv-features {
		grid-template-columns: repeat(3, 1fr);
		row-gap: 40px;
	}
	:where(body.tv-css-storefront) .tv-news-grid {
		grid-template-columns: repeat(2, 1fr);
		row-gap: 40px;
	}
	:where(body.tv-css-storefront) .tv-service h2 {
		font-size: 21px;
	}
	:where(body.tv-css-storefront) .tv-service p {
		font-size: 14px;
	}
	:where(body.tv-css-storefront) .tv-service .tv-button {
		gap: 15px;
		padding: 14px 20px;
	}
	:where(body.tv-css-storefront) .tv-product-grid {
		gap: 35px 20px;
	}
	:where(body.tv-css-storefront) .tv-product h3 {
		font-size: 18px;
	}
	:where(body.tv-css-storefront) .tv-product-price {
		font-size: 17px;
	}
	:where(body.tv-css-storefront) .tv-product-links {
		flex-wrap: wrap;
	}
	:where(body.tv-css-storefront) .tv-hosting-visual {
		min-height: 500px;
	}
	:where(body.tv-css-storefront) .tv-hosting-visual > img {
		height: 580px;
	}
	:where(body.tv-css-storefront) .tv-steps strong {
		font-size: 19px;
	}
	:where(body.tv-css-storefront) .tv-footer-top {
		gap: 6%;
	}
}
@media (max-width: 700px) {
	html:where(:has(body.tv-css-storefront)) {
		scroll-padding-top: 25px;
	}
	:where(body.tv-css-storefront) .tv-shell {
		width: calc(100% - 40px);
	}
	:where(body.tv-css-storefront) .tv-header {
		padding: 20px;
		gap: 10px;
	}
	:where(body.tv-css-storefront) .tv-logo {
		font-size: 23px;
	}
	:where(body.tv-css-storefront) .tv-logo-icon {
		font-size: 31px;
	}
	:where(body.tv-css-storefront) .tv-header-tools {
		gap: 16px;
	}
	:where(body.tv-css-storefront) .tv-menu-toggle {
		font-size: 0;
		padding: 5px;
	}
	:where(body.tv-css-storefront) .tv-menu-toggle:after {
		content: "\2630";
		font-size: 23px;
	}
	:where(body.tv-css-storefront) .tv-hero-main {
		padding: 165px 20px 65px;
	}
	:where(body.tv-css-storefront) .tv-trust {
		font-size: 10px;
		margin-bottom: 42px;
	}
	:where(body.tv-css-storefront) .tv-hero h1 {
		font-size: 17.1vw;
		letter-spacing: -0.065em;
	}
	:where(body.tv-css-storefront) .tv-float-one {
		width: 16vw;
		top: -7vw;
		left: 27vw;
		padding: 3px;
		border-radius: 8px;
	}
	:where(body.tv-css-storefront) .tv-float-two {
		width: 12vw;
		top: -12vw;
		right: 5vw;
		padding: 3px;
		border-radius: 8px;
	}
	:where(body.tv-css-storefront) .tv-star {
		width: 16vw;
		right: 15vw;
		bottom: -11vw;
	}
	:where(body.tv-css-storefront) .tv-hero-bottom {
		margin-top: 48px;
		display: block;
	}
	:where(body.tv-css-storefront) .tv-hero-bottom p {
		font-size: 22px;
		max-width: 420px;
	}
	:where(body.tv-css-storefront) .tv-social-pills {
		margin-top: 20px;
	}
	:where(body.tv-css-storefront) .tv-social-pills a {
		font-size: 10px;
		padding: 5px 11px;
	}
	:where(body.tv-css-storefront) .tv-group {
		display: block;
		width: fit-content;
		font-size: 46px;
		margin: 38px 0 0 auto;
	}
	:where(body.tv-css-storefront) .tv-group > span {
		padding: 8px 25px 13px;
	}
	:where(body.tv-css-storefront) .tv-service-grid {
		grid-template-columns: 1fr;
		padding: 0 20px 20px;
	}
	:where(body.tv-css-storefront) .tv-service {
		padding: 35px 5px;
		border-right: 0;
		border-bottom: 1px solid #ffffff26;
		position: relative;
	}
	:where(body.tv-css-storefront) .tv-service-symbol {
		position: absolute;
		right: 5px;
		top: 30px;
		font-size: 52px;
		margin: 0;
	}
	:where(body.tv-css-storefront) .tv-service h2 {
		font-size: 25px;
		max-width: 80%;
		padding-right: 12px;
	}
	:where(body.tv-css-storefront) .tv-service p {
		font-size: 14px;
		max-width: 80%;
		margin-bottom: 20px;
	}
	:where(body.tv-css-storefront) .tv-statistics {
		grid-template-columns: 1fr;
		gap: 30px;
		padding-block: 55px;
	}
	:where(body.tv-css-storefront) .tv-statistics > div {
		display: flex;
		justify-content: space-between;
		align-items: center;
		border-bottom: 1px solid var(--tv-line);
		padding-bottom: 20px;
		gap: 20px;
	}
	:where(body.tv-css-storefront) .tv-statistics h2 {
		font-size: 15px;
		margin: 0;
	}
	:where(body.tv-css-storefront) .tv-statistics strong {
		font-size: 36px;
	}
	:where(body.tv-css-storefront) .tv-marquee {
		padding-bottom: 10px;
	}
	:where(body.tv-css-storefront) .tv-marquee span {
		font-size: 24px;
		padding: 12px 20px;
		gap: 20px;
	}
	:where(body.tv-css-storefront) .tv-marquee b {
		font-size: 30px;
	}
	:where(body.tv-css-storefront) .tv-section {
		padding-block: 65px;
	}
	:where(body.tv-css-storefront) .tv-section-heading {
		gap: 20px;
		margin-bottom: 35px;
	}
	:where(body.tv-css-storefront) .tv-section-number {
		font-size: 60px;
	}
	:where(body.tv-css-storefront) .tv-eyebrow {
		margin-bottom: 15px;
		font-size: 11px;
	}
	:where(body.tv-css-storefront).tv-storefront h2 {
		font-size: 39px;
	}
	:where(body.tv-css-storefront) .tv-catalog-search {
		max-width: none;
	}
	:where(body.tv-css-storefront) .tv-catalog-search input {
		font-size: 16px;
	}
	:where(body.tv-css-storefront) .tv-category-tabs {
		gap: 6px;
	}
	:where(body.tv-css-storefront) .tv-category-tabs button {
		font-size: 12px;
		padding: 7px 12px;
	}
	:where(body.tv-css-storefront) .tv-product-grid {
		grid-template-columns: 1fr;
		gap: 35px;
	}
	:where(body.tv-css-storefront) .tv-product h3 {
		font-size: 23px;
	}
	:where(body.tv-css-storefront) .tv-product-price {
		font-size: 22px;
	}
	:where(body.tv-css-storefront) .tv-product-links {
		font-size: 13px;
	}
	:where(body.tv-css-storefront) .tv-product-category {
		font-size: 13px;
	}
	:where(body.tv-css-storefront) .tv-center {
		margin-top: 35px;
	}
	:where(body.tv-css-storefront) .tv-features {
		grid-template-columns: 1fr 1fr;
		gap: 35px 20px;
		padding-block: 40px 60px;
	}
	:where(body.tv-css-storefront) .tv-features h3 {
		font-size: 18px;
	}
	:where(body.tv-css-storefront) .tv-features > div > span {
		font-size: 35px;
		margin-bottom: 16px;
	}
	:where(body.tv-css-storefront) .tv-hosting-grid,
	:where(body.tv-css-storefront) .tv-studio {
		grid-template-columns: 1fr;
		gap: 40px;
	}
	:where(body.tv-css-storefront) .tv-hosting-copy .tv-section-number {
		font-size: 60px;
	}
	:where(body.tv-css-storefront) .tv-hosting-visual {
		min-height: 0;
	}
	:where(body.tv-css-storefront) .tv-hosting-visual > img {
		height: auto;
		max-height: 500px;
	}
	:where(body.tv-css-storefront) .tv-hosting-note {
		font-size: 20px;
		left: 15px;
		bottom: 15px;
		padding: 16px 20px;
	}
	:where(body.tv-css-storefront) .tv-steps {
		grid-template-columns: 1fr;
		margin-top: 40px;
		padding-top: 30px;
		gap: 25px;
	}
	:where(body.tv-css-storefront) .tv-steps > div > span {
		font-size: 60px;
	}
	:where(body.tv-css-storefront) .tv-steps strong {
		font-size: 23px;
	}
	:where(body.tv-css-storefront) .tv-check-list {
		grid-template-columns: 1fr;
	}
	:where(body.tv-css-storefront) .tv-studio-copy h2 {
		font-size: 47px;
	}
	:where(body.tv-css-storefront) .tv-studio-visual img {
		max-height: 450px;
		object-fit: cover;
	}
	:where(body.tv-css-storefront) .tv-solutions {
		padding: 45px 0;
	}
	:where(body.tv-css-storefront) .tv-solutions h2 {
		font-size: 18vw !important;
	}
	:where(body.tv-css-storefront) .tv-solutions > .tv-shell > div {
		display: grid;
		grid-template-columns: 1fr 1fr;
		font-size: 12px;
		gap: 15px;
	}
	:where(body.tv-css-storefront) .tv-testimonial-heading {
		align-items: end;
		gap: 15px;
	}
	:where(body.tv-css-storefront) .tv-testimonial-heading h2 {
		font-size: 34px;
	}
	:where(body.tv-css-storefront) .tv-slider-controls {
		gap: 5px;
	}
	:where(body.tv-css-storefront) .tv-slider-controls button {
		width: 35px;
		height: 35px;
		font-size: 18px;
	}
	:where(body.tv-css-storefront) .tv-review-track {
		grid-auto-columns: 90%;
		gap: 15px;
	}
	:where(body.tv-css-storefront) .tv-review {
		padding: 30px;
	}
	:where(body.tv-css-storefront) .tv-review h3 {
		font-size: 25px;
	}
	:where(body.tv-css-storefront) .tv-review blockquote {
		font-size: 21px;
	}
	:where(body.tv-css-storefront) .tv-news-grid {
		gap: 30px 15px;
	}
	:where(body.tv-css-storefront) .tv-news-grid h3 {
		font-size: 19px;
	}
	:where(body.tv-css-storefront) .tv-news-image {
		margin-bottom: 16px;
	}
	:where(body.tv-css-storefront) .tv-news-image > span {
		font-size: 60px;
		padding: 10px;
	}
	:where(body.tv-css-storefront) .tv-news-image > span > span {
		font-size: 28px;
	}
	:where(body.tv-css-storefront) .tv-news-category,
	:where(body.tv-css-storefront) .tv-news-grid time {
		font-size: 11px;
	}
	:where(body.tv-css-storefront) .tv-insights {
		padding-top: 0;
	}
	:where(body.tv-css-storefront) .tv-insights > h2 {
		font-size: 36px;
	}
	:where(body.tv-css-storefront) .tv-footer {
		padding-top: 60px;
	}
	:where(body.tv-css-storefront) .tv-footer-top {
		grid-template-columns: 1fr;
		gap: 35px;
		padding-bottom: 45px;
	}
	:where(body.tv-css-storefront) .tv-footer-top h2 {
		font-size: 43px;
	}
	:where(body.tv-css-storefront) .tv-footer-top input {
		font-size: 17px;
	}
	:where(body.tv-css-storefront) .tv-footer-middle {
		grid-template-columns: 1fr 1fr;
		padding-block: 40px;
		gap: 35px 25px;
	}
	:where(body.tv-css-storefront) .tv-footer-middle > div:first-child {
		grid-column: 1/-1;
	}
	:where(body.tv-css-storefront) .tv-footer-middle .tv-footer-email {
		font-size: 25px;
	}
	:where(body.tv-css-storefront) .tv-footer-legal {
		gap: 20px;
		flex-direction: column;
		font-size: 11px;
	}
	:where(body.tv-css-storefront) .tv-footer-wordmark {
		font-size: 17vw;
		margin-top: 30px;
	}
	:where(body.tv-css-storefront) .tv-footer-wordmark sup {
		font-size: 2.3vw;
	}
	:where(body.tv-css-storefront) .tv-back-top {
		right: 15px;
		bottom: 15px;
		width: 38px;
		height: 38px;
	}
	:where(body.tv-css-storefront) .tv-search-dialog {
		padding: 60px 25px 30px;
	}
	:where(body.tv-css-storefront) .tv-search-dialog h2 {
		font-size: 34px;
	}
	:where(body.tv-css-storefront) .tv-search-dialog input[type="search"] {
		font-size: 14px;
	}
	:where(body.tv-css-storefront) .tv-live-result {
		font-size: 15px;
	}
}
@media (prefers-reduced-motion: reduce) {
	html:where(:has(body.tv-css-storefront)) {
		scroll-behavior: auto;
	}
	:where(body.tv-css-storefront).tv-storefront * {
		animation: none !important;
		transition: none !important;
	}
}

:where(body.tv-css-storefront) .tv-statistics strong {
	font-size: clamp(65px, 8.9vw, 155px);
	font-weight: 500;
}
:where(body.tv-css-storefront) .tv-marquee:hover > div {
	animation-play-state: paused;
}
:where(body.tv-css-storefront).tv-storefront button:hover,
:where(body.tv-css-storefront).tv-storefront button:focus {
	color: inherit;
}
:where(body.tv-css-storefront).tv-storefront .tv-icon-button:hover,
:where(body.tv-css-storefront).tv-storefront .tv-menu-toggle:hover,
:where(body.tv-css-storefront).tv-storefront .tv-search-close:hover {
	background: transparent;
}
:where(body.tv-css-storefront).tv-storefront .tv-category-tabs button:hover,
:where(body.tv-css-storefront).tv-storefront .tv-category-tabs button.is-active {
	color: #fff;
}
:where(body.tv-css-storefront) .tv-news-grid:has(> article:only-child) {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 700px) {
	:where(body.tv-css-storefront) .tv-statistics strong {
		font-size: 65px;
	}
	:where(body.tv-css-storefront) .tv-news-grid:has(> article:only-child) {
		grid-template-columns: 1fr;
	}
}

:where(body.tv-css-storefront).tv-storefront .tv-catalog-search button:hover,
:where(body.tv-css-storefront).tv-storefront .tv-footer-top button:hover {
	background: transparent;
}

/* WordPress Themes catalog. */
body:where(.tv-css-storefront):has(.tv-themes-page) {
	background: #fff;
}
body:where(.tv-css-storefront):has(.tv-themes-page) .tv-header {
	position: relative;
	color: var(--tv-ink);
	border-bottom: 1px solid #e7e8df;
	background: #fff;
}
body:where(.tv-css-storefront).admin-bar:has(.tv-themes-page) .tv-header {
	top: 0;
}
body:where(.tv-css-storefront):has(.tv-themes-page) .tv-menu-toggle {
	color: var(--tv-ink) !important;
}
body:where(.tv-css-storefront):has(.tv-themes-page) .tv-sale-link {
	color: #268809 !important;
}
:where(body.tv-css-storefront) .tv-themes-intro {
	text-align: center;
	padding-block: 60px 65px;
}
:where(body.tv-css-storefront) .tv-themes-breadcrumb {
	font-size: 12px;
	color: #6e707a;
	margin-bottom: 40px;
}
:where(body.tv-css-storefront) .tv-themes-breadcrumb span {
	padding: 0 12px;
	color: #a8acb5;
}
:where(body.tv-css-storefront) .tv-themes-intro h1 {
	font-size: clamp(50px, 6vw, 100px);
	line-height: 1.05;
	font-weight: 500;
	letter-spacing: -0.055em;
	margin: 0 0 25px;
}
:where(body.tv-css-storefront) .tv-themes-intro h1 > span {
	color: var(--tv-lime);
}
:where(body.tv-css-storefront) .tv-themes-intro > p {
	font-size: 18px;
	line-height: 1.5;
	color: #6e707a;
	letter-spacing: -0.02em;
}
:where(body.tv-css-storefront) .tv-themes-catalog {
	padding-bottom: 110px;
}
:where(body.tv-css-storefront) .tv-themes-filter-form {
	padding: 28px 30px;
	background: var(--tv-paper);
	border: 1px solid #e5e7dc;
	border-radius: 15px;
}
:where(body.tv-css-storefront) .tv-themes-search-row {
	display: flex;
	gap: 15px;
	border-bottom: 1px solid var(--tv-line);
	padding-bottom: 23px;
	margin-bottom: 22px;
}
:where(body.tv-css-storefront) .tv-themes-search {
	display: flex;
	align-items: center;
	gap: 15px;
	flex: 1;
	min-width: 0;
}
:where(body.tv-css-storefront) .tv-themes-search svg {
	width: 24px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
	flex-shrink: 0;
}
:where(body.tv-css-storefront) .tv-themes-search input {
	width: 100%;
	border: 0;
	background: transparent;
	padding: 12px 0;
	outline: 0;
	color: var(--tv-ink);
	font-size: 18px;
}
:where(body.tv-css-storefront) .tv-themes-search-row .tv-button {
	padding: 14px 23px;
}
:where(body.tv-css-storefront) .tv-themes-filter-row {
	display: flex;
	gap: 25px;
	align-items: center;
}
:where(body.tv-css-storefront) .tv-themes-filter-row > label:not(.tv-themes-sale) {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 1;
	min-width: 0;
}
:where(body.tv-css-storefront) .tv-themes-filter-row label > span {
	font-size: 12px;
	color: #6e707a;
	white-space: nowrap;
}
:where(body.tv-css-storefront) .tv-themes-filter-row select {
	font: inherit;
	font-size: 14px;
	border: 0;
	border-bottom: 1px solid var(--tv-line);
	padding: 10px 22px 10px 5px;
	background: transparent;
	color: var(--tv-ink);
	min-width: 0;
	width: 100%;
	border-radius: 0;
}
:where(body.tv-css-storefront) .tv-themes-sale {
	display: flex;
	gap: 8px;
	align-items: center;
	white-space: nowrap;
	font-size: 14px;
}
:where(body.tv-css-storefront) .tv-themes-sale input {
	accent-color: #07133b;
	width: 16px;
	height: 16px;
}
:where(body.tv-css-storefront) .tv-themes-apply {
	background: var(--tv-ink);
	border: 0;
	color: #fff !important;
	border-radius: 5px !important;
	padding: 11px 18px;
	white-space: nowrap;
	font-size: 13px !important;
}
:where(body.tv-css-storefront) .tv-themes-apply:hover {
	background: #18306d !important;
}
:where(body.tv-css-storefront) .tv-themes-clear {
	font-size: 13px;
	text-decoration: underline !important;
	color: #6e707a !important;
}
:where(body.tv-css-storefront) .tv-themes-results {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 30px 0;
	font-size: 13px;
	color: #6e707a;
}
:where(body.tv-css-storefront) .tv-themes-results > span {
	display: flex;
	align-items: center;
	gap: 10px;
}
:where(body.tv-css-storefront) .tv-themes-results b {
	font-family: Georgia, serif;
	font-size: 18px;
	border: 1px solid var(--tv-line);
	border-radius: 50%;
	width: 26px;
	height: 26px;
	display: grid;
	place-items: center;
	color: var(--tv-ink);
}
:where(body.tv-css-storefront) .tv-themes-grid {
	gap: 45px 30px;
}
:where(body.tv-css-storefront) .tv-theme-preview {
	position: relative;
}
:where(body.tv-css-storefront) .tv-theme-preview .tv-product-image {
	aspect-ratio: 1.5;
	background: #f2f4ea;
	padding: 9px;
	border-color: #e0e3d8;
}
:where(body.tv-css-storefront) .tv-theme-card h2 {
	font-size: 22px;
	line-height: 1.25;
	letter-spacing: -0.03em;
	font-weight: 500;
	margin: 20px 0 14px;
}
:where(body.tv-css-storefront) .tv-theme-card h2 a:hover {
	color: #1466dc;
}
:where(body.tv-css-storefront) .tv-theme-meta {
	display: flex;
	gap: 10px;
	align-items: center;
	font-size: 12px;
	color: #6e707a;
}
:where(body.tv-css-storefront) .tv-theme-meta > a {
	padding: 4px 9px;
	background: var(--tv-paper);
	border-radius: 4px;
	color: var(--tv-ink);
	max-width: 45%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
:where(body.tv-css-storefront) .tv-theme-meta .tv-product-price {
	padding: 0;
	margin-left: auto;
	color: var(--tv-ink);
	font-size: 20px;
}
:where(body.tv-css-storefront) .tv-theme-meta .tv-product-price del {
	margin-right: 5px;
}
:where(body.tv-css-storefront) .tv-theme-meta .tv-product-price ins {
	font-weight: 550;
}
:where(body.tv-css-storefront) .tv-theme-actions {
	position: absolute;
	bottom: 22px;
	left: 0;
	right: 0;
	display: flex;
	justify-content: center;
	gap: 8px;
	opacity: 0;
	translate: 0 8px;
	transition: 0.25s;
	pointer-events: none;
}
:where(body.tv-css-storefront) .tv-theme-actions a {
	pointer-events: auto;
	border-radius: 5px;
	background: var(--tv-ink);
	color: white;
	padding: 10px 16px;
	font-size: 12px;
	box-shadow: 0 3px 12px #0002;
}
:where(body.tv-css-storefront) .tv-theme-actions a + a {
	background: var(--tv-lime);
	color: var(--tv-ink);
}
:where(body.tv-css-storefront) .tv-theme-preview:hover .tv-theme-actions,
:where(body.tv-css-storefront) .tv-theme-preview:focus-within .tv-theme-actions {
	opacity: 1;
	translate: 0 0;
}
:where(body.tv-css-storefront) .tv-theme-sale-badge {
	position: absolute;
	right: 20px;
	top: 20px;
	padding: 4px 10px;
	background: var(--tv-lime);
	color: var(--tv-ink);
	font-size: 11px;
	border-radius: 4px;
}
:where(body.tv-css-storefront) .tv-themes-pagination {
	margin-top: 60px;
}
:where(body.tv-css-storefront) .tv-themes-pagination ul {
	display: flex;
	gap: 10px;
	padding: 0;
	list-style: none;
	justify-content: center;
}
:where(body.tv-css-storefront) .tv-themes-pagination .page-numbers:not(ul) {
	border: 1px solid var(--tv-line);
	display: grid;
	place-items: center;
	width: 45px;
	height: 45px;
	border-radius: 50%;
	font-size: 14px;
}
:where(body.tv-css-storefront) .tv-themes-pagination .current,
:where(body.tv-css-storefront) .tv-themes-pagination a:hover {
	background: var(--tv-ink);
	color: white;
	border-color: var(--tv-ink);
}
:where(body.tv-css-storefront) .tv-themes-about {
	background: var(--tv-paper);
}
:where(body.tv-css-storefront) .tv-themes-about > .tv-shell {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10%;
}
:where(body.tv-css-storefront) .tv-themes-about-heading h2 {
	font-size: clamp(38px, 4vw, 65px);
	margin-bottom: 35px;
}
:where(body.tv-css-storefront) .tv-themes-about-heading h2 > span {
	color: #8e9384;
}
:where(body.tv-css-storefront) .tv-themes-benefits article {
	position: relative;
	padding-left: 50px;
	margin-bottom: 35px;
}
:where(body.tv-css-storefront) .tv-themes-benefits article:last-child {
	margin: 0;
}
:where(body.tv-css-storefront) .tv-themes-benefits article > span {
	position: absolute;
	left: 0;
	top: 0;
	font-size: 14px;
	color: #6e707a;
}
:where(body.tv-css-storefront) .tv-themes-benefits h3 {
	font-size: 24px;
	letter-spacing: -0.035em;
	margin-bottom: 12px;
}
:where(body.tv-css-storefront) .tv-themes-benefits p {
	font-size: 16px;
	line-height: 1.65;
	color: #6e707a;
}
:where(body.tv-css-storefront) .tv-themes-faq {
	display: grid;
	grid-template-columns: 1fr 1.4fr;
	gap: 10%;
}
:where(body.tv-css-storefront) .tv-themes-faq h2 {
	font-size: 80px;
	margin-bottom: 25px;
}
:where(body.tv-css-storefront) .tv-themes-faq h2 > span {
	color: var(--tv-lime);
}
:where(body.tv-css-storefront) .tv-themes-faq > div > p {
	font-size: 16px;
	line-height: 1.6;
	color: #6e707a;
}
:where(body.tv-css-storefront) .tv-themes-faq > div > p a {
	color: var(--tv-ink);
	text-decoration: underline;
}
:where(body.tv-css-storefront) .tv-faq-list details {
	border-bottom: 1px solid var(--tv-line);
}
:where(body.tv-css-storefront) .tv-faq-list details:first-child {
	border-top: 1px solid var(--tv-line);
}
:where(body.tv-css-storefront) .tv-faq-list summary {
	display: flex;
	justify-content: space-between;
	gap: 25px;
	cursor: pointer;
	list-style: none;
	padding: 23px 0;
	font-size: 19px;
	letter-spacing: -0.02em;
	line-height: 1.35;
}
:where(body.tv-css-storefront) .tv-faq-list summary::-webkit-details-marker {
	display: none;
}
:where(body.tv-css-storefront) .tv-faq-list summary > span {
	font-size: 25px;
	font-weight: 400;
	line-height: 1;
	transition: rotate 0.2s;
}
:where(body.tv-css-storefront) .tv-faq-list details[open] summary > span {
	rotate: 45deg;
}
:where(body.tv-css-storefront) .tv-faq-list details > p {
	padding: 0 30px 25px 0;
	color: #6e707a;
	font-size: 15px;
	line-height: 1.7;
}
:where(body.tv-css-storefront) .tv-themes-empty {
	text-align: center;
	padding: 75px 20px;
	border: 1px solid var(--tv-line);
	border-radius: 15px;
	background: var(--tv-paper);
}
:where(body.tv-css-storefront) .tv-themes-empty > span {
	font-size: 60px;
}
:where(body.tv-css-storefront) .tv-themes-empty h2 {
	font-size: 40px;
	margin-bottom: 20px;
}
:where(body.tv-css-storefront) .tv-themes-empty p {
	color: #6e707a;
	margin-bottom: 25px;
}
@media (hover: none) {
	:where(body.tv-css-storefront) .tv-theme-actions {
		opacity: 1;
		translate: none;
	}
}
@media (max-width: 1000px) {
	:where(body.tv-css-storefront) .tv-themes-filter-row {
		flex-wrap: wrap;
		gap: 15px;
	}
	:where(body.tv-css-storefront) .tv-themes-filter-row > label:not(.tv-themes-sale) {
		flex-basis: 40%;
	}
	:where(body.tv-css-storefront) .tv-theme-actions {
		opacity: 1;
		translate: none;
	}
	:where(body.tv-css-storefront) .tv-theme-actions a {
		padding: 9px 12px;
		font-size: 11px;
	}
	:where(body.tv-css-storefront) .tv-theme-card h2 {
		font-size: 20px;
	}
	:where(body.tv-css-storefront) .tv-theme-meta {
		flex-wrap: wrap;
	}
	:where(body.tv-css-storefront) .tv-theme-meta .tv-product-price {
		font-size: 18px;
	}
	:where(body.tv-css-storefront) .tv-themes-grid {
		gap: 35px 20px;
	}
	:where(body.tv-css-storefront) .tv-themes-about > .tv-shell {
		gap: 6%;
	}
	:where(body.tv-css-storefront) .tv-themes-faq {
		gap: 6%;
	}
}
@media (max-width: 700px) {
	:where(body.tv-css-storefront) .tv-themes-intro {
		padding: 30px 0 40px;
	}
	:where(body.tv-css-storefront) .tv-themes-breadcrumb {
		margin-bottom: 30px;
		font-size: 11px;
	}
	:where(body.tv-css-storefront) .tv-themes-intro h1 {
		font-size: 49px;
		line-height: 1.05;
		margin-bottom: 20px;
	}
	:where(body.tv-css-storefront) .tv-themes-intro > p {
		font-size: 16px;
	}
	:where(body.tv-css-storefront) .tv-themes-filter-form {
		padding: 20px 15px;
	}
	:where(body.tv-css-storefront) .tv-themes-search-row {
		flex-direction: column;
		gap: 15px;
		padding-bottom: 20px;
		margin-bottom: 15px;
	}
	:where(body.tv-css-storefront) .tv-themes-search input {
		font-size: 15px;
	}
	:where(body.tv-css-storefront) .tv-themes-search-row .tv-button {
		justify-content: center;
		gap: 25px;
	}
	:where(body.tv-css-storefront) .tv-themes-filter-row > label:not(.tv-themes-sale) {
		flex-basis: 100%;
		justify-content: space-between;
	}
	:where(body.tv-css-storefront) .tv-themes-filter-row select {
		width: 70%;
	}
	:where(body.tv-css-storefront) .tv-themes-apply {
		margin-left: auto;
	}
	:where(body.tv-css-storefront) .tv-themes-clear {
		margin-left: 8px;
	}
	:where(body.tv-css-storefront) .tv-themes-results {
		font-size: 12px;
		margin: 25px 0;
	}
	:where(body.tv-css-storefront) .tv-themes-results > span {
		font-size: 0;
		gap: 0;
	}
	:where(body.tv-css-storefront) .tv-themes-grid {
		gap: 35px;
	}
	:where(body.tv-css-storefront) .tv-theme-card h2 {
		font-size: 23px;
		margin-top: 16px;
	}
	:where(body.tv-css-storefront) .tv-theme-meta {
		font-size: 12px;
	}
	:where(body.tv-css-storefront) .tv-theme-meta .tv-product-price {
		font-size: 21px;
	}
	:where(body.tv-css-storefront) .tv-theme-actions a {
		padding: 11px 20px;
		font-size: 12px;
	}
	:where(body.tv-css-storefront) .tv-themes-catalog {
		padding-bottom: 60px;
	}
	:where(body.tv-css-storefront) .tv-themes-about > .tv-shell,
	:where(body.tv-css-storefront) .tv-themes-faq {
		grid-template-columns: 1fr;
		gap: 45px;
	}
	:where(body.tv-css-storefront) .tv-themes-about-heading h2 {
		font-size: 42px;
	}
	:where(body.tv-css-storefront) .tv-themes-benefits article {
		padding-left: 40px;
	}
	:where(body.tv-css-storefront) .tv-themes-benefits h3 {
		font-size: 24px;
	}
	:where(body.tv-css-storefront) .tv-themes-faq h2 {
		font-size: 65px;
	}
	:where(body.tv-css-storefront) .tv-faq-list summary {
		font-size: 18px;
		padding: 20px 0;
	}
	:where(body.tv-css-storefront) .tv-faq-list details > p {
		font-size: 15px;
	}
	:where(body.tv-css-storefront) .tv-themes-pagination {
		margin-top: 40px;
	}
}

/* Editorial journal. */
body:where(.tv-css-storefront):has(.tv-blog-page) {
	background: #fff;
}
body:where(.tv-css-storefront):has(.tv-blog-page) .tv-header {
	position: relative;
	color: var(--tv-ink);
	border-bottom: 1px solid #e7e8df;
	background: #fff;
}
body:where(.tv-css-storefront).admin-bar:has(.tv-blog-page) .tv-header {
	top: 0;
}
body:where(.tv-css-storefront):has(.tv-blog-page) .tv-menu-toggle {
	color: var(--tv-ink) !important;
}
body:where(.tv-css-storefront):has(.tv-blog-page) .tv-sale-link {
	color: #268809 !important;
}
:where(body.tv-css-storefront) .tv-blog-featured {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 25px;
	padding-top: 45px;
	padding-bottom: 55px;
	border-bottom: 1px solid var(--tv-line);
}
:where(body.tv-css-storefront) .tv-blog-featured:has(> article:only-child) {
	grid-template-columns: 1fr;
}
:where(body.tv-css-storefront) .tv-blog-featured:has(> article:only-child) > article {
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: 40px;
	align-items: center;
}
:where(body.tv-css-storefront) .tv-blog-featured-image {
	display: block;
	aspect-ratio: 1.5;
	border-radius: 12px;
	overflow: hidden;
	background: var(--tv-paper);
	margin-bottom: 20px;
}
:where(body.tv-css-storefront) .tv-blog-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s;
}
:where(body.tv-css-storefront) .tv-blog-featured-image:hover img {
	transform: scale(1.04);
}
:where(body.tv-css-storefront) .tv-blog-label {
	font-size: 11px;
	line-height: 1.4;
	font-weight: 550;
	color: #426026;
	display: inline-block;
	text-transform: uppercase;
	letter-spacing: 0.055em;
}
:where(body.tv-css-storefront) .tv-blog-featured h2 {
	font-size: 23px;
	line-height: 1.2;
	font-weight: 500;
	letter-spacing: -0.035em;
	margin: 10px 0 15px;
}
:where(body.tv-css-storefront) .tv-blog-featured h2 a:hover,
:where(body.tv-css-storefront) .tv-blog-post h2 a:hover,
:where(body.tv-css-storefront) .tv-blog-side-story h3 a:hover {
	color: #1466dc;
}
:where(body.tv-css-storefront) .tv-blog-featured time,
:where(body.tv-css-storefront) .tv-blog-side-story time {
	font-size: 12px;
	color: #8b8d95;
}
:where(body.tv-css-storefront) .tv-blog-heading {
	padding: 55px 0 50px;
}
:where(body.tv-css-storefront) .tv-blog-heading .tv-themes-breadcrumb {
	margin-bottom: 25px;
}
:where(body.tv-css-storefront) .tv-blog-heading > div:last-child {
	display: flex;
	justify-content: space-between;
	gap: 30px;
	align-items: end;
}
:where(body.tv-css-storefront) .tv-blog-heading h1 {
	font-size: clamp(48px, 6.2vw, 100px);
	letter-spacing: -0.06em;
	line-height: 1.05;
	font-weight: 500;
	margin: 0;
}
:where(body.tv-css-storefront) .tv-blog-heading h1 > span {
	color: var(--tv-lime);
}
:where(body.tv-css-storefront) .tv-blog-heading p {
	font-size: 16px;
	color: #6e707a;
	line-height: 1.5;
	padding-bottom: 5px;
}
:where(body.tv-css-storefront) .tv-blog-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 4%;
	padding-top: 80px;
	padding-bottom: 90px;
}
:where(body.tv-css-storefront) .tv-blog-feed {
	min-width: 0;
}
:where(body.tv-css-storefront) .tv-blog-search {
	display: flex;
	align-items: center;
	border-bottom: 1px solid var(--tv-line);
	margin-bottom: 35px;
	padding-bottom: 10px;
}
:where(body.tv-css-storefront) .tv-blog-search input {
	background: none;
	border: 0;
	outline: none;
	width: 100%;
	font-size: 16px;
	padding: 10px 0;
	color: var(--tv-ink);
}
:where(body.tv-css-storefront) .tv-blog-search button {
	border: 0 !important;
	background: transparent !important;
	font-size: 27px;
	padding: 0 10px;
}
:where(body.tv-css-storefront) .tv-blog-active-filter {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 15px;
	padding: 15px 20px;
	background: var(--tv-paper);
	border-radius: 8px;
	margin-bottom: 30px;
	font-size: 13px;
}
:where(body.tv-css-storefront) .tv-blog-active-filter a {
	text-decoration: underline;
}
:where(body.tv-css-storefront) .tv-blog-post {
	padding-bottom: 45px;
	margin-bottom: 45px;
	border-bottom: 1px solid var(--tv-line);
}
:where(body.tv-css-storefront) .tv-blog-post:last-of-type {
	margin-bottom: 0;
}
:where(body.tv-css-storefront) .tv-blog-post-image {
	display: block;
	aspect-ratio: 1.7;
	overflow: hidden;
	background: var(--tv-paper);
	border-radius: 14px;
	margin-bottom: 26px;
}
:where(body.tv-css-storefront) .tv-blog-post-image img {
	height: 100%;
	width: 100%;
	object-fit: cover;
	transition: transform 0.4s;
}
:where(body.tv-css-storefront) .tv-blog-post-image:hover img {
	transform: scale(1.025);
}
:where(body.tv-css-storefront) .tv-blog-post-categories {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 13px;
}
:where(body.tv-css-storefront) .tv-blog-post h2 {
	font-size: clamp(30px, 3.3vw, 50px);
	line-height: 1.13;
	letter-spacing: -0.045em;
	margin-bottom: 22px;
}
:where(body.tv-css-storefront) .tv-blog-post-meta {
	display: flex;
	gap: 10px 20px;
	flex-wrap: wrap;
	font-size: 11px;
	color: #8b8d95;
	margin-bottom: 22px;
}
:where(body.tv-css-storefront) .tv-blog-post-meta a {
	color: var(--tv-ink);
}
:where(body.tv-css-storefront) .tv-blog-post-meta span + span {
	border-left: 1px solid var(--tv-line);
	padding-left: 20px;
}
:where(body.tv-css-storefront) .tv-blog-excerpt {
	font-size: 17px;
	line-height: 1.7;
	color: #6e707a;
	margin-bottom: 22px !important;
}
:where(body.tv-css-storefront) .tv-blog-read {
	display: inline-flex;
	align-items: center;
	gap: 30px;
	font-size: 13px;
	font-weight: 550;
}
:where(body.tv-css-storefront) .tv-blog-read > span {
	font-size: 21px;
}
:where(body.tv-css-storefront) .tv-blog-read:hover {
	text-decoration: underline;
}
:where(body.tv-css-storefront) .tv-blog-sidebar {
	padding-top: 0;
	min-width: 0;
}
:where(body.tv-css-storefront) .tv-blog-subscribe {
	border-radius: 14px;
	background: var(--tv-paper);
	padding: 30px;
}
:where(body.tv-css-storefront) .tv-blog-subscribe > span {
	display: block;
	color: #126ef0;
	font-size: 55px;
	line-height: 1;
	margin-bottom: 30px;
}
:where(body.tv-css-storefront) .tv-blog-subscribe h2 {
	font-size: 33px;
	line-height: 1.05;
	letter-spacing: -0.04em;
	margin-bottom: 18px;
}
:where(body.tv-css-storefront) .tv-blog-subscribe p {
	font-size: 14px;
	color: #6e707a;
	line-height: 1.65;
	margin-bottom: 25px;
}
:where(body.tv-css-storefront) .tv-blog-subscribe .tv-button {
	font-size: 12px;
	padding: 13px 17px;
	gap: 20px;
	width: 100%;
}
:where(body.tv-css-storefront) .tv-blog-side-section {
	margin-top: 40px;
}
:where(body.tv-css-storefront) .tv-blog-side-section > h2 {
	font-size: 25px;
	line-height: 1.2;
	letter-spacing: -0.035em;
	border-bottom: 1px solid var(--tv-line);
	padding-bottom: 20px;
	margin-bottom: 22px;
}
:where(body.tv-css-storefront) .tv-blog-category-link {
	display: flex;
	justify-content: space-between;
	border-bottom: 1px solid #eeeee8;
	padding: 13px 0;
	font-size: 14px;
}
:where(body.tv-css-storefront) .tv-blog-category-link span {
	color: #8b8d95;
	font-size: 12px;
}
:where(body.tv-css-storefront) .tv-blog-category-link:hover {
	color: #1466dc;
}
:where(body.tv-css-storefront) .tv-blog-side-story {
	border-bottom: 1px solid var(--tv-line);
	padding-bottom: 25px;
	margin-bottom: 25px;
}
:where(body.tv-css-storefront) .tv-blog-side-story h3 {
	font-size: 22px;
	line-height: 1.25;
	letter-spacing: -0.03em;
	margin: 10px 0 15px;
}
:where(body.tv-css-storefront) .tv-blog-studio {
	margin-top: 40px;
	padding: 30px;
	border: 1px solid var(--tv-line);
	border-radius: 14px;
}
:where(body.tv-css-storefront) .tv-blog-studio h2 {
	font-size: 31px;
	line-height: 1.1;
	letter-spacing: -0.04em;
	margin-bottom: 20px;
}
:where(body.tv-css-storefront) .tv-blog-studio p {
	font-size: 14px;
	color: #6e707a;
	margin-bottom: 20px;
}
:where(body.tv-css-storefront) .tv-blog-studio > a {
	font-size: 13px;
	text-decoration: underline;
}
:where(body.tv-css-storefront) .tv-blog-art {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	height: 100%;
	padding: 8%;
	background: linear-gradient(135deg, #07133b, #075ef0);
	color: #fff;
}
:where(body.tv-css-storefront) .tv-blog-art > span {
	font-size: clamp(26px, 4.2vw, 65px);
	font-weight: 500;
	line-height: 1;
	letter-spacing: -0.055em;
}
:where(body.tv-css-storefront) .tv-blog-art > b {
	font-size: 65px;
	color: var(--tv-lime);
	font-weight: 400;
}
:where(body.tv-css-storefront) .tv-blog-featured .tv-blog-art > span {
	font-size: 32px;
}
:where(body.tv-css-storefront) .tv-blog-featured .tv-blog-art > b {
	font-size: 35px;
}
:where(body.tv-css-storefront) .tv-blog-empty-art {
	display: flex;
	align-items: center;
	position: relative;
	min-height: 340px;
	padding: 45px;
	border-radius: 14px;
	overflow: hidden;
	background: #075ef0 url(../images/hero.jpg) center/cover;
	margin-bottom: 35px;
	color: #fff;
}
:where(body.tv-css-storefront) .tv-blog-empty-art > span {
	font-size: clamp(45px, 5vw, 78px);
	font-weight: 500;
	line-height: 0.98;
	letter-spacing: -0.05em;
}
:where(body.tv-css-storefront) .tv-blog-empty-art > span > span {
	position: absolute;
	right: 35px;
	bottom: 30px;
	color: var(--tv-lime);
	font-size: 120px;
	line-height: 1;
}
:where(body.tv-css-storefront) .tv-blog-empty h2 {
	font-size: 38px;
	letter-spacing: -0.035em;
	margin-bottom: 20px;
}
:where(body.tv-css-storefront) .tv-blog-empty > p {
	font-size: 17px;
	line-height: 1.7;
	color: #6e707a;
	max-width: 580px;
	margin-bottom: 25px;
}
:where(body.tv-css-storefront) .tv-blog-faq {
	border-top: 1px solid var(--tv-line);
}
@media (max-width: 1100px) {
	:where(body.tv-css-storefront) .tv-blog-layout {
		grid-template-columns: minmax(0, 1fr) 270px;
		gap: 5%;
	}
	:where(body.tv-css-storefront) .tv-blog-subscribe,
	:where(body.tv-css-storefront) .tv-blog-studio {
		padding: 25px;
	}
	:where(body.tv-css-storefront) .tv-blog-featured {
		gap: 20px;
	}
	:where(body.tv-css-storefront) .tv-blog-featured h2 {
		font-size: 20px;
	}
	:where(body.tv-css-storefront) .tv-blog-heading h1 {
		font-size: 65px;
	}
	:where(body.tv-css-storefront) .tv-blog-heading p {
		font-size: 14px;
	}
	:where(body.tv-css-storefront) .tv-blog-featured-image {
		aspect-ratio: 1.25;
	}
}
@media (max-width: 850px) {
	:where(body.tv-css-storefront) .tv-blog-featured {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		row-gap: 30px;
	}
	:where(body.tv-css-storefront) .tv-blog-featured-image {
		aspect-ratio: 1.5;
	}
	:where(body.tv-css-storefront) .tv-blog-layout {
		grid-template-columns: minmax(0, 1fr) 235px;
		gap: 30px;
	}
	:where(body.tv-css-storefront) .tv-blog-heading > div:last-child {
		display: block;
	}
	:where(body.tv-css-storefront) .tv-blog-heading p {
		margin-top: 20px;
	}
	:where(body.tv-css-storefront) .tv-blog-subscribe,
	:where(body.tv-css-storefront) .tv-blog-studio {
		padding: 22px;
	}
	:where(body.tv-css-storefront) .tv-blog-subscribe h2 {
		font-size: 28px;
	}
	:where(body.tv-css-storefront) .tv-blog-subscribe .tv-button {
		gap: 10px;
		font-size: 11px;
		padding: 12px;
	}
	:where(body.tv-css-storefront) .tv-blog-studio h2 {
		font-size: 27px;
	}
	:where(body.tv-css-storefront) .tv-blog-empty-art {
		padding: 30px;
		min-height: 320px;
	}
	:where(body.tv-css-storefront) .tv-blog-empty-art > span > span {
		right: 15px;
		bottom: 15px;
		font-size: 85px;
	}
	:where(body.tv-css-storefront) .tv-blog-empty h2 {
		font-size: 34px;
	}
	:where(body.tv-css-storefront) .tv-blog-empty .tv-button {
		font-size: 13px;
		gap: 20px;
	}
}
@media (max-width: 700px) {
	:where(body.tv-css-storefront) .tv-blog-featured {
		padding-top: 25px;
		padding-bottom: 35px;
		gap: 25px 15px;
	}
	:where(body.tv-css-storefront) .tv-blog-featured h2 {
		font-size: 19px;
	}
	:where(body.tv-css-storefront) .tv-blog-featured-image {
		margin-bottom: 14px;
		border-radius: 8px;
	}
	:where(body.tv-css-storefront) .tv-blog-featured .tv-blog-label {
		font-size: 9px;
	}
	:where(body.tv-css-storefront) .tv-blog-featured time {
		font-size: 10px;
	}
	:where(body.tv-css-storefront) .tv-blog-featured:has(> article:only-child) > article {
		grid-template-columns: 1fr;
		gap: 0;
	}
	:where(body.tv-css-storefront) .tv-blog-featured:has(> article:only-child) h2 {
		font-size: 28px;
	}
	:where(body.tv-css-storefront) .tv-blog-heading {
		padding-block: 35px;
	}
	:where(body.tv-css-storefront) .tv-blog-heading h1 {
		font-size: 50px;
	}
	:where(body.tv-css-storefront) .tv-blog-heading .tv-themes-breadcrumb {
		font-size: 11px;
		margin-bottom: 25px;
	}
	:where(body.tv-css-storefront) .tv-blog-layout {
		grid-template-columns: 1fr;
		gap: 55px;
		padding-bottom: 65px;
	}
	:where(body.tv-css-storefront) .tv-blog-post h2 {
		font-size: 33px;
	}
	:where(body.tv-css-storefront) .tv-blog-post-meta {
		gap: 10px 12px;
	}
	:where(body.tv-css-storefront) .tv-blog-post-meta span + span {
		padding-left: 12px;
	}
	:where(body.tv-css-storefront) .tv-blog-post {
		padding-bottom: 35px;
		margin-bottom: 35px;
	}
	:where(body.tv-css-storefront) .tv-blog-excerpt {
		font-size: 16px;
	}
	:where(body.tv-css-storefront) .tv-blog-post-image {
		margin-bottom: 22px;
		border-radius: 10px;
	}
	:where(body.tv-css-storefront) .tv-blog-empty-art {
		min-height: 320px;
		padding: 30px;
	}
	:where(body.tv-css-storefront) .tv-blog-empty-art > span {
		font-size: 57px;
	}
	:where(body.tv-css-storefront) .tv-blog-empty-art > span > span {
		font-size: 95px;
	}
	:where(body.tv-css-storefront) .tv-blog-empty h2 {
		font-size: 35px;
	}
	:where(body.tv-css-storefront) .tv-blog-empty > p {
		font-size: 16px;
	}
	:where(body.tv-css-storefront) .tv-blog-subscribe {
		padding: 30px;
	}
	:where(body.tv-css-storefront) .tv-blog-subscribe h2 {
		font-size: 38px;
	}
	:where(body.tv-css-storefront) .tv-blog-subscribe .tv-button {
		font-size: 14px;
		padding: 16px 20px;
		width: auto;
		gap: 25px;
	}
	:where(body.tv-css-storefront) .tv-blog-sidebar {
		display: grid;
		grid-template-columns: 1fr;
		gap: 35px;
	}
	:where(body.tv-css-storefront) .tv-blog-side-section,
	:where(body.tv-css-storefront) .tv-blog-studio {
		margin-top: 0;
	}
	:where(body.tv-css-storefront) .tv-blog-studio {
		padding: 30px;
	}
	:where(body.tv-css-storefront) .tv-blog-studio h2 {
		font-size: 33px;
	}
	:where(body.tv-css-storefront) .tv-blog-art > span {
		font-size: 42px;
	}
	:where(body.tv-css-storefront) .tv-blog-art > b {
		font-size: 50px;
	}
	:where(body.tv-css-storefront) .tv-blog-featured .tv-blog-art > span {
		font-size: 23px;
	}
	:where(body.tv-css-storefront) .tv-blog-featured .tv-blog-art > b {
		font-size: 25px;
	}
}

/* ==================== LEGAL PAGES ==================== */
body:where(.tv-css-legal):has(.tv-legal-page) {
	background: #fff;
}
body:where(.tv-css-legal):has(.tv-legal-page) .tv-header {
	position: relative;
	color: var(--tv-ink);
	background: #fff;
	border-bottom: 1px solid #e7e8df;
}
body:where(.tv-css-legal).admin-bar:has(.tv-legal-page) .tv-header {
	top: 0;
}
body:where(.tv-css-legal):has(.tv-legal-page) .tv-menu-toggle {
	color: var(--tv-ink) !important;
}
body:where(.tv-css-legal):has(.tv-legal-page) .tv-sale-link {
	color: #268809 !important;
}
:where(body.tv-css-legal) .tvl-document {
	padding-block: 55px 110px;
}
:where(body.tv-css-legal) .tvl-header {
	margin-bottom: 45px;
}
:where(body.tv-css-legal) .tvl-header nav {
	display: flex;
	gap: 12px;
	font-size: 11px;
	color: #8b8d95;
	margin-bottom: 30px;
}
:where(body.tv-css-legal) .tvl-header nav a:hover {
	color: var(--tv-ink);
}
:where(body.tv-css-legal) .tvl-header h1 {
	font-size: clamp(40px, 4.5vw, 72px);
	line-height: 1.05;
	letter-spacing: -0.05em;
	font-weight: 500;
	margin: 0;
}
:where(body.tv-css-legal) .tvl-content {
	font-size: 16px;
	line-height: 1.8;
	color: #6e707a;
	overflow-wrap: anywhere;
}
:where(body.tv-css-legal) .tvl-content p {
	margin: 0 0 22px;
}
:where(body.tv-css-legal) .tvl-content h2,
:where(body.tv-css-legal) .tvl-content h3,
:where(body.tv-css-legal) .tvl-content h4 {
	font-weight: 500;
	color: var(--tv-ink);
	line-height: 1.2;
	letter-spacing: -0.025em;
	margin: 32px 0 16px;
	scroll-margin-top: 30px;
}
:where(body.tv-css-legal) .tvl-content h2 {
	font-size: 22px;
}
:where(body.tv-css-legal) .tvl-content h3 {
	font-size: 20px;
}
:where(body.tv-css-legal) .tvl-content h4 {
	font-size: 18px;
}
:where(body.tv-css-legal) .tvl-content .tvl-service-heading {
	font-size: 36px;
	letter-spacing: -0.04em;
	margin-top: 45px;
}
:where(body.tv-css-legal) .tvl-content .tvl-introduction {
	font-size: 18px;
	line-height: 1.7;
	color: var(--tv-ink);
	margin-bottom: 32px;
}
:where(body.tv-css-legal) .tvl-content a {
	color: var(--tv-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}
:where(body.tv-css-legal) .tvl-content a:hover {
	color: #1466dc;
}
:where(body.tv-css-legal) .tvl-content strong {
	font-weight: 550;
	color: var(--tv-ink);
}
:where(body.tv-css-legal) .tvl-content ul,
:where(body.tv-css-legal) .tvl-content ol {
	padding-left: 23px;
	margin: 0 0 25px;
}
:where(body.tv-css-legal) .tvl-content li {
	margin-bottom: 9px;
	padding-left: 3px;
}
:where(body.tv-css-legal) .tvl-content .tvl-business-details {
	list-style: none;
	background: #f7f8f4;
	border-radius: 10px;
	padding: 22px 25px;
	margin-block: 25px 30px;
	font-size: 14px;
}
:where(body.tv-css-legal) .tvl-content .tvl-business-details li:last-child {
	margin-bottom: 0;
}
:where(body.tv-css-legal) .tvl-draft-note {
	background: var(--tv-paper);
	border: 1px solid var(--tv-line);
	border-left: 3px solid #b9c67b;
	border-radius: 0 8px 8px 0;
	padding: 18px 23px;
	margin: 0 0 30px;
	font-size: 13px;
	line-height: 1.65;
}
:where(body.tv-css-legal) .tvl-draft-note p {
	margin: 0;
}
:where(body.tv-css-legal) .tvl-content figure {
	margin: 25px 0;
	max-width: 100%;
}
:where(body.tv-css-legal) .tvl-content img {
	max-width: 100%;
	height: auto;
}
:where(body.tv-css-legal) .tvl-content .wp-block-table {
	overflow-x: auto;
}
:where(body.tv-css-legal) .tvl-content table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}
:where(body.tv-css-legal) .tvl-content td,
:where(body.tv-css-legal) .tvl-content th {
	border: 1px solid var(--tv-line);
	padding: 14px 18px;
	text-align: left;
	vertical-align: top;
}
:where(body.tv-css-legal) .tvl-content th {
	background: var(--tv-paper);
	color: var(--tv-ink);
}
:where(body.tv-css-legal) .tvl-content blockquote {
	background: var(--tv-paper);
	border-left: 3px solid var(--tv-lime);
	padding: 25px;
	margin: 30px 0;
}
:where(body.tv-css-legal) .tvl-content blockquote p:last-child {
	margin-bottom: 0;
}
:where(body.tv-css-legal) .tvl-content hr {
	border: 0;
	border-top: 1px solid var(--tv-line);
	margin: 35px 0;
}
:where(body.tv-css-legal) .tvl-page-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	margin-top: 35px;
	font-size: 13px;
}
:where(body.tv-css-legal) .tvl-page-links .post-page-numbers {
	padding: 6px 12px;
	border: 1px solid var(--tv-line);
	border-radius: 4px;
	text-decoration: none;
}
:where(body.tv-css-legal) .tvl-page-links .current {
	background: var(--tv-ink);
	color: #fff;
}
@media (min-width: 1600px) {
	:where(body.tv-css-legal) .tvl-content {
		font-size: 17px;
		line-height: 1.85;
	}
	:where(body.tv-css-legal) .tvl-document {
		padding-block: 70px 125px;
	}
}
@media (max-width: 700px) {
	:where(body.tv-css-legal) .tvl-document {
		padding-block: 30px 65px;
	}
	:where(body.tv-css-legal) .tvl-header {
		margin-bottom: 30px;
	}
	:where(body.tv-css-legal) .tvl-header nav {
		font-size: 10px;
		gap: 10px;
		margin-bottom: 25px;
	}
	:where(body.tv-css-legal) .tvl-header h1 {
		font-size: 44px;
	}
	:where(body.tv-css-legal) .tvl-content {
		font-size: 16px;
		line-height: 1.8;
	}
	:where(body.tv-css-legal) .tvl-content h2 {
		font-size: 22px;
		margin-top: 28px;
	}
	:where(body.tv-css-legal) .tvl-content .tvl-service-heading {
		font-size: 32px;
		margin-top: 35px;
	}
	:where(body.tv-css-legal) .tvl-content .tvl-introduction {
		font-size: 18px;
		margin-bottom: 25px;
	}
	:where(body.tv-css-legal) .tvl-draft-note {
		padding: 16px 18px;
		font-size: 12px;
		line-height: 1.7;
		margin-bottom: 25px;
	}
	:where(body.tv-css-legal) .tvl-content .tvl-business-details {
		padding: 20px;
		font-size: 13px;
	}
	:where(body.tv-css-legal) .tvl-content table {
		font-size: 12px;
		min-width: 330px;
	}
}

:where(body.tv-css-legal) .tvl-content .tvl-section-heading {
	font-size: 30px;
	letter-spacing: -0.035em;
	margin-top: 42px;
}
:where(body.tv-css-legal) .tvl-content code {
	font-size: 0.85em;
	background: var(--tv-paper);
	padding: 3px 5px;
	border-radius: 3px;
	color: var(--tv-ink);
}
@media (max-width: 700px) {
	:where(body.tv-css-legal) .tvl-content .tvl-section-heading {
		font-size: 28px;
		margin-top: 35px;
	}
}

/* ==================== BLOG ARTICLES ==================== */
body:where(.tv-css-article).single-post {
	background: #fff;
}
body:where(.tv-css-article).single-post .tv-header {
	position: relative;
	color: var(--tv-ink);
	background: #fff;
	border-bottom: 1px solid #e7e8df;
}
body:where(.tv-css-article).single-post.admin-bar .tv-header {
	top: 0;
}
body:where(.tv-css-article).single-post .tv-menu-toggle {
	color: var(--tv-ink) !important;
}
body:where(.tv-css-article).single-post .tv-sale-link {
	color: #268809 !important;
}
:where(body.tv-css-article) .tva-progress {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	z-index: 100;
	pointer-events: none;
}
:where(body.tv-css-article).admin-bar .tva-progress {
	top: 32px;
}
:where(body.tv-css-article) .tva-progress > span {
	display: block;
	width: 100%;
	height: 100%;
	background: var(--tv-lime);
	transform: scaleX(0);
	transform-origin: left;
	will-change: transform;
}
:where(body.tv-css-article) .tva-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 4%;
	padding-block: 55px 100px;
	align-items: start;
}
:where(body.tv-css-article) .tva-post {
	min-width: 0;
}
:where(body.tv-css-article) .tva-breadcrumb {
	display: flex;
	gap: 10px;
	font-size: 11px;
	color: #8b8d95;
	margin-bottom: 30px;
}
:where(body.tv-css-article) .tva-breadcrumb a:hover {
	color: var(--tv-ink);
}
:where(body.tv-css-article) .tva-categories {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 17px;
}
:where(body.tv-css-article) .tva-categories a {
	font-size: 11px;
	line-height: 1.4;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-weight: 550;
	color: #3b6928;
}
:where(body.tv-css-article) .tva-categories a + a:before {
	content: "/";
	color: #a7ac9d;
	margin-right: 8px;
}
:where(body.tv-css-article) .tva-header h1 {
	font-size: clamp(38px, 3.8vw, 62px);
	line-height: 1.08;
	letter-spacing: -0.05em;
	font-weight: 500;
	margin: 0 0 25px;
	overflow-wrap: anywhere;
}
:where(body.tv-css-article) .tva-meta {
	display: flex;
	gap: 8px 15px;
	flex-wrap: wrap;
	font-size: 11px;
	color: #8b8d95;
	line-height: 1.6;
	margin-bottom: 35px;
}
:where(body.tv-css-article) .tva-meta a {
	color: var(--tv-ink);
}
:where(body.tv-css-article) .tva-meta > span + span {
	border-left: 1px solid var(--tv-line);
	padding-left: 15px;
}
:where(body.tv-css-article) .tva-featured {
	margin: 0 0 40px;
	border-radius: 14px;
	overflow: hidden;
}
:where(body.tv-css-article) .tva-featured img {
	width: 100%;
	height: auto;
}
:where(body.tv-css-article) .tva-featured figcaption {
	padding: 12px 15px;
	background: var(--tv-paper);
	color: #6e707a;
	font-size: 11px;
	line-height: 1.6;
	text-align: center;
}
:where(body.tv-css-article) .tva-sample-cover {
	position: relative;
	background: #07133b url(../images/hero.jpg) center/cover;
	min-height: 440px;
	color: #fff;
	padding: 40px 45px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 35px;
}
:where(body.tv-css-article) .tva-cover-label {
	font-size: 10px;
	letter-spacing: 0.12em;
	color: #fff9;
}
:where(body.tv-css-article) .tva-sample-cover > span:nth-child(2) {
	font-size: clamp(40px, 5vw, 78px);
	font-weight: 500;
	line-height: 0.96;
	letter-spacing: -0.055em;
	position: relative;
	z-index: 1;
}
:where(body.tv-css-article) .tva-sample-cover b {
	font-weight: 500;
	color: var(--tv-lime);
}
:where(body.tv-css-article) .tva-sample-cover > i {
	font-size: 180px;
	line-height: 1;
	font-style: normal;
	position: absolute;
	right: 30px;
	bottom: 25px;
	color: #fff3;
	rotate: 15deg;
}
:where(body.tv-css-article) .tva-content {
	font-size: 17px;
	line-height: 1.85;
	color: #5e6270;
	overflow-wrap: anywhere;
}
:where(body.tv-css-article) .tva-content > * {
	max-width: 100%;
}
:where(body.tv-css-article) .tva-content > :first-child {
	margin-top: 0;
}
:where(body.tv-css-article) .tva-content p {
	margin-bottom: 24px;
}
:where(body.tv-css-article) .tva-content .tva-lead,
:where(body.tv-css-article) .tva-content .has-large-font-size {
	font-size: 23px;
	line-height: 1.55;
	letter-spacing: -0.025em;
	color: var(--tv-ink);
	margin-bottom: 35px;
}
:where(body.tv-css-article) .tva-content h2,
:where(body.tv-css-article) .tva-content h3,
:where(body.tv-css-article) .tva-content h4,
:where(body.tv-css-article) .tva-content h5,
:where(body.tv-css-article) .tva-content h6 {
	color: var(--tv-ink);
	font-weight: 500;
	letter-spacing: -0.035em;
	line-height: 1.18;
	margin: 45px 0 20px;
	scroll-margin-top: 35px;
}
:where(body.tv-css-article) .tva-content h2 {
	font-size: 35px;
}
:where(body.tv-css-article) .tva-content h3 {
	font-size: 27px;
	margin-top: 35px;
}
:where(body.tv-css-article) .tva-content h4 {
	font-size: 23px;
}
:where(body.tv-css-article) .tva-content h5 {
	font-size: 20px;
}
:where(body.tv-css-article) .tva-content h6 {
	font-size: 18px;
}
:where(body.tv-css-article) .tva-content a {
	color: #1466dc;
	text-decoration: underline;
	text-underline-offset: 3px;
}
:where(body.tv-css-article) .tva-content strong {
	font-weight: 600;
	color: var(--tv-ink);
}
:where(body.tv-css-article) .tva-content ul,
:where(body.tv-css-article) .tva-content ol {
	padding-left: 23px;
	margin: 0 0 26px;
}
:where(body.tv-css-article) .tva-content li {
	margin-bottom: 10px;
	padding-left: 3px;
}
:where(body.tv-css-article) .tva-content li::marker {
	color: #1466dc;
}
:where(body.tv-css-article) .tva-content ul ul,
:where(body.tv-css-article) .tva-content ol ol {
	margin: 10px 0 0;
}
:where(body.tv-css-article) .tva-content blockquote,
:where(body.tv-css-article) .tva-content .wp-block-quote {
	background: var(--tv-paper);
	border: 0;
	border-left: 3px solid var(--tv-lime);
	border-radius: 0 12px 12px 0;
	margin: 35px 0;
	padding: 30px 35px;
	font-size: 25px;
	color: var(--tv-ink);
	line-height: 1.45;
	letter-spacing: -0.025em;
}
:where(body.tv-css-article) .tva-content blockquote p {
	margin: 0;
}
:where(body.tv-css-article) .tva-content blockquote cite {
	display: block;
	font-size: 12px;
	color: #8b8d95;
	font-style: normal;
	letter-spacing: 0;
	margin-top: 20px;
}
:where(body.tv-css-article) .tva-content figure {
	margin: 30px 0;
}
:where(body.tv-css-article) .tva-content figure img {
	width: auto;
	max-width: 100%;
	height: auto;
	border-radius: 10px;
}
:where(body.tv-css-article) .tva-content .wp-block-image.alignwide,
:where(body.tv-css-article) .tva-content .wp-block-image.alignfull {
	margin-left: 0;
	margin-right: 0;
	width: 100%;
	max-width: 100%;
}
:where(body.tv-css-article) .tva-content figcaption {
	font-size: 12px;
	text-align: center;
	color: #8b8d95;
	line-height: 1.6;
	margin-top: 10px;
}
:where(body.tv-css-article) .tva-content .wp-block-table {
	overflow-x: auto;
	scrollbar-width: thin;
}
:where(body.tv-css-article) .tva-content table {
	border-collapse: collapse;
	width: 100%;
	font-size: 14px;
	line-height: 1.6;
}
:where(body.tv-css-article) .tva-content th,
:where(body.tv-css-article) .tva-content td {
	border: 1px solid var(--tv-line);
	padding: 15px 18px;
	text-align: left;
	vertical-align: top;
	background: transparent;
}
:where(body.tv-css-article) .tva-content th {
	background: var(--tv-paper);
	color: var(--tv-ink);
	font-weight: 550;
}
:where(body.tv-css-article) .tva-content tbody tr:nth-child(even) {
	background: #f8f9f5;
}
:where(body.tv-css-article) .tva-content hr {
	border: 0;
	border-top: 1px solid var(--tv-line);
	margin: 40px 0;
}
:where(body.tv-css-article) .tva-content pre {
	padding: 25px;
	background: #07133b;
	color: #d9e7ff;
	border-radius: 10px;
	overflow: auto;
	font-size: 13px;
	line-height: 1.7;
	max-width: 100%;
}
:where(body.tv-css-article) .tva-content :not(pre) > code {
	font-size: 0.85em;
	background: #eef1e7;
	padding: 3px 5px;
	border-radius: 3px;
	color: #07133b;
}
:where(body.tv-css-article) .tva-content iframe,
:where(body.tv-css-article) .tva-content video {
	max-width: 100%;
	border: 0;
}
:where(body.tv-css-article) .tva-content .wp-block-embed__wrapper {
	overflow: hidden;
}
:where(body.tv-css-article) .tva-content .wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 30px 0;
}
:where(body.tv-css-article) .tva-content .wp-block-button__link {
	display: inline-flex;
	background: var(--tv-lime);
	color: var(--tv-ink);
	padding: 15px 23px;
	border: 1px solid var(--tv-lime);
	border-radius: 6px;
	font:
		550 14px "Inter Tight",
		Arial,
		sans-serif;
	text-decoration: none;
}
:where(body.tv-css-article) .tva-content .is-style-outline .wp-block-button__link {
	background: transparent;
	border-color: var(--tv-line);
}
:where(body.tv-css-article) .tva-content .wp-block-button__link:hover {
	background: #40b515;
	border-color: #40b515;
}
:where(body.tv-css-article) .tva-content .wp-block-gallery {
	gap: 15px;
}
:where(body.tv-css-article) .tva-content .wp-block-columns {
	gap: 25px;
}
:where(body.tv-css-article) .tva-content .alignleft {
	float: left;
	max-width: 48%;
	margin: 0 25px 20px 0;
}
:where(body.tv-css-article) .tva-content .alignright {
	float: right;
	max-width: 48%;
	margin: 0 0 20px 25px;
}
:where(body.tv-css-article) .tva-content:after {
	content: "";
	display: table;
	clear: both;
}
:where(body.tv-css-article) .tva-content-pages {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	margin-block: 35px;
}
:where(body.tv-css-article) .tva-content-pages .post-page-numbers {
	display: grid;
	place-items: center;
	border: 1px solid var(--tv-line);
	border-radius: 50%;
	width: 34px;
	height: 34px;
	color: var(--tv-ink);
	text-decoration: none;
}
:where(body.tv-css-article) .tva-content-pages .current {
	background: var(--tv-ink);
	color: #fff;
}
:where(body.tv-css-article) .tva-content .post-password-form {
	padding: 30px;
	background: var(--tv-paper);
	border: 1px solid var(--tv-line);
	border-radius: 12px;
}
:where(body.tv-css-article) .tva-content .post-password-form input[type="password"] {
	border: 1px solid var(--tv-line);
	padding: 12px;
	background: #fff;
	border-radius: 5px;
	max-width: 100%;
	font: inherit;
}
:where(body.tv-css-article) .tva-content .post-password-form input[type="submit"] {
	background: var(--tv-lime);
	border: 0;
	border-radius: 5px;
	padding: 14px 20px;
	color: var(--tv-ink);
	font: inherit;
}
:where(body.tv-css-article) .tva-subscribe {
	margin-top: 50px;
	padding: 35px;
	background: var(--tv-paper);
	border-radius: 15px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 25px;
}
:where(body.tv-css-article) .tva-kicker {
	display: block;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.075em;
	color: #6e707a;
	margin-bottom: 15px;
}
:where(body.tv-css-article) .tva-subscribe h2 {
	font-size: 32px;
	letter-spacing: -0.04em;
	line-height: 1.1;
	margin-bottom: 15px;
}
:where(body.tv-css-article) .tva-subscribe p {
	font-size: 13px;
	color: #6e707a;
	line-height: 1.6;
}
:where(body.tv-css-article) .tva-subscribe .tv-button {
	font-size: 12px;
	padding: 14px 18px;
	white-space: nowrap;
	gap: 20px;
}
:where(body.tv-css-article) .tva-share-row {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	align-items: center;
	padding: 30px 0;
	border-bottom: 1px solid var(--tv-line);
}
:where(body.tv-css-article) .tva-tags {
	display: flex;
	gap: 7px;
	align-items: center;
	flex-wrap: wrap;
	font-size: 12px;
}
:where(body.tv-css-article) .tva-tags > span {
	color: #6e707a;
	margin-right: 4px;
}
:where(body.tv-css-article) .tva-tags a {
	padding: 5px 10px;
	background: var(--tv-paper);
	border-radius: 4px;
	font-size: 11px;
}
:where(body.tv-css-article) .tva-share {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
}
:where(body.tv-css-article) .tva-share > span {
	font-size: 11px;
	color: #8b8d95;
	margin-right: 5px;
}
:where(body.tv-css-article) .tva-share a,
:where(body.tv-css-article).tv-storefront .tva-share button {
	display: grid;
	place-items: center;
	border: 1px solid var(--tv-line);
	border-radius: 50%;
	width: 32px;
	height: 32px;
	font-size: 13px;
	background: transparent;
	color: var(--tv-ink);
	padding: 0;
}
:where(body.tv-css-article) .tva-share a:hover,
:where(body.tv-css-article).tv-storefront .tva-share button:hover {
	background: var(--tv-lime);
	border-color: var(--tv-lime);
}
:where(body.tv-css-article) .tva-post-navigation {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 35px;
	padding: 35px 0;
	border-bottom: 1px solid var(--tv-line);
}
:where(body.tv-css-article) .tva-post-navigation a {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
:where(body.tv-css-article) .tva-post-navigation a > span {
	font-size: 10px;
	letter-spacing: 0.05em;
	color: #8b8d95;
	text-transform: uppercase;
}
:where(body.tv-css-article) .tva-post-navigation strong {
	font-size: 20px;
	line-height: 1.3;
	font-weight: 500;
	letter-spacing: -0.025em;
}
:where(body.tv-css-article) .tva-post-navigation time {
	font-size: 11px;
	color: #8b8d95;
}
:where(body.tv-css-article) .tva-next-post {
	text-align: right;
	grid-column: 2;
}
:where(body.tv-css-article) .tva-post-navigation a:hover strong {
	color: #1466dc;
}
:where(body.tv-css-article) .tva-author {
	display: flex;
	gap: 25px;
	padding: 40px 0;
	border-bottom: 1px solid var(--tv-line);
	scroll-margin-top: 30px;
}
:where(body.tv-css-article) .tva-author-avatar {
	flex-shrink: 0;
	width: 75px;
	height: 75px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: #07133b;
	color: var(--tv-lime);
	font-size: 35px;
	font-weight: 500;
}
:where(body.tv-css-article) .tva-author h2 {
	font-size: 27px;
	letter-spacing: -0.035em;
	margin-bottom: 15px;
}
:where(body.tv-css-article) .tva-author .tva-kicker {
	margin-bottom: 8px;
}
:where(body.tv-css-article) .tva-author p {
	font-size: 15px;
	line-height: 1.7;
	color: #6e707a;
	margin-bottom: 15px;
}
:where(body.tv-css-article) .tva-author a {
	font-size: 12px;
	text-decoration: underline;
}
:where(body.tv-css-article) .tva-sidebar {
	min-width: 0;
	padding-top: 10px;
}
:where(body.tv-css-article) .tva-search {
	display: flex;
	align-items: center;
	border-bottom: 1px solid var(--tv-line);
	padding-bottom: 10px;
}
:where(body.tv-css-article) .tva-search input {
	width: 100%;
	border: 0;
	outline: 0;
	background: none;
	font: inherit;
	font-size: 14px;
	padding: 8px 0;
	color: var(--tv-ink);
	min-width: 0;
}
:where(body.tv-css-article).tv-storefront .tva-search button {
	padding: 0 7px;
	border: 0;
	background: transparent;
	font-size: 25px;
	color: var(--tv-ink);
}
:where(body.tv-css-article) .tva-side-section {
	margin-top: 40px;
}
:where(body.tv-css-article) .tva-side-section > h2 {
	font-size: 24px;
	letter-spacing: -0.03em;
	line-height: 1.2;
	border-bottom: 1px solid var(--tv-line);
	padding-bottom: 20px;
	margin-bottom: 12px;
}
:where(body.tv-css-article) .tva-category-link {
	display: flex;
	justify-content: space-between;
	gap: 15px;
	font-size: 13px;
	border-bottom: 1px solid #eee;
	padding: 13px 0;
}
:where(body.tv-css-article) .tva-category-link > span {
	font-size: 11px;
	color: #8b8d95;
}
:where(body.tv-css-article) .tva-category-link:hover {
	color: #1466dc;
}
:where(body.tv-css-article) .tva-recommendation {
	padding: 25px;
	border: 1px solid var(--tv-line);
	border-radius: 15px;
	margin-top: 40px;
}
:where(body.tv-css-article) .tva-recommendation img {
	border-radius: 8px;
	width: 100%;
	height: 140px;
	object-fit: cover;
	object-position: top;
	margin-bottom: 20px;
}
:where(body.tv-css-article) .tva-recommendation h2 {
	font-size: 25px;
	letter-spacing: -0.035em;
	line-height: 1.15;
	margin-bottom: 15px;
}
:where(body.tv-css-article) .tva-recommendation p {
	font-size: 13px;
	line-height: 1.65;
	color: #6e707a;
	margin-bottom: 20px;
}
:where(body.tv-css-article) .tva-recommendation .tv-button {
	display: flex;
	font-size: 12px;
	padding: 13px 17px;
	gap: 15px;
}
:where(body.tv-css-article) .tva-studio-card {
	padding: 30px;
	background: #07133b url(../images/hero.jpg) center/cover;
	color: #fff;
	border-radius: 15px;
	overflow: hidden;
	margin-top: 30px;
}
:where(body.tv-css-article) .tva-studio-card .tva-kicker {
	color: #fff9;
}
:where(body.tv-css-article) .tva-studio-star {
	display: block;
	color: var(--tv-lime);
	font-size: 55px;
	line-height: 1;
	margin: 25px 0;
}
:where(body.tv-css-article) .tva-studio-card h2 {
	font-size: 34px;
	line-height: 1.05;
	letter-spacing: -0.04em;
	margin-bottom: 20px;
}
:where(body.tv-css-article) .tva-studio-card p {
	font-size: 13px;
	line-height: 1.65;
	color: #ffffffb8;
	margin-bottom: 25px;
}
:where(body.tv-css-article) .tva-studio-card a {
	font-size: 12px;
	color: var(--tv-lime);
}
:where(body.tv-css-article) .tva-side-story {
	padding: 20px 0;
	border-bottom: 1px solid var(--tv-line);
}
:where(body.tv-css-article) .tva-side-story h3 {
	font-size: 20px;
	line-height: 1.25;
	letter-spacing: -0.025em;
	margin-bottom: 12px;
}
:where(body.tv-css-article) .tva-side-story time {
	font-size: 11px;
	color: #8b8d95;
}
:where(body.tv-css-article) .tva-comments {
	margin-top: 45px;
	scroll-margin-top: 30px;
}
:where(body.tv-css-article) .tva-comments h2 {
	font-size: 30px;
	line-height: 1.1;
	letter-spacing: -0.04em;
	margin-bottom: 25px;
}
:where(body.tv-css-article) .tva-comments .comment-reply-title {
	font-size: 30px;
	font-weight: 500;
	letter-spacing: -0.035em;
	line-height: 1.15;
	margin-bottom: 20px;
}
:where(body.tv-css-article) .tva-comments .comment-notes,
:where(body.tv-css-article) .tva-comments .logged-in-as,
:where(body.tv-css-article) .tva-comments .must-log-in {
	font-size: 12px;
	color: #8b8d95;
	line-height: 1.65;
	margin-bottom: 25px;
}
:where(body.tv-css-article) .tva-comments .comment-notes a,
:where(body.tv-css-article) .tva-comments .logged-in-as a {
	color: var(--tv-ink);
	text-decoration: underline;
}
:where(body.tv-css-article) .tva-comments label {
	display: block;
	font-size: 12px;
	margin-bottom: 8px;
	color: var(--tv-ink);
}
:where(body.tv-css-article) .tva-comments input:not([type="checkbox"]):not([type="submit"]),
:where(body.tv-css-article) .tva-comments textarea {
	font: inherit;
	font-size: 16px;
	border: 1px solid var(--tv-line);
	background: #fff;
	color: var(--tv-ink);
	border-radius: 6px;
	padding: 12px;
	width: 100%;
	max-width: 100%;
}
:where(body.tv-css-article) .tva-comments textarea {
	resize: vertical;
	min-height: 160px;
}
:where(body.tv-css-article) .tva-comments .comment-form > p {
	margin-bottom: 22px;
}
:where(body.tv-css-article) .tva-comments .comment-form-cookies-consent {
	display: flex;
	align-items: start;
	gap: 10px;
	font-size: 12px;
}
:where(body.tv-css-article) .tva-comments .comment-form-cookies-consent input {
	margin-top: 3px;
	accent-color: var(--tv-ink);
}
:where(body.tv-css-article) .tva-comments .comment-form-cookies-consent label {
	font-size: 11px;
	line-height: 1.65;
	color: #6e707a;
}
:where(body.tv-css-article) .tva-comments .tva-comment-submit {
	border-radius: 6px;
	background: var(--tv-lime);
	color: var(--tv-ink);
	font-size: 13px;
	padding: 15px 25px;
}
:where(body.tv-css-article) .tva-comments .tva-comment-submit:hover {
	background: #40b515;
}
:where(body.tv-css-article) .tva-comment-list {
	list-style: none;
	padding: 0;
	margin: 0 0 45px;
}
:where(body.tv-css-article) .tva-comment-list .children {
	list-style: none;
	padding: 25px 0 0 25px;
}
:where(body.tv-css-article) .tva-comment-list li {
	margin-bottom: 30px;
}
:where(body.tv-css-article) .tva-comment-list .comment-body {
	border-bottom: 1px solid var(--tv-line);
	padding-bottom: 25px;
	font-size: 15px;
	line-height: 1.7;
	color: #6e707a;
}
:where(body.tv-css-article) .tva-comment-list .comment-author {
	color: var(--tv-ink);
	font-size: 14px;
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}
:where(body.tv-css-article) .tva-comment-list .avatar {
	border-radius: 50%;
	width: 44px;
	height: 44px;
	margin-right: 5px;
}
:where(body.tv-css-article) .tva-comment-list .fn {
	font-style: normal;
	font-weight: 550;
}
:where(body.tv-css-article) .tva-comment-list .comment-metadata {
	font-size: 11px;
	color: #8b8d95;
	margin: 10px 0 15px;
}
:where(body.tv-css-article) .tva-comment-list .reply {
	margin-top: 15px;
	font-size: 12px;
	text-decoration: underline;
	color: var(--tv-ink);
}
:where(body.tv-css-article) .tva-comments #cancel-comment-reply-link {
	font-size: 12px;
	margin-left: 15px;
	color: #6e707a;
}
:where(body.tv-css-article) .tva-comments-closed {
	color: #8b8d95;
	font-size: 13px;
}
@media (min-width: 1700px) {
	:where(body.tv-css-article) .tva-layout {
		grid-template-columns: minmax(0, 1fr) 380px;
		gap: 4%;
	}
	:where(body.tv-css-article) .tva-sidebar {
		padding-left: 15px;
	}
	:where(body.tv-css-article) .tva-content {
		font-size: 19px;
	}
	:where(body.tv-css-article) .tva-header h1 {
		font-size: 65px;
	}
	:where(body.tv-css-article) .tva-content h2 {
		font-size: 40px;
	}
	:where(body.tv-css-article) .tva-sample-cover {
		min-height: 520px;
	}
}
@media (max-width: 1100px) {
	:where(body.tv-css-article) .tva-layout {
		grid-template-columns: minmax(0, 1fr) 270px;
		gap: 40px;
	}
	:where(body.tv-css-article) .tva-header h1 {
		font-size: 44px;
	}
	:where(body.tv-css-article) .tva-content h2 {
		font-size: 31px;
	}
	:where(body.tv-css-article) .tva-subscribe {
		display: block;
		padding: 30px;
	}
	:where(body.tv-css-article) .tva-subscribe .tv-button {
		margin-top: 22px;
	}
	:where(body.tv-css-article) .tva-sample-cover {
		min-height: 370px;
		padding: 35px;
	}
	:where(body.tv-css-article) .tva-sample-cover > span:nth-child(2) {
		font-size: 56px;
	}
	:where(body.tv-css-article) .tva-sample-cover > i {
		font-size: 140px;
	}
	:where(body.tv-css-article) .tva-share-row {
		flex-wrap: wrap;
	}
	:where(body.tv-css-article) .tva-studio-card {
		padding: 25px;
	}
	:where(body.tv-css-article) .tva-recommendation {
		padding: 22px;
	}
}
@media (max-width: 850px) {
	:where(body.tv-css-article) .tva-layout {
		grid-template-columns: minmax(0, 1fr) 230px;
		gap: 30px;
	}
	:where(body.tv-css-article) .tva-header h1 {
		font-size: 39px;
	}
	:where(body.tv-css-article) .tva-content {
		font-size: 16px;
	}
	:where(body.tv-css-article) .tva-content .tva-lead {
		font-size: 21px;
	}
	:where(body.tv-css-article) .tva-content h2 {
		font-size: 29px;
	}
	:where(body.tv-css-article) .tva-meta {
		font-size: 10px;
		gap: 6px 10px;
	}
	:where(body.tv-css-article) .tva-meta > span + span {
		padding-left: 10px;
	}
	:where(body.tv-css-article) .tva-sample-cover {
		min-height: 340px;
		padding: 30px;
	}
	:where(body.tv-css-article) .tva-sample-cover > span:nth-child(2) {
		font-size: 48px;
	}
	:where(body.tv-css-article) .tva-sample-cover > i {
		font-size: 110px;
		right: 15px;
	}
	:where(body.tv-css-article) .tva-recommendation h2 {
		font-size: 23px;
	}
	:where(body.tv-css-article) .tva-studio-card h2 {
		font-size: 30px;
	}
	:where(body.tv-css-article) .tva-recommendation,
	:where(body.tv-css-article) .tva-studio-card {
		padding: 20px;
	}
	:where(body.tv-css-article) .tva-content th,
	:where(body.tv-css-article) .tva-content td {
		padding: 12px;
	}
	:where(body.tv-css-article) .tva-content blockquote {
		padding: 25px;
		font-size: 23px;
	}
	:where(body.tv-css-article) .tva-post-navigation strong {
		font-size: 17px;
	}
	:where(body.tv-css-article) .tva-post-navigation {
		gap: 20px;
	}
}
@media (max-width: 700px) {
	:where(body.tv-css-article) .tva-layout {
		grid-template-columns: 1fr;
		gap: 55px;
		padding-block: 30px 65px;
	}
	:where(body.tv-css-article) .tva-breadcrumb {
		margin-bottom: 25px;
		font-size: 10px;
	}
	:where(body.tv-css-article) .tva-header h1 {
		font-size: 40px;
		line-height: 1.08;
		margin-bottom: 23px;
	}
	:where(body.tv-css-article) .tva-categories a {
		font-size: 10px;
	}
	:where(body.tv-css-article) .tva-meta {
		font-size: 10px;
		margin-bottom: 28px;
		gap: 8px 10px;
	}
	:where(body.tv-css-article) .tva-featured {
		margin-bottom: 30px;
		border-radius: 10px;
	}
	:where(body.tv-css-article) .tva-sample-cover {
		min-height: 360px;
		padding: 30px 25px;
		gap: 30px;
	}
	:where(body.tv-css-article) .tva-sample-cover > span:nth-child(2) {
		font-size: 52px;
	}
	:where(body.tv-css-article) .tva-cover-label {
		font-size: 8px;
	}
	:where(body.tv-css-article) .tva-sample-cover > i {
		font-size: 130px;
		bottom: 20px;
		right: 10px;
	}
	:where(body.tv-css-article) .tva-content {
		font-size: 17px;
		line-height: 1.8;
	}
	:where(body.tv-css-article) .tva-content .tva-lead {
		font-size: 22px;
		line-height: 1.5;
	}
	:where(body.tv-css-article) .tva-content h2 {
		font-size: 31px;
		margin-top: 35px;
	}
	:where(body.tv-css-article) .tva-content h3 {
		font-size: 26px;
	}
	:where(body.tv-css-article) .tva-content ul,
	:where(body.tv-css-article) .tva-content ol {
		padding-left: 20px;
	}
	:where(body.tv-css-article) .tva-content blockquote {
		padding: 25px;
		font-size: 24px;
		margin-block: 30px;
	}
	:where(body.tv-css-article) .tva-content table {
		font-size: 12px;
		min-width: 350px;
	}
	:where(body.tv-css-article) .tva-content th,
	:where(body.tv-css-article) .tva-content td {
		padding: 12px;
	}
	:where(body.tv-css-article) .tva-content .alignleft,
	:where(body.tv-css-article) .tva-content .alignright {
		float: none;
		margin: 25px 0;
		max-width: 100%;
	}
	:where(body.tv-css-article) .tva-content .wp-block-button__link {
		font-size: 13px;
		padding: 14px 20px;
	}
	:where(body.tv-css-article) .tva-subscribe {
		padding: 30px 25px;
		margin-top: 35px;
	}
	:where(body.tv-css-article) .tva-subscribe h2 {
		font-size: 33px;
	}
	:where(body.tv-css-article) .tva-share-row {
		gap: 20px;
		padding: 25px 0;
	}
	:where(body.tv-css-article) .tva-post-navigation {
		grid-template-columns: 1fr;
		gap: 25px;
	}
	:where(body.tv-css-article) .tva-next-post {
		grid-column: 1;
		text-align: left;
	}
	:where(body.tv-css-article) .tva-post-navigation strong {
		font-size: 22px;
	}
	:where(body.tv-css-article) .tva-author {
		gap: 20px;
		padding-block: 30px;
	}
	:where(body.tv-css-article) .tva-author-avatar {
		width: 55px;
		height: 55px;
		font-size: 28px;
	}
	:where(body.tv-css-article) .tva-author h2 {
		font-size: 25px;
	}
	:where(body.tv-css-article) .tva-author p {
		font-size: 14px;
	}
	:where(body.tv-css-article) .tva-sidebar {
		display: grid;
		grid-template-columns: 1fr;
		gap: 30px;
	}
	:where(body.tv-css-article) .tva-side-section,
	:where(body.tv-css-article) .tva-recommendation,
	:where(body.tv-css-article) .tva-studio-card {
		margin-top: 0;
	}
	:where(body.tv-css-article) .tva-recommendation,
	:where(body.tv-css-article) .tva-studio-card {
		padding: 30px;
	}
	:where(body.tv-css-article) .tva-recommendation img {
		height: 220px;
	}
	:where(body.tv-css-article) .tva-recommendation h2 {
		font-size: 29px;
	}
	:where(body.tv-css-article) .tva-recommendation .tv-button {
		font-size: 13px;
		padding: 15px 20px;
	}
	:where(body.tv-css-article) .tva-studio-card h2 {
		font-size: 40px;
	}
	:where(body.tv-css-article) .tva-studio-star {
		font-size: 65px;
	}
	:where(body.tv-css-article) .tva-comments .comment-reply-title {
		font-size: 29px;
	}
	:where(body.tv-css-article) .tva-comments .tva-comment-submit {
		width: 100%;
		text-align: center;
		justify-content: center;
	}
	:where(body.tv-css-article) .tva-comment-list .children {
		padding-left: 15px;
	}
	:where(body.tv-css-article) .tva-content .post-password-form {
		padding: 25px;
	}
	:where(body.tv-css-article) .tva-content .post-password-form label {
		display: block;
	}
	:where(body.tv-css-article) .tva-content .post-password-form input[type="submit"] {
		margin-top: 15px;
	}
	:where(body.tv-css-article).admin-bar .tva-progress {
		top: 46px;
	}
}
@media (max-width: 380px) {
	:where(body.tv-css-article) .tva-header h1 {
		font-size: 35px;
	}
	:where(body.tv-css-article) .tva-sample-cover > span:nth-child(2) {
		font-size: 44px;
	}
	:where(body.tv-css-article) .tva-sample-cover {
		min-height: 320px;
	}
	:where(body.tv-css-article) .tva-content h2 {
		font-size: 28px;
	}
	:where(body.tv-css-article) .tva-content .tva-lead {
		font-size: 20px;
	}
}
@media (prefers-reduced-motion: reduce) {
	:where(body.tv-css-article) .tva-progress > span {
		will-change: auto;
	}
}

/* ==================== HIRE US ==================== */
body:where(.tv-css-hire):has(.tv-hire-page) {
	background: #fff;
}
body:where(.tv-css-hire):has(.tv-hire-page) .tv-header {
	position: relative;
	color: var(--tv-ink);
	background: #fff;
	border-bottom: 1px solid #e7e8df;
}
body:where(.tv-css-hire).admin-bar:has(.tv-hire-page) .tv-header {
	top: 0;
}
body:where(.tv-css-hire):has(.tv-hire-page) .tv-menu-toggle {
	color: var(--tv-ink) !important;
}
body:where(.tv-css-hire):has(.tv-hire-page) .tv-sale-link {
	color: #268809 !important;
}
:where(body.tv-css-hire) .tvh-hero {
	overflow: hidden;
	background: #f6f6f4 url(../images/hero-background.jpg) center/cover;
}
:where(body.tv-css-hire) .tvh-hero > .tv-shell {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: 35px;
	align-items: center;
	min-height: 760px;
	padding-block: 100px;
}
:where(body.tv-css-hire) .tvh-hero-copy {
	position: relative;
	z-index: 3;
}
:where(body.tv-css-hire) .tvh-hero h1 {
	font-size: clamp(53px, 5.4vw, 90px);
	font-weight: 500;
	line-height: 1.03;
	letter-spacing: -0.06em;
	margin: 0 0 25px;
}
:where(body.tv-css-hire) .tvh-hero h1 > span {
	color: #1466dc;
}
:where(body.tv-css-hire) .tvh-hero-copy > p {
	font-size: 17px;
	color: #6e707a;
	line-height: 1.65;
	margin-bottom: 30px;
}
:where(body.tv-css-hire) .tvh-hero-work {
	display: block;
	width: fit-content;
	margin-top: 25px;
	font-size: 12px;
}
:where(body.tv-css-hire) .tvh-hero-work span {
	padding-left: 20px;
}
:where(body.tv-css-hire) .tvh-devices {
	position: relative;
	height: 560px;
	isolation: isolate;
}
:where(body.tv-css-hire) .tvh-orbit {
	position: absolute;
	inset: -30px -100px;
	border-radius: 50%;
	background: radial-gradient(ellipse, #a5c4fb50, transparent 65%);
	z-index: -1;
}
:where(body.tv-css-hire) .tvh-device {
	position: absolute;
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 25px 45px #07133b26;
	border: 6px solid #fff;
	overflow: hidden;
}
:where(body.tv-css-hire) .tvh-device img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
}
:where(body.tv-css-hire) .tvh-device-bar {
	height: 22px;
	display: flex;
	align-items: center;
	gap: 4px;
	background: #fff;
	padding: 0 6px;
	position: relative;
}
:where(body.tv-css-hire) .tvh-device-bar i {
	width: 4px;
	height: 4px;
	display: block;
	border-radius: 50%;
	background: #ff7f70;
}
:where(body.tv-css-hire) .tvh-device-bar i:nth-child(2) {
	background: #e5c348;
}
:where(body.tv-css-hire) .tvh-device-bar i:nth-child(3) {
	background: #81bd70;
}
:where(body.tv-css-hire) .tvh-device-bar > span {
	font-size: 7px;
	color: #9b9eaa;
	position: absolute;
	left: 50%;
	translate: -50% 0;
}
:where(body.tv-css-hire) .tvh-device-0 {
	width: 90%;
	height: 325px;
	left: 2%;
	top: 145px;
	z-index: 3;
	rotate: -7deg;
	border-width: 8px;
}
:where(body.tv-css-hire) .tvh-device-0:after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	border-bottom: 10px solid #dce0e6;
}
:where(body.tv-css-hire) .tvh-device-1 {
	width: 55%;
	height: 260px;
	right: -6%;
	top: 0;
	rotate: 7deg;
	z-index: 1;
}
:where(body.tv-css-hire) .tvh-device-2 {
	width: 27%;
	height: 265px;
	left: 0;
	top: 15px;
	rotate: -12deg;
	z-index: 2;
	border-radius: 20px;
	border-width: 7px;
	border-color: #07133b;
}
:where(body.tv-css-hire) .tvh-device-2 .tvh-device-bar {
	display: none;
}
:where(body.tv-css-hire) .tvh-device-3 {
	width: 22%;
	height: 230px;
	right: -2%;
	bottom: 5px;
	rotate: 10deg;
	z-index: 5;
	border-radius: 20px;
	border: 6px solid #07133b;
}
:where(body.tv-css-hire) .tvh-device-3 .tvh-device-bar {
	display: none;
}
:where(body.tv-css-hire) .tvh-hero-star {
	position: absolute;
	left: 45%;
	top: 20px;
	font-size: 90px;
	line-height: 1;
	color: #1466dc;
	z-index: 4;
	animation: tv-spin 45s linear infinite;
}
:where(body.tv-css-hire) .tvh-design-note {
	position: absolute;
	bottom: 2px;
	left: 10%;
	display: flex;
	align-items: center;
	gap: 13px;
	background: #fff;
	padding: 15px 22px;
	border-radius: 10px;
	box-shadow: 0 10px 30px #07133b16;
	z-index: 5;
	font-size: 14px;
	line-height: 1.2;
	rotate: -4deg;
}
:where(body.tv-css-hire) .tvh-design-note > span {
	display: grid;
	place-items: center;
	background: var(--tv-lime);
	border-radius: 50%;
	width: 30px;
	height: 30px;
}
:where(body.tv-css-hire) .tvh-design-note b {
	font-weight: 550;
}
:where(body.tv-css-hire) .tvh-section-heading {
	text-align: center;
	margin-bottom: 55px;
}
:where(body.tv-css-hire) .tvh-section-heading h2 {
	margin-bottom: 22px;
}
:where(body.tv-css-hire) .tvh-section-heading > p {
	font-size: 17px;
	color: #6e707a;
	line-height: 1.65;
}
:where(body.tv-css-hire) .tvh-packages {
	background: var(--tv-paper);
}
:where(body.tv-css-hire) .tvh-package-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 25px;
}
:where(body.tv-css-hire) .tvh-package {
	border: 1px solid var(--tv-line);
	background: #fff;
	border-radius: 28px;
	padding: 45px 35px;
	display: flex;
	flex-direction: column;
	align-items: start;
}
:where(body.tv-css-hire) .tvh-package-featured {
	box-shadow: 0 15px 40px #07133b0a;
	border-color: #07133b;
	position: relative;
}
:where(body.tv-css-hire) .tvh-package-tag {
	display: inline-block;
	border-radius: 3px;
	font-size: 11px;
	line-height: 1.4;
	padding: 5px 10px;
	font-weight: 550;
	background: #ffcc55;
	margin-bottom: 20px;
}
:where(body.tv-css-hire) .tvh-package-featured .tvh-package-tag {
	background: #fb5c27;
	color: #fff;
}
:where(body.tv-css-hire) .tvh-package:last-child .tvh-package-tag {
	background: #f22d25;
	color: #fff;
}
:where(body.tv-css-hire) .tvh-package h3 {
	font-size: 27px;
	line-height: 1.1;
	letter-spacing: -0.035em;
	margin-bottom: 25px;
}
:where(body.tv-css-hire) .tvh-package-price {
	font-size: 47px;
	line-height: 1.1;
	letter-spacing: -0.055em;
	font-weight: 500;
	margin-bottom: 30px;
}
:where(body.tv-css-hire) .tvh-package-price > span {
	display: block;
	font-size: 12px;
	color: #8b8d95;
	letter-spacing: 0;
	font-weight: 400;
	margin-top: 10px;
}
:where(body.tv-css-hire) .tvh-package > p {
	font-size: 15px;
	line-height: 1.7;
	color: #6e707a;
	margin-bottom: 25px;
}
:where(body.tv-css-hire) .tvh-package ul {
	list-style: none;
	padding: 0;
	margin: 0 0 30px;
	font-size: 14px;
	line-height: 1.6;
}
:where(body.tv-css-hire) .tvh-package li {
	padding-left: 22px;
	position: relative;
	margin-bottom: 13px;
}
:where(body.tv-css-hire) .tvh-package li:before {
	content: "\2713";
	position: absolute;
	left: 0;
	color: #3e8b24;
	font-size: 13px;
}
:where(body.tv-css-hire) .tvh-package .tv-button {
	margin-top: auto;
	width: 100%;
	font-size: 13px;
	padding: 15px 20px;
	gap: 15px;
}
:where(body.tv-css-hire) .tvh-package-featured .tv-button {
	background: #07133b;
	color: #fff !important;
}
:where(body.tv-css-hire) .tvh-package-featured .tv-button:hover {
	background: #18306a;
}
:where(body.tv-css-hire) .tvh-pricing-note {
	text-align: center;
	font-size: 12px;
	line-height: 1.6;
	color: #6e707a;
	margin-top: 28px !important;
}
:where(body.tv-css-hire) .tvh-process-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 6%;
}
:where(body.tv-css-hire) .tvh-process-icon {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 30px;
	border-bottom: 1px solid var(--tv-line);
	padding-bottom: 25px;
}
:where(body.tv-css-hire) .tvh-process-icon > span {
	display: grid;
	place-items: center;
	font-size: 45px;
	color: #1466dc;
	background: #f0f4fa;
	border-radius: 18px;
	width: 85px;
	height: 85px;
	line-height: 1;
}
:where(body.tv-css-hire) .tvh-process-grid article:nth-child(2) .tvh-process-icon > span {
	background: #f7f1e8;
	color: #e49428;
}
:where(body.tv-css-hire) .tvh-process-grid article:nth-child(3) .tvh-process-icon > span {
	background: #f0f4e8;
	color: #6c8d32;
}
:where(body.tv-css-hire) .tvh-process-icon b {
	font-size: 45px;
	line-height: 1;
	font-weight: 400;
	letter-spacing: -0.05em;
	color: #d3d6c8;
}
:where(body.tv-css-hire) .tvh-process-grid h3 {
	font-size: 26px;
	line-height: 1.15;
	letter-spacing: -0.035em;
	margin-bottom: 20px;
}
:where(body.tv-css-hire) .tvh-process-grid p {
	font-size: 15px;
	color: #6e707a;
	line-height: 1.75;
}
:where(body.tv-css-hire) .tvh-portfolio {
	background: #f7f8f4;
}
:where(body.tv-css-hire) .tvh-portfolio-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 45px 35px;
}
:where(body.tv-css-hire) .tvh-project-image {
	display: block;
	position: relative;
	aspect-ratio: 1.5;
	overflow: hidden;
	background: #eef0e9;
	border-radius: 16px;
	border: 9px solid #fff;
	box-shadow: 0 8px 25px #07133b08;
}
:where(body.tv-css-hire) .tvh-project-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
	transition: transform 0.4s;
}
:where(body.tv-css-hire) .tvh-project-image > span {
	position: absolute;
	top: 50%;
	left: 50%;
	translate: -50% -40%;
	opacity: 0;
	background: #07133b;
	color: #fff;
	border-radius: 6px;
	padding: 13px 22px;
	font-size: 13px;
	white-space: nowrap;
	transition: 0.25s;
}
:where(body.tv-css-hire) .tvh-project-image:hover img {
	transform: scale(1.035);
}
:where(body.tv-css-hire) .tvh-project-image:hover > span,
:where(body.tv-css-hire) .tvh-project-image:focus-visible > span {
	opacity: 1;
	translate: -50% -50%;
}
:where(body.tv-css-hire) .tvh-project-meta {
	display: flex;
	justify-content: space-between;
	gap: 15px;
	font-size: 11px;
	color: #6e707a;
	margin: 20px 0 10px;
}
:where(body.tv-css-hire) .tvh-project-meta a {
	color: var(--tv-ink);
}
:where(body.tv-css-hire) .tvh-portfolio-grid h3 {
	font-size: 27px;
	line-height: 1.2;
	letter-spacing: -0.035em;
}
:where(body.tv-css-hire) .tvh-portfolio-grid h3 a:hover {
	color: #1466dc;
}
:where(body.tv-css-hire) .tvh-examples-empty {
	text-align: center;
	color: #6e707a;
	font-size: 17px;
}
:where(body.tv-css-hire) .tvh-quote {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: 9%;
	align-items: start;
	scroll-margin-top: 40px;
}
:where(body.tv-css-hire) .tvh-quote-copy h2 {
	font-size: clamp(40px, 4.2vw, 70px);
	margin-bottom: 30px;
}
:where(body.tv-css-hire) .tvh-quote-copy h2 > span {
	color: #8e9384;
}
:where(body.tv-css-hire) .tvh-quote-copy > p {
	font-size: 17px;
	line-height: 1.7;
	color: #6e707a;
	max-width: 390px;
	margin-bottom: 30px;
}
:where(body.tv-css-hire) .tvh-email {
	font-size: 23px;
	letter-spacing: -0.025em;
	display: inline-block;
	border-bottom: 1px solid var(--tv-line);
	padding-bottom: 8px;
}
:where(body.tv-css-hire) .tvh-quote-note {
	display: flex;
	gap: 20px;
	align-items: center;
	margin-top: 45px;
}
:where(body.tv-css-hire) .tvh-quote-note > span {
	font-size: 60px;
	color: #1466dc;
	line-height: 1;
}
:where(body.tv-css-hire) .tvh-quote-note p {
	font-size: 13px;
	color: #6e707a;
	line-height: 1.6;
}
:where(body.tv-css-hire) .tvh-quote-panel {
	padding: 35px;
	background: var(--tv-paper);
	border: 1px solid #e4e6db;
	border-radius: 22px;
}
:where(body.tv-css-hire) .tvh-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}
:where(body.tv-css-hire) .tvh-quote-form label {
	display: block;
	font-size: 12px;
	font-weight: 500;
	color: var(--tv-ink);
	margin-bottom: 20px;
}
:where(body.tv-css-hire) .tvh-quote-form label > span:not(.tvh-optional) {
	color: #6e707a;
}
:where(body.tv-css-hire) .tvh-quote-form .tvh-optional {
	font-size: 10px;
	color: #8b8d95;
	font-weight: 400;
}
:where(body.tv-css-hire) .tvh-quote-form input:not([type="checkbox"]),
:where(body.tv-css-hire) .tvh-quote-form select,
:where(body.tv-css-hire) .tvh-quote-form textarea {
	display: block;
	font:
		400 14px "Inter Tight",
		Arial,
		sans-serif;
	line-height: 1.5;
	width: 100%;
	color: var(--tv-ink);
	padding: 12px 0 10px;
	background: transparent;
	border: 0;
	border-bottom: 1px solid #c9cdbd;
	border-radius: 0;
	outline-offset: 3px;
}
:where(body.tv-css-hire) .tvh-quote-form textarea {
	resize: vertical;
	min-height: 140px;
}
:where(body.tv-css-hire) .tvh-quote-form input::placeholder,
:where(body.tv-css-hire) .tvh-quote-form textarea::placeholder {
	color: #8b8d95;
}
:where(body.tv-css-hire) .tvh-quote-form select {
	padding-right: 20px;
}
:where(body.tv-css-hire) .tvh-quote-form .tvh-consent {
	display: flex;
	gap: 10px;
	align-items: start;
	font-size: 11px;
	line-height: 1.6;
	font-weight: 400;
	margin-block: 10px 25px;
}
:where(body.tv-css-hire) .tvh-consent input {
	accent-color: var(--tv-ink);
	flex-shrink: 0;
	margin-top: 3px;
	width: 15px;
	height: 15px;
}
:where(body.tv-css-hire) .tvh-consent a {
	text-decoration: underline;
}
:where(body.tv-css-hire) .tvh-quote-form .tv-button {
	font-size: 13px;
	width: 100%;
	justify-content: space-between;
	border-radius: 6px;
	padding: 16px 20px;
}
:where(body.tv-css-hire) .tvh-quote-form .tv-button:hover {
	background: #40b515;
}
:where(body.tv-css-hire) .tvh-form-trap {
	position: absolute;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
:where(body.tv-css-hire) .tvh-form-message {
	text-align: center;
	padding: 45px 15px;
}
:where(body.tv-css-hire) .tvh-form-message > span {
	display: grid;
	place-items: center;
	margin: 0 auto 25px;
	border-radius: 50%;
	background: var(--tv-lime);
	width: 60px;
	height: 60px;
	font-size: 30px;
}
:where(body.tv-css-hire) .tvh-form-message h3 {
	font-size: 32px;
	letter-spacing: -0.04em;
	line-height: 1.2;
	margin-bottom: 20px;
}
:where(body.tv-css-hire) .tvh-form-message p {
	color: #6e707a;
	font-size: 16px;
	line-height: 1.7;
	margin-bottom: 25px;
}
:where(body.tv-css-hire) .tvh-form-message a {
	font-size: 13px;
	text-decoration: underline;
}
:where(body.tv-css-hire) .tvh-form-error {
	padding: 15px;
	border: 1px solid #d5a88e;
	background: #fff8ef;
	border-radius: 8px;
	color: #88482e;
	font-size: 13px;
	line-height: 1.6;
	margin-bottom: 25px !important;
}
@media (min-width: 1700px) {
	:where(body.tv-css-hire) .tvh-hero > .tv-shell {
		min-height: 850px;
	}
	:where(body.tv-css-hire) .tvh-devices {
		height: 650px;
	}
	:where(body.tv-css-hire) .tvh-device-0 {
		height: 390px;
		top: 170px;
	}
	:where(body.tv-css-hire) .tvh-device-1 {
		height: 310px;
	}
	:where(body.tv-css-hire) .tvh-device-2 {
		height: 320px;
	}
	:where(body.tv-css-hire) .tvh-device-3 {
		height: 300px;
	}
	:where(body.tv-css-hire) .tvh-package {
		padding: 50px 45px;
	}
}
@media (max-width: 1150px) {
	:where(body.tv-css-hire) .tvh-hero > .tv-shell {
		min-height: 690px;
		gap: 15px;
		padding-block: 80px;
	}
	:where(body.tv-css-hire) .tvh-devices {
		height: 480px;
	}
	:where(body.tv-css-hire) .tvh-device-0 {
		height: 275px;
		top: 135px;
	}
	:where(body.tv-css-hire) .tvh-device-1 {
		height: 230px;
	}
	:where(body.tv-css-hire) .tvh-device-2 {
		height: 220px;
		top: 20px;
	}
	:where(body.tv-css-hire) .tvh-device-3 {
		height: 200px;
	}
	:where(body.tv-css-hire) .tvh-hero h1 {
		font-size: 62px;
	}
	:where(body.tv-css-hire) .tvh-hero-copy > p {
		font-size: 15px;
	}
	:where(body.tv-css-hire) .tvh-hero-star {
		font-size: 65px;
	}
	:where(body.tv-css-hire) .tvh-package {
		padding: 35px 25px;
	}
	:where(body.tv-css-hire) .tvh-package-price {
		font-size: 40px;
	}
	:where(body.tv-css-hire) .tvh-package-grid {
		gap: 20px;
	}
	:where(body.tv-css-hire) .tvh-package h3 {
		font-size: 25px;
	}
	:where(body.tv-css-hire) .tvh-package > p,
	:where(body.tv-css-hire) .tvh-package ul {
		font-size: 13px;
	}
	:where(body.tv-css-hire) .tvh-process-grid {
		gap: 30px;
	}
	:where(body.tv-css-hire) .tvh-process-grid h3 {
		font-size: 23px;
	}
	:where(body.tv-css-hire) .tvh-quote {
		gap: 6%;
	}
	:where(body.tv-css-hire) .tvh-quote-panel {
		padding: 30px;
	}
	:where(body.tv-css-hire) .tvh-form-row {
		gap: 15px;
	}
}
@media (max-width: 900px) {
	:where(body.tv-css-hire) .tvh-hero > .tv-shell {
		grid-template-columns: 1fr 1fr;
		min-height: 650px;
	}
	:where(body.tv-css-hire) .tvh-hero h1 {
		font-size: 54px;
	}
	:where(body.tv-css-hire) .tvh-devices {
		height: 420px;
	}
	:where(body.tv-css-hire) .tvh-device-0 {
		height: 220px;
		top: 130px;
		left: -2%;
	}
	:where(body.tv-css-hire) .tvh-device-1 {
		height: 200px;
		width: 60%;
		top: 30px;
	}
	:where(body.tv-css-hire) .tvh-device-2 {
		height: 190px;
		width: 30%;
	}
	:where(body.tv-css-hire) .tvh-device-3 {
		height: 185px;
		width: 26%;
	}
	:where(body.tv-css-hire) .tvh-design-note {
		font-size: 11px;
		padding: 12px 15px;
		left: 2%;
		bottom: -5px;
		gap: 8px;
	}
	:where(body.tv-css-hire) .tvh-hero-star {
		top: 35px;
		left: 40%;
		font-size: 55px;
	}
	:where(body.tv-css-hire) .tvh-package-grid {
		gap: 15px;
	}
	:where(body.tv-css-hire) .tvh-package {
		padding: 30px 20px;
	}
	:where(body.tv-css-hire) .tvh-package .tv-button {
		font-size: 11px;
		padding: 13px 15px;
	}
	:where(body.tv-css-hire) .tvh-package-price {
		font-size: 35px;
	}
	:where(body.tv-css-hire) .tvh-package-tag {
		font-size: 10px;
	}
	:where(body.tv-css-hire) .tvh-process-grid {
		gap: 25px;
	}
	:where(body.tv-css-hire) .tvh-process-icon > span {
		width: 65px;
		height: 65px;
		font-size: 35px;
	}
	:where(body.tv-css-hire) .tvh-process-icon b {
		font-size: 35px;
	}
	:where(body.tv-css-hire) .tvh-process-grid h3 {
		font-size: 21px;
	}
	:where(body.tv-css-hire) .tvh-process-grid p {
		font-size: 14px;
	}
	:where(body.tv-css-hire) .tvh-portfolio-grid {
		gap: 35px 25px;
	}
	:where(body.tv-css-hire) .tvh-portfolio-grid h3 {
		font-size: 23px;
	}
	:where(body.tv-css-hire) .tvh-quote-copy h2 {
		font-size: 44px;
	}
	:where(body.tv-css-hire) .tvh-quote-copy > p {
		font-size: 15px;
	}
	:where(body.tv-css-hire) .tvh-email {
		font-size: 20px;
	}
	:where(body.tv-css-hire) .tvh-quote-panel {
		padding: 25px;
	}
	:where(body.tv-css-hire) .tvh-form-row {
		grid-template-columns: 1fr;
		gap: 0;
	}
}
@media (max-width: 700px) {
	:where(body.tv-css-hire) .tvh-hero > .tv-shell {
		grid-template-columns: 1fr;
		padding: 55px 0 45px;
		gap: 30px;
		min-height: 0;
	}
	:where(body.tv-css-hire) .tvh-hero h1 {
		font-size: 58px;
		line-height: 1.01;
		margin-bottom: 25px;
	}
	:where(body.tv-css-hire) .tvh-hero-copy > p {
		font-size: 16px;
	}
	:where(body.tv-css-hire) .tvh-hero-work {
		display: inline-block;
		margin-left: 20px;
		font-size: 11px;
	}
	:where(body.tv-css-hire) .tvh-hero-work span {
		padding-left: 10px;
	}
	:where(body.tv-css-hire) .tvh-devices {
		height: 400px;
		width: 90%;
		margin-inline: auto;
	}
	:where(body.tv-css-hire) .tvh-device-0 {
		height: 235px;
		top: 115px;
		width: 95%;
	}
	:where(body.tv-css-hire) .tvh-device-1 {
		height: 215px;
		width: 55%;
		top: 0;
	}
	:where(body.tv-css-hire) .tvh-device-2 {
		height: 200px;
		width: 27%;
		top: 0;
	}
	:where(body.tv-css-hire) .tvh-device-3 {
		height: 195px;
		width: 23%;
		bottom: 0;
	}
	:where(body.tv-css-hire) .tvh-hero-star {
		font-size: 65px;
		top: 15px;
	}
	:where(body.tv-css-hire) .tvh-design-note {
		font-size: 12px;
		bottom: 0;
		left: 0;
	}
	:where(body.tv-css-hire) .tvh-section-heading {
		margin-bottom: 35px;
	}
	:where(body.tv-css-hire) .tvh-section-heading h2 {
		font-size: 39px;
	}
	:where(body.tv-css-hire) .tvh-section-heading > p {
		font-size: 15px;
	}
	:where(body.tv-css-hire) .tvh-package-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	:where(body.tv-css-hire) .tvh-package {
		padding: 35px 30px;
		border-radius: 22px;
	}
	:where(body.tv-css-hire) .tvh-package h3 {
		font-size: 29px;
		margin-bottom: 20px;
	}
	:where(body.tv-css-hire) .tvh-package-price {
		font-size: 47px;
		margin-bottom: 25px;
	}
	:where(body.tv-css-hire) .tvh-package-tag {
		font-size: 11px;
	}
	:where(body.tv-css-hire) .tvh-package > p,
	:where(body.tv-css-hire) .tvh-package ul {
		font-size: 15px;
	}
	:where(body.tv-css-hire) .tvh-package .tv-button {
		font-size: 14px;
		padding: 16px 20px;
	}
	:where(body.tv-css-hire) .tvh-package-price > span {
		font-size: 12px;
	}
	:where(body.tv-css-hire) .tvh-pricing-note {
		font-size: 11px;
		text-align: left;
	}
	:where(body.tv-css-hire) .tvh-process-grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}
	:where(body.tv-css-hire) .tvh-process-icon {
		padding-bottom: 20px;
		margin-bottom: 22px;
	}
	:where(body.tv-css-hire) .tvh-process-icon > span {
		width: 75px;
		height: 75px;
		font-size: 40px;
	}
	:where(body.tv-css-hire) .tvh-process-icon b {
		font-size: 45px;
	}
	:where(body.tv-css-hire) .tvh-process-grid h3 {
		font-size: 27px;
		margin-bottom: 15px;
	}
	:where(body.tv-css-hire) .tvh-process-grid p {
		font-size: 16px;
	}
	:where(body.tv-css-hire) .tvh-portfolio-grid {
		grid-template-columns: 1fr;
		gap: 35px;
	}
	:where(body.tv-css-hire) .tvh-project-image {
		border-width: 7px;
		border-radius: 12px;
	}
	:where(body.tv-css-hire) .tvh-portfolio-grid h3 {
		font-size: 25px;
	}
	:where(body.tv-css-hire) .tvh-project-meta {
		font-size: 11px;
		margin-top: 16px;
	}
	:where(body.tv-css-hire) .tvh-quote {
		grid-template-columns: 1fr;
		gap: 40px;
	}
	:where(body.tv-css-hire) .tvh-quote-copy h2 {
		font-size: 48px;
	}
	:where(body.tv-css-hire) .tvh-quote-copy > p {
		font-size: 16px;
	}
	:where(body.tv-css-hire) .tvh-email {
		font-size: 24px;
	}
	:where(body.tv-css-hire) .tvh-quote-note {
		margin-top: 30px;
	}
	:where(body.tv-css-hire) .tvh-quote-note > span {
		font-size: 50px;
	}
	:where(body.tv-css-hire) .tvh-quote-panel {
		padding: 30px 22px;
		border-radius: 18px;
	}
	:where(body.tv-css-hire) .tvh-form-row {
		grid-template-columns: 1fr;
	}
	:where(body.tv-css-hire) .tvh-quote-form input:not([type="checkbox"]),
	:where(body.tv-css-hire) .tvh-quote-form select,
	:where(body.tv-css-hire) .tvh-quote-form textarea {
		font-size: 16px;
	}
	:where(body.tv-css-hire) .tvh-quote-form label {
		font-size: 12px;
	}
	:where(body.tv-css-hire) .tvh-quote-form .tvh-consent {
		font-size: 11px;
	}
	:where(body.tv-css-hire) .tvh-form-message {
		padding: 25px 0;
	}
}
@media (max-width: 380px) {
	:where(body.tv-css-hire) .tvh-hero h1 {
		font-size: 49px;
	}
	:where(body.tv-css-hire) .tvh-hero-work {
		display: block;
		margin-left: 0;
	}
	:where(body.tv-css-hire) .tvh-devices {
		height: 330px;
	}
	:where(body.tv-css-hire) .tvh-device-0 {
		top: 100px;
		height: 190px;
	}
	:where(body.tv-css-hire) .tvh-device-1 {
		height: 175px;
	}
	:where(body.tv-css-hire) .tvh-device-2 {
		height: 165px;
	}
	:where(body.tv-css-hire) .tvh-device-3 {
		height: 165px;
	}
	:where(body.tv-css-hire) .tvh-design-note {
		font-size: 10px;
		padding: 10px;
	}
	:where(body.tv-css-hire) .tvh-hero-star {
		font-size: 50px;
	}
	:where(body.tv-css-hire) .tvh-quote-copy h2 {
		font-size: 42px;
	}
	:where(body.tv-css-hire) .tvh-email {
		font-size: 21px;
	}
}

/* ==================== PRODUCT DETAILS ==================== */
/* Product showcase: isolated from the existing shop and checkout. */
body:where(.tv-css-product).single-product {
	background: #fff;
}
body:where(.tv-css-product).single-product .tv-header {
	position: relative;
	color: var(--tv-ink);
	background: #fff;
	border-bottom: 1px solid #e7e8df;
}
body:where(.tv-css-product).single-product.admin-bar .tv-header {
	top: 0;
}
body:where(.tv-css-product).single-product .tv-menu-toggle {
	color: var(--tv-ink) !important;
}
body:where(.tv-css-product).single-product .tv-sale-link {
	color: #268809 !important;
}
:where(body.tv-css-product) .tv-product-page {
	padding: 0;
}
:where(body.tv-css-product) .tv-product-page .tvp-product {
	width: 100%;
	margin: 0;
	float: none;
}
:where(body.tv-css-product) .tvp-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 4%;
	padding-top: 55px;
	padding-bottom: 100px;
	align-items: start;
}
:where(body.tv-css-product) .tvp-main {
	min-width: 0;
}
:where(body.tv-css-product) .tvp-heading {
	margin-bottom: 30px;
}
:where(body.tv-css-product) .tvp-breadcrumb {
	display: flex;
	gap: 10px;
	font-size: 11px;
	color: #6e707a;
	margin-bottom: 22px;
}
:where(body.tv-css-product) .tvp-breadcrumb a:hover {
	text-decoration: underline;
}
:where(body.tv-css-product) .tvp-heading h1 {
	font-size: clamp(34px, 3vw, 50px);
	line-height: 1.12;
	font-weight: 500;
	letter-spacing: -0.045em;
	margin: 0 0 22px;
}
:where(body.tv-css-product) .tvp-byline {
	display: flex;
	gap: 20px;
	align-items: center;
	font-size: 12px;
	color: #6e707a;
	flex-wrap: wrap;
}
:where(body.tv-css-product) .tvp-byline > span:first-child {
	color: #25800c;
	background: var(--tv-paper);
	padding: 5px 10px;
	border-radius: 4px;
}
:where(body.tv-css-product) .tvp-preview {
	border-radius: 18px;
	overflow: hidden;
	background: #f1f3ec;
}
:where(body.tv-css-product).tv-storefront .tvp-preview-open {
	display: block;
	width: 100%;
	border: 0;
	padding: 0;
	background: none;
	position: relative;
}
:where(body.tv-css-product) .tvp-preview-open > img {
	width: 100%;
	height: auto;
	max-height: 650px;
	object-fit: cover;
	object-position: top;
}
:where(body.tv-css-product) .tvp-preview-zoom {
	position: absolute;
	bottom: 20px;
	right: 20px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: #fff;
	font-size: 23px;
	color: var(--tv-ink);
	box-shadow: 0 2px 15px #0002;
}
:where(body.tv-css-product) .tvp-preview-open:hover .tvp-preview-zoom {
	background: var(--tv-lime);
}
:where(body.tv-css-product) .tvp-preview-placeholder {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 400px;
	background: #07133b url(../images/hero.jpg) center/cover;
	color: white;
	padding: 50px;
	font-size: 42px;
	letter-spacing: -0.04em;
	line-height: 1.1;
}
:where(body.tv-css-product) .tvp-preview-placeholder b {
	font-size: 100px;
	color: var(--tv-lime);
	font-weight: 400;
}
:where(body.tv-css-product) .tvp-gallery {
	display: flex;
	gap: 12px;
	overflow: auto;
	padding: 15px 0 0;
	scrollbar-width: thin;
}
:where(body.tv-css-product).tv-storefront .tvp-gallery button {
	padding: 4px;
	flex: 0 0 100px;
	background: #f2f4ea;
	border: 1px solid var(--tv-line);
	border-radius: 8px;
}
:where(body.tv-css-product) .tvp-gallery img {
	height: 65px;
	object-fit: cover;
	border-radius: 4px;
	width: 100%;
}
:where(body.tv-css-product) .tvp-gallery button:hover {
	border-color: #1466dc;
}
:where(body.tv-css-product) .tvp-actions {
	display: flex;
	gap: 10px;
	padding: 25px 0 35px;
}
:where(body.tv-css-product) .tvp-action {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	align-items: center;
	padding: 15px 20px;
	border-radius: 7px;
	font-size: 13px;
	font-weight: 550;
	color: #fff !important;
	flex: 1;
	white-space: nowrap;
}
:where(body.tv-css-product) .tvp-action span {
	font-size: 18px;
	line-height: 1;
}
:where(body.tv-css-product) .tvp-action-demo {
	background: #ff5e2e;
}
:where(body.tv-css-product) .tvp-action-options {
	background: #647599;
}
:where(body.tv-css-product) .tvp-action-buy {
	background: #031656;
}
:where(body.tv-css-product) .tvp-action:hover {
	filter: brightness(0.93);
}
:where(body.tv-css-product) .tvp-description {
	font-size: 17px;
	line-height: 1.75;
	color: #6e707a;
	margin-bottom: 45px;
	overflow-wrap: anywhere;
}
:where(body.tv-css-product) .tvp-description h2,
:where(body.tv-css-product) .tvp-description h3,
:where(body.tv-css-product) .tvp-description h4 {
	color: var(--tv-ink);
	font-weight: 500;
	line-height: 1.25;
	letter-spacing: -0.035em;
	margin: 30px 0 15px;
}
:where(body.tv-css-product) .tvp-description h2 {
	font-size: 31px;
}
:where(body.tv-css-product) .tvp-description h3 {
	font-size: 25px;
}
:where(body.tv-css-product) .tvp-description p {
	margin-bottom: 20px;
}
:where(body.tv-css-product) .tvp-description img {
	height: auto;
	max-width: 100%;
	margin-block: 20px;
}
:where(body.tv-css-product) .tvp-description iframe,
:where(body.tv-css-product) .tvp-description video {
	max-width: 100%;
}
:where(body.tv-css-product) .tvp-description ul,
:where(body.tv-css-product) .tvp-description ol {
	padding-left: 22px;
}
:where(body.tv-css-product) .tvp-description a {
	color: #1466dc;
	text-decoration: underline;
}
:where(body.tv-css-product) .tvp-description table {
	width: 100%;
	display: block;
	overflow: auto;
}
:where(body.tv-css-product) .tvp-highlights {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	border-top: 1px solid var(--tv-line);
	border-bottom: 1px solid var(--tv-line);
	padding: 30px 0;
	margin-bottom: 45px;
	text-align: center;
}
:where(body.tv-css-product) .tvp-highlights > div > span {
	display: block;
	font-size: 36px;
	color: #126ef0;
	margin-bottom: 13px;
	line-height: 1;
}
:where(body.tv-css-product) .tvp-highlights h2 {
	font-size: 14px;
	letter-spacing: -0.02em;
	line-height: 1.3;
}
:where(body.tv-css-product) .tvp-feature {
	margin-bottom: 30px;
	border-radius: 22px;
	padding: 55px 45px;
	overflow: hidden;
	position: relative;
}
:where(body.tv-css-product) .tvp-kicker {
	display: block;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 15px;
	color: #6e707a;
}
:where(body.tv-css-product) .tvp-feature h2 {
	font-size: clamp(34px, 3.6vw, 60px);
	line-height: 1.02;
	letter-spacing: -0.055em;
	margin-bottom: 25px;
	font-weight: 500;
}
:where(body.tv-css-product) .tvp-feature p {
	font-size: 15px;
	line-height: 1.7;
	color: #6e707a;
	max-width: 450px;
}
:where(body.tv-css-product) .tvp-elementor {
	background: #f1eff9;
	padding-bottom: 0;
}
:where(body.tv-css-product) .tvp-feature-text {
	position: relative;
	z-index: 2;
}
:where(body.tv-css-product) .tvp-feature ul {
	padding: 0;
	list-style: none;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px 20px;
	margin: 25px 0 35px;
	font-size: 13px;
	max-width: 390px;
}
:where(body.tv-css-product) .tvp-feature li:before {
	content: "\2713";
	margin-right: 9px;
	color: #33850c;
}
:where(body.tv-css-product) .tvp-editor-art {
	position: relative;
	padding: 20px 10px 0 0;
	margin-top: 20px;
}
:where(body.tv-css-product) .tvp-editor-art > img:first-child {
	width: 100%;
	border-radius: 12px 12px 0 0;
	box-shadow: 0 0 30px #07133b15;
}
:where(body.tv-css-product) .tvp-editor-art > img + img {
	position: absolute;
	right: -15px;
	bottom: 35px;
	width: 37%;
	filter: drop-shadow(0 10px 20px #0002);
	border-radius: 10px;
}
:where(body.tv-css-product) .tvp-gutenberg {
	background: #eef3f7;
	padding-bottom: 0;
}
:where(body.tv-css-product) .tvp-gutenberg > img {
	width: 100%;
	margin-top: 35px;
}
:where(body.tv-css-product) .tvp-pages {
	background: #f2f4ea;
	text-align: center;
}
:where(body.tv-css-product) .tvp-pages p {
	margin-inline: auto;
}
:where(body.tv-css-product) .tvp-page-previews {
	display: flex;
	gap: 15px;
	margin: 35px -10px;
	justify-content: center;
	max-height: 400px;
	overflow: hidden;
}
:where(body.tv-css-product) .tvp-page-previews > div {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	border-radius: 10px;
	border: 5px solid #fff;
	box-shadow: 0 8px 25px #07133b10;
	align-self: start;
}
:where(body.tv-css-product) .tvp-page-previews > div:nth-child(2) {
	margin-top: 30px;
}
:where(body.tv-css-product) .tvp-page-previews img {
	width: 100%;
	min-height: 250px;
	object-fit: cover;
	object-position: top;
}
:where(body.tv-css-product) .tvp-page-previews > div:only-child {
	max-width: 90%;
	max-height: 360px;
}
:where(body.tv-css-product) .tvp-customize {
	background: #f5f0e9;
	padding-bottom: 0;
}
:where(body.tv-css-product) .tvp-customize-labels {
	display: flex;
	gap: 25px;
	margin-block: 25px 35px;
}
:where(body.tv-css-product) .tvp-customize-labels > span {
	font-size: 24px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	line-height: 1;
}
:where(body.tv-css-product) .tvp-customize-labels b {
	font-size: 11px;
	font-weight: 500;
	color: #6e707a;
}
:where(body.tv-css-product) .tvp-customize-art {
	display: flex;
	gap: 20px;
	align-items: start;
	max-height: 370px;
	overflow: hidden;
}
:where(body.tv-css-product) .tvp-customize-art img {
	width: 60%;
	border-radius: 10px 10px 0 0;
	box-shadow: 0 0 15px #0001;
}
:where(body.tv-css-product) .tvp-customize-art img + img {
	width: 42%;
	margin-top: 45px;
}
:where(body.tv-css-product) .tvp-plugins {
	background: #fff;
	border: 1px solid var(--tv-line);
	text-align: center;
}
:where(body.tv-css-product) .tvp-plugins > p {
	margin-inline: auto;
}
:where(body.tv-css-product) .tvp-plugins > div {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 25px 15px;
	margin-top: 35px;
}
:where(body.tv-css-product) .tvp-plugins > div > span {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 12px;
	text-align: left;
	overflow-wrap: anywhere;
}
:where(body.tv-css-product) .tvp-plugins b {
	display: grid;
	place-items: center;
	width: 35px;
	height: 35px;
	border-radius: 8px;
	background: #f2f4ea;
	color: #07133b;
	font-family: Georgia, serif;
	font-size: 22px;
	flex-shrink: 0;
}
:where(body.tv-css-product) .tvp-commerce {
	background: #fff5db;
	text-align: center;
	padding-bottom: 0;
}
:where(body.tv-css-product) .tvp-commerce > p {
	margin-inline: auto;
}
:where(body.tv-css-product) .tvp-shop-art {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 25px;
	margin-top: 30px;
	min-height: 230px;
}
:where(body.tv-css-product) .tvp-shop-art > span {
	display: grid;
	place-items: center;
	width: 110px;
	height: 110px;
	border: 3px solid #9456bd;
	border-radius: 25px;
	font-family: Georgia, serif;
	font-size: 75px;
	color: #9456bd;
	rotate: -10deg;
}
:where(body.tv-css-product) .tvp-shop-art > div {
	background: #fff;
	border-radius: 15px 15px 0 0;
	padding: 30px;
	box-shadow: 0 10px 35px #0001;
	min-width: 50%;
	align-self: end;
	text-align: left;
	min-height: 200px;
}
:where(body.tv-css-product) .tvp-shop-art b {
	font-size: 35px;
	font-weight: 500;
	line-height: 1.05;
	letter-spacing: -0.04em;
	display: block;
	margin-bottom: 25px;
}
:where(body.tv-css-product) .tvp-shop-art > div > span {
	background: var(--tv-lime);
	padding: 8px 25px;
	border-radius: 5px;
}
:where(body.tv-css-product) .tvp-device {
	background: #f0f3ec;
}
:where(body.tv-css-product) .tvp-device-preview {
	position: relative;
	margin-top: 35px;
	padding: 10px 10px 0;
	border: 7px solid #07133b;
	border-bottom-width: 20px;
	border-radius: 20px 20px 0 0;
	max-height: 330px;
	overflow: hidden;
	background: #fff;
}
:where(body.tv-css-product) .tvp-device-preview img {
	width: 100%;
}
:where(body.tv-css-product) .tvp-device-preview > span {
	position: absolute;
	right: 10px;
	bottom: 10px;
	font-size: 90px;
	line-height: 1;
	color: var(--tv-lime);
	text-shadow: 0 5px 10px #0001;
}
:where(body.tv-css-product) .tvp-text-link {
	display: inline-block;
	margin-top: 20px;
	font-size: 13px;
	font-weight: 550;
	text-decoration: underline !important;
}
:where(body.tv-css-product) .tvp-resources {
	padding: 55px 0;
}
:where(body.tv-css-product) .tvp-resource-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 35px;
	margin: 35px 0;
}
:where(body.tv-css-product) .tvp-resource-grid > div > span {
	font-size: 35px;
	display: block;
	line-height: 1;
	margin-bottom: 18px;
	color: #126ef0;
}
:where(body.tv-css-product) .tvp-resource-grid h3 {
	font-size: 23px;
	line-height: 1.15;
	letter-spacing: -0.03em;
	margin-bottom: 12px;
}
:where(body.tv-css-product) .tvp-resource-grid p {
	font-size: 14px;
}
:where(body.tv-css-product) .tvp-love {
	background: #011d61 url(../images/hero.jpg) center/cover;
	color: #fff;
	border-radius: 20px;
	padding: 50px 40px;
	margin-bottom: 55px;
}
:where(body.tv-css-product) .tvp-love h2 {
	font-size: 45px;
	line-height: 1.05;
	letter-spacing: -0.045em;
	margin-bottom: 30px;
}
:where(body.tv-css-product) .tvp-data-section {
	border-top: 1px solid var(--tv-line);
	padding-top: 40px;
	margin-top: 40px;
	font-size: 16px;
	color: #6e707a;
}
:where(body.tv-css-product) .tvp-data-section > h2 {
	font-size: 32px;
	letter-spacing: -0.04em;
	line-height: 1.1;
	color: var(--tv-ink);
	margin-bottom: 25px;
}
:where(body.tv-css-product) .tvp-data-section p {
	margin-bottom: 20px;
	line-height: 1.7;
}
:where(body.tv-css-product) .tvp-data-section h3 {
	font-size: 23px;
	color: var(--tv-ink);
	margin-bottom: 20px;
}
:where(body.tv-css-product) .tvp-data-section .tv-tab-badge {
	font-size: 15px;
}
:where(body.tv-css-product) .tvp-data-section .tv-tab-changelog {
	white-space: normal;
}
:where(body.tv-css-product) .tvp-data-section .tv-tab-changelog p {
	white-space: pre-line;
}
:where(body.tv-css-product) .tvp-faq > h2 {
	font-size: 43px;
}
:where(body.tv-css-product) .tvp-faq .tv-faq-list {
	margin-top: 30px;
}
:where(body.tv-css-product) .tvp-faq .tv-faq-list summary {
	font-size: 18px;
	color: var(--tv-ink);
}
:where(body.tv-css-product) .tvp-faq .tv-faq-list details > p {
	font-size: 14px;
}
:where(body.tv-css-product) .tvp-sidebar {
	padding-left: 0;
	position: static;
	max-height: none;
	overflow: visible;
	padding-right: 0;
}
:where(body.tv-css-product) .tvp-purchase {
	border: 1px solid var(--tv-line);
	border-radius: 25px;
	padding: 30px 25px;
	background: #fff;
	box-shadow: 0 4px 4px #00000005;
	scroll-margin-top: 40px;
}
:where(body.tv-css-product) .tvp-purchase-label {
	font-size: 13px;
	display: block;
	margin-bottom: 12px;
}
:where(body.tv-css-product) .tvp-price {
	font-size: 46px;
	line-height: 1;
	letter-spacing: -0.05em;
	font-weight: 500;
	margin-bottom: 25px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}
:where(body.tv-css-product) .tvp-price del {
	font-size: 25px;
	color: #9b9eaa;
	font-weight: 400;
	order: 2;
}
:where(body.tv-css-product) .tvp-price ins {
	order: 1;
	text-decoration: none;
}
:where(body.tv-css-product) .tvp-price .woocommerce-Price-currencySymbol {
	font-size: 0.7em;
}
:where(body.tv-css-product) .tvp-short-description {
	font-size: 13px;
	line-height: 1.7;
	color: #6e707a;
	margin-bottom: 20px;
}
:where(body.tv-css-product) .tvp-short-description p {
	margin-bottom: 12px;
}
:where(body.tv-css-product) .tvp-cart .cart {
	margin: 0 !important;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
:where(body.tv-css-product) .tvp-cart .quantity {
	margin: 0 !important;
}
:where(body.tv-css-product) .tvp-cart .quantity input.qty {
	border: 1px solid var(--tv-line);
	border-radius: 6px;
	padding: 12px 8px;
	font-size: 14px;
	height: 48px;
	background: #fff;
	width: 60px;
}
:where(body.tv-css-product).tv-storefront .tvp-cart .single_add_to_cart_button {
	background: var(--tv-lime) !important;
	color: var(--tv-ink) !important;
	border: 0 !important;
	border-radius: 6px !important;
	font:
		550 14px "Inter Tight",
		Arial,
		sans-serif !important;
	line-height: 1.3 !important;
	padding: 15px !important;
	min-height: 48px;
	flex: 1;
	text-align: center;
	box-shadow: none !important;
}
:where(body.tv-css-product).tv-storefront .tvp-cart .single_add_to_cart_button:hover {
	background: #40b515 !important;
}
:where(body.tv-css-product) .tvp-cart .single_add_to_cart_button.disabled {
	opacity: 0.45;
}
:where(body.tv-css-product) .tvp-cart .stock {
	font-size: 12px !important;
	margin-bottom: 15px !important;
}
:where(body.tv-css-product) .tvp-cart .variations_form {
	display: block !important;
	width: 100%;
}
:where(body.tv-css-product) .tvp-cart table.variations {
	margin: 0 0 15px !important;
	border: 0 !important;
	width: 100%;
}
:where(body.tv-css-product) .tvp-cart table.variations tr {
	display: block;
	margin-bottom: 12px;
}
:where(body.tv-css-product) .tvp-cart table.variations th,
:where(body.tv-css-product) .tvp-cart table.variations td {
	display: block;
	border: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	text-align: left !important;
	font-size: 13px;
}
:where(body.tv-css-product) .tvp-cart table.variations th {
	margin-bottom: 8px;
}
:where(body.tv-css-product) .tvp-cart table.variations select {
	font: inherit;
	border: 1px solid var(--tv-line);
	padding: 10px;
	color: var(--tv-ink);
	border-radius: 5px;
	width: 100%;
	background: #fff;
	min-height: 43px;
}
:where(body.tv-css-product) .tvp-cart .reset_variations {
	font-size: 11px !important;
	display: block;
	margin-top: 7px;
	color: #6e707a;
}
:where(body.tv-css-product) .tvp-cart .woocommerce-variation-add-to-cart {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
:where(body.tv-css-product) .tvp-cart .woocommerce-variation-price {
	font-size: 23px;
	margin-bottom: 15px;
	color: var(--tv-ink);
}
:where(body.tv-css-product) .tvp-cart .woocommerce-variation-price ins {
	text-decoration: none;
}
:where(body.tv-css-product) .tvp-cart .woocommerce-variation-description {
	font-size: 13px;
	color: #6e707a;
}
:where(body.tv-css-product) .tvp-cart .added_to_cart {
	font-size: 13px;
	text-decoration: underline;
}
:where(body.tv-css-product) .tvp-sidebar-demo {
	display: flex;
	justify-content: space-between;
	align-items: center;
	border: 1px solid var(--tv-line);
	border-radius: 6px;
	padding: 13px 17px;
	margin-top: 12px;
	font-size: 13px;
	font-weight: 500;
}
:where(body.tv-css-product) .tvp-sidebar-demo:hover {
	background: var(--tv-paper);
}
:where(body.tv-css-product) .tvp-secure {
	font-size: 10px;
	color: #6e707a;
	text-align: center;
	display: block;
	margin-top: 17px !important;
}
:where(body.tv-css-product) .tvp-secure span {
	color: #2f8d15;
	margin-right: 3px;
}
:where(body.tv-css-product) .tvp-specifications {
	padding: 30px 0;
	border-bottom: 1px solid var(--tv-line);
}
:where(body.tv-css-product) .tvp-specifications h2 {
	font-size: 20px;
	font-weight: 500;
	letter-spacing: -0.02em;
	margin-bottom: 20px;
}
:where(body.tv-css-product) .tvp-specifications dl {
	margin: 0;
}
:where(body.tv-css-product) .tvp-specifications dl > div {
	display: grid;
	grid-template-columns: 95px minmax(0, 1fr);
	gap: 10px;
	margin-bottom: 13px;
	line-height: 1.6;
	font-size: 11px;
}
:where(body.tv-css-product) .tvp-specifications dt {
	font-weight: 550;
	color: var(--tv-ink);
}
:where(body.tv-css-product) .tvp-specifications dd {
	margin: 0;
	color: #6e707a;
	overflow-wrap: anywhere;
}
:where(body.tv-css-product) .tvp-specifications a {
	text-decoration: underline;
}
:where(body.tv-css-product) .tvp-studio-card {
	padding: 25px 0;
}
:where(body.tv-css-product) .tvp-studio-card h2 {
	font-size: 26px;
	letter-spacing: -0.03em;
	margin-bottom: 15px;
}
:where(body.tv-css-product) .tvp-studio-card p {
	font-size: 13px;
	color: #6e707a;
	margin-bottom: 15px;
}
:where(body.tv-css-product) .tvp-studio-card a {
	font-size: 12px;
	text-decoration: underline;
}
:where(body.tv-css-product) .tvp-services {
	background: var(--tv-paper);
	margin: 0;
}
:where(body.tv-css-product) .tvp-services h2 {
	margin-bottom: 45px;
}
:where(body.tv-css-product) .tvp-services-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
:where(body.tv-css-product) .tvp-services-grid article {
	background: #fff;
	padding: 30px;
	border-radius: 14px;
}
:where(body.tv-css-product) .tvp-services-grid article > span {
	font-size: 12px;
	color: #6e707a;
	display: block;
	margin-bottom: 35px;
}
:where(body.tv-css-product) .tvp-services-grid h3 {
	font-size: 25px;
	line-height: 1.15;
	letter-spacing: -0.035em;
	margin-bottom: 18px;
}
:where(body.tv-css-product) .tvp-services-grid p {
	font-size: 14px;
	line-height: 1.65;
	color: #6e707a;
	margin-bottom: 25px;
}
:where(body.tv-css-product) .tvp-services-grid a {
	font-size: 12px;
	font-weight: 550;
	text-decoration: underline;
}
:where(body.tv-css-product) .tvp-lightbox {
	border: 0;
	padding: 45px 15px 15px;
	background: #07133b;
	width: min(1300px, 95vw);
	max-height: 95vh;
	border-radius: 12px;
	overflow: auto;
}
:where(body.tv-css-product) .tvp-lightbox::backdrop {
	background: #07133be8;
	backdrop-filter: blur(8px);
}
:where(body.tv-css-product) .tvp-lightbox > button {
	position: absolute;
	right: 15px;
	top: 10px;
	padding: 3px;
	background: transparent !important;
	border: 0;
	color: white !important;
	font-size: 23px;
}
:where(body.tv-css-product) .tvp-lightbox img {
	max-width: 100%;
	max-height: 80vh;
	object-fit: contain;
	margin: auto;
}
:where(body.tv-css-product) .tv-product-page .woocommerce-notices-wrapper {
	width: calc(100% - 140px);
	max-width: 1600px;
	margin: 25px auto;
}
:where(body.tv-css-product) .tv-product-page .woocommerce-message {
	border-top-color: var(--tv-lime);
	background: var(--tv-paper);
	font-size: 14px;
	border-radius: 8px;
	color: var(--tv-ink);
}
:where(body.tv-css-product) .tv-product-page .woocommerce-message:before {
	color: #2c8910;
}
:where(body.tv-css-product) .tv-product-page .woocommerce-message .button {
	background: var(--tv-ink);
	color: #fff;
	border-radius: 5px;
	font-size: 12px;
}
:where(body.tv-css-product) .tvp-data-section #reviews #comments > h2 {
	font-size: 25px;
	line-height: 1.2;
	letter-spacing: -0.03em;
	margin-bottom: 20px;
}
:where(body.tv-css-product) .tvp-data-section #reviews #comments ol.commentlist {
	padding: 0;
}
:where(body.tv-css-product) .tvp-data-section #reviews #comments ol.commentlist li .comment-text {
	border: 1px solid var(--tv-line);
	border-radius: 10px;
}
:where(body.tv-css-product) .tvp-data-section #review_form label {
	display: block;
	font-size: 13px;
	color: var(--tv-ink);
	margin-bottom: 5px;
}
:where(body.tv-css-product) .tvp-data-section #review_form input:not([type="checkbox"]):not([type="submit"]),
:where(body.tv-css-product) .tvp-data-section #review_form textarea {
	border: 1px solid var(--tv-line);
	border-radius: 5px;
	padding: 12px;
	font: inherit;
	color: var(--tv-ink);
	width: 100%;
	background: #fff;
}
:where(body.tv-css-product) .tvp-data-section #review_form #submit {
	background: var(--tv-lime);
	color: var(--tv-ink);
	border: 0;
	border-radius: 5px;
	padding: 15px 25px;
	font:
		550 14px "Inter Tight",
		Arial,
		sans-serif;
}
:where(body.tv-css-product) .tvp-data-section .star-rating {
	color: #e4a90c;
}
:where(body.tv-css-product) .tvp-data-section .comment-reply-title {
	display: block;
	font-size: 23px;
	color: var(--tv-ink);
	margin-bottom: 15px;
}
:where(body.tv-css-product) .tvp-data-section .comment-form-cookies-consent {
	display: flex;
	gap: 10px;
	align-items: start;
}
:where(body.tv-css-product) .tvp-data-section .comment-form-cookies-consent input {
	margin-top: 7px;
}
:where(body.tv-css-product) .tvp-data-section .comment-form-cookies-consent label {
	font-size: 12px !important;
	color: #6e707a !important;
}
@media (min-width: 1600px) {
	:where(body.tv-css-product) .tvp-layout {
		grid-template-columns: minmax(0, 1fr) 380px;
		gap: 4%;
	}
	:where(body.tv-css-product) .tvp-purchase {
		padding: 40px;
	}
	:where(body.tv-css-product) .tvp-feature {
		padding: 70px 60px;
	}
	:where(body.tv-css-product) .tvp-feature.tvp-elementor,
	:where(body.tv-css-product) .tvp-feature.tvp-gutenberg,
	:where(body.tv-css-product) .tvp-feature.tvp-customize,
	:where(body.tv-css-product) .tvp-feature.tvp-commerce {
		padding-bottom: 0;
	}
	:where(body.tv-css-product) .tvp-feature.tvp-resources {
		padding-inline: 0;
	}
	:where(body.tv-css-product) .tvp-price {
		font-size: 55px;
	}
	:where(body.tv-css-product) .tvp-specifications dl > div {
		font-size: 12px;
		grid-template-columns: 110px 1fr;
	}
}
@media (max-width: 1200px) {
	:where(body.tv-css-product) .tvp-layout {
		grid-template-columns: minmax(0, 1fr) 300px;
		gap: 30px;
	}
	:where(body.tv-css-product) .tvp-sidebar {
		padding-left: 25px;
	}
	:where(body.tv-css-product) .tvp-purchase {
		padding: 25px 20px;
		border-radius: 20px;
	}
	:where(body.tv-css-product) .tvp-actions {
		gap: 7px;
	}
	:where(body.tv-css-product) .tvp-action {
		font-size: 11px;
		padding: 14px 13px;
		gap: 10px;
	}
	:where(body.tv-css-product) .tvp-feature {
		padding: 40px 30px;
	}
	:where(body.tv-css-product) .tvp-feature.tvp-elementor,
	:where(body.tv-css-product) .tvp-feature.tvp-gutenberg,
	:where(body.tv-css-product) .tvp-feature.tvp-customize,
	:where(body.tv-css-product) .tvp-feature.tvp-commerce {
		padding-bottom: 0;
	}
	:where(body.tv-css-product) .tvp-feature.tvp-resources {
		padding-inline: 0;
	}
	:where(body.tv-css-product) .tvp-feature h2 {
		font-size: 43px;
	}
	:where(body.tv-css-product) .tvp-plugins > div {
		grid-template-columns: 1fr 1fr;
	}
	:where(body.tv-css-product) .tvp-specifications dl > div {
		grid-template-columns: 85px 1fr;
		font-size: 10px;
	}
	:where(body.tv-css-product) .tvp-services-grid {
		grid-template-columns: 1fr 1fr;
	}
	:where(body.tv-css-product) .tvp-shop-art {
		gap: 15px;
	}
	:where(body.tv-css-product) .tvp-shop-art > div {
		padding: 25px 20px;
	}
	:where(body.tv-css-product) .tvp-shop-art b {
		font-size: 29px;
	}
	:where(body.tv-css-product) .tvp-love h2 {
		font-size: 38px;
	}
}
@media (max-width: 950px) {
	:where(body.tv-css-product) .tvp-layout {
		grid-template-columns: minmax(0, 1fr) 265px;
		gap: 25px;
	}
	:where(body.tv-css-product) .tvp-sidebar {
		padding-left: 20px;
	}
	:where(body.tv-css-product) .tvp-purchase {
		padding: 22px 16px;
	}
	:where(body.tv-css-product) .tvp-price {
		font-size: 38px;
	}
	:where(body.tv-css-product) .tvp-price del {
		font-size: 21px;
	}
	:where(body.tv-css-product) .tvp-actions {
		flex-wrap: wrap;
	}
	:where(body.tv-css-product) .tvp-action {
		min-width: 40%;
		font-size: 12px;
		justify-content: center;
	}
	:where(body.tv-css-product) .tvp-action-buy {
		flex-basis: 100%;
	}
	:where(body.tv-css-product) .tvp-highlights {
		grid-template-columns: 1fr 1fr;
		gap: 25px;
	}
	:where(body.tv-css-product) .tvp-feature {
		padding: 35px 25px;
	}
	:where(body.tv-css-product) .tvp-feature h2 {
		font-size: 38px;
	}
	:where(body.tv-css-product) .tvp-feature p {
		font-size: 14px;
	}
	:where(body.tv-css-product) .tvp-feature ul {
		font-size: 11px;
		gap: 10px;
	}
	:where(body.tv-css-product) .tvp-customize-labels {
		gap: 18px;
	}
	:where(body.tv-css-product) .tvp-customize-labels b {
		font-size: 10px;
	}
	:where(body.tv-css-product) .tvp-resource-grid {
		gap: 25px 20px;
	}
	:where(body.tv-css-product) .tvp-resource-grid h3 {
		font-size: 21px;
	}
	:where(body.tv-css-product) .tvp-resource-grid p {
		font-size: 13px;
	}
	:where(body.tv-css-product) .tvp-love {
		padding: 35px 25px;
	}
	:where(body.tv-css-product) .tvp-love h2 {
		font-size: 34px;
	}
	:where(body.tv-css-product) .tvp-faq > h2 {
		font-size: 35px;
	}
	:where(body.tv-css-product) .tvp-description {
		font-size: 15px;
	}
	:where(body.tv-css-product) .tvp-specifications dl > div {
		display: block;
		margin-bottom: 15px;
	}
	:where(body.tv-css-product) .tvp-specifications dt {
		margin-bottom: 3px;
	}
	:where(body.tv-css-product) .tvp-specifications dd {
		font-size: 11px;
	}
	:where(body.tv-css-product) .tvp-shop-art > span {
		width: 70px;
		height: 70px;
		font-size: 45px;
		border-radius: 15px;
	}
	:where(body.tv-css-product) .tvp-shop-art b {
		font-size: 25px;
	}
	:where(body.tv-css-product) .tvp-device-preview {
		border-width: 5px;
		border-bottom-width: 15px;
	}
}
@media (max-width: 700px) {
	:where(body.tv-css-product) .tvp-layout {
		display: flex;
		flex-direction: column;
		gap: 35px;
		padding-top: 30px;
		padding-bottom: 60px;
	}
	:where(body.tv-css-product) .tvp-main,
	:where(body.tv-css-product) .tvp-sidebar {
		width: 100%;
	}
	:where(body.tv-css-product) .tvp-heading h1 {
		font-size: 35px;
		margin-bottom: 18px;
	}
	:where(body.tv-css-product) .tvp-heading {
		margin-bottom: 25px;
	}
	:where(body.tv-css-product) .tvp-breadcrumb {
		font-size: 10px;
		margin-bottom: 20px;
	}
	:where(body.tv-css-product) .tvp-byline {
		gap: 12px;
		font-size: 11px;
	}
	:where(body.tv-css-product) .tvp-preview {
		border-radius: 12px;
	}
	:where(body.tv-css-product) .tvp-preview-open > img {
		max-height: none;
	}
	:where(body.tv-css-product) .tvp-preview-zoom {
		width: 32px;
		height: 32px;
		right: 12px;
		bottom: 12px;
		font-size: 20px;
	}
	:where(body.tv-css-product) .tvp-preview-placeholder {
		min-height: 300px;
		padding: 30px;
		font-size: 30px;
	}
	:where(body.tv-css-product) .tvp-preview-placeholder b {
		font-size: 60px;
	}
	:where(body.tv-css-product) .tvp-actions {
		padding: 20px 0 30px;
		gap: 8px;
	}
	:where(body.tv-css-product) .tvp-action {
		font-size: 12px;
		min-width: 40%;
		justify-content: space-between;
		padding: 15px 18px;
	}
	:where(body.tv-css-product) .tvp-description h2 {
		font-size: 28px;
	}
	:where(body.tv-css-product) .tvp-description h3 {
		font-size: 23px;
	}
	:where(body.tv-css-product) .tvp-description {
		font-size: 16px;
		margin-bottom: 30px;
	}
	:where(body.tv-css-product) .tvp-highlights {
		margin-bottom: 30px;
		padding-block: 25px;
	}
	:where(body.tv-css-product) .tvp-highlights h2 {
		font-size: 14px;
	}
	:where(body.tv-css-product) .tvp-feature {
		border-radius: 16px;
		padding: 35px 25px;
		margin-bottom: 20px;
	}
	:where(body.tv-css-product) .tvp-feature h2 {
		font-size: 39px;
	}
	:where(body.tv-css-product) .tvp-feature p {
		font-size: 14px;
	}
	:where(body.tv-css-product) .tvp-kicker {
		font-size: 10px;
	}
	:where(body.tv-css-product) .tvp-feature ul {
		font-size: 12px;
	}
	:where(body.tv-css-product) .tvp-editor-art > img + img {
		bottom: 15px;
		right: -10px;
	}
	:where(body.tv-css-product) .tvp-customize-labels {
		gap: 30px;
	}
	:where(body.tv-css-product) .tvp-customize-art {
		gap: 10px;
		max-height: 260px;
	}
	:where(body.tv-css-product) .tvp-customize-art img + img {
		margin-top: 30px;
	}
	:where(body.tv-css-product) .tvp-plugins > div > span {
		font-size: 11px;
	}
	:where(body.tv-css-product) .tvp-plugins > div {
		gap: 20px 10px;
	}
	:where(body.tv-css-product) .tvp-resource-grid {
		gap: 30px 20px;
		margin-block: 30px;
	}
	:where(body.tv-css-product) .tvp-resource-grid h3 {
		font-size: 21px;
	}
	:where(body.tv-css-product) .tvp-resource-grid p {
		font-size: 13px;
	}
	:where(body.tv-css-product) .tvp-love {
		border-radius: 16px;
		margin-bottom: 40px;
	}
	:where(body.tv-css-product) .tvp-love h2 {
		font-size: 38px;
	}
	:where(body.tv-css-product) .tvp-data-section {
		padding-top: 30px;
		margin-top: 30px;
	}
	:where(body.tv-css-product) .tvp-data-section > h2 {
		font-size: 29px;
	}
	:where(body.tv-css-product) .tvp-faq > h2 {
		font-size: 36px;
	}
	:where(body.tv-css-product) .tvp-faq .tv-faq-list summary {
		font-size: 17px;
	}
	:where(body.tv-css-product) .tvp-sidebar {
		position: static;
		border-left: 0;
		padding: 0;
		overflow: visible;
		max-height: none !important;
		display: flex;
		flex-direction: column;
	}
	:where(body.tv-css-product) .tvp-purchase {
		padding: 30px;
		border-radius: 20px;
		scroll-margin-top: 25px;
	}
	:where(body.tv-css-product) .tvp-price {
		font-size: 48px;
	}
	:where(body.tv-css-product) .tvp-price del {
		font-size: 26px;
	}
	:where(body.tv-css-product) .tvp-cart .quantity input.qty {
		width: 70px;
	}
	:where(body.tv-css-product) .tvp-specifications {
		padding: 35px 0;
	}
	:where(body.tv-css-product) .tvp-specifications h2 {
		font-size: 23px;
	}
	:where(body.tv-css-product) .tvp-specifications dl > div {
		display: grid;
		grid-template-columns: 110px 1fr;
		font-size: 12px;
		margin-bottom: 15px;
	}
	:where(body.tv-css-product) .tvp-specifications dd {
		font-size: 12px;
	}
	:where(body.tv-css-product) .tvp-studio-card {
		padding-block: 30px 0;
	}
	:where(body.tv-css-product) .tvp-studio-card h2 {
		font-size: 30px;
	}
	:where(body.tv-css-product) .tvp-short-description {
		font-size: 14px;
	}
	:where(body.tv-css-product) .tvp-secure {
		font-size: 11px;
	}
	:where(body.tv-css-product) .tvp-sidebar-demo {
		font-size: 14px;
	}
	:where(body.tv-css-product) .tvp-services-grid {
		gap: 15px;
	}
	:where(body.tv-css-product) .tvp-services-grid article {
		padding: 25px 20px;
	}
	:where(body.tv-css-product) .tvp-services-grid h3 {
		font-size: 23px;
	}
	:where(body.tv-css-product) .tvp-services-grid p {
		font-size: 13px;
	}
	:where(body.tv-css-product) .tvp-services-grid a {
		font-size: 11px;
	}
	:where(body.tv-css-product) .tvp-services-grid article > span {
		margin-bottom: 25px;
	}
	:where(body.tv-css-product) .tv-product-page .woocommerce-notices-wrapper {
		width: calc(100% - 40px);
	}
	:where(body.tv-css-product) .tvp-lightbox {
		padding: 45px 10px 10px;
	}
	:where(body.tv-css-product) .tvp-purchase:target {
		outline: 3px solid var(--tv-lime);
		outline-offset: 5px;
	}
	:where(body.tv-css-product) .tvp-page-previews > div:only-child {
		max-width: 100%;
	}
}
@media (max-width: 380px) {
	:where(body.tv-css-product) .tvp-services-grid {
		grid-template-columns: 1fr;
	}
	:where(body.tv-css-product) .tvp-services-grid article > span {
		margin-bottom: 15px;
	}
	:where(body.tv-css-product) .tvp-heading h1 {
		font-size: 30px;
	}
	:where(body.tv-css-product) .tvp-feature h2 {
		font-size: 34px;
	}
	:where(body.tv-css-product) .tvp-action {
		font-size: 11px;
		padding: 14px;
	}
	:where(body.tv-css-product) .tvp-resource-grid {
		grid-template-columns: 1fr;
	}
}

:where(body.tv-css-product) .tvp-about {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10%;
}
:where(body.tv-css-product) .tvp-about h2 {
	font-size: clamp(38px, 4vw, 65px);
	margin-bottom: 35px;
}
:where(body.tv-css-product) .tvp-about article {
	margin-bottom: 30px;
}
:where(body.tv-css-product) .tvp-about article:last-child {
	margin: 0;
}
:where(body.tv-css-product) .tvp-about h3 {
	font-size: 24px;
	line-height: 1.2;
	letter-spacing: -0.035em;
	margin-bottom: 12px;
}
:where(body.tv-css-product) .tvp-about p {
	font-size: 16px;
	color: #6e707a;
	line-height: 1.7;
}
:where(body.tv-css-product) .tvp-mobile-buy {
	display: none;
}
@media (max-width: 700px) {
	:where(body.tv-css-product) .tvp-about {
		grid-template-columns: 1fr;
		gap: 35px;
	}
	:where(body.tv-css-product) .tvp-about h2 {
		font-size: 40px;
	}
	:where(body.tv-css-product) .tvp-mobile-buy {
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 20px;
		z-index: 25;
		background: #fff;
		border-top: 1px solid var(--tv-line);
		padding: 12px 20px;
		box-shadow: 0 -4px 20px #07133b0a;
	}
	:where(body.tv-css-product) .tvp-mobile-buy > span {
		font-size: 23px;
		line-height: 1;
		letter-spacing: -0.03em;
	}
	:where(body.tv-css-product) .tvp-mobile-buy del {
		font-size: 13px;
		color: #8b8d95;
		margin-right: 6px;
	}
	:where(body.tv-css-product) .tvp-mobile-buy ins {
		text-decoration: none;
	}
	:where(body.tv-css-product) .tvp-mobile-buy > a {
		padding: 13px 22px;
		background: var(--tv-lime);
		border-radius: 6px;
		font-size: 13px;
		font-weight: 550;
	}
	:where(body.tv-css-product).single-product .tv-footer {
		padding-bottom: 72px;
	}
	:where(body.tv-css-product).single-product .tv-back-top {
		bottom: 90px;
	}
	:where(body.tv-css-product) .tvp-mobile-buy:has(~ dialog[open]) {
		visibility: hidden;
	}
}

/* ==================== RESPONSIVE LAYOUT, ICONS AND BRANDING ==================== */
/* Shared responsive corrections, validated against the rendered storefront. */
:where(body.tv-css-storefront).tv-storefront {
	min-width: 0;
}
:where(body.tv-css-storefront).tv-storefront main,
:where(body.tv-css-storefront).tv-storefront section,
:where(body.tv-css-storefront).tv-storefront article,
:where(body.tv-css-storefront).tv-storefront aside,
:where(body.tv-css-storefront).tv-storefront form,
:where(body.tv-css-storefront).tv-storefront label,
:where(body.tv-css-storefront).tv-storefront .tv-shell > * {
	min-width: 0;
}
:where(body.tv-css-storefront).tv-storefront h1,
:where(body.tv-css-storefront).tv-storefront h2,
:where(body.tv-css-storefront).tv-storefront h3 {
	overflow-wrap: anywhere;
}
:where(body.tv-css-storefront).tv-storefront input,
:where(body.tv-css-storefront).tv-storefront select,
:where(body.tv-css-storefront).tv-storefront textarea {
	max-width: 100%;
	min-width: 0;
}
:where(body.tv-css-storefront).tv-storefront .tv-button {
	min-height: 44px;
	line-height: 1.4;
	white-space: normal;
}
:where(body.tv-css-storefront).tv-storefront .tv-icon-button,
:where(body.tv-css-storefront).tv-storefront .tv-cart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	min-width: 44px;
	padding: 10px;
	flex-shrink: 0;
}
:where(body.tv-css-storefront) .tv-cart > span {
	top: 0;
	right: 0;
}
:where(body.tv-css-storefront) .tv-header-tools {
	gap: 10px;
}
:where(body.tv-css-storefront).tv-storefront .tv-menu-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 44px;
	min-height: 44px;
	padding: 9px;
	font-size: 14px;
	line-height: 1;
	border: 0;
	border-radius: 5px;
}
:where(body.tv-css-storefront).tv-storefront .tv-menu-toggle:after {
	content: none;
}
:where(body.tv-css-storefront) .tv-menu-toggle svg {
	display: block;
	width: 24px;
	height: 24px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
	flex-shrink: 0;
}
:where(body.tv-css-storefront) .tv-navigation > a,
:where(body.tv-css-storefront) .tv-navigation summary {
	display: flex;
	align-items: center;
	min-height: 44px;
}
:where(body.tv-css-storefront) .tv-dropdown-panel {
	top: 100%;
	padding-top: 12px;
}
:where(body.tv-css-storefront) .tv-dropdown-panel a {
	min-height: 44px;
}
:where(body.tv-css-storefront).tv-storefront .tv-search-close,
:where(body.tv-css-storefront).tv-storefront .tvp-lightbox > button {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 8px;
}
:where(body.tv-css-storefront) .tv-search-dialog,
:where(body.tv-css-storefront) .tvp-lightbox {
	max-height: calc(100dvh - 32px);
	max-width: calc(100vw - 24px);
	overscroll-behavior: contain;
}
:where(body.tv-css-storefront) .tv-search-dialog form {
	min-width: 0;
}
:where(body.tv-css-storefront) .tv-search-dialog input[type="search"] {
	min-width: 0;
}
:where(body.tv-css-storefront) .tv-search-dialog button[type="submit"] {
	flex-shrink: 0;
	min-height: 44px;
}
:where(body.tv-css-storefront) .tv-live-result {
	min-height: 44px;
	overflow-wrap: anywhere;
}
:where(body.tv-css-storefront).tv-storefront .tv-category-tabs button,
:where(body.tv-css-storefront).tv-storefront .tv-catalog-search button,
:where(body.tv-css-storefront).tv-storefront .tv-slider-controls button {
	min-width: 44px;
	min-height: 44px;
}
:where(body.tv-css-storefront).tv-storefront .tv-catalog-search input {
	min-height: 44px;
}
:where(body.tv-css-storefront).tv-storefront .tv-footer-top button {
	min-width: 44px;
	min-height: 44px;
}
:where(body.tv-css-storefront).tv-storefront .tv-back-top {
	width: 44px;
	height: 44px;
}
:where(body.tv-css-storefront).tv-storefront .tva-share a,
:where(body.tv-css-storefront).tv-storefront .tva-share button {
	width: 44px;
	height: 44px;
	min-width: 44px;
}
:where(body.tv-css-storefront).tv-storefront .tv-blog-search button,
:where(body.tv-css-storefront).tv-storefront .tva-search button {
	min-width: 44px;
	min-height: 44px;
}
:where(body.tv-css-storefront).tv-storefront .tvp-data-section #review_form #submit {
	min-height: 44px;
	min-width: 44px;
}
:where(body.tv-css-storefront) .tvp-cart .variations,
:where(body.tv-css-storefront) .tvp-cart .single_variation_wrap {
	min-width: 0;
}
:where(body.tv-css-storefront) .tva-author > div:last-child {
	min-width: 0;
	overflow-wrap: anywhere;
}
:where(body.tv-css-storefront) .tva-author-bio,
:where(body.tv-css-storefront) .tva-meta,
:where(body.tv-css-storefront) .tv-footer-email,
:where(body.tv-css-storefront) .tvh-email {
	overflow-wrap: anywhere;
}
:where(body.tv-css-storefront) .tva-content .wp-block-table,
:where(body.tv-css-storefront) .tvl-content .wp-block-table {
	max-width: 100%;
	overscroll-behavior-x: contain;
}
:where(body.tv-css-storefront) .tva-content .wp-block-embed__wrapper iframe,
:where(body.tv-css-storefront) .tva-content .wp-block-embed__wrapper video {
	height: auto;
	aspect-ratio: 16/9;
}
:where(body.tv-css-storefront) .tva-post-navigation a {
	min-width: 0;
}
:where(body.tv-css-storefront) .tvp-product .tvp-main {
	min-width: 0;
}
:where(body.tv-css-storefront) .tva-copy-status:not(.tv-sr-only) {
	overflow-wrap: anywhere;
	font-size: 13px;
	padding-block: 15px;
}
:where(body.tv-css-storefront) .tv-news-grid > article,
:where(body.tv-css-storefront) .tv-blog-featured > article {
	min-width: 0;
}
@media (max-width: 1100px) {
	:where(body.tv-css-storefront).tv-storefront .tv-header {
		padding: 20px 35px;
		gap: 20px;
	}
	:where(body.tv-css-storefront) .tv-header-tools {
		margin-left: auto;
		gap: 8px;
	}
	:where(body.tv-css-storefront) .tv-language {
		display: none;
	}
	:where(body.tv-css-storefront).tv-storefront .tv-menu-toggle {
		display: inline-flex;
	}
	:where(body.tv-css-storefront) .tv-navigation {
		display: none;
		position: absolute;
		top: 100%;
		left: 20px;
		right: 20px;
		margin: 0;
		background: #fff;
		color: var(--tv-ink);
		padding: 20px 25px;
		border-radius: 12px;
		box-shadow: 0 20px 50px #0003;
		font-size: 17px;
		max-height: calc(100dvh - 125px);
		overflow-y: auto;
		overscroll-behavior: contain;
	}
	:where(body.tv-css-storefront) .tv-navigation.is-open {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 8px;
	}
	:where(body.tv-css-storefront) .tv-dropdown-panel {
		position: static;
		box-shadow: none;
		min-width: 0;
		padding: 5px 0 10px 15px;
	}
	:where(body.tv-css-storefront) .tv-navigation summary {
		justify-content: space-between;
	}
	:where(body.tv-css-storefront) .tv-navigation > a,
	:where(body.tv-css-storefront) .tv-navigation summary {
		min-height: 44px;
		padding-block: 8px;
	}
	:where(body.tv-css-storefront).tv-storefront.tv-menu-open {
		overflow: hidden;
	}
	:where(body.tv-css-storefront) .tv-dropdown-panel a {
		padding: 10px;
	}
	:where(body.tv-css-storefront).tv-storefront input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
	:where(body.tv-css-storefront).tv-storefront select,
	:where(body.tv-css-storefront).tv-storefront textarea {
		font-size: 16px;
	}
	:where(body.tv-css-storefront).tv-storefront input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
	:where(body.tv-css-storefront).tv-storefront select {
		min-height: 44px;
	}
	:where(body.tv-css-storefront) .tv-category-tabs {
		gap: 8px;
	}
	:where(body.tv-css-storefront).tv-storefront .tv-search-dialog {
		padding-top: 65px;
	}
	:where(body.tv-css-storefront) .tv-theme-actions a {
		min-height: 44px;
		display: inline-flex;
		align-items: center;
	}
	:where(body.tv-css-storefront) .tv-themes-clear {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		padding: 8px;
	}
	:where(body.tv-css-storefront) .tv-theme-meta {
		row-gap: 10px;
	}
	:where(body.tv-css-storefront) .tvh-form-row > * {
		min-width: 0;
	}
}
@media (max-width: 700px) {
	:where(body.tv-css-storefront).tv-storefront .tv-header {
		padding: 16px 20px;
		gap: 8px;
	}
	:where(body.tv-css-storefront).tv-storefront .tv-menu-toggle {
		padding: 10px;
		width: 44px;
	}
	:where(body.tv-css-storefront) .tv-menu-label {
		display: none;
	}
	:where(body.tv-css-storefront).tv-storefront .tv-logo {
		font-size: 23px;
		letter-spacing: -1.2px;
		min-width: 0;
	}
	:where(body.tv-css-storefront) .tv-logo-icon {
		font-size: 30px;
	}
	:where(body.tv-css-storefront) .tv-header-tools {
		gap: 2px;
		flex-shrink: 0;
	}
	:where(body.tv-css-storefront) .tv-navigation {
		left: 12px;
		right: 12px;
		padding: 16px 20px;
		max-height: calc(100dvh - 105px);
	}
	:where(body.tv-css-storefront).tv-storefront .tv-search-dialog {
		width: calc(100vw - 24px);
		padding: 65px 20px 25px;
	}
	:where(body.tv-css-storefront) .tv-search-dialog h2 {
		font-size: 32px;
	}
	:where(body.tv-css-storefront) .tv-search-dialog form {
		flex-wrap: wrap;
		gap: 12px;
	}
	:where(body.tv-css-storefront) .tv-search-dialog input[type="search"] {
		width: 100%;
		min-height: 44px;
	}
	:where(body.tv-css-storefront) .tv-search-dialog button[type="submit"] {
		width: 100%;
	}
	:where(body.tv-css-storefront) .tv-live-result {
		flex-wrap: wrap;
		gap: 5px;
	}
	:where(body.tv-css-storefront) .tv-live-result strong {
		width: 100%;
		font-weight: 550;
	}
	:where(body.tv-css-storefront).tv-storefront .tv-footer-top input {
		min-width: 0;
		font-size: 16px;
	}
	:where(body.tv-css-storefront) .tv-footer-middle .tv-footer-email {
		font-size: clamp(20px, 6vw, 25px);
	}
	:where(body.tv-css-storefront) .tv-footer-legal > div {
		flex-wrap: wrap;
		gap: 15px 25px;
	}
	:where(body.tv-css-storefront) .tv-slider-controls {
		flex-shrink: 0;
	}
	:where(body.tv-css-storefront) .tv-testimonial-heading {
		align-items: center;
	}
	:where(body.tv-css-storefront) .tv-testimonial-heading h2 {
		font-size: clamp(27px, 8vw, 34px);
	}
	:where(body.tv-css-storefront).tv-storefront .tv-slider-controls button {
		font-size: 20px;
	}
	:where(body.tv-css-storefront) .tv-themes-filter-row {
		gap: 12px;
	}
	:where(body.tv-css-storefront) .tv-themes-filter-row > label:not(.tv-themes-sale) {
		gap: 8px;
	}
	:where(body.tv-css-storefront) .tv-themes-filter-row select {
		width: 68%;
	}
	:where(body.tv-css-storefront) .tv-themes-filter-row .tv-themes-apply {
		min-height: 44px;
	}
	:where(body.tv-css-storefront) .tv-themes-results {
		align-items: start;
		gap: 15px;
	}
	:where(body.tv-css-storefront) .tv-theme-meta .tv-product-price {
		font-size: 20px;
	}
	:where(body.tv-css-storefront) .tvp-actions {
		gap: 8px;
	}
	:where(body.tv-css-storefront) .tvp-action {
		min-height: 48px;
	}
	:where(body.tv-css-storefront) .tvp-feature {
		padding-inline: 22px;
	}
	:where(body.tv-css-storefront) .tvp-specifications dl > div {
		grid-template-columns: minmax(85px, 0.65fr) minmax(0, 1fr);
	}
	:where(body.tv-css-storefront) .tvp-mobile-buy {
		padding: 12px 20px calc(12px + env(safe-area-inset-bottom, 0px));
		gap: 12px;
	}
	:where(body.tv-css-storefront) .tvp-mobile-buy > a {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 44px;
		flex-shrink: 0;
		padding: 12px 18px;
		font-size: 13px;
	}
	:where(body.tv-css-storefront) .tvp-mobile-buy > span {
		min-width: 0;
		overflow-wrap: anywhere;
		font-size: 22px;
	}
	:where(body.tv-css-storefront).single-product .tv-footer {
		padding-bottom: calc(85px + env(safe-area-inset-bottom, 0px));
	}
	:where(body.tv-css-storefront).single-product .tv-back-top {
		bottom: calc(95px + env(safe-area-inset-bottom, 0px));
	}
	:where(body.tv-css-storefront) .tvp-lightbox {
		padding-top: 55px;
	}
	:where(body.tv-css-storefront) .tvp-lightbox > img {
		max-height: calc(100dvh - 100px);
	}
	:where(body.tv-css-storefront) .tvh-quote-form .tv-button,
	:where(body.tv-css-storefront) .tva-comments .tva-comment-submit {
		min-height: 48px;
	}
	:where(body.tv-css-storefront) .tva-meta {
		font-size: 11px;
		line-height: 1.6;
	}
	:where(body.tv-css-storefront) .tva-author {
		gap: 15px;
	}
	:where(body.tv-css-storefront) .tva-author-avatar {
		width: 50px;
		height: 50px;
	}
	:where(body.tv-css-storefront) .tva-author h2 {
		font-size: 24px;
	}
	:where(body.tv-css-storefront) .tva-tags {
		gap: 8px;
	}
	:where(body.tv-css-storefront) .tva-share {
		flex-wrap: wrap;
		gap: 8px;
	}
	:where(body.tv-css-storefront) .tva-content img,
	:where(body.tv-css-storefront) .tvl-content img {
		height: auto;
	}
	:where(body.tv-css-storefront).tv-storefront .tv-footer-legal a {
		padding-block: 10px;
	}
	:where(body.tv-css-storefront) .tvh-form-trap {
		max-width: 1px;
	}
	:where(body.tv-css-storefront).tv-storefront .tv-back-top {
		right: 15px;
	}
	:where(body.tv-css-storefront) .tv-product-info > div {
		min-width: 0;
	}
	:where(body.tv-css-storefront) .tvp-secure {
		line-height: 1.5;
	}
	:where(body.tv-css-storefront) .tvp-data-section .comment-form-cookies-consent input {
		flex-shrink: 0;
	}
}
@media (max-width: 360px) {
	:where(body.tv-css-storefront).tv-storefront .tv-header {
		padding-inline: 16px;
		gap: 4px;
	}
	:where(body.tv-css-storefront).tv-storefront .tv-logo {
		font-size: 20px;
		letter-spacing: -1px;
	}
	:where(body.tv-css-storefront) .tv-logo-icon {
		font-size: 26px;
		margin-right: 3px;
	}
	:where(body.tv-css-storefront) .tv-logo sup {
		font-size: 8px;
	}
	:where(body.tv-css-storefront) .tv-header-tools {
		gap: 0;
	}
	:where(body.tv-css-storefront).tv-storefront .tv-menu-toggle,
	:where(body.tv-css-storefront).tv-storefront .tv-icon-button,
	:where(body.tv-css-storefront).tv-storefront .tv-cart {
		width: 44px;
		min-width: 44px;
	}
	:where(body.tv-css-storefront).tv-storefront .tv-search-dialog h2 {
		font-size: 29px;
	}
	:where(body.tv-css-storefront) .tv-themes-filter-row {
		column-gap: 10px;
	}
	:where(body.tv-css-storefront) .tv-themes-filter-row .tv-themes-apply {
		padding-inline: 12px;
	}
	:where(body.tv-css-storefront) .tv-themes-clear {
		margin-left: 0;
	}
	:where(body.tv-css-storefront) .tvp-mobile-buy {
		padding-inline: 16px;
	}
	:where(body.tv-css-storefront) .tvp-mobile-buy > a {
		font-size: 12px;
		padding-inline: 14px;
	}
	:where(body.tv-css-storefront) .tvp-purchase {
		padding: 25px 20px;
	}
	:where(body.tv-css-storefront) .tvh-package {
		padding: 30px 24px;
	}
	:where(body.tv-css-storefront) .tvh-package-price {
		font-size: 43px;
	}
	:where(body.tv-css-storefront) .tvh-quote-panel {
		padding-inline: 18px;
	}
	:where(body.tv-css-storefront) .tva-author h2 {
		font-size: 22px;
	}
	:where(body.tv-css-storefront) .tva-content .tva-lead {
		font-size: 21px;
	}
	:where(body.tv-css-storefront) .tv-hero-bottom p {
		font-size: 21px;
	}
	:where(body.tv-css-storefront) .tvh-hero-work {
		margin-left: 0;
		display: block;
	}
	:where(body.tv-css-storefront) .tvh-hero h1 {
		font-size: 49px;
	}
}
@media (max-height: 500px) and (max-width: 1100px) {
	:where(body.tv-css-storefront).tv-storefront .tv-header {
		padding-block: 10px;
	}
	:where(body.tv-css-storefront) .tv-navigation {
		max-height: calc(100dvh - 85px);
	}
	:where(body.tv-css-storefront) .tv-search-dialog {
		max-height: calc(100dvh - 20px);
	}
	:where(body.tv-css-storefront) .tvp-lightbox img {
		max-height: calc(100dvh - 80px);
	}
}
@media (prefers-reduced-motion: reduce) {
	:where(body.tv-css-storefront).tv-storefront {
		scroll-behavior: auto;
	}
	:where(body.tv-css-storefront).tv-storefront * {
		scroll-behavior: auto !important;
	}
}

/* Keep fixed helpers clear of editing fields and native modal dialogs. */
:where(body.tv-css-storefront).tv-storefront:has(dialog[open]) {
	overflow: hidden;
}
:where(body.tv-css-storefront).tv-storefront:has(dialog[open]) .tvp-mobile-buy {
	visibility: hidden;
}
@media (max-width: 700px) {
	:where(body.tv-css-storefront).tv-storefront:has(form:focus-within, .tv-catalog-tools:focus-within) .tv-back-top,
	:where(body.tv-css-storefront).tv-storefront:has(.tvh-quote:target) .tv-back-top {
		opacity: 0;
		visibility: hidden;
	}
}

:where(body.tv-css-storefront).tv-storefront .tva-search input,
:where(body.tv-css-storefront).tv-storefront .tv-blog-search input,
:where(body.tv-css-storefront).tv-storefront .tv-footer-top input {
	min-height: 44px;
}

:where(body.tv-css-storefront) .tv-group {
	flex-shrink: 0;
}
:where(body.tv-css-storefront) .tv-group > span {
	white-space: nowrap;
}
:where(body.tv-css-storefront).tv-storefront .tvh-quote-form input:not([type="checkbox"]):not([type="hidden"]),
:where(body.tv-css-storefront).tv-storefront .tvh-quote-form select,
:where(body.tv-css-storefront).tv-storefront .tvh-quote-form textarea {
	margin-top: 6px;
}
:where(body.tv-css-storefront).tv-storefront .tvh-quote-form input:focus-visible,
:where(body.tv-css-storefront).tv-storefront .tvh-quote-form select:focus-visible,
:where(body.tv-css-storefront).tv-storefront .tvh-quote-form textarea:focus-visible {
	outline-offset: 2px;
	outline-width: 2px;
}

/* Supplied ThemeVisto T mark; original bitmap preserved inside its SVG frame. */
:where(body.tv-css-storefront).tv-storefront .tv-logo {
	gap: 7px;
	color: #1d3d75;
	letter-spacing: -1.2px;
	flex-shrink: 0;
}
:where(body.tv-css-storefront).tv-storefront .tv-brand-mark {
	display: block;
	width: 32px;
	height: 40px;
	object-fit: contain;
	flex-shrink: 0;
}
:where(body.tv-css-storefront).home .tv-header .tv-logo {
	color: #fff;
}
:where(body.tv-css-storefront).home .tv-header .tv-brand-mark {
	filter: brightness(0) invert(1);
}
@media (max-width: 700px) {
	:where(body.tv-css-storefront).tv-storefront .tv-brand-mark {
		width: 25px;
		height: 32px;
	}
	:where(body.tv-css-storefront).tv-storefront .tv-logo {
		gap: 6px;
		font-size: 23px;
	}
}
@media (max-width: 360px) {
	:where(body.tv-css-storefront).tv-storefront .tv-brand-mark {
		width: 22px;
		height: 28px;
	}
	:where(body.tv-css-storefront).tv-storefront .tv-logo {
		gap: 5px;
		font-size: 20px;
	}
}

/* Two-tone wordmark requested by ThemeVisto. */
:where(body.tv-css-storefront).tv-storefront .tv-logo {
	background: #07133b;
	padding: 6px 10px;
	border-radius: 7px;
	color: #fff;
	line-height: 1;
}
:where(body.tv-css-storefront).tv-storefront .tv-brand-name {
	display: inline-flex;
	white-space: nowrap;
	align-items: baseline;
}
:where(body.tv-css-storefront).tv-storefront .tv-brand-theme {
	color: #fff;
}
:where(body.tv-css-storefront).tv-storefront .tv-brand-visto {
	color: #51d320;
}
:where(body.tv-css-storefront).tv-storefront .tv-header .tv-brand-mark {
	filter: brightness(0) invert(1);
}
:where(body.tv-css-storefront).home .tv-header .tv-logo {
	background: transparent;
	padding: 6px 0;
}
:where(body.tv-css-storefront) .tv-footer-wordmark > .tv-brand-theme,
:where(body.tv-css-storefront) .tv-footer-wordmark > .tv-brand-visto {
	display: inline;
}
@media (max-width: 700px) {
	:where(body.tv-css-storefront).tv-storefront .tv-logo {
		padding: 6px 8px;
		font-size: 21px;
	}
	:where(body.tv-css-storefront).home .tv-header .tv-logo {
		padding-inline: 0;
	}
}
@media (max-width: 360px) {
	:where(body.tv-css-storefront).tv-storefront .tv-logo {
		font-size: 18px;
	}
	:where(body.tv-css-storefront).tv-storefront .tv-brand-mark {
		width: 20px;
		height: 26px;
	}
}

/* Font Awesome icons retain the existing control dimensions. */
:where(body.tv-css-storefront) .tv-fa {
	display: inline-block;
	line-height: 1;
	flex-shrink: 0;
	font-style: normal;
}
:where(body.tv-css-storefront) .tv-fa-diagonal {
	transform: rotate(-45deg);
}
:where(body.tv-css-storefront).tv-storefront .tv-icon-button > .tv-fa,
:where(body.tv-css-storefront).tv-storefront .tv-cart > .tv-fa,
:where(body.tv-css-storefront).tv-storefront .tv-menu-toggle > .tv-fa {
	font-size: 20px;
	width: 24px;
	text-align: center;
}
:where(body.tv-css-storefront) .tv-dropdown summary > .tv-fa {
	font-size: 10px;
	margin-left: 6px;
}
:where(body.tv-css-storefront) .tv-button .tv-fa,
:where(body.tv-css-storefront) .tvp-action .tv-fa {
	font-size: 14px;
}
:where(body.tv-css-storefront) .tv-catalog-search > .tv-fa,
:where(body.tv-css-storefront) .tv-themes-search > .tv-fa {
	font-size: 19px;
	width: 24px;
}
:where(body.tv-css-storefront) .tvh-process-icon > .tv-fa {
	font-size: 40px;
}
:where(body.tv-css-storefront).tv-storefront .tva-sample-cover > i.tv-fa {
	font-size: 150px;
}
:where(body.tv-css-storefront) .tvh-device-bar i:not(.tv-fa) {
	display: block;
}
:where(body.tv-css-storefront) .tvp-highlights .tv-fa,
:where(body.tv-css-storefront) .tv-service-symbol .tv-fa,
:where(body.tv-css-storefront) .tv-quote .tv-fa {
	font-size: 0.85em;
}
:where(body.tv-css-storefront).tv-storefront .tv-search-close > .tv-fa,
:where(body.tv-css-storefront).tv-storefront .tvp-lightbox > button > .tv-fa {
	font-size: 20px;
}
:where(body.tv-css-storefront) .tva-share .tv-fa {
	font-size: 14px;
}
:where(body.tv-css-storefront).tv-storefront .tv-menu-toggle .tv-fa {
	pointer-events: none;
}

:where(body.tv-css-storefront) .tv-check-list li:before,
:where(body.tv-css-storefront) .tvp-feature li:before,
:where(body.tv-css-storefront) .tvh-package li:before {
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	content: "\f00c";
}

/* Homepage catalog heading and category filters. */
:where(body.tv-css-storefront) .tv-catalog-heading {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 30px;
	margin-bottom: 50px;
}
:where(body.tv-css-storefront) .tv-catalog-heading > div:first-child {
	min-width: 0;
}
:where(body.tv-css-storefront) .tv-catalog-heading .tv-category-tabs {
	justify-content: flex-end;
	flex-shrink: 0;
	max-width: 42%;
	padding-bottom: 5px;
}
@media (max-width: 1100px) {
	:where(body.tv-css-storefront) .tv-catalog-heading {
		flex-direction: column;
		align-items: flex-start;
		gap: 25px;
	}
	:where(body.tv-css-storefront) .tv-catalog-heading .tv-category-tabs {
		justify-content: flex-start;
		max-width: 100%;
		padding-bottom: 0;
	}
}
@media (max-width: 700px) {
	:where(body.tv-css-storefront) .tv-catalog-heading {
		margin-bottom: 35px;
	}
}

/* Violet accent: strong on light surfaces, lighter on dark surfaces. */
:where(body.tv-css-storefront).tv-storefront .tv-button {
	color: #fff !important;
}
:where(body.tv-css-storefront).tv-storefront .tv-button:hover {
	background: #6d28d9;
}
:where(body.tv-css-storefront).tv-storefront .tv-brand-visto,
:where(body.tv-css-storefront) .tv-footer-wordmark > .tv-brand-visto {
	color: #d2e11e;
}
:where(body.tv-css-storefront) .tv-footer {
	--tv-lime: #d2e11e;
}
:where(body.tv-css-storefront) .tv-header .tv-sale-link,
:where(body.tv-css-storefront) .tv-header .tv-cart > span {
	--tv-lime: #d2e11e;
}

/* Subtle transparency on the large footer brand. */
:where(body.tv-css-storefront) .tv-footer-wordmark {
	opacity: 0.5;
}

/* Larger back-to-top control with the shared arrow style pointing upward. */
:where(body.tv-css-storefront).tv-storefront .tv-back-top {
	width: 56px;
	height: 56px;
	color: #fff;
	background: #7c3aed;
}
:where(body.tv-css-storefront).tv-storefront .tv-back-top > i {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	font-size: 20px;
	line-height: 1;
	color: #fff;
}
:where(body.tv-css-storefront).tv-storefront .tv-back-top:hover {
	background: #6d28d9;
}
@media (max-width: 700px) {
	:where(body.tv-css-storefront).tv-storefront .tv-back-top {
		width: 50px;
		height: 50px;
	}
}

/* ==================== HOMEPAGE SECTIONS ==================== */
/* Homepage banner palette only. Layout remains in storefront.css and responsive.css. */
:where(body.tv-css-home).home .tv-hero {
	background: #005fea url("../images/hero.jpg") center / cover;
}
:where(body.tv-css-home).home .tv-hero h1 > span {
	color: #d2e11e;
}
:where(body.tv-css-home).home .tv-trust,
:where(body.tv-css-home).home .tv-social-pills a {
	background: #ffffff24;
	box-shadow: inset 1px 2px 2px #ffffff30;
}
:where(body.tv-css-home).home .tv-social-pills a:hover {
	background: #ffffff40;
}
:where(body.tv-css-home).home .tv-header {
	color: #fff;
	border-bottom-color: #ffffff24;
}
:where(body.tv-css-home).home .tv-header .tv-brand-visto,
:where(body.tv-css-home).home .tv-header .tv-sale-link {
	color: #d2e11e !important;
}
:where(body.tv-css-home).home .tv-navigation > a:hover,
:where(body.tv-css-home).home .tv-dropdown summary:hover {
	color: #d2e11e;
}
:where(body.tv-css-home).home .tv-header .tv-cart > span {
	background: #d2e11e;
	color: #162a49;
}

/* Editorial hero: oversized message above a split footer. */
:where(body.tv-css-home).home .tv-hero-editorial {
	min-height: 800px;
	min-height: min(960px, 100svh);
	padding: 180px 70px 55px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 32px;
}
:where(body.tv-css-home).home .tv-hero-editorial .tv-trust {
	margin: 0;
}
:where(body.tv-css-home).home .tv-hero-editorial .tv-hero-title-wrap {
	width: 100%;
}
:where(body.tv-css-home).home .tv-hero-editorial h1 {
	font-size: clamp(56px, 6.5vw, 110px);
	font-weight: 500;
	letter-spacing: -0.055em;
	line-height: 1.07;
	white-space: normal;
	margin: 0;
	max-width: 1200px;
}
:where(body.tv-css-home).home .tv-hero-editorial .tv-hero-bottom {
	width: 100%;
	margin-top: auto;
	padding-top: 32px;
	gap: 50px;
	align-items: flex-end;
}
:where(body.tv-css-home).home .tv-hero-editorial .tv-social-pills {
	margin: 0;
	gap: 20px 38px;
	flex: 1;
}
:where(body.tv-css-home).home .tv-hero-editorial .tv-social-pills a {
	background: transparent;
	box-shadow: none;
	padding: 10px 0;
	font-size: 14px;
	min-height: 44px;
	display: inline-flex;
	gap: 8px;
	align-items: center;
}
:where(body.tv-css-home).home .tv-hero-editorial .tv-social-pills a:hover {
	color: #d2e11e;
}
:where(body.tv-css-home).home .tv-hero-summary {
	width: 360px;
	max-width: 100%;
	flex-shrink: 0;
}
:where(body.tv-css-home).home .tv-hero-summary p {
	font-size: 25px;
	line-height: 1.3;
	letter-spacing: -0.025em;
}
:where(body.tv-css-home).home .tv-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 26px;
}
:where(body.tv-css-home).home .tv-hero-actions .tv-button {
	background: #d2e11e;
	color: #162a49 !important;
	font-size: 14px;
	gap: 20px;
	padding: 14px 20px;
	border-radius: 30px;
	min-height: 48px;
}
:where(body.tv-css-home).home .tv-hero-actions .tv-button:hover {
	background: #ddd6fe;
}
:where(body.tv-css-home).home .tv-hero-actions .tv-hero-contact {
	background: #fff;
}
:where(body.tv-css-home).home .tv-hero-actions .tv-hero-contact:hover {
	background: #e7eef7;
}
@media (min-width: 1800px) {
	:where(body.tv-css-home).home .tv-hero-editorial {
		padding-top: 210px;
		gap: 45px;
	}
}
@media (max-width: 1100px) {
	:where(body.tv-css-home).home .tv-hero-editorial {
		padding: 155px 35px 45px;
		min-height: 760px;
	}
	:where(body.tv-css-home).home .tv-hero-editorial .tv-hero-bottom {
		gap: 35px;
	}
	:where(body.tv-css-home).home .tv-hero-editorial .tv-social-pills {
		gap: 12px 25px;
	}
	:where(body.tv-css-home).home .tv-hero-summary {
		width: 310px;
	}
	:where(body.tv-css-home).home .tv-hero-summary p {
		font-size: 23px;
	}
}
@media (max-width: 700px) {
	:where(body.tv-css-home).home .tv-hero-editorial {
		padding: 135px 20px 40px;
		min-height: auto;
		gap: 30px;
	}
	:where(body.tv-css-home).home .tv-hero-editorial h1 {
		font-size: clamp(38px, 8.4vw, 58px);
		line-height: 1.1;
	}
	:where(body.tv-css-home).home .tv-hero-editorial h1 br {
		display: none;
	}
	:where(body.tv-css-home).home .tv-hero-editorial .tv-hero-bottom {
		display: flex;
		flex-direction: column-reverse;
		align-items: flex-start;
		gap: 32px;
		padding-top: 12px;
		margin: 0;
	}
	:where(body.tv-css-home).home .tv-hero-summary {
		width: 100%;
	}
	:where(body.tv-css-home).home .tv-hero-summary p {
		font-size: 22px;
		max-width: 390px;
	}
	:where(body.tv-css-home).home .tv-hero-editorial .tv-social-pills {
		width: 100%;
		gap: 6px 22px;
	}
	:where(body.tv-css-home).home .tv-hero-editorial .tv-social-pills a {
		font-size: 12px;
	}
	:where(body.tv-css-home).home .tv-hero-actions {
		margin-top: 22px;
	}
}

/* Decorative rotating star beside the headline. */
:where(body.tv-css-home).home .tv-hero-editorial h1 {
	max-width: 83%;
}
:where(body.tv-css-home).home .tv-hero-editorial .tv-star {
	width: clamp(110px, 14vw, 270px);
	right: 12%;
	top: 28%;
	bottom: auto;
	transform: translateY(-50%);
	animation: tv-editorial-star 35s linear infinite;
}
@keyframes tv-editorial-star {
	to {
		transform: translateY(-50%) rotate(360deg);
	}
}
@media (max-width: 700px) {
	:where(body.tv-css-home).home .tv-hero-editorial h1 {
		max-width: 100%;
		padding-right: 0;
	}
	:where(body.tv-css-home).home .tv-hero-editorial .tv-star {
		position: relative;
		top: auto;
		right: auto;
		width: 100px;
		margin: 24px 0 0 auto;
		transform: none;
		animation: tv-spin 35s linear infinite;
	}
}
@media (prefers-reduced-motion: reduce) {
	:where(body.tv-css-home).home .tv-hero-editorial .tv-star {
		animation: none;
	}
}

/* Services: clean columns on a shared light surface. */
:where(body.tv-css-home).home .tv-service-grid {
	background: #fff;
	color: #162a49;
	padding: 52px 70px;
	gap: 0;
}
:where(body.tv-css-home).home .tv-service {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
	padding: 4px 36px;
	background: transparent;
	border: 0;
	border-right: 1px solid #e6e9ef;
	border-radius: 0;
	box-shadow: none;
}
:where(body.tv-css-home).home .tv-service:first-child {
	padding-left: 0;
}
:where(body.tv-css-home).home .tv-service:last-child {
	padding-right: 0;
	border: 0;
}
:where(body.tv-css-home).home .tv-service .tv-service-symbol {
	position: static;
	background: transparent;
	color: #162a49;
	font-size: 32px;
	line-height: 1;
	margin-bottom: 22px;
}
:where(body.tv-css-home).home .tv-service h2 {
	color: #162a49;
	font-size: 25px;
	max-width: 100%;
	padding: 0;
	margin-bottom: 10px;
}
:where(body.tv-css-home).home .tv-service p {
	color: #657080;
	font-size: 15px;
	max-width: 100%;
	margin-bottom: 22px;
	line-height: 1.6;
}
:where(body.tv-css-home).home .tv-service .tv-button-dark {
	margin-top: auto;
	padding: 8px 0;
	min-height: 44px;
	background: transparent;
	border: 0;
	border-radius: 0;
	color: #162a49 !important;
	gap: 24px;
	font-size: 14px;
}
:where(body.tv-css-home).home .tv-service .tv-button-dark:hover {
	background: transparent;
	color: #6d28d9 !important;
	transform: none;
}
@media (max-width: 1100px) {
	:where(body.tv-css-home).home .tv-service-grid {
		padding: 40px 35px;
	}
	:where(body.tv-css-home).home .tv-service {
		padding-inline: 24px;
	}
	:where(body.tv-css-home).home .tv-service h2 {
		font-size: 22px;
	}
}
@media (max-width: 700px) {
	:where(body.tv-css-home).home .tv-service-grid {
		padding: 10px 20px;
		grid-template-columns: 1fr;
	}
	:where(body.tv-css-home).home .tv-service,
	:where(body.tv-css-home).home .tv-service:first-child,
	:where(body.tv-css-home).home .tv-service:last-child {
		padding: 28px 0;
		border: 0;
	}
	:where(body.tv-css-home).home .tv-service:not(:last-child) {
		border-bottom: 1px solid #e6e9ef;
	}
	:where(body.tv-css-home).home .tv-service .tv-service-symbol {
		margin-bottom: 18px;
	}
}
/* Soft neutral canvas for the homepage content. */
:where(body.tv-css-home).home #main-content {
	background-color: #f8f9fc;
	--tv-paper: #f8f9fc;
}

/* Catalog cards: inset preview with a simple title and category. */
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-product-grid {
	gap: 28px;
	align-items: stretch;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-product {
	min-width: 0;
	padding: 14px;
	background: #fff;
	border: 1px solid #d8dcd1;
	border-radius: 26px;
	box-shadow: 0 2px 4px #162a4904;
	overflow: hidden;
	transition:
		border-color 0.2s,
		box-shadow 0.2s;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-product:hover,
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-product:focus-within {
	border-color: #a9b2c1;
	box-shadow: 0 8px 24px #162a490a;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-product-image {
	padding: 0;
	border: 0;
	border-radius: 15px;
	aspect-ratio: 4 / 3;
	background: #f0f2f6;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-product-image img {
	border-radius: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-product-info {
	display: block;
	padding: 18px 6px 10px;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-product h3 {
	font-size: 18px;
	font-weight: 500;
	letter-spacing: -0.025em;
	line-height: 1.2;
	margin: 0 0 5px;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-product h3 a:hover {
	color: #6d28d9;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-product-category {
	margin: 0;
	color: #737b89;
	font-size: 13px;
	line-height: 1.4;
}
@media (max-width: 700px) {
	:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-product-grid {
		gap: 22px;
	}
	:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-product {
		padding: 12px;
		border-radius: 24px;
	}
}
@media (prefers-reduced-motion: reduce) {
	:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-product {
		transition: none;
	}
}

/* Product pricing, purchase action and centered demo overlay. */
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-product-info {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-description {
	min-width: 0;
	flex: 1;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-price {
	display: block;
	font-size: 18px;
	font-weight: 600;
	color: #162a49;
	margin-top: 10px;
	line-height: 1.3;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-price del {
	font-size: 13px;
	color: #7a8290;
	font-weight: 400;
	margin-right: 5px;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-price ins {
	text-decoration: none;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-cart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	flex-shrink: 0;
	min-height: 44px;
	padding: 12px 14px;
	border: 1px solid #d8dce4;
	border-radius: 10px;
	font-size: 12px;
	font-weight: 550;
	color: #162a49;
	background: #fff;
	white-space: nowrap;
	transition:
		background 0.2s,
		border-color 0.2s;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-cart:hover {
	background: #d2e11e;
	border-color: #d2e11e;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-preview {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	background: #07133b99;
	color: #fff;
	font-size: 14px;
	font-weight: 500;
	opacity: 0;
	transition: opacity 0.2s;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-preview-icon {
	display: grid;
	place-items: center;
	width: 54px;
	height: 54px;
	border-radius: 50%;
	background: #fff;
	color: #162a49;
	font-size: 20px;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-product-image:hover .tv-card-preview,
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-product-image:focus-visible .tv-card-preview {
	opacity: 1;
}
@media (min-width: 701px) and (max-width: 1200px) {
	:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-cart {
		width: 44px;
		padding: 10px;
	}
	:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-cart > span {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}
}
@media (max-width: 380px) {
	:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-product-info {
		gap: 10px;
	}
	:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-cart {
		width: 44px;
		padding: 10px;
	}
	:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-cart > span {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}
}
@media (hover: none) {
	:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-preview {
		opacity: 1;
		inset: auto 10px 10px auto;
		flex-direction: row;
		gap: 7px;
		padding: 7px 10px;
		border-radius: 8px;
		font-size: 12px;
	}
	:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-preview-icon {
		width: 24px;
		height: 24px;
		font-size: 12px;
	}
}
@media (prefers-reduced-motion: reduce) {
	:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-preview,
	:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-cart {
		transition: none;
	}
}

/* Sale status follows the product's active WooCommerce discount. */
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-sale {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border-radius: 50%;
	background: #d2e11e;
	color: #162a49;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	pointer-events: none;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-price del {
	text-decoration: line-through;
	opacity: 1;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-price ins {
	text-decoration: none;
}

:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-actions {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-details {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border: 1px solid #d8dce4;
	border-radius: 50%;
	color: #162a49;
	background: #fff;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-details:hover {
	background: #d2e11e;
	border-color: #d2e11e;
}
:where(body.tv-css-storefront) :is(.tv-catalog, .tv-themes-catalog) .tv-card-details i {
	font-size: 17px;
}

/* Two identical, gap-inclusive groups make the marquee loop seamless. */
:where(body.tv-css-home).home .tv-marquee > .tv-marquee-track {
	display: flex;
	width: max-content;
	gap: 0;
	animation: tv-marquee-loop 100s linear infinite;
}
:where(body.tv-css-home).home .tv-marquee-group {
	display: flex;
	flex-shrink: 0;
	gap: 20px;
	padding-right: 20px;
}
@keyframes tv-marquee-loop {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-50%);
	}
}
@media (prefers-reduced-motion: reduce) {
	:where(body.tv-css-home).home .tv-marquee > .tv-marquee-track {
		animation: none;
	}
}

/* Keep statistic suffixes consistent with the navy figures. */
:where(body.tv-css-home).home .tv-statistics strong > span {
	color: inherit;
}

/* ThemeVisto's modular website launch section. */
:where(body.tv-css-home).home .tv-launch {
	background: #eef0f7;
	border-block: 1px solid #e4e7f0;
}
:where(body.tv-css-home) .tv-launch-heading {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 50px;
	margin-bottom: 55px;
}
:where(body.tv-css-home) .tv-launch-heading h2 {
	font-size: clamp(38px, 4.2vw, 68px);
}
:where(body.tv-css-home) .tv-launch-heading h2 > span {
	color: #7c3aed;
}
:where(body.tv-css-home) .tv-launch-heading > p {
	max-width: 340px;
	color: #5f6b7e;
	font-size: 17px;
	line-height: 1.7;
}
:where(body.tv-css-home) .tv-launch-layout {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	align-items: center;
	gap: 9%;
}
:where(body.tv-css-home) .tv-launch-board {
	background: #14233f;
	border-radius: 24px;
	padding: 30px;
	color: #fff;
	box-shadow: 0 20px 45px #14233f12;
	min-width: 0;
}
:where(body.tv-css-home) .tv-launch-board-top {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 10px;
	letter-spacing: 0.1em;
	color: #b9c6dc;
	margin-bottom: 28px;
}
:where(body.tv-css-home) .tv-launch-board-top > i {
	margin-left: auto;
}
:where(body.tv-css-home) .tv-launch-dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #d2e11e;
}
:where(body.tv-css-home) .tv-launch-piece {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 23px 18px;
	border: 1px solid #ffffff1c;
	border-radius: 14px;
	margin-top: 12px;
	background: #ffffff06;
}
:where(body.tv-css-home) .tv-launch-piece > div {
	min-width: 0;
}
:where(body.tv-css-home) .tv-launch-piece-icon {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	border-radius: 12px;
	background: #ffffff0d;
	color: #d2e11e;
	font-size: 20px;
}
:where(body.tv-css-home) .tv-launch-piece strong {
	display: block;
	font-size: 20px;
	font-weight: 500;
	line-height: 1.3;
	margin-bottom: 6px;
}
:where(body.tv-css-home) .tv-launch-piece div > span {
	display: block;
	color: #a9b9d3;
	font-size: 12px;
	line-height: 1.6;
}
:where(body.tv-css-home) .tv-launch-piece > i {
	margin-left: auto;
	color: #d2e11e;
	font-size: 13px;
}
:where(body.tv-css-home) .tv-launch-board-bottom {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 28px;
	font-size: 12px;
	color: #b9c6dc;
}
:where(body.tv-css-home) .tv-launch-board-bottom img {
	filter: brightness(0) invert(1);
	width: 24px;
	height: 30px;
}
:where(body.tv-css-home) .tv-launch-copy h3 {
	font-size: clamp(27px, 2.4vw, 38px);
	line-height: 1.2;
	letter-spacing: -0.035em;
	margin-bottom: 22px;
}
:where(body.tv-css-home) .tv-launch-copy > p {
	font-size: 16px;
	line-height: 1.8;
	color: #5f6b7e;
	max-width: 490px;
}
:where(body.tv-css-home) .tv-launch-copy ul {
	list-style: none;
	padding: 0;
	margin: 25px 0 30px;
	display: grid;
	gap: 16px;
	font-size: 14px;
}
:where(body.tv-css-home) .tv-launch-copy li {
	display: flex;
	align-items: baseline;
	gap: 12px;
}
:where(body.tv-css-home) .tv-launch-copy li i {
	color: #7c3aed;
	font-size: 12px;
}
@media (max-width: 1100px) {
	:where(body.tv-css-home) .tv-launch-layout {
		gap: 5%;
	}
	:where(body.tv-css-home) .tv-launch-board {
		padding: 22px;
	}
	:where(body.tv-css-home) .tv-launch-piece {
		gap: 12px;
		padding: 18px 12px;
	}
	:where(body.tv-css-home) .tv-launch-piece strong {
		font-size: 17px;
	}
	:where(body.tv-css-home) .tv-launch-heading {
		gap: 30px;
	}
	:where(body.tv-css-home) .tv-launch-heading > p {
		max-width: 280px;
	}
}
@media (max-width: 700px) {
	:where(body.tv-css-home) .tv-launch-heading {
		display: block;
		margin-bottom: 30px;
	}
	:where(body.tv-css-home) .tv-launch-heading > p {
		max-width: none;
		margin-top: 22px;
		font-size: 16px;
	}
	:where(body.tv-css-home) .tv-launch-layout {
		grid-template-columns: 1fr;
		gap: 35px;
	}
	:where(body.tv-css-home) .tv-launch-board {
		border-radius: 20px;
		padding: 20px;
	}
	:where(body.tv-css-home) .tv-launch-piece {
		gap: 12px;
	}
	:where(body.tv-css-home) .tv-launch-piece-icon {
		width: 36px;
		height: 36px;
		font-size: 17px;
	}
	:where(body.tv-css-home) .tv-launch-piece div > span {
		font-size: 11px;
	}
	:where(body.tv-css-home) .tv-launch-copy h3 {
		font-size: 30px;
	}
}

:where(body.tv-css-home) .tv-launch-image {
	margin: 0;
	min-width: 0;
	border-radius: 24px;
	overflow: hidden;
	background: #f2f0eb;
}
:where(body.tv-css-home) .tv-launch-image img {
	display: block;
	width: 100%;
	height: auto;
}
@media (max-width: 700px) {
	:where(body.tv-css-home) .tv-launch-image {
		border-radius: 20px;
	}
}

/* Original custom-studio story and workspace visual. */
:where(body.tv-css-home) .tv-custom-studio {
	background: #fff;
}
:where(body.tv-css-home) .tv-custom-intro {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 9%;
	align-items: end;
	margin-bottom: 48px;
}
:where(body.tv-css-home) .tv-custom-intro h2 {
	font-size: clamp(38px, 4.1vw, 66px);
}
:where(body.tv-css-home) .tv-custom-intro h2 > span {
	color: #7c3aed;
}
:where(body.tv-css-home) .tv-custom-intro-copy {
	max-width: 470px;
}
:where(body.tv-css-home) .tv-custom-intro-copy p {
	color: #657080;
	font-size: 17px;
	line-height: 1.75;
	margin-bottom: 25px;
}
:where(body.tv-css-home) .tv-custom-layout {
	display: grid;
	grid-template-columns: 1.65fr 1fr;
	gap: 5%;
	align-items: stretch;
}
:where(body.tv-css-home) .tv-custom-photo {
	position: relative;
	margin: 0;
	min-width: 0;
	border-radius: 22px;
	overflow: hidden;
	background: #efedf2;
}
:where(body.tv-css-home) .tv-custom-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	min-height: 450px;
}
:where(body.tv-css-home) .tv-custom-photo figcaption {
	position: absolute;
	left: 22px;
	bottom: 22px;
	right: 22px;
	width: fit-content;
	max-width: calc(100% - 44px);
	background: #fffef4ed;
	color: #162a49;
	font-size: 13px;
	padding: 12px 18px;
	border-radius: 8px;
}
:where(body.tv-css-home) .tv-custom-services {
	display: flex;
	flex-direction: column;
	justify-content: center;
}
:where(body.tv-css-home) .tv-custom-services article {
	padding: 25px 0;
	border-bottom: 1px solid #e5e8ef;
}
:where(body.tv-css-home) .tv-custom-services article:first-child {
	padding-top: 0;
}
:where(body.tv-css-home) .tv-custom-services article:last-child {
	border: 0;
	padding-bottom: 0;
}
:where(body.tv-css-home) .tv-custom-services article > i {
	font-size: 22px;
	color: #7c3aed;
	margin-bottom: 15px;
}
:where(body.tv-css-home) .tv-custom-services h3 {
	font-size: 23px;
	line-height: 1.25;
	letter-spacing: -0.025em;
	margin-bottom: 10px;
}
:where(body.tv-css-home) .tv-custom-services p {
	font-size: 15px;
	line-height: 1.7;
	color: #657080;
	max-width: 390px;
}
@media (max-width: 1100px) {
	:where(body.tv-css-home) .tv-custom-intro {
		gap: 5%;
	}
	:where(body.tv-css-home) .tv-custom-layout {
		grid-template-columns: 1.2fr 1fr;
	}
	:where(body.tv-css-home) .tv-custom-photo img {
		min-height: 480px;
	}
}
@media (max-width: 700px) {
	:where(body.tv-css-home) .tv-custom-intro {
		grid-template-columns: 1fr;
		gap: 25px;
		margin-bottom: 30px;
	}
	:where(body.tv-css-home) .tv-custom-layout {
		grid-template-columns: 1fr;
		gap: 30px;
	}
	:where(body.tv-css-home) .tv-custom-photo img {
		min-height: 0;
		height: auto;
	}
	:where(body.tv-css-home) .tv-custom-photo {
		border-radius: 18px;
	}
	:where(body.tv-css-home) .tv-custom-services article {
		padding: 24px 0;
	}
	:where(body.tv-css-home) .tv-custom-services p {
		max-width: none;
	}
	:where(body.tv-css-home) .tv-custom-intro-copy p {
		font-size: 16px;
	}
	:where(body.tv-css-home) .tv-custom-photo figcaption {
		left: 14px;
		right: 14px;
		bottom: 14px;
		font-size: 11px;
		padding: 10px 12px;
		max-width: calc(100% - 28px);
	}
}

/* Balance the launch copy and image without a large empty middle. */
:where(body.tv-css-home).home .tv-launch-layout {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(30px, 4vw, 64px);
}
:where(body.tv-css-home).home .tv-launch-copy > p {
	max-width: 640px;
}
:where(body.tv-css-home).home .tv-launch-copy h3 {
	max-width: 650px;
}
:where(body.tv-css-home).home .tv-launch-copy ul {
	margin-block: 22px 26px;
}
@media (max-width: 700px) {
	:where(body.tv-css-home).home .tv-launch-layout {
		grid-template-columns: 1fr;
		gap: 30px;
	}
}

/* Keep the launch introduction close to its supporting content. */
:where(body.tv-css-home).home .tv-launch-heading {
	margin-bottom: 32px;
}
:where(body.tv-css-home).home .tv-launch-layout {
	align-items: start;
}
@media (max-width: 700px) {
	:where(body.tv-css-home).home .tv-launch-heading {
		margin-bottom: 26px;
	}
}

/* Align the launch image with the entire copy column. */
:where(body.tv-css-home).home .tv-launch-layout {
	align-items: stretch;
}
:where(body.tv-css-home).home .tv-launch-copy .tv-launch-heading {
	display: block;
	margin-bottom: 28px;
}
:where(body.tv-css-home).home .tv-launch-layout > .tv-launch-image {
	position: relative;
	min-height: 100%;
}
:where(body.tv-css-home).home .tv-launch-layout > .tv-launch-image img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
@media (max-width: 700px) {
	:where(body.tv-css-home).home .tv-launch-layout > .tv-launch-image {
		min-height: 0;
	}
	:where(body.tv-css-home).home .tv-launch-layout > .tv-launch-image img {
		position: static;
		height: auto;
	}
}

/* Client testimonial cards. */
:where(body.tv-css-home).home .tv-testimonial-heading {
	margin-bottom: 24px;
}
:where(body.tv-css-home) .tv-testimonial-placeholder {
	font-size: 12px;
	color: #737d8e;
	margin: 0 0 24px !important;
}
:where(body.tv-css-home).home .tv-review {
	border: 1px solid #e4e7ee;
	border-radius: 20px;
	padding: 32px;
	background: #fff;
	display: flex;
	flex-direction: column;
}
:where(body.tv-css-home) .tv-testimonial-card-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 24px;
}
:where(body.tv-css-home) .tv-testimonial-quote {
	color: #7c3aed;
	font-size: 30px;
}
:where(body.tv-css-home) .tv-testimonial-card-top > span {
	font-size: 10px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #737d8e;
	border: 1px solid #e4e7ee;
	padding: 4px 8px;
	border-radius: 20px;
}
:where(body.tv-css-home).home .tv-review blockquote {
	font-size: 19px;
	line-height: 1.6;
	letter-spacing: -0.015em;
	margin: 0 0 30px;
}
:where(body.tv-css-home) .tv-testimonial-author {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: auto;
}
:where(body.tv-css-home) .tv-testimonial-avatar {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #eee8fc;
	color: #6d28d9;
	font-size: 13px;
	font-weight: 600;
	flex-shrink: 0;
}
:where(body.tv-css-home).home .tv-testimonial-author strong {
	font-size: 15px;
	line-height: 1.4;
}
:where(body.tv-css-home).home .tv-testimonial-author p {
	font-size: 12px;
	color: #737d8e;
	margin-top: 3px;
}
@media (max-width: 700px) {
	:where(body.tv-css-home).home .tv-review {
		padding: 26px;
	}
	:where(body.tv-css-home).home .tv-review blockquote {
		font-size: 18px;
	}
}

/* ==================== HOMEPAGE TESTIMONIALS ==================== */
/* Earlier simple white-card styling, with Owl handling the movement. */
:where(body.tv-css-home).home .tv-testimonial-carousel {
	display: block;
	overflow: hidden;
	padding: 0;
	outline-offset: -3px;
}
:where(body.tv-css-home).home .tv-testimonial-carousel .owl-stage {
	display: flex;
}
:where(body.tv-css-home).home .tv-testimonial-carousel .owl-item {
	display: flex;
	float: none;
}
:where(body.tv-css-home).home .tv-testimonial-carousel .tv-review {
	width: 100%;
	border: 0;
	border-radius: 14px;
	padding: 35px;
	background: #fff;
	box-shadow: none;
}
:where(body.tv-css-home).home .tv-testimonial-card-top {
	margin-bottom: 28px;
}
:where(body.tv-css-home).home .tv-testimonial-quote {
	font-size: 40px;
	color: #1268ee;
}
:where(body.tv-css-home).home .owl-item:nth-child(even) .tv-testimonial-quote {
	color: #7c3aed;
}
:where(body.tv-css-home).home .tv-testimonial-carousel h3 {
	font-size: 24px;
	line-height: 1.25;
	letter-spacing: -0.03em;
	margin-bottom: 18px;
}
:where(body.tv-css-home).home .tv-testimonial-carousel blockquote {
	font-size: 19px;
	line-height: 1.55;
	margin-bottom: 30px;
}
:where(body.tv-css-home).home .tv-testimonial-author img.tv-testimonial-avatar {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	object-fit: cover;
}
:where(body.tv-css-home).home .tv-testimonial-card-top > span {
	border: 0;
	padding: 0;
	font-size: 10px;
}
:where(body.tv-css-home).home .tv-testimonial-carousel .owl-dots {
	display: flex;
	justify-content: center;
	gap: 4px;
	margin-top: 24px;
}
:where(body.tv-css-home).home .tv-testimonial-carousel .owl-dot {
	display: grid;
	place-items: center;
	width: 28px;
	height: 28px;
	padding: 0;
	border: 0;
	background: transparent;
}
:where(body.tv-css-home).home .tv-testimonial-carousel .owl-dot span {
	width: 7px;
	height: 7px;
	background: #cbd1dd;
	border-radius: 50%;
}
:where(body.tv-css-home).home .tv-testimonial-carousel .owl-dot.active span {
	background: #162a49;
}
@media (max-width: 700px) {
	:where(body.tv-css-home).home .tv-testimonial-carousel .tv-review {
		padding: 28px;
	}
	:where(body.tv-css-home).home .tv-testimonial-carousel h3 {
		font-size: 23px;
	}
}

:where(body.tv-css-home).home .tv-testimonial-avatar {
	width: 52px;
	height: 52px;
	background-image: url("../images/testimonial-portraits.webp");
	background-size: 200% 200%;
	background-repeat: no-repeat;
	border: 1px solid #e5e8ef;
}
:where(body.tv-css-home) .tv-portrait-0 {
	background-position: 0 0;
}
:where(body.tv-css-home) .tv-portrait-1 {
	background-position: 100% 0;
}
:where(body.tv-css-home) .tv-portrait-2 {
	background-position: 0 100%;
}
:where(body.tv-css-home) .tv-portrait-3 {
	background-position: 100% 100%;
}
:where(body.tv-css-home) .tv-testimonial-dots {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0;
	margin-top: 22px;
}
:where(body.tv-css-home) .tv-testimonial-dots button {
	display: grid;
	place-items: center;
	width: 22px;
	height: 28px;
	padding: 0;
	border: 0;
	background: transparent;
}
:where(body.tv-css-home) .tv-testimonial-dots button span {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #cbd3e2;
}
:where(body.tv-css-home) .tv-testimonial-dots button.is-active span {
	width: 9px;
	height: 9px;
	background: #1268ee;
}

:where(body.tv-css-home).home .tv-slider-controls button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}
:where(body.tv-css-home).home .tv-slider-controls button > i {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 14px;
	height: 14px;
	font-size: 14px;
	line-height: 1;
	transform: none;
}

/* ==================== SHARED ACTION BUTTONS ==================== */
/* Shared action button shape and spacing; colors stay with each component. */
:is(
	.tv-button,
	.tv-card-cart,
	.tvp-action,
	.tv-themes-apply,
	.btn-primary-glow,
	.btn-ghost-white,
	.btn-outline-spark,
	.portfolio-view-btn,
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button,
	.tv-storefront button[type="submit"],
	.tv-storefront input[type="submit"],
	.tvp-mobile-buy > a
):not(#wpadminbar *) {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 20px !important;
	min-height: 48px !important;
	padding: 14px 23px !important;
	border-radius: 999px !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 20px !important;
	text-align: center;
	text-decoration: none;
	box-sizing: border-box;
}

.tv-storefront .tv-card-cart {
	width: auto;
	flex-shrink: 1;
}

.tv-storefront .tv-card-cart > span {
	position: static;
	width: auto;
	height: auto;
	overflow: visible;
	clip-path: none;
	white-space: normal;
}

.tv-storefront .tv-card-cart {
	white-space: normal;
}

@media (max-width: 1200px) {
	.tv-storefront .tv-product-info:has(.tv-card-cart) {
		flex-wrap: wrap;
	}
}

/* Compact icon-only product purchase action. */
.tv-storefront .tv-card-cart {
	width: 48px;
	min-width: 48px;
	padding: 0 !important;
	flex-shrink: 0;
	gap: 0 !important;
	font-size: 18px !important;
}

/* Compact product actions, paired like the reference. */
.tv-storefront .tv-card-actions {
	gap: 6px;
	flex-wrap: wrap;
}
.tv-storefront .tv-card-actions .tv-card-cart {
	width: 44px;
	min-width: 44px;
	min-height: 44px !important;
	height: 44px;
	border-radius: 50% !important;
	font-size: 15px !important;
}
.tv-storefront .tv-card-actions .tv-card-details {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	height: 48px;
	min-height: 48px;
	padding: 14px 20px;
	border: 1px solid transparent;
	border-radius: 999px;
	background: var(--tv-lime, #7c3aed);
	color: #fff;
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	white-space: nowrap;
	text-decoration: none;
}
.tv-storefront .tv-card-actions .tv-card-details:hover {
	background: #6d28d9;
	color: #fff;
}
.tv-storefront .tv-product-info:has(.tv-card-actions) {
	flex-wrap: wrap;
}

/* Match the banner arrow size and remove the wrapper's baseline offset. */
:is(.tv-button, .tvp-action, .tv-themes-apply) > span:has(> i) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	line-height: 1;
	flex-shrink: 0;
}
:is(.tv-button, .tvp-action, .tv-themes-apply) i:is(.fa-arrow-right, .fa-arrow-up-right-from-square) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 14px;
	height: 14px;
	font-size: 14px;
	line-height: 1;
	flex-shrink: 0;
	vertical-align: middle;
}

.tv-inline-001 {
	font-size: 15px;
}

.tv-inline-002 {
	color: #51d320;
}

.tv-inline-003 {
	width: 100%;
	height: 100%;
}

.tv-inline-004 {
	font-size: 0.8rem;
	font-weight: 600;
}

.tv-inline-005 {
	font-size: 0.7rem;
	color: var(--muted);
}

.tv-inline-006 {
	font-size: 0.8rem;
	font-weight: 600;
}

.tv-inline-007 {
	font-size: 0.7rem;
	color: var(--muted);
}

.tv-inline-008 {
	width: 100%;
	height: 100%;
	position: absolute;
	inset: 0;
}

.tv-inline-009 {
	color: var(--muted);
	font-size: 0.97rem;
	line-height: 1.8;
}

.tv-inline-010 {
	color: var(--muted);
	font-size: 0.97rem;
	line-height: 1.8;
}

.tv-inline-011 {
	font-family: var(--font-display);
	margin-bottom: 10px;
}

.tv-inline-012 {
	font-size: 0.85rem;
	color: var(--muted);
}

.tv-inline-013 {
	font-family: var(--font-display);
	margin-bottom: 10px;
}

.tv-inline-014 {
	font-size: 0.85rem;
	color: var(--muted);
}

.tv-inline-015 {
	font-family: var(--font-display);
	margin-bottom: 10px;
}

.tv-inline-016 {
	font-size: 0.85rem;
	color: var(--muted);
}

.tv-inline-017 {
	font-family: var(--font-display);
	margin-bottom: 10px;
}

.tv-inline-018 {
	font-size: 0.85rem;
	color: var(--muted);
}

.tv-inline-019 {
	background: linear-gradient(135deg, #1a1040, #2d1b7a);
}

.tv-inline-020 {
	width: 80%;
	max-height: 120px;
}

.tv-inline-021 {
	font-size: 0.78rem;
	padding: 8px 16px;
}

.tv-inline-022 {
	background: linear-gradient(135deg, #0c1f1a, #0f3028);
}

.tv-inline-023 {
	width: 80%;
	max-height: 120px;
}

.tv-inline-024 {
	font-size: 0.78rem;
	padding: 8px 16px;
}

.tv-inline-025 {
	background: linear-gradient(135deg, #1a0c30, #3b1f70);
}

.tv-inline-026 {
	width: 80%;
	max-height: 120px;
}

.tv-inline-027 {
	font-size: 0.78rem;
	padding: 8px 16px;
}

.tv-inline-028 {
	background: linear-gradient(135deg, #0f1a2e, #1a2f50);
}

.tv-inline-029 {
	width: 80%;
	max-height: 120px;
}

.tv-inline-030 {
	font-size: 0.78rem;
	padding: 8px 16px;
}

.tv-inline-031 {
	background: linear-gradient(135deg, #1a0f24, #2d1055);
}

.tv-inline-032 {
	width: 80%;
	max-height: 120px;
}

.tv-inline-033 {
	font-size: 0.78rem;
	padding: 8px 16px;
}

.tv-inline-034 {
	background: linear-gradient(135deg, #0d1a10, #1a3020);
}

.tv-inline-035 {
	width: 80%;
	max-height: 120px;
}

.tv-inline-036 {
	font-size: 0.78rem;
	padding: 8px 16px;
}

.tv-inline-037 {
	background: linear-gradient(135deg, var(--spark), #00a880);
}

.tv-inline-038 {
	background: linear-gradient(135deg, #f96, #e44);
}

.tv-inline-039 {
	font-weight: 600;
	margin-bottom: 2px;
}

.tv-inline-040 {
	color: var(--muted);
	font-size: 0.88rem;
}

.tv-inline-041 {
	font-weight: 600;
	margin-bottom: 2px;
}

.tv-inline-042 {
	color: var(--muted);
	font-size: 0.88rem;
}

.tv-inline-043 {
	font-weight: 600;
	margin-bottom: 2px;
}

.tv-inline-044 {
	color: var(--muted);
	font-size: 0.88rem;
}

.tv-inline-045 {
	font-family: var(--font-display);
	margin-bottom: 24px;
}

.tv-inline-046 {
	border-radius: 50px !important;
}

.tv-inline-047 {
	padding: 12px 20px;
	border-radius: 50px;
	white-space: nowrap;
}

.tv-inline-048 {
	font-size: 0.82rem;
	padding: 9px 20px;
}

.tv-inline-049 {
	color: var(--muted);
	font-size: 0.82rem;
	transition: color var(--transition);
}

.tv-inline-050 {
	color: var(--muted);
	font-size: 0.82rem;
	transition: color var(--transition);
}

/* Legacy header brand presentation. */
.tv-legacy-header-brand { display: inline-flex; align-items: center; gap: 8px; color: #fff; background: #07133b; padding: 6px 10px; border-radius: 7px; }
.tv-legacy-header-mark { display: block; width: 28px; height: 35px; filter: brightness(0) invert(1); }

/* One shared header across every interior page. Homepage keeps its hero treatment. */
body.tv-storefront:not(.home) .tv-header {
    position: relative;
    color: var(--tv-ink);
    background: #fff;
    border-bottom: 1px solid #e5e8ef;
}
body.tv-storefront.admin-bar:not(.home) .tv-header { top: 0; }
body.tv-storefront:not(.home) .tv-header .tv-menu-toggle { color: var(--tv-ink) !important; }

/* ThemeVisto preloader: quiet brand reveal, with a CSS-only escape hatch. */
.tv-preloader { display: none; }
@media (scripting: enabled) {
    .tv-preloader {
        position: fixed;
        inset: 0;
        z-index: 999999;
        display: grid;
        place-items: center;
        background: #f8f9fc;
        color: #162a49;
        opacity: 1;
        visibility: visible;
        animation: tv-loader-safety 0s 7s forwards;
        transition: opacity .4s ease, visibility .4s ease;
    }
}
.tv-preloader-content { text-align: center; padding: 24px; }
.tv-preloader-symbol { position: relative; display: grid; place-items: center; width: 92px; height: 92px; margin: 0 auto 26px; }
.tv-preloader-symbol:before { content: ''; position: absolute; inset: 0; border: 1px solid #e4e1f0; border-radius: 50%; }
.tv-preloader-symbol > span { position: absolute; inset: 0; border: 2px solid transparent; border-top-color: #7c3aed; border-right-color: #d2e11e; border-radius: 50%; animation: tv-loader-orbit 1.3s linear infinite; }
.tv-preloader-symbol img { display: block; width: 35px; height: 44px; }
.tv-preloader-name { font-size: 30px; font-weight: 650; letter-spacing: -1.4px; line-height: 1.2; }
.tv-preloader-name > span { color: #7c3aed; }
.tv-preloader-caption { margin-top: 12px; font-size: 12px; color: #778194; letter-spacing: .015em; }
.tv-preloader.is-complete { opacity: 0; visibility: hidden; pointer-events: none; }
@keyframes tv-loader-orbit { to { transform: rotate(360deg); } }
@keyframes tv-loader-safety { to { opacity: 0; visibility: hidden; pointer-events: none; } }
@media (prefers-reduced-motion: reduce) {
    .tv-preloader { transition: none; }
    .tv-preloader-symbol > span { animation: none; }
}

/* Unboxed logo on light interior headers, using the original navy T. */
body.tv-storefront:not(.home) .tv-header .tv-logo {
    background: transparent;
    padding: 6px 0;
    border-radius: 0;
    color: #1d3d75;
}
body.tv-storefront:not(.home) .tv-header .tv-brand-theme { color: #1d3d75; }
body.tv-storefront:not(.home) .tv-header .tv-brand-mark { filter: none; }

/* The same homepage header presentation on every route. */
body.tv-storefront:is(.home, :not(.home)) .tv-header {
    position: absolute;
    top: 0;
    background: transparent;
    color: #fff;
    border-bottom: 1px solid #ffffff24;
}
body.tv-storefront.admin-bar:is(.home, :not(.home)) .tv-header { top: 32px; }
body.tv-storefront:is(.home, :not(.home)) .tv-header .tv-logo { background: transparent; color: #fff; padding: 6px 0; border-radius: 0; }
body.tv-storefront:is(.home, :not(.home)) .tv-header .tv-brand-theme { color: #fff; }
body.tv-storefront:is(.home, :not(.home)) .tv-header .tv-brand-visto { color: #d2e11e !important; }
body.tv-storefront:is(.home, :not(.home)) .tv-header .tv-brand-mark { filter: brightness(0) invert(1); }
body.tv-storefront:is(.home, :not(.home)) .tv-header .tv-menu-toggle { color: #fff !important; }
body.tv-storefront:is(.home, :not(.home)) .tv-header .tv-cart > span { background: #d2e11e; color: #162a49; }
body.tv-storefront:is(.home, :not(.home)) .tv-navigation > a:hover,
body.tv-storefront:is(.home, :not(.home)) .tv-dropdown summary:hover { color: #d2e11e; }

/* Dynamic interior banner, using the homepage's visual language. */
.tv-sub-banner { position: relative; overflow: hidden; background: #005fea url('../images/hero.jpg') top / cover; color: #fff; }
.tv-sub-banner-inner { position: relative; padding-block: 175px 100px; }
.tv-sub-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; font-size: 12px; color: #ffffffb8; margin-bottom: 28px; max-width: 85%; }
.tv-sub-breadcrumb a:hover { color: #d2e11e; }
.tv-storefront .tv-sub-banner h1 { font-size: clamp(36px, 4.6vw, 76px); font-weight: 500; letter-spacing: -.05em; line-height: 1.08; margin: 0 0 22px; max-width: 83%; overflow-wrap: anywhere; }
.tv-sub-banner p { font-size: 17px; line-height: 1.7; color: #ffffffc9; max-width: 700px; padding-right: 15px; }
.tv-sub-banner-star { position: absolute; width: 180px; height: auto; right: 8%; top: 37%; pointer-events: none; animation: tv-spin 35s linear infinite; }
@media(max-width:1100px) {
    .tv-sub-banner-inner { padding-block: 140px 50px; }
    .tv-sub-banner-star { width: 100px; }
    .tv-sub-banner p { max-width: 78%; font-size: 16px; }
}
@media(max-width:782px) { body.tv-storefront.admin-bar:is(.home, :not(.home)) .tv-header { top: 46px; } }
@media(max-width:700px) {
    .tv-sub-banner-inner { padding-block: 125px 38px; }
    .tv-sub-breadcrumb { font-size: 11px; gap: 6px 10px; margin-bottom: 22px; max-width: 100%; }
    .tv-storefront .tv-sub-banner h1 { font-size: clamp(32px, 8vw, 48px); max-width: 100%; }
    .tv-sub-banner p { max-width: 100%; font-size: 15px; padding-right: 0; }
    .tv-sub-banner-star { display: none; }
}
@media(prefers-reduced-motion:reduce) { .tv-sub-banner-star { animation: none; } }

/* Product purchase sidebar: ThemeVisto colors and consistent action geometry. */
body.tv-storefront .tvp-purchase {
    padding: 30px;
    border: 1px solid #e2ddef;
    border-top: 3px solid #7c3aed;
    border-radius: 22px;
    background: #fff;
    color: #162a49;
    box-shadow: 0 12px 35px #162a4908;
}
body.tv-storefront .tvp-purchase-label {
    margin-bottom: 14px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #737d91;
}
body.tv-storefront .tvp-purchase .tvp-price {
    font-size: 50px;
    font-weight: 600;
    line-height: 1.1;
    color: #162a49;
    letter-spacing: -.045em;
    gap: 12px;
    margin-bottom: 20px;
}
body.tv-storefront .tvp-purchase .tvp-price del { font-size: 20px; font-weight: 400; color: #969cad; letter-spacing: -.02em; opacity: 1; }
body.tv-storefront .tvp-purchase .tvp-price ins { text-decoration: none; }
body.tv-storefront .tvp-purchase .tvp-short-description { font-size: 14px; line-height: 1.75; color: #687388; padding-bottom: 22px; margin-bottom: 24px; border-bottom: 1px solid #eceef4; }
body.tv-storefront .tvp-purchase .tvp-short-description p:last-child { margin-bottom: 0; }
body.tv-storefront .tvp-purchase .tvp-cart .cart { align-items: center; gap: 10px; }
body.tv-storefront .tvp-purchase .tvp-cart .quantity { flex: 0 0 60px; }
body.tv-storefront .tvp-purchase .tvp-cart input.qty { width: 60px; height: 48px; min-height: 48px; padding: 10px 8px; border: 1px solid #dfe3ed; border-radius: 999px; background: #f8f9fc; color: #162a49; text-align: center; font-size: 14px; }
body.tv-storefront .tvp-purchase .tvp-cart .single_add_to_cart_button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #7c3aed !important;
    color: #fff !important;
    border: 1px solid transparent !important;
    border-radius: 999px !important;
    padding: 14px 23px !important;
    min-height: 48px;
    margin: 0;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 20px !important;
    flex: 1 1 150px;
    transition: background .2s;
}
body.tv-storefront .tvp-purchase .tvp-cart .single_add_to_cart_button:hover { background: #6d28d9 !important; }
body.tv-storefront .tvp-purchase .tvp-sidebar-demo {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    width: 100%;
    min-height: 48px;
    margin-top: 12px;
    padding: 14px 23px;
    border: 1px solid #dcd4ee;
    border-radius: 999px;
    background: #f5f1fe;
    color: #6d28d9;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    transition: background .2s, border-color .2s;
}
body.tv-storefront .tvp-purchase .tvp-sidebar-demo:hover { background: #eee7fc; border-color: #c1afe8; }
body.tv-storefront .tvp-purchase .tvp-sidebar-demo > span { display: inline-flex; align-items: center; justify-content: center; font-size: 14px; line-height: 1; }
body.tv-storefront .tvp-purchase .tvp-sidebar-demo i { display: inline-flex; align-items: center; justify-content: center; width: 14px; height: 14px; font-size: 14px; line-height: 1; }
body.tv-storefront .tvp-purchase .tvp-secure { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 20px 0 0; font-size: 11px; line-height: 1.6; color: #7b8495; }
body.tv-storefront .tvp-purchase .tvp-secure > span { display: inline-flex; color: #7c3aed; }
body.tv-storefront .tvp-purchase .variations select { min-height: 44px; border: 1px solid #dfe3ed; border-radius: 10px; color: #162a49; background: #f8f9fc; }
body.tv-storefront .tvp-purchase .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
@media(max-width:1100px) { body.tv-storefront .tvp-purchase { padding: 24px; } }
@media(prefers-reduced-motion:reduce) { body.tv-storefront .tvp-purchase :is(.single_add_to_cart_button, .tvp-sidebar-demo) { transition: none; } }

/* Product preview tools are distinct from the sidebar purchase controls. */
body.tv-storefront .tvp-preview-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
    padding: 18px 0 24px;
    margin-bottom: 28px;
    border-bottom: 1px solid #e5e8ef;
}
body.tv-storefront .tvp-expand-preview {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 8px 0;
    background: transparent;
    border: 0;
    color: #657087;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.4;
}
body.tv-storefront .tvp-expand-preview > i { font-size: 15px; color: #162a49; }
body.tv-storefront .tvp-expand-preview:hover { color: #7c3aed; }
body.tv-storefront .tvp-preview-toolbar .tv-button { background: #7c3aed; color: #fff !important; }
body.tv-storefront .tvp-preview-toolbar .tv-button:hover { background: #6d28d9; }
@media(max-width:480px) {
    body.tv-storefront .tvp-preview-toolbar { align-items: flex-start; gap: 10px; padding-block: 12px 20px; }
}

/* Dynamic product specifications: readable labels and linked taxonomy values. */
body.tv-storefront .tvp-specifications {
    padding: 30px;
    margin-top: 24px;
    border: 1px solid #e2ddef;
    border-top: 3px solid #7c3aed;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 35px #162a4908;
}
body.tv-storefront .tvp-specifications > h2 { color: #162a49; font-size: 21px; line-height: 1.3; letter-spacing: -.025em; margin-bottom: 22px; }
body.tv-storefront .tvp-specifications dl { margin: 0; }
body.tv-storefront .tvp-specifications .tvp-detail-row { display: grid; grid-template-columns: 102px minmax(0,1fr); gap: 14px; padding: 10px 0; border: 0; font-size: 13px; line-height: 1.7; }
body.tv-storefront .tvp-specifications dt { color: #162a49; font-weight: 500; }
body.tv-storefront .tvp-specifications dd { color: #6b7588; margin: 0; min-width: 0; overflow-wrap: anywhere; }
body.tv-storefront .tvp-specifications dd a { color: inherit; text-decoration: none; }
body.tv-storefront .tvp-specifications dd a:hover { color: #7c3aed; text-decoration: underline; }
body.tv-storefront .tvp-specifications dd i { font-size: 10px; margin-left: 3px; }
body.tv-storefront .tvp-specifications .tvp-detail-divider { border-top: 1px solid #e7eaf1; margin-top: 12px; padding-top: 20px; }
body.tv-storefront .tvp-specifications .tvp-detail-tags { display: flex; flex-wrap: wrap; gap: 6px; }
body.tv-storefront .tvp-detail-tags a { display: inline-block; padding: 3px 9px; border-radius: 6px; background: #f2eefb; color: #6d28d9 !important; font-size: 11px; max-width: 100%; }
@media(max-width:1100px) { body.tv-storefront .tvp-specifications .tvp-detail-row { grid-template-columns: 90px minmax(0,1fr); gap: 10px; } }

@media(max-width:1100px) { body.tv-storefront .tvp-specifications { padding: 24px; } }
/* Product reviews: native WooCommerce reviews and form in the ThemeVisto style. */
body.tv-storefront #product-reviews { margin-top: 36px; padding-top: 30px; border-top: 1px solid #e7eaf1; }
body.tv-storefront #product-reviews > h2 { margin: 0 0 24px; color: #162a49; font-size: 28px; line-height: 1.25; letter-spacing: -.035em; }
body.tv-storefront #product-reviews #comments > .woocommerce-Reviews-title { display: none; }
body.tv-storefront #product-reviews .woocommerce-noreviews { margin: 0 0 24px; padding: 18px 22px; border: 1px dashed #dce1ed; border-radius: 14px; background: #fafbfe; color: #687388; font-size: 14px; line-height: 1.7; }
body.tv-storefront #product-reviews #review_form_wrapper { padding: 28px; border: 1px solid #e2ddef; border-radius: 20px; background: #f8f7fc; }
body.tv-storefront #product-reviews #review_form .comment-reply-title { display: block; margin: 0 0 22px; color: #162a49; font-size: 21px; font-weight: 500; line-height: 1.45; letter-spacing: -.02em; }
body.tv-storefront #product-reviews #review_form form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 0; }
body.tv-storefront #product-reviews #review_form form > * { grid-column: 1 / -1; margin: 0; min-width: 0; }
body.tv-storefront #product-reviews #review_form .comment-form-author { grid-column: 1; }
body.tv-storefront #product-reviews #review_form .comment-form-email { grid-column: 2; }
body.tv-storefront #product-reviews #review_form label { display: block; margin: 0 0 9px; color: #162a49; font-size: 13px; font-weight: 500; line-height: 1.5; }
body.tv-storefront #product-reviews .required { color: #7c3aed; }
body.tv-storefront #product-reviews #review_form :is(input[type="text"], input[type="email"], textarea, select) { width: 100%; max-width: 100%; padding: 13px 16px; border: 1px solid #dfe3ed; border-radius: 12px; background: #fff; color: #162a49; font: inherit; font-size: 14px; line-height: 1.7; box-shadow: none; transition: border-color .2s, box-shadow .2s; }
body.tv-storefront #product-reviews #review_form textarea { display: block; min-height: 150px; resize: vertical; }
body.tv-storefront #product-reviews #review_form :is(input, textarea, select):focus-visible { outline: 2px solid #7c3aed; outline-offset: 3px; border-color: #7c3aed; }
body.tv-storefront #product-reviews #review_form .stars { margin: 0; padding: 4px 0; line-height: 1; }
body.tv-storefront #product-reviews #review_form .stars a { color: #7c3aed; font-size: 22px; margin-right: 6px; }
body.tv-storefront #product-reviews #review_form .stars a:focus-visible { outline: 2px solid #7c3aed; outline-offset: 4px; border-radius: 3px; }
body.tv-storefront #product-reviews #review_form #submit { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: 14px 23px !important; border: 1px solid transparent; border-radius: 999px !important; background: #7c3aed !important; color: #fff !important; font-size: 14px; font-weight: 500; line-height: 20px; cursor: pointer; transition: background .2s; }
body.tv-storefront #product-reviews #review_form #submit:hover { background: #6d28d9 !important; }
body.tv-storefront #product-reviews #review_form .comment-form-cookies-consent { display: flex; align-items: flex-start; gap: 10px; }
body.tv-storefront #product-reviews #review_form .comment-form-cookies-consent input { flex: 0 0 auto; margin: 4px 0 0; accent-color: #7c3aed; }
body.tv-storefront #product-reviews #review_form .comment-form-cookies-consent label { margin: 0; font-size: 12px; font-weight: 400; color: #687388; }
body.tv-storefront #product-reviews #comments ol.commentlist { list-style: none; padding: 0; margin: 0 0 26px; }
body.tv-storefront #product-reviews #comments ol.commentlist li { margin: 0 0 16px; }
body.tv-storefront #product-reviews #comments ol.commentlist li img.avatar { width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; object-fit: cover; }
body.tv-storefront #product-reviews #comments ol.commentlist li .comment-text { margin-left: 62px; padding: 20px; border: 1px solid #e2ddef; border-radius: 16px; background: #fff; }
body.tv-storefront #product-reviews .star-rating { color: #7c3aed; }
body.tv-storefront #product-reviews .meta { color: #687388; font-size: 12px; }
body.tv-storefront #product-reviews .woocommerce-review__author { color: #162a49; font-size: 14px; }
body.tv-storefront #product-reviews .description { color: #687388; font-size: 14px; line-height: 1.8; }
body.tv-storefront #product-reviews .description p:last-child { margin-bottom: 0; }
@media(max-width:600px) {
    body.tv-storefront #product-reviews #review_form_wrapper { padding: 20px; }
    body.tv-storefront #product-reviews #review_form form { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    body.tv-storefront #product-reviews #review_form :is(.comment-form-author, .comment-form-email) { grid-column: 1; }
    body.tv-storefront #product-reviews #review_form .comment-reply-title { font-size: 19px; }
    body.tv-storefront #product-reviews #comments ol.commentlist li .comment-text { margin-left: 56px; padding: 16px; }
    body.tv-storefront #product-reviews #comments .star-rating { float: none; margin-bottom: 10px; }
}
@media(prefers-reduced-motion:reduce) { body.tv-storefront #product-reviews #review_form :is(input, textarea, select) { transition: none; } }
/* Blog actions share the homepage button and arrow system. */
body.tv-storefront .tv-blog-page :is(.tv-blog-read, .tv-blog-studio .tv-button, .tv-blog-search button) {
    background: #7c3aed !important;
    color: #fff !important;
    border: 1px solid transparent !important;
    text-decoration: none;
}
body.tv-storefront .tv-blog-page :is(.tv-blog-read, .tv-blog-studio .tv-button, .tv-blog-search button):hover {
    background: #6d28d9 !important;
    color: #fff !important;
    text-decoration: none;
}
body.tv-storefront .tv-blog-page .tv-blog-search button { flex: 0 0 auto; margin-left: 12px; }
body.tv-storefront .tv-blog-page i:is(.fa-arrow-right, .fa-arrow-left) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    font-size: 14px;
    line-height: 1;
    flex-shrink: 0;
    vertical-align: middle;
}
body.tv-storefront .tv-blog-page span:has(> i:is(.fa-arrow-right, .fa-arrow-left)) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    line-height: 1;
}
body.tv-storefront .tv-blog-page .tv-blog-studio .tv-button { width: fit-content; }
body.tv-storefront .tv-blog-page .tv-themes-pagination :is(a, span).page-numbers { border-radius: 999px; min-width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center; }
body.tv-storefront .tv-blog-page .tv-themes-pagination .page-numbers.current { background: #7c3aed; border-color: #7c3aed; color: #fff; }
body.tv-storefront .tv-blog-page .tv-themes-pagination a.page-numbers:hover { background: #f2eefb; border-color: #7c3aed; color: #7c3aed; }
/* Blog sidebar search card. */
body.tv-storefront .tv-blog-search-card form { display: grid; gap: 12px; margin: 0; }
body.tv-storefront .tv-blog-search-card input[type="search"] { width: 100%; min-width: 0; min-height: 48px; padding: 12px 16px; border: 1px solid #dfe3ed; border-radius: 12px; background: #fff; color: #162a49; font: inherit; font-size: 14px; }
body.tv-storefront .tv-blog-search-card input[type="search"]:focus-visible { outline: 2px solid #7c3aed; outline-offset: 3px; }
body.tv-storefront .tv-blog-search-card .tv-button { width: 100%; border: 1px solid transparent; background: #7c3aed; color: #fff; }
body.tv-storefront .tv-blog-search-card .tv-button:hover { background: #6d28d9; color: #fff; }
body.tv-storefront .tv-blog-search-card > span { color: #087cff; }

/* Keep the journal clear of the shared banner on smaller screens. */
@media(max-width:767px) { body.tv-storefront .tv-blog-layout { padding-top: 45px; padding-bottom: 60px; } }
/* Shared blog sidebar actions on article pages as well as the listing. */
body.tv-storefront .tv-blog-sidebar .tv-blog-studio .tv-button { width: fit-content; background: #7c3aed; color: #fff; }
body.tv-storefront .tv-blog-sidebar .tv-blog-studio .tv-button:hover { background: #6d28d9; color: #fff; }
body.tv-storefront .tv-blog-sidebar i.fa-arrow-right { width: 14px; height: 14px; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; line-height: 1; vertical-align: middle; }
body.tv-storefront .tv-blog-sidebar span:has(> i.fa-arrow-right) { display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
/* Cart: WooCommerce blocks styled to match the shared ThemeVisto storefront. */
body.woocommerce-cart.tv-storefront { background: #f7f8fc !important; color: #162a49 !important; }
body.woocommerce-cart.tv-storefront #content.site-main { width: min(1600px, calc(100% - 100px)); max-width: none; margin: 0 auto; padding: 75px 0 90px; }
body.woocommerce-cart #content > .page-header { display: none; }
body.woocommerce-cart #content .page-content { margin: 0; }
body.woocommerce-cart .wp-block-woocommerce-cart { margin: 0; max-width: none; }
body.woocommerce-cart #content :is(h1,h2,h3,h4,h5,h6) { color: #162a49 !important; }
body.woocommerce-cart #content .wc-block-cart { color: #162a49; font-size: 14px; }
body.woocommerce-cart #content .wc-block-cart__main { padding: 30px; border: 1px solid #e2ddef; border-radius: 22px; background: #fff; box-shadow: 0 12px 35px #162a4905; }
body.woocommerce-cart #content .wc-block-cart__sidebar { padding: 28px; border: 1px solid #e2ddef; border-top: 3px solid #7c3aed; border-radius: 22px; background: #fff; box-shadow: 0 12px 35px #162a4908; align-self: flex-start; }
body.woocommerce-cart #content .wc-block-cart-items { margin: 0; border: 0; }
body.woocommerce-cart #content .wc-block-cart-items th { color: #737d91; font-size: 11px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; padding-bottom: 18px; }
body.woocommerce-cart #content .wc-block-cart-items td { border-color: #e7eaf1; padding-top: 24px; padding-bottom: 24px; }
body.woocommerce-cart #content .wc-block-cart-item__image img { border-radius: 12px; }
body.woocommerce-cart #content .wc-block-components-product-name { color: #162a49 !important; font-size: 18px; font-weight: 500; line-height: 1.4; text-decoration: none !important; }
body.woocommerce-cart #content .wc-block-components-product-name:hover { color: #7c3aed !important; }
body.woocommerce-cart #content .wc-block-components-product-metadata { color: #687388; font-size: 13px; line-height: 1.7; margin-top: 8px; }
body.woocommerce-cart #content .wc-block-components-product-price { color: #162a49; font-size: 15px; }
body.woocommerce-cart #content .wc-block-components-product-price del { color: #969cad; }
body.woocommerce-cart #content .wc-block-components-product-badge { padding: 4px 9px; border: 0; border-radius: 999px; background: #f2eefb; color: #6d28d9; font-size: 11px; font-weight: 500; }
body.woocommerce-cart #content .wc-block-components-quantity-selector { border: 1px solid #dfe3ed; border-radius: 999px; background: #f8f9fc; min-height: 42px; margin: 12px 0 8px; }
body.woocommerce-cart #content .wc-block-components-quantity-selector::after { border: 0; border-radius: inherit; }
body.woocommerce-cart #content .wc-block-components-quantity-selector :is(input,button) { color: #162a49 !important; background: transparent; box-shadow: none; }
body.woocommerce-cart #content .wc-block-cart-item__remove-link { color: #737d91 !important; font-size: 12px; }
body.woocommerce-cart #content .wc-block-cart-item__remove-link:hover { color: #7c3aed !important; }
body.woocommerce-cart #content .wc-block-cart__totals-title { padding: 0 0 20px; font-size: 21px; font-weight: 500; text-transform: none; letter-spacing: -.025em; text-align: left; }
body.woocommerce-cart #content .wc-block-components-totals-wrapper { border-color: #e7eaf1; }
body.woocommerce-cart #content .wc-block-components-totals-item { padding: 18px 0; color: #162a49; }
body.woocommerce-cart #content .wc-block-components-totals-footer-item { font-size: 20px; font-weight: 500; }
body.woocommerce-cart #content .wc-block-components-totals-coupon { padding: 18px 0; }
body.woocommerce-cart #content .wc-block-components-panel__button { color: #162a49 !important; font-size: 14px; }
body.woocommerce-cart #content .wc-block-components-totals-coupon input { border: 1px solid #dfe3ed; border-radius: 10px; background: #fff; color: #162a49; }
body.woocommerce-cart #content .wc-block-cart__submit-container { padding: 20px 0 0; }
body.woocommerce-cart #content .wc-block-components-button:not(.wc-block-components-quantity-selector__button) { min-height: 48px; padding: 14px 23px !important; border: 1px solid transparent; border-radius: 999px !important; background: #7c3aed !important; color: #fff !important; font-size: 14px; font-weight: 500; line-height: 20px; text-decoration: none !important; box-shadow: none; }
body.woocommerce-cart #content .wc-block-components-button:not(.wc-block-components-quantity-selector__button):hover { background: #6d28d9 !important; }
body.woocommerce-cart #content .wc-block-cart__submit-button { width: 100%; }
body.woocommerce-cart #content :is(a,button,input):focus-visible { outline: 2px solid #7c3aed; outline-offset: 3px; }
body.woocommerce-cart #content .wp-block-woocommerce-empty-cart-block { padding: 50px 30px; border: 1px solid #e2ddef; border-radius: 22px; background: #fff; }
body.woocommerce-cart #content .wc-block-cart__empty-cart__title { font-size: clamp(26px,4vw,38px); }
body.woocommerce-cart #content .wp-block-button__link { border-radius: 999px; background: #7c3aed; color: #fff !important; padding: 14px 23px; font-size: 14px; }
@media(min-width:1000px) {
    body.woocommerce-cart #content .wc-block-cart { display: flex; align-items: flex-start; gap: 32px; }
    body.woocommerce-cart #content .wc-block-cart__main { flex: 1 1 0; width: auto; min-width: 0; }
    body.woocommerce-cart #content .wc-block-cart__sidebar { flex: 0 0 360px; width: 360px; margin: 0; }
}
@media(max-width:999px) {
    body.woocommerce-cart.tv-storefront #content.site-main { width: calc(100% - 48px); padding: 50px 0 60px; }
    body.woocommerce-cart #content .wc-block-cart__main { padding: 24px; }
    body.woocommerce-cart #content .wc-block-cart__sidebar { margin-top: 24px; padding: 24px; }
}
@media(max-width:600px) {
    body.woocommerce-cart.tv-storefront #content.site-main { width: calc(100% - 32px); padding: 36px 0 45px; }
    body.woocommerce-cart #content .wc-block-cart__main { padding: 18px; border-radius: 18px; }
    body.woocommerce-cart #content .wc-block-cart__sidebar { padding: 22px; border-radius: 18px; }
    body.woocommerce-cart #content .wc-block-components-product-name { font-size: 16px; }
}
/* Checkout: shared ThemeVisto cards, form controls, and purchase actions. */
body.woocommerce-checkout.tv-storefront { background: #f7f8fc !important; color: #162a49 !important; }
body.woocommerce-checkout.tv-storefront #content.site-main { width: min(1600px, calc(100% - 100px)); max-width: none; margin: 0 auto; padding: 75px 0 90px; }
body.woocommerce-checkout #content > .page-header { display: none; }
body.woocommerce-checkout #content .page-content { margin: 0; }
body.woocommerce-checkout #content :is(h1,h2,h3,h4,h5,h6) { color: #162a49 !important; }
body.woocommerce-checkout #content .wp-block-woocommerce-checkout { max-width: none; margin: 0; }
body.woocommerce-checkout #content .wc-block-components-sidebar-layout.wc-block-checkout { color: #162a49; font-size: 14px; }
body.woocommerce-checkout #content .wc-block-checkout__main { padding: 32px; border: 1px solid #e2ddef; border-radius: 22px; background: #fff; box-shadow: 0 12px 35px #162a4905; }
body.woocommerce-checkout #content .wc-block-checkout__sidebar { padding: 0; align-self: flex-start; }
body.woocommerce-checkout #content .wp-block-woocommerce-checkout-order-summary-block { overflow: hidden; border: 1px solid #e2ddef; border-top: 3px solid #7c3aed; border-radius: 22px; background: #fff; box-shadow: 0 12px 35px #162a4908; }
body.woocommerce-checkout #content .wc-block-components-checkout-step { margin-bottom: 30px; }
body.woocommerce-checkout #content .wc-block-components-checkout-step__heading { margin-bottom: 18px; }
body.woocommerce-checkout #content .wc-block-components-title { font-size: 21px; font-weight: 500; line-height: 1.35; letter-spacing: -.025em; }
body.woocommerce-checkout #content .wc-block-components-checkout-step__description { color: #687388; font-size: 14px; line-height: 1.7; }
body.woocommerce-checkout #content :is(.wc-block-components-text-input input, .wc-block-components-textarea, .wc-block-components-combobox .components-combobox-control__input, .wc-block-components-select .wc-block-components-select__select) {
    min-height: 54px; border: 1px solid #dfe3ed; border-radius: 12px; background: #fff; color: #162a49; font-size: 15px; box-shadow: none;
}
body.woocommerce-checkout #content .wc-block-components-text-input label,
body.woocommerce-checkout #content .wc-block-components-select__label { color: #687388; }
body.woocommerce-checkout #content .wc-block-components-text-input.is-active input { border-color: #7c3aed; box-shadow: 0 0 0 1px #7c3aed; }
body.woocommerce-checkout #content .wc-block-components-text-input.has-error input { border-color: #cc3345; }
body.woocommerce-checkout #content .wc-block-components-textarea { padding: 14px 16px; min-height: 120px; }
body.woocommerce-checkout #content :is(a,button,input,select,textarea):focus-visible { outline: 2px solid #7c3aed; outline-offset: 3px; }
body.woocommerce-checkout #content .wc-block-components-checkbox .wc-block-components-checkbox__input { border-color: #cdd3df; border-radius: 5px; accent-color: #7c3aed; }
body.woocommerce-checkout #content .wc-block-components-checkbox .wc-block-components-checkbox__input:checked { background: #7c3aed; border-color: #7c3aed; }
body.woocommerce-checkout #content .wc-block-components-checkbox__label { color: #162a49; font-size: 13px; line-height: 1.6; }
body.woocommerce-checkout #content .wc-block-components-radio-control { border-color: #e2ddef; border-radius: 12px; }
body.woocommerce-checkout #content .wc-block-components-radio-control__option { color: #162a49; padding: 18px; }
body.woocommerce-checkout #content .wc-block-components-notice-banner { padding: 16px !important; border-radius: 12px; font-size: 13px; line-height: 1.7; }
body.woocommerce-checkout #content .wc-block-components-notice-banner.is-error { background: #fff4f5; border-color: #f0cbd0; color: #862b3a; }
body.woocommerce-checkout #content .wc-block-components-checkout-order-summary__title { padding: 24px; }
body.woocommerce-checkout #content .wc-block-components-order-summary { padding: 0 24px; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item__image img { border-radius: 10px; }
body.woocommerce-checkout #content .wc-block-components-product-name { color: #162a49 !important; font-size: 15px; font-weight: 500; line-height: 1.45; }
body.woocommerce-checkout #content .wc-block-components-product-metadata { color: #687388; font-size: 12px; line-height: 1.7; }
body.woocommerce-checkout #content .wc-block-components-product-price { color: #162a49; }
body.woocommerce-checkout #content .wc-block-components-product-price del { color: #969cad; }
body.woocommerce-checkout #content .wc-block-components-product-badge { padding: 4px 9px; border: 0; border-radius: 999px; background: #f2eefb; color: #6d28d9; font-size: 11px; }
body.woocommerce-checkout #content .wc-block-components-totals-wrapper { border-color: #e7eaf1; padding: 0 24px; }
body.woocommerce-checkout #content .wc-block-components-totals-item { padding: 18px 0; color: #162a49; }
body.woocommerce-checkout #content .wc-block-components-totals-footer-item { font-size: 20px; font-weight: 500; }
body.woocommerce-checkout #content .wc-block-components-totals-coupon { padding: 18px 0; }
body.woocommerce-checkout #content .wc-block-components-panel__button { color: #162a49 !important; font-size: 14px; }
body.woocommerce-checkout #content .wc-block-checkout__terms { padding: 22px 0; border-color: #e7eaf1; color: #687388; font-size: 13px; line-height: 1.8; }
body.woocommerce-checkout #content .wc-block-checkout__terms a { color: #7c3aed !important; text-decoration: underline !important; text-underline-offset: 3px; }
body.woocommerce-checkout #content .wc-block-components-button { min-height: 48px; padding: 14px 23px !important; border: 1px solid transparent; border-radius: 999px !important; background: #7c3aed !important; color: #fff !important; font-size: 14px; font-weight: 500; line-height: 20px; text-decoration: none !important; box-shadow: none; }
body.woocommerce-checkout #content .wc-block-components-button:hover { background: #6d28d9 !important; }
body.woocommerce-checkout #content .wc-block-components-button:disabled { opacity: .55; cursor: not-allowed; }
body.woocommerce-checkout #content .wc-block-components-checkout-place-order-button { width: 100%; }
body.woocommerce-checkout #content .wc-block-components-checkout-return-to-cart-button { color: #7c3aed !important; font-size: 14px; }
@media(min-width:1000px) {
    body.woocommerce-checkout #content .wc-block-components-sidebar-layout.wc-block-checkout { display: flex; align-items: flex-start; gap: 32px; }
    body.woocommerce-checkout #content .wc-block-checkout__main { flex: 1 1 0; width: auto; min-width: 0; }
    body.woocommerce-checkout #content .wc-block-checkout__sidebar { flex: 0 0 360px; width: 360px; margin: 0; }
}
@media(max-width:999px) {
    body.woocommerce-checkout.tv-storefront #content.site-main { width: calc(100% - 48px); padding: 50px 0 60px; }
    body.woocommerce-checkout #content .wc-block-checkout__main { padding: 24px; }
}
@media(max-width:600px) {
    body.woocommerce-checkout.tv-storefront #content.site-main { width: calc(100% - 32px); padding: 36px 0 45px; }
    body.woocommerce-checkout #content .wc-block-checkout__main { padding: 20px; border-radius: 18px; }
    body.woocommerce-checkout #content .wp-block-woocommerce-checkout-order-summary-block { border-radius: 18px; }
    body.woocommerce-checkout #content .wc-block-components-title { font-size: 19px; }
}
/* Global product search dialog. */
body.tv-storefront .tv-search-dialog {
    width: min(760px, calc(100vw - 40px));
    max-height: min(85vh, 760px);
    margin: auto;
    padding: 48px;
    border: 1px solid #e2ddef;
    border-top: 3px solid #7c3aed;
    border-radius: 24px;
    background: #fff;
    color: #162a49;
    box-shadow: 0 30px 100px #07133b40;
    overflow-y: auto;
}
body.tv-storefront .tv-search-dialog::backdrop { background: #07133bbf; backdrop-filter: blur(7px); }
body.tv-storefront .tv-search-dialog h2 { max-width: 550px; margin: 0 32px 28px 0; color: #162a49 !important; font-size: clamp(28px, 3vw, 38px) !important; font-weight: 500; line-height: 1.15; letter-spacing: -.045em; }
body.tv-storefront .tv-search-dialog .tv-search-close { display: inline-flex; align-items: center; justify-content: center; top: 16px; right: 16px; width: 36px; height: 36px; min-height: 0; padding: 0; border: 1px solid #e5e7ef; border-radius: 50%; background: #f7f8fc; color: #162a49 !important; font-size: 16px; line-height: 1; cursor: pointer; }
body.tv-storefront .tv-search-dialog .tv-search-close:hover { background: #f2eefb; border-color: #d8caef; color: #7c3aed !important; }
body.tv-storefront .tv-search-dialog form { display: flex; flex-direction: row; align-items: center; gap: 12px; padding: 0; border: 0; margin: 0; }
body.tv-storefront .tv-search-dialog input[type="search"] { display: block; flex: 1 1 0; width: 100%; min-width: 0; min-height: 52px; margin: 0; padding: 14px 16px; border: 1px solid #dfe3ed; border-radius: 12px; background: #f8f9fc; color: #162a49; font: inherit; font-size: 14px; line-height: 22px; outline: none; box-shadow: none; }
body.tv-storefront .tv-search-dialog input[type="search"]::placeholder { color: #7b8495; opacity: 1; }
body.tv-storefront .tv-search-dialog input[type="search"]:focus { border-color: #7c3aed; background: #fff; outline: 2px solid #7c3aed26; outline-offset: 2px; }
body.tv-storefront .tv-search-dialog button[type="submit"] { flex: 0 0 auto; min-height: 52px !important; padding: 14px 23px !important; border: 1px solid transparent; border-radius: 999px !important; background: #7c3aed !important; color: #fff !important; font-size: 14px; line-height: 20px; }
body.tv-storefront .tv-search-dialog button[type="submit"]:hover { background: #6d28d9 !important; }
body.tv-storefront .tv-search-dialog button:focus-visible { outline: 2px solid #7c3aed; outline-offset: 3px; }
body.tv-storefront .tv-search-dialog button[type="submit"] i { display: inline-flex; align-items: center; justify-content: center; width: 14px; height: 14px; font-size: 14px; line-height: 1; }
body.tv-storefront .tv-search-dialog #tv-live-results:not(:empty) { margin-top: 24px; padding-top: 8px; border-top: 1px solid #e7eaf1; }
body.tv-storefront .tv-search-dialog .tv-live-result { padding: 16px 12px; border-bottom: 1px solid #edf0f5; border-radius: 8px; color: #162a49 !important; text-decoration: none !important; }
body.tv-storefront .tv-search-dialog .tv-live-result:hover { background: #f8f5ff; color: #7c3aed !important; }
body.tv-storefront .tv-search-dialog .tv-live-result strong { font-size: 15px; font-weight: 500; line-height: 1.5; }
body.tv-storefront .tv-search-dialog .tv-live-result span { color: #737d91; font-size: 12px; }
body.tv-storefront .tv-search-dialog #tv-live-results > p { margin: 12px 0 0; color: #687388; font-size: 14px; }
@media(max-width:600px) {
    body.tv-storefront .tv-search-dialog { width: calc(100vw - 28px); padding: 54px 24px 28px; border-radius: 20px; }
    body.tv-storefront .tv-search-dialog h2 { margin: 0 0 24px; font-size: 29px !important; }
    body.tv-storefront .tv-search-dialog form { flex-direction: column; align-items: stretch; gap: 12px; }
    body.tv-storefront .tv-search-dialog input[type="search"] { flex: none; font-size: 16px; }
    body.tv-storefront .tv-search-dialog button[type="submit"] { width: 100%; }
    body.tv-storefront .tv-search-dialog .tv-live-result { flex-direction: column; gap: 6px; }
    body.tv-storefront .tv-search-dialog .tv-live-result span { align-self: flex-start; }
}
/* Keep checkout input borders and focus rings on the same rounded shape. */
body.woocommerce-checkout #content .wc-block-components-text-input { border-radius: 12px; outline: none; box-shadow: none; }
body.woocommerce-checkout #content .wc-block-components-text-input input,
body.woocommerce-checkout #content .wc-block-components-text-input input:focus,
body.woocommerce-checkout #content .wc-block-components-text-input input:focus-within {
    border-radius: 12px !important;
    outline: none !important;
}
body.woocommerce-checkout #content .wc-block-components-text-input.is-active input { border-color: #dfe3ed; box-shadow: none; }
body.woocommerce-checkout #content .wc-block-components-text-input input:focus,
body.woocommerce-checkout #content .wc-block-components-text-input input:focus-visible { border-color: #7c3aed; box-shadow: 0 0 0 2px #7c3aed26; }
body.woocommerce-checkout #content .wc-block-components-text-input.has-error input { border-color: #cc3345; }
body.woocommerce-checkout #content .wc-block-components-text-input.has-error input:focus { box-shadow: 0 0 0 2px #cc334526; }
/* Empty cart: a focused introduction with live WooCommerce product suggestions. */
body.woocommerce-cart #content .wp-block-woocommerce-empty-cart-block { padding: 0; border: 0; border-radius: 0; background: transparent; }
body.woocommerce-cart #content .tv-empty-cart-intro { display: flex; flex-direction: column; align-items: center; padding: 58px 28px; border: 1px solid #e2ddef; border-radius: 24px; background: #fff; text-align: center; box-shadow: 0 12px 35px #162a4905; }
body.woocommerce-cart #content .tv-empty-cart-icon { display: inline-flex; align-items: center; justify-content: center; width: 80px; height: 80px; margin-bottom: 24px; border-radius: 50%; background: #f2eefb; color: #7c3aed; font-size: 30px; }
body.woocommerce-cart #content .tv-empty-cart-intro h2 { margin: 0 0 14px; font-size: clamp(28px, 3.5vw, 42px); font-weight: 500; line-height: 1.2; letter-spacing: -.04em; }
body.woocommerce-cart #content .tv-empty-cart-intro p { max-width: 480px; margin: 0 0 26px; color: #687388; font-size: 15px; line-height: 1.8; }
body.woocommerce-cart #content .tv-empty-cart-intro .tv-button { background: #7c3aed; color: #fff !important; }
body.woocommerce-cart #content .tv-empty-cart-intro .tv-button:hover { background: #6d28d9; }
body.woocommerce-cart #content .tv-empty-cart-intro .tv-button i { width: 14px; height: 14px; font-size: 14px; line-height: 1; }
body.woocommerce-cart #content .wp-block-woocommerce-empty-cart-block > .wp-block-separator { display: none; }
body.woocommerce-cart #content .wp-block-woocommerce-empty-cart-block > h2 { margin: 50px 0 26px; text-align: left; font-size: 26px; font-weight: 500; letter-spacing: -.025em; }
body.woocommerce-cart #content .wc-block-grid__products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; }
body.woocommerce-cart #content .wc-block-grid__products .wc-block-grid__product { position: relative; display: flex; flex-direction: column; align-items: flex-start; width: auto; max-width: none; margin: 0; padding: 14px; border: 1px solid #e2ddef; border-radius: 20px; background: #fff; text-align: left; }
body.woocommerce-cart #content .wc-block-grid__product-link { display: block; width: 100%; }
body.woocommerce-cart #content .wc-block-grid__product-image { margin: 0 0 16px; }
body.woocommerce-cart #content .wc-block-grid__product-image img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 12px; }
body.woocommerce-cart #content .wc-block-grid__product-title { margin: 0 4px 10px; color: #162a49; font-size: 17px; font-weight: 500; line-height: 1.4; }
body.woocommerce-cart #content .wc-block-grid__product-price { margin: 0 4px 18px; color: #162a49; font-size: 16px; }
body.woocommerce-cart #content .wc-block-grid__product-price del { color: #969cad; font-size: 13px; margin-right: 5px; }
body.woocommerce-cart #content .wc-block-grid__product-price ins { background: transparent; text-decoration: none; }
body.woocommerce-cart #content .wc-block-grid__product-add-to-cart { margin: auto 4px 4px; }
body.woocommerce-cart #content .wc-block-grid__product-add-to-cart .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 14px 23px; line-height: 20px; font-weight: 500; text-decoration: none !important; }
body.woocommerce-cart #content .wc-block-grid__product-add-to-cart .wp-block-button__link:hover { background: #6d28d9; }
body.woocommerce-cart #content .wc-block-grid__product-onsale { position: absolute; z-index: 1; top: 24px; left: 24px; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: #7c3aed; color: #fff; font-size: 11px; }
@media(max-width:1000px) { body.woocommerce-cart #content .wc-block-grid__products { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; } }
@media(max-width:600px) {
    body.woocommerce-cart #content .tv-empty-cart-intro { padding: 38px 22px; border-radius: 20px; }
    body.woocommerce-cart #content .tv-empty-cart-intro p { font-size: 14px; }
    body.woocommerce-cart #content .tv-empty-cart-icon { width: 68px; height: 68px; font-size: 26px; }
    body.woocommerce-cart #content .wc-block-grid__products { grid-template-columns: minmax(0,1fr); }
    body.woocommerce-cart #content .wp-block-woocommerce-empty-cart-block > h2 { margin-top: 36px; }
}

/* Catalog filter panel. */
body.tv-storefront .tv-themes-filter-form { padding: 28px; border: 1px solid #e2ddef; border-radius: 22px; background: #fff; box-shadow: 0 12px 35px #162a4905; }
body.tv-storefront .tv-themes-search-row { align-items: center; border-color: #e7eaf1; }
body.tv-storefront .tv-themes-search { padding: 0 16px; border: 1px solid #dfe3ed; border-radius: 12px; background: #f8f9fc; }
body.tv-storefront .tv-themes-search input { min-height: 52px; font-size: 15px; }
body.tv-storefront .tv-themes-search:focus-within { border-color: #7c3aed; box-shadow: 0 0 0 2px #7c3aed1a; }
body.tv-storefront .tv-themes-filter-row { gap: 20px; }
body.tv-storefront .tv-themes-filter-row > label:not(.tv-themes-sale) { align-items: flex-start; flex-direction: column; gap: 8px; }
body.tv-storefront .tv-themes-filter-row select { min-height: 46px; padding: 10px 32px 10px 14px; border: 1px solid #dfe3ed; border-radius: 10px; background-color: #f8f9fc; color: #162a49; }
body.tv-storefront .tv-themes-sale input { accent-color: #7c3aed; }
body.tv-storefront .tv-themes-apply { background: #7c3aed; }
body.tv-storefront .tv-themes-apply:hover { background: #6d28d9 !important; }
body.tv-storefront .tv-themes-grid .tv-card-actions .tv-card-details { width: auto; background: #7c3aed; border-color: transparent; color: #fff; }
body.tv-storefront .tv-themes-grid .tv-card-actions .tv-card-details:hover { background: #6d28d9; }
body.tv-storefront .tv-themes-grid .tv-card-actions .tv-card-cart { width: 44px; min-width: 44px; height: 44px; min-height: 44px !important; padding: 0 !important; border-radius: 50% !important; }
@media(max-width:700px) {
 body.tv-storefront .tv-themes-filter-form { padding: 20px; }
 body.tv-storefront .tv-themes-search-row { flex-direction: column; align-items: stretch; }
 body.tv-storefront .tv-themes-filter-row { flex-wrap: wrap; }
 body.tv-storefront .tv-themes-filter-row > label:not(.tv-themes-sale) { flex-basis: 100%; width: 100%; }
}
/* Product navigation dropdowns: current catalog items, shared across the site. */
body.tv-storefront .tv-product-dropdown .tv-dropdown-panel { width: 330px; max-width: calc(100vw - 40px); padding: 12px; border: 1px solid #e2ddef; border-radius: 16px; box-shadow: 0 16px 40px #07133b26; }
body.tv-storefront .tv-dropdown-panel .tv-dropdown-all { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px; font-size: 14px; color: #162a49; border-bottom: 1px solid #e7eaf1; }
body.tv-storefront .tv-dropdown-label { display: block; padding: 16px 12px 6px; color: #737d91; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
body.tv-storefront .tv-dropdown-panel .tv-dropdown-product { display: flex; align-items: center; gap: 12px; padding: 10px 12px; font-size: 13px; line-height: 1.45; }
body.tv-storefront .tv-dropdown-product img { flex: 0 0 46px; width: 46px; height: 46px; border-radius: 8px; object-fit: cover; }
body.tv-storefront .tv-dropdown-empty { padding: 16px 12px 8px; margin: 0; color: #737d91; font-size: 13px; }
body.tv-storefront .tv-dropdown-panel a:hover { background: #f5f1fe; color: #6d28d9; }
@media(min-width:1101px) { body.tv-storefront .tv-navigation { gap: clamp(14px,1.5vw,26px); font-size: 14px; } }
@media(max-width:1100px) { body.tv-storefront .tv-product-dropdown .tv-dropdown-panel { width: 100%; max-width: none; box-shadow: none; margin-top: 10px; } }
/* Consistent field focus treatment without outlines or glow effects. */
body.tv-storefront :is(input, select, textarea):is(:focus, :focus-visible, :focus-within):not(#wpadminbar *) {
    outline: none !important;
    box-shadow: none !important;
}
body.tv-storefront :is(.tv-themes-search, .wc-block-components-text-input, .wc-block-components-select, .wc-block-components-combobox):focus-within {
    outline: none !important;
    box-shadow: none !important;
}
/* Align filter controls with the select inputs rather than their labels. */
body.tv-storefront .tv-themes-filter-row { align-items: flex-end; }
body.tv-storefront .tv-themes-filter-row .tv-themes-sale { display: inline-flex; align-items: center; align-self: flex-end; gap: 8px; min-height: 48px; margin: 0; padding: 0; }
body.tv-storefront .tv-themes-sale input[type="checkbox"] { display: block; flex: 0 0 16px; width: 16px; height: 16px; margin: 0; padding: 0; }
body.tv-storefront .tv-themes-filter-row .tv-themes-clear { display: inline-flex; align-items: center; min-height: 48px; }
body.tv-storefront .tv-themes-filter-row .tv-themes-apply { background: #fff !important; color: #6d28d9 !important; border: 1px solid #cdbce9 !important; }
body.tv-storefront .tv-themes-filter-row .tv-themes-apply:hover { background: #f2eefb !important; border-color: #7c3aed !important; color: #6d28d9 !important; }
/* Keep dropdown labels and navigation arrows clearly separated. */
body.tv-storefront .tv-dropdown-panel a:has(> i.fa-arrow-right) {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}
body.tv-storefront .tv-dropdown-panel a > i.fa-arrow-right {
    flex: 0 0 14px;
    width: 14px;
    height: 14px;
    font-size: 14px;
    line-height: 1;
}
/* Catalog benefits: balanced editorial introduction and compact feature cards. */
body.tv-storefront .tv-themes-about { padding: 80px 0; background: #f7f8fc; border-block: 1px solid #e9ecf3; }
body.tv-storefront .tv-themes-about > .tv-shell { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); align-items: center; gap: clamp(36px,6vw,100px); }
body.tv-storefront .tv-themes-about-heading { max-width: 540px; }
body.tv-storefront .tv-themes-about-heading .tv-eyebrow { margin-bottom: 22px; border-color: #ded8ed; background: #fff; }
body.tv-storefront .tv-themes-about-heading h2 { margin: 0 0 28px; color: #162a49; font-size: clamp(34px,3.5vw,56px); font-weight: 500; line-height: 1.08; letter-spacing: -.045em; }
body.tv-storefront .tv-themes-about-heading h2 > span { color: #7c3aed; }
body.tv-storefront .tv-themes-benefits { display: grid; gap: 16px; }
body.tv-storefront .tv-themes-benefits article { display: grid; grid-template-columns: 48px minmax(0,1fr); column-gap: 18px; row-gap: 8px; margin: 0; padding: 24px; border: 1px solid #e2ddef; border-radius: 18px; background: #fff; }
body.tv-storefront .tv-themes-benefits article > .tv-themes-benefit-icon { position: static; display: inline-flex; grid-column: 1; grid-row: 1 / 3; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 14px; background: #f2eefb; color: #7c3aed; font-size: 20px; }
body.tv-storefront .tv-themes-benefits article:nth-child(2) > .tv-themes-benefit-icon { background: #edf4ff; color: #087cff; }
body.tv-storefront .tv-themes-benefits h3 { grid-column: 2; margin: 0; color: #162a49; font-size: 20px; font-weight: 500; line-height: 1.35; letter-spacing: -.025em; }
body.tv-storefront .tv-themes-benefits p { grid-column: 2; margin: 0; color: #687388; font-size: 14px; line-height: 1.8; }
@media(max-width:900px) {
 body.tv-storefront .tv-themes-about { padding: 60px 0; }
 body.tv-storefront .tv-themes-about > .tv-shell { grid-template-columns: minmax(0,1fr); gap: 32px; }
 body.tv-storefront .tv-themes-about-heading { max-width: 620px; }
}
@media(max-width:600px) {
 body.tv-storefront .tv-themes-about { padding: 45px 0; }
 body.tv-storefront .tv-themes-benefits article { padding: 20px; grid-template-columns: 40px minmax(0,1fr); column-gap: 14px; }
 body.tv-storefront .tv-themes-benefits article > .tv-themes-benefit-icon { width: 40px; height: 40px; border-radius: 12px; font-size: 17px; }
 body.tv-storefront .tv-themes-benefits h3 { font-size: 18px; }
 body.tv-storefront .tv-themes-benefits p { grid-column: 1 / -1; margin-top: 4px; }
}
/* Theme catalog FAQs: rounded accordions with the shared action style. */
body.tv-storefront .tv-themes-page .tv-themes-faq { display: grid; grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr); align-items: start; gap: clamp(36px,6vw,100px); padding-block: 80px; }
body.tv-storefront .tv-themes-page .tv-themes-faq > div:first-child { padding-top: 8px; }
body.tv-storefront .tv-themes-page .tv-themes-faq h2 { margin: 22px 0 20px; font-size: clamp(42px,4.5vw,64px); font-weight: 500; line-height: 1.05; letter-spacing: -.045em; color: #162a49; }
body.tv-storefront .tv-themes-page .tv-themes-faq h2 > span { color: #7c3aed; }
body.tv-storefront .tv-themes-page .tv-themes-faq > div > p { margin: 0 0 24px; color: #687388; font-size: 15px; line-height: 1.8; }
body.tv-storefront .tv-themes-page .tv-themes-faq .tv-button { background: #7c3aed; color: #fff; }
body.tv-storefront .tv-themes-page .tv-themes-faq .tv-button:hover { background: #6d28d9; }
body.tv-storefront .tv-themes-page .tv-themes-faq .tv-faq-list { display: grid; gap: 12px; }
body.tv-storefront .tv-themes-page .tv-themes-faq .tv-faq-list details { margin: 0; border: 1px solid #e2ddef; border-radius: 16px; background: #fff; overflow: hidden; }
body.tv-storefront .tv-themes-page .tv-themes-faq .tv-faq-list details[open] { border-color: #cdbce9; background: #fcfaff; }
body.tv-storefront .tv-themes-page .tv-themes-faq .tv-faq-list summary { align-items: center; gap: 20px; margin: 0; padding: 20px 22px; color: #162a49; font-size: 16px; font-weight: 500; line-height: 1.5; letter-spacing: -.015em; }
body.tv-storefront .tv-themes-page .tv-themes-faq .tv-faq-list summary:hover { color: #6d28d9; }
body.tv-storefront .tv-themes-page .tv-themes-faq .tv-faq-list summary:focus-visible { outline: 2px solid #7c3aed; outline-offset: -3px; border-radius: 15px; }
body.tv-storefront .tv-themes-page .tv-themes-faq .tv-faq-list summary > span { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 28px; width: 28px; height: 28px; border-radius: 50%; background: #f2eefb; color: #7c3aed; font-size: 20px; line-height: 1; }
body.tv-storefront .tv-themes-page .tv-themes-faq .tv-faq-list details > p { margin: 0; padding: 0 70px 22px 22px; color: #687388; font-size: 14px; line-height: 1.8; }
@media(max-width:900px) { body.tv-storefront .tv-themes-page .tv-themes-faq { grid-template-columns: minmax(0,1fr); gap: 30px; padding-block: 60px; } }
@media(max-width:600px) {
 body.tv-storefront .tv-themes-page .tv-themes-faq { padding-block: 45px; }
 body.tv-storefront .tv-themes-page .tv-themes-faq .tv-faq-list summary { padding: 18px; font-size: 15px; gap: 14px; }
 body.tv-storefront .tv-themes-page .tv-themes-faq .tv-faq-list details > p { padding: 0 18px 20px; }
}
@media(prefers-reduced-motion:reduce) { body.tv-storefront .tv-themes-page .tv-themes-faq .tv-faq-list summary > span { transition: none; } }
/* Balanced FAQ layout: introduction above the questions instead of an empty side column. */
body.tv-storefront .tv-themes-page .tv-themes-faq { grid-template-columns: minmax(0,1fr); gap: 32px; }
body.tv-storefront .tv-themes-page .tv-themes-faq > div:first-child { display: grid; grid-template-columns: minmax(0,1fr) auto; column-gap: 32px; align-items: center; padding: 0; }
body.tv-storefront .tv-themes-page .tv-themes-faq > div:first-child > .tv-eyebrow { grid-column: 1 / -1; justify-self: start; margin-bottom: 18px; }
body.tv-storefront .tv-themes-page .tv-themes-faq h2 { grid-column: 1; margin: 0 0 14px; font-size: clamp(38px,4vw,56px); }
body.tv-storefront .tv-themes-page .tv-themes-faq > div:first-child > p { grid-column: 1; margin: 0; }
body.tv-storefront .tv-themes-page .tv-themes-faq > div:first-child > .tv-button { grid-column: 2; grid-row: 2 / 4; justify-self: end; }
body.tv-storefront .tv-themes-page .tv-themes-faq .tv-faq-list { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 16px; }
body.tv-storefront .tv-themes-page .tv-themes-faq .tv-faq-list summary { min-height: 76px; }
@media(max-width:767px) {
 body.tv-storefront .tv-themes-page .tv-themes-faq .tv-faq-list { grid-template-columns: minmax(0,1fr); gap: 12px; }
 body.tv-storefront .tv-themes-page .tv-themes-faq > div:first-child { grid-template-columns: minmax(0,1fr); }
 body.tv-storefront .tv-themes-page .tv-themes-faq > div:first-child > .tv-button { grid-column: 1; grid-row: auto; justify-self: start; margin-top: 22px; }
 body.tv-storefront .tv-themes-page .tv-themes-faq .tv-faq-list summary { min-height: 68px; }
}
/* Category descriptions are editable under Products > Categories. */
body.tv-storefront .tv-category-description { max-width: 720px; margin: 0 auto; color: #6e707a; font-size: 18px; line-height: 1.6; letter-spacing: -.02em; }
body.tv-storefront .tv-category-description p { margin: 0 0 12px; }
body.tv-storefront .tv-category-description p:last-child { margin-bottom: 0; }
@media(max-width:700px) { body.tv-storefront .tv-category-description { font-size: 16px; } }
/* Category content editor: scoped to the taxonomy administration fields. */
.tv-category-editor { max-width: 850px; }
.tv-category-editor-section { margin: 22px 0; padding: 22px; background: #fff; border: 1px solid #dcdcde; border-radius: 8px; }
.tv-category-editor-section h3 { margin-top: 0; }
.tv-category-editor-section label { display: block; }
.tv-category-editor-section input[type="text"], .tv-category-editor-section textarea { display: block; margin-top: 6px; }
.tv-category-editor-row { padding: 16px; margin: 16px 0; border: 1px solid #dcdcde; border-radius: 6px; background: #f8f9fc; }
.tv-category-editor-row .button-link-delete { margin-left: 12px; }
.tv-category-editor-row select { display: block; margin-top: 6px; }
/* Category benefits: heading row and an even grid of editorial feature cards. */
body.tv-storefront .tv-themes-about { padding-block: 72px; background: #f7f8fc; }
body.tv-storefront .tv-themes-about > .tv-shell { display: block; }
body.tv-storefront .tv-themes-about-heading { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; column-gap: 40px; max-width: none; margin-bottom: 34px; }
body.tv-storefront .tv-themes-about-heading .tv-eyebrow { grid-column: 1 / -1; justify-self: start; margin-bottom: 18px; }
body.tv-storefront .tv-themes-about-heading h2 { grid-column: 1; max-width: 840px; margin: 0; font-size: clamp(32px,3.5vw,52px); line-height: 1.12; }
body.tv-storefront .tv-themes-about-heading .tv-button { grid-column: 2; justify-self: end; }
body.tv-storefront .tv-themes-benefits { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; align-items: stretch; }
body.tv-storefront .tv-themes-benefits article { display: flex; flex-direction: column; align-items: flex-start; gap: 0; padding: 30px; border: 1px solid #e2e5ef; border-radius: 20px; background: #fff; box-shadow: 0 4px 16px #162a4903; }
body.tv-storefront .tv-themes-benefits article > .tv-themes-benefit-icon { position: static; flex: 0 0 auto; width: 52px; height: 52px; margin-bottom: 24px; border-radius: 16px; font-size: 22px; }
body.tv-storefront .tv-themes-benefits h3 { margin: 0 0 12px; font-size: 22px; line-height: 1.3; }
body.tv-storefront .tv-themes-benefits p { margin: 0; font-size: 14px; line-height: 1.85; }
@media(min-width:901px) {
 body.tv-storefront .tv-themes-benefits article:only-child { grid-column: 1 / -1; }
 body.tv-storefront .tv-themes-benefits:has(> article:nth-child(2):last-child) { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:1000px) {
 body.tv-storefront .tv-themes-about-heading { column-gap: 24px; }
 body.tv-storefront .tv-themes-benefits { gap: 16px; }
 body.tv-storefront .tv-themes-benefits article { padding: 24px; }
 body.tv-storefront .tv-themes-benefits h3 { font-size: 20px; }
}
@media(max-width:900px) {
 body.tv-storefront .tv-themes-about { padding-block: 55px; }
 body.tv-storefront .tv-themes-about-heading { grid-template-columns: minmax(0,1fr); gap: 0; margin-bottom: 28px; }
 body.tv-storefront .tv-themes-about-heading .tv-button { grid-column: 1; justify-self: start; margin-top: 22px; }
 body.tv-storefront .tv-themes-benefits { grid-template-columns: minmax(0,1fr); }
 body.tv-storefront .tv-themes-benefits article { display: grid; grid-template-columns: 48px minmax(0,1fr); column-gap: 18px; row-gap: 8px; }
 body.tv-storefront .tv-themes-benefits article > .tv-themes-benefit-icon { grid-column: 1; grid-row: 1 / 3; width: 48px; height: 48px; margin: 0; }
 body.tv-storefront .tv-themes-benefits h3 { grid-column: 2; margin: 0; }
 body.tv-storefront .tv-themes-benefits p { grid-column: 2; }
}
@media(max-width:600px) {
 body.tv-storefront .tv-themes-about { padding-block: 44px; }
 body.tv-storefront .tv-themes-benefits article { padding: 22px; }
 body.tv-storefront .tv-themes-benefits p { grid-column: 1 / -1; margin-top: 6px; }
}
/* Distinguish the benefits panel from the separate FAQ accordion cards. */
body.tv-storefront .tv-themes-benefits { gap: 0; padding: 34px 8px; border: 1px solid #e2e5ef; border-radius: 24px; background: #fff; box-shadow: 0 8px 24px #162a4904; }
body.tv-storefront .tv-themes-benefits article { padding: 8px 30px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
body.tv-storefront .tv-themes-benefits article + article { border-left: 1px solid #e7eaf1; }
body.tv-storefront .tv-themes-benefits article > .tv-themes-benefit-icon { width: 44px; height: 44px; margin-bottom: 20px; border-radius: 0; background: transparent; font-size: 28px; justify-content: flex-start; }
body.tv-storefront .tv-themes-benefits article:nth-child(2) > .tv-themes-benefit-icon { background: transparent; }
@media(min-width:901px) { body.tv-storefront .tv-themes-benefits article:nth-child(3n + 4) { border-left: 0; } }
@media(max-width:1000px) { body.tv-storefront .tv-themes-benefits article { padding-inline: 22px; } }
@media(max-width:900px) {
 body.tv-storefront .tv-themes-benefits { padding: 8px 26px; }
 body.tv-storefront .tv-themes-benefits article { padding: 24px 0; }
 body.tv-storefront .tv-themes-benefits article + article { border-left: 0; border-top: 1px solid #e7eaf1; }
 body.tv-storefront .tv-themes-benefits article > .tv-themes-benefit-icon { width: 44px; height: 44px; margin: 0; }
}
@media(max-width:600px) { body.tv-storefront .tv-themes-benefits { padding-inline: 22px; border-radius: 20px; } }
/* Center the benefits introduction and place its action beneath the panel. */
body.tv-storefront .tv-themes-about > .tv-shell { display: grid; grid-template-columns: minmax(0,1fr); }
body.tv-storefront .tv-themes-about-heading { display: contents; }
body.tv-storefront .tv-themes-about-heading .tv-eyebrow { grid-column: 1; grid-row: 1; justify-self: center; margin: 0 0 18px; }
body.tv-storefront .tv-themes-about-heading h2 { grid-column: 1; grid-row: 2; justify-self: center; max-width: 900px; margin: 0 0 34px; text-align: center; text-wrap: balance; }
body.tv-storefront .tv-themes-about .tv-themes-benefits { grid-column: 1; grid-row: 3; }
body.tv-storefront .tv-themes-about-heading .tv-button { grid-column: 1; grid-row: 4; justify-self: center; margin: 30px 0 0; }
@media(max-width:600px) {
 body.tv-storefront .tv-themes-about-heading h2 { margin-bottom: 26px; }
 body.tv-storefront .tv-themes-about-heading .tv-button { margin-top: 24px; }
}
/* Compact spacing for the centered benefits layout. */
body.tv-storefront .tv-themes-about { padding-block: 56px; }
body.tv-storefront .tv-themes-about > .tv-shell { gap: 0; }
body.tv-storefront .tv-themes-about-heading .tv-eyebrow { margin-bottom: 14px; }
body.tv-storefront .tv-themes-about-heading h2 { margin-bottom: 26px; }
body.tv-storefront .tv-themes-about-heading .tv-button { margin-top: 24px; }
@media(max-width:600px) {
 body.tv-storefront .tv-themes-about { padding-block: 40px; }
 body.tv-storefront .tv-themes-about-heading h2 { margin-bottom: 22px; }
 body.tv-storefront .tv-themes-about-heading .tv-button { margin-top: 22px; }
}
/* Category benefits section spacing. */
body.tv-storefront .tv-themes-about {
    padding-block: 120px;
    border-top: 0;
    border-bottom: 0;
}
/* Blog and article sidebar cards share the product sidebar treatment. */
body.tv-storefront .tv-blog-sidebar { display: flex; flex-direction: column; gap: 24px; padding: 0; }
body.tv-storefront .tv-blog-sidebar > section {
    margin: 0;
    padding: 30px;
    border: 1px solid #e2ddef;
    border-top: 3px solid #7c3aed;
    border-radius: 22px;
    background: #fff;
    color: #162a49;
    box-shadow: 0 12px 35px #162a4908;
}
body.tv-storefront .tv-blog-sidebar .tv-blog-side-section > h2 { margin: 0 0 18px; padding-bottom: 18px; border-color: #e7eaf1; color: #162a49; font-size: 21px; line-height: 1.3; letter-spacing: -.025em; }
body.tv-storefront .tv-blog-sidebar .tv-blog-side-story { border-color: #e7eaf1; }
body.tv-storefront .tv-blog-sidebar .tv-blog-category-link { border-color: #e7eaf1; }
body.tv-storefront .tv-blog-sidebar .tv-blog-search-card > span { font-size: 36px; color: #7c3aed; }
body.tv-storefront .tv-blog-sidebar .tv-blog-search-card h2 { font-size: 28px; line-height: 1.2; }
body.tv-storefront .tv-blog-sidebar .tv-blog-search-card p { color: #687388; }
@media(max-width:1100px) { body.tv-storefront .tv-blog-sidebar > section { padding: 24px; } }
/* Only the blog sidebar search card has an accent top border. */
body.tv-storefront .tv-blog-sidebar > section { border-top: 1px solid #e2ddef; }
body.tv-storefront .tv-blog-sidebar > .tv-blog-search-card { border-top: 3px solid #087cff; }
/* Refined studio callout and clean endings for sidebar lists. */
body.tv-storefront .tv-blog-sidebar > .tv-blog-studio { position: relative; background: #faf8ff; box-shadow: none; }
body.tv-storefront .tv-blog-sidebar .tv-blog-studio > .tv-eyebrow { margin-bottom: 22px; border-color: #ded6ed; background: #fff; }
body.tv-storefront .tv-blog-sidebar .tv-blog-studio-icon { position: absolute; top: 32px; right: 30px; color: #7c3aed; font-size: 22px; line-height: 1; }
body.tv-storefront .tv-blog-sidebar .tv-blog-studio h2 { margin: 0 0 16px; color: #162a49; font-size: 32px; font-weight: 500; line-height: 1.12; letter-spacing: -.035em; }
body.tv-storefront .tv-blog-sidebar .tv-blog-studio p { margin: 0 0 24px; color: #687388; font-size: 14px; line-height: 1.8; }
body.tv-storefront .tv-blog-sidebar .tv-blog-studio .tv-button { margin: 0; text-decoration: none; }
body.tv-storefront .tv-blog-sidebar .tv-blog-side-story:last-child { border-bottom: 0; padding-bottom: 0; margin-bottom: 0; }
body.tv-storefront .tv-blog-sidebar .tv-blog-category-link:last-child { border-bottom: 0; padding-bottom: 0; }
@media(max-width:1100px) { body.tv-storefront .tv-blog-sidebar .tv-blog-studio-icon { top: 27px; right: 24px; } }
/* Carousel controls: white hover arrows and no persistent focus fill. */
body.tv-storefront .tv-slider-controls button:focus:not(:hover) { background: transparent !important; color: #162a49 !important; border-color: #d8dcd1 !important; box-shadow: none !important; }
body.tv-storefront .tv-slider-controls button:hover { background: #7c3aed !important; border-color: #7c3aed !important; color: #fff !important; }
body.tv-storefront .tv-slider-controls button i { color: inherit !important; }
/* Article share icons remain legible on the purple hover background. */
body.tv-storefront .tva-share :is(a, button):hover { color: #fff !important; }
body.tv-storefront .tva-share :is(a, button):hover i { color: #fff !important; }
/* Article navigation and author: consistent storefront cards. */
body.tv-storefront .tva-post-navigation { gap: 18px; margin-top: 24px; padding: 0; border: 0; }
body.tv-storefront .tva-post-navigation a { gap: 14px; padding: 24px; border: 1px solid #e2ddef; border-radius: 18px; background: #fff; text-decoration: none; transition: border-color .2s, background .2s; }
body.tv-storefront .tva-post-navigation a:hover { border-color: #cdbce9; background: #faf8ff; }
body.tv-storefront .tva-post-navigation a > span { display: flex; align-items: center; gap: 12px; color: #7c3aed; font-size: 11px; font-weight: 500; letter-spacing: .06em; }
body.tv-storefront .tva-post-navigation .tva-next-post > span { justify-content: flex-end; }
body.tv-storefront .tva-post-navigation a > span i { display: inline-flex; align-items: center; justify-content: center; width: 14px; height: 14px; font-size: 14px; line-height: 1; }
body.tv-storefront .tva-post-navigation strong { color: #162a49; font-size: 18px; line-height: 1.5; }
body.tv-storefront .tva-post-navigation a:hover strong { color: #6d28d9; }
body.tv-storefront .tva-post-navigation time { margin-top: auto; color: #7b8495; font-size: 12px; }
body.tv-storefront .tva-author { align-items: flex-start; gap: 22px; padding: 28px; margin-top: 24px; border: 1px solid #e2ddef; border-radius: 20px; background: #f8f9fc; }
body.tv-storefront .tva-author-avatar { flex: 0 0 64px; width: 64px; height: 64px; background: #f0e9ff; color: #7c3aed; font-size: 28px; }
body.tv-storefront .tva-author > div:last-child { min-width: 0; }
body.tv-storefront .tva-author .tva-kicker { display: block; margin-bottom: 8px; color: #737d91; font-size: 10px; font-weight: 500; letter-spacing: .08em; }
body.tv-storefront .tva-author h2 { margin: 0 0 14px; color: #162a49; font-size: 23px; font-weight: 500; line-height: 1.35; overflow-wrap: anywhere; }
body.tv-storefront .tva-author p { color: #687388; font-size: 14px; line-height: 1.8; }
body.tv-storefront .tva-author a { display: inline-flex; align-items: center; gap: 14px; color: #6d28d9; font-size: 13px; font-weight: 500; text-decoration: none; }
body.tv-storefront .tva-author a:hover { color: #087cff; }
body.tv-storefront .tva-author a i { width: 14px; height: 14px; font-size: 14px; line-height: 1; }
@media(max-width:600px) {
 body.tv-storefront .tva-post-navigation { grid-template-columns: minmax(0,1fr); gap: 14px; }
 body.tv-storefront .tva-post-navigation .tva-next-post { grid-column: 1; }
 body.tv-storefront .tva-post-navigation a { padding: 20px; }
 body.tv-storefront .tva-author { padding: 22px; gap: 16px; }
 body.tv-storefront .tva-author-avatar { width: 48px; height: 48px; flex-basis: 48px; font-size: 23px; }
 body.tv-storefront .tva-author h2 { font-size: 19px; }
}
@media(prefers-reduced-motion:reduce) { body.tv-storefront .tva-post-navigation a { transition: none; } }
/* ThemeVisto mark in the article author card. */
body.tv-storefront .tva-author-avatar { background: #fff; }
body.tv-storefront .tva-author-avatar img { display: block; width: 32px; height: 40px; object-fit: contain; }
@media(max-width:600px) { body.tv-storefront .tva-author-avatar img { width: 24px; height: 30px; } }
/* No trailing divider after the final article in the blog feed. */
body.tv-storefront .tv-blog-feed > .tv-blog-post:last-of-type { border-bottom: 0; }
/* WooCommerce notices have no border or automatic focus outline. */
body.tv-storefront :is(.woocommerce-message, .woocommerce-info, .woocommerce-error),
body.tv-storefront :is(.woocommerce-message, .woocommerce-info, .woocommerce-error):focus,
body.tv-storefront :is(.woocommerce-message, .woocommerce-info, .woocommerce-error):focus-visible {
    border: 0 !important;
    outline: none !important;
    box-shadow: none !important;
}
/* Remove the extra rule above the cart table headings. */
body.woocommerce-cart #content .wc-block-cart-items,
body.woocommerce-cart #content .wc-block-cart-items thead,
body.woocommerce-cart #content .wc-block-cart-items thead tr,
body.woocommerce-cart #content .wc-block-cart-items thead th {
    border-top: 0 !important;
}
/* Native WooCommerce cart: complete standard controls in the existing card layout. */
body.woocommerce-cart #content .tv-native-cart > .woocommerce { display: grid; grid-template-columns: minmax(0,1fr) 360px; gap: 32px; align-items: start; }
body.woocommerce-cart #content .tv-native-cart .woocommerce-notices-wrapper { grid-column: 1 / -1; }
body.woocommerce-cart #content .tv-native-cart .woocommerce-notices-wrapper:empty { display: none; }
body.woocommerce-cart #content .woocommerce-cart-form { min-width: 0; padding: 28px; border: 1px solid #e2ddef; border-radius: 22px; background: #fff; }
body.woocommerce-cart #content .tv-native-cart table.shop_table { width: 100%; border: 0; border-collapse: collapse; margin: 0; color: #162a49; }
body.woocommerce-cart #content .tv-native-cart table.shop_table th { padding: 14px 10px; border: 0; background: transparent; color: #737d91; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }
body.woocommerce-cart #content .tv-native-cart table.shop_table td { padding: 22px 10px; border: 0; border-top: 1px solid #e7eaf1; background: transparent; color: #162a49; font-size: 14px; }
body.woocommerce-cart #content .tv-native-cart .product-thumbnail img { width: 64px; min-width: 54px; border-radius: 10px; }
body.woocommerce-cart #content .tv-native-cart .product-name a { color: #162a49 !important; font-size: 16px; font-weight: 500; line-height: 1.5; }
body.woocommerce-cart #content .tv-native-cart .product-name a:hover { color: #7c3aed !important; }
body.woocommerce-cart #content .tv-native-cart a.remove { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; color: #737d91 !important; background: #f7f8fc; }
body.woocommerce-cart #content .tv-native-cart a.remove:hover { background: #f2eefb; color: #7c3aed !important; }
body.woocommerce-cart #content .tv-native-cart input.qty { width: 68px; min-height: 44px; padding: 10px; border: 1px solid #dfe3ed; border-radius: 999px; background: #f8f9fc; color: #162a49; text-align: center; }
body.woocommerce-cart #content .tv-native-cart .actions { text-align: right; }
body.woocommerce-cart #content .tv-native-cart .coupon { display: flex; align-items: center; gap: 10px; float: left; flex-wrap: wrap; }
body.woocommerce-cart #content .tv-native-cart .coupon label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
body.woocommerce-cart #content .tv-native-cart #coupon_code { width: 150px; min-height: 48px; padding: 12px 14px; border: 1px solid #dfe3ed; border-radius: 12px; background: #f8f9fc; color: #162a49; }
body.woocommerce-cart #content .tv-native-cart :is(button.button,a.checkout-button) { background: #7c3aed !important; color: #fff !important; border: 1px solid transparent; border-radius: 999px !important; font-size: 14px !important; font-weight: 500; text-decoration: none; }
body.woocommerce-cart #content .tv-native-cart :is(button.button,a.checkout-button):hover { background: #6d28d9 !important; }
body.woocommerce-cart #content .tv-native-cart button[name="update_cart"] { margin-top: 10px; background: #f2eefb !important; color: #6d28d9 !important; }
body.woocommerce-cart #content .tv-native-cart button:disabled { opacity: .5; }
body.woocommerce-cart #content .tv-native-cart .cart-collaterals { width: 100%; }
body.woocommerce-cart #content .tv-native-cart .cart_totals { float: none; width: 100%; padding: 28px; border: 1px solid #e2ddef; border-top: 3px solid #7c3aed; border-radius: 22px; background: #fff; box-shadow: 0 12px 35px #162a4908; }
body.woocommerce-cart #content .tv-native-cart .cart_totals h2 { margin: 0 0 20px; font-size: 22px; line-height: 1.3; font-weight: 500; }
body.woocommerce-cart #content .tv-native-cart .cart_totals table th { width: 45%; text-align: left; text-transform: none; letter-spacing: 0; color: #687388; font-size: 14px; font-weight: 400; border-top: 1px solid #e7eaf1; padding: 18px 0; }
body.woocommerce-cart #content .tv-native-cart .cart_totals table td { padding: 18px 0; text-align: right; }
body.woocommerce-cart #content .tv-native-cart .cart_totals .order-total :is(th,td) { color: #162a49; font-size: 20px; font-weight: 500; }
body.woocommerce-cart #content .tv-native-cart .wc-proceed-to-checkout { padding: 20px 0 0; }
body.woocommerce-cart #content .tv-native-cart .checkout-button { width: 100%; margin: 0; }
body.woocommerce-cart #content .tv-native-cart .shipping-calculator-form input,
body.woocommerce-cart #content .tv-native-cart .shipping-calculator-form select { width: 100%; min-height: 44px; padding: 10px; border: 1px solid #dfe3ed; border-radius: 10px; background: #fff; color: #162a49; }
@media(max-width:1100px) {
 body.woocommerce-cart #content .tv-native-cart > .woocommerce { grid-template-columns: minmax(0,1fr); }
 body.woocommerce-cart #content .tv-native-cart .actions .coupon { float: none; margin-bottom: 12px; }
}
@media(max-width:768px) {
 body.woocommerce-cart #content .woocommerce-cart-form { padding: 20px; }
 body.woocommerce-cart #content .tv-native-cart .cart_totals { padding: 24px; }
 body.woocommerce-cart #content .tv-native-cart table.shop_table_responsive tr td { display: block; text-align: right; }
 body.woocommerce-cart #content .tv-native-cart table.shop_table_responsive tr td::before { color: #687388; font-weight: 500; }
 body.woocommerce-cart #content .tv-native-cart table.shop_table_responsive thead { display: none; }
 body.woocommerce-cart #content .tv-native-cart table.cart td.product-thumbnail { display: none; }
 body.woocommerce-cart #content .tv-native-cart .coupon { justify-content: flex-start; }
}
/* Refined native cart table proportions and action row. */
body.woocommerce-cart #content .woocommerce-cart-form { padding: 24px 28px; }
body.woocommerce-cart #content .tv-native-cart table.cart { table-layout: fixed; }
body.woocommerce-cart #content .tv-native-cart table.cart .product-remove { width: 36px; padding-left: 0; padding-right: 8px; }
body.woocommerce-cart #content .tv-native-cart table.cart .product-thumbnail { width: 94px; padding-left: 8px; padding-right: 14px; }
body.woocommerce-cart #content .tv-native-cart table.cart .product-price { width: 100px; }
body.woocommerce-cart #content .tv-native-cart table.cart .product-quantity { width: 110px; }
body.woocommerce-cart #content .tv-native-cart table.cart .product-subtotal { width: 110px; text-align: right; padding-right: 0; }
body.woocommerce-cart #content .tv-native-cart table.cart .product-name { width: auto; }
body.woocommerce-cart #content .tv-native-cart table.cart .product-thumbnail img { display: block; width: 72px; height: 72px; min-width: 0; object-fit: cover; border-radius: 12px; }
body.woocommerce-cart #content .tv-native-cart table.cart td { vertical-align: middle; padding-top: 24px; padding-bottom: 24px; }
body.woocommerce-cart #content .tv-native-cart table.cart .product-name a { font-size: 17px; }
body.woocommerce-cart #content .tv-native-cart table.cart .product-price { color: #687388; }
body.woocommerce-cart #content .tv-native-cart table.cart td.product-subtotal { font-size: 16px; font-weight: 600; }
body.woocommerce-cart #content .tv-native-cart a.remove { width: 28px; height: 28px; font-size: 21px; font-weight: 400; background: #f5f6fa; }
body.woocommerce-cart #content .tv-native-cart a.remove:hover { color: #be334a !important; background: #fff0f3; }
body.woocommerce-cart #content .tv-native-cart table.cart td.actions { padding: 22px 0 0; }
body.woocommerce-cart #content .tv-native-cart .coupon { gap: 10px; }
body.woocommerce-cart #content .tv-native-cart #coupon_code { width: 190px; margin: 0; }
body.woocommerce-cart #content .tv-native-cart .coupon button.button { border: 1px solid #d8caef !important; background: #fff !important; color: #6d28d9 !important; }
body.woocommerce-cart #content .tv-native-cart .coupon button.button:hover { background: #f2eefb !important; border-color: #7c3aed !important; }
body.woocommerce-cart #content .tv-native-cart button[name="update_cart"] { margin: 0; background: #7c3aed !important; color: #fff !important; }
body.woocommerce-cart #content .tv-native-cart button[name="update_cart"]:disabled { background: #f0edf6 !important; color: #8b819e !important; opacity: 1; }
@media(max-width:1200px) and (min-width:1101px) {
 body.woocommerce-cart #content .tv-native-cart > .woocommerce { grid-template-columns: minmax(0,1fr) 320px; gap: 24px; }
 body.woocommerce-cart #content .tv-native-cart table.cart .product-price { width: 70px; }
 body.woocommerce-cart #content .tv-native-cart table.cart .product-quantity { width: 85px; }
 body.woocommerce-cart #content .tv-native-cart table.cart .product-subtotal { width: 85px; }
 body.woocommerce-cart #content .tv-native-cart #coupon_code { width: 150px; }
 body.woocommerce-cart #content .tv-native-cart .actions .coupon { float: none; margin-bottom: 14px; }
}
@media(max-width:768px) {
 body.woocommerce-cart #content .woocommerce-cart-form { padding: 20px; }
 body.woocommerce-cart #content .tv-native-cart table.cart { table-layout: auto; }
 body.woocommerce-cart #content .tv-native-cart table.cart tr.cart_item td { width: auto; padding: 14px 0; }
 body.woocommerce-cart #content .tv-native-cart table.cart tr.cart_item .product-remove { border-top: 0; padding-bottom: 10px; }
 body.woocommerce-cart #content .tv-native-cart table.cart td.actions { text-align: left; }
 body.woocommerce-cart #content .tv-native-cart .coupon { display: flex; float: none; margin-bottom: 14px; }
 body.woocommerce-cart #content .tv-native-cart #coupon_code { width: 100%; flex: 1 1 140px; }
 body.woocommerce-cart #content .tv-native-cart .coupon button.button { flex: 1 1 auto; }
 body.woocommerce-cart #content .tv-native-cart button[name="update_cart"] { width: 100%; }
}
/* Empty-cart recommendations use the same shared product cards as the catalog. */
body.woocommerce-cart #content .tv-empty-cart-products { padding: 0; margin-top: 46px; }
body.woocommerce-cart #content .tv-empty-cart-products > h2 { margin: 0 0 24px; font-size: 26px; font-weight: 500; letter-spacing: -.025em; }
body.woocommerce-cart #content .tv-empty-cart-products .tv-product-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; }
@media(max-width:1200px) { body.woocommerce-cart #content .tv-empty-cart-products .tv-product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { body.woocommerce-cart #content .tv-empty-cart-products .tv-product-grid { grid-template-columns: minmax(0,1fr); } }

/* Empty-cart card actions match the homepage colors and alignment. */
body.woocommerce-cart #content .tv-empty-cart-products .tv-card-details { color: #fff !important; background: #7c3aed; text-decoration: none !important; }
body.woocommerce-cart #content .tv-empty-cart-products .tv-card-details:hover { color: #fff !important; background: #6d28d9; }
body.woocommerce-cart #content .tv-empty-cart-products .tv-card-cart,
body.woocommerce-cart #content .tv-empty-cart-products .tv-card-cart i { color: #162a49 !important; }
body.woocommerce-cart #content .tv-empty-cart-products .tv-card-preview { color: #fff !important; }
body.woocommerce-cart #content .tv-empty-cart-products .tv-card-preview-icon { color: #162a49 !important; }
body.woocommerce-cart #content .tv-empty-cart-products .tv-card-actions { align-items: center; }
/* Checkout refinement: consistent proportions, form rhythm, and order summary. */
@media(min-width:1000px) {
 body.woocommerce-checkout #content .wc-block-components-sidebar-layout.wc-block-checkout { gap: 4%; }
 body.woocommerce-checkout #content .wc-block-checkout__sidebar { flex-basis: 380px; width: 380px; }
}
body.woocommerce-checkout #content .wc-block-checkout__main { padding: 32px; }
body.woocommerce-checkout #content .wc-block-components-checkout-step { padding-bottom: 28px; margin-bottom: 28px; border-bottom: 1px solid #e7eaf1; }
body.woocommerce-checkout #content .wc-block-components-checkout-step:last-of-type { margin-bottom: 0; }
body.woocommerce-checkout #content .wc-block-components-checkout-step__heading { align-items: center; margin: 0 0 20px; }
body.woocommerce-checkout #content .wc-block-components-checkout-step__title { color: #162a49 !important; font-size: 21px; font-weight: 500; line-height: 1.4; letter-spacing: -.025em; }
body.woocommerce-checkout #content .wc-block-components-checkout-step__description { margin: 0 0 16px; color: #687388; font-size: 14px; }
body.woocommerce-checkout #content .wc-block-components-address-form { row-gap: 16px; }
body.woocommerce-checkout #content .wc-block-components-text-input input,
body.woocommerce-checkout #content .wc-block-components-select .wc-block-components-select__select,
body.woocommerce-checkout #content .wc-block-components-combobox .components-combobox-control__input { min-height: 56px; border-color: #dfe3ed; border-radius: 12px !important; background-color: #f8f9fc; color: #162a49; font-size: 15px; }
body.woocommerce-checkout #content .wc-block-components-text-input input:focus,
body.woocommerce-checkout #content .wc-block-components-select select:focus { background-color: #fff; outline: none !important; box-shadow: none !important; }
body.woocommerce-checkout #content .wc-block-components-text-input.has-error input { border-color: #cc3345; background: #fffafb; }
body.woocommerce-checkout #content .wc-block-components-text-input label { color: #737d91; }
body.woocommerce-checkout #content .wc-block-components-validation-error { margin-top: 6px; font-size: 12px; line-height: 1.6; }
body.woocommerce-checkout #content .wc-block-components-address-form__address_2-toggle { color: #6d28d9 !important; font-size: 13px; padding: 4px 0; }
body.woocommerce-checkout #content .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option { border-color: #e2ddef; border-radius: 12px; overflow: hidden; }
body.woocommerce-checkout #content .wc-block-components-radio-control__option-checked { background: #faf8ff; }
body.woocommerce-checkout #content .wc-block-components-radio-control__input { accent-color: #7c3aed; }
body.woocommerce-checkout #content .wc-block-checkout__order-notes { padding-top: 4px; margin-bottom: 22px; }
body.woocommerce-checkout #content .wc-block-checkout__terms { margin-top: 0; padding-block: 20px; }
body.woocommerce-checkout #content .wc-block-checkout__actions_row { align-items: center; gap: 18px; }
body.woocommerce-checkout #content .wc-block-components-checkout-place-order-button { min-height: 52px !important; font-size: 15px; font-weight: 500; }
body.woocommerce-checkout #content .wc-block-components-checkout-order-summary__title { margin: 0; padding: 24px; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item { padding-block: 20px; gap: 12px; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item__image { flex: 0 0 58px; width: 58px; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item__image img { width: 58px; height: 58px; object-fit: cover; border-radius: 10px; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item__quantity { border: 2px solid #fff; background: #162a49; color: #fff; font-size: 11px; box-shadow: none; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item__description { min-width: 0; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item__individual-prices { margin-top: 6px; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item__total-price { color: #162a49; font-weight: 500; }
body.woocommerce-checkout #content .wc-block-components-totals-footer-item { padding-block: 22px; }
body.woocommerce-checkout #content .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-weight: 600; }
body.woocommerce-checkout #content .wc-block-components-totals-coupon__form { gap: 10px; }
body.woocommerce-checkout #content .wc-block-components-totals-coupon__button { background: #f2eefb !important; color: #6d28d9 !important; }
body.woocommerce-checkout #content .wc-block-components-totals-coupon__button:hover { background: #e9dffa !important; }
@media(max-width:999px) { body.woocommerce-checkout #content .wc-block-checkout__main { padding: 26px; } }
@media(max-width:600px) {
 body.woocommerce-checkout #content .wc-block-checkout__main { padding: 20px; }
 body.woocommerce-checkout #content .wc-block-components-checkout-step { padding-bottom: 22px; margin-bottom: 22px; }
 body.woocommerce-checkout #content .wc-block-components-checkout-step__title { font-size: 19px; }
 body.woocommerce-checkout #content .wc-block-checkout__actions_row { flex-wrap: wrap; }
 body.woocommerce-checkout #content .wc-block-components-checkout-return-to-cart-button { justify-content: center; }
 body.woocommerce-checkout #content .wc-block-components-totals-wrapper { padding-inline: 20px; }
}

/* Checkout contact fieldset must not inherit the agency contact-section background. */
body.woocommerce-checkout #content #contact { background: transparent; color: #162a49; }
body.woocommerce-checkout #content .wc-block-checkout__guest-checkout-notice { margin-top: 10px; color: #687388; background: transparent; font-size: 13px; line-height: 1.7; }
body.woocommerce-checkout #content .wc-block-components-notices .wc-block-components-notice-banner { width: 100%; margin: 0 0 20px; }
body.woocommerce-checkout #content .wc-block-components-notice-banner > .wc-block-components-notice-banner__content { flex: 1; min-width: 0; }
body.woocommerce-checkout #content .wc-block-components-notice-banner .wc-block-components-notice-banner__dismiss { flex: 0 0 24px; width: 24px; height: 24px; min-height: 24px !important; padding: 0 !important; border: 0; border-radius: 50% !important; background: transparent !important; color: inherit !important; }

/* Only the inner WooCommerce sidebar layout owns checkout columns. */
body.woocommerce-checkout #content .wp-block-woocommerce-checkout.wc-block-checkout { display: block; width: 100%; }
body.woocommerce-checkout #content .wp-block-woocommerce-checkout > .wc-block-components-notices { display: block; width: 100%; margin: 0; }
body.woocommerce-checkout #content .wp-block-woocommerce-checkout > .wc-block-components-notices:empty { display: none; }
body.woocommerce-checkout #content .wc-block-components-sidebar-layout.wc-block-checkout { width: 100%; margin: 0; }
@media(min-width:1000px) {
 body.woocommerce-checkout #content .wc-block-components-sidebar-layout.wc-block-checkout { display: grid; grid-template-columns: minmax(0,1fr) 380px; gap: 4%; align-items: start; }
 body.woocommerce-checkout #content .wc-block-components-sidebar-layout > .wc-block-checkout__main { grid-column: 1; width: 100%; min-width: 0; }
 body.woocommerce-checkout #content .wc-block-components-sidebar-layout > .wc-block-checkout__sidebar { grid-column: 2; width: 100%; min-width: 0; margin: 0; }
}
@media(max-width:999px) {
 body.woocommerce-checkout #content .wc-block-components-sidebar-layout.wc-block-checkout { display: flex; flex-direction: column; gap: 24px; }
 body.woocommerce-checkout #content .wc-block-components-sidebar-layout > :is(.wc-block-checkout__main, .wc-block-checkout__sidebar) { width: 100%; flex-basis: auto; margin: 0; }
}
/* Compact, readable checkout order-summary products. */
body.woocommerce-checkout #content .wc-block-components-order-summary { padding: 0 22px; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item { display: grid; grid-template-columns: 64px minmax(0,1fr) auto; align-items: start; column-gap: 14px; row-gap: 8px; padding: 22px 0; margin: 0; border-bottom: 1px solid #e7eaf1; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item:last-child { border-bottom: 0; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item__image { grid-column: 1; width: 64px; margin: 0; padding: 0; position: relative; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item__image img { display: block; width: 64px; height: 64px; border-radius: 12px; object-fit: cover; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item__description { grid-column: 2; padding: 0; min-width: 0; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item .wc-block-components-product-name { display: block; color: #162a49 !important; font-size: 14px; font-weight: 500; line-height: 1.5; overflow-wrap: break-word; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item__individual-prices { margin-top: 8px; font-size: 12px; line-height: 1.5; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item__total-price { grid-column: 3; padding: 0; margin: 0; color: #162a49; font-size: 14px; font-weight: 600; line-height: 1.5; text-align: right; white-space: nowrap; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item .wc-block-components-product-metadata { margin-top: 8px; color: #737d91; font-size: 12px; line-height: 1.6; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item .wc-block-components-product-metadata__description { display: none; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item .wc-block-components-product-metadata__variation-data { margin: 0; padding: 0; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item .wc-block-components-product-badge { margin-top: 8px; padding: 4px 8px; font-size: 10px; font-weight: 500; line-height: 1.4; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item__quantity { display: flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 4px; border-radius: 999px; border: 2px solid #fff; background: #162a49; color: #fff; font-size: 10px; line-height: 1; }
@media(max-width:600px) {
 body.woocommerce-checkout #content .wc-block-components-order-summary { padding-inline: 18px; }
 body.woocommerce-checkout #content .wc-block-components-order-summary-item { grid-template-columns: 56px minmax(0,1fr) auto; column-gap: 12px; }
 body.woocommerce-checkout #content .wc-block-components-order-summary-item__image,
 body.woocommerce-checkout #content .wc-block-components-order-summary-item__image img { width: 56px; height: 56px; }
}
/* Native checkout selects use WooCommerce's wc-blocks component class names. */
body.woocommerce-checkout #content .wc-blocks-components-select { margin: 0; background: transparent; border-radius: 12px; }
body.woocommerce-checkout #content .wc-blocks-components-select__container { min-height: 56px; border: 0; border-radius: 12px; background: #f8f9fc; }
body.woocommerce-checkout #content .wc-blocks-components-select .wc-blocks-components-select__select { width: 100%; min-height: 56px; height: 56px; margin: 0; padding: 23px 42px 7px 14px; border: 1px solid #dfe3ed !important; border-radius: 12px !important; background: #f8f9fc; color: #162a49; font: inherit; font-size: 15px; line-height: 24px; box-shadow: none !important; outline: none !important; }
body.woocommerce-checkout #content .wc-blocks-components-select .wc-blocks-components-select__label { top: 7px; left: 14px; right: 40px; margin: 0; color: #737d91; font-size: 11px; line-height: 16px; pointer-events: none; }
body.woocommerce-checkout #content .wc-blocks-components-select .wc-blocks-components-select__expand { right: 14px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; color: #162a49; pointer-events: none; }
body.woocommerce-checkout #content .wc-blocks-components-select .wc-blocks-components-select__select:focus { background: #fff; border-color: #7c3aed !important; }
body.woocommerce-checkout #content .wc-blocks-components-select .wc-blocks-components-select__select[aria-invalid="true"] { border-color: #cc3345 !important; }
/* Payment options reserve a separate column for the radio circle. */
body.woocommerce-checkout #content .wc-block-components-radio-control .wc-block-components-radio-control__option { position: relative; display: block; min-height: 60px; margin: 0; padding: 18px 20px 18px 52px; color: #162a49; }
body.woocommerce-checkout #content .wc-block-components-radio-control .wc-block-components-radio-control__input { position: absolute; top: 30px; left: 20px; transform: translateY(-50%); appearance: none; width: 18px; height: 18px; min-height: 0; margin: 0; padding: 0; border: 1px solid #b9c0cf; border-radius: 50%; background: #fff; box-shadow: none; }
body.woocommerce-checkout #content .wc-block-components-radio-control .wc-block-components-radio-control__input:checked { border-color: #7c3aed; }
body.woocommerce-checkout #content .wc-block-components-radio-control .wc-block-components-radio-control__input:checked::before { width: 8px; height: 8px; background: #7c3aed; }
body.woocommerce-checkout #content .wc-block-components-radio-control__label { font-size: 14px; font-weight: 500; line-height: 24px; }
body.woocommerce-checkout #content .wc-block-components-radio-control-accordion-option { border: 1px solid #e2ddef !important; border-radius: 14px !important; box-shadow: none !important; overflow: hidden; }
body.woocommerce-checkout #content .wc-block-components-radio-control-accordion-option--checked-option-highlighted { border-color: #d4c5ef !important; }
body.woocommerce-checkout #content .wc-block-components-radio-control-accordion-option::after { border: 0 !important; box-shadow: none !important; }
body.woocommerce-checkout #content .wc-block-components-radio-control-accordion-content { padding: 14px 20px 16px 52px; background: #fff; color: #687388; font-size: 13px; line-height: 1.7; }
body.woocommerce-checkout #content .wc-block-components-radio-control-accordion-content p { margin: 0; }
/* One rounded border per payment option, without WooCommerce's overlapping outline. */
body.woocommerce-checkout #content .wc-block-checkout__payment-method .wc-block-components-radio-control { border: 0; border-radius: 0; box-shadow: none; }
body.woocommerce-checkout #content .wc-block-checkout__payment-method .wc-block-components-radio-control::after,
body.woocommerce-checkout #content .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option::after,
body.woocommerce-checkout #content .wc-block-checkout__payment-method .wc-block-components-radio-control__option::after { display: none !important; }
body.woocommerce-checkout #content .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option { margin-bottom: 12px; border: 1px solid #e2ddef !important; border-radius: 14px !important; overflow: hidden; box-shadow: none !important; }
body.woocommerce-checkout #content .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option:last-child { margin-bottom: 0; }
body.woocommerce-checkout #content .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option--checked-option-highlighted { border-color: #d4c5ef !important; }
body.woocommerce-checkout #content .wc-block-checkout__payment-method .wc-block-components-radio-control__option { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
/* Align checkout thumbnails and keep quantity badges clear of the title. */
body.woocommerce-checkout #content .wc-block-components-order-summary-item { column-gap: 18px; align-items: start; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item__image { width: 64px !important; max-width: none; height: 64px; padding: 0 !important; margin: 0 !important; align-self: start; line-height: 0; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item__image img { width: 64px !important; max-width: 100% !important; height: 64px !important; margin: 0; object-fit: cover; object-position: center; vertical-align: top; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item__quantity { position: absolute; top: -6px; right: -6px; margin: 0; transform: none; }
body.woocommerce-checkout #content .wc-block-components-order-summary-item__description { margin: 0; align-self: start; }
@media(max-width:600px) {
 body.woocommerce-checkout #content .wc-block-components-order-summary-item { column-gap: 16px; }
 body.woocommerce-checkout #content .wc-block-components-order-summary-item__image,
 body.woocommerce-checkout #content .wc-block-components-order-summary-item__image img { width: 56px !important; height: 56px !important; }
}
/* Clean checkout footer spacing without stacked divider lines. */
body.woocommerce-checkout #content .wc-block-checkout__payment-method { border-bottom: 0; padding-bottom: 0; }
body.woocommerce-checkout #content .wc-block-checkout__order-notes { margin: 22px 0 0; padding: 0; border: 0; }
body.woocommerce-checkout #content .wc-block-checkout__order-notes .wc-block-components-checkout-step__content { margin: 0; padding: 0; }
body.woocommerce-checkout #content .wc-block-checkout__order-notes .wc-block-components-checkbox { margin: 0; }
body.woocommerce-checkout #content .wc-block-checkout__order-notes .wc-block-components-checkbox label { display: flex; align-items: center; gap: 12px; min-height: 24px; margin: 0; }
body.woocommerce-checkout #content .wc-block-checkout__order-notes .wc-block-components-checkbox__input { flex: 0 0 20px; width: 20px; height: 20px; margin: 0; }
body.woocommerce-checkout #content .wc-block-checkout__order-notes .wc-block-components-checkbox__label { margin: 0; line-height: 20px; }
body.woocommerce-checkout #content .wc-block-checkout__order-notes textarea { margin-top: 14px; }
body.woocommerce-checkout #content .wc-block-checkout__terms { border: 0; margin: 0; padding: 24px 0; }
body.woocommerce-checkout #content .wc-block-checkout__actions { border: 0; }
/* WooCommerce order-received page: native order data in ThemeVisto cards. */
body.woocommerce-order-received #content .woocommerce-order { display: grid; gap: 26px; max-width: 1160px; margin: 0 auto; color: #162a49; }
body.woocommerce-order-received #content .woocommerce-thankyou-order-received { display: flex; align-items: center; gap: 18px; margin: 0; padding: 28px 30px; border: 1px solid #ded5ef; border-radius: 20px; background: #fff; color: #162a49; font-size: clamp(20px,2vw,28px); font-weight: 500; line-height: 1.45; letter-spacing: -.025em; }
body.woocommerce-order-received #content .woocommerce-thankyou-order-received::before { content: '\f00c'; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 48px; width: 48px; height: 48px; border-radius: 50%; background: #f2eefb; color: #7c3aed; font-family: 'Font Awesome 6 Free'; font-weight: 900; font-size: 20px; }
body.woocommerce-order-received #content ul.woocommerce-order-overview { display: grid; grid-template-columns: repeat(auto-fit,minmax(160px,1fr)); gap: 0; margin: 0; padding: 24px 12px; border: 1px solid #e2ddef; border-radius: 20px; background: #fff; list-style: none; }
body.woocommerce-order-received #content ul.woocommerce-order-overview::before,
body.woocommerce-order-received #content ul.woocommerce-order-overview::after { display: none; }
body.woocommerce-order-received #content ul.woocommerce-order-overview li { float: none; margin: 0; padding: 8px 18px; border: 0; border-right: 1px solid #e7eaf1; color: #737d91; font-size: 11px; text-transform: uppercase; letter-spacing: .05em; line-height: 1.6; overflow-wrap: anywhere; }
body.woocommerce-order-received #content ul.woocommerce-order-overview li:last-child { border-right: 0; }
body.woocommerce-order-received #content ul.woocommerce-order-overview strong { display: block; margin-top: 8px; color: #162a49; font-size: 15px; font-weight: 500; line-height: 1.5; text-transform: none; letter-spacing: 0; }
body.woocommerce-order-received #content :is(.woocommerce-order-details,.woocommerce-customer-details,.woocommerce-order-downloads) { margin: 0; padding: 30px; border: 1px solid #e2ddef; border-radius: 22px; background: #fff; box-shadow: 0 8px 24px #162a4904; }
body.woocommerce-order-received #content :is(.woocommerce-order-details,.woocommerce-customer-details,.woocommerce-order-downloads) h2 { margin: 0 0 22px; color: #162a49 !important; font-size: 23px; font-weight: 500; line-height: 1.3; letter-spacing: -.025em; }
body.woocommerce-order-received #content table.shop_table { width: 100%; margin: 0; border: 0; border-collapse: collapse; border-radius: 0; }
body.woocommerce-order-received #content table.shop_table :is(th,td) { padding: 17px 12px; border: 0; border-bottom: 1px solid #e7eaf1; background: transparent; color: #162a49; font-size: 14px; line-height: 1.7; vertical-align: top; }
body.woocommerce-order-received #content table.shop_table thead th { color: #737d91; font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: .06em; }
body.woocommerce-order-received #content table.shop_table :is(th,td):first-child { padding-left: 0; }
body.woocommerce-order-received #content table.shop_table :is(th,td):last-child { padding-right: 0; text-align: right; }
body.woocommerce-order-received #content table.shop_table tfoot th { color: #687388; font-weight: 400; }
body.woocommerce-order-received #content table.shop_table tfoot tr:last-child :is(th,td) { padding-top: 22px; border-bottom: 0; color: #162a49; font-size: 18px; font-weight: 600; }
body.woocommerce-order-received #content table.shop_table a { color: #6d28d9 !important; }
body.woocommerce-order-received #content table.shop_table .product-quantity { font-weight: 400; color: #737d91; }
body.woocommerce-order-received #content .woocommerce-customer-details address { padding: 20px; border: 1px solid #e7eaf1; border-radius: 14px; background: #f8f9fc; color: #687388; font-size: 14px; font-style: normal; line-height: 1.9; overflow-wrap: anywhere; }
body.woocommerce-order-received #content .woocommerce-customer-details address p { margin: 10px 0 0; }
body.woocommerce-order-received #content .woocommerce-customer-details .woocommerce-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
body.woocommerce-order-received #content .woocommerce-customer-details .woocommerce-column { float: none; width: auto; }
body.woocommerce-order-received #content .woocommerce-customer-details .woocommerce-columns::before,
body.woocommerce-order-received #content .woocommerce-customer-details .woocommerce-columns::after { display: none; }
body.woocommerce-order-received #content .woocommerce-order :is(a.button,button.button) { padding: 14px 23px !important; border: 1px solid transparent; border-radius: 999px !important; background: #7c3aed !important; color: #fff !important; font-size: 14px; font-weight: 500; line-height: 20px; }
body.woocommerce-order-received #content .woocommerce-order :is(a.button,button.button):hover { background: #6d28d9 !important; }
body.woocommerce-order-received #content .woocommerce-thankyou-order-failed { margin: 0; padding: 24px; border: 1px solid #efcbd1; border-radius: 18px; background: #fff4f5; color: #862b3a; line-height: 1.8; }
body.woocommerce-order-received #content .woocommerce-thankyou-order-failed-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
body.woocommerce-order-received #content .woocommerce-order > p:not(.woocommerce-notice) { margin: 0; color: #687388; font-size: 14px; line-height: 1.8; }
@media(max-width:700px) {
 body.woocommerce-order-received #content .woocommerce-order { gap: 20px; }
 body.woocommerce-order-received #content .woocommerce-thankyou-order-received { align-items: flex-start; padding: 22px; gap: 14px; }
 body.woocommerce-order-received #content .woocommerce-thankyou-order-received::before { flex-basis: 40px; width: 40px; height: 40px; font-size: 17px; }
 body.woocommerce-order-received #content ul.woocommerce-order-overview { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 12px; }
 body.woocommerce-order-received #content ul.woocommerce-order-overview li { padding: 12px; border: 0; }
 body.woocommerce-order-received #content :is(.woocommerce-order-details,.woocommerce-customer-details,.woocommerce-order-downloads) { padding: 22px; }
 body.woocommerce-order-received #content .woocommerce-customer-details .woocommerce-columns { grid-template-columns: minmax(0,1fr); }
 body.woocommerce-order-received #content table.shop_table :is(th,td) { padding: 14px 6px; font-size: 13px; overflow-wrap: anywhere; }
 body.woocommerce-order-received #content .woocommerce-order-downloads { overflow-x: auto; }
}
/* Shared sub-banner sizing must not inherit legacy section padding. */
body.tv-storefront .tv-sub-banner { padding: 0; }
body.tv-storefront .tv-sub-banner-inner { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; min-height: 444px; box-sizing: border-box; }
body.tv-storefront .tv-sub-breadcrumb { line-height: 1.6; }
body.tv-storefront .tv-sub-banner p { margin: 0; }
@media(max-width:1100px) { body.tv-storefront .tv-sub-banner-inner { min-height: 360px; } }
@media(max-width:700px) { body.tv-storefront .tv-sub-banner-inner { min-height: 340px; } }
/* Legacy heading rules must not change the shared banner's line height. */
body.tv-storefront .tv-sub-banner h1 { line-height: 1.08 !important; }
/* My Account: presentation only; all screens and data remain native WooCommerce. */
body.woocommerce-account.tv-storefront { background: #f7f8fc !important; color: #162a49 !important; }
body.woocommerce-account.tv-storefront #content.site-main { width: min(1600px,calc(100% - 100px)); max-width: none; margin: 0 auto; padding: 75px 0 90px; }
body.woocommerce-account #content :is(h1,h2,h3,h4,legend) { color: #162a49 !important; }
body.woocommerce-account #content > .page-header { margin-bottom: 26px; }
body.woocommerce-account #content > .page-header h1 { margin: 0; font-size: 32px; font-weight: 500; line-height: 1.2 !important; letter-spacing: -.035em; }
body.woocommerce-account #content .page-content { margin: 0; }
body.woocommerce-account #content .woocommerce { color: #162a49; font-size: 14px; line-height: 1.8; }
body.woocommerce-account #content .woocommerce p { color: #687388; margin-bottom: 18px; }
body.woocommerce-account #content .woocommerce a { color: #6d28d9 !important; }
body.woocommerce-account #content .woocommerce a:hover { color: #087cff !important; }
body.woocommerce-account #content .woocommerce:has(> .woocommerce-MyAccount-navigation) { display: grid; grid-template-columns: 270px minmax(0,1fr); gap: 32px; align-items: start; }
body.woocommerce-account #content .woocommerce-MyAccount-navigation { float: none; width: 100%; padding: 12px; border: 1px solid #e2ddef; border-radius: 20px; background: #fff; }
body.woocommerce-account #content .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
body.woocommerce-account #content .woocommerce-MyAccount-navigation li { margin: 0; padding: 0; border: 0; }
body.woocommerce-account #content .woocommerce-MyAccount-navigation li a { display: block; padding: 13px 16px; border-radius: 10px; color: #162a49 !important; font-size: 14px; font-weight: 500; text-decoration: none; }
body.woocommerce-account #content .woocommerce-MyAccount-navigation li a:hover { color: #6d28d9 !important; background: #f8f5fe; }
body.woocommerce-account #content .woocommerce-MyAccount-navigation li.is-active a { color: #6d28d9 !important; background: #f2eefb; }
body.woocommerce-account #content .woocommerce-MyAccount-content { float: none; width: 100%; min-width: 0; padding: 30px; border: 1px solid #e2ddef; border-radius: 22px; background: #fff; box-shadow: 0 8px 24px #162a4904; }
body.woocommerce-account #content .woocommerce-MyAccount-content h2,
body.woocommerce-account #content .woocommerce-MyAccount-content h3 { margin: 0 0 22px; font-size: 24px; font-weight: 500; line-height: 1.3 !important; letter-spacing: -.025em; }
body.woocommerce-account #content #customer_login { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 28px; }
body.woocommerce-account #content #customer_login::before,
body.woocommerce-account #content #customer_login::after { display: none; }
body.woocommerce-account #content #customer_login > :is(.col-1,.col-2) { float: none; flex: none; width: 100%; max-width: none; padding: 28px; border: 1px solid #e2ddef; border-radius: 22px; background: #fff; }
body.woocommerce-account #content #customer_login h2,
body.woocommerce-account #content .woocommerce > h2 { margin: 0 0 22px; color: #162a49; font-size: 27px; font-weight: 500; line-height: 1.3 !important; letter-spacing: -.03em; }
body.woocommerce-account #content .woocommerce form.login,
body.woocommerce-account #content .woocommerce form.register { margin: 0; padding: 28px; border: 1px solid #e2ddef; border-radius: 22px; background: #fff; }
body.woocommerce-account #content #customer_login form { padding: 0; border: 0; border-radius: 0; }
body.woocommerce-account #content .woocommerce:not(:has(.woocommerce-MyAccount-navigation)):not(:has(#customer_login)) { max-width: 760px; margin-inline: auto; }
body.woocommerce-account #content .woocommerce form.woocommerce-ResetPassword { padding: 28px; border: 1px solid #e2ddef; border-radius: 22px; background: #fff; }
body.woocommerce-account #content .woocommerce form .form-row { display: block; margin: 0 0 20px; padding: 0; }
body.woocommerce-account #content .woocommerce form label { display: block; margin: 0 0 8px; color: #162a49; font-size: 13px; font-weight: 500; line-height: 1.6; }
body.woocommerce-account #content .woocommerce form :is(input.input-text,textarea,select) { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid #dfe3ed; border-radius: 12px; background: #f8f9fc; color: #162a49; font: inherit; font-size: 14px; line-height: 24px; box-shadow: none; }
body.woocommerce-account #content .woocommerce form input[type="password"] { padding-right: 48px; }
body.woocommerce-account #content .woocommerce form :is(input,select,textarea):focus { border-color: #7c3aed; outline: none !important; box-shadow: none !important; background-color: #fff; }
body.woocommerce-account #content .woocommerce form .required { color: #7c3aed; }
body.woocommerce-account #content .woocommerce form .password-input { display: block; width: 100%; }
body.woocommerce-account #content .woocommerce form .show-password-input { top: 50%; right: 14px; transform: translateY(-50%); color: #737d91; padding: 0; border: 0; background: transparent; }
body.woocommerce-account #content .woocommerce form .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 9px; margin: 0 18px 14px 0; }
body.woocommerce-account #content .woocommerce form input[type="checkbox"] { width: 17px; height: 17px; margin: 0; accent-color: #7c3aed; }
body.woocommerce-account #content .woocommerce .button { min-height: 48px; padding: 14px 23px !important; border: 1px solid transparent; border-radius: 999px !important; background: #7c3aed !important; color: #fff !important; font-size: 14px; font-weight: 500; line-height: 20px; text-decoration: none; }
body.woocommerce-account #content .woocommerce .button:hover { background: #6d28d9 !important; color: #fff !important; }
body.woocommerce-account #content .woocommerce .button:disabled { opacity: .5; }
body.woocommerce-account #content .woocommerce .woocommerce-form-login__submit { float: none; margin: 0 0 14px; }
body.woocommerce-account #content .woocommerce .lost_password { margin: 4px 0 0; font-size: 13px; }
body.woocommerce-account #content .woocommerce .woocommerce-privacy-policy-text { font-size: 13px; line-height: 1.8; }
body.woocommerce-account #content .woocommerce fieldset { margin: 26px 0; padding: 24px; border: 1px solid #e7eaf1; border-radius: 14px; background: #fafbfe; }
body.woocommerce-account #content .woocommerce legend { float: none; width: auto; padding: 0 8px; font-size: 18px; font-weight: 500; }
body.woocommerce-account #content .woocommerce em { font-size: 12px; color: #737d91; }
body.woocommerce-account #content .woocommerce table.shop_table { width: 100%; margin: 0 0 24px; border: 1px solid #e7eaf1; border-radius: 12px; border-spacing: 0; background: #fff; }
body.woocommerce-account #content .woocommerce table.shop_table :is(th,td) { padding: 16px 14px; border: 0; border-bottom: 1px solid #e7eaf1; background: transparent; color: #162a49; font-size: 13px; line-height: 1.6; }
body.woocommerce-account #content .woocommerce table.shop_table th { color: #737d91; font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: .04em; }
body.woocommerce-account #content .woocommerce table.shop_table tbody tr:last-child td,
body.woocommerce-account #content .woocommerce table.shop_table tfoot tr:last-child :is(th,td) { border-bottom: 0; }
body.woocommerce-account #content .woocommerce table.shop_table .button { min-height: 38px !important; padding: 8px 14px !important; margin: 3px; font-size: 12px !important; }
body.woocommerce-account #content .woocommerce .woocommerce-Addresses { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
body.woocommerce-account #content .woocommerce .woocommerce-Addresses::before,
body.woocommerce-account #content .woocommerce .woocommerce-Addresses::after { display: none; }
body.woocommerce-account #content .woocommerce .woocommerce-Address { float: none; width: 100%; max-width: none; padding: 22px; border: 1px solid #e7eaf1; border-radius: 14px; background: #fafbfe; }
body.woocommerce-account #content .woocommerce .woocommerce-Address .title h2 { float: none; margin-bottom: 16px; font-size: 20px; }
body.woocommerce-account #content .woocommerce address { margin: 0; color: #687388; font-size: 14px; font-style: normal; line-height: 1.9; overflow-wrap: anywhere; }
body.woocommerce-account #content .woocommerce .woocommerce-info { margin: 0 0 22px; padding: 20px 24px 20px 52px; border-radius: 12px; background: #f5f1fe; color: #162a49; }
body.woocommerce-account #content .woocommerce .woocommerce-error { border-radius: 12px; background: #fff4f5; color: #862b3a; }
@media(max-width:1100px) { body.woocommerce-account #content .woocommerce:has(> .woocommerce-MyAccount-navigation) { grid-template-columns: 220px minmax(0,1fr); gap: 24px; } }
@media(max-width:767px) {
 body.woocommerce-account.tv-storefront #content.site-main { width: calc(100% - 32px); padding: 42px 0 55px; }
 body.woocommerce-account #content .woocommerce:has(> .woocommerce-MyAccount-navigation),
 body.woocommerce-account #content #customer_login,
 body.woocommerce-account #content .woocommerce .woocommerce-Addresses { grid-template-columns: minmax(0,1fr); gap: 20px; }
 body.woocommerce-account #content .woocommerce-MyAccount-content,
 body.woocommerce-account #content #customer_login > :is(.col-1,.col-2),
 body.woocommerce-account #content .woocommerce form.login,
 body.woocommerce-account #content .woocommerce form.register,
 body.woocommerce-account #content .woocommerce form.woocommerce-ResetPassword { padding: 22px; }
 body.woocommerce-account #content #customer_login form { padding: 0; }
 body.woocommerce-account #content .woocommerce form .form-row-first,
 body.woocommerce-account #content .woocommerce form .form-row-last { float: none; width: 100%; }
 body.woocommerce-account #content .woocommerce table.shop_table_responsive tr td { padding: 14px; }
 body.woocommerce-account #content .woocommerce table.shop_table_responsive tr td::before { color: #737d91; font-weight: 500; }
}
/* Account notices span both columns without shifting the default navigation. */
body.woocommerce-account #content .woocommerce:has(> .woocommerce-MyAccount-navigation) > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
body.woocommerce-account #content .woocommerce:has(> .woocommerce-MyAccount-navigation) > .woocommerce-notices-wrapper:empty { display: none; }
body.woocommerce-account #content .woocommerce-MyAccount-navigation { grid-column: 1; }
body.woocommerce-account #content .woocommerce-MyAccount-content { grid-column: 2; }
@media(max-width:767px) { body.woocommerce-account #content .woocommerce-MyAccount-content { grid-column: 1; } }
/* Not-found page uses the shared storefront shell and action styles. */
body.error404.tv-storefront { background: #f7f8fc; }
.tv-not-found { padding: 75px 0 90px; background: #f7f8fc; }
.tv-not-found-card { padding: 50px 28px 56px; border: 0; border-radius: 26px; background: #fff; text-align: center; box-shadow: 0 12px 35px #162a4904; }
.tv-not-found-code { display: flex; justify-content: center; gap: 4px; margin-bottom: 24px; color: #162a49; font-size: clamp(92px,11vw,160px); font-weight: 500; line-height: 1; letter-spacing: -.08em; }
.tv-not-found-code > span { color: #7c3aed; }
.tv-not-found-card .tv-eyebrow { margin-bottom: 18px; }
body.tv-storefront .tv-not-found-card h1 { max-width: 800px; margin: 0 auto 18px; color: #162a49; font-size: clamp(28px,3.4vw,46px); font-weight: 500; line-height: 1.15; letter-spacing: -.04em; text-wrap: balance; }
.tv-not-found-card p { max-width: 540px; margin: 0 auto 28px; color: #687388; font-size: 15px; line-height: 1.8; }
.tv-not-found-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; }
body.tv-storefront .tv-not-found-actions .tv-button { background: #7c3aed; color: #fff; border: 1px solid transparent; }
body.tv-storefront .tv-not-found-actions .tv-button:hover { background: #6d28d9; color: #fff; }
body.tv-storefront .tv-not-found-actions .tv-not-found-browse { background: #fff; color: #6d28d9; border-color: #cdbce9; }
body.tv-storefront .tv-not-found-actions .tv-not-found-browse:hover { background: #f2eefb; color: #6d28d9; }
.tv-not-found-actions i { display: inline-flex; align-items: center; justify-content: center; width: 14px; height: 14px; font-size: 14px; line-height: 1; }
@media(max-width:700px) { .tv-not-found { padding: 42px 0 55px; } .tv-not-found-card { padding: 34px 22px 38px; border-radius: 22px; } }
@media(max-width:400px) { .tv-not-found-actions { flex-direction: column; } .tv-not-found-actions .tv-button { width: 100%; } }
/* Search results: shared product cards and an accessible native search form. */
body.search.tv-storefront { background: #f7f8fc; }
body.tv-storefront .tv-search-page { padding-block: 70px 90px; }
.tv-search-page-form { display: flex; align-items: center; gap: 14px; padding: 24px; margin-bottom: 36px; border: 1px solid #e2ddef; border-radius: 22px; background: #fff; }
.tv-search-page-field { display: flex; align-items: center; flex: 1 1 0; gap: 12px; min-width: 0; padding: 0 16px; border: 1px solid #dfe3ed; border-radius: 12px; background: #f8f9fc; color: #162a49; }
.tv-search-page-field input { width: 100%; min-width: 0; min-height: 52px; padding: 12px 0; border: 0; background: transparent; color: #162a49; font: inherit; font-size: 15px; }
.tv-search-page-type select { min-height: 52px; width: 170px; padding: 12px 32px 12px 14px; border: 1px solid #dfe3ed; border-radius: 12px; background-color: #f8f9fc; color: #162a49; font: inherit; font-size: 14px; }
body.tv-storefront .tv-search-page .tv-button { border: 1px solid transparent; background: #7c3aed; color: #fff; }
body.tv-storefront .tv-search-page .tv-button:hover { background: #6d28d9; color: #fff; }
.tv-search-page-heading { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 12px 30px; margin-bottom: 26px; }
body.tv-storefront .tv-search-page-heading h2 { margin: 0; color: #162a49; font-size: clamp(26px,3vw,36px); font-weight: 500; line-height: 1.25; letter-spacing: -.035em; }
.tv-search-page-heading p { margin: 0; color: #737d91; font-size: 14px; }
.tv-search-page-heading strong { color: #162a49; font-weight: 500; overflow-wrap: anywhere; }
.tv-search-content-card { display: flex; flex-direction: column; }
.tv-search-content-copy { display: flex; flex-direction: column; align-items: flex-start; flex: 1; padding: 18px 6px 10px; }
.tv-search-content-copy .tv-product-category { margin-bottom: 10px; }
body.tv-storefront .tv-search-page .tv-search-content-copy h3 { margin: 0 0 12px; font-size: 21px; line-height: 1.35; }
.tv-search-content-copy p { margin: 0 0 22px; color: #687388; font-size: 14px; line-height: 1.8; }
.tv-search-content-copy .tv-button { margin-top: auto; }
.tv-search-content-placeholder { display: grid; place-items: center; width: 100%; height: 100%; background: #f2eefb; color: #7c3aed; font-size: 46px; }
.tv-search-empty { padding: 48px 24px; border: 1px solid #e2ddef; border-radius: 24px; background: #fff; text-align: center; }
.tv-search-empty-icon { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; margin-bottom: 22px; border-radius: 50%; background: #f2eefb; color: #7c3aed; font-size: 27px; }
body.tv-storefront .tv-search-empty h3 { margin: 0 0 14px; color: #162a49; font-size: 28px; font-weight: 500; letter-spacing: -.03em; }
.tv-search-empty p { max-width: 480px; margin: 0 auto 24px; color: #687388; font-size: 15px; line-height: 1.8; }
.tv-search-page .tv-button i,.tv-search-page .tv-themes-pagination i { display: inline-flex; align-items: center; justify-content: center; width: 14px; height: 14px; font-size: 14px; line-height: 1; }
@media(max-width:850px) { .tv-search-page-form { flex-wrap: wrap; } .tv-search-page-field { flex-basis: 100%; } .tv-search-page-type { flex: 1; } .tv-search-page-type select { width: 100%; } }
@media(max-width:600px) { body.tv-storefront .tv-search-page { padding-block: 42px 55px; } .tv-search-page-form { padding: 20px; gap: 12px; } .tv-search-page-field input { font-size: 16px; } .tv-search-page-form > .tv-button { flex: 1; } .tv-search-empty { padding: 36px 22px; } }


/* Hire Us: shared ThemeVisto studio styling. */
:where(body.tv-css-hire) .tv-hire-page { color: #162a49; }
:where(body.tv-css-hire) .tv-hire-page > section { padding-top: 100px; padding-bottom: 100px; scroll-margin-top: 90px; }
:where(body.tv-css-hire) .tvh-hero { background: #fff; overflow: hidden; }
:where(body.tv-css-hire) .tvh-hero h1 { font-size: clamp(44px, 5vw, 76px); line-height: 1.08; letter-spacing: -.055em; }
:where(body.tv-css-hire) .tvh-hero h1 > span,
:where(body.tv-css-hire) .tvh-quote-copy h2 > span { color: #7c3aed; }
:where(body.tv-css-hire) .tvh-hero-copy > p { color: #6b7890; line-height: 1.8; margin: 24px 0 30px; }
:where(body.tv-css-hire) .tvh-hero-work { display: inline-flex; align-items: center; gap: 12px; margin: 20px 0 0 24px; color: #162a49; }
:where(body.tv-css-hire) .tvh-design-note { border: 1px solid #e2ddef; border-radius: 18px; box-shadow: 0 12px 35px #162a490a; }
:where(body.tv-css-hire) .tvh-design-note > span { background: #f1ebff; color: #7c3aed; }
:where(body.tv-css-hire) .tvh-section-heading { max-width: 760px; margin: 0 auto 44px; }
:where(body.tv-css-hire) .tvh-section-heading h2,
:where(body.tv-css-hire) .tvh-quote-copy h2 { font-size: clamp(34px, 3.5vw, 56px); line-height: 1.12; letter-spacing: -.045em; margin: 20px 0; }
:where(body.tv-css-hire) .tvh-section-heading > p { color: #6b7890; font-size: 16px; margin: 0; }
:where(body.tv-css-hire) :is(.tvh-packages, .tvh-portfolio) { background: #f7f8fc; }
:where(body.tv-css-hire) .tvh-package { padding: 32px; border: 1px solid #e2ddef; border-radius: 22px; box-shadow: none; }
:where(body.tv-css-hire) .tvh-package-featured { border-color: #7c3aed; box-shadow: 0 12px 36px #7c3aed0a; }
:where(body.tv-css-hire) .tvh-package .tvh-package-tag { border-radius: 999px; background: #f1ebff; color: #7c3aed; padding: 7px 12px; font-size: 12px; }
:where(body.tv-css-hire) .tvh-package-featured .tvh-package-tag { background: #7c3aed; color: #fff; }
:where(body.tv-css-hire) .tvh-package h3 { font-size: 26px; margin-bottom: 20px; }
:where(body.tv-css-hire) .tvh-package-price { font-size: 36px; margin-bottom: 24px; }
:where(body.tv-css-hire) .tvh-package-price > span { font-size: 13px; color: #6b7890; }
:where(body.tv-css-hire) .tvh-package > p { color: #6b7890; min-height: 50px; }
:where(body.tv-css-hire) .tvh-package li:before { color: #7c3aed; }
:where(body.tv-css-hire) .tvh-package .tv-button { background: #7c3aed; color: #fff !important; justify-content: space-between; }
:where(body.tv-css-hire) .tvh-package .tv-button:hover { background: #6d28d9; }
:where(body.tv-css-hire) .tvh-process-grid { gap: 24px; }
:where(body.tv-css-hire) .tvh-process-grid article { padding: 28px; border: 1px solid #e2ddef; border-radius: 22px; }
:where(body.tv-css-hire) .tvh-process-icon { border: 0; padding: 0; margin-bottom: 24px; }
:where(body.tv-css-hire) .tvh-process-grid article .tvh-process-icon > span { width: 56px; height: 56px; font-size: 24px; background: #f1ebff; color: #7c3aed; border-radius: 15px; }
:where(body.tv-css-hire) .tvh-process-icon b { font-size: 24px; color: #b7a6dc; }
:where(body.tv-css-hire) .tvh-process-grid h3 { font-size: 23px; margin-bottom: 14px; }
:where(body.tv-css-hire) .tvh-process-grid p { color: #6b7890; margin-bottom: 0; }
:where(body.tv-css-hire) .tvh-portfolio-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
:where(body.tv-css-hire) .tvh-portfolio-grid article { padding: 14px; border: 1px solid #e2ddef; border-radius: 22px; background: #fff; min-width: 0; }
:where(body.tv-css-hire) .tvh-project-image { border: 0; box-shadow: none; aspect-ratio: 4/3; border-radius: 14px; }
:where(body.tv-css-hire) .tvh-project-image > span { background: #7c3aed; border-radius: 999px; }
:where(body.tv-css-hire) .tvh-project-meta { gap: 10px; margin: 20px 6px 12px; flex-wrap: wrap; color: #6b7890; }
:where(body.tv-css-hire) .tvh-project-meta a { color: #7c3aed; }
:where(body.tv-css-hire) .tvh-portfolio-grid h3 { font-size: 22px; margin: 0 6px 12px; }
:where(body.tv-css-hire) .tvh-portfolio-grid h3 a:hover { color: #7c3aed; }
:where(body.tv-css-hire) .tvh-quote { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 6%; }
:where(body.tv-css-hire) .tvh-quote-copy > p,
:where(body.tv-css-hire) .tvh-quote-note p { color: #6b7890; }
:where(body.tv-css-hire) .tvh-quote-note > span { color: #7c3aed; }
:where(body.tv-css-hire) .tvh-email { font-size: 22px; color: #7c3aed; border-color: #e2ddef; overflow-wrap: anywhere; }
:where(body.tv-css-hire) .tvh-quote-panel { background: #fff; border: 1px solid #e2ddef; border-top: 3px solid #7c3aed; padding: 32px; border-radius: 22px; box-shadow: 0 12px 40px #162a4905; min-width: 0; }
:where(body.tv-css-hire) .tvh-quote-form label { font-size: 14px; line-height: 1.5; }
:where(body.tv-css-hire) .tvh-quote-form :is(input:not([type="checkbox"]), select, textarea) { background: #f8f9fc; border: 1px solid #dfe3ed; border-radius: 12px; padding: 13px 14px; margin-top: 8px; min-height: 50px; color: #162a49; box-shadow: none; }
:where(body.tv-css-hire) .tvh-quote-form select { padding-right: 34px; }
:where(body.tv-css-hire) .tvh-quote-form textarea { min-height: 150px; resize: vertical; }
:where(body.tv-css-hire) .tvh-quote-form :is(input, select, textarea):focus { border-color: #7c3aed; outline: none; box-shadow: none; }
:where(body.tv-css-hire) .tvh-quote-form .tvh-consent { display: flex; align-items: flex-start; gap: 12px; font-weight: 400; font-size: 13px; }
:where(body.tv-css-hire) .tvh-consent input { width: 18px; height: 18px; min-width: 18px; margin: 2px 0 0; accent-color: #7c3aed; }
:where(body.tv-css-hire) .tvh-consent a { color: #7c3aed; }
:where(body.tv-css-hire) .tvh-quote-form > .tv-button { width: 100%; justify-content: space-between; color: #fff !important; }
@media (max-width: 1100px) {
 :where(body.tv-css-hire) .tv-hire-page > section { padding-top: 72px; padding-bottom: 72px; }
 :where(body.tv-css-hire) .tvh-package { padding: 24px; }
 :where(body.tv-css-hire) .tvh-portfolio-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 :where(body.tv-css-hire) .tvh-quote { gap: 30px; }
}
@media (max-width: 800px) {
 :where(body.tv-css-hire) .tvh-quote,
 :where(body.tv-css-hire) .tvh-package-grid,
 :where(body.tv-css-hire) .tvh-process-grid { grid-template-columns: minmax(0, 1fr); }
 :where(body.tv-css-hire) .tvh-package > p { min-height: 0; }
 :where(body.tv-css-hire) .tvh-quote-copy { max-width: 560px; }
}
@media (max-width: 600px) {
 :where(body.tv-css-hire) .tv-hire-page > section { padding-top: 56px; padding-bottom: 56px; }
 :where(body.tv-css-hire) .tvh-hero-work { margin-left: 0; display: flex; width: fit-content; }
 :where(body.tv-css-hire) .tvh-portfolio-grid,
 :where(body.tv-css-hire) .tvh-form-row { grid-template-columns: minmax(0, 1fr); }
 :where(body.tv-css-hire) .tvh-form-row { gap: 0; }
 :where(body.tv-css-hire) .tvh-quote-panel { padding: 22px; }
 :where(body.tv-css-hire) .tvh-section-heading { margin-bottom: 30px; }
}

:where(body.tv-css-hire) .tvh-package:last-child .tvh-package-tag { background: #f1ebff; color: #7c3aed; }
:where(body.tv-css-hire) .tvh-hero > .tv-shell { padding-block: 0; min-height: 560px; }
:where(body.tv-css-hire) .tvh-quote-form .tv-button { background: #7c3aed; border-radius: 999px; }
:where(body.tv-css-hire) .tvh-quote-form .tv-button:hover { background: #6d28d9; }
:where(body.tv-css-hire) .tvh-form-message > span { background: #f1ebff; color: #7c3aed; }
@media (max-width: 800px) {
 :where(body.tv-css-hire) .tvh-hero > .tv-shell { min-height: 0; }
}


/* Reusable arrow link: apply to a WordPress menu item or directly to a link. */
body.tv-storefront :is(a.tv-menu-arrow, .tv-menu-arrow > a) {
 display: flex; align-items: center; justify-content: space-between;
 gap: 20px; color: #162a49; font-size: 14px; line-height: 1.5;
 text-decoration: none;
}
body.tv-storefront :is(a.tv-menu-arrow, .tv-menu-arrow > a)::after {
 content: ""; display: block; flex: 0 0 14px; width: 14px; height: 14px;
 background: currentColor;
 mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 18 18 6M7 6h11v11' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
body.tv-storefront :is(a.tv-menu-arrow, .tv-menu-arrow > a) > i.fa-arrow-right { display: none; }
body.tv-storefront :is(a.tv-menu-arrow, .tv-menu-arrow > a):hover { color: #7c3aed; }


/* Account notices: align message, action and a font-independent info icon. */
body.woocommerce-account #content .woocommerce .woocommerce-info {
 position: relative; display: flex; align-items: center; gap: 20px;
 min-height: 88px; padding: 20px 24px 20px 54px;
}
body.woocommerce-account #content .woocommerce .woocommerce-info::before {
 content: ""; position: absolute; left: 20px; top: 50%; transform: translateY(-50%);
 display: block; width: 18px; height: 18px; margin: 0; background: #7c3aed;
 mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M12 11v6' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='7' r='1'/%3E%3C/svg%3E") center / contain no-repeat;
}
body.woocommerce-account #content .woocommerce .woocommerce-info::after { display: none; }
body.woocommerce-account #content .woocommerce .woocommerce-info > .button {
 order: 1; flex-shrink: 0; float: none; margin: 0 0 0 auto; text-align: center;
}
@media (max-width: 600px) {
 body.woocommerce-account #content .woocommerce .woocommerce-info { flex-direction: column; align-items: flex-start; gap: 16px; padding: 20px 20px 20px 50px; }
 body.woocommerce-account #content .woocommerce .woocommerce-info::before { left: 18px; top: 24px; transform: none; }
 body.woocommerce-account #content .woocommerce .woocommerce-info > .button { margin: 0; }
}


/* A standalone 404: retain a readable header without an interior banner. */
body.error404.tv-storefront .tv-header {
 position: relative; top: 0 !important;
 background: #07133b url('../images/hero.jpg') center / cover;
}
body.error404.tv-storefront .tv-not-found { padding: 64px 0 80px; }
body.error404.tv-storefront .tv-not-found-card { max-width: 1100px; padding: 56px 32px; }
body.error404.tv-storefront .tv-not-found-actions .tv-not-found-browse {
 color: #6d28d9 !important; background: #fff !important; border: 1px solid #cdbce9;
}
body.error404.tv-storefront .tv-not-found-actions .tv-not-found-browse:hover {
 color: #6d28d9 !important; background: #f2eefb !important;
}
@media (max-width: 700px) {
 body.error404.tv-storefront .tv-not-found { padding: 36px 0 48px; }
 body.error404.tv-storefront .tv-not-found-card { padding: 38px 22px; }
}


/* Appearance > Menus: tv-menu-label creates a non-clickable section heading. */
body.tv-storefront .tv-menu-label > .tv-menu-section-label {
 display: block; padding: 16px 12px 6px; color: #737d91;
 font-size: 10px; font-weight: 500; line-height: 1.5;
 letter-spacing: .08em; text-transform: uppercase; cursor: default;
}


/* Product entries created in Appearance > Menus match the existing dropdown rows. */
body.tv-storefront .tv-menu-product > a.tv-dropdown-product {
 display: flex; align-items: center; justify-content: flex-start;
 gap: 12px; padding: 10px 12px; color: #162a49; font-size: 13px;
 font-weight: 400; line-height: 1.45; text-decoration: none;
}
body.tv-storefront .tv-menu-product > a.tv-dropdown-product img {
 flex: 0 0 46px; width: 46px; height: 46px; border-radius: 8px; object-fit: cover;
}
body.tv-storefront .tv-menu-product > a.tv-dropdown-product:hover { background: #f5f1fe; color: #6d28d9; }


/* Menu category overview link: arrow row with a bottom divider. */
body.tv-storefront :is(a.tv-menu-all, .tv-menu-all > a) {
 display: flex; align-items: center; justify-content: space-between; gap: 16px;
 padding: 12px; color: #162a49; font-size: 14px; font-weight: 400;
 line-height: 1.5; text-decoration: none; border: 0; border-bottom: 1px solid #e7eaf1;
}
body.tv-storefront :is(a.tv-menu-all, .tv-menu-all > a)::after {
 content: ""; display: block; flex: 0 0 14px; width: 14px; height: 14px;
 background: currentColor;
 mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 18 18 6M7 6h11v11' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
body.tv-storefront :is(a.tv-menu-all, .tv-menu-all > a) > i.fa-arrow-right { display: none; }
body.tv-storefront :is(a.tv-menu-all, .tv-menu-all > a):hover { background: #f5f1fe; color: #6d28d9; }


/* Dropdown helper text: matches the existing empty-category message. */
body.tv-storefront .tv-menu-note > .tv-menu-note-text {
 display: block; padding: 16px 12px 8px; margin: 0;
 color: #737d91; font-size: 13px; font-weight: 400;
 line-height: 1.5; text-transform: none; letter-spacing: normal; cursor: default;
}


/* Editable primary navigation keeps the original header layout and dropdowns. */
body.tv-storefront .tv-primary-menu { display: contents; margin: 0; padding: 0; list-style: none; }
body.tv-storefront .tv-primary-menu > li { display: contents; }
body.tv-storefront .tv-primary-menu > li > a { display: flex; align-items: center; min-height: 44px; color: inherit; text-decoration: none; }
body.tv-storefront .tv-primary-menu > li > a:hover { color: #d2e11e; }
body.tv-storefront .tv-primary-menu .sub-menu { list-style: none; padding: 0; margin: 0; }
body.tv-storefront .tv-primary-menu .sub-menu > li { list-style: none; margin: 0; padding: 0; border: 0; }
body.tv-storefront .tv-primary-menu .tv-dropdown-panel a { border-radius: 5px; }
body.tv-storefront .tv-primary-menu .sub-menu .tv-dropdown-panel { left: 100%; top: 0; }
@media (max-width:1100px) {
 body.tv-storefront .tv-primary-menu > li > a { width: 100%; padding: 9px 0; }
 body.tv-storefront .tv-primary-menu .sub-menu .tv-dropdown-panel { position: static; }
}


/* Homepage service actions: equal baseline and shared filled pill buttons. */
body.tv-storefront.home .tv-service-grid { align-items: stretch; }
body.tv-storefront.home .tv-service { display: flex; flex-direction: column; align-items: flex-start; }
body.tv-storefront.home .tv-service .tv-button-dark {
 display: inline-flex; align-items: center; justify-content: space-between;
 margin-top: auto; min-height: 48px; padding: 14px 23px !important;
 border: 1px solid transparent; border-radius: 999px;
 background: #7c3aed; color: #fff !important; gap: 20px;
 font-size: 14px; line-height: 20px; text-decoration: none;
}
body.tv-storefront.home .tv-service .tv-button-dark:hover {
 background: #6d28d9; color: #fff !important;
}
body.tv-storefront.home .tv-service .tv-button-dark :is(span, i) { color: inherit !important; }
body.tv-storefront.home .tv-service p { margin-bottom: 26px; }


/* Consistent 45-degree arrows across calls to action and text links. */
body.tv-storefront :is(a, .tv-button) i.fa-arrow-right {
 display: inline-block; transform: rotate(-45deg);
}


/* Hire Us hero follows the homepage's coordinated website imagery. */
body.tv-css-hire .tvh-studio-visual { position: relative; min-width: 0; margin: 0; padding-bottom: 0; }
body.tv-css-hire .tvh-studio-visual > img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 26px; }
body.tv-css-hire .tvh-studio-visual figcaption {
 position: absolute; bottom: 0; left: 24px; display: flex; align-items: center; gap: 12px;
 padding: 14px 20px; border: 1px solid #e2ddef; border-radius: 16px;
 background: #fff; color: #162a49; font-size: 14px; box-shadow: 0 10px 30px #162a4908;
}
body.tv-css-hire .tvh-studio-visual figcaption > span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #f1ebff; color: #7c3aed; }
@media(max-width:600px) {
 body.tv-css-hire .tvh-studio-visual { margin-top: 12px; }
 body.tv-css-hire .tvh-studio-visual figcaption { left: 12px; right: 12px; padding: 12px; font-size: 13px; }
}


/* Studio package pricing: original and current USD prices. */
body.tv-css-hire .tvh-package-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px; letter-spacing: -.045em; }
body.tv-css-hire .tvh-package-price del { color: #9ba4b3; font-size: clamp(24px, 2.1vw, 32px); font-weight: 400; }
body.tv-css-hire .tvh-package-price ins { background: transparent; color: #7c3aed; font-size: clamp(38px, 3.3vw, 50px); font-weight: 500; text-decoration: none; }
body.tv-css-hire .tvh-package > p { min-height: 80px; }
body.tv-css-hire .tvh-package li { line-height: 1.8; }
@media(max-width:800px) { body.tv-css-hire .tvh-package > p { min-height: 0; } }


/* Image-led studio process: a coordinated illustration for each step. */
body.tv-css-hire .tvh-process-illustrated { gap: 36px; }
body.tv-css-hire .tvh-process-illustrated .tvh-process-step {
 padding: 0; border: 0; border-radius: 0; text-align: center;
 display: flex; flex-direction: column; align-items: center; min-width: 0;
}
body.tv-css-hire .tvh-process-art {
 position: relative; width: 100%; max-width: 280px; aspect-ratio: 1; overflow: hidden;
 margin: 0; border-radius: 20px; background: #faf6ee;
}
body.tv-css-hire .tvh-process-art img {
 position: absolute; top: 0; left: 0; width: 300%; max-width: none;
 height: 100%; display: block;
}
body.tv-css-hire .tvh-process-step:nth-child(2) .tvh-process-art img { left: -100%; }
body.tv-css-hire .tvh-process-step:nth-child(3) .tvh-process-art img { left: -200%; }
body.tv-css-hire .tvh-step-number {
 position: relative; z-index: 1; display: grid; place-items: center;
 width: 44px; height: 44px; margin: -22px 0 24px;
 border: 4px solid #fff; border-radius: 50%; background: #7c3aed;
 color: #fff; font-size: 15px; font-weight: 500; line-height: 1;
}
body.tv-css-hire .tvh-process-illustrated h3 { font-size: clamp(21px, 1.8vw, 26px); margin: 0 0 16px; line-height: 1.25; }
body.tv-css-hire .tvh-process-illustrated p { max-width: 390px; margin: 0; font-size: 15px; line-height: 1.85; color: #6b7890; }
@media(max-width:800px) {
 body.tv-css-hire .tvh-process-illustrated { gap: 40px; }
 body.tv-css-hire .tvh-process-art { max-width: 240px; }
}


body.tv-css-hire .tvh-package-price > .tvh-current-price {
 display: inline; margin: 0; color: #7c3aed; font-size: clamp(38px, 3.3vw, 50px);
 font-weight: 500; line-height: 1.1; letter-spacing: -.045em;
}


/* Contact Form 7 keeps the studio form layout and native validation feedback. */
body.tv-css-hire .tvh-quote-form .wpcf7-form-control-wrap { display: block; }
body.tv-css-hire .tvh-quote-form p { margin: 0; }
body.tv-css-hire .tvh-quote-form .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
body.tv-css-hire .tvh-quote-form .wpcf7-acceptance label { display: flex; align-items: flex-start; gap: 12px; font-size: 13px; font-weight: 400; }
body.tv-css-hire .tvh-quote-form .wpcf7-acceptance input { flex: 0 0 18px; width: 18px; height: 18px; margin: 2px 0 0; accent-color: #7c3aed; }
body.tv-css-hire .tvh-cf7-submit { position: relative; }
body.tv-css-hire .tvh-quote-form input[type="submit"] { width: 100%; padding: 14px 48px !important; border: 0; border-radius: 999px !important; background: #7c3aed; color: #fff !important; cursor: pointer; font-size: 14px; min-height: 48px; }
body.tv-css-hire .tvh-quote-form input[type="submit"]:hover { background: #6d28d9; }
body.tv-css-hire .tvh-cf7-submit::after { content: "\2197"; position: absolute; right: 24px; top: 50%; transform: translateY(-50%); color: #fff; pointer-events: none; }
body.tv-css-hire .tvh-cf7-submit .wpcf7-spinner { position: absolute; right: 4px; top: 12px; margin: 0; }
body.tv-css-hire .tvh-quote-form .wpcf7-not-valid-tip { margin-top: 6px; color: #b42332; font-size: 12px; }
body.tv-css-hire .tvh-quote-form .wpcf7-response-output { margin: 20px 0 0; padding: 14px 16px; border-radius: 12px; font-size: 14px; }


/* Concise pricing lists with comfortable, compact spacing. */
body.tv-css-hire .tvh-package > p { min-height: 48px; margin-bottom: 20px; }
body.tv-css-hire .tvh-package ul { width: 100%; margin-bottom: 26px; }
body.tv-css-hire .tvh-package li { line-height: 1.6; margin-bottom: 12px; }
@media(max-width:800px) { body.tv-css-hire .tvh-package > p { min-height: 0; } }


/* MailPoet footer signup: preserve the original underline and arrow treatment. */
body.tv-storefront .tv-mailpoet-footer { width: 100%; }
body.tv-storefront .tv-mailpoet-footer form.mailpoet_form {
 display: flex !important; align-items: center; flex-wrap: wrap; gap: 0;
 padding: 0 0 15px !important; margin: 0 !important; border: 0;
 border-bottom: 1px solid #ffffff80; background: transparent !important;
 color: #fff; border-radius: 0; box-shadow: none;
}
body.tv-storefront .tv-mailpoet-footer .mailpoet_paragraph { margin: 0 !important; padding: 0 !important; }
body.tv-storefront .tv-mailpoet-footer .mailpoet_paragraph:has(.mailpoet_text) { flex: 1 1 0; min-width: 0; }
body.tv-storefront .tv-mailpoet-footer .mailpoet_paragraph:has(.mailpoet_submit) { flex: 0 0 44px; position: relative; }
body.tv-storefront .tv-mailpoet-footer input.mailpoet_text {
 width: 100% !important; min-height: 44px; margin: 0 !important; padding: 10px 0 !important;
 border: 0 !important; border-radius: 0 !important; background: transparent !important;
 color: #fff !important; font-family: inherit !important; font-size: 19px !important;
 line-height: 1.5; box-shadow: none !important;
}
body.tv-storefront .tv-mailpoet-footer input.mailpoet_text::placeholder { color: #fff9 !important; opacity: 1; }
body.tv-storefront .tv-mailpoet-footer button.mailpoet_submit {
 display: flex; align-items: center; justify-content: center; width: 44px !important;
 min-height: 44px; padding: 0 !important; margin: 0 !important;
 border: 0 !important; border-radius: 0 !important; background: transparent !important;
 color: #fff !important; font-size: 14px !important; line-height: 1; box-shadow: none;
}
body.tv-storefront .tv-mailpoet-footer button.mailpoet_submit:hover { color: #d2e11e !important; }
body.tv-storefront .tv-mailpoet-footer .mailpoet_message { flex-basis: 100%; font-size: 13px; }
body.tv-storefront .tv-mailpoet-footer .mailpoet_validate_error { color: #ffbbc4; font-size: 12px; }
body.tv-storefront .tv-mailpoet-footer .mailpoet_form_loading { position: absolute; right: 0; top: 100%; }
@media(max-width:600px) { body.tv-storefront .tv-mailpoet-footer input.mailpoet_text { font-size: 17px !important; } }

body.tv-storefront .tv-mailpoet-footer > div.mailpoet_form { display: block; width: 100%; max-width: none; margin: 0; padding: 0; border: 0; background: transparent; }
body.tv-storefront .tv-mailpoet-footer form.mailpoet_form { width: 100%; max-width: none; }


@media (max-width: 600px) {
 body.tv-css-hire .tvh-hero-copy { text-align: center; }
 body.tv-css-hire .tvh-hero-copy > p { margin-inline: auto; }
 body.tv-css-hire .tvh-hero-copy > .tv-button { margin-inline: auto; }
 body.tv-css-hire .tvh-hero-copy > .tvh-hero-work { margin: 20px auto 0; justify-content: center; }
}

@media (max-width: 600px) {
 body.tv-css-hire .tvh-pricing-note { text-align: center !important; margin-inline: auto; }
}


/* The CF7 submit uses the same icon and spacing as other theme buttons. */
body.tv-css-hire .tvh-cf7-submit::before,
body.tv-css-hire .tvh-cf7-submit::after { display: none; }
body.tv-css-hire .tvh-quote-form .tvh-cf7-submit button.tv-button {
 display: flex; align-items: center; justify-content: center; gap: 20px;
 width: 100%; min-height: 48px; margin: 0; padding: 14px 23px !important;
 background: #7c3aed; color: #fff !important; border: 0; border-radius: 999px;
}
body.tv-css-hire .tvh-cf7-submit button.tv-button i { font-size: 14px; line-height: 1; }
body.tv-css-hire .tvh-cf7-submit button.tv-button:hover { background: #6d28d9; }


/* Compact homepage statistics on phones. */
@media (max-width: 700px) {
 body.tv-storefront.home .tv-statistics { gap: 22px; padding-block: 40px; }
 body.tv-storefront.home .tv-statistics > div { gap: 16px; padding-bottom: 20px; }
 body.tv-storefront.home .tv-statistics h2 { font-size: 22px !important; line-height: 1.25; margin: 0; letter-spacing: -.025em; }
 body.tv-storefront.home .tv-statistics strong { flex-shrink: 0; font-size: 42px !important; line-height: 1; letter-spacing: -.05em; }
}


/* Full-width category and sort controls on mobile. */
@media (max-width: 700px) {
 body.tv-storefront .tv-themes-filter-row { gap: 16px; align-items: stretch; }
 body.tv-storefront .tv-themes-filter-row > label:not(.tv-themes-sale) {
  flex: 0 0 100%; width: 100%; min-width: 0; align-items: stretch;
  justify-content: flex-start; gap: 7px; margin: 0;
 }
 body.tv-storefront .tv-themes-filter-row select {
  display: block; width: 100%; max-width: none; min-width: 0;
  min-height: 48px; margin: 0; font-size: 14px;
 }
 body.tv-storefront .tv-themes-filter-row label > span { text-align: left; }
}


@media (max-width: 700px) {
 body.tv-storefront .tv-themes-page .tv-themes-faq > div:first-child { text-align: center; justify-items: center; }
 body.tv-storefront .tv-themes-page .tv-themes-faq > div:first-child > :is(.tv-eyebrow, .tv-button) { justify-self: center; }
 body.tv-storefront .tv-themes-page .tv-themes-faq > div:first-child > p { text-align: center; }
}


@media (max-width: 700px) {
 body.tv-storefront .tv-sub-banner-star { display: block; right: 2%; top: 30%; }
}


/* Mobile product purchase action uses the shared purple/white button style. */
body.tv-storefront.single-product .tvp-mobile-buy > a {
 display: inline-flex; align-items: center; justify-content: center; gap: 20px;
 min-height: 48px; padding: 14px 23px !important; border: 0;
 border-radius: 999px; background: #7c3aed !important; color: #fff !important;
 font-size: 14px; font-weight: 500; line-height: 20px; text-decoration: none;
}
body.tv-storefront.single-product .tvp-mobile-buy > a:is(:hover, :focus) { background: #6d28d9 !important; color: #fff !important; }
body.tv-storefront.single-product .tvp-mobile-buy > a :is(span, i) { color: inherit !important; }
body.tv-storefront.single-product .tvp-mobile-buy > a i { font-size: 14px; line-height: 1; }


@media (max-width: 1100px) {
 body.tv-storefront.single-post .tv-sub-banner-star { display: none; }
}


/* Native editor buttons in articles use shared ThemeVisto CTA styling. */
body.tv-storefront.single-post .tva-content .wp-block-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
body.tv-storefront.single-post .tva-content .wp-block-button__link {
 display: inline-flex; align-items: center; justify-content: center; gap: 20px;
 min-height: 48px; padding: 14px 23px !important; border: 1px solid transparent;
 border-radius: 999px !important; background: #7c3aed; color: #fff !important;
 font-size: 14px; font-weight: 500; line-height: 20px; text-decoration: none !important;
}
body.tv-storefront.single-post .tva-content .wp-block-button__link:hover { background: #6d28d9; color: #fff !important; }
body.tv-storefront.single-post .tva-content .is-style-outline .wp-block-button__link { background: transparent; color: #6d28d9 !important; border: 1px solid #cdbce9; }
body.tv-storefront.single-post .tva-content .is-style-outline .wp-block-button__link:hover { background: #f2eefb; }
body.tv-storefront.single-post .tva-content .wp-block-button__link i { flex-shrink: 0; font-size: 14px; line-height: 1; color: inherit; }
@media(max-width:600px) {
 body.tv-storefront.single-post .tva-content .wp-block-buttons > .wp-block-button { width: 100%; }
 body.tv-storefront.single-post .tva-content .wp-block-button__link { width: 100%; }
}


/* Touch product previews: a legible pill action with the shared diagonal arrow. */
@media (hover: none), (max-width: 700px) {
 body.tv-storefront :is(.tv-catalog, .tv-themes-catalog) .tv-card-preview {
  inset: auto 12px 12px auto; display: inline-flex; flex-direction: row;
  align-items: center; justify-content: center; gap: 12px; min-height: 40px;
  padding: 10px 16px; border-radius: 999px; background: #7c3aed;
  color: #fff !important; font-size: 13px; line-height: 20px; font-weight: 500; opacity: 1;
 }
 body.tv-storefront :is(.tv-catalog, .tv-themes-catalog) .tv-card-preview-icon {
  order: 2; flex: 0 0 14px; width: 14px; height: 14px;
  background: transparent; color: #fff !important; border-radius: 0; font-size: 14px;
 }
 body.tv-storefront :is(.tv-catalog, .tv-themes-catalog) .tv-card-preview-icon i { font-size: 14px; line-height: 1; }
}


/* CF7 inserts paragraph wrappers: keep paired labels as actual grid items. */
body.tv-css-hire .tvh-quote-form .tvh-form-row > p { display: contents; }
body.tv-css-hire .tvh-quote-form .tvh-form-row > p > br,
body.tv-css-hire .tvh-quote-form > p > br { display: none; }
body.tv-css-hire .tvh-quote-form .tvh-form-row > p > label { min-width: 0; width: 100%; }
body.tv-css-hire .tvh-quote-form textarea { height: 150px; min-height: 150px; }
body.tv-css-hire .tvh-quote-form .wpcf7-acceptance { display: block; margin: 0 0 24px; }
body.tv-css-hire .tvh-quote-form .wpcf7-acceptance label { margin-bottom: 0; }
body.tv-css-hire .tvh-quote-form .tvh-cf7-submit > p { margin: 0; }


/* Slightly smaller reading typography on phones: legal documents and articles. */
@media (max-width: 700px) {
 body.tv-storefront :is(.tvl-content, .tva-content) { font-size: 15px; line-height: 1.8; }
 body.tv-storefront :is(.tvl-content, .tva-content) :is(p, li) { font-size: 15px; line-height: 1.8; }
 body.tv-storefront :is(.tvl-content, .tva-content) h2 { font-size: 25px; line-height: 1.25; }
 body.tv-storefront :is(.tvl-content, .tva-content) h3 { font-size: 21px; line-height: 1.3; }
 body.tv-storefront :is(.tvl-content, .tva-content) h4 { font-size: 18px; line-height: 1.35; }
 body.tv-storefront .tvl-content .tvl-introduction,
 body.tv-storefront .tva-content .tva-lead { font-size: 16px; line-height: 1.8; }
}


/* Avoid a fixed reading-progress line crossing article text on mobile. */
@media (max-width: 700px) {
 body.tv-storefront.single-post .tva-progress { display: none; }
}


/* A quieter preview action over product images on touch screens. */
@media (hover: none), (max-width: 700px) {
 body.tv-storefront :is(.tv-catalog, .tv-themes-catalog) .tv-card-preview {
  inset: auto 10px 10px auto; gap: 10px; min-height: 36px;
  padding: 7px 13px; background: #fff; color: #162a49 !important;
  border: 1px solid #e2ddef; border-radius: 10px;
  box-shadow: 0 3px 12px #07133b14; font-size: 12px; line-height: 20px;
 }
 body.tv-storefront :is(.tv-catalog, .tv-themes-catalog) .tv-card-preview-icon {
  color: #7c3aed !important; background: transparent; width: 12px; height: 12px; flex-basis: 12px;
 }
 body.tv-storefront :is(.tv-catalog, .tv-themes-catalog) .tv-card-preview-icon i { font-size: 12px; }
}


/* Keep product titles readable when cards narrow on tablets and phones. */
@media (max-width: 1200px) {
 body.tv-storefront :is(.tv-catalog, .tv-themes-catalog, .tv-empty-cart-products) .tv-product-info:has(.tv-card-actions) {
  display: flex; flex-direction: column; align-items: stretch; gap: 18px;
 }
 body.tv-storefront :is(.tv-catalog, .tv-themes-catalog, .tv-empty-cart-products) .tv-card-description { flex: none; width: 100%; }
 body.tv-storefront :is(.tv-catalog, .tv-themes-catalog, .tv-empty-cart-products) .tv-card-actions { width: 100%; margin-top: auto; justify-content: flex-start; }
 body.tv-storefront :is(.tv-catalog, .tv-themes-catalog, .tv-empty-cart-products) .tv-product h3 { word-break: normal; overflow-wrap: normal; }
}
@media (min-width: 601px) and (max-width: 1100px) {
 body.tv-storefront :is(.tv-catalog, .tv-themes-catalog, .tv-empty-cart-products) .tv-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
}
@media (max-width: 600px) {
 body.tv-storefront :is(.tv-catalog, .tv-themes-catalog, .tv-empty-cart-products) .tv-product-grid { grid-template-columns: minmax(0, 1fr); }
}


/* Footer legal links use the brand lime hover accent. */
body.tv-storefront .tv-footer-legal a { transition: color .2s ease; }
body.tv-storefront .tv-footer-legal a:is(:hover, :focus-visible) { color: #d2e11e !important; text-decoration: underline; text-underline-offset: 4px; }
