/* ==========================================================================
   Horizon, effect classes for Elementor
   --------------------------------------------------------------------------
   Layout, colors, fonts, spacing and hover colors are set in Elementor itself.
   This file only adds the effects Elementor (free) cannot do on its own.
   Each effect is switched on by a CSS class in Elementor > Advanced > CSS Classes.
   Colors follow your Elementor Global Colors automatically.
   ========================================================================== */

body {
	--hz-primary: var(--e-global-color-primary, #F97316);
	--hz-secondary: var(--e-global-color-secondary, #EA580C);
	--hz-bg: var(--e-global-color-hzbg, #1C1917);
	--hz-surface: var(--e-global-color-hzsurface, #292524);
	--hz-border: var(--e-global-color-hzsurface2, #3F3937);
	--hz-white: var(--e-global-color-hzwhite, #FAFAF9);
	--hz-rose: var(--e-global-color-hzrose, #F43F5E);
	--hz-whatsapp: var(--e-global-color-hzwhatsapp, #25D366);
	--hz-muted: var(--e-global-color-hzmuted, #A8A29E);
	--hz-text: var(--e-global-color-text, #D6D3D1);
	--hz-amber: var(--e-global-color-accent, #FB923C);
	--hz-grad: linear-gradient(135deg, var(--hz-primary), var(--hz-rose));
	--hz-glow: color-mix(in srgb, var(--hz-primary) 35%, transparent);
}

html { scroll-behavior: smooth; }

/* Small resets so Elementor widgets look the same on every theme setup */
.horizon .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.horizon .elementor-icon-box-title { margin-block-start: 0; }
body.horizon { overflow-x: hidden; }
.horizon #content, .horizon .site-main { scroll-margin-top: 96px; }
.horizon [id] { scroll-margin-top: 80px; }

/* --------------------------------------------------------------------------
   Header (Templates > Saved Templates > Site Header)
   Sits over the top of the page and scrolls away with it, like the template.
   -------------------------------------------------------------------------- */
.hz-site-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	background: transparent;
}
.admin-bar .hz-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .hz-site-header { top: 46px; } }

/* Inside the Elementor editor the header stays in place so it is easy to edit */
.elementor-editor-active .hz-site-header,
.elementor-editor-preview .hz-site-header { position: relative !important; top: 0 !important; }

/* Menu link underline */
.hz-nav-links .elementor-icon-list-item > a,
.hz-nav-links .elementor-icon-list-item > .elementor-icon-list-text { position: relative; }
.hz-nav-links .elementor-icon-list-text { position: relative; }
.hz-nav-links .elementor-icon-list-text::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -8px;
	width: 0;
	height: 2px;
	background: var(--hz-primary);
	transition: width .3s;
}
.hz-nav-links .elementor-icon-list-item:hover .elementor-icon-list-text::after,
.hz-nav-links .elementor-icon-list-item.is-active .elementor-icon-list-text::after { width: 100%; }
.hz-nav-links .elementor-icon-list-item.is-active .elementor-icon-list-text { color: var(--hz-primary); }
.hz-nav-links .elementor-icon-list-icon:empty { display: none; }

/* Mobile menu: the container with class "hz-nav" becomes a full-screen panel,
   opened by the Icon widget with class "hz-nav-toggle" */
@media (max-width: 1024px) {
	body:not(.elementor-editor-active) .hz-nav {
		position: fixed !important;
		inset: 0;
		z-index: 2000;
		width: 100% !important;
		max-width: none !important;
		height: 100vh;
		height: 100dvh;
		margin: 0 !important;
		padding: 110px 32px 32px !important;
		flex-direction: column !important;
		justify-content: flex-start !important;
		align-items: stretch !important;
		gap: 24px !important;
		background: var(--hz-bg);
		overflow-y: auto;
		visibility: hidden;
		transform: translateX(-100%);
		transition: transform .3s, visibility 0s .3s;
	}
	body.hz-nav-open:not(.elementor-editor-active) .hz-nav {
		visibility: visible;
		transform: none;
		transition: transform .3s;
	}
	body.hz-nav-open .hz-site-header {
		-webkit-backdrop-filter: none !important;
		backdrop-filter: none !important;
	}
	body.hz-nav-open { overflow: hidden; }
	body:not(.elementor-editor-active) .hz-nav > .elementor-element { flex: 0 0 auto !important; width: 100% !important; }
	.hz-nav .hz-nav-links .elementor-icon-list-items {
		flex-direction: column;
		align-items: center;
		gap: 24px;
	}
	.hz-nav .hz-nav-links .elementor-icon-list-item { margin: 0 !important; justify-content: center; }
	.hz-nav .hz-nav-links .elementor-icon-list-item::after { display: none; }
	.hz-nav .hz-nav-links .elementor-icon-list-text { font-size: 20px; }
	.hz-nav .elementor-widget-button,
	.hz-nav .elementor-widget-button .elementor-button { width: 100%; }
	.hz-nav .elementor-widget-button { padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .1); }
	.elementor-editor-active .hz-nav { flex-wrap: wrap !important; }
}
.hz-nav-toggle { position: relative; z-index: 2001; }
.hz-nav-toggle .elementor-icon { position: relative; cursor: pointer; }
body.hz-nav-open .hz-nav-toggle .elementor-icon > * { opacity: 0; }
body.hz-nav-open .hz-nav-toggle .elementor-icon::after {
	content: '\00d7';
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.7em;
	line-height: 1;
	color: var(--hz-white);
}

/* --------------------------------------------------------------------------
   Typewriter, write {word one|word two|word three} inside any Heading
   -------------------------------------------------------------------------- */
.hz-typed { color: var(--hz-primary); }
.hz-cursor {
	color: var(--hz-primary);
	display: inline-block;
	margin-left: 2px;
	font-weight: 400;
	animation: hz-blink 1s step-end infinite;
}
@keyframes hz-blink { 50% { opacity: 0; } }

/* --------------------------------------------------------------------------
   Image Carousel effects
   hz-marquee    : smooth non-stop scrolling (set Autoplay ON, Autoplay Speed 1)
   hz-logo-cards : logos shown on rounded cards
   hz-posters    : movie posters (portrait, rounded, zoom on hover)
   -------------------------------------------------------------------------- */
.hz-marquee .swiper-wrapper { transition-timing-function: linear !important; }
/* Bright tiles, so every logo shows in full colour; the border turns into the orange-to-rose gradient on hover */
.hz-logo-cards .swiper,
.hz-logo-cards .elementor-image-carousel-wrapper { padding: 24px 0 32px; }
.hz-logo-cards { -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.hz-logo-cards .swiper-slide-inner {
	margin: 0;
	padding: 20px 26px;
	border: 2px solid transparent;
	border-radius: 22px;
	background: linear-gradient(160deg, #ffffff, #f1ece8) padding-box, linear-gradient(160deg, #ffffff, #f1ece8) border-box;
	box-shadow: 0 14px 30px rgba(0, 0, 0, .45);
	transition: transform .4s cubic-bezier(.34, 1.56, .64, 1), box-shadow .3s;
}
.hz-logo-cards .swiper-slide-inner:hover {
	background: linear-gradient(160deg, #ffffff, #f1ece8) padding-box, var(--hz-grad) border-box;
	box-shadow: 0 20px 40px color-mix(in srgb, var(--hz-primary) 35%, transparent);
	transform: translateY(-8px) scale(1.04);
}
.hz-logo-cards .swiper-slide-image {
	display: block;
	width: 100%;
	height: 80px;
	object-fit: contain;
}
@media (max-width: 767px) {
	.hz-logo-cards .swiper-slide-inner { padding: 14px 16px; border-radius: 18px; }
	.hz-logo-cards .swiper-slide-image { height: 60px; }
}
.hz-posters .swiper,
.hz-posters .elementor-image-carousel-wrapper { padding: 20px 0; }
.hz-posters .swiper-slide-inner { margin: 0; }
.hz-posters .swiper-slide-image {
	display: block;
	width: 100%;
	aspect-ratio: 7 / 10;
	object-fit: cover;
	border-radius: 12px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, .5);
	transition: transform .3s, box-shadow .3s;
}
.hz-posters .swiper-slide:hover .swiper-slide-image {
	transform: scale(1.05);
	box-shadow: 0 8px 24px color-mix(in srgb, var(--hz-primary) 30%, transparent);
}

/* --------------------------------------------------------------------------
   Horizontal scroll row (testimonials)
   hz-hscroll on a Container; Icon widgets with hz-hscroll-prev / hz-hscroll-next
   placed in the same section become arrows.
   -------------------------------------------------------------------------- */
.hz-hscroll {
	overflow-x: auto !important;
	overflow-y: visible;
	scroll-snap-type: x proximity;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-ms-overflow-style: none;
	cursor: grab;
}
.hz-hscroll::-webkit-scrollbar { display: none; }
.hz-hscroll.is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; }
.hz-hscroll.is-dragging * { user-select: none; pointer-events: none; }
.hz-hscroll > .e-con, .hz-hscroll > .e-con-inner > .e-con { flex-shrink: 0; scroll-snap-align: start; }
.elementor-editor-active .hz-hscroll { scrollbar-width: thin; cursor: auto; }
.elementor-editor-active .hz-hscroll::-webkit-scrollbar { display: block; height: 8px; }
.hz-hscroll-prev .elementor-icon, .hz-hscroll-next .elementor-icon { cursor: pointer; }
/* Arrows on the left and right edge of the row, like the template */
.e-con.hz-reviews { position: relative; }
.e-con.hz-reviews > .hz-hscroll { flex: 1 1 auto; min-width: 0; }
.e-con.hz-reviews > .hz-side-arrow { position: absolute; top: 50%; z-index: 3; margin: 0 !important; transform: translateY(-50%); }
.e-con.hz-reviews > .hz-hscroll-prev { left: -8px; }
.e-con.hz-reviews > .hz-hscroll-next { right: -8px; }
.hz-side-arrow .elementor-icon { background: var(--hz-bg); }

/* --------------------------------------------------------------------------
   Card decorations (add to a Container)
   -------------------------------------------------------------------------- */
.hz-card-topline, .hz-card-sideline, .hz-quote-mark, .hz-underline, .hz-orbs { position: relative; }

.hz-card-topline::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 4px;
	background: linear-gradient(90deg, var(--hz-primary), var(--hz-rose));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .4s ease;
	pointer-events: none;
}
.hz-card-topline:hover::after { transform: scaleX(1); }

.hz-card-sideline::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 4px;
	height: 100%;
	background: var(--hz-primary);
	opacity: 0;
	transition: opacity .3s;
	pointer-events: none;
}
.hz-card-sideline:hover::after { opacity: 1; }

.hz-icon-tilt .elementor-icon { transition: transform .4s ease, background-color .4s, color .4s, fill .4s, box-shadow .4s; }
.hz-icon-tilt:hover .elementor-icon {
	transform: scale(1.1) rotate(10deg);
	box-shadow: 0 4px 12px color-mix(in srgb, var(--hz-primary) 30%, transparent);
}

.hz-quote-mark::after {
	content: '\201D';
	position: absolute;
	top: 10px;
	right: 20px;
	font-size: 120px;
	line-height: 1;
	font-family: Georgia, serif;
	color: color-mix(in srgb, var(--hz-primary) 12%, transparent);
	pointer-events: none;
}

.hz-underline::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 100px;
	height: 4px;
	transform: translateX(-50%);
	background: var(--hz-primary);
	border-radius: 2px;
}

/* Pricing grid: hovering one card dims the others */
.hz-dim-siblings > .e-con,
.hz-dim-siblings > .e-con-inner > .e-con {
	transition: background var(--background-transition, .3s), border var(--border-transition, .3s), box-shadow var(--border-transition, .3s), transform var(--e-con-transform-transition-duration, .4s), opacity .3s;
}
.hz-dim-siblings:hover > .e-con:not(:hover):not(.hz-featured),
.hz-dim-siblings:hover > .e-con-inner > .e-con:not(:hover):not(.hz-featured) { opacity: .7; }

/* FAQ accordion nudge */
.hz-faq .e-n-accordion-item-title { transition: transform .3s, border-color .3s, color .3s; }
.hz-faq .e-n-accordion-item-title:hover { transform: translateX(5px); }

/* Glass card (policy pages) */
.hz-glass {
	background-color: color-mix(in srgb, var(--hz-surface) 60%, transparent);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

/* Soft glow behind policy / contact pages */
body.horizon:has(.hz-glass) {
	background-image:
		radial-gradient(circle at 15% 50%, color-mix(in srgb, var(--hz-primary) 8%, transparent), transparent 25%),
		radial-gradient(circle at 85% 30%, color-mix(in srgb, var(--hz-secondary) 8%, transparent), transparent 25%);
	background-attachment: fixed;
}

/* Long text (Text Editor with class hz-rich) */
.hz-rich h2, .hz-rich h3, .hz-rich h4 {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 48px 0 16px;
	color: var(--hz-primary);
	font-family: var(--e-global-typography-primary-font-family, 'Montserrat'), sans-serif;
	font-weight: 700;
	font-size: 24px;
	line-height: 1.4;
}
.hz-rich h2::before, .hz-rich h3::before, .hz-rich h4::before {
	content: '';
	flex: none;
	width: 8px;
	height: 24px;
	border-radius: 4px;
	background: var(--hz-primary);
}
.hz-rich > :first-child, .hz-rich .elementor-widget-container > :first-child { margin-top: 0; }
.hz-rich p { margin: 0 0 16px; }
.hz-rich ul, .hz-rich ol {
	list-style: none;
	margin: 0 0 24px;
	padding: 24px;
	background: rgba(0, 0, 0, .2);
	border: 1px solid var(--hz-border);
	border-radius: 12px;
}
.hz-rich li { position: relative; padding-left: 30px; margin-bottom: 12px; line-height: 1.6; }
.hz-rich li:last-child { margin-bottom: 0; }
.hz-rich li::before {
	content: '\2022';
	position: absolute;
	left: 0;
	top: -2px;
	font-size: 24px;
	line-height: 1;
	color: var(--hz-primary);
}
.hz-rich strong { color: var(--hz-white); }
.hz-rich a { color: var(--hz-primary); }

/* Footer links: one per line on phones, like the template */
@media (max-width: 767px) {
	.hz-footer-links .elementor-icon-list-items { flex-direction: column; align-items: center; gap: 14px; }
	.hz-footer-links .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
	.hz-footer-links .elementor-icon-list-item::after { display: none !important; }
}

/* Back link arrow */
.hz-back-link .elementor-button-icon { transition: transform .3s; }
.hz-back-link .elementor-button:hover .elementor-button-icon { transform: translateX(-4px); }

/* --------------------------------------------------------------------------
   Text effects (add to a Heading)
   -------------------------------------------------------------------------- */
.hz-shine-text .elementor-heading-title {
	background: linear-gradient(to right, currentColor 20%, var(--hz-primary) 50%, currentColor 80%);
	background-size: 200% auto;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	animation: hz-shine 4s linear infinite;
}
@keyframes hz-shine { to { background-position: 200% center; } }

.hz-gradient-text .elementor-heading-title {
	background: linear-gradient(to right, currentColor, color-mix(in srgb, currentColor 75%, #000));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

/* --------------------------------------------------------------------------
   Floating glow orbs behind a section (add hz-orbs to a Container)
   -------------------------------------------------------------------------- */
.hz-orbs { overflow: hidden; isolation: isolate; }
.hz-orbs::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background:
		radial-gradient(circle 300px at 8% 15%, var(--hz-primary), transparent 70%),
		radial-gradient(circle 300px at 92% 88%, var(--hz-rose), transparent 70%);
	filter: blur(60px);
	opacity: .3;
	animation: hz-orbs 15s cubic-bezier(.4, 0, .2, 1) infinite alternate;
}
.hz-orbs > * { position: relative; z-index: 1; }
@keyframes hz-orbs {
	to { transform: translate(5%, 4%) scale(1.15); }
}

/* --------------------------------------------------------------------------
   Floating buttons (Icon widgets in the footer)
   -------------------------------------------------------------------------- */
body:not(.elementor-editor-active) .hz-whatsapp-float {
	position: fixed !important;
	left: 30px;
	bottom: 30px;
	z-index: 1000;
	width: auto !important;
	margin: 0 !important;
}
.hz-whatsapp-float .elementor-icon {
	animation: hz-pulse-green 2s infinite;
	box-shadow: 2px 2px 3px rgba(0, 0, 0, .4);
}
.hz-whatsapp-float .elementor-icon:hover { animation: none; transform: scale(1.1); }
@keyframes hz-pulse-green {
	0% { transform: scale(1); box-shadow: 0 0 0 0 color-mix(in srgb, var(--hz-whatsapp) 70%, transparent); }
	70% { transform: scale(1.1); box-shadow: 0 0 0 15px transparent; }
	100% { transform: scale(1); box-shadow: 0 0 0 0 transparent; }
}

body:not(.elementor-editor-active) .hz-scroll-top {
	position: fixed !important;
	right: 30px;
	bottom: 30px;
	z-index: 1000;
	width: auto !important;
	margin: 0 !important;
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: opacity .3s, transform .3s, visibility 0s .3s;
}
body:not(.elementor-editor-active) .hz-scroll-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition: opacity .3s, transform .3s;
}
.hz-scroll-top .elementor-icon { box-shadow: 0 4px 12px rgba(0, 0, 0, .3); }
.hz-scroll-top .elementor-icon:hover { transform: scale(1.1); }
@media (max-width: 767px) {
	body:not(.elementor-editor-active) .hz-whatsapp-float { left: 20px; bottom: 20px; }
	body:not(.elementor-editor-active) .hz-scroll-top { right: 20px; bottom: 20px; }
}

/* Hidden page title for Google (Heading with class hz-sr-only) */
.hz-sr-only { position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* --------------------------------------------------------------------------
   Buttons like the template
   hz-btn-outline : white text with an orange-to-rose gradient border
   hz-btn-large   : big buttons share one width
   -------------------------------------------------------------------------- */
.hz-btn-outline .elementor-button { position: relative; border: 0; }
.hz-btn-outline .elementor-button::before {
	content: '';
	position: absolute;
	inset: 0;
	padding: 2px;
	border-radius: inherit;
	background: var(--hz-grad);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
	pointer-events: none;
}
.hz-btn-outline .elementor-button:hover { box-shadow: 0 10px 28px color-mix(in srgb, var(--hz-rose) 35%, transparent); }
.hz-btn-large .elementor-button { min-width: 220px; }
.elementor-widget-button:not(.hz-btn-outline) .elementor-button { box-shadow: 0 6px 20px color-mix(in srgb, var(--hz-primary) 35%, transparent); }

/* --------------------------------------------------------------------------
   How it works: gradient icon tile, outlined number, top line on hover
   -------------------------------------------------------------------------- */
.e-con.hz-step-card { position: relative; overflow: hidden; transition: transform .4s cubic-bezier(.175, .885, .32, 1.275), box-shadow .4s, border-color .4s; }
.e-con.hz-step-card:hover { transform: translateY(-12px); box-shadow: 0 20px 40px rgba(0, 0, 0, .4); border-color: var(--hz-primary) !important; }
.e-con.hz-step-card::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 4px;
	background: var(--hz-grad);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .4s ease;
	pointer-events: none;
}
.e-con.hz-step-card:hover::after { transform: scaleX(1); }
.hz-step-mark { position: absolute !important; top: 18px; right: 24px; width: auto !important; margin: 0 !important; }
.hz-step-mark .elementor-heading-title { color: transparent !important; -webkit-text-stroke: 1.5px color-mix(in srgb, var(--hz-primary) 35%, transparent); transition: -webkit-text-stroke-color .3s; }
.hz-step-card:hover .hz-step-mark .elementor-heading-title { -webkit-text-stroke-color: color-mix(in srgb, var(--hz-primary) 80%, transparent); }
.hz-step-icon .elementor-icon { position: relative; border-radius: 24px; background: var(--hz-grad) !important; box-shadow: 0 14px 30px var(--hz-glow), inset 0 1px 0 rgba(255, 255, 255, .35); transition: transform .4s cubic-bezier(.34, 1.56, .64, 1); }
.hz-step-card:hover .hz-step-icon .elementor-icon { transform: translateY(-4px) rotate(-6deg); }

/* --------------------------------------------------------------------------
   Pricing: 1-4 devices switch (Tabs widget with class hz-price-switch)
   -------------------------------------------------------------------------- */
.hz-price-switch .e-n-tabs-heading {
	align-self: center;
	display: inline-grid !important;
	grid-auto-flow: column;
	grid-auto-columns: 1fr;
	gap: 0 !important;
	width: auto;
	padding: 6px;
	border-radius: 999px;
	background: var(--hz-bg);
	border: 1px solid var(--hz-border);
	box-shadow: inset 0 2px 8px rgba(0, 0, 0, .35);
}
.hz-price-switch .e-n-tab-title { justify-content: center; white-space: nowrap; transition: color .3s, box-shadow .3s; }
.hz-price-switch .e-n-tab-title[aria-selected="true"] { box-shadow: 0 6px 20px color-mix(in srgb, var(--hz-primary) 45%, transparent); }
.hz-switch-note { margin-top: 12px; }
@media (max-width: 767px) {
	.hz-price-switch .e-n-tabs-heading { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; border-radius: 26px; }
}

/* --------------------------------------------------------------------------
   Setup guide (Tabs widget with class hz-setup-tabs)
   -------------------------------------------------------------------------- */
.e-con.hz-setup-bg { background: radial-gradient(circle at 10% 20%, color-mix(in srgb, var(--hz-primary) 8%, transparent), transparent 35%), radial-gradient(circle at 90% 80%, color-mix(in srgb, var(--hz-rose) 6%, transparent), transparent 35%), var(--hz-bg); }
.hz-setup-tabs .e-n-tabs-heading { gap: 10px; }
.hz-setup-tabs .e-n-tab-title {
	justify-content: flex-start;
	text-align: left;
	border: 1px solid var(--hz-border) !important;
	border-radius: 18px;
	background: var(--hz-surface) !important;
	transition: border-color .3s, background .3s, box-shadow .3s, transform .3s;
}
.hz-setup-tabs .e-n-tab-title:hover { border-color: color-mix(in srgb, var(--hz-primary) 50%, transparent) !important; transform: translateX(4px); }
.hz-setup-tabs .e-n-tab-title[aria-selected="true"] {
	background: linear-gradient(135deg, color-mix(in srgb, var(--hz-primary) 18%, transparent), color-mix(in srgb, var(--hz-rose) 8%, transparent)), var(--hz-surface) !important;
	border-color: var(--hz-primary) !important;
	box-shadow: 0 12px 30px color-mix(in srgb, var(--hz-primary) 20%, transparent);
	transform: none;
}
.hz-setup-tabs .e-n-tab-title-text { display: flex; align-items: center; gap: 14px; }
.hz-device-icon { flex-shrink: 0; display: block; width: 48px; height: 48px; padding: 2px; border-radius: 14px; background: var(--hz-border); transition: background .3s; }
.hz-device-icon img { display: block; width: 100%; height: 100%; object-fit: contain; border-radius: 12px; background: #000; }
.hz-setup-tabs .e-n-tab-title[aria-selected="true"] .hz-device-icon { background: var(--hz-grad); }
.hz-device-text { display: flex; flex-direction: column; min-width: 0; line-height: 1.35; }
.hz-device-text strong { font-family: var(--e-global-typography-primary-font-family, 'Montserrat'), sans-serif; font-size: 15px; font-weight: 700; color: var(--hz-white); }
.hz-device-text small { color: var(--hz-muted); font-size: 13px; }
.hz-setup-tabs .e-n-tabs-content > .e-con.e-active { animation: hz-panel-in .5s cubic-bezier(.22, 1, .36, 1); }
@keyframes hz-panel-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.e-con.hz-setup-panel { box-shadow: 0 30px 60px rgba(0, 0, 0, .35); }
.hz-device-logo-lg img { display: block; width: 68px; height: 68px; padding: 2px; border-radius: 20px; object-fit: contain; background: #000; border: 2px solid transparent; background-clip: padding-box; box-shadow: 0 0 0 2px var(--hz-primary), 0 12px 30px color-mix(in srgb, var(--hz-primary) 30%, transparent); }
.hz-setup-head p, .hz-setup-text p, .hz-setup-note p, .hz-setup-apps p, .hz-event-season p { margin: 0; }
.e-con.hz-setup-step { position: relative; }
.e-con.hz-setup-step:last-of-type { padding-bottom: 0 !important; }
.e-con.hz-setup-step:has(+ .e-con.hz-setup-step)::after {
	content: '';
	position: absolute;
	left: 21px;
	top: 52px;
	bottom: 8px;
	width: 2px;
	border-radius: 2px;
	background: linear-gradient(var(--hz-primary), color-mix(in srgb, var(--hz-rose) 10%, transparent));
}
.hz-step-num .elementor-heading-title { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--hz-grad); font-size: 17px; font-weight: 800; box-shadow: 0 8px 20px color-mix(in srgb, var(--hz-primary) 35%, transparent); }
.hz-setup-text strong { color: var(--hz-text); }
.hz-setup-text a { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.hz-setup-note { margin-top: 24px; padding: 14px 18px; border-radius: 16px; background: rgba(252, 211, 77, .08); }
.hz-setup-note, .hz-setup-note p { color: #E9CF7A !important; }
.hz-setup-apps p { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--hz-border); }
.hz-apps-label { margin-right: 6px; color: var(--hz-muted); font-size: 14px; font-weight: 600; }
.hz-app-chip { padding: 7px 16px; border-radius: 999px; background: var(--hz-border); color: var(--hz-white); font-size: 14px; font-weight: 500; }
@media (max-width: 1024px) {
	.hz-setup-tabs .e-n-tabs-heading { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -24px; padding: 4px 24px 8px; }
	.hz-setup-tabs .e-n-tabs-heading::-webkit-scrollbar { display: none; }
	.hz-setup-tabs .e-n-tab-title { flex: 0 0 auto; width: auto; }
	.hz-setup-tabs .e-n-tab-title:hover { transform: none; }
	.hz-device-text small { display: none; }
}
@media (max-width: 767px) {
	.hz-setup-tabs .e-n-tabs-heading { margin: 0 -16px; padding: 4px 16px 8px; }
	.hz-device-icon { width: 40px; height: 40px; border-radius: 12px; }
	.hz-device-icon img { border-radius: 10px; }
	.hz-device-logo-lg img { width: 56px; height: 56px; border-radius: 16px; }
	.hz-step-num .elementor-heading-title { width: 38px; height: 38px; font-size: 15px; }
	.e-con.hz-setup-step:has(+ .e-con.hz-setup-step)::after { left: 18px; top: 46px; }
}

/* Help box ("Stuck on a step?") */
.e-con.hz-help { position: relative; overflow: hidden; border: 1px solid color-mix(in srgb, var(--hz-primary) 35%, transparent); background: radial-gradient(circle at 0% 50%, color-mix(in srgb, var(--hz-primary) 22%, transparent), transparent 55%), var(--hz-surface); }
.hz-help p { margin: 0; }
@media (max-width: 767px) {
	.hz-help-buttons .elementor-widget-button, .hz-help-buttons .elementor-button { width: 100%; }
}

/* Troubleshooting cards: a short gradient bar above the title */
.e-con.hz-trouble-item { transition: border-color .3s, transform .3s; }
.e-con.hz-trouble-item::after { content: ''; order: -1; flex: none; width: 32px; height: 4px; margin-bottom: 12px; border-radius: 4px; background: var(--hz-grad); }
.e-con.hz-trouble-item:hover { border-color: color-mix(in srgb, var(--hz-primary) 50%, transparent) !important; transform: translateY(-4px); }
.hz-trouble-item p { margin: 0; }

/* --------------------------------------------------------------------------
   Weekly schedule: day picker + league cards (each card: CSS classes hz-day-1 ... hz-day-7)
   -------------------------------------------------------------------------- */
.hz-picker { position: relative; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); max-width: 640px; margin: 0 auto 48px; padding: 6px; border-radius: 999px; background: var(--hz-bg); border: 1px solid var(--hz-border); box-shadow: inset 0 2px 8px rgba(0, 0, 0, .35); }
.hz-picker-pill { position: absolute; top: 0; left: 0; border-radius: 999px; background: var(--hz-grad); box-shadow: 0 6px 20px color-mix(in srgb, var(--hz-primary) 45%, transparent); transition: transform .5s cubic-bezier(.34, 1.56, .64, 1), width .4s ease; }
.hz-week .hz-pick { position: relative; z-index: 1; padding: 12px 4px; border: 0; border-radius: 999px; background: none; color: var(--hz-muted); font-family: var(--e-global-typography-primary-font-family, 'Montserrat'), sans-serif; font-size: 15px; font-weight: 700; line-height: 1.2; cursor: pointer; transition: color .3s; }
.hz-week .hz-pick:hover, .hz-week .hz-pick:focus { background: none; color: var(--hz-white); }
.hz-week .hz-pick.is-active { color: #fff; }
.hz-week .hz-pick.is-today::after { content: ''; position: absolute; left: 50%; bottom: 5px; width: 4px; height: 4px; border-radius: 50%; background: var(--hz-amber); transform: translateX(-50%); }
.hz-week .hz-pick.is-today.is-active::after { background: #fff; }
.hz-week-head { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; margin-bottom: 24px; padding-bottom: 12px; border-bottom: 1px solid var(--hz-border); }
.hz-week-day { margin: 0; color: var(--hz-white); font-family: var(--e-global-typography-primary-font-family, 'Montserrat'), sans-serif; font-size: 28px; font-weight: 700; line-height: 1.3; }
.hz-week-count { color: var(--hz-amber); font-size: 15px; font-weight: 600; }
.e-con.hz-event { --cat: var(--hz-primary); position: relative; overflow: hidden; transition: transform .3s, border-color .3s, box-shadow .3s; }
.e-con.hz-event-us { --cat: var(--hz-amber); }
.e-con.hz-event-motor { --cat: var(--hz-rose); }
.e-con.hz-event-fight { --cat: #E11D48; }
.e-con.hz-event::after { content: ''; position: absolute; top: -60px; right: -60px; width: 160px; height: 160px; border-radius: 50%; background: var(--cat); opacity: .12; filter: blur(40px); pointer-events: none; }
.e-con.hz-event:hover { transform: translateY(-4px); border-color: var(--cat) !important; box-shadow: 0 18px 40px rgba(0, 0, 0, .35); }
body:not(.elementor-editor-active) .e-con.hz-event.is-hidden { display: none; }
.e-con.hz-event.is-entering { animation: hz-event-in .5s cubic-bezier(.22, 1, .36, 1) var(--enter-delay, 0s) both; }
@keyframes hz-event-in { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: none; } }
.hz-event-logo img { display: block; width: 56px; height: 56px; padding: 9px; border-radius: 16px; object-fit: contain; background: #fff; box-shadow: 0 8px 20px rgba(0, 0, 0, .3); }
.hz-event-cat .elementor-heading-title { padding: 4px 10px; border-radius: 999px; background: rgba(255, 255, 255, .06); font-size: 12px; font-weight: 600; white-space: nowrap; }
.hz-event .hz-event-label .elementor-heading-title { color: var(--cat); }
.e-con.hz-event > .hz-event-season { margin-top: auto; padding-top: 12px; }
@media (max-width: 767px) {
	.hz-picker { margin-bottom: 32px; padding: 4px; }
	.hz-week .hz-pick { padding: 10px 0; font-size: 13px; }
	.hz-week-day { font-size: 22px; }
	.hz-event-logo img { width: 46px; height: 46px; padding: 7px; border-radius: 13px; }
}

/* --------------------------------------------------------------------------
   Find your channels (homepage) and the Channel List page
   -------------------------------------------------------------------------- */
.e-con.hz-channels-inner { position: relative; border: 1px solid color-mix(in srgb, var(--hz-primary) 30%, transparent); background: radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--hz-primary) 22%, transparent), transparent 60%), linear-gradient(160deg, var(--hz-surface), #1f1b19); box-shadow: 0 30px 70px rgba(0, 0, 0, .4); }
.hz-search-form { position: relative; display: flex; align-items: center; max-width: 640px; margin: 0 auto 32px; padding: 6px; border-radius: 999px; background: var(--hz-bg); border: 1px solid var(--hz-border); transition: border-color .3s, box-shadow .3s; }
.hz-search-form:focus-within { border-color: var(--hz-primary); box-shadow: 0 0 0 4px color-mix(in srgb, var(--hz-primary) 15%, transparent); }
.hz-search-form > svg { flex-shrink: 0; margin: 0 12px 0 18px; color: var(--hz-primary); }
.hz-search-form input { flex: 1; min-width: 0; height: 48px; margin: 0; padding: 0; border: 0 !important; background: none !important; box-shadow: none !important; color: var(--hz-white); font-family: inherit; font-size: 16px; outline: none; }
.hz-search-form input::placeholder { color: var(--hz-muted); }
.hz-search-form input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
.hz-search-form button.hz-search-btn, .hz-channels-inner button.hz-search-btn:hover, .hz-channels-inner button.hz-search-btn:focus { padding: 12px 28px; border: 0; border-radius: 999px; background: var(--hz-grad); color: #fff; font-family: var(--e-global-typography-primary-font-family, 'Montserrat'), sans-serif; font-size: 16px; font-weight: 600; cursor: pointer; box-shadow: 0 6px 20px color-mix(in srgb, var(--hz-primary) 35%, transparent); }
.hz-countries { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.elementor-widget-text-editor a.hz-country { display: inline-flex; align-items: center; gap: 8px; padding: 6px 16px 6px 6px; border-radius: 999px; background: var(--hz-bg); border: 1px solid var(--hz-border); color: var(--hz-text); font-size: 14px; font-weight: 500; text-decoration: none; transition: all .3s; }
.elementor-widget-text-editor a.hz-country span { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: color-mix(in srgb, var(--hz-primary) 15%, transparent); color: var(--hz-amber); font-family: var(--e-global-typography-primary-font-family, 'Montserrat'), sans-serif; font-size: 11px; font-weight: 800; }
.elementor-widget-text-editor a.hz-country:hover { border-color: var(--hz-primary); color: var(--hz-white); transform: translateY(-2px); }
.elementor-widget-text-editor a.hz-country.hz-country-all { padding: 6px 18px; background: var(--hz-grad); border-color: transparent; color: #fff; font-weight: 600; }
.elementor-widget-text-editor a.hz-country.hz-country-all:hover { color: #fff; box-shadow: 0 8px 20px color-mix(in srgb, var(--hz-primary) 40%, transparent); }
@media (max-width: 767px) {
	.hz-search-form { flex-wrap: wrap; border-radius: 26px; }
	.hz-search-form input { width: calc(100% - 60px); }
	.hz-search-form button.hz-search-btn { width: 100%; margin-top: 6px; }
}

.e-con.hz-channel-box { background: color-mix(in srgb, var(--hz-surface) 60%, transparent); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .5); }
.hz-cl-bar { display: flex; gap: 12px; margin-bottom: 24px; }
.hz-channel-app .hz-channel-search { position: relative; flex: 1; display: flex; align-items: center; }
.hz-channel-app .hz-channel-search > svg { position: absolute; left: 20px; color: var(--hz-primary); pointer-events: none; }
.hz-channel-app .hz-channel-search input { width: 100%; height: 58px; margin: 0; padding: 0 56px 0 52px; border-radius: 999px; border: 1px solid var(--hz-border); background: var(--hz-bg); color: var(--hz-white); font-family: inherit; font-size: 16px; outline: none; transition: border-color .3s, box-shadow .3s; }
.hz-channel-app .hz-channel-search input::placeholder { color: var(--hz-muted); }
.hz-channel-app .hz-channel-search input:focus { border-color: var(--hz-primary); box-shadow: 0 0 0 4px color-mix(in srgb, var(--hz-primary) 15%, transparent); }
.hz-channel-app .hz-channel-search input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
.hz-channel-app button.hz-channel-clear { position: absolute; right: 10px; display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 0; border: 0; border-radius: 50%; background: var(--hz-border); color: var(--hz-white); font-size: 22px; line-height: 1; cursor: pointer; }
.hz-channel-app button.hz-channel-clear[hidden] { display: none; }
.hz-channel-app button.hz-channel-clear:hover { background: var(--hz-grad); }
.hz-channel-select-wrap { display: none; position: relative; }
.hz-channel-select-wrap::after { content: ''; position: absolute; right: 22px; top: 50%; width: 9px; height: 9px; border-right: 2px solid var(--hz-primary); border-bottom: 2px solid var(--hz-primary); transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.hz-channel-select { width: 100%; height: 54px; padding: 0 48px 0 20px; border-radius: 999px; border: 1px solid var(--hz-border); background: var(--hz-bg); color: var(--hz-white); font-family: inherit; font-size: 16px; -webkit-appearance: none; appearance: none; outline: none; }
.hz-channel-layout { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 24px; align-items: start; }
.hz-channel-sidebar { padding: 10px; border-radius: 20px; background: var(--hz-bg); border: 1px solid var(--hz-border); }
.hz-channel-nav { max-height: 660px; overflow-y: auto; padding-right: 4px; scrollbar-width: thin; scrollbar-color: #57534E transparent; }
.hz-channel-loading { display: flex; align-items: center; gap: 10px; padding: 12px; color: var(--hz-muted); }
.hz-channel-nav-heading { padding: 14px 10px 6px; color: var(--hz-amber); font-family: var(--e-global-typography-primary-font-family, 'Montserrat'), sans-serif; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.hz-channel-app button.hz-channel-nav-item { display: flex; align-items: center; gap: 10px; width: 100%; margin: 0 0 4px; padding: 8px 10px; border: 0; border-radius: 14px; background: none; color: var(--hz-text); font-family: inherit; font-size: 15px; font-weight: 400; text-align: left; cursor: pointer; transition: background .2s, color .2s; }
.hz-channel-app button.hz-channel-nav-item:hover, .hz-channel-app button.hz-channel-nav-item:focus { background: var(--hz-surface); color: var(--hz-white); }
.hz-channel-app button.hz-channel-nav-item.is-active { background: var(--hz-grad); color: #fff; box-shadow: 0 6px 18px color-mix(in srgb, var(--hz-rose) 30%, transparent); }
.hz-channel-badge { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: color-mix(in srgb, var(--hz-primary) 14%, transparent); color: var(--hz-amber); font-family: var(--e-global-typography-primary-font-family, 'Montserrat'), sans-serif; font-size: 10px; font-weight: 800; }
.hz-channel-badge svg { width: 17px; height: 17px; }
.hz-channel-app button.hz-channel-nav-item.is-active .hz-channel-badge { background: rgba(255, 255, 255, .22); color: #fff; }
.hz-channel-nav-name { flex: 1; min-width: 0; line-height: 1.3; }
.hz-channel-nav-count { font-size: 12px; color: var(--hz-muted); }
.hz-channel-app button.hz-channel-nav-item.is-active .hz-channel-nav-count { color: rgba(255, 255, 255, .85); }
.hz-channel-panel { min-width: 0; }
.hz-channel-panel-head { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 16px; }
.hz-channel-app .hz-channel-title { margin: 0; color: var(--hz-primary); font-family: var(--e-global-typography-primary-font-family, 'Montserrat'), sans-serif; font-size: 30px; font-weight: 700; line-height: 1.3; word-break: break-word; }
.hz-channel-meta { margin: 0; color: var(--hz-muted); font-size: 15px; }
.hz-quality-legend, .hz-channel-q { flex-shrink: 0; display: flex; gap: 4px; }
.hz-quality-legend { gap: 6px; }
.hz-q { padding: 1px 7px; border-radius: 999px; font-size: 10px; font-weight: 800; line-height: 1.6; }
.hz-q-8k { background: linear-gradient(135deg, var(--hz-rose), #BE123C); color: #fff; }
.hz-q-4k { background: linear-gradient(135deg, var(--hz-primary), #EA580C); color: #fff; }
.hz-q-hd { background: rgba(132, 204, 22, .18); color: #A3E635; }
.hz-q-sd { background: var(--hz-border); color: var(--hz-muted); }
.hz-channel-grid { max-height: 640px; overflow-y: auto; padding-right: 6px; scrollbar-width: thin; scrollbar-color: #57534E transparent; }
.hz-channel-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.hz-channel-item { display: flex; align-items: center; gap: 8px; min-height: 44px; margin: 0; padding: 8px 14px; border-radius: 999px; background: rgba(255, 255, 255, .06); border: 1px solid transparent; transition: border-color .2s, background .2s; }
.hz-channel-item:hover { border-color: var(--hz-primary); background: color-mix(in srgb, var(--hz-primary) 8%, transparent); }
.hz-channel-name { flex: 1; min-width: 0; color: var(--hz-text); font-size: 14px; line-height: 1.35; overflow-wrap: anywhere; }
.hz-channel-tag { flex-shrink: 0; max-width: 45%; padding: 2px 8px; border-radius: 999px; background: var(--hz-border); color: var(--hz-muted); font-size: 11px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hz-channel-item mark { padding: 0 2px; border-radius: 4px; background: var(--hz-primary); color: #fff; }
.hz-channel-result-head { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 32px 0 12px; }
.hz-channel-result-head:first-child { margin-top: 0; }
.hz-channel-result-head strong { color: var(--hz-white); font-family: var(--e-global-typography-primary-font-family, 'Montserrat'), sans-serif; }
.hz-channel-result-head > span:not(.hz-channel-badge) { font-size: 13px; color: var(--hz-muted); }
.hz-channel-app button.hz-channel-result-view { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border: 1px solid var(--hz-primary); border-radius: 999px; background: none; color: var(--hz-primary); font-family: var(--e-global-typography-primary-font-family, 'Montserrat'), sans-serif; font-size: 13px; font-weight: 700; cursor: pointer; transition: all .3s; }
.hz-channel-app button.hz-channel-result-view:hover, .hz-channel-app button.hz-channel-result-view:focus { background: var(--hz-grad); color: #fff; }
.hz-channel-more { margin: 16px 0 0; padding: 12px 18px; border-radius: 16px; background: color-mix(in srgb, var(--hz-primary) 10%, transparent); color: var(--hz-amber); font-size: 14px; text-align: center; }
.hz-channel-empty { padding: 60px 20px; text-align: center; color: var(--hz-muted); }
.hz-channel-empty svg { width: 40px; height: 40px; color: var(--hz-primary); }
.hz-channel-empty h3 { margin: 12px 0 8px; color: var(--hz-white); }
.hz-spinner { width: 18px; height: 18px; border-radius: 50%; border: 2px solid color-mix(in srgb, var(--hz-primary) 25%, transparent); border-top-color: var(--hz-primary); animation: hz-spin .8s linear infinite; }
@keyframes hz-spin { to { transform: rotate(360deg); } }
@media (max-width: 1024px) {
	.hz-channel-select-wrap { display: block; }
	.hz-cl-bar { flex-direction: column; }
	.hz-channel-layout { grid-template-columns: minmax(0, 1fr); }
	.hz-channel-sidebar { display: none; }
	.hz-channel-grid { max-height: none; overflow: visible; padding-right: 0; }
}
@media (max-width: 767px) {
	.hz-channel-app .hz-channel-title { font-size: 24px; }
	.hz-quality-legend { display: none; }
	.hz-channel-list { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
	.hz-marquee .swiper-wrapper,
	.hz-shine-text .elementor-heading-title,
	.hz-orbs::after,
	.hz-whatsapp-float .elementor-icon,
	.hz-setup-tabs .e-n-tabs-content > .e-con.e-active,
	.e-con.hz-event.is-entering,
	.hz-cursor { animation: none !important; }
	.hz-picker-pill { transition: none; }
}

/* Switched off in Appearance > Horizon Setup > WhatsApp */
body.hz-hide-wa-float .hz-whatsapp-float,
body.hz-hide-scroll-top .hz-scroll-top { display: none !important; }

/* Older browsers without svh: the plain screen height */
@supports not (height: 100svh) {
	.e-con.hz-header-overlay#home { --min-height: 100vh; }
}

/* Tablets and phones show the first section's photo instead of the background video:
   YouTube puts its own title and pause button over the text on touch screens. */
@media (max-width: 1024px) {
	.e-con.hz-header-overlay > .elementor-background-video-container { display: none; }
}
